From af90c71ed8e66586aa23f7d0e18efc557c9a0c08 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 23 Jul 2012 19:47:05 +0200 Subject: s4:libcli/raw: setup a smbXcli_session for each smbcli_session metze --- source4/libcli/raw/clisession.c | 14 +++++++++++++- source4/libcli/raw/libcliraw.h | 1 + source4/libcli/raw/rawrequest.c | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) (limited to 'source4/libcli') diff --git a/source4/libcli/raw/clisession.c b/source4/libcli/raw/clisession.c index d68f309519..23d7fd1287 100644 --- a/source4/libcli/raw/clisession.c +++ b/source4/libcli/raw/clisession.c @@ -55,7 +55,19 @@ struct smbcli_session *smbcli_session_init(struct smbcli_transport *transport, session->pid = (uint16_t)getpid(); session->vuid = UID_FIELD_INVALID; session->options = options; - + + /* + * for now session->vuid is still used by the callers, but we call: + * smb1cli_session_set_id(session->smbXcli, session->vuid); + * before using session->smbXcli, in future we should remove + * session->vuid. + */ + session->smbXcli = smbXcli_session_create(session, transport->conn); + if (session->smbXcli == NULL) { + talloc_free(session); + return NULL; + } + capabilities = transport->negotiate.capabilities; flags2 = FLAGS2_LONG_PATH_COMPONENTS | FLAGS2_EXTENDED_ATTRIBUTES; diff --git a/source4/libcli/raw/libcliraw.h b/source4/libcli/raw/libcliraw.h index b7e5e21a92..8cdccc1f45 100644 --- a/source4/libcli/raw/libcliraw.h +++ b/source4/libcli/raw/libcliraw.h @@ -156,6 +156,7 @@ struct smbcli_session { /* after a session setup the server provides us with a vuid identifying the security context */ + struct smbXcli_session *smbXcli; uint16_t vuid; /* default pid for this session */ diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index 1b4c8c7524..56bbf259e1 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -146,6 +146,8 @@ struct smbcli_request *smbcli_request_setup_session(struct smbcli_session *sessi if (!req) return NULL; + smb1cli_session_set_id(session->smbXcli, session->vuid); + req->session = session; SSVAL(req->out.hdr, HDR_FLG2, session->flags2); -- cgit