Gary Rambo at Aventail sent a really cool message to the jCIFS mailing list with an analysis and implementation of a second Browse Service RAP call, known as NetServerEnum3. Basically, the NetServerEnum3 RAP exchange is an follow-on to NetServerEnum2. It is used to read additional Browse List entries if the BufrSize in the initial NetServerEnum2 request was not sufficient to handle the entire list. (That is, if EntryCount < AvailCount in the NetServerEnum2 response.) Here's what the NetServerEnum3 request structure looks like:
struct
{
ushort RAPCode;
uchar *ParamDesc;
uchar *DataDesc;
struct
{
ushort InfoLevel;
ushort BufrSize;
ulong ServerType;
uchar *Workgroup;
uchar *LastEntry;
} Params;
} NetServerEnum3Req;
Compare that against the NetServerEnum2 request and you'll see that it differs only in the addition of the LastEntry field. Some notes:
This is an obscure RAP exchange. (Its existence was a complete surprise to me.) Ethereal (v0.10.4 was tested) is aware of it, however, and can parse it...mostly. There's a little trouble with the reply packet. Support for NetServerEnum3 has been added to jCIFS client code (starting with v0.9.0). You can test NetServerEnum3 behavior by fiddling with the BufrSize value and other parameters. |
|
Send annotations that you are willing and permitted to freely share to
[email protected].
Please let me know if I may give you credit by using your name when posting the note. | $Id: note.3.4.3.2-01.html,v 1.3 2004/07/15 04:24:11 crh Exp $ |