1 /* Copyright 2010, 2011 NORDUnet A/S. All rights reserved.
2 See the file COPYING for licensing information. */
4 #if defined HAVE_CONFIG_H
9 #include <radsec/radsec.h>
10 #include <radsec/radsec-impl.h>
14 peer_pick_peer (struct rs_connection *conn)
18 if (conn->active_peer)
19 conn->active_peer = conn->active_peer->next; /* Next. */
20 if (!conn->active_peer)
21 conn->active_peer = conn->peers; /* From the top. */
23 return conn->active_peer;
26 /* Public functions. */
28 rs_peer_create (struct rs_connection *conn, struct rs_peer **peer_out)
32 peer = _rs_peer_create (conn->ctx, &conn->peers);
36 peer->realm->timeout = 2;
37 peer->realm->retries = 2;
40 return rs_err_conn_push_fl (conn, RSE_NOMEM, __FILE__, __LINE__, NULL);
47 rs_peer_set_address (struct rs_peer *peer, const char *hostname,
55 err = _rs_resolv (&peer->addr, peer->realm->type, hostname, service);
57 return _rs_err_conn_push_err (peer->conn, err);
62 rs_peer_set_timeout (struct rs_peer *peer, int timeout)
66 peer->realm->timeout = timeout;
69 rs_peer_set_retries (struct rs_peer *peer, int retries)
73 peer->realm->retries = retries;
77 rs_peer_set_secret (struct rs_peer *peer, const char *secret)
81 peer->secret = (char *) malloc (strlen(secret) + 1);
83 return rs_err_conn_push (peer->conn, RSE_NOMEM, NULL);
84 strcpy (peer->secret, secret);