question about

Jeremy Allison jra at samba.org
Mon Mar 26 20:50:03 UTC 2018


On Sat, Mar 24, 2018 at 12:53:43PM +0800, ssdl.566 via samba-technical wrote:
> Hi Jeremy:
>           I have a question about smbXsrv_open_update function call in smb2_create process.
> 
> 
>          if (update_open ) {
> op->global->create_guid = _create_guid;
> 
> 
>                         what is create_guid field used for ? is it just used in durable connect process?

Yes, I think so.

> if (need_replay_cache) {
> op->flags |= SMBXSRV_OPEN_NEED_REPLAY_CACHE;
> }
> 
> 
> status = smbXsrv_open_update(op);
> DEBUG(10, ("smb2_create_send: smbXsrv_open_update "
>   "returned %s\n",
>   nt_errstr(status)));
> if (!NT_STATUS_IS_OK(status)) {
> tevent_req_nterror(req, status);
> return tevent_req_post(req, ev);
> }
> }
>                 here smbXsrv_open_update was called just to store create_guid and backend_cookie information for durable connect, am i right?
>                 if  'durable handles' option in smb.conf is set to 'no', i want to know if it is possible we donot call smbXsrv_open_update here.

Don't think so. "durable handles = XX" option is only
looked at in the lower layer underneath the VFS. Now
update_open which control the calling of smbXsrv_open_update()
should only get set if replay_operation is true, which
should only happen if the client supplied a dhnc
create blob. That can only happen if the client got
a valid return cookie from SMB_VFS_DURABLE_COOKIE(),
which does check "durable handles = XX".



More information about the samba-technical mailing list