Lines Matching defs:cu

103 #define	NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, errp) \
816 ns_conn_user_t *cu;
832 cu = (ns_conn_user_t *)calloc(1, sizeof (*cu));
833 if (cu == NULL) {
838 cu->type = type;
839 cu->state = NS_CONN_USER_ALLOCATED;
840 cu->tid = thr_self();
841 cu->userinfo = userinfo;
842 cu->referral = referral;
843 cu->ns_rc = NS_LDAP_SUCCESS;
844 cu->conn_mgmt = cmg;
848 return (cu);
860 __s_api_conn_user_free(ns_conn_user_t *cu)
864 if (cu == NULL)
867 cu->state = NS_CONN_USER_FREED;
868 if (cu->ns_error != NULL)
869 (void) __ns_ldap_freeError(&cu->ns_error);
871 cmg = cu->conn_mgmt;
874 (void) free(cu);
947 add_cu2cm(ns_conn_user_t *cu, ns_conn_mt_t *cm)
951 cm->cu_head = cu;
952 cm->cu_tail = cu;
954 cm->cu_tail->next = cu;
955 cm->cu_tail = cu;
987 del_cu4cm(ns_conn_user_t *cu, ns_conn_mt_t *cm)
991 if (cu == NULL || cm->cu_head == NULL || cm->cu_cnt == 0)
996 if (cu == cm->cu_head) {
999 cu->next = NULL;
1004 /* more than one and cu is the first one */
1005 if (cu == cm->cu_head) {
1006 cm->cu_head = cu->next;
1008 cu->next = NULL;
1014 if (cu == u)
1019 pu->next = cu->next;
1023 cu->next = NULL;
1106 wait_for_conn_mt(ns_conn_user_t *cu, ns_conn_mt_t *cm)
1109 cu->state = NS_CONN_USER_WAITING;
1110 add_cu2cm(cu, cm);
1111 cu->conn_mt = cm;
1123 (void) conn_wait(cm, cu);
1127 cu->state = NS_CONN_USER_WOKEUP;
1133 del_cu4cm(cu, cm);
1134 cu->conn_mt = NULL;
1135 cu->bad_mt_conn = B_FALSE;
1151 ns_conn_user_t *cu) {
1235 cu->retry = B_TRUE;
1240 /* cu has not been attached to cm yet, use NULL as cu pointer */
1243 cu->retry = B_TRUE;
1267 match_conn_mt(ns_conn_user_t *cu, ns_conn_mt_t **cmt,
1279 cm->referral != cu->referral) {
1296 cu->type != NS_CONN_USER_WRITE && cm->cu_cnt == 0 &&
1311 switch (cu->type) {
1344 drop_conn = check_and_close_conn(cmg, &cm, cu);
1375 * cu : pointer to the conn_user structure
1382 Connection **session, ns_ldap_error_t **errorp, ns_conn_user_t *cu)
1390 if (errorp == NULL || cu == NULL || session == NULL)
1394 cmg = cu->conn_mgmt;
1399 if (cu->type == NS_CONN_USER_AUTH)
1407 cu->keep_conn = B_TRUE;
1414 cu->keep_conn == B_TRUE) || cmg->state == NS_CONN_MGMT_ACTIVE))
1418 cu->use_mt_conn = B_TRUE;
1420 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, errorp);
1424 cu->state = NS_CONN_USER_FINDING;
1428 rc = match_conn_mt(cu, &cn, st, server, cred);
1446 add_cu2cm(cu, cn);
1447 cu->conn_mt = cn;
1448 cu->state = NS_CONN_USER_CONNECTED;
1465 if (wait_for_conn_mt(cu, cn) != 1) {
1477 cu->state = NS_CONN_USER_CONNECT_ERROR;
1479 cu->state = NS_CONN_USER_FINDING;
1480 cu->use_mt_conn = B_FALSE;
1491 cu->state = NS_CONN_USER_CONNECTED;
1510 cu->conn_mt = cn;
1511 cn->opened_for = cu->type;
1512 cn->referral = cu->referral;
1529 * cu : pointer to the conn_user structure
1534 __s_api_conn_mt_add(Connection *con, ns_conn_user_t *cu, ns_ldap_error_t **ep)
1536 ns_conn_mgmt_t *cmg = cu->conn_mgmt;
1537 ns_conn_mt_t *cm = cu->conn_mt;
1540 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, ep);
1557 cm->opened_for = cu->type;
1558 add_cu2cm(cu, cm);
1559 cu->conn_mt = cm;
1560 cu->state = NS_CONN_USER_CONNECTED;
1579 * cu : pointer to the conn_user structure
1583 __s_api_conn_mt_return(ns_conn_user_t *cu)
1588 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1590 cm = cu->conn_mt;
1593 cmg = cu->conn_mgmt;
1596 del_cu4cm(cu, cm);
1597 cu->state = NS_CONN_USER_DISCONNECTED;
1598 cu->conn_mt = NULL;
1599 cu->bad_mt_conn = B_FALSE;
1650 err_from_cm(ns_conn_user_t *cu, ns_conn_mt_t *cm) {
1653 cu->ns_rc = cm->ns_rc;
1654 if (cu->ns_error != NULL)
1655 (void) __ns_ldap_freeError(&cu->ns_error);
1656 cu->ns_error = NULL;
1660 cu->ns_rc = NS_LDAP_MEMORY;
1662 cu->ns_error = ep;
1668 err_from_caller(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp) {
1670 cu->ns_rc = rc;
1672 if (cu->ns_error != NULL)
1673 (void) __ns_ldap_freeError(&cu->ns_error);
1674 cu->ns_error = *errorp;
1677 cu->ns_error = NULL;
1684 * cu : pointer to the conn_user structure
1691 __s_api_conn_mt_remove(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp)
1697 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1699 if ((cm = cu->conn_mt) == NULL)
1701 cmg = cu->conn_mgmt;
1715 err_from_cm(cu, cm);
1719 del_cu4cm(cu, cm);
1720 cu->conn_mt = NULL;
1721 cu->bad_mt_conn = B_FALSE;
1735 __s_api_check_libldap_MT_conn_support(ns_conn_user_t *cu, LDAP *ld,
1742 if (cu->conn_mt == NULL || cu->use_mt_conn == B_FALSE)
1745 cmg = cu->conn_mgmt;
1754 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, ep);
1771 __s_api_conn_mt_remove(cu, NS_LDAP_NOTFOUND, NULL);
1782 ns_conn_user_t *cu)
1803 * If more cu exist to consume the error info, copy
1805 * a cu, cu won't be NULL. Check to see if there's
1806 * more cu that needs the error info. If caller does
1807 * not have a specific cu attached to it (e.g.,
1808 * shutdown_all_conn_mt()), cu is NULL, check if at
1809 * least one cu exists.
1811 if ((cu != NULL && cm->cu_cnt > 1) ||
1812 (cu == NULL && cm->cu_cnt > 0)) {
1829 if ((cu != NULL && cm->cu_cnt == 1) ||
1830 (cu == NULL && cm->cu_cnt == 0)) {
1845 * cu : pointer to the conn_user structure
1852 __s_api_conn_mt_close(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp)
1858 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1861 if (cu->state != NS_CONN_USER_CONNECTED || (cm = cu->conn_mt) == NULL)
1863 cmg = cu->conn_mgmt;
1869 free_cm = close_conn_mt(cm, rc, errorp, cu);
1877 err_from_caller(cu, rc, errorp);
1879 err_from_cm(cu, cm);
1883 del_cu4cm(cu, cm);
1884 cu->conn_mt = NULL;
1885 cu->bad_mt_conn = B_FALSE;
1887 cu->retry = B_TRUE;
2285 ns_conn_user_t *cu = *conn_user;
2288 if (*try_cnt > 0 && cu != NULL) {
2293 if (cu->type == NS_CONN_USER_GETENT && *rc == NS_LDAP_SUCCESS)
2295 cmg = cu->conn_mgmt;
2296 retry = cu->retry;
2297 if (cu->conn_mt != NULL)
2298 __s_api_conn_mt_return(cu);
2301 __s_api_conn_user_free(cu);
2331 __s_api_setup_getnext(ns_conn_user_t *cu, int *ns_err,
2341 if (cu->conn_mt != NULL && (cmg = cu->conn_mgmt) != NULL) {
2343 if (cu->bad_mt_conn == B_TRUE) {
2344 __s_api_conn_mt_close(cu, 0, NULL);
2345 *ns_err = cu->ns_rc;
2346 *errorp = cu->ns_error;
2347 cu->ns_error = NULL;