-/* Copyright 2010, 2011 NORDUnet A/S. All rights reserved.
- See the file COPYING for licensing information. */
+/* Copyright 2010,2011,2013 NORDUnet A/S. All rights reserved.
+ See LICENSE for licensing information. */
#if defined HAVE_CONFIG_H
#include <config.h>
#endif
#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+
#include <radsec/radsec.h>
#include <radsec/radsec-impl.h>
#include "err.h"
#include "peer.h"
+#include "util.h"
struct rs_peer *
peer_pick_peer (struct rs_connection *conn)
if (conn->active_peer)
conn->active_peer = conn->active_peer->next; /* Next. */
if (!conn->active_peer)
- conn->active_peer = conn->peers; /* From the top. */
+ conn->active_peer = conn->base_.peers; /* From the top. */
return conn->active_peer;
}
{
struct rs_peer *peer;
- peer = peer_create (conn->ctx, &conn->peers);
+ peer = peer_create (conn->base_.ctx, &conn->base_.peers);
if (peer)
{
peer->conn = conn;
rs_peer_set_address (struct rs_peer *peer, const char *hostname,
const char *service)
{
- struct rs_error *err;
-
assert (peer);
- assert (peer->realm);
+ assert (peer->conn);
+ assert (peer->conn->base_.ctx);
+
+ peer->hostname = rs_strdup (peer->conn->base_.ctx, hostname);
+ peer->service = rs_strdup (peer->conn->base_.ctx, service);
+ if (peer->hostname == NULL || peer->service == NULL)
+ return RSE_NOMEM;
- err = rs_resolve (&peer->addr, peer->realm->type, hostname, service);
- if (err)
- return err_conn_push_err (peer->conn, err);
return RSE_OK;
}