diff options
Diffstat (limited to 'source3/smbd/globals.c')
-rw-r--r-- | source3/smbd/globals.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source3/smbd/globals.c b/source3/smbd/globals.c index 6bc448b901d..0cdce20d122 100644 --- a/source3/smbd/globals.c +++ b/source3/smbd/globals.c @@ -109,3 +109,21 @@ void smbd_init_globals(void) ZERO_STRUCT(sec_ctx_stack); } + +struct GUID smbd_request_guid(struct smb_request *smb1req, uint16_t idx) +{ + struct GUID v = { + .time_low = (uint32_t)smb1req->mid, + .time_hi_and_version = idx, + }; + + if (smb1req->smb2req != NULL) { + v.time_mid = (uint16_t)smb1req->smb2req->current_idx; + } else { + v.time_mid = (uint16_t)(uintptr_t)smb1req->vwv; + } + + SBVAL((uint8_t *)&v, 8, (uintptr_t)smb1req->xconn); + + return v; +} |