assert (pkt->rpkt);
assert (!pkt->original);
+ /* Add Message-Authenticator, RFC 2869. */
+ /* FIXME: Make Message-Authenticator optional? */
vp = paircreate (PW_MESSAGE_AUTHENTICATOR, PW_TYPE_OCTETS);
if (!vp)
- return rs_err_conn_push_fl (pkt->conn, RSE_NOMEM, __FILE__, __LINE__,
+ return rs_err_conn_push_fl (pkt->conn, RSE_FR, __FILE__, __LINE__,
"paircreate: %s", fr_strerror ());
pairadd (&pkt->rpkt->vps, vp);
Inform upper layer about successful reception of valid RADIUS
message by invoking conn->callbacks.recevied_cb(), if !NULL. */
static void
-_read_cb (struct bufferevent *bev, void *ctx)
+_read_cb (struct bufferevent *bev, void *user_data)
{
- struct rs_packet *pkt = (struct rs_packet *) ctx;
+ struct rs_packet *pkt = (struct rs_packet *) user_data;
assert (pkt);
assert (pkt->conn);
p->addr->ai_protocol);
if (conn->fd < 0)
return rs_err_conn_push_fl (conn, RSE_SOCKERR, __FILE__, __LINE__,
- strerror (errno));
+ "socket: %d (%s)",
+ errno, strerror (errno));
if (evutil_make_socket_nonblocking (conn->fd) < 0)
{
evutil_closesocket (conn->fd);
conn->fd = -1;
return rs_err_conn_push_fl (conn, RSE_SOCKERR, __FILE__, __LINE__,
- strerror (errno));
+ "evutil_make_socket_nonblocking: %d (%s)",
+ errno, strerror (errno));
}
return RSE_OK;
}
}
void
-rs_packet_add_attr(struct rs_packet *pkt, struct rs_attr *attr)
+rs_packet_add_attr (struct rs_packet *pkt, struct rs_attr *attr)
{
pairadd (&pkt->rpkt->vps, attr->vp);
attr->pkt = pkt;
}
struct radius_packet *
-rs_packet_frpkt(struct rs_packet *pkt)
+rs_packet_frpkt (struct rs_packet *pkt)
{
assert (pkt);
return pkt->rpkt;
}
void
-rs_packet_destroy(struct rs_packet *pkt)
+rs_packet_destroy (struct rs_packet *pkt)
{
if (pkt)
{