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