[Samba] Samba Transaction Implementation

Mahendran shmahendran at gmail.com
Tue Dec 23 14:35:41 GMT 2008


Hi,


I am enhancing the Samba Server on our product (VxWorks on the box) to
support Long Name. So I started implementing the dialect "LM1.2X002" (first
dialects that support Long Name, the current dialect that we support is PC
Network Program). I have implemented the Negotiation, Tree Connect AndX and
Open AndX command.



When I try access the shared drive of our product, after the Negotiation,
Tree Connect AndX and Open AndX, the Windows XP machine sends transaction2
command.



It first sends Trans2_Request, FIND_FIRST2 command with the level of
interest as SMB_INFO_QUERY_EA_SIZE. I send the response for this request. I
have totally 3 files (for implementation purpose I have only 3 files) in the
shared drive. I could form the packet and send response for this request. I
am sending all 3 files in the same packet. I am also sending 2 directories,
one for root and one for parent.


While forming the data block I set 2 bytes each for CreationDate,
CreationTime, LastAccessDate, LastAccessTime, LastWriteDate and
LastWriteTime. I set the values as 0 for now.



The client sends another transaction request Trans2_NEXT2 command with the
filename field as NULL string. I do not understand why this is being sent.



I am sending response for this packet as well with no files. (I assumed that
I had already sent all 3 files and this should be no files)



It opens the shared drive successfully and displays nothing.



According to me it should not send "Trans2_NEXT2" command as there are only
3 files in the shared drive.



I have attached the ethereal capture (CaptureSMB1) for more information.



Look at the packet no 26 for Trans2_FIRST2 response.

Look at the packet no 31 for Trans2_NEXT2 response.



Could you please let me know where I am wrong? Your help will make me move
forward. Thank a lot.


Thank You


Regards,

Mahendran


More information about the samba mailing list