package org.krakenapps.pcap.decoder.smb.trans2struct.queryinfostruct; import org.krakenapps.pcap.decoder.netbios.NetBiosNameCodec; import org.krakenapps.pcap.decoder.smb.SmbSession; import org.krakenapps.pcap.decoder.smb.TransStruct; import org.krakenapps.pcap.decoder.smb.rr.ExtFileAttributes; import org.krakenapps.pcap.util.Buffer; import org.krakenapps.pcap.util.ByteOrderConverter; public class SmbQueryFileAllInfo implements TransStruct{ long creationTime; long lastAccessTime; long lastWriteTime; long lastChangeTime; ExtFileAttributes extFileAttributes; int resrved1; long allocationSize; long endOfFile; int numberOfLinks; byte deletePending; byte directory; short reserved2; int eaSize; int fileNameLength; String fileName; @Override public TransStruct parse(Buffer b , SmbSession session) { creationTime = ByteOrderConverter.swap(b.getLong()); lastAccessTime = ByteOrderConverter.swap(b.getLong()); lastWriteTime = ByteOrderConverter.swap(b.getLong()); lastChangeTime = ByteOrderConverter.swap(b.getLong()); extFileAttributes = ExtFileAttributes.parse(ByteOrderConverter.swap(b.getInt())); resrved1 = ByteOrderConverter.swap(b.getInt()); allocationSize = ByteOrderConverter.swap(b.getLong()); endOfFile = ByteOrderConverter.swap(b.getLong()); numberOfLinks = ByteOrderConverter.swap(b.getInt()); deletePending = b.get(); directory = b.get(); reserved2 = ByteOrderConverter.swap(b.getShort()); eaSize = ByteOrderConverter.swap(b.getInt()); fileNameLength = ByteOrderConverter.swap(b.getInt()); fileName = NetBiosNameCodec.readSmbUnicodeName(b, fileNameLength); return this; } @Override public String toString(){ return String.format(""); } }