X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=trp%2Ftrp_conn.c;h=1cf326d9b8bbab51ac81b5f7236053a7e20e23d8;hb=81a61f8c6064bf52ff2a40a3d28e6ee5b2e478d4;hp=cd45bc539506464c29c96f059bf25705b298bcce;hpb=e427f7d366115d72ded50c2d8de7e7c4c37a773f;p=trust_router.git diff --git a/trp/trp_conn.c b/trp/trp_conn.c index cd45bc5..1cf326d 100644 --- a/trp/trp_conn.c +++ b/trp/trp_conn.c @@ -1,3 +1,37 @@ +/* + * Copyright (c) 2016, JANET(UK) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of JANET(UK) nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + #include #include #include @@ -6,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 @@ -304,21 +339,26 @@ 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; }