[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2795-g1ee1e83

Jeremy Allison jra at samba.org
Fri Aug 8 00:57:30 GMT 2008


The branch, v3-2-test has been updated
       via  1ee1e8306f3578c19fe015145eb8da1013f7b820 (commit)
      from  f6ffc95a363d3ed8aa480ac25e440d2472551891 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 1ee1e8306f3578c19fe015145eb8da1013f7b820
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Aug 7 17:56:50 2008 -0700

    Fix bug #5675 with a varient of Tim Waugh's patch,
    as proposed by James Peach.
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source/client/smbspool.c   |    2 +-
 source/include/client.h    |    1 +
 source/libsmb/cliconnect.c |    5 ++---
 3 files changed, 4 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/client/smbspool.c b/source/client/smbspool.c
index e567ef8..f35a9d3 100644
--- a/source/client/smbspool.c
+++ b/source/client/smbspool.c
@@ -347,7 +347,7 @@ get_exit_code(struct cli_state * cli,
 		}
 
 		if (cli) {
-			if (cli->use_kerberos || (cli->capabilities & CAP_EXTENDED_SECURITY))
+			if (cli->use_kerberos && cli->got_kerberos_mechanism)
 				fputs("ATTR: auth-info-required=negotiate\n", stderr);
 			else
 				fputs("ATTR: auth-info-required=username,password\n", stderr);
diff --git a/source/include/client.h b/source/include/client.h
index 0e73745..833f4b4 100644
--- a/source/include/client.h
+++ b/source/include/client.h
@@ -184,6 +184,7 @@ struct cli_state {
 	bool use_kerberos;
 	bool fallback_after_kerberos;
 	bool use_spnego;
+	bool got_kerberos_mechanism; /* Server supports krb5 in SPNEGO. */
 
 	bool use_oplocks; /* should we use oplocks? */
 	bool use_level_II_oplocks; /* should we use level II oplocks? */
diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index 632d910..5993cd3 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -797,7 +797,6 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
 	char *principal = NULL;
 	char *OIDs[ASN1_MAX_OIDS];
 	int i;
-	bool got_kerberos_mechanism = False;
 	DATA_BLOB blob;
 	const char *p = NULL;
 	char *account = NULL;
@@ -832,7 +831,7 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
 		DEBUG(3,("got OID=%s\n", OIDs[i]));
 		if (strcmp(OIDs[i], OID_KERBEROS5_OLD) == 0 ||
 		    strcmp(OIDs[i], OID_KERBEROS5) == 0) {
-			got_kerberos_mechanism = True;
+			cli->got_kerberos_mechanism = True;
 		}
 		free(OIDs[i]);
 	}
@@ -845,7 +844,7 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
 	/* If password is set we reauthenticate to kerberos server
 	 * and do not store results */
 
-	if (got_kerberos_mechanism && cli->use_kerberos) {
+	if (cli->got_kerberos_mechanism && cli->use_kerberos) {
 		ADS_STATUS rc;
 
 		if (pass && *pass) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list