1 18 19 package jcifs.smb; 20 21 class TransTransactNamedPipe extends SmbComTransaction { 22 23 private byte[] pipeData; 24 private int pipeFid, pipeDataOff, pipeDataLen; 25 26 TransTransactNamedPipe( int fid, byte[] data, int off, int len ) { 27 pipeFid = fid; 28 pipeData = data; 29 pipeDataOff = off; 30 pipeDataLen = len; 31 command = SMB_COM_TRANSACTION; 32 subCommand = TRANS_TRANSACT_NAMED_PIPE; 33 maxParameterCount = 0; 34 maxDataCount = 0xFFFF; 35 maxSetupCount = (byte)0x00; 36 setupCount = 2; 37 name = "\\PIPE\\"; 38 } 39 40 int writeSetupWireFormat( byte[] dst, int dstIndex ) { 41 dst[dstIndex++] = subCommand; 42 dst[dstIndex++] = (byte)0x00; 43 writeInt2( pipeFid, dst, dstIndex ); 44 dstIndex += 2; 45 return 4; 46 } 47 int readSetupWireFormat( byte[] buffer, int bufferIndex, int len ) { 48 return 0; 49 } 50 int writeParametersWireFormat( byte[] dst, int dstIndex ) { 51 return 0; 52 } 53 int writeDataWireFormat( byte[] dst, int dstIndex ) { 54 if(( dst.length - dstIndex ) < pipeDataLen ) { 55 if( log.level > 2 ) 56 log.println( "TransTransactNamedPipe data too long for buffer" ); 57 return 0; 58 } 59 System.arraycopy( pipeData, pipeDataOff, dst, dstIndex, pipeDataLen ); 60 return pipeDataLen; 61 } 62 int readParametersWireFormat( byte[] buffer, int bufferIndex, int len ) { 63 return 0; 64 } 65 int readDataWireFormat( byte[] buffer, int bufferIndex, int len ) { 66 return 0; 67 } 68 public String toString() { 69 return new String ( "TransTransactNamedPipe[" + super.toString() + 70 ",pipeFid=" + pipeFid + "]" ); 71 } 72 } 73 | Popular Tags |