X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=trp%2Ftrp_conn.c;h=cd45bc539506464c29c96f059bf25705b298bcce;hb=8503060a4ce1b8431bcade6bac913236d980eaf3;hp=99d85930b2b457bb4f9ce12090ec0b0d4717690b;hpb=1de2681de6f898e113c6b80b398732593ad76001;p=trust_router.git diff --git a/trp/trp_conn.c b/trp/trp_conn.c index 99d8593..cd45bc5 100644 --- a/trp/trp_conn.c +++ b/trp/trp_conn.c @@ -41,8 +41,6 @@ static TRP_RC trp_connection_set_peer(TRP_CONNECTION *conn) gss_buffer_desc peer_display_name={0,NULL}; int local=0; - tr_debug("gssctx = %p", trp_connection_get_gssctx(conn)); - tr_debug("*gssctx = %p", *trp_connection_get_gssctx(conn)); major_status=gss_inquire_context(&minor_status, *trp_connection_get_gssctx(conn), &source_name, @@ -86,7 +84,8 @@ static TRP_RC trp_connection_set_peer(TRP_CONNECTION *conn) if (conn->peer==NULL) return TRP_ERROR; - + + tr_debug("trp_connection_set_peer: set peer for %p to %.*s (%p).", conn, conn->peer->len, conn->peer->buf, conn->peer); return TRP_SUCCESS; } @@ -257,7 +256,8 @@ void trp_connection_free(TRP_CONNECTION *conn) void trp_connection_close(TRP_CONNECTION *conn) { - close(trp_connection_get_fd(conn)); + if ((conn->status!=TRP_CONNECTION_DOWN) && (conn->fd>0)) + close(trp_connection_get_fd(conn)); trp_connection_set_fd(conn, -1); trp_connection_set_status(conn, TRP_CONNECTION_DOWN); } @@ -349,12 +349,16 @@ TRP_RC trp_connection_initiate(TRP_CONNECTION *conn, char *server, unsigned int &fd, trp_connection_get_gssctx(conn)); if (err) { - tr_debug("trp_connection_initiate: connection failed."); + tr_err("trp_connection_initiate: connection failed."); return TRP_ERROR; } else { tr_debug("trp_connection_initiate: connected."); trp_connection_set_fd(conn, fd); - trp_connection_set_peer(conn); + if (trp_connection_set_peer(conn)!=TRP_SUCCESS) { + tr_err("trp_connection_initiate: error setting peer gssname."); + trp_connection_close(conn); + return TRP_ERROR; + } trp_connection_set_status(conn, TRP_CONNECTION_UP); return TRP_SUCCESS; }