summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-07-31 12:32:01 +0000
committerStefan Metzmacher <metze@samba.org>2007-07-31 12:32:01 +0000
commit770a70df6c75bd029eb7215e56c758a0a93eb8df (patch)
treed35bdccfc5419e170eeb2d7d3a9011e3bf6f94a4
parent06a3f5ac9d496ae29348c3bc7ef922ef15a3c96f (diff)
downloadsamba-770a70df6c75bd029eb7215e56c758a0a93eb8df.tar.gz
samba-770a70df6c75bd029eb7215e56c758a0a93eb8df.tar.xz
samba-770a70df6c75bd029eb7215e56c758a0a93eb8df.zip
r24105: merge from SAMBA_3_2:
add some useful debug messages, as not all LDAP libraries support wrapping hooks... metze
-rw-r--r--source/libads/sasl.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/source/libads/sasl.c b/source/libads/sasl.c
index 0bc741c02a4..5c4006e7697 100644
--- a/source/libads/sasl.c
+++ b/source/libads/sasl.c
@@ -126,6 +126,7 @@ static ADS_STATUS ads_sasl_spnego_ntlmssp_bind(ADS_STRUCT *ads)
struct berval cred, *scred = NULL;
int rc;
NTSTATUS nt_status;
+ ADS_STATUS status;
int turn = 1;
uint32 features = 0;
@@ -251,7 +252,13 @@ static ADS_STATUS ads_sasl_spnego_ntlmssp_bind(ADS_STRUCT *ads)
ads->ldap.out.sig_size = NTLMSSP_SIG_SIZE;
ads->ldap.in.min = 4;
ads->ldap.in.max = 0x0FFFFFFF;
- ads_setup_sasl_wrapping(ads, &ads_sasl_ntlmssp_ops, ntlmssp_state);
+ status = ads_setup_sasl_wrapping(ads, &ads_sasl_ntlmssp_ops, ntlmssp_state);
+ if (!ADS_ERR_OK(status)) {
+ DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n",
+ ads_errstr(status)));
+ ntlmssp_end(&ntlmssp_state);
+ return status;
+ }
} else {
ntlmssp_end(&ntlmssp_state);
}
@@ -582,7 +589,12 @@ static ADS_STATUS ads_sasl_spnego_gsskrb5_bind(ADS_STRUCT *ads, const gss_name_t
ads->ldap.out.sig_size = max_msg_size - ads->ldap.out.max;
ads->ldap.in.min = 4;
ads->ldap.in.max = max_msg_size;
- ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle);
+ status = ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle);
+ if (!ADS_ERR_OK(status)) {
+ DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n",
+ ads_errstr(status)));
+ goto failed;
+ }
/* make sure we don't free context_handle */
context_handle = GSS_C_NO_CONTEXT;
}
@@ -1059,7 +1071,12 @@ static ADS_STATUS ads_sasl_gssapi_do_bind(ADS_STRUCT *ads, const gss_name_t serv
ads->ldap.out.sig_size = max_msg_size - ads->ldap.out.max;
ads->ldap.in.min = 4;
ads->ldap.in.max = max_msg_size;
- ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle);
+ status = ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle);
+ if (!ADS_ERR_OK(status)) {
+ DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n",
+ ads_errstr(status)));
+ goto failed;
+ }
/* make sure we don't free context_handle */
context_handle = GSS_C_NO_CONTEXT;
}