WIP commit moving towards working server support.
[radsecproxy.git] / lib / send.c
index fab89a9..3ed6c93 100644 (file)
 static int
 _conn_open (struct rs_connection *conn, struct rs_message *msg)
 {
-  if (event_init_eventbase (conn))
+  if (event_init_eventbase (TO_BASE_CONN (conn)))
     return -1;
 
-  if (!conn->base_.active_peer)
+  if (!conn->active_peer)
     peer_pick_peer (conn);
-  if (!conn->base_.active_peer)
+  if (!conn->active_peer)
     return rs_err_conn_push_fl (conn, RSE_NOPEER, __FILE__, __LINE__, NULL);
 
-  if (event_init_socket (conn, conn->base_.active_peer))
+  if (event_init_socket (&conn->base_, conn->active_peer))
     return -1;
 
   if (conn->base_.realm->type == RS_CONN_TYPE_TCP
@@ -37,7 +37,7 @@ _conn_open (struct rs_connection *conn, struct rs_message *msg)
     {
       if (tcp_init_connect_timer (conn))
        return -1;
-      if (event_init_bufferevent (conn, conn->base_.active_peer))
+      if (event_init_bufferevent (conn))
        return -1;
     }
   else
@@ -59,7 +59,7 @@ static int
 _conn_is_open_p (struct rs_connection *conn)
 {
   return conn->state == RS_CONN_STATE_CONNECTED
-    && conn->base_.active_peer != NULL;
+    && conn->active_peer != NULL;
 }
 
 /* User callback used when we're dispatching for user.  */
@@ -76,7 +76,7 @@ _wcb (void *user_data)
 }
 
 int
-rs_message_send (struct rs_message *msg, void *user_data)
+rs_message_send (struct rs_message *msg)
 {
   struct rs_connection *conn = NULL;
   int err = 0;
@@ -93,14 +93,13 @@ rs_message_send (struct rs_message *msg, void *user_data)
 
   assert (conn->base_.ctx);
   assert (conn->base_.ctx->evb);
-  assert (conn->base_.active_peer);
+  assert (conn->active_peer);
   assert (conn->base_.fd >= 0);
 
-  conn->base_.user_data = user_data;
-
   if (conn->base_.bev)         /* TCP */
     {
-      bufferevent_setcb (conn->base_.bev, NULL, tcp_write_cb, tcp_event_cb, msg);
+      bufferevent_setcb (conn->base_.bev, NULL, tcp_write_cb, tcp_event_cb,
+                         msg);
       bufferevent_enable (conn->base_.bev, EV_WRITE);
     }
   else                         /* UDP */
@@ -118,6 +117,7 @@ rs_message_send (struct rs_message *msg, void *user_data)
   /* Do dispatch, unless the user wants to do it herself.  */
   if (!conn_user_dispatch_p (conn))
     {
+      /* Blocking mode. */
       conn->callbacks.sent_cb = _wcb;
       conn->base_.user_data = msg;
       rs_debug (("%s: entering event loop\n", __func__));