Lines Matching defs:cu

100 #define	NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, errp) \
819 ns_conn_user_t *cu;
835 cu = (ns_conn_user_t *)calloc(1, sizeof (*cu));
836 if (cu == NULL) {
841 cu->type = type;
842 cu->state = NS_CONN_USER_ALLOCATED;
843 cu->tid = thr_self();
844 cu->userinfo = userinfo;
845 cu->referral = referral;
846 cu->ns_rc = NS_LDAP_SUCCESS;
847 cu->conn_mgmt = cmg;
851 return (cu);
856 __s_api_conn_user_reset(ns_conn_user_t *cu)
858 cu->ns_rc = NS_LDAP_SUCCESS;
859 if (cu->ns_error != NULL)
860 (void) __ns_ldap_freeError(&cu->ns_error);
861 cu->retry = B_FALSE;
862 cu->keep_conn = B_FALSE;
863 cu->bad_mt_conn = B_FALSE;
864 cu->use_mt_conn = B_FALSE;
876 __s_api_conn_user_free(ns_conn_user_t *cu)
880 if (cu == NULL)
883 cu->state = NS_CONN_USER_FREED;
884 if (cu->ns_error != NULL)
885 (void) __ns_ldap_freeError(&cu->ns_error);
887 cmg = cu->conn_mgmt;
890 (void) free(cu);
998 add_cu2cm(ns_conn_user_t *cu, ns_conn_mt_t *cm)
1002 cm->cu_head = cu;
1003 cm->cu_tail = cu;
1005 cm->cu_tail->next = cu;
1006 cm->cu_tail = cu;
1038 del_cu4cm(ns_conn_user_t *cu, ns_conn_mt_t *cm)
1042 if (cu == NULL || cm->cu_head == NULL || cm->cu_cnt == 0)
1047 if (cu == cm->cu_head) {
1050 cu->next = NULL;
1055 /* more than one and cu is the first one */
1056 if (cu == cm->cu_head) {
1057 cm->cu_head = cu->next;
1059 cu->next = NULL;
1065 if (cu == u)
1070 pu->next = cu->next;
1074 cu->next = NULL;
1171 wait_for_conn_mt(ns_conn_user_t *cu, ns_conn_mt_t *cm)
1174 cu->state = NS_CONN_USER_WAITING;
1175 add_cu2cm(cu, cm);
1176 cu->conn_mt = cm;
1188 (void) conn_wait(cm, cu);
1192 cu->state = NS_CONN_USER_WOKEUP;
1212 ns_conn_user_t *cu)
1297 cu->retry = B_TRUE;
1302 /* cu has not been attached to cm yet, use NULL as cu pointer */
1305 cu->retry = B_TRUE;
1329 match_conn_mt(ns_conn_user_t *cu, ns_conn_mt_t **cmt,
1341 cm->referral != cu->referral) {
1358 cu->type != NS_CONN_USER_WRITE && cm->cu_cnt == 0 &&
1373 switch (cu->type) {
1406 drop_conn = check_and_close_conn(cmg, &cm, cu);
1437 * cu : pointer to the conn_user structure
1444 Connection **session, ns_ldap_error_t **errorp, ns_conn_user_t *cu)
1452 if (errorp == NULL || cu == NULL || session == NULL)
1456 cmg = cu->conn_mgmt;
1461 if (cu->type == NS_CONN_USER_AUTH)
1469 cu->keep_conn = B_TRUE;
1476 cu->keep_conn == B_TRUE) || cmg->state == NS_CONN_MGMT_ACTIVE))
1480 cu->use_mt_conn = B_TRUE;
1482 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, errorp);
1486 cu->state = NS_CONN_USER_FINDING;
1490 rc = match_conn_mt(cu, &cn, st, server, cred);
1508 add_cu2cm(cu, cn);
1509 cu->conn_mt = cn;
1510 cu->state = NS_CONN_USER_CONNECTED;
1527 if (wait_for_conn_mt(cu, cn) != 1) {
1539 cu->state = NS_CONN_USER_CONNECT_ERROR;
1541 cu->state = NS_CONN_USER_FINDING;
1542 cu->use_mt_conn = B_FALSE;
1553 cu->state = NS_CONN_USER_CONNECTED;
1572 cu->conn_mt = cn;
1573 cn->opened_for = cu->type;
1574 cn->referral = cu->referral;
1591 * cu : pointer to the conn_user structure
1596 __s_api_conn_mt_add(Connection *con, ns_conn_user_t *cu, ns_ldap_error_t **ep)
1598 ns_conn_mgmt_t *cmg = cu->conn_mgmt;
1599 ns_conn_mt_t *cm = cu->conn_mt;
1602 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, ep);
1619 cm->opened_for = cu->type;
1620 add_cu2cm(cu, cm);
1621 cu->conn_mt = cm;
1622 cu->state = NS_CONN_USER_CONNECTED;
1641 * cu : pointer to the conn_user structure
1645 __s_api_conn_mt_return(ns_conn_user_t *cu)
1650 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1652 cm = cu->conn_mt;
1655 cmg = cu->conn_mgmt;
1658 del_cu4cm(cu, cm);
1659 cu->state = NS_CONN_USER_DISCONNECTED;
1660 cu->conn_mt = NULL;
1661 __s_api_conn_user_reset(cu);
1712 err_from_cm(ns_conn_user_t *cu, ns_conn_mt_t *cm) {
1715 cu->ns_rc = cm->ns_rc;
1716 if (cu->ns_error != NULL)
1717 (void) __ns_ldap_freeError(&cu->ns_error);
1718 cu->ns_error = NULL;
1722 cu->ns_rc = NS_LDAP_MEMORY;
1724 cu->ns_error = ep;
1730 err_from_caller(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp) {
1732 cu->ns_rc = rc;
1734 if (cu->ns_error != NULL)
1735 (void) __ns_ldap_freeError(&cu->ns_error);
1736 cu->ns_error = *errorp;
1739 cu->ns_error = NULL;
1746 * cu : pointer to the conn_user structure
1753 __s_api_conn_mt_remove(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp)
1759 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1761 if ((cm = cu->conn_mt) == NULL)
1763 cmg = cu->conn_mgmt;
1779 err_from_cm(cu, cm);
1781 del_cu4cm(cu, cm);
1782 cu->conn_mt = NULL;
1784 cu->retry = B_TRUE;
1785 cu->bad_mt_conn = B_FALSE;
1799 __s_api_check_libldap_MT_conn_support(ns_conn_user_t *cu, LDAP *ld,
1806 if (cu->conn_mt == NULL || cu->use_mt_conn == B_FALSE)
1809 cmg = cu->conn_mgmt;
1818 NS_CONN_CHECK_ABORT_AND_LOCK(cmg, cu, ep);
1835 __s_api_conn_mt_remove(cu, NS_LDAP_NOTFOUND, NULL);
1846 ns_conn_user_t *cu)
1872 if (cu != NULL && rc != LDAP_SERVER_DOWN)
1877 * If more cu exist to consume the error info, copy
1879 * a cu, cu won't be NULL. Check to see if there's
1880 * more cu that needs the error info. If caller does
1881 * not have a specific cu attached to it (e.g.,
1882 * shutdown_all_conn_mt()), cu is NULL, check if at
1883 * least one cu exists.
1885 if ((cu != NULL && cm->cu_cnt > 1) ||
1886 (cu == NULL && cm->cu_cnt > 0)) {
1903 if ((cu != NULL && cm->cu_cnt == 1) ||
1904 (cu == NULL && cm->cu_cnt == 0)) {
1919 * cu : pointer to the conn_user structure
1926 __s_api_conn_mt_close(ns_conn_user_t *cu, int rc, ns_ldap_error_t **errorp)
1932 if (cu == NULL || cu->use_mt_conn == B_FALSE)
1935 if (cu->state != NS_CONN_USER_CONNECTED || (cm = cu->conn_mt) == NULL)
1937 cmg = cu->conn_mgmt;
1943 free_cm = close_conn_mt(cm, rc, errorp, cu);
1951 err_from_caller(cu, rc, errorp);
1953 err_from_cm(cu, cm);
1957 del_cu4cm(cu, cm);
1958 cu->conn_mt = NULL;
1959 cu->bad_mt_conn = B_FALSE;
1961 cu->retry = B_TRUE;
2359 ns_conn_user_t *cu = *conn_user;
2362 if (*try_cnt > 0 && cu != NULL) {
2367 if (cu->type == NS_CONN_USER_GETENT && *rc == NS_LDAP_SUCCESS)
2369 cmg = cu->conn_mgmt;
2370 retry = cu->retry;
2371 if (cu->conn_mt != NULL)
2372 __s_api_conn_mt_return(cu);
2375 __s_api_conn_user_free(cu);
2405 __s_api_setup_getnext(ns_conn_user_t *cu, int *ns_err,
2415 if (cu->conn_mt != NULL && (cmg = cu->conn_mgmt) != NULL) {
2417 if (cu->bad_mt_conn == B_TRUE) {
2418 __s_api_conn_mt_close(cu, 0, NULL);
2419 *ns_err = cu->ns_rc;
2420 *errorp = cu->ns_error;
2421 cu->ns_error = NULL;