summaryrefslogtreecommitdiff
path: root/source4/auth/credentials
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-05-17 08:47:04 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:52:34 -0500
commitc42219d7352bd2e7a6413f7ae1cd0fd5cded1d95 (patch)
treec45f3949f0e5f434f129c6346a99d3fa0aab96df /source4/auth/credentials
parentad1cde253e5938acf2c57458b5af04f32f45edbf (diff)
downloadsamba-c42219d7352bd2e7a6413f7ae1cd0fd5cded1d95.tar.gz
samba-c42219d7352bd2e7a6413f7ae1cd0fd5cded1d95.tar.bz2
samba-c42219d7352bd2e7a6413f7ae1cd0fd5cded1d95.zip
r22969: fix some more places where we could end up with more than one event
context. We now have an event context on the torture_context, and we can also get one from the cli_credentials structure (This used to be commit c0f65eb6562e13530337c23e3447a6aa6eb8fc17)
Diffstat (limited to 'source4/auth/credentials')
-rw-r--r--source4/auth/credentials/credentials.c21
-rw-r--r--source4/auth/credentials/credentials.h3
-rw-r--r--source4/auth/credentials/credentials_krb5.c3
3 files changed, 26 insertions, 1 deletions
diff --git a/source4/auth/credentials/credentials.c b/source4/auth/credentials/credentials.c
index c76c170c6d..39b22df729 100644
--- a/source4/auth/credentials/credentials.c
+++ b/source4/auth/credentials/credentials.c
@@ -27,6 +27,7 @@
#include "auth/credentials/credentials.h"
#include "auth/credentials/credentials_krb5.h"
#include "libcli/auth/libcli_auth.h"
+#include "lib/events/events.h"
/**
* Create a new credentials structure
@@ -61,6 +62,7 @@ struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx)
cred->tries = 3;
cred->callback_running = False;
+ cred->ev = NULL;
cli_credentials_set_kerberos_state(cred, CRED_AUTO_USE_KERBEROS);
cli_credentials_set_gensec_features(cred, 0);
@@ -747,3 +749,22 @@ BOOL cli_credentials_wrong_password(struct cli_credentials *cred)
return (cred->tries > 0);
}
+
+/*
+ set the common event context for this set of credentials
+ */
+void cli_credentials_set_event_context(struct cli_credentials *cred, struct event_context *ev)
+{
+ cred->ev = ev;
+}
+
+/*
+ set the common event context for this set of credentials
+ */
+struct event_context *cli_credentials_get_event_context(struct cli_credentials *cred)
+{
+ if (cred->ev == NULL) {
+ cred->ev = event_context_find(cred);
+ }
+ return cred->ev;
+}
diff --git a/source4/auth/credentials/credentials.h b/source4/auth/credentials/credentials.h
index ce63a55bb3..e20c6015e9 100644
--- a/source4/auth/credentials/credentials.h
+++ b/source4/auth/credentials/credentials.h
@@ -114,6 +114,9 @@ struct cli_credentials {
/* Whether any callback is currently running */
BOOL callback_running;
+
+ /* an event context for anyone wanting to use the credentials */
+ struct event_context *ev;
};
struct ldb_context;
diff --git a/source4/auth/credentials/credentials_krb5.c b/source4/auth/credentials/credentials_krb5.c
index 69fb9e7b33..58b5c1df3b 100644
--- a/source4/auth/credentials/credentials_krb5.c
+++ b/source4/auth/credentials/credentials_krb5.c
@@ -37,7 +37,8 @@ int cli_credentials_get_krb5_context(struct cli_credentials *cred,
return 0;
}
- ret = smb_krb5_init_context(cred, &cred->smb_krb5_context);
+ ret = smb_krb5_init_context(cred, cli_credentials_get_event_context(cred),
+ &cred->smb_krb5_context);
if (ret) {
return ret;
}