Lines Matching refs:conn

116 static int _sasl_checkpass(sasl_conn_t *conn,
148 int sasl_setpass(sasl_conn_t *conn, in sasl_setpass() argument
156 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn; in sasl_setpass()
163 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx; in sasl_setpass()
172 if (!conn) return SASL_BADPARAM; in sasl_setpass()
173 if (conn->type != SASL_CONN_SERVER) PARAMERROR(conn); in sasl_setpass()
177 PARAMERROR(conn); in sasl_setpass()
180 result = _sasl_getcallback(conn, SASL_CB_SERVER_USERDB_SETPASS, in sasl_setpass()
183 tmpresult = setpass_cb(conn, context, user, pass, passlen, in sasl_setpass()
186 _sasl_log(conn, SASL_LOG_ERR, in sasl_setpass()
190 _sasl_log(conn, SASL_LOG_NOTE, in sasl_setpass()
208 ((sasl_server_conn_t *)conn)->sparams, in sasl_setpass()
215 _sasl_log(conn, SASL_LOG_NOTE, in sasl_setpass()
223 _sasl_log(conn, SASL_LOG_NOTE, in sasl_setpass()
227 _sasl_log(conn, SASL_LOG_ERR, in sasl_setpass()
239 RETURN(conn, result); in sasl_setpass()
623 static int server_idle(sasl_conn_t *conn) argument
630 if (conn == NULL)
633 gctx = conn->gctx;
648 conn,
649 conn ? ((sasl_server_conn_t *)conn)->sparams : NULL))
1196 _sasl_transition(sasl_conn_t * conn, argument
1205 if (! conn)
1208 if (! conn->oparams.authid)
1209 PARAMERROR(conn);
1212 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK)
1221 result = sasl_setpass(conn,
1222 conn->oparams.authid,
1228 RETURN(conn,result);
1408 static int mech_permitted(sasl_conn_t *conn, argument
1411 sasl_server_conn_t *s_conn = (sasl_server_conn_t *)conn;
1422 if(!conn) return 0;
1425 gctx = conn->gctx;
1430 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Parameter error");
1432 PARAMERROR(conn);
1440 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
1466 s_conn->sparams->serverFQDN=conn->serverFQDN;
1467 s_conn->sparams->service=conn->service;
1469 s_conn->sparams->props=conn->props;
1470 s_conn->sparams->external_ssf=conn->external.ssf;
1488 if (conn->props.min_ssf < conn->external.ssf) {
1491 minssf = conn->props.min_ssf - conn->external.ssf;
1502 sasl_seterror(conn, SASL_NOLOG,
1505 sasl_seterror(conn, SASL_NOLOG,
1523 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Out of Memory");
1525 MEMERROR(conn);
1541 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Out of Memory");
1543 MEMERROR(conn);
1561 sasl_seterror(conn, SASL_NOLOG, gettext("too weak"));
1563 sasl_seterror(conn, SASL_NOLOG, "too weak");
1572 sasl_seterror(conn, 0, "no users in secrets db");
1578 if ((conn->flags & SASL_NEED_PROXY) &&
1587 myflags = conn->props.security_flags;
1590 if ((conn->props.min_ssf <= conn->external.ssf) &&
1591 (conn->external.ssf > 1)) {
1598 sasl_seterror(conn, SASL_NOLOG,
1601 sasl_seterror(conn, SASL_NOLOG,
1611 _sasl_log(conn, SASL_LOG_ERR,
1615 sasl_seterror(conn, 0,
1672 int sasl_server_start(sasl_conn_t *conn, argument
1679 sasl_server_conn_t *s_conn=(sasl_server_conn_t *) conn;
1686 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
1690 if (! conn)
1708 if(!conn) return SASL_BADPARAM;
1712 PARAMERROR(conn);
1728 sasl_seterror(conn, 0, gettext("Couldn't find mech %s"), mech);
1730 sasl_seterror(conn, 0, "Couldn't find mech %s", mech);
1737 server_dispose_mech_contexts(conn);
1741 if (! mech_permitted(conn, m)) {
1747 if(conn->context) {
1748 s_conn->mech->plug->mech_dispose(conn->context, s_conn->sparams->utils);
1749 conn->context = NULL;
1751 memset(&conn->oparams, 0, sizeof(sasl_out_params_t));
1789 _sasl_log(conn, SASL_LOG_ERR,
1804 RETURN(conn, result);
1816 _sasl_log(conn, SASL_LOG_ERR,
1819 sasl_seterror(conn, 0,
1827 conn->context = cur->context;
1834 if(!conn->context) {
1844 &(conn->context));
1856 _sasl_log(conn, SASL_LOG_ERR,
1859 sasl_seterror(conn, 0,
1865 result = sasl_server_step(conn,
1877 result = sasl_server_step(conn,
1888 if(conn->context) {
1889 s_conn->mech->plug->mech_dispose(conn->context,
1891 conn->context = NULL;
1895 RETURN(conn,result);
1916 int sasl_server_step(sasl_conn_t *conn, argument
1923 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn; /* cast */
1927 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
1935 if (!conn) return SASL_BADPARAM;
1937 PARAMERROR(conn);
1945 if (conn->oparams.doneflag) {
1946 _sasl_log(conn, SASL_LOG_ERR, "attempting server step after doneflag");
1953 ret = s_conn->mech->plug->mech_step(conn->context,
1959 &conn->oparams);
1972 if(*serverout && !(conn->flags & SASL_SUCCESS_DATA)) {
1976 if(!conn->oparams.maxoutbuf) {
1977 conn->oparams.maxoutbuf = conn->props.maxbufsize;
1980 if(conn->oparams.user == NULL || conn->oparams.authid == NULL) {
1982 _sasl_log(conn, SASL_LOG_ERR,
1986 sasl_seterror(conn, 0,
1997 if(conn->context) {
1998 s_conn->mech->plug->mech_dispose(conn->context,
2000 conn->context = NULL;
2004 RETURN(conn, ret);
2034 int _sasl_server_listmech(sasl_conn_t *conn, argument
2054 if (!conn) return SASL_BADPARAM;
2056 gctx = conn->gctx;
2064 if (!conn) return SASL_BADPARAM;
2066 if (conn->type != SASL_CONN_SERVER) PARAMERROR(conn);
2069 PARAMERROR(conn);
2083 INTERROR(conn, SASL_NOMECH);
2094 ret = _buf_alloc(&conn->mechlist_buf,
2095 &conn->mechlist_buf_len, resultlen);
2096 if(ret != SASL_OK) MEMERROR(conn);
2099 strcpy (conn->mechlist_buf,prefix);
2101 *(conn->mechlist_buf) = '\0';
2109 if (mech_permitted(conn, listptr)) {
2115 strcat(conn->mechlist_buf, mysep);
2121 strcat(conn->mechlist_buf, listptr->plug->mech_name);
2128 strcat(conn->mechlist_buf,suffix);
2131 *plen=strlen(conn->mechlist_buf);
2133 *result = conn->mechlist_buf;
2191 static int _sasl_checkpass(sasl_conn_t *conn, argument
2197 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
2204 const char *service = conn->service;
2207 result = _sasl_getcallback(conn, SASL_CB_SERVER_USERDB_CHECKPASS,
2210 result = checkpass_cb(conn, context, user, pass, strlen(pass),
2217 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
2230 result = v->verify(conn, user, pass, service,
2244 _sasl_log(conn, SASL_LOG_ERR, "unknown password verifier %s", mech);
2249 sasl_seterror(conn, SASL_NOLOG, gettext("checkpass failed"));
2251 sasl_seterror(conn, SASL_NOLOG, "checkpass failed");
2254 RETURN(conn, result);
2270 int sasl_checkpass(sasl_conn_t *conn, argument
2284 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2293 if (!user && !conn) return SASL_OK;
2295 if (!conn) return SASL_BADPARAM;
2308 if (conn->props.min_ssf > conn->external.ssf)
2309 RETURN(conn, SASL_TOOWEAK);
2310 if ((conn->props.security_flags & SASL_SEC_NOPLAINTEXT) != 0
2311 && conn->external.ssf == 0)
2312 RETURN(conn, SASL_ENCRYPT);
2323 if (!conn) return SASL_BADPARAM;
2328 PARAMERROR(conn);
2331 result = _sasl_canon_user(conn, user, 0,
2333 &(conn->oparams));
2334 if(result != SASL_OK) RETURN(conn, result);
2335 user = conn->oparams.user;
2338 result = _sasl_checkpass(conn, user, strlen(user), pass, strlen(pass));
2342 result = do_authorization((sasl_server_conn_t *) conn);
2347 result = _sasl_transition(conn, pass, passlen);
2349 RETURN(conn,result);
2365 int sasl_user_exists(sasl_conn_t *conn, argument
2378 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2386 if (!conn) return SASL_BADPARAM;
2387 if (!user || conn->type != SASL_CONN_SERVER)
2388 PARAMERROR(conn);
2390 if(!service) service = conn->service;
2393 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
2406 result = v->verify(conn, user, NULL, service, user_realm);
2425 _sasl_log(conn, SASL_LOG_ERR, "no plaintext password verifier?");
2427 sasl_seterror(conn, SASL_NOLOG, "no plaintext password verifier?");
2431 RETURN(conn, result);
2451 int sasl_checkapop(sasl_conn_t *conn, argument
2465 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
2472 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2486 if (!conn) return SASL_BADPARAM;
2488 PARAMERROR(conn);
2500 sasl_seterror(conn, 0, gettext("Bad Digest"));
2502 sasl_seterror(conn, 0, "Bad Digest");
2504 RETURN(conn,SASL_BADPROT);
2516 RETURN(conn, result);
2520 result = _sasl_canon_user(conn, user, user_len,
2522 &(conn->oparams));
2525 if(result != SASL_OK) RETURN(conn, result);
2528 result = _sasl_auxprop_verify_apop(conn, conn->oparams.authid,
2533 conn->oparams.user = NULL;
2534 conn->oparams.authid = NULL;
2537 RETURN(conn, result);
2539 sasl_seterror(conn, SASL_NOLOG,
2541 RETURN(conn, SASL_NOMECH);