diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/event.c | 40 | ||||
| -rw-r--r-- | lib/event.h | 1 | ||||
| -rw-r--r-- | lib/tcp.c | 34 | ||||
| -rw-r--r-- | lib/tcp.h | 1 | 
4 files changed, 38 insertions, 38 deletions
| diff --git a/lib/event.c b/lib/event.c index 97a08c8..55a7e6b 100644 --- a/lib/event.c +++ b/lib/event.c @@ -14,10 +14,11 @@  #endif  #include <radsec/radsec.h>  #include <radsec/radsec-impl.h> +#include "tcp.h" +#include "udp.h"  #if defined (RS_ENABLE_TLS)  #include "tls.h"  #endif -#include "udp.h"  #include "event.h"  #include "packet.h"  #include "debug.h" @@ -74,24 +75,6 @@ event_init_socket (struct rs_connection *conn, struct rs_peer *p)    return RSE_OK;  } -static void -_conn_timeout_cb (int fd, short event, void *data) -{ -  struct rs_connection *conn; - -  assert (data); -  conn = (struct rs_connection *) data; - -  if (event & EV_TIMEOUT) -    { -      rs_debug (("%s: connection timeout on %p (fd %d) connecting to %p\n", -		 __func__, conn, conn->fd, conn->active_peer)); -      conn->is_connecting = 0; -      rs_err_conn_push_fl (conn, RSE_TIMEOUT_IO, __FILE__, __LINE__, NULL); -      event_loopbreak (conn); -    } -} -  int  event_init_bufferevent (struct rs_connection *conn, struct rs_peer *peer)  { @@ -155,7 +138,7 @@ event_do_connect (struct rs_connection *conn)    if (p->conn->bev)		/* TCP */      { -      event_set_timeout (conn); +      tcp_set_connect_timeout (conn);        err = bufferevent_socket_connect (p->conn->bev, p->addr->ai_addr,  					p->addr->ai_addrlen);        if (err < 0) @@ -192,23 +175,6 @@ event_loopbreak (struct rs_connection *conn)  } -int -event_set_timeout (struct rs_connection *conn) -{ -  struct timeval tv; - -  if (!conn->tev) -    conn->tev = evtimer_new (conn->evb, _conn_timeout_cb, conn); -  if (!conn->tev) -    return rs_err_conn_push_fl (conn, RSE_EVENT, __FILE__, __LINE__, -				"evtimer_new"); -  tv.tv_sec = conn->realm->timeout; -  tv.tv_usec = 0; -  evtimer_add (conn->tev, &tv); - -  return RSE_OK; -} -  void  event_on_disconnect (struct rs_connection *conn)  { diff --git a/lib/event.h b/lib/event.h index 5395f58..e5ea90c 100644 --- a/lib/event.h +++ b/lib/event.h @@ -1,7 +1,6 @@  /* Copyright 2011 NORDUnet A/S. All rights reserved.     See the file COPYING for licensing information.  */ -int event_set_timeout (struct rs_connection *conn);  void event_on_disconnect (struct rs_connection *conn);  void event_on_connect (struct rs_connection *conn, struct rs_packet *pkt);  int event_loopbreak (struct rs_connection *conn); @@ -23,6 +23,24 @@  #include <event2/buffer.h>  #endif +static void +_conn_timeout_cb (int fd, short event, void *data) +{ +  struct rs_connection *conn; + +  assert (data); +  conn = (struct rs_connection *) data; + +  if (event & EV_TIMEOUT) +    { +      rs_debug (("%s: connection timeout on %p (fd %d) connecting to %p\n", +		 __func__, conn, conn->fd, conn->active_peer)); +      conn->is_connecting = 0; +      rs_err_conn_push_fl (conn, RSE_TIMEOUT_IO, __FILE__, __LINE__, NULL); +      event_loopbreak (conn); +    } +} +  static int  _close_conn (struct rs_connection **connp)  { @@ -274,3 +292,19 @@ tcp_write_cb (struct bufferevent *bev, void *ctx)      pkt->conn->callbacks.sent_cb (pkt->conn->user_data);  } +int +tcp_set_connect_timeout (struct rs_connection *conn) +{ +  struct timeval tv; + +  if (!conn->tev) +    conn->tev = evtimer_new (conn->evb, _conn_timeout_cb, conn); +  if (!conn->tev) +    return rs_err_conn_push_fl (conn, RSE_EVENT, __FILE__, __LINE__, +				"evtimer_new"); +  tv.tv_sec = conn->realm->timeout; +  tv.tv_usec = 0; +  evtimer_add (conn->tev, &tv); + +  return RSE_OK; +} @@ -4,3 +4,4 @@  void tcp_event_cb (struct bufferevent *bev, short events, void *user_data);  void tcp_read_cb (struct bufferevent *bev, void *user_data);  void tcp_write_cb (struct bufferevent *bev, void *ctx); +int tcp_set_connect_timeout (struct rs_connection *conn); | 
