mirror of
https://github.com/matrix-construct/construct
synced 2024-11-18 07:50:57 +01:00
[ratbox3 svn r26397] Make it more likely that error messages on ssld connections get through.
When ssld reports a connection closure because of "Remote host closed the connection" and the connection is any server or a registered client, try a read_packet() on the client. This should mainly help LIBRB_USE_IOTYPE=poll which iterates over the ready file descriptors in numerical order, processing the ssld control connection before the closing data connection.
This commit is contained in:
parent
0bd120ed48
commit
42d609f65a
1 changed files with 8 additions and 0 deletions
|
@ -377,6 +377,14 @@ ssl_process_dead_fd(ssl_ctl_t * ctl, ssl_ctl_buf_t * ctl_buf)
|
||||||
client_p = find_cli_fd_hash(fd);
|
client_p = find_cli_fd_hash(fd);
|
||||||
if(client_p == NULL)
|
if(client_p == NULL)
|
||||||
return;
|
return;
|
||||||
|
if(IsAnyServer(client_p) || IsRegistered(client_p))
|
||||||
|
{
|
||||||
|
/* read any last moment ERROR, QUIT or the like -- jilles */
|
||||||
|
if (!strcmp(reason, "Remote host closed the connection"))
|
||||||
|
read_packet(client_p->localClient->F, client_p);
|
||||||
|
if (IsAnyDead(client_p))
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(IsAnyServer(client_p))
|
if(IsAnyServer(client_p))
|
||||||
{
|
{
|
||||||
sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) && !IsServer(client_p) ? L_NETWIDE : L_ALL, "ssld error for %s: %s", client_p->name, reason);
|
sendto_realops_snomask(SNO_GENERAL, is_remote_connect(client_p) && !IsServer(client_p) ? L_NETWIDE : L_ALL, "ssld error for %s: %s", client_p->name, reason);
|
||||||
|
|
Loading…
Reference in a new issue