Alexander Barton [Wed, 16 Mar 2011 22:43:29 +0000 (23:43 +0100)]
Move "ClientHost" and "ClientUserNick" to end of [Global] section
Gabor Adam Toth [Mon, 20 Dec 2010 02:35:17 +0000 (03:35 +0100)]
ClientUserNick setting
Gabor Adam Toth [Mon, 14 Feb 2011 15:16:07 +0000 (16:16 +0100)]
ClientHost setting
Florian Westphal [Mon, 28 Feb 2011 20:09:47 +0000 (21:09 +0100)]
channel: always reject zero-length channel key
previously, any client could join in this configuration:
[Channel]
Name = #test
Modes = tnk
KeyFile = /tmp/foobar
fix this by checking for zero-length key before comparing
key to channel key.
Alexander Barton [Wed, 23 Feb 2011 21:55:45 +0000 (22:55 +0100)]
PAM-Auth child: log if result can't be reported
This fixes the followin GCC warning on modern Linux systems as well:
irc-login.c: In function ‘Hello_User’:
irc-login.c:876: warning: ignoring return value of ‘write’,
declared with attribute warn_unused_result
Alexander Barton [Thu, 17 Feb 2011 11:26:56 +0000 (12:26 +0100)]
Protocol.txt: Update description of CHANINFO command
Alexander Barton [Wed, 16 Feb 2011 13:06:25 +0000 (14:06 +0100)]
Add cscope.out to .gitignore file
Alexander Barton [Mon, 14 Feb 2011 00:44:40 +0000 (01:44 +0100)]
Correctly detect errors when handling "MODE x" commands
Alexander Barton [Wed, 29 Dec 2010 13:10:18 +0000 (14:10 +0100)]
Enhance documentation for the WEBIRC command
Alexander Barton [Wed, 29 Dec 2010 13:09:46 +0000 (14:09 +0100)]
Doxygen'ify irc-login.c
Alexander Barton [Wed, 29 Dec 2010 12:11:20 +0000 (13:11 +0100)]
Doxygen'ify irc-channel.c
Alexander Barton [Wed, 29 Dec 2010 12:09:01 +0000 (13:09 +0100)]
Doxygen'ify conn.c
Alexander Barton [Mon, 27 Dec 2010 16:37:56 +0000 (17:37 +0100)]
Doxygen'ify proc.h
Alexander Barton [Mon, 27 Dec 2010 16:34:26 +0000 (17:34 +0100)]
Doxygen'ify parse.h
Alexander Barton [Mon, 27 Dec 2010 16:31:19 +0000 (17:31 +0100)]
Doxygen'ify and update comments in ngircd.{c|h}
Alexander Barton [Mon, 27 Dec 2010 16:28:30 +0000 (17:28 +0100)]
Doxygen'ify and update comments in match.c
Alexander Barton [Mon, 27 Dec 2010 16:27:21 +0000 (17:27 +0100)]
Update and translate comments in hash.c
Alexander Barton [Mon, 27 Dec 2010 16:25:48 +0000 (17:25 +0100)]
Doxygen'ify conf.h
Alexander Barton [Mon, 27 Dec 2010 16:23:25 +0000 (17:23 +0100)]
Add missong Doxygen @file tags to ngircd.h and irc-op.h
Alexander Barton [Mon, 27 Dec 2010 16:20:46 +0000 (17:20 +0100)]
Code cleanup: mostly removing empty lines
Alexander Barton [Mon, 27 Dec 2010 16:15:37 +0000 (17:15 +0100)]
Doxygen: define ZLIB, PAM, and ZEROCONF
Alexander Barton [Mon, 27 Dec 2010 16:14:14 +0000 (17:14 +0100)]
Add Doxygen @file documentation to each source and header file
Alexander Barton [Sun, 26 Dec 2010 18:32:07 +0000 (19:32 +0100)]
Updated Doxygen configuration file
Removed unnecessary variables DETAILS_AT_TOP, EXTRACT_PRIVATE,
EXTRACT_LOCAL_CLASSES, added SHOW_DIRECTORIES=YES, STRIP_CODE_COMMENTS=NO,
REFERENCED_BY_RELATION=YES, REFERENCES_RELATION=YES,
HTML_DYNAMIC_SECTIONS=YES and GENERATE_DOCSET=NO; updated PREDEFINED.
Alexander Barton [Sun, 26 Dec 2010 18:27:29 +0000 (19:27 +0100)]
Doxygen: remove own header and CSS file
Use the ones of Doxygen instead, this has the advantage that we
benefit of new functionality of Doxygen without having to make changes.
Alexander Barton [Sat, 12 Feb 2011 22:24:56 +0000 (23:24 +0100)]
Make write buffers bigger, but flush early
This patch
- makes the server write buffer bigger: 64k,
- makes the regular write buffer bigger: 32k,
- tries to flush the write buffer starting at 4K.
Before this patch, a client got disconnected if the buffer flushing at 4k
failed, now regular clients can store up to 32k and servers up 64k even
if flushing is not possible at the moment (e.g. on slow links).
Alexander Barton [Sat, 12 Feb 2011 22:24:26 +0000 (23:24 +0100)]
Enhance logging on "write buffer overflow"
Alexander Barton [Sat, 29 Jan 2011 15:05:55 +0000 (16:05 +0100)]
Clean up Validate_Prefix(); don't send punctuation in ERROR commands
Alexander Barton [Sun, 23 Jan 2011 17:38:36 +0000 (18:38 +0100)]
Better check for invalid IRC+ PASS command
Don't do a NULL-pointer dereference when a remote server using the
IRC+ protocol sends an invalid PASS command without the required
<serverversion> parameter ...
Alexander Barton [Sun, 23 Jan 2011 14:14:18 +0000 (15:14 +0100)]
Read_Request(): don't access possibly free'd CLIENT structure
Handle_Buffer() can shut down connections and remove clients, so after
calling it, we have to make sure that our CLIENT pointer is still valid.
Alexander Barton [Wed, 19 Jan 2011 00:19:40 +0000 (01:19 +0100)]
ngircd-test2.conf: really disable Ident and PAM ...
Alexander Barton [Tue, 18 Jan 2011 22:44:07 +0000 (23:44 +0100)]
Log "Can't read MOTD file" as "configuration error"
Now this error message is displayed in the console without debug prefix
when running the configuration test (--configtest).
Alexander Barton [Tue, 18 Jan 2011 21:45:01 +0000 (22:45 +0100)]
Allow "Port = 0" in [Server] blocks
Port number 0 marks remote servers that try to connect to this
daemon, but where this daemon never tries to establis a connection
on its own: only incoming connections are allowed.
Alexander Barton [Tue, 18 Jan 2011 21:41:27 +0000 (22:41 +0100)]
conf: fix 'Value of "..." is not a number!' for negative values
Don't use isdigit() function any more, because it only checks the
first character of the variable value and because it doesn't know
about the minus sign which is required e.g. for "Group = -1".
Alexander Barton [Tue, 18 Jan 2011 21:01:27 +0000 (22:01 +0100)]
Don't read MOTD file twice
The MOTD file is read in Read_Config(), so don't read it when handling
the "MotdFile" configuration variable. Instead make sure that it is
initialized properly when (re-)reading the configuration.
Alexander Barton [Tue, 18 Jan 2011 20:39:48 +0000 (21:39 +0100)]
Add [Features] section to ngircd-test{1|2}.conf
Fix commit
5a34bb203a:
It is not enough to strip the "No" prefix from "Ident" and "PAM",
but we have to introduce the new [Features] section to fix all
warning messages of ngIRCd.
Variables "Ident" and "PAM" in [Global] are completely wrong :-(
Alexander Barton [Tue, 18 Jan 2011 20:04:55 +0000 (21:04 +0100)]
Enable WHOIS command to return information about services
Alexander Barton [Tue, 18 Jan 2011 13:28:39 +0000 (14:28 +0100)]
Update testsuite configuration: strip No... prefixes
Alexander Barton [Sun, 16 Jan 2011 22:24:41 +0000 (23:24 +0100)]
Add connection/socket information to some log messages
Alexander Barton [Mon, 10 Jan 2011 11:15:05 +0000 (12:15 +0100)]
Implement channel mode 'O': "IRC operators only"
This channel mode is used on DALnet (bahamut), for example.
Alexander Barton [Sun, 9 Jan 2011 23:10:01 +0000 (00:10 +0100)]
Remove ZeroConf variable from sample-ngircd.conf
Alexander Barton [Sun, 9 Jan 2011 22:51:30 +0000 (23:51 +0100)]
Remove support for ZeroConf/Bonjour/Rendezvous service registration
Alexander Barton [Sun, 9 Jan 2011 22:08:15 +0000 (23:08 +0100)]
TOPIC command: test for channel admin rights correctly
This enables other servers, services and IRC operators to change
channel topics, even when the client is not joined to this channel.
Now the handler for TOPIC behaves like the one for MODE.
Alexander Barton [Sun, 9 Jan 2011 21:40:11 +0000 (22:40 +0100)]
Channel_CheckAdminRights(): test if client can admin a channel
This generic function tests if a client is allowed to do administrative
tasks to a specific channel:
- servers and services are always truested ("allowed everything"),
- channel operators are allowed,
- IRC operarors are allowed if OperCanUseMode is set in the config.
Florian Westphal [Sun, 9 Jan 2011 21:19:17 +0000 (22:19 +0100)]
conf: fix 'unknown section' FEATURES parse error
pointed out by Alex:
ngircd.conf, line 105: Unknown section "[Features]"!
Alexander Barton [Sun, 9 Jan 2011 15:23:33 +0000 (16:23 +0100)]
IRC_TOPIC(): code cleanup
Florian Westphal [Sun, 9 Jan 2011 18:42:42 +0000 (19:42 +0100)]
conf: move 'run-time-feature-disable' options to new FEATURE section
Florian Westphal [Sun, 9 Jan 2011 18:40:54 +0000 (19:40 +0100)]
array: remove check for allocated == 0
allocated can only be zero if ->mem is NULL.
Florian Westphal [Sun, 9 Jan 2011 18:28:50 +0000 (19:28 +0100)]
array: remove alignment of requested size
libc should know better than us.
Also, this helps debugging with tools like valgrind:
When you allocate an array of size x, and then erronoulsy
use x+1 valgrind cannot detect the bug because due to ALIGN_()
made by array.c we might have allocated more than size x...
Florian Westphal [Sun, 9 Jan 2011 17:17:35 +0000 (18:17 +0100)]
conf: Warn if PAM=true when ngircd was built without PAM support
Florian Westphal [Sun, 9 Jan 2011 16:54:21 +0000 (17:54 +0100)]
conf: add missing static qualifier
internal helper, so it should be static.
also, add UNUSED to 'Line'.
Alexander Barton [Sun, 9 Jan 2011 15:11:12 +0000 (16:11 +0100)]
Update copyright notices for 2010 :)
And update the NEWS and ChangeLog file as well.
Alexander Barton [Sun, 9 Jan 2011 13:31:18 +0000 (14:31 +0100)]
Make NoZeroConf option work with Howl
Florian Westphal [Sat, 8 Jan 2011 14:56:14 +0000 (15:56 +0100)]
config: deprecate NoXX-Options
ngircd unfortunately uses several options using double-negation, e.g.
NoIdent = No, NoPam = No, etc.
This renames all options by dropping the "No" prefix, e.g.
"NoIdent = no" becomes "Ident = yes".
The old options will continue to work, but will cause a warning
message.
Also update man pages and default config.
To prevent silly
'Ident = yes' from appearing in --configtest output in the
'ident support not compiled in and Ident Option not used' case,
make default value depend on feature availability.
If feature is available, enable by default, otherwise disable.
We might consider moving these options to a new
[Feature]
section, or something like that, because none of these options are
essential.
Another possible improvement:
'Ident = yes' option in ngircd.conf causes a warning if ngircd was
built without ident support.
This does not happen with e.g. zeroconf....
Florian Westphal [Fri, 31 Dec 2010 10:32:20 +0000 (11:32 +0100)]
channel: fix confusing "adding to invite list" debug output
adding entries to ban list produced 'invite list' debug output...
Alexander Barton [Wed, 29 Dec 2010 13:19:51 +0000 (14:19 +0100)]
Command throttling: introduce MAX_COMMANDS_SERVICE
New MAX_COMMANDS_SERVICE (currently set to MAX_COMMANDS_SERVER[10]),
so that services are handled like servers (and not regular users).
Alexander Barton [Wed, 29 Dec 2010 13:12:34 +0000 (14:12 +0100)]
Don't throttle services and servers beeing registered
Alexander Barton [Wed, 29 Dec 2010 13:11:40 +0000 (14:11 +0100)]
Xcode: correctly sort files
Alexander Barton [Fri, 24 Dec 2010 11:48:03 +0000 (12:48 +0100)]
Don't assert() when serching a client for an invalid server token
This is only relevant when a trusted server on a server-server link
sends invalid commands.
Alexander Barton [Sun, 19 Dec 2010 14:59:00 +0000 (15:59 +0100)]
ngIRCd release 17.1
Alexander Barton [Thu, 2 Dec 2010 15:51:21 +0000 (16:51 +0100)]
--configtest: remember if MOTD is configured by file or phrase
Configuration variables "MotdFile" and "MotdPhrase" are mutually
exclusive; so don't display content in both of them when running
"ngircd --configtest": instead remember which one is beeing used.
Alexander Barton [Thu, 2 Dec 2010 12:40:08 +0000 (13:40 +0100)]
Enhance log messages when establishing server links a little bit
Alexander Barton [Thu, 2 Dec 2010 12:38:42 +0000 (13:38 +0100)]
Reset ID of outgoing server link on DNS error correctly
Not resetting the ID prevents the daemon from trying to re-establish
outgoing server links when the DNS resolver failed to resole a hostname.
Alexander Barton [Thu, 2 Dec 2010 12:36:19 +0000 (13:36 +0100)]
Don't log critical (or worse) messages to stderr
stderr isn't redirected to the "error file" any more, so there is
no point in trying to log to it ...
Alexander Barton [Wed, 1 Dec 2010 21:04:28 +0000 (22:04 +0100)]
Manual page ngircd(8): add SIGNALS section
Alexander Barton [Wed, 1 Dec 2010 21:04:01 +0000 (22:04 +0100)]
Manual pages: update and simplyfy AUTHORS section
Alexander Barton [Wed, 1 Dec 2010 20:22:20 +0000 (21:22 +0100)]
Remove "error file" when compiled with debug code enabled
The information written to the "error file" (/tmp/ngircd-<PID>.err) when
ngIRCd is compiled with debug code enabled isn't that usefule, so don't
create this file at all.
Alexander Barton [Fri, 19 Nov 2010 20:35:25 +0000 (21:35 +0100)]
README: Updated list of implemented commands
Alexander Barton [Mon, 15 Nov 2010 19:11:16 +0000 (20:11 +0100)]
add doc/README-Interix.txt and doc/Bopm.txt to distribution tarball
Alexander Barton [Mon, 15 Nov 2010 18:36:21 +0000 (19:36 +0100)]
Merge branch 'numeric-329'
* numeric-329:
New numeric 329: get channel creation time on "MODE #chan" commands
Save channel creation time; new function Channel_CreationTime()
Florian Westphal [Sun, 14 Nov 2010 22:15:43 +0000 (23:15 +0100)]
add doc/PAM.txt to distribution tarball
doc/PAM.txt was not included in the release tarball.
reported by Christoph Biedl.
Alexander Barton [Thu, 11 Nov 2010 11:39:49 +0000 (12:39 +0100)]
New numeric 329: get channel creation time on "MODE #chan" commands
Alexander Barton [Thu, 11 Nov 2010 11:39:19 +0000 (12:39 +0100)]
Save channel creation time; new function Channel_CreationTime()
Alexander Barton [Sun, 7 Nov 2010 16:24:07 +0000 (17:24 +0100)]
ngIRCd release 17
Alexander Barton [Sun, 7 Nov 2010 16:20:28 +0000 (17:20 +0100)]
Updated doc/Platforms.txt for upcoming release 17
Alexander Barton [Sun, 7 Nov 2010 14:26:26 +0000 (15:26 +0100)]
contrib/platformtest.sh: make command name quoting consistent
Alexander Barton [Sun, 7 Nov 2010 13:18:04 +0000 (14:18 +0100)]
contrib/ngircd-redhat.init: updated email address of Naoya Nakazawa
Alexander Barton [Wed, 3 Nov 2010 22:47:21 +0000 (23:47 +0100)]
Fix up generation and distribution of sample-ngircd.conf
- Add generated sample-ngircd.conf to new .gitignore file,
- refactor Makefile.am to generate sample-ngircd.conf on "make all",
to clean it up on "make clean", and to install it to the correct place.
- Make sure path names in sample-ngircd.conf are separated by "/".
Florian Westphal [Mon, 1 Nov 2010 22:47:04 +0000 (23:47 +0100)]
doc: change path names in sample-ngircd.conf depending on sysconfdir
Alexander Barton [Wed, 27 Oct 2010 20:31:05 +0000 (22:31 +0200)]
ngIRCd Release 17~rc3
Alexander Barton [Wed, 27 Oct 2010 19:59:51 +0000 (21:59 +0200)]
Fix connect attempts to further IP addresses of outgoing server links
If a hostname resolves to more than one IP address (round-robin DNS,
IPv4 and IPv6) and an attempt to connect to the first address fails,
ngIRCd should try to connect to the 2nd address, 3rd address etc.
But because of a wrong variable used in the call to New_Server(),
the wrong server structure has been used in further connection attemps
which possibly lead to connection attempts to already connected servers.
Alexander Barton [Tue, 26 Oct 2010 22:43:02 +0000 (00:43 +0200)]
Debian: Install default /etc/pam.d/ngircd allowing all logins
This is required for backwards compatibility when installing the -full
or -full-dbg package variant: PAM is enabled now but no configuration
present, so all login attempts would be denied ...
Creating /etc/pam.d/ngircd including "auth required pam_permit.so"
restores the old behaviour of allowing all connections.
Alexander Barton [Tue, 26 Oct 2010 20:56:01 +0000 (22:56 +0200)]
Debian: update standards to 3.9.1; add libpam0g-dev dependency
Alexander Barton [Tue, 26 Oct 2010 20:18:30 +0000 (22:18 +0200)]
Make contrib/platformtest.sh more portable
Alexander Barton [Tue, 26 Oct 2010 13:15:06 +0000 (15:15 +0200)]
Mac OS X package ("make osxpkg"): generate PAM configuration
Alexander Barton [Tue, 26 Oct 2010 13:13:24 +0000 (15:13 +0200)]
Xcode builds ("make xcode"): disable pam_fail_delay()
disable pam_fail_delay() only is available starting with Mac
OS X 10.6; but we use the 10.5 SDK for campatibility, so don't use
this function at all when building using Xcode.
Alexander Barton [Tue, 26 Oct 2010 13:10:14 +0000 (15:10 +0200)]
Xcode: update project file, use 10.5.x SDK
This is required for universal 32 bit and 64 bit builds: now code
for ppc, i386, and x86_64 is generated (which requires 10.5 or newer).
Alexander Barton [Tue, 26 Oct 2010 13:09:01 +0000 (15:09 +0200)]
Xcode builds ("make xcode"): detect version number correctly
Alexander Barton [Mon, 25 Oct 2010 16:51:32 +0000 (18:51 +0200)]
ngIRCd release 17~rc2
Alexander Barton [Mon, 25 Oct 2010 16:49:54 +0000 (18:49 +0200)]
Updated contrib/platformtest.sh (new version scheme)
- handle version numbers generated by "git describe"
- detect gcc compiler version correctly when "-std=xxx" is used
Alexander Barton [Mon, 25 Oct 2010 12:46:58 +0000 (14:46 +0200)]
New doc/HowToRelease.txt file describing the release process
Alexander Barton [Sun, 24 Oct 2010 22:17:46 +0000 (00:17 +0200)]
ZeroConf: include header files missing since commit
a988bbc86a
Alexander Barton [Wed, 20 Oct 2010 22:20:08 +0000 (00:20 +0200)]
Generate ngIRCd version number from GIT tag
Now the ngIRCd release/version number is deduced from the "current"
annotated GIT tag; see "git describe --help" for details. This is the
same scheme the Linux kernel uses and gives much more details version
numbers for interim releases and inofficial source archives generated
using "make dist".
Please note: the version number is only updated it the autogen.sh
script is run; so after pulling in and pushing out new commits, you
should run ./autogen.sh!
Alexander Barton [Sun, 24 Oct 2010 19:48:32 +0000 (21:48 +0200)]
Make sourcecode compatible with ansi2knr again
This allows to compile ngIRCd using a pre-ANSI K&R C compiler again:
all source files are automatically converted by the included ansi2knr
program (of GNU automake/autoconf) before compiling them with the
K&R C compiler, but a few coding standards must be met.
Tested on Apple A/UX 3.x.
Regression testing on Linux and Mac OS X.
Alexander Barton [Sun, 24 Oct 2010 12:14:30 +0000 (14:14 +0200)]
./configure: check if C compiler can compile ISO Standard C
This is required for enabling ansi2knr on systems that don't have an
ANSI C compiler installed (e.g. on A/UX with Apple standard C compiler).
Alexander Barton [Sun, 24 Oct 2010 11:50:22 +0000 (13:50 +0200)]
./configure: check support for C prototypes again
Alexander Barton [Sun, 24 Oct 2010 11:41:51 +0000 (13:41 +0200)]
Don't use PARAMS() macro for function implementations
The PARAMS() macro is only needed for function prototypes;
don't use it for the actual implementations.
Alexander Barton [Tue, 19 Oct 2010 20:19:18 +0000 (22:19 +0200)]
Added m68k/apple/aux3.0.1 (gcc 2.7.2) to doc/Platforms.txt
Alexander Barton [Tue, 19 Oct 2010 20:17:12 +0000 (22:17 +0200)]
Only try to set FD_CLOEXEC if this flag is defined
A/UX 3.x doesn't implement this constant, for example.
Alexander Barton [Tue, 19 Oct 2010 20:13:12 +0000 (22:13 +0200)]
Only use "__attribute__ ((unused))" if GCC >=2.8 is used
At least GCC 2.7.2 doesn't support this attribute.
Alexander Barton [Wed, 13 Oct 2010 20:46:29 +0000 (22:46 +0200)]
doc/Makefile.am: don¹t set docdir, automake handles it already
And elder make(1) programs don¹t like "x ?= y" ...