1 /* See the file COPYING for licensing information. */
10 #include <freeradius/libradius.h>
11 #include <event2/event.h>
12 #include <event2/util.h>
13 #include <radsec/radsec.h>
14 #include <radsec/radsec-impl.h>
17 rs_context_create(struct rs_context **ctx, const char *dict)
23 h = (struct rs_context *) malloc (sizeof(struct rs_context));
26 char *buf1 = NULL, *buf2 = NULL;
29 buf1 = malloc (strlen (dict) + 1);
30 buf2 = malloc (strlen (dict) + 1);
44 if (dict_init (dir, fn) < 0)
47 return RSE_SOME_ERROR;
56 memset (h, 0, sizeof(struct rs_context));
57 fr_randinit (&h->fr_randctx, 0);
58 fr_rand_seed (NULL, 0);
63 return h ? RSE_OK : RSE_NOMEM;
66 void rs_context_destroy(struct rs_context *ctx)
71 int rs_context_set_alloc_scheme(struct rs_context *ctx,
72 struct rs_alloc_scheme *scheme)
74 return rs_err_ctx_push_fl (ctx, RSE_NOSYS, __FILE__, __LINE__,
80 _rs_peer_create (struct rs_context *ctx, struct rs_peer **rootp)
84 p = (struct rs_peer *) rs_malloc (ctx, sizeof(*p));
87 memset (p, 0, sizeof(struct rs_peer));
98 rs_server_create (struct rs_connection *conn, struct rs_peer **server)
102 srv = _rs_peer_create (conn->ctx, &conn->peers);
110 return rs_err_conn_push_fl (conn, RSE_NOMEM, __FILE__, __LINE__, NULL);
117 rs_server_set_address (struct rs_peer *server, const char *hostname,
120 struct rs_error *err;
122 err = _rs_resolv (&server->addr, server->conn->type, hostname, service);
124 return _rs_err_conn_push_err (server->conn, err);
129 rs_server_set_timeout (struct rs_peer *server, int timeout)
131 server->timeout = timeout;
134 rs_server_set_tries (struct rs_peer *server, int tries)
136 server->tries = tries;
140 rs_server_set_secret (struct rs_peer *server, const char *secret)
143 free (server->secret);
144 server->secret = (char *) malloc (strlen(secret) + 1);
146 return rs_err_conn_push (server->conn, RSE_NOMEM, NULL);
147 strcpy (server->secret, secret);