summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/globals.c')
-rw-r--r--source3/smbd/globals.c18
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;
+}