if (array_bytes(&My_Connections[Idx].wbuf) + Len >=
writebuf_limit) {
Log(LOG_NOTICE,
- "Write buffer overflow (connection %d, limit is %lu bytes, %lu bytes new, %lu bytes pending)!",
+ "Write buffer space exhausted (connection %d, limit is %lu bytes, %lu bytes new, %lu bytes pending)",
Idx, writebuf_limit, Len,
(unsigned long)array_bytes(&My_Connections[Idx].wbuf));
- Conn_Close(Idx, "Write buffer overflow!", NULL, false);
+ Conn_Close(Idx, "Write buffer space exhausted", NULL, false);
return false;
}
{
/* Read buffer is full */
Log(LOG_ERR,
- "Receive buffer overflow (connection %d): %d bytes!",
+ "Receive buffer space exhausted (connection %d): %d bytes",
Idx, array_bytes(&My_Connections[Idx].rbuf));
- Conn_Close( Idx, "Receive buffer overflow!", NULL, false );
+ Conn_Close(Idx, "Receive buffer space exhausted", NULL, false);
return;
}
Log(LOG_ERR,
"Could not append recieved data to zip input buffer (connn %d): %d bytes!",
Idx, len);
- Conn_Close(Idx, "Receive buffer overflow!", NULL,
+ Conn_Close(Idx, "Receive buffer space exhausted", NULL,
false);
return;
}
{
if (!array_catb( &My_Connections[Idx].rbuf, readbuf, len)) {
Log( LOG_ERR, "Could not append recieved data to input buffer (connn %d): %d bytes!", Idx, len );
- Conn_Close( Idx, "Receive buffer overflow!", NULL, false );
+ Conn_Close(Idx, "Receive buffer space exhausted", NULL, false );
}
}
return;
}
+ if (!io_event_create( new_sock, IO_WANTWRITE, cb_connserver)) {
+ Log(LOG_ALERT, "io_event_create(): could not add fd %d", strerror(errno));
+ close(new_sock);
+ return;
+ }
+
My_Connections = array_start(&My_ConnArray);
assert(My_Connections[new_sock].sock <= 0);
c = Client_NewLocal(new_sock, ip_str, CLIENT_UNKNOWNSERVER, false);
if (!c) {
Log( LOG_ALERT, "Can't establish connection: can't create client structure!" );
- close( new_sock );
+ io_close(new_sock);
return;
}
strlcpy( My_Connections[new_sock].host, Conf_Server[Server].host,
sizeof(My_Connections[new_sock].host ));
- /* Register new socket */
- if (!io_event_create( new_sock, IO_WANTWRITE, cb_connserver)) {
- Log( LOG_ALERT, "io_event_create(): could not add fd %d", strerror(errno));
- Conn_Close( new_sock, "io_event_create() failed", NULL, false );
- Init_Conn_Struct( new_sock );
- Conf_Server[Server].conn_id = NONE;
- }
#ifdef SSL_SUPPORT
if (Conf_Server[Server].SSLConnect && !ConnSSL_PrepareConnect( &My_Connections[new_sock],
&Conf_Server[Server] ))
* Initialize options of a new socket.
*
* For example, we try to set socket options SO_REUSEADDR and IPTOS_LOWDELAY.
- * Errors shouldn't be fatal and therefore are ignored.
+ * The socket is automatically closed if a fatal error is encountered.
*
* @param Sock Socket handle.
+ * @returns false if socket was closed due to fatal error.
*/
static bool
Init_Socket( int Sock )