summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-nds/openldap/files/openldap-2.1.30-tls-activedirectory-hang-fix.patch')
-rw-r--r--net-nds/openldap/files/openldap-2.1.30-tls-activedirectory-hang-fix.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/net-nds/openldap/files/openldap-2.1.30-tls-activedirectory-hang-fix.patch b/net-nds/openldap/files/openldap-2.1.30-tls-activedirectory-hang-fix.patch
new file mode 100644
index 000000000000..57f6f08d465c
--- /dev/null
+++ b/net-nds/openldap/files/openldap-2.1.30-tls-activedirectory-hang-fix.patch
@@ -0,0 +1,39 @@
+diff --recursive --context=3 openldap-2.1.30/libraries/libldap/result.c openldap-2.1.30.patched/libraries/libldap/result.c
+*** openldap-2.1.30/libraries/libldap/result.c Fri Mar 26 22:34:27 2004
+--- openldap-2.1.30.patched/libraries/libldap/result.c Mon Oct 11 12:32:02 2004
+***************
+*** 297,302 ****
+--- 297,303 ----
+ if( (*result = chkResponseList(ld, msgid, all)) != NULL ) {
+ rc = (*result)->lm_msgtype;
+ } else {
++ int found_msg = 0;
+
+ for ( lc = ld->ld_conns; lc != NULL; lc = nextlc ) {
+ nextlc = lc->lconn_next;
+***************
+*** 304,314 ****
+ LBER_SB_OPT_DATA_READY, NULL ) ) {
+ rc = try_read1msg( ld, msgid, all, lc->lconn_sb,
+ &lc, result );
+ break;
+ }
+ }
+
+! if ( lc == NULL ) {
+ rc = ldap_int_select( ld, tvp );
+
+
+--- 305,316 ----
+ LBER_SB_OPT_DATA_READY, NULL ) ) {
+ rc = try_read1msg( ld, msgid, all, lc->lconn_sb,
+ &lc, result );
++ found_msg = 1;
+ break;
+ }
+ }
+
+! if ( !found_msg ) {
+ rc = ldap_int_select( ld, tvp );
+
+