[jcifs] NT_TRANSACT_NOTIFY_CHANGE. Flag Recursive Error

Federico POGGIO fpoggio at elephantmemo.com
Tue Apr 15 14:36:11 GMT 2008



I have developed a NT_TRANSACT_NOTIFY_CHANGE that use a protocol


My implementation work but I have a problem with recursive for monitor all


I look an implementation on the source files in samba and I look that


static int call_nt_transact_notify_change(connection_struct *conn, char

                               char *outbuf, int length,

                               int bufsize, 

                               uint16 **ppsetup, uint32 setup_count,

                               char **ppparams,

                               uint32 parameter_count,

                               char **ppdata, uint32 data_count,

                               uint32 max_data_count,

                               uint32 max_param_count)





      recursive = (SVAL(setup, 6) != 0) ? True : False;


// If I watch this flag, this value = 1






I look that this recursive variable is take in parameter in the 

status = change_notify_add_request(inbuf, max_param_count, filter,

                  recursive, fsp);


but in this method : the recursive variable is never used.



NTSTATUS change_notify_add_request(const char *inbuf, uint32 max_param,

                           uint32 filter, BOOL recursive,

                           struct files_struct *fsp)


      struct notify_change_request *request = NULL;

      struct notify_mid_map *map = NULL;


      if (!(request = SMB_MALLOC_P(struct notify_change_request))

          || !(map = SMB_MALLOC_P(struct notify_mid_map))) {


            return NT_STATUS_NO_MEMORY;



      request->mid_map = map;

      map->req = request;


      memcpy(request->request_buf, inbuf, sizeof(request->request_buf));

      request->max_param = max_param;

      request->filter = filter;

      request->fsp = fsp;

      request->backend_data = NULL;



      DLIST_ADD_END(fsp->notify->requests, request,

                  struct notify_change_request *);


      map->mid = SVAL(inbuf, smb_mid);

      DLIST_ADD(notify_changes_by_mid, map);


      /* Push the MID of this packet on the signing queue. */



      return NT_STATUS_OK;





Thank for reply.



Federico POGGIO



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

More information about the jcifs mailing list