Alexander Barton
565523cbb4
Don't stop join handling on faulty channel, skip it
...
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-02 15:23:17 +01:00
Alexander Barton
013298d4c6
IRC_JOIN(): Code cleanup
2012-01-02 15:22:52 +01:00
Alexander Barton
af13732ec7
ISON command: reply with correct upper-/lowercase nick names
...
Reported by Cahata -- thanks!
2012-01-02 15:06:44 +01:00
Alexander Barton
408a74b865
IRC_ISON(): Code cleanup
2012-01-02 15:04:40 +01:00
Alexander Barton
f47904bf95
Remove unused "bool have_arg" from IRC_WHO()
...
This fixes:
irc-info.c: In function ‘IRC_WHO’:
irc-info:936:18: warning: variable ‘have_arg’ set but not used
2012-01-02 00:56:31 +01:00
Alexander Barton
70eb8219f5
Update NEWS and ChangeLog for next ngIRCd release
2012-01-01 23:14:28 +01:00
Alexander Barton
9e5b9ddad0
ngircd.conf.5: reword description of "Ports" variable
2012-01-01 17:39:07 +01:00
Alexander Barton
56b7e67307
New configuration option "PAMIsOptional"
...
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.
2012-01-01 17:12:36 +01:00
Alexander Barton
b681aa5b9f
PAM: don't use global password buffer for conv struct
...
Use the pointer of the password of the client directly.
Eventually we can get rid of the global password again ...
2011-12-31 18:06:17 +01:00
Alexander Barton
b32f3b76e9
doc/Modes.txt: document channel mode "r"
...
And make clear, that user mode "r" and channel mode "r" are not set by
ngIRCd itself but by IRC services.
2011-12-31 18:04:58 +01:00
Alexander Barton
1a5ed654b4
Fixed handling of WHO commands
...
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-30 14:57:12 +01:00
Alexander Barton
9cbb8f3bb8
Remove unused "time_t now" from Lists_Check()
...
This fixes:
lists.c: In function ‘Lists_Check’:
lists.c:330:9: warning: variable ‘now’ set but not used
2011-12-30 01:03:59 +01:00
Alexander Barton
e19ce437ca
Fixed some spelling errors in documentation and code comments
...
Thanks to Christoph Biedl!
2011-12-30 00:50:27 +01:00
Alexander Barton
4e550bf9ef
contrib/Debian/control: Update and complete "Build-Depends"
2011-12-30 00:40:18 +01:00
Alexander Barton
1d29a59f7e
Update our Debian package descriptions with "official" ones
...
See Debian Bug #648241 for details.
2011-12-30 00:36:26 +01:00
Alexander Barton
765c2f26ea
Fixed typo in two error messages
...
Thanks to Christoph Biedl!
2011-12-30 00:32:11 +01:00
Alexander Barton
69fa6f268a
LUSERS reply: only count "visible" channels
...
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-28 15:11:01 +01:00
Alexander Barton
43509fd22c
IRC_Send_LUSERS(): Code cleanup
2011-12-28 14:52:21 +01:00
Alexander Barton
a71abfef4b
Don't stop mode handling on unknown modes; skip it
...
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-28 14:46:17 +01:00
Alexander Barton
8a8e8a3a23
IRC_xLINE(): output an error message for unexpected "lines"
...
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-25 20:11:43 +01:00
Alexander Barton
65befdafaa
README: Update list of implemented commands
2011-12-25 20:01:28 +01:00
Alexander Barton
15fec92ed7
Update list item, if it already exists
...
This updates the "validity" (timeout) as well as the "reason" text,
if given.
2011-12-25 19:43:00 +01:00
Alexander Barton
1e4a00f94f
Lists_CheckDupeMask(): return pointer to already existing item
...
The old behavior of returning true/false is compatible to this change,
so there are no other code changes required.
2011-12-25 19:42:03 +01:00
Alexander Barton
338758799d
Log better error messages when rejecting clients
2011-12-25 19:27:06 +01:00
Alexander Barton
164e15b8c6
Synchronize G-Lines on server login
2011-12-25 19:12:40 +01:00
Alexander Barton
32bfafafd9
Op_Check(): always accept commands from a remote server itself
2011-12-25 19:11:43 +01:00
Alexander Barton
6ef20e0f9a
Class_GetList() now retuns a pointer to list_head structure
2011-12-25 19:11:07 +01:00
Alexander Barton
e86e193e01
Check G-Line and K-Line lists after authenticating clients
2011-12-25 18:03:35 +01:00
Alexander Barton
ae5ebfb9f0
New functions Lists_Expire() and Class_Expire()
...
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-25 17:44:20 +01:00
Alexander Barton
e9e6224aae
Implement IRC_xLINE(): handler for "GLINE" and "KLINE" commands
2011-12-25 16:57:36 +01:00
Alexander Barton
e23f025dd6
Op_Check(): return client that initiated the request or NULL
...
The old behavior of returning true/false is compatible to this change,
so there are no other code changes required.
2011-12-25 16:52:31 +01:00
Alexander Barton
3ca8703309
irc-oper.c: code cleanup; more documentation
2011-12-25 16:08:00 +01:00
Alexander Barton
fc82efc3e8
Implement IRC "STATS g" and "STATS k" command
2011-12-25 14:50:19 +01:00
Alexander Barton
dc9fcb0fb2
New function Class_GetList()
2011-12-25 14:49:52 +01:00
Alexander Barton
2b95c69ea1
lists.{c|h}: code cleanup; more documentation
2011-12-25 14:48:13 +01:00
Alexander Barton
af70c3dbc9
List and class handling: add optional "reason" text
...
Adjust Lists_Add() and Class_AddMask() accordingly, implement
Lists_GetReason() and Lists_GetValidity().
2011-12-25 14:19:45 +01:00
Alexander Barton
1e054e0b82
Add new class.{c|h} module to Xcode project
2011-12-24 14:24:07 +01:00
Alexander Barton
06a20b87c4
Add new class.{c|h} to project
...
Implement Class_{AddMask|DeleteMask|IsMember}() functions.
2011-12-24 13:40:27 +01:00
Alexander Barton
fea2194fc0
Lists: change "only once" property into "valid until"
...
The old "only once" true/false behavior is still supported, so there
are no other code changes required.
2011-12-24 13:34:25 +01:00
Alexander Barton
872dc5042d
Xcode: update project file for Xcode 4.2
2011-12-24 13:22:34 +01:00
Alexander Barton
e1315f30fd
define HAVE_GAI_STRERROR for Mac OS X Xcode builds
...
On Mac OS X 10.7 Lion, this fixes
In file included from .../contrib/MacOSX/../../src/ngircd/client.c:28:
/Developer/SDKs/MacOSX10.7.sdk/usr/include/netdb.h:272:13:
error: expected identifier or '('
2011-12-24 13:16:38 +01:00
Alexander Barton
0a85c58878
Configuration: get rid of Conf_Oper_Count and Conf_Channel_Count
...
Count elements dynamically when needed.
2011-12-07 10:52:30 +01:00
Alexander Barton
ee21490887
./configure: Fix logic and quoting of poll() detection code
...
This fixes commit 8e193df
...
2011-12-05 00:20:27 +01:00
Alexander Barton
8fa92f0a24
Suppress 'Can't create pre-defined channel: invalid name: ""' messages
...
Skip predefined channel structures that have configured no name,
like the "--configtest" does.
2011-12-04 22:35:20 +01:00
Alexander Barton
8e193df973
Only use poll() when poll.h exists as well
2011-11-25 22:06:44 +01:00
Alexander Barton
9d348d00d9
Not only check for poll(), make sure poll.h exists as well
...
This fixes building ngIRCd on Debian GNU/Linux 1.3 "Bo" :-)
2011-11-25 21:56:33 +01:00
Alexander Barton
9e48f3f8f8
whois-test: handle local hostname = "localhost.localdomain"
...
Use the pattern "localhost*" for valid local hostnames.
2011-11-10 11:54:22 +01:00
Alexander Barton
e4a06844a3
sample-ngircd.conf: show correct default for "PAM" variable
...
The default of "PAM" is "yes" when ngIRCd has been configured to use it,
so show the correct default value in the sample configuration file.
Closes #119 .
2011-11-08 21:12:01 +01:00
Alexander Barton
20ccc1bba7
Update GPL 2 license text to current version
...
See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt >.
2011-11-06 21:53:15 +01:00
Alexander Barton
13d9e0c5a7
Test for gai_strerror()
...
If gai_strerror() isn't available, use a macro that simply returns
a static error message (regardless of the real error code).
For example, GNU libc 2.0.7 doesn't implement gai_strerror().
2011-11-06 14:16:59 +01:00