X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=trp%2Ftrp_conn.c;fp=trp%2Ftrp_conn.c;h=370d5b1ee4e00c3f19d4be20f5e510e3e13d17d7;hp=64ddf3cacabdb712f5cc89ecf19b2c7781aeccd5;hb=6f65c9cce86719147d0b4dcc9823b25443c2d185;hpb=eaa1a8ceed54fbfadc2638cf383aaa12ab446a57 diff --git a/trp/trp_conn.c b/trp/trp_conn.c index 64ddf3c..370d5b1 100644 --- a/trp/trp_conn.c +++ b/trp/trp_conn.c @@ -40,6 +40,7 @@ #include #include +#include /* Threading note: mutex lock is only used for protecting get_status() and set_status(). * If needed, locking for other operations (notably adding/removing connections) must be managed @@ -338,31 +339,36 @@ int trp_connection_auth(TRP_CONNECTION *conn, TRP_AUTH_FUNC auth_callback, void return !auth; } -/* Accept connection */ -TRP_CONNECTION *trp_connection_accept(TALLOC_CTX *mem_ctx, int listen, TR_NAME *gssname) +/** + * Accept connection + * + * @param mem_ctx talloc context for return value + * @param listen socket fd for incoming connection + * @param gss_servicename our GSS service name to use for passive auth */ +TRP_CONNECTION *trp_connection_accept(TALLOC_CTX *mem_ctx, int listen, TR_NAME *gss_servicename) { int conn_fd=-1; TRP_CONNECTION *conn=NULL; - conn_fd = accept(listen, NULL, NULL); + conn_fd = tr_sock_accept(listen); if (0 > conn_fd) { - tr_notice("trp_connection_accept: accept() returned error."); + tr_notice("trp_connection_accept: Error accepting connection."); return NULL; } conn=trp_connection_new(mem_ctx); trp_connection_set_fd(conn, conn_fd); - trp_connection_set_gssname(conn, gssname); + trp_connection_set_gssname(conn, gss_servicename); trp_connection_set_status(conn, TRP_CONNECTION_AUTHORIZING); return conn; } /* Initiate connection */ -TRP_RC trp_connection_initiate(TRP_CONNECTION *conn, char *server, unsigned int port) +TRP_RC trp_connection_initiate(TRP_CONNECTION *conn, char *server, int port) { int err = 0; int fd=-1; - unsigned int use_port=0; + int use_port=0; if (0 == port) use_port = TRP_PORT;