about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2012-01-06Proc_Close(): Only close socket if it is still validAlexander Barton
It could be invalid when calling Proc_Close() a 2nd time, for exmaple, which could happen when we hit a timeout doing IDENT requests :-(
2012-01-05WHOIS command: make sure matching is case-insensitiveAlexander Barton
And make sure that RPL_ENDOFWHOIS replies with the unmodified mask like it has been received from the client.
2012-01-05WHOIS command: don't anser queries for IRC serversAlexander Barton
Thanks to Cahata for spotting this!
2012-01-05WHOIS command: make sure the reply ends with RPL_ENDOFWHOISAlexander Barton
Up to now, each reply for itself ended in RPL_ENDOFWHOIS and queries for unknown nick names lacked the RPL_ENDOFWHOIS -- both is wrong.
2012-01-04LINKS command: support <mask> parameterAlexander Barton
The <mask> can be used to limit the servers shown in the listing.
2012-01-04IRC_LINKS(): Code cleanup; more documentationAlexander Barton
2012-01-04Add 1 second penalty for every further target on PRIVMSG/NOTICEAlexander Barton
This reduces the possibility of flooding channels with commands like "PRIVMSG/NOTICE #a,#n,#c,... :message" a little bit. Problem noticed by Cahata -- thanks!
2012-01-04Conn_SetPenalty(): Add new "penalty time" on each function callAlexander Barton
Until now, the penalty time has only been set when longer as the already set one, so it didn't accumulate. And add documentation for and clean up code in Conn_SetPenalty() and Conn_ResetPenalty() functions.
2012-01-03Enhance log messages when setting user and groupAlexander Barton
2012-01-03NGIRCd_getNobodyID(): Code cleanupAlexander Barton
2012-01-03Display correct error message when "Server{UID|GID}" is invalidAlexander Barton
This partly closes bug #118. ngIRCd still starts up even when Server{UID|GID} is invalid: then the daemon falls back to "nobody" when running with root(0) privileges (as before).
2012-01-03NGIRCd_Init(): Code cleanupAlexander Barton
2012-01-03main(): Code cleanupAlexander Barton
2012-01-03Update Copyright notices for 2012Alexander Barton
2012-01-02lists: don't crash if reason ptr is NULLFlorian Westphal
commit 15fec92ed75c3de0b32c40d005e93e3f61aef77e (Update list item, if it already exists) can make ngircd crash because 'Reason' can be NULL, as reported by Cahata on the ngircd mailing list. Doesn't affect any released ngircd versions. Also, make sure that we do not pass NULL as arguments to a '%s' printf-like function.
2012-01-02Don't stop join handling on faulty channel, skip itAlexander Barton
When JOIN is received with more than one channel name, don't stop processing on the first error (e.g. bad name, wrong channel key, ...) but report an error and continue with the other given channel names. Reported by Cahata -- thanks!
2012-01-02IRC_JOIN(): Code cleanupAlexander Barton
2012-01-02ISON command: reply with correct upper-/lowercase nick namesAlexander Barton
Reported by Cahata -- thanks!
2012-01-02IRC_ISON(): Code cleanupAlexander Barton
2012-01-02Remove unused "bool have_arg" from IRC_WHO()Alexander Barton
This fixes: irc-info.c: In function ‘IRC_WHO’: irc-info:936:18: warning: variable ‘have_arg’ set but not used
2012-01-01New configuration option "PAMIsOptional"Alexander Barton
When "PAMIsOptional" is set, clients not sending a password are still allowed to connect: they won't become "identified" and keep the "~" character prepended to their supplied user name.
2011-12-31PAM: don't use global password buffer for conv structAlexander Barton
Use the pointer of the password of the client directly. Eventually we can get rid of the global password again ...
2011-12-30Fixed handling of WHO commandsAlexander Barton
This fixes two bugs: - "WHO <nick>" returned nothing at all if the user was "+i" (reported by Cahata, thanks). - "WHO <nick|nickmask>" returned channel names instead of "*" when the user was member of a (visible) channel. Clean up code and add documentation as well.
2011-12-30Remove unused "time_t now" from Lists_Check()Alexander Barton
This fixes: lists.c: In function ‘Lists_Check’: lists.c:330:9: warning: variable ‘now’ set but not used
2011-12-30Fixed some spelling errors in documentation and code commentsAlexander Barton
Thanks to Christoph Biedl!
2011-12-30Fixed typo in two error messagesAlexander Barton
Thanks to Christoph Biedl!
2011-12-28LUSERS reply: only count "visible" channelsAlexander Barton
Rename Channel_Count() to Channel_CountVisible() and only count channels that are visible to the requesting client, so the existence of secret channels is no longer revealed by using LUSERS. Reported by Cahata -- thanks!
2011-12-28IRC_Send_LUSERS(): Code cleanupAlexander Barton
2011-12-28Don't stop mode handling on unknown modes; skip itAlexander Barton
Unknown user and channel modes no longer stop the mode parser, but are simply ignored. Therefore modes after the unknown one are now handled. This is how ircd2.10/ircd2.11/ircd-seven behave, at least. Reported by Cahata -- thanks!
2011-12-25IRC_xLINE(): output an error message for unexpected "lines"Alexander Barton
This fixes: irc-oper.c: In function ‘IRC_xLINE’: irc-oper.c:429: warning: ‘class’ may be used uninitialized in this function irc-oper.c:430: warning: ‘class_c’ may be used uninitialized in this function
2011-12-25Update list item, if it already existsAlexander Barton
This updates the "validity" (timeout) as well as the "reason" text, if given.
2011-12-25Lists_CheckDupeMask(): return pointer to already existing itemAlexander Barton
The old behavior of returning true/false is compatible to this change, so there are no other code changes required.
2011-12-25Log better error messages when rejecting clientsAlexander Barton
2011-12-25Synchronize G-Lines on server loginAlexander Barton
2011-12-25Op_Check(): always accept commands from a remote server itselfAlexander Barton
2011-12-25Class_GetList() now retuns a pointer to list_head structureAlexander Barton
2011-12-25Check G-Line and K-Line lists after authenticating clientsAlexander Barton
2011-12-25New functions Lists_Expire() and Class_Expire()Alexander Barton
GLINE and KLINE lists are cleared automatically now, not when they are checked. So "STATS g" and "STATS k" no longer show expired entries :-)
2011-12-25Implement IRC_xLINE(): handler for "GLINE" and "KLINE" commandsAlexander Barton
2011-12-25Op_Check(): return client that initiated the request or NULLAlexander Barton
The old behavior of returning true/false is compatible to this change, so there are no other code changes required.
2011-12-25irc-oper.c: code cleanup; more documentationAlexander Barton
2011-12-25Implement IRC "STATS g" and "STATS k" commandAlexander Barton
2011-12-25New function Class_GetList()Alexander Barton
2011-12-25lists.{c|h}: code cleanup; more documentationAlexander Barton
2011-12-25List and class handling: add optional "reason" textAlexander Barton
Adjust Lists_Add() and Class_AddMask() accordingly, implement Lists_GetReason() and Lists_GetValidity().
2011-12-24Add new class.{c|h} to projectAlexander Barton
Implement Class_{AddMask|DeleteMask|IsMember}() functions.
2011-12-24Lists: change "only once" property into "valid until"Alexander Barton
The old "only once" true/false behavior is still supported, so there are no other code changes required.
2011-12-07Configuration: get rid of Conf_Oper_Count and Conf_Channel_CountAlexander Barton
Count elements dynamically when needed.
2011-12-04Suppress 'Can't create pre-defined channel: invalid name: ""' messagesAlexander Barton
Skip predefined channel structures that have configured no name, like the "--configtest" does.
2011-11-25Only use poll() when poll.h exists as wellAlexander Barton