[jcifs] NT_TRANSACT_NOTIFY_CHANGE

Federico POGGIO fpoggio at elephantmemo.com
Wed Apr 2 14:55:39 GMT 2008


I have developed a NT_TRANSACT_NOTIFY_CHANGE that use a protocol
SmbComNtTransaction. I add a Setup Words into method : 

nt writeSetupWireFormat(byte[] dst, int dstIndex)

            {

                        

                         int start = dstIndex;

                         

                         writeInt4( FILE_NOTIFY_CHANGE_FILE_NAME, dst,
dstIndex );

                         dstIndex += 4;

                         writeInt2( fid, dst, dstIndex );

                 dstIndex += 2;

                         byte b = (byte)(watchTree?1:0);

                 dst[dstIndex++] = b;

                 dst[dstIndex++] = (byte)0x00; // Reserved          return
dstIndex - start;

            }

   

I added this code in the costructor : 

    

            NtTransactNotifyChange(int completionFilter, int fid, boolean
watchTree ) {

                        

                        this.completionFilter = completionFilter;

                        this.fid = fid;

                        this.watchTree = watchTree;

                        

                        command = SMB_COM_NT_TRANSACT;

                        timeout = 0xFFFFFFFF;

                        System.out.println("process to
NtTransactNotifyyyChange");

                        function = NT_TRANSACT_NOTIFY_CHANGE;

                        

                        totalDataCount = 0;

                        maxParameterCount = 0;

             

                maxDataCount = 4096;

             

                maxSetupCount = (byte)0;

                parameterCount = 0;

                        

                        setupCount = 4;

                                           

            }

 

 

When I call the transaction, the server response is a timeout.

 

I tryed to delete setupWordCount for look if the server can analyze a
massage : A server respnse is a nt_trans : parameter incorrect. 

 

I am looking a bytes of message : a lenght of message is 81 bytes : the
first bytes is header, after the header i find a Word Count whith a value of
23 (19 byte of standard parameters - MaxSetupCount, Reserver,
TotalParameterCount, MaxParameterCount....) and 4 bytes for a setupwords[4] 

 

My problem is that after 30 sec, the server response is timeout.

The last trace that strace in SUSE  write is : 

read(5,
"\xff\x53\x4d\x42\xa0\x00\x00\x00\x00\x18\x03\xd0\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x01\x00\xa1\x84\x64\x00\x04\x00\x17\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x04\x00\x08\x07\x00\x00\xa
1\x2a\x01\x00\x00\x00", 81) = 81 <0.000079>

 

 

Another people has writed NT_TRANSACT_NOTIFY_CHANGE ? 

 

Thank's

 

Federico POGGIO

-------------- next part --------------
HTML attachment scrubbed and removed


More information about the jcifs mailing list