| Age | Commit message (Collapse) | Author |
|
It could be invalid when calling Proc_Close() a 2nd time, for exmaple,
which could happen when we hit a timeout doing IDENT requests :-(
|
|
And make sure that RPL_ENDOFWHOIS replies with the unmodified mask
like it has been received from the client.
|
|
Thanks to Cahata for spotting this!
|
|
Up to now, each reply for itself ended in RPL_ENDOFWHOIS and queries
for unknown nick names lacked the RPL_ENDOFWHOIS -- both is wrong.
|
|
The <mask> can be used to limit the servers shown in the listing.
|
|
|
|
This reduces the possibility of flooding channels with commands like
"PRIVMSG/NOTICE #a,#n,#c,... :message" a little bit.
Problem noticed by Cahata -- thanks!
|
|
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.
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
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.
|
|
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!
|
|
|
|
Reported by Cahata -- thanks!
|
|
|
|
This fixes:
irc-info.c: In function ‘IRC_WHO’:
irc-info:936:18: warning: variable ‘have_arg’ set but not used
|
|
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.
|
|
Use the pointer of the password of the client directly.
Eventually we can get rid of the global password again ...
|
|
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.
|
|
This fixes:
lists.c: In function ‘Lists_Check’:
lists.c:330:9: warning: variable ‘now’ set but not used
|
|
Thanks to Christoph Biedl!
|
|
Thanks to Christoph Biedl!
|
|
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!
|
|
|
|
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!
|
|
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
|
|
This updates the "validity" (timeout) as well as the "reason" text,
if given.
|
|
The old behavior of returning true/false is compatible to this change,
so there are no other code changes required.
|
|
|
|
|
|
|
|
|
|
|
|
GLINE and KLINE lists are cleared automatically now, not when they are
checked. So "STATS g" and "STATS k" no longer show expired entries :-)
|
|
|
|
The old behavior of returning true/false is compatible to this change,
so there are no other code changes required.
|
|
|
|
|
|
|
|
|
|
Adjust Lists_Add() and Class_AddMask() accordingly, implement
Lists_GetReason() and Lists_GetValidity().
|
|
Implement Class_{AddMask|DeleteMask|IsMember}() functions.
|
|
The old "only once" true/false behavior is still supported, so there
are no other code changes required.
|
|
Count elements dynamically when needed.
|
|
Skip predefined channel structures that have configured no name,
like the "--configtest" does.
|
|
|