Lines Matching refs:ld
64 { if (nolock) LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); }
66 { if (nolock) LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); }
68 { if (nolock) LDAP_MUTEX_LOCK( &ld->ld_req_mutex ); }
70 { if (nolock) LDAP_MUTEX_UNLOCK( &ld->ld_req_mutex ); }
72 { if (nolock) LDAP_MUTEX_LOCK( &ld->ld_res_mutex ); }
74 { if (nolock) LDAP_MUTEX_UNLOCK( &ld->ld_res_mutex ); }
84 static LDAPConn *find_connection LDAP_P(( LDAP *ld, LDAPURLDesc *srv, int any ));
85 static void use_connection LDAP_P(( LDAP *ld, LDAPConn *lc ));
86 static void ldap_free_request_int LDAP_P(( LDAP *ld, LDAPRequest *lr ));
89 re_encode_request( LDAP *ld,
97 ldap_alloc_ber_with_options( LDAP *ld ) in ldap_alloc_ber_with_options() argument
101 ber = ber_alloc_t( ld->ld_lberoptions ); in ldap_alloc_ber_with_options()
103 ld->ld_errno = LDAP_NO_MEMORY; in ldap_alloc_ber_with_options()
111 ldap_set_ber_options( LDAP *ld, BerElement *ber ) in ldap_set_ber_options() argument
114 ber->ber_options = ld->ld_lberoptions; in ldap_set_ber_options()
121 LDAP *ld, in ldap_send_initial_request() argument
132 LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); in ldap_send_initial_request()
133 if ( ber_sockbuf_ctrl( ld->ld_sb, LBER_SB_OPT_GET_FD, &sd ) == -1 ) { in ldap_send_initial_request()
135 rc = ldap_open_defconn( ld ); in ldap_send_initial_request()
137 ber_sockbuf_ctrl( ld->ld_defconn->lconn_sb, in ldap_send_initial_request()
141 if ( ld->ld_defconn && ld->ld_defconn->lconn_status == LDAP_CONNST_CONNECTING ) in ldap_send_initial_request()
142 rc = ldap_int_check_async_open( ld, sd ); in ldap_send_initial_request()
145 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_send_initial_request()
153 if (LDAP_IS_UDP(ld)) { in ldap_send_initial_request()
155 LDAP_MUTEX_LOCK( &ld->ld_options.ldo_mutex ); in ldap_send_initial_request()
156 if (ld->ld_options.ldo_cldapdn) in ldap_send_initial_request()
157 ldap_memfree(ld->ld_options.ldo_cldapdn); in ldap_send_initial_request()
158 ld->ld_options.ldo_cldapdn = ldap_strdup(dn); in ldap_send_initial_request()
160 LDAP_MUTEX_UNLOCK( &ld->ld_options.ldo_mutex ); in ldap_send_initial_request()
161 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_send_initial_request()
167 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_send_initial_request()
172 LDAP_MUTEX_LOCK( &ld->ld_req_mutex ); in ldap_send_initial_request()
173 rc = ldap_send_server_request( ld, ber, msgid, NULL, in ldap_send_initial_request()
175 LDAP_MUTEX_UNLOCK( &ld->ld_req_mutex ); in ldap_send_initial_request()
176 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_send_initial_request()
184 LDAP *ld, in ldap_int_flush_request() argument
189 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in ldap_int_flush_request()
195 ldap_mark_select_write( ld, lc->lconn_sb ); in ldap_int_flush_request()
196 ld->ld_errno = LDAP_BUSY; in ldap_int_flush_request()
199 ld->ld_errno = LDAP_SERVER_DOWN; in ldap_int_flush_request()
200 ldap_free_request( ld, lr ); in ldap_int_flush_request()
201 ldap_free_connection( ld, lc, 0, 0 ); in ldap_int_flush_request()
212 ldap_mark_select_read( ld, lc->lconn_sb ); in ldap_int_flush_request()
213 ldap_clear_select_write( ld, lc->lconn_sb ); in ldap_int_flush_request()
227 LDAP *ld, in ldap_send_server_request() argument
240 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_req_mutex ); in ldap_send_server_request()
244 ld->ld_errno = LDAP_SUCCESS; /* optimistic */ in ldap_send_server_request()
249 lc = ld->ld_defconn; in ldap_send_server_request()
251 lc = find_connection( ld, *srvlist, 1 ); in ldap_send_server_request()
258 lc = ldap_new_connection( ld, srvlist, 0, in ldap_send_server_request()
272 switch ( ldap_int_poll( ld, sd, &tv, 1 ) ) { in ldap_send_server_request()
282 LDAP_MUTEX_LOCK( &ld->ld_options.ldo_mutex ); in ldap_send_server_request()
283 … if ( time( NULL ) - lc->lconn_created <= ld->ld_options.ldo_tm_net.tv_sec ) in ldap_send_server_request()
286 ld->ld_errno = LDAP_X_CONNECTING; in ldap_send_server_request()
288 LDAP_MUTEX_UNLOCK( &ld->ld_options.ldo_mutex ); in ldap_send_server_request()
298 if ( ld->ld_errno == LDAP_SUCCESS ) { in ldap_send_server_request()
299 ld->ld_errno = LDAP_SERVER_DOWN; in ldap_send_server_request()
311 use_connection( ld, lc ); in ldap_send_server_request()
314 if ( LDAP_IS_UDP( ld )) { in ldap_send_server_request()
317 LDAP_MUTEX_LOCK( &ld->ld_options.ldo_mutex ); in ldap_send_server_request()
318 rc = ber_write( &tmpber, ld->ld_options.ldo_peer, in ldap_send_server_request()
320 LDAP_MUTEX_UNLOCK( &ld->ld_options.ldo_mutex ); in ldap_send_server_request()
322 ld->ld_errno = LDAP_ENCODING_ERROR; in ldap_send_server_request()
336 if ( ld->ld_requests != NULL ) { in ldap_send_server_request()
337 TAvlnode *node = ldap_tavl_end( ld->ld_requests, TAVL_DIR_RIGHT ); in ldap_send_server_request()
343 ldap_int_flush_request( ld, lr ) < 0 ) { in ldap_send_server_request()
355 ld->ld_errno = LDAP_NO_MEMORY; in ldap_send_server_request()
356 ldap_free_connection( ld, lc, 0, 0 ); in ldap_send_server_request()
386 if ( !LDAP_IS_UDP(ld) ) in ldap_send_server_request()
412 rc = ldap_tavl_insert( &ld->ld_requests, lr, ldap_req_cmp, ldap_avl_dup_error ); in ldap_send_server_request()
415 ld->ld_errno = LDAP_SUCCESS; in ldap_send_server_request()
416 if ( ldap_int_flush_request( ld, lr ) == -1 ) { in ldap_send_server_request()
455 ldap_new_connection( LDAP *ld, LDAPURLDesc **srvlist, int use_ldsb, in ldap_new_connection() argument
461 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in ldap_new_connection()
470 ld->ld_errno = LDAP_NO_MEMORY; in ldap_new_connection()
475 assert( ld->ld_sb != NULL ); in ldap_new_connection()
476 lc->lconn_sb = ld->ld_sb; in ldap_new_connection()
482 ld->ld_errno = LDAP_NO_MEMORY; in ldap_new_connection()
490 async = LDAP_BOOL_GET( &ld->ld_options, LDAP_BOOL_CONNECT_ASYNC ); in ldap_new_connection()
495 rc = ldap_int_open_connection( ld, lc, *srvp, async ); in ldap_new_connection()
503 if ( ld->ld_urllist_proc && ( !async || rc != -2 ) ) { in ldap_new_connection()
504 … ld->ld_urllist_proc( ld, srvlist, srvp, ld->ld_urllist_params ); in ldap_new_connection()
516 ld->ld_errno = LDAP_SERVER_DOWN; in ldap_new_connection()
525 ld->ld_errno = LDAP_NO_MEMORY; in ldap_new_connection()
531 lc->lconn_next = ld->ld_conns; in ldap_new_connection()
532 ld->ld_conns = lc; in ldap_new_connection()
541 savedefconn = ld->ld_defconn; in ldap_new_connection()
543 ld->ld_defconn = lc; in ldap_new_connection()
546 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
548 rc = ldap_start_tls_s( ld, NULL, NULL ); in ldap_new_connection()
550 LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
552 ld->ld_defconn = savedefconn; in ldap_new_connection()
556 ldap_free_connection( ld, lc, 1, 0 ); in ldap_new_connection()
574 if ( ld->ld_rebind_proc != NULL) { in ldap_new_connection()
579 ld->ld_errno = LDAP_NO_MEMORY; in ldap_new_connection()
582 savedefconn = ld->ld_defconn; in ldap_new_connection()
584 ld->ld_defconn = lc; in ldap_new_connection()
588 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
590 err = (*ld->ld_rebind_proc)( ld, in ldap_new_connection()
592 ld->ld_rebind_params ); in ldap_new_connection()
594 LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
597 ld->ld_defconn = savedefconn; in ldap_new_connection()
602 ldap_free_connection( ld, lc, 1, 0 ); in ldap_new_connection()
612 savedefconn = ld->ld_defconn; in ldap_new_connection()
614 ld->ld_defconn = lc; in ldap_new_connection()
620 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
622 rc = ldap_sasl_bind( ld, "", LDAP_SASL_SIMPLE, &passwd, in ldap_new_connection()
632 … switch ( ldap_result( ld, msgid, LDAP_MSG_ALL, &tv, &res ) ) { in ldap_new_connection()
644 … rc = ldap_parse_result( ld, res, &err, NULL, NULL, NULL, NULL, 1 ); in ldap_new_connection()
659 … (void *) ld, ldap_msgtype( res ), msgid ); in ldap_new_connection()
666 LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); in ldap_new_connection()
668 ld->ld_defconn = savedefconn; in ldap_new_connection()
672 ldap_free_connection( ld, lc, 1, 0 ); in ldap_new_connection()
685 find_connection( LDAP *ld, LDAPURLDesc *srv, int any ) in find_connection() argument
696 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in find_connection()
697 for ( lc = ld->ld_conns; lc != NULL; lc = lc->lconn_next ) { in find_connection()
727 use_connection( LDAP *ld, LDAPConn *lc ) in use_connection() argument
729 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in use_connection()
737 ldap_free_connection( LDAP *ld, LDAPConn *lc, int force, int unbind ) in ldap_free_connection() argument
741 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in ldap_free_connection()
749 for ( prevlc = NULL, tmplc = ld->ld_conns; in ldap_free_connection()
755 ld->ld_conns = tmplc->lconn_next; in ldap_free_connection()
759 if ( ld->ld_defconn == lc ) { in ldap_free_connection()
760 ld->ld_defconn = NULL; in ldap_free_connection()
773 lo = &ld->ld_options; in ldap_free_connection()
778 cb->lc_del( ld, lc->lconn_sb, cb ); in ldap_free_connection()
787 cb->lc_del( ld, lc->lconn_sb, cb ); in ldap_free_connection()
794 ldap_mark_select_clear( ld, lc->lconn_sb ); in ldap_free_connection()
796 ldap_send_unbind( ld, lc->lconn_sb, in ldap_free_connection()
805 ldap_int_sasl_close( ld, lc ); in ldap_free_connection()
807 ldap_int_gssapi_close( ld, lc ); in ldap_free_connection()
817 ldap_tavl_free( ld->ld_requests, ldap_do_free_request ); in ldap_free_connection()
818 ld->ld_requests = NULL; in ldap_free_connection()
821 if ( lc->lconn_sb != ld->ld_sb ) { in ldap_free_connection()
851 ldap_dump_connection( LDAP *ld, LDAPConn *lconns, int all ) in ldap_dump_connection() argument
856 Debug2( LDAP_DEBUG_TRACE, "** ld %p Connection%s:\n", (void *)ld, all ? "s" : "" ); in ldap_dump_connection()
857 LDAP_MUTEX_LOCK( &ld->ld_conn_mutex ); in ldap_dump_connection()
864 ld->ld_sb ) ? " (default)" : "" ); in ldap_dump_connection()
908 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_dump_connection()
914 ldap_dump_requests_and_responses( LDAP *ld ) in ldap_dump_requests_and_responses() argument
921 (void *)ld ); in ldap_dump_requests_and_responses()
922 node = ldap_tavl_end( ld->ld_requests, TAVL_DIR_LEFT ); in ldap_dump_requests_and_responses()
941 (void *)ld, i, ld->ld_nabandoned ); in ldap_dump_requests_and_responses()
942 Debug1( LDAP_DEBUG_TRACE, "** ld %p Response Queue:\n", (void *)ld ); in ldap_dump_requests_and_responses()
943 if ( ( lm = ld->ld_responses ) == NULL ) { in ldap_dump_requests_and_responses()
959 Debug2( LDAP_DEBUG_TRACE, " ld %p response count %d\n", (void *)ld, i ); in ldap_dump_requests_and_responses()
1009 ldap_free_request_int( LDAP *ld, LDAPRequest *lr ) in ldap_free_request_int() argument
1013 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_req_mutex ); in ldap_free_request_int()
1014 removed = ldap_tavl_delete( &ld->ld_requests, lr, ldap_req_cmp ); in ldap_free_request_int()
1025 ldap_free_request( LDAP *ld, LDAPRequest *lr ) in ldap_free_request() argument
1027 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_req_mutex ); in ldap_free_request()
1033 ldap_free_request( ld, lr->lr_child ); in ldap_free_request()
1048 ldap_free_request_int( ld, lr ); in ldap_free_request()
1059 LDAP *ld, in ldap_int_nextref() argument
1099 ldap_chase_v3referrals( LDAP *ld, LDAPRequest *lr, char **refs, int sref, char **errstrp, int *hadr… in ldap_chase_v3referrals() argument
1110 … LDAP_NEXTREF_PROC *nextref_proc = ld->ld_nextref_proc ? ld->ld_nextref_proc : ldap_int_nextref; in ldap_chase_v3referrals()
1112 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_res_mutex ); in ldap_chase_v3referrals()
1113 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in ldap_chase_v3referrals()
1114 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_req_mutex ); in ldap_chase_v3referrals()
1117 ld->ld_errno = LDAP_SUCCESS; /* optimistic */ in ldap_chase_v3referrals()
1130 if ( lr->lr_parentcnt >= ld->ld_refhoplimit ) { in ldap_chase_v3referrals()
1132 "more than %d referral hops (dropping)\n", ld->ld_refhoplimit ); in ldap_chase_v3referrals()
1133 ld->ld_errno = LDAP_REFERRAL_LIMIT_EXCEEDED; in ldap_chase_v3referrals()
1152 for ( nextref_proc( ld, &refarray, &i, ld->ld_nextref_params ); in ldap_chase_v3referrals()
1154 nextref_proc( ld, &refarray, &i, ld->ld_nextref_params ) ) in ldap_chase_v3referrals()
1162 ld->ld_errno = LDAP_PARAM_ERROR; in ldap_chase_v3referrals()
1176 ld->ld_errno = LDAP_NOT_SUPPORTED; in ldap_chase_v3referrals()
1183 if (( lc = find_connection( ld, srv, 1 )) != NULL ) { in ldap_chase_v3referrals()
1206 ld->ld_errno = LDAP_CLIENT_LOOP; in ldap_chase_v3referrals()
1228 ld->ld_errno = LDAP_NO_MEMORY; in ldap_chase_v3referrals()
1248 ld->ld_errno = LDAP_NO_MEMORY; in ldap_chase_v3referrals()
1274 LDAP_NEXT_MSGID( ld, id ); in ldap_chase_v3referrals()
1275 ber = re_encode_request( ld, origreq->lr_ber, id, in ldap_chase_v3referrals()
1279 ld->ld_errno = LDAP_ENCODING_ERROR; in ldap_chase_v3referrals()
1291 rc = ldap_send_server_request( ld, ber, id, in ldap_chase_v3referrals()
1296 … refarray[i], ld->ld_errno, ldap_err2string( ld->ld_errno ) ); in ldap_chase_v3referrals()
1297 unfollowedcnt += ldap_append_referral( ld, &unfollowed, refarray[i] ); in ldap_chase_v3referrals()
1300 ld->ld_errno = LDAP_REFERRAL; in ldap_chase_v3referrals()
1309 lc = find_connection( ld, srv, 1 ); in ldap_chase_v3referrals()
1311 ld->ld_errno = LDAP_OPERATIONS_ERROR; in ldap_chase_v3referrals()
1313 LDAP_MUTEX_UNLOCK( &ld->ld_conn_mutex ); in ldap_chase_v3referrals()
1362 ldap_chase_referrals( LDAP *ld, in ldap_chase_referrals() argument
1377 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_res_mutex ); in ldap_chase_referrals()
1378 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_conn_mutex ); in ldap_chase_referrals()
1379 LDAP_ASSERT_MUTEX_OWNER( &ld->ld_req_mutex ); in ldap_chase_referrals()
1382 ld->ld_errno = LDAP_SUCCESS; /* optimistic */ in ldap_chase_referrals()
1402 if ( lr->lr_parentcnt >= ld->ld_refhoplimit ) { in ldap_chase_referrals()
1405 ld->ld_refhoplimit ); in ldap_chase_referrals()
1431 rc = ldap_append_referral( ld, &unfollowed, ref ); in ldap_chase_referrals()
1442 if (( lc = find_connection( ld, srv, 1 )) != NULL ) { in ldap_chase_referrals()
1458 ld->ld_errno = LDAP_CLIENT_LOOP; in ldap_chase_referrals()
1464 LDAP_NEXT_MSGID( ld, id ); in ldap_chase_referrals()
1465 ber = re_encode_request( ld, origreq->lr_ber, in ldap_chase_referrals()
1478 rc = ldap_send_server_request( ld, ber, id, in ldap_chase_referrals()
1487 ref, ld->ld_errno, ldap_err2string( ld->ld_errno ) ); in ldap_chase_referrals()
1488 rc = ldap_append_referral( ld, &unfollowed, ref ); in ldap_chase_referrals()
1502 ldap_append_referral( LDAP *ld, char **referralsp, char *s ) in ldap_append_referral() argument
1517 ld->ld_errno = LDAP_NO_MEMORY; in ldap_append_referral()
1534 re_encode_request( LDAP *ld, in re_encode_request() argument
1569 ld->ld_errno = LDAP_DECODING_ERROR; in re_encode_request()
1615 ld->ld_errno = LDAP_DECODING_ERROR; in re_encode_request()
1622 if (( ber = ldap_alloc_ber_with_options( ld )) == NULL ) { in re_encode_request()
1641 ld->ld_errno = LDAP_ENCODING_ERROR; in re_encode_request()
1651 ld->ld_errno = LDAP_ENCODING_ERROR; in re_encode_request()
1670 ldap_find_request_by_msgid( LDAP *ld, ber_int_t msgid ) in ldap_find_request_by_msgid() argument
1675 lr = ldap_tavl_find( ld->ld_requests, &needle, ldap_req_cmp ); in ldap_find_request_by_msgid()
1694 ldap_return_request( LDAP *ld, LDAPRequest *lrx, int freeit ) in ldap_return_request() argument
1698 lr = ldap_tavl_find( ld->ld_requests, lrx, ldap_req_cmp ); in ldap_return_request()
1717 ldap_free_request_int( ld, lrx ); in ldap_return_request()
1719 ldap_free_request( ld, lrx ); in ldap_return_request()