mirror of
https://github.com/osmarks/ngircd.git
synced 2025-03-08 18:38:10 +00:00

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.
ngIRCd - Next Generation IRC Server http://ngircd.barton.de/ (c)2001-2012 Alexander Barton and Contributors. ngIRCd is free software and published under the terms of the GNU General Public License. -- README -- I. Introduction ~~~~~~~~~~~~~~~ ngIRCd is an Open Source server for the Internet Relay Chat (IRC), which is developed and published under the terms of the GNU General Public Licence, see the file COPYING for details. ngIRCd means "next generation IRC daemon" (which is a little bit exaggerated, "lightweight Internet Relay Chat server" would be better), it's written from scratch and not deduced from the "grandfather of IRC daemons", the daemon of the IRCNet. Please see the INSTALL document for installation and upgrade information! II. Status ~~~~~~~~~~~ It is not the goal of ngIRCd to implement all the nasty behaviours of the original ircd, but to implement most of the useful commands and semantics specified by the RFCs. In the meantime ngIRCd should be quite feature complete and stable to be used in real IRC networks. Implemented IRC-commands are: ADMIN, AWAY, CHANINFO, CONNECT, DIE, DISCONNECT, ERROR, GLINE, HELP, INFO, INVITE, ISON, JOIN, KICK, KILL, KLINE, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NJOIN, NOTICE, OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER, SERVICE, SERVLIST, SQUERY, SQUIT, STATS, SUMMON, TIME, TOPIC, TRACE, USER, USERHOST, USERS, VERSION, WALLOPS, WEBIRC, WHO, WHOIS, WHOWAS. III. Features (or: why use ngIRCd?) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - well arranged (lean) configuration file - simple to build/install, configure and maintain - supports IPv6 and SSL - no problems with servers that have dynamic IP addresses - freely available, modern, portable and tidy C-source - wide field of supported platforms, including AIX, A/UX, FreeBSD, HP-UX, IRIX, Linux, Mac OS X, NetBSD, OpenBSD, Solaris, and Windows with Cygwin. - ngIRCd is being actively developed since 2001. IV. Documentation ~~~~~~~~~~~~~~~~~ More documentation can be found in the "doc/" directory and the homepage of the ngIRCd: <http://ngircd.barton.de/>. V. Download ~~~~~~~~~~~ The homepage of the ngIRCd is: <http://ngircd.barton.de/>; you will find the newest information about the ngIRCd and the most recent ("stable") releases there. If you are interested in the latest development versions (which are not always stable), then please read the section about "GIT" on the homepage and the file "doc/GIT.txt" which describes the use of GIT, the version control system used by ngIRCd (homepage: http://git-scm.com/). VI. Bugs ~~~~~~~~ If you find bugs in the ngIRCd (which might be there :-), please report them at the following URL: <http://ngircd.barton.de/bugtracker.php> There you can read about known bugs and limitations, too. If you have critics, patches or something else, please feel free to post a mail to the ngIRCd mailing list: <ngircd-ml@arthur.barton.de> (please see <http://ngircd.barton.de/support.php#ml> for details) or join the ngIRCd IRC channel: <irc://irc.barton.de/ngircd>.
Description
Languages
C
92%
Shell
4%
E
2.8%
Makefile
0.7%
Dockerfile
0.2%
Other
0.2%