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