Lines Matching refs:ld

43 static LDAPConn *find_connection( LDAP *ld, LDAPServer *srv, int any );
44 static void use_connection( LDAP *ld, LDAPConn *lc );
46 static int chase_one_referral( LDAP *ld, LDAPRequest *lr, LDAPRequest *origreq,
48 static int re_encode_request( LDAP *ld, BerElement *origber,
52 static LDAPServer *dn2servers( LDAP *ld, char *dn );
58 nsldapi_alloc_ber_with_options( LDAP *ld, BerElement **berp ) in nsldapi_alloc_ber_with_options() argument
62 LDAP_MUTEX_LOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_alloc_ber_with_options()
63 if (( *berp = ber_alloc_t( ld->ld_lberoptions )) == NULLBER ) { in nsldapi_alloc_ber_with_options()
65 LDAP_SET_LDERRNO( ld, err, NULL, NULL ); in nsldapi_alloc_ber_with_options()
69 nsldapi_set_ber_options( ld, *berp ); in nsldapi_alloc_ber_with_options()
72 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_alloc_ber_with_options()
79 nsldapi_set_ber_options( LDAP *ld, BerElement *ber ) in nsldapi_set_ber_options() argument
81 ber->ber_options = ld->ld_lberoptions; in nsldapi_set_ber_options()
83 if (( ld->ld_lberoptions & LBER_OPT_TRANSLATE_STRINGS ) != 0 ) { in nsldapi_set_ber_options()
85 ld->ld_lber_encode_translate_proc, in nsldapi_set_ber_options()
86 ld->ld_lber_decode_translate_proc ); in nsldapi_set_ber_options()
94 nsldapi_send_initial_request( LDAP *ld, int msgid, unsigned long msgtype, in nsldapi_send_initial_request() argument
102 LDAP_MUTEX_LOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_initial_request()
103 if (( ld->ld_options & LDAP_BITOPT_DNS ) != 0 && ldap_is_dns_dn( dn )) { in nsldapi_send_initial_request()
104 if (( servers = dn2servers( ld, dn )) == NULL ) { in nsldapi_send_initial_request()
106 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_initial_request()
135 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_initial_request()
138 return( nsldapi_send_server_request( ld, ber, msgid, NULL, in nsldapi_send_initial_request()
146 LDAP *ld, /* session handle */ in nsldapi_send_server_request() argument
163 LDAP_MUTEX_LOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
166 if ( ld->ld_defconn == NULL ) { in nsldapi_send_server_request()
167 LDAP_MUTEX_LOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_server_request()
168 if ( bindreqdn == NULL && ( ld->ld_options in nsldapi_send_server_request()
170 LDAP_SET_LDERRNO( ld, LDAP_SERVER_DOWN, in nsldapi_send_server_request()
173 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_server_request()
174 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
177 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_send_server_request()
179 if ( nsldapi_open_ldap_defconn( ld ) < 0 ) { in nsldapi_send_server_request()
181 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
185 lc = ld->ld_defconn; in nsldapi_send_server_request()
187 if (( lc = find_connection( ld, srvlist, 1 )) == in nsldapi_send_server_request()
195 lc = nsldapi_new_connection( ld, &srvlist, 0, in nsldapi_send_server_request()
214 || ( (ld->ld_options & LDAP_BITOPT_ASYNC in nsldapi_send_server_request()
217 || (!(ld->ld_options & LDAP_BITOPT_ASYNC ) in nsldapi_send_server_request()
222 LDAP_SET_LDERRNO( ld, LDAP_SERVER_DOWN, NULL, NULL ); in nsldapi_send_server_request()
228 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
232 use_connection( ld, lc ); in nsldapi_send_server_request()
239 LDAP_SET_LDERRNO( ld, LDAP_NO_MEMORY, NULL, NULL ); in nsldapi_send_server_request()
240 nsldapi_free_connection( ld, lc, NULL, NULL, 0, 0 ); in nsldapi_send_server_request()
246 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
272 LDAP_MUTEX_LOCK( ld, LDAP_REQ_LOCK ); in nsldapi_send_server_request()
273 if (( lr->lr_next = ld->ld_requests ) != NULL ) { in nsldapi_send_server_request()
276 ld->ld_requests = lr; in nsldapi_send_server_request()
279 if (( err = nsldapi_ber_flush( ld, lc->lconn_sb, ber, 0, 1 )) != 0 ) { in nsldapi_send_server_request()
282 if (ld->ld_options & LDAP_BITOPT_ASYNC && err == -2 ) { in nsldapi_send_server_request()
284 nsldapi_iostatus_interest_write( ld, lc->lconn_sb ); in nsldapi_send_server_request()
287 LDAP_SET_LDERRNO( ld, LDAP_SERVER_DOWN, NULL, NULL ); in nsldapi_send_server_request()
288 nsldapi_free_request( ld, lr, 0 ); in nsldapi_send_server_request()
289 nsldapi_free_connection( ld, lc, NULL, NULL, 0, 0 ); in nsldapi_send_server_request()
290 LDAP_MUTEX_UNLOCK( ld, LDAP_REQ_LOCK ); in nsldapi_send_server_request()
291 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
302 if (ld->ld_options & LDAP_BITOPT_ASYNC) { in nsldapi_send_server_request()
306 nsldapi_iostatus_interest_read( ld, lc->lconn_sb ); in nsldapi_send_server_request()
308 LDAP_MUTEX_UNLOCK( ld, LDAP_REQ_LOCK ); in nsldapi_send_server_request()
309 LDAP_MUTEX_UNLOCK( ld, LDAP_CONN_LOCK ); in nsldapi_send_server_request()
311 LDAP_SET_LDERRNO( ld, LDAP_SUCCESS, NULL, NULL ); in nsldapi_send_server_request()
321 nsldapi_ber_flush( LDAP *ld, Sockbuf *sb, BerElement *ber, int freeit, in nsldapi_ber_flush() argument
331 LDAP_SET_ERRNO( ld, 0 ); in nsldapi_ber_flush()
337 terrno = LDAP_GET_ERRNO( ld ); in nsldapi_ber_flush()
339 if (ld->ld_options & LDAP_BITOPT_ASYNC) { in nsldapi_ber_flush()
341 nsldapi_connection_lost_nolock( ld, sb ); in nsldapi_ber_flush()
347 nsldapi_connection_lost_nolock( ld, sb ); in nsldapi_ber_flush()
358 nsldapi_new_connection( LDAP *ld, LDAPServer **srvlistp, int use_ldsb, in nsldapi_new_connection() argument
375 LDAP_SET_LDERRNO( ld, LDAP_NO_MEMORY, NULL, NULL ); in nsldapi_new_connection()
379 LDAP_MUTEX_LOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_new_connection()
390 if ( ber_sockbuf_get_option( ld->ld_sbp, in nsldapi_new_connection()
395 if ( ber_sockbuf_get_option( ld->ld_sbp, in nsldapi_new_connection()
401 if ( ber_sockbuf_get_option( ld->ld_sbp, in nsldapi_new_connection()
409 lc->lconn_sb = ( use_ldsb ) ? ld->ld_sbp : sb; in nsldapi_new_connection()
410 lc->lconn_version = ld->ld_version; /* inherited */ in nsldapi_new_connection()
411 LDAP_MUTEX_UNLOCK( ld, LDAP_OPTION_LOCK ); in nsldapi_new_connection()
419 rc = nsldapi_connect_to_host( ld, lc->lconn_sb, in nsldapi_new_connection()
446 if (ld->ld_options & LDAP_BITOPT_ASYNC && rc == -2) in nsldapi_new_connection()
454 lc->lconn_next = ld->ld_conns; in nsldapi_new_connection()
455 ld->ld_conns = lc; in nsldapi_new_connection()
468 if ( ld->ld_rebind_fn == NULL ) { in nsldapi_new_connection()
472 if (( lderr = (*ld->ld_rebind_fn)( ld, &binddn, &passwd, in nsldapi_new_connection()
473 &authmethod, 0, ld->ld_rebind_arg )) in nsldapi_new_connection()
477 LDAP_SET_LDERRNO( ld, lderr, NULL, NULL ); in nsldapi_new_connection()
484 savedefconn = ld->ld_defconn; in nsldapi_new_connection()
485 ld->ld_defconn = lc; in nsldapi_new_connection()
494 if (( lderr = ldap_bind_s( ld, binddn, passwd, in nsldapi_new_connection()
508 ld->ld_defconn = savedefconn; in nsldapi_new_connection()
512 (*ld->ld_rebind_fn)( ld, &binddn, &passwd, in nsldapi_new_connection()
513 &authmethod, 1, ld->ld_rebind_arg ); in nsldapi_new_connection()
517 nsldapi_free_connection( ld, lc, NULL, NULL, 1, 0 ); in nsldapi_new_connection()
531 find_connection( LDAP *ld, LDAPServer *srv, int any ) in find_connection() argument
540 for ( lc = ld->ld_conns; lc != NULL; lc = lc->lconn_next ) { in find_connection()
561 use_connection( LDAP *ld, LDAPConn *lc ) in use_connection() argument
569 nsldapi_free_connection( LDAP *ld, LDAPConn *lc, LDAPControl **serverctrls, in nsldapi_free_connection() argument
578 nsldapi_iostatus_interest_clear( ld, lc->lconn_sb ); in nsldapi_free_connection()
580 nsldapi_send_unbind( ld, lc->lconn_sb, in nsldapi_free_connection()
584 nsldapi_close_connection( ld, lc->lconn_sb ); in nsldapi_free_connection()
586 for ( tmplc = ld->ld_conns; tmplc != NULL; in nsldapi_free_connection()
590 ld->ld_conns = tmplc->lconn_next; in nsldapi_free_connection()
607 if ( lc->lconn_sb != ld->ld_sbp ) { in nsldapi_free_connection()
630 nsldapi_dump_connection( LDAP *ld, LDAPConn *lconns, int all ) in nsldapi_dump_connection() argument
649 "No", ( lc->lconn_sb == ld->ld_sbp ) ? in nsldapi_dump_connection()
678 nsldapi_dump_requests_and_responses( LDAP *ld ) in nsldapi_dump_requests_and_responses() argument
685 LDAP_MUTEX_LOCK( ld, LDAP_REQ_LOCK ); in nsldapi_dump_requests_and_responses()
686 if (( lr = ld->ld_requests ) == NULL ) { in nsldapi_dump_requests_and_responses()
706 LDAP_MUTEX_UNLOCK( ld, LDAP_REQ_LOCK ); in nsldapi_dump_requests_and_responses()
709 LDAP_MUTEX_LOCK( ld, LDAP_RESP_LOCK ); in nsldapi_dump_requests_and_responses()
710 if (( lm = ld->ld_responses ) == NULLMSG ) { in nsldapi_dump_requests_and_responses()
727 LDAP_MUTEX_UNLOCK( ld, LDAP_RESP_LOCK ); in nsldapi_dump_requests_and_responses()
733 nsldapi_free_request( LDAP *ld, LDAPRequest *lr, int free_conn ) in nsldapi_free_request() argument
748 nsldapi_free_request( ld, tmplr, free_conn ); in nsldapi_free_request()
752 nsldapi_free_connection( ld, lr->lr_conn, NULL, NULL, 0, 1 ); in nsldapi_free_request()
756 ld->ld_requests = lr->lr_next; in nsldapi_free_request()
814 nsldapi_chase_v2_referrals( LDAP *ld, LDAPRequest *lr, char **errstrp, in nsldapi_chase_v2_referrals() argument
843 if ( lr->lr_parentcnt >= ld->ld_refhoplimit ) { in nsldapi_chase_v2_referrals()
846 ld->ld_refhoplimit, 0, 0 ); in nsldapi_chase_v2_referrals()
869 rc = chase_one_referral( ld, lr, origreq, ref, "v2 referral", in nsldapi_chase_v2_referrals()
873 if (( tmprc = nsldapi_append_referral( ld, &unfollowed, in nsldapi_chase_v2_referrals()
891 nsldapi_chase_v3_refs( LDAP *ld, LDAPRequest *lr, char **v3refs, in nsldapi_chase_v3_refs() argument
905 if ( lr->lr_parentcnt >= ld->ld_refhoplimit ) { in nsldapi_chase_v3_refs()
908 ld->ld_refhoplimit, 0, 0 ); in nsldapi_chase_v3_refs()
925 rc = chase_one_referral( ld, lr, origreq, v3refs[i], in nsldapi_chase_v3_refs()
946 chase_one_referral( LDAP *ld, LDAPRequest *lr, LDAPRequest *origreq, in chase_one_referral() argument
968 if ( secure && ld->ld_extconnect_fn == NULL ) { in chase_one_referral()
979 LDAP_MUTEX_LOCK( ld, LDAP_MSGID_LOCK ); in chase_one_referral()
980 msgid = ++ld->ld_msgid; in chase_one_referral()
981 LDAP_MUTEX_UNLOCK( ld, LDAP_MSGID_LOCK ); in chase_one_referral()
983 if (( tmprc = re_encode_request( ld, origreq->lr_ber, msgid, in chase_one_referral()
996 if (ludp->lud_host == NULL && ld->ld_defhost == NULL) { in chase_one_referral()
1053 if ( nsldapi_send_server_request( ld, ber, msgid, in chase_one_referral()
1055 rc = LDAP_GET_LDERRNO( ld, NULL, NULL ); in chase_one_referral()
1073 nsldapi_append_referral( LDAP *ld, char **referralsp, char *s ) in nsldapi_append_referral() argument
1105 re_encode_request( LDAP *ld, BerElement *origber, int msgid, LDAPURLDesc *ludp, in re_encode_request() argument
1170 if (( rc = nsldapi_alloc_ber_with_options( ld, &ber )) in re_encode_request()
1221 nsldapi_find_request_by_msgid( LDAP *ld, int msgid ) in nsldapi_find_request_by_msgid() argument
1225 for ( lr = ld->ld_requests; lr != NULL; lr = lr->lr_next ) { in nsldapi_find_request_by_msgid()
1242 nsldapi_connection_lost_nolock( LDAP *ld, Sockbuf *sb ) in nsldapi_connection_lost_nolock() argument
1252 for ( lr = ld->ld_requests; lr != NULL; lr = lr->lr_next ) { in nsldapi_connection_lost_nolock()
1258 nsldapi_iostatus_interest_clear( ld, in nsldapi_connection_lost_nolock()
1268 dn2servers( LDAP *ld, char *dn ) /* dn can also be a domain.... */ in dn2servers() argument
1281 LDAP_SET_LDERRNO( ld, LDAP_NO_MEMORY, NULL, NULL ); in dn2servers()
1342 LDAP_SET_LDERRNO( ld, LDAP_SERVER_DOWN, NULL, NULL ); in dn2servers()