mirror of
https://github.com/osmarks/ngircd.git
synced 2025-04-21 18:23:16 +00:00

reported on #ngircd: pasting lots of lines into a channel can kill off many people on the channel if the read buffer is drained quickly enough and the client-side TCP can't keep up with the incoming data. This implements a throttling scheme: - an irc client may send up to 3 commands per second before a one second pause is enforced. - an irc client may send up to 256 bytes per second before a one second pause is enforced. After discussion with Alexander Barton, server <-> server links are treated specially: There is no artificial limit on the number of bytes sent per second, and up to 10 commands are processed per second before a pause is enforced. It may be neccessary to make those limits tuneable to accomondate larger networks, but for now they are compile time values.
ngIRCd - Next Generation IRC Server (c)2001-2007 Alexander Barton, alex@barton.de, http://www.barton.de/ 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 (URL: http://www.gnu.org/licenses/gpl.html). ngIRCd means "next generation IRC daemon", 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, HELP, INVITE, ISON, JOIN, KICK, KILL, LINKS, LIST, LUSERS, MODE, MOTD, NAMES, NICK, NJOIN, NOTICE, OPER, PART, PASS, PING, PONG, PRIVMSG, QUIT, REHASH, RESTART, SERVER, SQUIT, STATS, TIME, TOPIC, TRACE, USER, USERHOST, VERSION, WALLOPS, WHO, WHOIS, WHOWAS. III. Features (or: why use ngIRCd?) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - no problems with servers which have dynamic IP addresses - simple, easy understandable configuration file, - freely published open-source C source code, - ngIRCd will be developed on in the future. - wide field of supported platforms, including AIX, A/UX, FreeBSD, HP-UX, IRIX, Linux, Mac OS X, NetBSD, OpenBSD, Solaris, and Windows with Cygwin. 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.or.cz/). VI. Bugs ~~~~~~~~ If you find bugs in the ngIRCd (which might be there :-), please report them at the following URL: <http://ngircd.barton.de/#bugs> 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.ath.cx> (please see <http://ngircd.barton.de/#ml> for details).
Description
Languages
C
92%
Shell
4%
E
2.8%
Makefile
0.7%
Dockerfile
0.2%
Other
0.2%