mirror of
https://github.com/osmarks/ngircd.git
synced 2025-01-12 08:40:27 +00:00
do not call Conn_Close when io_event_create fails
This commit is contained in:
parent
3f1e03edd9
commit
d2f7d3087d
@ -17,7 +17,7 @@
|
||||
#include "portab.h"
|
||||
#include "io.h"
|
||||
|
||||
static char UNUSED id[] = "$Id: conn.c,v 1.198 2006/07/23 23:05:20 alex Exp $";
|
||||
static char UNUSED id[] = "$Id: conn.c,v 1.199 2006/12/17 22:55:07 fw Exp $";
|
||||
|
||||
#include "imp.h"
|
||||
#include <assert.h>
|
||||
@ -998,23 +998,18 @@ New_Connection( int Sock )
|
||||
c = Client_NewLocal( new_sock, inet_ntoa( new_addr.sin_addr ), CLIENT_UNKNOWN, false );
|
||||
if( ! c ) {
|
||||
Log( LOG_ALERT, "Can't accept connection: can't create client structure!" );
|
||||
Simple_Message( new_sock, "ERROR :Internal error" );
|
||||
close( new_sock );
|
||||
return -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* register callback */
|
||||
if (!io_event_create( new_sock, IO_WANTREAD, cb_clientserver))
|
||||
goto out;
|
||||
|
||||
Init_Conn_Struct( new_sock );
|
||||
My_Connections[new_sock].sock = new_sock;
|
||||
My_Connections[new_sock].addr = new_addr;
|
||||
My_Connections[new_sock].client = c;
|
||||
|
||||
/* register callback */
|
||||
if (!io_event_create( new_sock, IO_WANTREAD, cb_clientserver)) {
|
||||
Simple_Message( new_sock, "ERROR :Internal error" );
|
||||
Conn_Close( new_sock, "io_event_create() failed", NULL, false );
|
||||
return -1;
|
||||
}
|
||||
|
||||
Log( LOG_INFO, "Accepted connection %d from %s:%d on socket %d.", new_sock,
|
||||
inet_ntoa( new_addr.sin_addr ), ntohs( new_addr.sin_port), Sock );
|
||||
|
||||
@ -1030,7 +1025,11 @@ New_Connection( int Sock )
|
||||
/* Penalty-Zeit setzen */
|
||||
Conn_SetPenalty( new_sock, 4 );
|
||||
return new_sock;
|
||||
} /* New_Connection */
|
||||
out:
|
||||
Simple_Message( new_sock, "ERROR :Internal error" );
|
||||
close( new_sock );
|
||||
return -1;
|
||||
}/* New_Connection */
|
||||
|
||||
|
||||
static CONN_ID
|
||||
|
Loading…
Reference in New Issue
Block a user