From 9eee0c883b22fef4c21dda6ffdabd41b58634527 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Wed, 15 Jan 2003 14:28:59 +0000 Subject: [PATCH 1/1] - Client structures are removed correctly now if an outgoing connection can't be estahlished. --- src/ngircd/conn.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c index 8ef4bc7a..1819e36f 100644 --- a/src/ngircd/conn.c +++ b/src/ngircd/conn.c @@ -16,7 +16,7 @@ #include "portab.h" -static char UNUSED id[] = "$Id: conn.c,v 1.114 2002/12/31 16:13:29 alex Exp $"; +static char UNUSED id[] = "$Id: conn.c,v 1.115 2003/01/15 14:28:59 alex Exp $"; #include "imp.h" #include @@ -698,6 +698,7 @@ Handle_Write( CONN_ID Idx ) /* Daten aus Schreibpuffer versenden bzw. Connection aufbauen */ INT len, res, err; + CLIENT *c; assert( Idx > NONE ); assert( My_Connections[Idx].sock > NONE ); @@ -721,8 +722,10 @@ Handle_Write( CONN_ID Idx ) if( res != 0 ) Log( LOG_CRIT, "getsockopt (connection %d): %s!", Idx, strerror( errno )); else Log( LOG_CRIT, "Can't connect socket to \"%s:%d\" (connection %d): %s!", My_Connections[Idx].host, Conf_Server[Conf_GetServer( Idx )].port, Idx, strerror( err )); - /* Socket etc. pp. aufraeumen */ + /* Clean up socket, connection and client structures */ FD_CLR( My_Connections[Idx].sock, &My_Sockets ); + c = Client_GetFromConn( Idx ); + if( c ) Client_DestroyNow( c ); close( My_Connections[Idx].sock ); Init_Conn_Struct( Idx ); -- 2.39.2