Lines Matching defs:conn

115 static int _sasl_checkpass(sasl_conn_t *conn, 
126 * conn -- SASL connection
147 int sasl_setpass(sasl_conn_t *conn,
155 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
162 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
171 if (!conn) return SASL_BADPARAM;
172 if (conn->type != SASL_CONN_SERVER) PARAMERROR(conn);
176 PARAMERROR(conn);
179 result = _sasl_getcallback(conn, SASL_CB_SERVER_USERDB_SETPASS,
182 tmpresult = setpass_cb(conn, context, user, pass, passlen,
185 _sasl_log(conn, SASL_LOG_ERR,
189 _sasl_log(conn, SASL_LOG_NOTE,
207 ((sasl_server_conn_t *)conn)->sparams,
214 _sasl_log(conn, SASL_LOG_NOTE,
222 _sasl_log(conn, SASL_LOG_NOTE,
226 _sasl_log(conn, SASL_LOG_ERR,
238 RETURN(conn, result);
634 static int server_idle(sasl_conn_t *conn)
641 if (conn == NULL)
644 gctx = conn->gctx;
659 conn,
660 conn ? ((sasl_server_conn_t *)conn)->sparams : NULL))
1207 _sasl_transition(sasl_conn_t * conn,
1216 if (! conn)
1219 if (! conn->oparams.authid)
1220 PARAMERROR(conn);
1223 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK)
1232 result = sasl_setpass(conn,
1233 conn->oparams.authid,
1239 RETURN(conn,result);
1419 static int mech_permitted(sasl_conn_t *conn,
1422 sasl_server_conn_t *s_conn = (sasl_server_conn_t *)conn;
1433 if(!conn) return 0;
1436 gctx = conn->gctx;
1441 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Parameter error");
1443 PARAMERROR(conn);
1451 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
1477 s_conn->sparams->serverFQDN=conn->serverFQDN;
1478 s_conn->sparams->service=conn->service;
1480 s_conn->sparams->props=conn->props;
1481 s_conn->sparams->external_ssf=conn->external.ssf;
1503 if (conn->props.min_ssf < conn->external.ssf) {
1506 minssf = conn->props.min_ssf - conn->external.ssf;
1525 sasl_seterror(conn, SASL_NOLOG,
1528 sasl_seterror(conn, SASL_NOLOG,
1546 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Out of Memory");
1548 MEMERROR(conn);
1564 if(conn) _sasl_log(conn, SASL_LOG_WARN, "Out of Memory");
1566 MEMERROR(conn);
1592 sasl_seterror(conn, SASL_NOLOG, gettext("too weak"));
1594 sasl_seterror(conn, SASL_NOLOG, "too weak");
1603 sasl_seterror(conn, 0, "no users in secrets db");
1609 if ((conn->flags & SASL_NEED_PROXY) &&
1618 myflags = conn->props.security_flags;
1621 if ((conn->props.min_ssf <= conn->external.ssf) &&
1622 (conn->external.ssf > 1)) {
1629 sasl_seterror(conn, SASL_NOLOG,
1632 sasl_seterror(conn, SASL_NOLOG,
1642 _sasl_log(conn, SASL_LOG_ERR,
1646 sasl_seterror(conn, 0,
1694 * conn -- the sasl connection
1703 int sasl_server_start(sasl_conn_t *conn,
1710 sasl_server_conn_t *s_conn=(sasl_server_conn_t *) conn;
1717 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
1721 if (! conn)
1739 if(!conn) return SASL_BADPARAM;
1743 PARAMERROR(conn);
1759 sasl_seterror(conn, 0, gettext("Couldn't find mech %s"), mech);
1761 sasl_seterror(conn, 0, "Couldn't find mech %s", mech);
1768 server_dispose_mech_contexts(conn);
1772 if (! mech_permitted(conn, m)) {
1778 if(conn->context) {
1779 s_conn->mech->plug->mech_dispose(conn->context, s_conn->sparams->utils);
1780 conn->context = NULL;
1782 memset(&conn->oparams, 0, sizeof(sasl_out_params_t));
1820 _sasl_log(conn, SASL_LOG_ERR,
1835 RETURN(conn, result);
1847 _sasl_log(conn, SASL_LOG_ERR,
1850 sasl_seterror(conn, 0,
1858 conn->context = cur->context;
1865 if(!conn->context) {
1875 &(conn->context));
1887 _sasl_log(conn, SASL_LOG_ERR,
1890 sasl_seterror(conn, 0,
1896 result = sasl_server_step(conn,
1908 result = sasl_server_step(conn,
1919 if(conn->context) {
1920 s_conn->mech->plug->mech_dispose(conn->context,
1922 conn->context = NULL;
1926 RETURN(conn,result);
1947 int sasl_server_step(sasl_conn_t *conn,
1954 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn; /* cast */
1958 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
1966 if (!conn) return SASL_BADPARAM;
1968 PARAMERROR(conn);
1976 if (conn->oparams.doneflag) {
1977 _sasl_log(conn, SASL_LOG_ERR, "attempting server step after doneflag");
1984 ret = s_conn->mech->plug->mech_step(conn->context,
1990 &conn->oparams);
2003 if(*serverout && !(conn->flags & SASL_SUCCESS_DATA)) {
2007 if(!conn->oparams.maxoutbuf) {
2008 conn->oparams.maxoutbuf = conn->props.maxbufsize;
2011 if(conn->oparams.user == NULL || conn->oparams.authid == NULL) {
2013 _sasl_log(conn, SASL_LOG_ERR,
2017 sasl_seterror(conn, 0,
2028 if(conn->context) {
2029 s_conn->mech->plug->mech_dispose(conn->context,
2031 conn->context = NULL;
2035 RETURN(conn, ret);
2065 int _sasl_server_listmech(sasl_conn_t *conn,
2085 if (!conn) return SASL_BADPARAM;
2087 gctx = conn->gctx;
2095 if (!conn) return SASL_BADPARAM;
2097 if (conn->type != SASL_CONN_SERVER) PARAMERROR(conn);
2100 PARAMERROR(conn);
2114 INTERROR(conn, SASL_NOMECH);
2125 ret = _buf_alloc(&conn->mechlist_buf,
2126 &conn->mechlist_buf_len, resultlen);
2127 if(ret != SASL_OK) MEMERROR(conn);
2130 strcpy (conn->mechlist_buf,prefix);
2132 *(conn->mechlist_buf) = '\0';
2140 if (mech_permitted(conn, listptr)) {
2146 strcat(conn->mechlist_buf, mysep);
2152 strcat(conn->mechlist_buf, listptr->plug->mech_name);
2159 strcat(conn->mechlist_buf,suffix);
2162 *plen=strlen(conn->mechlist_buf);
2164 *result = conn->mechlist_buf;
2222 static int _sasl_checkpass(sasl_conn_t *conn,
2228 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
2235 const char *service = conn->service;
2238 result = _sasl_getcallback(conn, SASL_CB_SERVER_USERDB_CHECKPASS,
2241 result = checkpass_cb(conn, context, user, pass, strlen(pass),
2248 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
2261 result = v->verify(conn, user, pass, service,
2275 _sasl_log(conn, SASL_LOG_ERR, "unknown password verifier %s", mech);
2280 sasl_seterror(conn, SASL_NOLOG, gettext("checkpass failed"));
2282 sasl_seterror(conn, SASL_NOLOG, "checkpass failed");
2285 RETURN(conn, result);
2301 int sasl_checkpass(sasl_conn_t *conn,
2315 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2324 if (!user && !conn) return SASL_OK;
2326 if (!conn) return SASL_BADPARAM;
2339 if (conn->props.min_ssf > conn->external.ssf)
2340 RETURN(conn, SASL_TOOWEAK);
2341 if ((conn->props.security_flags & SASL_SEC_NOPLAINTEXT) != 0
2342 && conn->external.ssf == 0)
2343 RETURN(conn, SASL_ENCRYPT);
2354 if (!conn) return SASL_BADPARAM;
2359 PARAMERROR(conn);
2362 result = _sasl_canon_user(conn, user, 0,
2364 &(conn->oparams));
2365 if(result != SASL_OK) RETURN(conn, result);
2366 user = conn->oparams.user;
2369 result = _sasl_checkpass(conn, user, strlen(user), pass, strlen(pass));
2373 result = do_authorization((sasl_server_conn_t *) conn);
2378 result = _sasl_transition(conn, pass, passlen);
2380 RETURN(conn,result);
2384 * conn -- connection context (may be NULL, used to hold last error)
2396 int sasl_user_exists(sasl_conn_t *conn,
2409 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2417 if (!conn) return SASL_BADPARAM;
2418 if (!user || conn->type != SASL_CONN_SERVER)
2419 PARAMERROR(conn);
2421 if(!service) service = conn->service;
2424 if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context)
2437 result = v->verify(conn, user, NULL, service, user_realm);
2456 _sasl_log(conn, SASL_LOG_ERR, "no plaintext password verifier?");
2458 sasl_seterror(conn, SASL_NOLOG, "no plaintext password verifier?");
2462 RETURN(conn, result);
2482 int sasl_checkapop(sasl_conn_t *conn,
2496 sasl_server_conn_t *s_conn = (sasl_server_conn_t *) conn;
2503 (conn == NULL) ? _sasl_gbl_ctx() : conn->gctx;
2517 if (!conn) return SASL_BADPARAM;
2519 PARAMERROR(conn);
2531 sasl_seterror(conn, 0, gettext("Bad Digest"));
2533 sasl_seterror(conn, 0, "Bad Digest");
2535 RETURN(conn,SASL_BADPROT);
2547 RETURN(conn, result);
2551 result = _sasl_canon_user(conn, user, user_len,
2553 &(conn->oparams));
2556 if(result != SASL_OK) RETURN(conn, result);
2559 result = _sasl_auxprop_verify_apop(conn, conn->oparams.authid,
2564 conn->oparams.user = NULL;
2565 conn->oparams.authid = NULL;
2568 RETURN(conn, result);
2570 sasl_seterror(conn, SASL_NOLOG,
2572 RETURN(conn, SASL_NOMECH);