01: /* jcifs smb client library in Java
02: * Copyright (C) 2000 "Michael B. Allen" <jcifs at samba dot org>
03: *
04: * This library is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU Lesser General Public
06: * License as published by the Free Software Foundation; either
07: * version 2.1 of the License, or (at your option) any later version.
08: *
09: * 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 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:
50: int readSetupWireFormat(byte[] buffer, int bufferIndex, int len) {
51: return 0;
52: }
53:
54: int writeParametersWireFormat(byte[] dst, int dstIndex) {
55: return 0;
56: }
57:
58: int writeDataWireFormat(byte[] dst, int dstIndex) {
59: if ((dst.length - dstIndex) < pipeDataLen) {
60: if (DebugFile.trace)
61: DebugFile
62: .writeln("TransTransactNamedPipe data too long for buffer");
63: return 0;
64: }
65: System.arraycopy(pipeData, pipeDataOff, dst, dstIndex,
66: pipeDataLen);
67: return pipeDataLen;
68: }
69:
70: int readParametersWireFormat(byte[] buffer, int bufferIndex, int len) {
71: return 0;
72: }
73:
74: int readDataWireFormat(byte[] buffer, int bufferIndex, int len) {
75: return 0;
76: }
77:
78: public String toString() {
79: return new String("TransTransactNamedPipe[" + super .toString()
80: + ",pipeFid=" + pipeFid + "]");
81: }
82: }
|