package org.krakenapps.pcap.decoder.smb.request; import org.krakenapps.pcap.decoder.smb.structure.SmbData; public class TreeConnectExtendRequest implements SmbData{ boolean malformed = false; public final static short TREE_CONNECT_ANDX_DISCONNECT_TID = 0x0001; //following reserved bitmask is not used public final static short RESERVED1 = 0x0002; public final static short RESREVED2 = (short) 0xFFFC; //param byte wordCount; byte andxCommand; byte andxReserved; short andxOffset; short flags; short passwordLength; //data short byteCount; byte []password; byte []pad; String path; String service; public byte getWordCount() { return wordCount; } public void setWordCount(byte wordCount) { this.wordCount = wordCount; } public byte getAndxCommand() { return andxCommand; } public void setAndxCommand(byte andxCommand) { this.andxCommand = andxCommand; } public byte getAndxReserved() { return andxReserved; } public void setAndxReserved(byte andxReserved) { this.andxReserved = andxReserved; } public short getAndxOffset() { return andxOffset; } public void setAndxOffset(short andxOffset) { this.andxOffset = andxOffset; } public short getFlags() { return flags; } public void setFlags(short flags) { this.flags = flags; } public short getPasswordLength() { return passwordLength; } public void setPasswordLength(short passwordLength) { this.passwordLength = passwordLength; } public short getByteCount() { return byteCount; } public void setByteCount(short byteCount) { this.byteCount = byteCount; } public byte[] getPassword() { return password; } public void setPassword(byte[] password) { this.password = password; } public byte[] getPad() { return pad; } public void setPad(byte[] pad) { this.pad = pad; } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getService() { return service; } public void setService(String service) { this.service = service; } public boolean isTreeConnectAndxDisconnectTid() { if((this.flags & TREE_CONNECT_ANDX_DISCONNECT_TID)== TREE_CONNECT_ANDX_DISCONNECT_TID) return true; else return false; } @Override public boolean isMalformed() { // TODO Auto-generated method stub return malformed; } @Override public void setMalformed(boolean malformed) { this.malformed = malformed; } @Override public String toString(){ return String.format("First Level : Tree Connect Extend Request\n" + "isMalformed = %s\n" + "wordCount = 0x%s\n" + "andxCommand = 0x%s , andxReserved = 0x%s , andxOffset = 0x%s\n" + "flags = 0x%s , passwordLength = 0x%s\n" + "byteCount = 0x%s\n" + "password = %s\n" + "path = %s\n" + "service = %s\n", this.malformed, Integer.toHexString(this.wordCount), Integer.toHexString(this.andxCommand), Integer.toHexString(this.andxReserved), Integer.toHexString(this.andxOffset), Integer.toHexString(this.flags) , Integer.toHexString(this.passwordLength), Integer.toHexString(this.byteCount), this.password.toString(), this.path, this.service); } }