Lines Matching refs:conn

109 int (*_sasl_client_idle_hook)(sasl_conn_t *conn) = NULL;
110 int (*_sasl_server_idle_hook)(sasl_conn_t *conn) = NULL;
270 int sasl_encode(sasl_conn_t *conn, const char *input, in sasl_encode() argument
277 if(!conn) return SASL_BADPARAM; in sasl_encode()
279 PARAMERROR(conn); in sasl_encode()
289 result = sasl_encodev(conn, &tmp, 1, output, outputlen); in sasl_encode()
291 RETURN(conn, result); in sasl_encode()
296 int sasl_encodev(sasl_conn_t *conn, in sasl_encodev() argument
308 if (!conn) return SASL_BADPARAM; in sasl_encodev()
310 PARAMERROR(conn); in sasl_encodev()
312 if(!conn->props.maxbufsize) { in sasl_encodev()
314 _sasl_log(conn, SASL_LOG_ERR, in sasl_encodev()
317 sasl_seterror(conn, 0, in sasl_encodev()
330 PARAMERROR(conn); in sasl_encodev()
334 if(total_size > conn->oparams.maxoutbuf) in sasl_encodev()
335 PARAMERROR(conn); in sasl_encodev()
337 if(conn->oparams.encode == NULL) { in sasl_encodev()
339 result = _iovec_to_buf(conn->gctx, invec, numiov, &conn->encode_buf); in sasl_encodev()
341 result = _iovec_to_buf(invec, numiov, &conn->encode_buf); in sasl_encodev()
343 if(result != SASL_OK) INTERROR(conn, result); in sasl_encodev()
345 *output = conn->encode_buf->data; in sasl_encodev()
346 *outputlen = conn->encode_buf->curlen; in sasl_encodev()
349 } else if (!conn->sun_reg) { in sasl_encodev()
350 INTERROR(conn, SASL_FAIL); in sasl_encodev()
353 result = conn->oparams.encode(conn->context, invec, numiov, in sasl_encodev()
357 RETURN(conn, result); in sasl_encodev()
361 int sasl_decode(sasl_conn_t *conn, in sasl_decode() argument
370 if(!conn) return SASL_BADPARAM; in sasl_decode()
372 PARAMERROR(conn); in sasl_decode()
375 gctx = conn->gctx; in sasl_decode()
378 if(!conn->props.maxbufsize) { in sasl_decode()
380 _sasl_log(conn, SASL_LOG_ERR, in sasl_decode()
383 sasl_seterror(conn, 0, in sasl_decode()
386 RETURN(conn, SASL_TOOWEAK); in sasl_decode()
389 if(conn->oparams.decode == NULL) in sasl_decode()
397 if(inputlen > conn->props.maxbufsize) { in sasl_decode()
399 _sasl_log(conn, SASL_LOG_ERR, in sasl_decode()
402 sasl_seterror(conn, 0, in sasl_decode()
405 RETURN(conn,SASL_BUFOVER); in sasl_decode()
408 if(!conn->decode_buf) in sasl_decode()
409 conn->decode_buf = sasl_ALLOC(conn->props.maxbufsize + 1); in sasl_decode()
410 if(!conn->decode_buf) in sasl_decode()
411 MEMERROR(conn); in sasl_decode()
413 memcpy(conn->decode_buf, input, inputlen); in sasl_decode()
414 conn->decode_buf[inputlen] = '\0'; in sasl_decode()
415 *output = conn->decode_buf; in sasl_decode()
420 } else if (!conn->sun_reg) { in sasl_decode()
421 INTERROR(conn, SASL_FAIL); in sasl_decode()
424 result = conn->oparams.decode(conn->context, input, inputlen, in sasl_decode()
430 RETURN(conn, result); in sasl_decode()
436 INTERROR(conn, SASL_FAIL); in sasl_decode()
501 int _sasl_conn_init(sasl_conn_t *conn, in _sasl_conn_init() argument
505 int (*idle_hook)(sasl_conn_t *conn), in _sasl_conn_init() argument
513 const _sasl_global_context_t *gctx = conn->gctx; in _sasl_conn_init()
516 conn->type = type; in _sasl_conn_init()
518 result = _sasl_strdup(service, &conn->service, NULL); in _sasl_conn_init()
520 MEMERROR(conn); in _sasl_conn_init()
522 memset(&conn->oparams, 0, sizeof(sasl_out_params_t)); in _sasl_conn_init()
523 memset(&conn->external, 0, sizeof(_sasl_external_properties_t)); in _sasl_conn_init()
525 conn->flags = flags; in _sasl_conn_init()
527 result = sasl_setprop(conn, SASL_IPLOCALPORT, iplocalport); in _sasl_conn_init()
529 RETURN(conn, result); in _sasl_conn_init()
531 result = sasl_setprop(conn, SASL_IPREMOTEPORT, ipremoteport); in _sasl_conn_init()
533 RETURN(conn, result); in _sasl_conn_init()
535 conn->encode_buf = NULL; in _sasl_conn_init()
536 conn->context = NULL; in _sasl_conn_init()
538 conn->secret = NULL; in _sasl_conn_init()
540 conn->idle_hook = idle_hook; in _sasl_conn_init()
541 conn->callbacks = callbacks; in _sasl_conn_init()
542 conn->global_callbacks = global_callbacks; in _sasl_conn_init()
544 memset(&conn->props, 0, sizeof(conn->props)); in _sasl_conn_init()
547 conn->error_code = SASL_OK; in _sasl_conn_init()
548 conn->errdetail_buf = conn->error_buf = NULL; in _sasl_conn_init()
549 conn->errdetail_buf_len = conn->error_buf_len = 150; in _sasl_conn_init()
551 result = _buf_alloc(&conn->error_buf, &conn->error_buf_len, 150); in _sasl_conn_init()
552 if(result != SASL_OK) MEMERROR(conn); in _sasl_conn_init()
553 result = _buf_alloc(&conn->errdetail_buf, &conn->errdetail_buf_len, 150); in _sasl_conn_init()
554 if(result != SASL_OK) MEMERROR(conn); in _sasl_conn_init()
556 conn->error_buf[0] = '\0'; in _sasl_conn_init()
557 conn->errdetail_buf[0] = '\0'; in _sasl_conn_init()
559 conn->decode_buf = NULL; in _sasl_conn_init()
562 result = _sasl_strdup(serverFQDN, &conn->serverFQDN, NULL); in _sasl_conn_init()
563 } else if (conn->type == SASL_CONN_SERVER) { in _sasl_conn_init()
569 result = _sasl_strdup(name, &conn->serverFQDN, NULL); in _sasl_conn_init()
571 conn->serverFQDN = NULL; in _sasl_conn_init()
575 if(result != SASL_OK) MEMERROR( conn ); in _sasl_conn_init()
580 RETURN(conn, SASL_OK); in _sasl_conn_init()
684 void _sasl_conn_dispose(sasl_conn_t *conn) { in _sasl_conn_dispose() argument
686 const _sasl_global_context_t *gctx = conn->gctx; in _sasl_conn_dispose()
689 if (conn->serverFQDN) in _sasl_conn_dispose()
690 sasl_FREE(conn->serverFQDN); in _sasl_conn_dispose()
692 if (conn->external.auth_id) in _sasl_conn_dispose()
693 sasl_FREE(conn->external.auth_id); in _sasl_conn_dispose()
695 if(conn->encode_buf) { in _sasl_conn_dispose()
696 if(conn->encode_buf->data) sasl_FREE(conn->encode_buf->data); in _sasl_conn_dispose()
697 sasl_FREE(conn->encode_buf); in _sasl_conn_dispose()
700 if(conn->error_buf) in _sasl_conn_dispose()
701 sasl_FREE(conn->error_buf); in _sasl_conn_dispose()
703 if(conn->errdetail_buf) in _sasl_conn_dispose()
704 sasl_FREE(conn->errdetail_buf); in _sasl_conn_dispose()
706 if(conn->decode_buf) in _sasl_conn_dispose()
707 sasl_FREE(conn->decode_buf); in _sasl_conn_dispose()
709 if(conn->mechlist_buf) in _sasl_conn_dispose()
710 sasl_FREE(conn->mechlist_buf); in _sasl_conn_dispose()
712 if(conn->service) in _sasl_conn_dispose()
713 sasl_FREE(conn->service); in _sasl_conn_dispose()
728 int sasl_getprop(sasl_conn_t *conn, int propnum, const void **pvalue) in sasl_getprop() argument
734 if (! conn) return SASL_BADPARAM; in sasl_getprop()
735 if (! pvalue) PARAMERROR(conn); in sasl_getprop()
741 if (!conn->sun_reg) in sasl_getprop()
742 conn->oparams.mech_ssf = 0; in sasl_getprop()
744 *(sasl_ssf_t **)pvalue= &conn->oparams.mech_ssf; in sasl_getprop()
747 *(unsigned **)pvalue = &conn->oparams.maxoutbuf; in sasl_getprop()
750 result = _sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context); in sasl_getprop()
756 *(const sasl_callback_t **)pvalue = conn->callbacks; in sasl_getprop()
759 if(conn->got_ip_local) in sasl_getprop()
760 *(const char **)pvalue = conn->iplocalport; in sasl_getprop()
767 if(conn->got_ip_remote) in sasl_getprop()
768 *(const char **)pvalue = conn->ipremoteport; in sasl_getprop()
775 if(! conn->oparams.user) in sasl_getprop()
778 *((const char **)pvalue) = conn->oparams.user; in sasl_getprop()
781 if(! conn->oparams.authid) in sasl_getprop()
784 *((const char **)pvalue) = conn->oparams.authid; in sasl_getprop()
787 *((const char **)pvalue) = conn->serverFQDN; in sasl_getprop()
790 if(conn->type != SASL_CONN_SERVER) result = SASL_BADPROT; in sasl_getprop()
792 *((const char **)pvalue) = ((sasl_server_conn_t *)conn)->user_realm; in sasl_getprop()
795 *((const char **)pvalue) = conn->service; in sasl_getprop()
798 if(conn->type == SASL_CONN_CLIENT) { in sasl_getprop()
799 if(!((sasl_client_conn_t *)conn)->mech) { in sasl_getprop()
804 ((sasl_client_conn_t *)conn)->mech->plugname; in sasl_getprop()
805 } else if (conn->type == SASL_CONN_SERVER) { in sasl_getprop()
806 if(!((sasl_server_conn_t *)conn)->mech) { in sasl_getprop()
811 ((sasl_server_conn_t *)conn)->mech->plugname; in sasl_getprop()
817 if(conn->type == SASL_CONN_CLIENT) { in sasl_getprop()
818 if(!((sasl_client_conn_t *)conn)->mech) { in sasl_getprop()
823 ((sasl_client_conn_t *)conn)->mech->plug->mech_name; in sasl_getprop()
824 } else if (conn->type == SASL_CONN_SERVER) { in sasl_getprop()
825 if(!((sasl_server_conn_t *)conn)->mech) { in sasl_getprop()
830 ((sasl_server_conn_t *)conn)->mech->plug->mech_name; in sasl_getprop()
838 *((const char **)pvalue) = conn->error_buf; in sasl_getprop()
841 *((const sasl_ssf_t **)pvalue) = &conn->external.ssf; in sasl_getprop()
844 *((const char **)pvalue) = conn->external.auth_id; in sasl_getprop()
847 *((const sasl_security_properties_t **)pvalue) = &conn->props; in sasl_getprop()
854 PARAMERROR(conn); in sasl_getprop()
857 _sasl_log(conn, SASL_LOG_NONE, in sasl_getprop()
860 sasl_seterror(conn, SASL_NOLOG, in sasl_getprop()
863 RETURN(conn, result); in sasl_getprop()
865 INTERROR(conn, result); in sasl_getprop()
867 RETURN(conn, result); in sasl_getprop()
878 int sasl_setprop(sasl_conn_t *conn, int propnum, const void *value) in sasl_setprop() argument
887 if (!conn) in sasl_setprop()
891 gctx = conn->gctx; in sasl_setprop()
897 conn->external.ssf = *((sasl_ssf_t *)value); in sasl_setprop()
898 if(conn->type == SASL_CONN_SERVER) { in sasl_setprop()
899 ((sasl_server_conn_t*)conn)->sparams->external_ssf = in sasl_setprop()
900 conn->external.ssf; in sasl_setprop()
902 ((sasl_client_conn_t*)conn)->cparams->external_ssf = in sasl_setprop()
903 conn->external.ssf; in sasl_setprop()
910 if(result != SASL_OK) MEMERROR(conn); in sasl_setprop()
915 if(conn->external.auth_id) in sasl_setprop()
916 sasl_FREE(conn->external.auth_id); in sasl_setprop()
918 conn->external.auth_id = str; in sasl_setprop()
923 if(conn->type != SASL_CONN_SERVER) { in sasl_setprop()
925 _sasl_log(conn, SASL_LOG_WARN, in sasl_setprop()
928 sasl_seterror(conn, 0, "Tried to set realm on non-server connection"); in sasl_setprop()
936 if(result != SASL_OK) MEMERROR(conn); in sasl_setprop()
938 PARAMERROR(conn); in sasl_setprop()
941 if(((sasl_server_conn_t *)conn)->user_realm) in sasl_setprop()
942 sasl_FREE(((sasl_server_conn_t *)conn)->user_realm); in sasl_setprop()
944 ((sasl_server_conn_t *)conn)->user_realm = str; in sasl_setprop()
945 ((sasl_server_conn_t *)conn)->sparams->user_realm = str; in sasl_setprop()
955 _sasl_log(conn, SASL_LOG_ERR, in sasl_setprop()
958 sasl_seterror(conn, 0, in sasl_setprop()
961 RETURN(conn, SASL_TOOWEAK); in sasl_setprop()
964 conn->props = *props; in sasl_setprop()
966 if(conn->type == SASL_CONN_SERVER) { in sasl_setprop()
967 ((sasl_server_conn_t*)conn)->sparams->props = *props; in sasl_setprop()
969 ((sasl_client_conn_t*)conn)->cparams->props = *props; in sasl_setprop()
979 conn->got_ip_remote = 0; in sasl_setprop()
981 } else if (strlen(ipremoteport) >= sizeof (conn->ipremoteport)) { in sasl_setprop()
982 RETURN(conn, SASL_BADPARAM); in sasl_setprop()
987 _sasl_log(conn, SASL_LOG_ERR, "Bad IPREMOTEPORT value"); in sasl_setprop()
989 sasl_seterror(conn, 0, "Bad IPREMOTEPORT value"); in sasl_setprop()
991 RETURN(conn, SASL_BADPARAM); in sasl_setprop()
993 strcpy(conn->ipremoteport, ipremoteport); in sasl_setprop()
994 conn->got_ip_remote = 1; in sasl_setprop()
997 if(conn->got_ip_remote) { in sasl_setprop()
998 if(conn->type == SASL_CONN_CLIENT) { in sasl_setprop()
999 ((sasl_client_conn_t *)conn)->cparams->ipremoteport in sasl_setprop()
1000 = conn->ipremoteport; in sasl_setprop()
1001 ((sasl_client_conn_t *)conn)->cparams->ipremlen = in sasl_setprop()
1002 strlen(conn->ipremoteport); in sasl_setprop()
1003 } else if (conn->type == SASL_CONN_SERVER) { in sasl_setprop()
1004 ((sasl_server_conn_t *)conn)->sparams->ipremoteport in sasl_setprop()
1005 = conn->ipremoteport; in sasl_setprop()
1006 ((sasl_server_conn_t *)conn)->sparams->ipremlen = in sasl_setprop()
1007 strlen(conn->ipremoteport); in sasl_setprop()
1010 if(conn->type == SASL_CONN_CLIENT) { in sasl_setprop()
1011 ((sasl_client_conn_t *)conn)->cparams->ipremoteport in sasl_setprop()
1013 ((sasl_client_conn_t *)conn)->cparams->ipremlen = 0; in sasl_setprop()
1014 } else if (conn->type == SASL_CONN_SERVER) { in sasl_setprop()
1015 ((sasl_server_conn_t *)conn)->sparams->ipremoteport in sasl_setprop()
1017 ((sasl_server_conn_t *)conn)->sparams->ipremlen = 0; in sasl_setprop()
1028 conn->got_ip_local = 0; in sasl_setprop()
1030 } else if (strlen(iplocalport) >= sizeof (conn->iplocalport)) { in sasl_setprop()
1031 RETURN(conn, SASL_BADPARAM); in sasl_setprop()
1036 _sasl_log(conn, SASL_LOG_ERR, "Bad IPLOCALPORT value"); in sasl_setprop()
1038 sasl_seterror(conn, 0, "Bad IPLOCALPORT value"); in sasl_setprop()
1040 RETURN(conn, SASL_BADPARAM); in sasl_setprop()
1042 strcpy(conn->iplocalport, iplocalport); in sasl_setprop()
1043 conn->got_ip_local = 1; in sasl_setprop()
1046 if(conn->got_ip_local) { in sasl_setprop()
1047 if(conn->type == SASL_CONN_CLIENT) { in sasl_setprop()
1048 ((sasl_client_conn_t *)conn)->cparams->iplocalport in sasl_setprop()
1049 = conn->iplocalport; in sasl_setprop()
1050 ((sasl_client_conn_t *)conn)->cparams->iploclen in sasl_setprop()
1051 = strlen(conn->iplocalport); in sasl_setprop()
1052 } else if (conn->type == SASL_CONN_SERVER) { in sasl_setprop()
1053 ((sasl_server_conn_t *)conn)->sparams->iplocalport in sasl_setprop()
1054 = conn->iplocalport; in sasl_setprop()
1055 ((sasl_server_conn_t *)conn)->sparams->iploclen in sasl_setprop()
1056 = strlen(conn->iplocalport); in sasl_setprop()
1059 if(conn->type == SASL_CONN_CLIENT) { in sasl_setprop()
1060 ((sasl_client_conn_t *)conn)->cparams->iplocalport in sasl_setprop()
1062 ((sasl_client_conn_t *)conn)->cparams->iploclen = 0; in sasl_setprop()
1063 } else if (conn->type == SASL_CONN_SERVER) { in sasl_setprop()
1064 ((sasl_server_conn_t *)conn)->sparams->iplocalport in sasl_setprop()
1066 ((sasl_server_conn_t *)conn)->sparams->iploclen = 0; in sasl_setprop()
1074 _sasl_log(conn, SASL_LOG_WARN, "Unknown parameter type"); in sasl_setprop()
1076 sasl_seterror(conn, 0, "Unknown parameter type"); in sasl_setprop()
1081 RETURN(conn, result); in sasl_setprop()
1259 const char *sasl_errdetail(sasl_conn_t *conn) in sasl_errdetail() argument
1268 if(!conn) return "invalid parameter supplied"; in sasl_errdetail()
1270 gctx = conn->gctx; in sasl_errdetail()
1272 if(!conn) return NULL; in sasl_errdetail()
1275 errstr = sasl_errstring(conn->error_code, NULL, NULL); in sasl_errdetail()
1277 sasl_usererr(conn->error_code), errstr); in sasl_errdetail()
1279 need_len = strlen(leader) + strlen(conn->error_buf) + 12; in sasl_errdetail()
1281 ret = _buf_alloc(&conn->errdetail_buf, &conn->errdetail_buf_len, need_len); in sasl_errdetail()
1285 _buf_alloc(&conn->errdetail_buf, &conn->errdetail_buf_len, need_len); in sasl_errdetail()
1288 snprintf(conn->errdetail_buf, need_len, "%s%s", leader, conn->error_buf); in sasl_errdetail()
1290 return conn->errdetail_buf; in sasl_errdetail()
1411 sasl_conn_t * conn; in _sasl_conn_getopt() local
1417 conn = (sasl_conn_t *) context; in _sasl_conn_getopt()
1419 if (conn->callbacks) in _sasl_conn_getopt()
1420 for (callback = conn->callbacks; in _sasl_conn_getopt()
1436 return _sasl_global_getopt((void *)conn->global_callbacks, in _sasl_conn_getopt()
1489 sasl_conn_t *conn; in _sasl_getsimple() local
1495 conn = (sasl_conn_t *)context; in _sasl_getsimple()
1554 _sasl_proxy_policy(sasl_conn_t *conn, in _sasl_proxy_policy() argument
1562 if (!conn) in _sasl_proxy_policy()
1571 sasl_seterror(conn, 0, in _sasl_proxy_policy()
1574 sasl_seterror(conn, 0, in _sasl_proxy_policy()
1577 RETURN(conn, SASL_BADAUTH); in _sasl_proxy_policy()
1583 int _sasl_getcallback(sasl_conn_t * conn, in _sasl_getcallback() argument
1591 PARAMERROR(conn); in _sasl_getcallback()
1597 INTERROR(conn, SASL_FAIL); in _sasl_getcallback()
1602 if (conn) { in _sasl_getcallback()
1604 *pcontext = conn; in _sasl_getcallback()
1614 if (conn && conn->callbacks) { in _sasl_getcallback()
1615 for (callback = conn->callbacks; callback->id != SASL_CB_LIST_END; in _sasl_getcallback()
1631 if (conn && conn->global_callbacks && conn->global_callbacks->callbacks) { in _sasl_getcallback()
1632 for (callback = conn->global_callbacks->callbacks; in _sasl_getcallback()
1661 *pcontext = conn; in _sasl_getcallback()
1678 _sasl_log(conn, SASL_LOG_NONE, "Unable to find a callback: %d", callbackid); in _sasl_getcallback()
1680 sasl_seterror(conn, SASL_NOLOG, "Unable to find a callback: %d", callbackid); in _sasl_getcallback()
1682 RETURN(conn,SASL_FAIL); in _sasl_getcallback()
1701 _sasl_log (sasl_conn_t *conn, in _sasl_log() argument
1707 _sasl_global_context_t *gctx = conn==NULL ? _sasl_gbl_ctx() : conn->gctx; in _sasl_log()
1714 result = _sasl_getcallback(conn, SASL_CB_LOG, &log_cb, &log_ctx); in _sasl_log()
1792 result = _sasl_getcallback(conn, SASL_CB_LOG, &log_cb, &log_ctx); in ___sasl_log()
1929 _sasl_alloc_utils(_sasl_global_context_t *gctx, sasl_conn_t *conn, in _sasl_alloc_utils() argument
1933 _sasl_alloc_utils(sasl_conn_t *conn, in _sasl_alloc_utils()
1957 utils->conn = conn; in _sasl_alloc_utils()
1961 if (conn) { in _sasl_alloc_utils()
1963 utils->getopt_context = conn; in _sasl_alloc_utils()
2076 int sasl_idle(sasl_conn_t *conn) in sasl_idle() argument
2078 if (! conn) { in sasl_idle()
2099 if (conn->idle_hook) in sasl_idle()
2100 return conn->idle_hook(conn); in sasl_idle()
2211 void _sasl_get_errorbuf(sasl_conn_t *conn, char ***bufhdl, size_t **lenhdl) in _sasl_get_errorbuf() argument
2213 *bufhdl = &conn->error_buf; in _sasl_get_errorbuf()
2214 *lenhdl = &conn->error_buf_len; in _sasl_get_errorbuf()
2509 int sasl_listmech(sasl_conn_t *conn, in sasl_listmech() argument
2518 if(!conn) { in sasl_listmech()
2520 } else if(conn->type == SASL_CONN_SERVER) { in sasl_listmech()
2521 RETURN(conn, _sasl_server_listmech(conn, user, prefix, sep, suffix, in sasl_listmech()
2523 } else if (conn->type == SASL_CONN_CLIENT) { in sasl_listmech()
2524 RETURN(conn, _sasl_client_listmech(conn, prefix, sep, suffix, in sasl_listmech()
2528 PARAMERROR(conn); in sasl_listmech()