svn commit: samba r26021 - in branches/4.0-python: . source/auth
source/auth/credentials
jelmer at samba.org
jelmer at samba.org
Sat Nov 17 23:10:34 GMT 2007
Author: jelmer
Date: 2007-11-17 23:10:32 +0000 (Sat, 17 Nov 2007)
New Revision: 26021
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26021
Log:
Fix unresolved symbol auth_get_challenge.
Modified:
branches/4.0-python/
branches/4.0-python/source/auth/auth.c
branches/4.0-python/source/auth/auth_util.c
branches/4.0-python/source/auth/credentials/credentials.h
Changeset:
Property changes on: branches/4.0-python
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...
Modified: branches/4.0-python/source/auth/auth.c
===================================================================
--- branches/4.0-python/source/auth/auth.c 2007-11-17 22:50:13 UTC (rev 26020)
+++ branches/4.0-python/source/auth/auth.c 2007-11-17 23:10:32 UTC (rev 26021)
@@ -24,6 +24,7 @@
#include "lib/events/events.h"
#include "build.h"
#include "param/param.h"
+#include "auth/auth_util.h"
/***************************************************************************
Set a fixed challenge
@@ -47,62 +48,7 @@
return auth_ctx->challenge.may_be_modified;
}
-/****************************************************************************
- Try to get a challenge out of the various authentication modules.
- Returns a const char of length 8 bytes.
-****************************************************************************/
-_PUBLIC_ NTSTATUS auth_get_challenge(struct auth_context *auth_ctx, const uint8_t **_chal)
-{
- NTSTATUS nt_status;
- struct auth_method_context *method;
- if (auth_ctx->challenge.data.length) {
- DEBUG(5, ("auth_get_challenge: returning previous challenge by module %s (normal)\n",
- auth_ctx->challenge.set_by));
- *_chal = auth_ctx->challenge.data.data;
- return NT_STATUS_OK;
- }
-
- for (method = auth_ctx->methods; method; method = method->next) {
- DATA_BLOB challenge = data_blob(NULL,0);
-
- nt_status = method->ops->get_challenge(method, auth_ctx, &challenge);
- if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOT_IMPLEMENTED)) {
- continue;
- }
-
- NT_STATUS_NOT_OK_RETURN(nt_status);
-
- if (challenge.length != 8) {
- DEBUG(0, ("auth_get_challenge: invalid challenge (length %u) by mothod [%s]\n",
- (unsigned)challenge.length, method->ops->name));
- return NT_STATUS_INTERNAL_ERROR;
- }
-
- auth_ctx->challenge.data = challenge;
- auth_ctx->challenge.set_by = method->ops->name;
-
- break;
- }
-
- if (!auth_ctx->challenge.set_by) {
- uint8_t chal[8];
- generate_random_buffer(chal, 8);
-
- auth_ctx->challenge.data = data_blob_talloc(auth_ctx, chal, 8);
- NT_STATUS_HAVE_NO_MEMORY(auth_ctx->challenge.data.data);
- auth_ctx->challenge.set_by = "random";
-
- auth_ctx->challenge.may_be_modified = true;
- }
-
- DEBUG(10,("auth_get_challenge: challenge set by %s\n",
- auth_ctx->challenge.set_by));
-
- *_chal = auth_ctx->challenge.data.data;
- return NT_STATUS_OK;
-}
-
struct auth_check_password_sync_state {
bool finished;
NTSTATUS status;
Modified: branches/4.0-python/source/auth/auth_util.c
===================================================================
--- branches/4.0-python/source/auth/auth_util.c 2007-11-17 22:50:13 UTC (rev 26020)
+++ branches/4.0-python/source/auth/auth_util.c 2007-11-17 23:10:32 UTC (rev 26021)
@@ -28,6 +28,7 @@
#include "dsdb/samdb/samdb.h"
#include "auth/credentials/credentials.h"
#include "param/param.h"
+#include "auth/auth_util.h"
/* this default function can be used by mostly all backends
* which don't want to set a challenge
@@ -694,3 +695,60 @@
return nt_status;
}
+
+
+/****************************************************************************
+ Try to get a challenge out of the various authentication modules.
+ Returns a const char of length 8 bytes.
+****************************************************************************/
+_PUBLIC_ NTSTATUS auth_get_challenge(struct auth_context *auth_ctx, const uint8_t **_chal)
+{
+ NTSTATUS nt_status;
+ struct auth_method_context *method;
+
+ if (auth_ctx->challenge.data.length) {
+ DEBUG(5, ("auth_get_challenge: returning previous challenge by module %s (normal)\n",
+ auth_ctx->challenge.set_by));
+ *_chal = auth_ctx->challenge.data.data;
+ return NT_STATUS_OK;
+ }
+
+ for (method = auth_ctx->methods; method; method = method->next) {
+ DATA_BLOB challenge = data_blob(NULL,0);
+
+ nt_status = method->ops->get_challenge(method, auth_ctx, &challenge);
+ if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOT_IMPLEMENTED)) {
+ continue;
+ }
+
+ NT_STATUS_NOT_OK_RETURN(nt_status);
+
+ if (challenge.length != 8) {
+ DEBUG(0, ("auth_get_challenge: invalid challenge (length %u) by mothod [%s]\n",
+ (unsigned)challenge.length, method->ops->name));
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+
+ auth_ctx->challenge.data = challenge;
+ auth_ctx->challenge.set_by = method->ops->name;
+
+ break;
+ }
+
+ if (!auth_ctx->challenge.set_by) {
+ uint8_t chal[8];
+ generate_random_buffer(chal, 8);
+
+ auth_ctx->challenge.data = data_blob_talloc(auth_ctx, chal, 8);
+ NT_STATUS_HAVE_NO_MEMORY(auth_ctx->challenge.data.data);
+ auth_ctx->challenge.set_by = "random";
+
+ auth_ctx->challenge.may_be_modified = true;
+ }
+
+ DEBUG(10,("auth_get_challenge: challenge set by %s\n",
+ auth_ctx->challenge.set_by));
+
+ *_chal = auth_ctx->challenge.data.data;
+ return NT_STATUS_OK;
+}
Modified: branches/4.0-python/source/auth/credentials/credentials.h
===================================================================
--- branches/4.0-python/source/auth/credentials/credentials.h 2007-11-17 22:50:13 UTC (rev 26020)
+++ branches/4.0-python/source/auth/credentials/credentials.h 2007-11-17 23:10:32 UTC (rev 26021)
@@ -130,6 +130,7 @@
struct loadparm_context;
#include <gssapi/gssapi.h>
+#include "krb5.h"
struct ccache_container;
More information about the samba-cvs
mailing list