KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > knowgate > jcifs > smb > TransCallNamedPipe


1 /* jcifs smb client library in Java
2  * Copyright (C) 2000 "Michael B. Allen" <jcifs at samba dot org>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */

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