diff options
author | Jeremy Allison <jra@samba.org> | 2008-08-07 17:55:57 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-08-07 17:55:57 -0700 |
commit | 617bf10c66f45b6ed83d7f5441586606261e0560 (patch) | |
tree | c90b9c3017c2b827e78960136d54eea9b82e00f0 | |
parent | 3907392459533832ada823e614154951365348ee (diff) | |
download | samba-617bf10c66f45b6ed83d7f5441586606261e0560.tar.gz samba-617bf10c66f45b6ed83d7f5441586606261e0560.tar.bz2 samba-617bf10c66f45b6ed83d7f5441586606261e0560.zip |
Fix bug #5675 with a varient of Tim Waugh's patch,
as proposed by James Peach.
Jeremy.
(This used to be commit 5c27ad75836136c39774c9456d63f46fa62e281f)
-rw-r--r-- | source3/client/smbspool.c | 2 | ||||
-rw-r--r-- | source3/include/client.h | 1 | ||||
-rw-r--r-- | source3/libsmb/cliconnect.c | 5 |
3 files changed, 4 insertions, 4 deletions
diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c index e567ef8037..f35a9d3003 100644 --- a/source3/client/smbspool.c +++ b/source3/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/source3/include/client.h b/source3/include/client.h index 9276948dac..51ced9907f 100644 --- a/source3/include/client.h +++ b/source3/include/client.h @@ -193,6 +193,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/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 4285753e20..8ef14d7973 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/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) { |