about summary refs log tree commit diff
path: root/doc/Capabilities.txt
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2012-06-09 01:03:48 +0200
committerAlexander Barton <alex@barton.de>2012-06-09 01:03:48 +0200
commit684e50f0a4d827965b61c4b9feeda403ec3c3b87 (patch)
tree4285dd2208ab453a5b25c08880f67d93b6c8029a /doc/Capabilities.txt
parent4a90959cb563e7c6ca57d32779074b448982c94f (diff)
downloadngircd-684e50f0a4d827965b61c4b9feeda403ec3c3b87.tar.gz
ngircd-684e50f0a4d827965b61c4b9feeda403ec3c3b87.zip
Correctly handle asynchronously re-established server links
Don't try to establish an outgoing server link after DNS lookup when this
server re-connected on its own in the meantime.
In addition, log a warning message if we try to update the connection
index of an already connected server structure -- and ignore it.

Up to now, both behaviour could lead to a race when the remote server
connects to this daemon while it still prepares the outgoing connection:

 - The local server prepares the new outgoing connection ...
 - in the meantime the remote server becomes connected and registered.
 - Now the new outgoing connection overwrites the (correct) socket handle,
 - then the 2nd connection becomes disconnected: "already registered",
 - and the 1st connection becomes unhandled ("gets lost") because the
   configuration structure is reset because of the wrong socket handle.

This patch hopefully fixes all these problems.
Diffstat (limited to 'doc/Capabilities.txt')
0 files changed, 0 insertions, 0 deletions