Lines Matching refs:b

39     LloadBackend *b = conn->backend;  in upstream_connect_cb()  local
43 checked_lock( &b->b_mutex ); in upstream_connect_cb()
46 s, b->b_uri.bv_val ); in upstream_connect_cb()
63 checked_unlock( &b->b_mutex ); in upstream_connect_cb()
80 b->b_opening--; in upstream_connect_cb()
81 b->b_failed++; in upstream_connect_cb()
93 backend_retry( b ); in upstream_connect_cb()
96 checked_unlock( &b->b_mutex ); in upstream_connect_cb()
105 LloadBackend *b = arg; in upstream_name_cb() local
116 checked_lock( &b->b_mutex ); in upstream_name_cb()
120 if ( b->b_dns_req == NULL ) { in upstream_name_cb()
121 checked_unlock( &b->b_mutex ); in upstream_name_cb()
124 b->b_dns_req = NULL; in upstream_name_cb()
130 b->b_uri.bv_val, evutil_gai_strerror( result ) ); in upstream_name_cb()
145 if ( b->b_proto == LDAP_PROTO_TCP ) { in upstream_name_cb()
229 ai->sin_port = htons( b->b_port ); in upstream_name_cb()
233 ai->sin6_port = htons( b->b_port ); in upstream_name_cb()
243 b->b_uri.bv_val ); in upstream_name_cb()
250 conn->backend = b; in upstream_name_cb()
265 LDAP_LIST_INSERT_HEAD( &b->b_connecting, conn, next ); in upstream_name_cb()
268 b->b_uri.bv_val ); in upstream_name_cb()
269 } else if ( upstream_init( s, b ) == NULL ) { in upstream_name_cb()
273 checked_unlock( &b->b_mutex ); in upstream_name_cb()
282 b->b_opening--; in upstream_name_cb()
283 b->b_failed++; in upstream_name_cb()
284 backend_retry( b ); in upstream_name_cb()
285 checked_unlock( &b->b_mutex ); in upstream_name_cb()
295 LloadBackend *b, *first, *next; in backend_select() local
298 first = b = current_backend; in backend_select()
313 checked_lock( &b->b_mutex ); in backend_select()
314 next = LDAP_CIRCLEQ_LOOP_NEXT( &backend, b, b_next ); in backend_select()
316 if ( b->b_max_pending && b->b_n_ops_executing >= b->b_max_pending ) { in backend_select()
319 b->b_uri.bv_val ); in backend_select()
320 checked_unlock( &b->b_mutex ); in backend_select()
321 b = next; in backend_select()
331 head = &b->b_bindconns; in backend_select()
333 head = &b->b_conns; in backend_select()
343 ( b->b_max_conn_pending == 0 || in backend_select()
344 c->c_n_ops_executing < b->b_max_conn_pending ) ) { in backend_select()
364 b->b_n_ops_executing++; in backend_select()
366 b->b_counters[LLOAD_STATS_OPS_BIND].lc_ops_received++; in backend_select()
368 b->b_counters[LLOAD_STATS_OPS_OTHER].lc_ops_received++; in backend_select()
373 checked_unlock( &b->b_mutex ); in backend_select()
382 checked_unlock( &b->b_mutex ); in backend_select()
384 b = next; in backend_select()
385 } while ( b != first ); in backend_select()
395 backend_retry( LloadBackend *b ) in backend_retry() argument
404 assert_locked( &b->b_mutex ); in backend_retry()
406 requested = b->b_numconns; in backend_retry()
411 requested += b->b_numbindconns; in backend_retry()
414 if ( b->b_active + b->b_bindavail + b->b_opening >= requested ) { in backend_retry()
417 assert_locked( &b->b_mutex ); in backend_retry()
421 if ( b->b_opening > 0 ) { in backend_retry()
424 assert( b->b_opening == 1 ); in backend_retry()
425 assert_locked( &b->b_mutex ); in backend_retry()
431 assert( !event_pending( b->b_retry_event, EV_TIMEOUT, NULL ) ); in backend_retry()
432 b->b_opening++; in backend_retry()
434 if ( b->b_failed > 0 ) { in backend_retry()
437 b->b_retry_timeout ); in backend_retry()
438 event_add( b->b_retry_event, &b->b_retry_tv ); in backend_retry()
439 assert_locked( &b->b_mutex ); in backend_retry()
447 &connection_pool, backend_connect_task, b, &b->b_cookie ) ) { in backend_retry()
452 b->b_cookie = NULL; in backend_retry()
453 b->b_failed++; in backend_retry()
454 event_add( b->b_retry_event, &b->b_retry_tv ); in backend_retry()
456 assert_locked( &b->b_mutex ); in backend_retry()
463 LloadBackend *b = arg; in backend_connect() local
468 checked_lock( &b->b_mutex ); in backend_connect()
469 assert( b->b_dns_req == NULL ); in backend_connect()
471 if ( b->b_cookie ) { in backend_connect()
472 b->b_cookie = NULL; in backend_connect()
478 b->b_opening--; in backend_connect()
479 checked_unlock( &b->b_mutex ); in backend_connect()
488 b->b_host ); in backend_connect()
491 if ( b->b_proto == LDAP_PROTO_IPC ) { in backend_connect()
506 if ( strlen( b->b_host ) > ( sizeof(addr.sun_path) - 1 ) ) { in backend_connect()
512 strcpy( addr.sun_path, b->b_host ); in backend_connect()
527 conn->backend = b; in backend_connect()
542 LDAP_LIST_INSERT_HEAD( &b->b_connecting, conn, next ); in backend_connect()
545 b->b_uri.bv_val ); in backend_connect()
546 } else if ( upstream_init( s, b ) == NULL ) { in backend_connect()
550 checked_unlock( &b->b_mutex ); in backend_connect()
561 hostname = b->b_host; in backend_connect()
571 b->b_dns_req = placeholder; in backend_connect()
572 checked_unlock( &b->b_mutex ); in backend_connect()
575 dnsbase, hostname, NULL, &hints, upstream_name_cb, b ); in backend_connect()
577 checked_lock( &b->b_mutex ); in backend_connect()
578 assert( request || b->b_dns_req != placeholder ); in backend_connect()
583 if ( b->b_dns_req == placeholder ) { in backend_connect()
584 b->b_dns_req = request; in backend_connect()
586 checked_unlock( &b->b_mutex ); in backend_connect()
591 b->b_opening--; in backend_connect()
592 b->b_failed++; in backend_connect()
593 backend_retry( b ); in backend_connect()
594 checked_unlock( &b->b_mutex ); in backend_connect()
613 backend_reset( LloadBackend *b, int gentle ) in backend_reset() argument
615 assert_locked( &b->b_mutex ); in backend_reset()
616 if ( b->b_cookie ) { in backend_reset()
617 if ( ldap_pvt_thread_pool_retract( b->b_cookie ) ) { in backend_reset()
618 b->b_cookie = NULL; in backend_reset()
619 b->b_opening--; in backend_reset()
634 if ( b->b_retry_event && in backend_reset()
635 event_pending( b->b_retry_event, EV_TIMEOUT, NULL ) ) { in backend_reset()
636 assert( b->b_failed ); in backend_reset()
637 checked_unlock( &b->b_mutex ); in backend_reset()
638 event_del( b->b_retry_event ); in backend_reset()
639 checked_lock( &b->b_mutex ); in backend_reset()
640 b->b_opening--; in backend_reset()
642 if ( b->b_dns_req ) { in backend_reset()
643 evdns_getaddrinfo_cancel( b->b_dns_req ); in backend_reset()
644 b->b_dns_req = NULL; in backend_reset()
645 b->b_opening--; in backend_reset()
647 while ( !LDAP_LIST_EMPTY( &b->b_connecting ) ) { in backend_reset()
648 LloadPendingConnection *pending = LDAP_LIST_FIRST( &b->b_connecting ); in backend_reset()
666 b->b_opening--; in backend_reset()
669 &b->b_mutex, &b->b_preparing, lload_connection_close, &gentle ); in backend_reset()
670 assert( LDAP_CIRCLEQ_EMPTY( &b->b_preparing ) ); in backend_reset()
671 assert( b->b_opening == ( b->b_cookie ? 1 : 0 ) ); in backend_reset()
672 b->b_failed = 0; in backend_reset()
674 connections_walk_last( &b->b_mutex, &b->b_bindconns, b->b_last_bindconn, in backend_reset()
676 assert( gentle || b->b_bindavail == 0 ); in backend_reset()
678 connections_walk_last( &b->b_mutex, &b->b_conns, b->b_last_conn, in backend_reset()
680 assert( gentle || b->b_active == 0 ); in backend_reset()
681 assert_locked( &b->b_mutex ); in backend_reset()
685 lload_backend_destroy( LloadBackend *b ) in lload_backend_destroy() argument
687 LloadBackend *next = LDAP_CIRCLEQ_LOOP_NEXT( &backend, b, b_next ); in lload_backend_destroy()
691 b->b_uri.bv_val, b->b_numconns, b->b_numbindconns ); in lload_backend_destroy()
693 checked_lock( &b->b_mutex ); in lload_backend_destroy()
694 b->b_numconns = b->b_numbindconns = 0; in lload_backend_destroy()
695 backend_reset( b, 0 ); in lload_backend_destroy()
697 LDAP_CIRCLEQ_REMOVE( &backend, b, b_next ); in lload_backend_destroy()
698 if ( b == next ) { in lload_backend_destroy()
705 if ( b->b_monitor ) { in lload_backend_destroy()
714 rc = b->b_monitor->mss_destroy( be, b->b_monitor ); in lload_backend_destroy()
718 checked_unlock( &b->b_mutex ); in lload_backend_destroy()
719 ldap_pvt_thread_mutex_destroy( &b->b_mutex ); in lload_backend_destroy()
721 if ( b->b_retry_event ) { in lload_backend_destroy()
722 event_del( b->b_retry_event ); in lload_backend_destroy()
723 event_free( b->b_retry_event ); in lload_backend_destroy()
724 b->b_retry_event = NULL; in lload_backend_destroy()
727 ch_free( b->b_host ); in lload_backend_destroy()
728 ch_free( b->b_uri.bv_val ); in lload_backend_destroy()
729 ch_free( b->b_name.bv_val ); in lload_backend_destroy()
730 ch_free( b ); in lload_backend_destroy()
737 LloadBackend *b = LDAP_CIRCLEQ_FIRST( &backend ); in lload_backends_destroy() local
739 lload_backend_destroy( b ); in lload_backends_destroy()