public FileEntry[] getEntries () { netdfs.DfsEnumArray200 a200 = (netdfs.DfsEnumArray200) this.info.e; SmbShareInfo[] entries = new SmbShareInfo[a200.count]; for ( int i = 0; i < a200.count; i++ ) { entries[ i ] = new SmbShareInfo(a200.s[ i ].dfs_name, 0, null); } return entries; } }
@Override protected int readDataWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; SmbShareInfo e; setUseUnicode(false); SmbShareInfo[] results = new SmbShareInfo[getNumEntries()]; for ( int i = 0; i < getNumEntries(); i++ ) { results[ i ] = e = new SmbShareInfo(); e.netName = readString(buffer, bufferIndex, 13, false); bufferIndex += 14; e.type = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; int off = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; off = ( off & 0xFFFF ) - this.converter; off = start + off; e.remark = readString(buffer, off, 128, false); if ( log.isTraceEnabled() ) { log.trace(e.toString()); } } setResults(results); return bufferIndex - start; }
private FileEntry advance () throws CIFSException { int n = this.response.getStatus() == WinError.ERROR_MORE_DATA ? this.response.getNumEntries() - 1 : this.response.getNumEntries(); while ( this.ridx < n ) { FileEntry itm = this.response.getResults()[ this.ridx ]; this.ridx++; if ( filter(itm) ) { return itm; } } if ( this.workgroup && this.response.getStatus() == WinError.ERROR_MORE_DATA ) { this.request.reset(0, this.response.getLastName()); this.response.reset(); this.request.setSubCommand(SmbComTransaction.NET_SERVER_ENUM3); this.treeHandle.send(this.request, this.response); checkStatus(); this.ridx = 0; return advance(); } return null; }
@Override protected int readDataWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; ServerInfo1 e = null; ServerInfo1[] results = new ServerInfo1[getNumEntries()]; for ( int i = 0; i < getNumEntries(); i++ ) { results[ i ] = e = new ServerInfo1(); e.name = readString(buffer, bufferIndex, 16, false); bufferIndex += 16; e.versionMajor = buffer[ bufferIndex++ ] & 0xFF; e.versionMinor = buffer[ bufferIndex++ ] & 0xFF; e.type = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; int off = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; off = ( off & 0xFFFF ) - this.converter; off = start + off; e.commentOrMasterBrowser = readString(buffer, off, 48, false); if ( log.isTraceEnabled() ) { log.trace(e.toString()); } } setResults(results); this.lastName = e == null ? null : e.name; return bufferIndex - start; }
@Override protected int readParametersWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; setStatus(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.converter = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; setNumEntries(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.totalAvailableEntries = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; return bufferIndex - start; }
static FileEntry[] doNetShareEnum ( SmbTreeHandleImpl th ) throws CIFSException { SmbComTransaction req = new NetShareEnum(th.getConfig()); SmbComTransactionResponse resp = new NetShareEnumResponse(th.getConfig()); th.send(req, resp); if ( resp.getStatus() != WinError.ERROR_SUCCESS ) throw new SmbException(resp.getStatus(), true); return resp.getResults(); }
@Override protected int readParametersWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; setStatus(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.converter = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; setNumEntries(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.totalAvailableEntries = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; return bufferIndex - start; }
@Override public String toString () { return new String( "NetShareEnumResponse[" + super.toString() + ",status=" + getStatus() + ",converter=" + this.converter + ",entriesReturned=" + getNumEntries() + ",totalAvailableEntries=" + this.totalAvailableEntries + "]"); } }
@Override public String toString () { return new String( "NetServerEnum2Response[" + super.toString() + ",status=" + this.getStatus() + ",converter=" + this.converter + ",entriesReturned=" + this.getNumEntries() + ",totalAvailableEntries=" + this.totalAvailableEntries + ",lastName=" + this.lastName + "]"); } }
/** * @throws SmbException */ private void checkStatus () throws SmbException { int status = this.response.getStatus(); if ( status == WinError.ERROR_SERVICE_NOT_INSTALLED ) { throw new SmbUnsupportedOperationException(); } if ( status != WinError.ERROR_SUCCESS && status != WinError.ERROR_MORE_DATA ) { throw new SmbException(status, true); } }
private FileEntry advance () throws CIFSException { int n = this.response.getStatus() == WinError.ERROR_MORE_DATA ? this.response.getNumEntries() - 1 : this.response.getNumEntries(); while ( this.ridx < n ) { FileEntry itm = this.response.getResults()[ this.ridx ]; this.ridx++; if ( filter(itm) ) { return itm; } } if ( this.workgroup && this.response.getStatus() == WinError.ERROR_MORE_DATA ) { this.request.reset(0, this.response.getLastName()); this.response.reset(); this.request.setSubCommand(SmbComTransaction.NET_SERVER_ENUM3); this.treeHandle.send(this.request, this.response); checkStatus(); this.ridx = 0; return advance(); } return null; }
@Override protected int readDataWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; SmbShareInfo e; setUseUnicode(false); SmbShareInfo[] results = new SmbShareInfo[getNumEntries()]; for ( int i = 0; i < getNumEntries(); i++ ) { results[ i ] = e = new SmbShareInfo(); e.netName = readString(buffer, bufferIndex, 13, false); bufferIndex += 14; e.type = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; int off = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; off = ( off & 0xFFFF ) - this.converter; off = start + off; e.remark = readString(buffer, off, 128, false); if ( log.isTraceEnabled() ) { log.trace(e.toString()); } } setResults(results); return bufferIndex - start; }
@Override protected int readDataWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; ServerInfo1 e = null; ServerInfo1[] results = new ServerInfo1[getNumEntries()]; for ( int i = 0; i < getNumEntries(); i++ ) { results[ i ] = e = new ServerInfo1(); e.name = readString(buffer, bufferIndex, 16, false); bufferIndex += 16; e.versionMajor = buffer[ bufferIndex++ ] & 0xFF; e.versionMinor = buffer[ bufferIndex++ ] & 0xFF; e.type = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; int off = SMBUtil.readInt4(buffer, bufferIndex); bufferIndex += 4; off = ( off & 0xFFFF ) - this.converter; off = start + off; e.commentOrMasterBrowser = readString(buffer, off, 48, false); if ( log.isTraceEnabled() ) { log.trace(e.toString()); } } setResults(results); this.lastName = e == null ? null : e.name; return bufferIndex - start; }
@Override protected int readParametersWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; setStatus(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.converter = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; setNumEntries(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.totalAvailableEntries = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; return bufferIndex - start; }
static FileEntry[] doNetShareEnum ( SmbTreeHandleImpl th ) throws CIFSException { SmbComTransaction req = new NetShareEnum(th.getConfig()); SmbComTransactionResponse resp = new NetShareEnumResponse(th.getConfig()); th.send(req, resp); if ( resp.getStatus() != WinError.ERROR_SUCCESS ) throw new SmbException(resp.getStatus(), true); return resp.getResults(); }
@Override protected int readParametersWireFormat ( byte[] buffer, int bufferIndex, int len ) { int start = bufferIndex; setStatus(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.converter = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; setNumEntries(SMBUtil.readInt2(buffer, bufferIndex)); bufferIndex += 2; this.totalAvailableEntries = SMBUtil.readInt2(buffer, bufferIndex); bufferIndex += 2; return bufferIndex - start; }
@Override public String toString () { return new String( "NetShareEnumResponse[" + super.toString() + ",status=" + getStatus() + ",converter=" + this.converter + ",entriesReturned=" + getNumEntries() + ",totalAvailableEntries=" + this.totalAvailableEntries + "]"); } }
@Override public String toString () { return new String( "NetServerEnum2Response[" + super.toString() + ",status=" + this.getStatus() + ",converter=" + this.converter + ",entriesReturned=" + this.getNumEntries() + ",totalAvailableEntries=" + this.totalAvailableEntries + ",lastName=" + this.lastName + "]"); } }
public FileEntry[] getEntries () { netdfs.DfsEnumArray200 a200 = (netdfs.DfsEnumArray200) this.info.e; SmbShareInfo[] entries = new SmbShareInfo[a200.count]; for ( int i = 0; i < a200.count; i++ ) { entries[ i ] = new SmbShareInfo(a200.s[ i ].dfs_name, 0, null); } return entries; } }
/** * @throws SmbException */ private void checkStatus () throws SmbException { int status = this.response.getStatus(); if ( status == WinError.ERROR_SERVICE_NOT_INSTALLED ) { throw new SmbUnsupportedOperationException(); } if ( status != WinError.ERROR_SUCCESS && status != WinError.ERROR_MORE_DATA ) { throw new SmbException(status, true); } }