summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2015-07-29 15:47:09 +0200
committerMichael Adam <obnox@samba.org>2015-07-30 21:58:14 +0200
commite9885cfd0e4abd6a6a8e276e11a57e6e58e873e6 (patch)
tree38690fa9205e6b3da62b1582b702667148d30b54 /source3/smbd
parent5e463b553b467dab73bcd8816a0e415b96a5cf2d (diff)
downloadsamba-e9885cfd0e4abd6a6a8e276e11a57e6e58e873e6.tar.gz
smbXsrv_session: add smbXsrv_session_find_auth()
Pair-Programmed-With: Michael Adam <obnox@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/globals.h4
-rw-r--r--source3/smbd/smbXsrv_session.c20
2 files changed, 24 insertions, 0 deletions
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 188562952d5..c0fc8485cfc 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -541,6 +541,10 @@ struct smbXsrv_channel_global0;
NTSTATUS smbXsrv_session_find_channel(const struct smbXsrv_session *session,
const struct smbXsrv_connection *conn,
struct smbXsrv_channel_global0 **_c);
+NTSTATUS smbXsrv_session_find_auth(const struct smbXsrv_session *session,
+ const struct smbXsrv_connection *conn,
+ NTTIME now,
+ struct smbXsrv_session_auth0 **_a);
struct tevent_req *smb2srv_session_shutdown_send(TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
struct smbXsrv_session *session,
diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c
index 17ba401712e..de8d8327bc9 100644
--- a/source3/smbd/smbXsrv_session.c
+++ b/source3/smbd/smbXsrv_session.c
@@ -1387,6 +1387,26 @@ NTSTATUS smbXsrv_session_find_channel(const struct smbXsrv_session *session,
return NT_STATUS_USER_SESSION_DELETED;
}
+NTSTATUS smbXsrv_session_find_auth(const struct smbXsrv_session *session,
+ const struct smbXsrv_connection *conn,
+ NTTIME now,
+ struct smbXsrv_session_auth0 **_a)
+{
+ struct smbXsrv_session_auth0 *a;
+
+ for (a = session->pending_auth; a != NULL; a = a->next) {
+ if (a->connection == conn) {
+ if (now != 0) {
+ a->idle_time = now;
+ }
+ *_a = a;
+ return NT_STATUS_OK;
+ }
+ }
+
+ return NT_STATUS_USER_SESSION_DELETED;
+}
+
struct smb2srv_session_shutdown_state {
struct tevent_queue *wait_queue;
};