]> granicus.if.org Git - ngircd/log
ngircd
12 years agoAdd a few casts, fix compiler warnings on NetBSD 5
Alexander Barton [Mon, 12 Nov 2012 21:39:57 +0000 (22:39 +0100)]
Add a few casts, fix compiler warnings on NetBSD 5

This fixes a few warnings of this type:
  XXX.c: In function 'AAA':
  XXX.c:YY: warning: array subscription has type 'char'

Tested on NetBSD 5.0.2 with gcc 4.1.3.

12 years agoirc-info.c: Use strlcpy() instead of strcpy()
Alexander Barton [Sun, 11 Nov 2012 15:46:57 +0000 (16:46 +0100)]
irc-info.c: Use strlcpy() instead of strcpy()

This fixes the following warning of gcc (tested on OpenBSD 5.0:)
  irc-info.c:990: warning: strcpy() is almost always misused,
                  please use strlcpy

12 years agongIRCd 20~rc1 rel-20-rc1
Alexander Barton [Sun, 11 Nov 2012 15:03:40 +0000 (16:03 +0100)]
ngIRCd 20~rc1

12 years agoUpdate Xcode project files
Alexander Barton [Sun, 11 Nov 2012 11:40:47 +0000 (12:40 +0100)]
Update Xcode project files

12 years agoconf.c: Use strlcpy() instead of strcpy()
Alexander Barton [Sun, 11 Nov 2012 10:18:53 +0000 (11:18 +0100)]
conf.c: Use strlcpy() instead of strcpy()

This fixes the following warning of gcc on OpenBSD 5.0:
  conf.c:728: warning: strcpy() is almost always misused, please use strlcpy()

12 years agotool.h: Don't check for and #define PF_INET
Alexander Barton [Sun, 11 Nov 2012 10:05:21 +0000 (11:05 +0100)]
tool.h: Don't check for and #define PF_INET

This is correctly handled by ipaddr/ng_ipaddr.h today, and the check
in tool.h isn't required any more -- and caused errors on OpenBSD 5.0:

  In file included from ./../tool/tool.h:23:
  /usr/include/arpa/inet.h:74:
    warning: "struct in_addr" declared inside parameter list

12 years agoconf-ssl.h: Use "gnutls_session_t" instead of "gnutls_session"
Alexander Barton [Sun, 11 Nov 2012 09:49:06 +0000 (10:49 +0100)]
conf-ssl.h: Use "gnutls_session_t" instead of "gnutls_session"

This fixes the following warning with current versions of GnuTLS:
  conf-ssl.h:36: warning: "gnutls_session" is deprecated

12 years agoAdd new IRC+ server flag "X": "XOP modes supported"
Alexander Barton [Sat, 10 Nov 2012 22:33:19 +0000 (23:33 +0100)]
Add new IRC+ server flag "X": "XOP modes supported"

This flag indicates, that the server supports the enhanced "xop channel
user modes", like channel owner, admin, and halfop. This information is
used to make sure that no unsupported CHANINFO commands are sent to
servers not supporting such mode prefixes, for example.

12 years agoUpdate autoconf/automake version numbers in doc/HowToRelease.txt
Alexander Barton [Sat, 10 Nov 2012 20:50:36 +0000 (21:50 +0100)]
Update autoconf/automake version numbers in doc/HowToRelease.txt

12 years agoUpdate NEWS and ChangeLog files
Alexander Barton [Sat, 10 Nov 2012 20:49:02 +0000 (21:49 +0100)]
Update NEWS and ChangeLog files

12 years agoRemove Anope "ngircd" protocol module patches
Alexander Barton [Sun, 4 Nov 2012 12:58:25 +0000 (13:58 +0100)]
Remove Anope "ngircd" protocol module patches

Starting with Anope 1.9.8, the ngIRCd protocol module is included in the
Anope distribution, so there's no longer any need to support our own (but
now heavily outdated!) patches. Therefore remove them.

12 years agodoc/Services.txt: Update documentation for Anope 1.9.8
Alexander Barton [Sat, 10 Nov 2012 20:24:55 +0000 (21:24 +0100)]
doc/Services.txt: Update documentation for Anope 1.9.8

Starting with Anope 1.9.8, the ngIRCd protocol module is rewritten from
scratch by "DukePyrolator" and included in the Anope distribution. So no
patching is required any more, yeah!

Drawback: Anope 1.9.8 is in development and not yet released ...

12 years agoCorrectly add irc-metadata.{c|h} to Makefile.ng ...
Alexander Barton [Mon, 5 Nov 2012 22:57:14 +0000 (23:57 +0100)]
Correctly add irc-metadata.{c|h} to Makefile.ng ...

12 years agodoc/Protocol.txt: Document METADATA command
Alexander Barton [Mon, 5 Nov 2012 22:51:52 +0000 (23:51 +0100)]
doc/Protocol.txt: Document METADATA command

12 years agoGenerate "METADATA host" commands on "MODE +/-x"
Alexander Barton [Mon, 5 Nov 2012 22:49:12 +0000 (23:49 +0100)]
Generate "METADATA host" commands on "MODE +/-x"

Use "METADATA host" commands to let servers supporting this command
know which (possibly cloaked) hostname is in effect for a specific
client. This prevents "double cloaking" of hostnames and even cloaked
hostnames are in sync on all servers supporting "METADATA" now.

12 years agoDon't cloak already cloaked hostname when using METADATA
Alexander Barton [Mon, 5 Nov 2012 22:46:26 +0000 (23:46 +0100)]
Don't cloak already cloaked hostname when using METADATA

A client for which a METADATA command has been received from one of
its peers got the client flag "M" set. So it's safe to assume that
such a client gets "METADATA host" commands for its cloaked hostname
and the server must not cloak the hostname on its own, even when the
client mode "+x" is set.

12 years agoImplement METADATA command to update client metadata
Alexander Barton [Mon, 5 Nov 2012 22:34:21 +0000 (23:34 +0100)]
Implement METADATA command to update client metadata

The METADATA command can be used by other servers to update "metadata"
of registered clients, like the client info text ("real name"), user
name, and hostname:

  :<prefix> METADATA <target> <key> :<value>

It is distributed in the network, unknown <key> names are silently ignored
and passed on, too. This allows for further extensions.

12 years agodoc/Protocol.txt: add/fix CHARCONV description
Alexander Barton [Mon, 5 Nov 2012 22:11:41 +0000 (23:11 +0100)]
doc/Protocol.txt: add/fix CHARCONV description

12 years agoPredefChannelsOnly: Fix message for non pre-defined channels
DNS777 [Tue, 16 Oct 2012 05:28:44 +0000 (07:28 +0200)]
PredefChannelsOnly: Fix message for non pre-defined channels

If PredefChannelsOnly is enabled, and if someone tries to create
a channel which does not exist, then the error message is a 474.
The 474 Error message changed recently and does not match anymore:
'Cannot join channel (+b) -- You are banned'.

Changed the error message to numeric 403 'No such channel'.

Bug introduced by commit 9a82304a.

(cherry picked from commit 2c2e08f34187a33c1da745995c5f213e33a91410)

12 years agoTest suite: add some "remote checks" to whois-test.e
Alexander Barton [Sun, 4 Nov 2012 18:50:02 +0000 (19:50 +0100)]
Test suite: add some "remote checks" to whois-test.e

12 years agoSend NICK commands with prefix of (target) user
Alexander Barton [Sun, 4 Nov 2012 17:01:49 +0000 (18:01 +0100)]
Send NICK commands with prefix of (target) user

Now NICK commands are always generated using the prefix of the target
user, even when the nickname change has been initiated by some other
(pseudo) server or using the SVSNICK command. In this case, the prefix
of the initiator has been used, but this isn't compatible with clients
(at least weechat and irssi don't handle such NICK commands correctly).

12 years agoUpdate doc/Services.txt, sort services alphabetically
Alexander Barton [Sun, 4 Nov 2012 12:22:26 +0000 (13:22 +0100)]
Update doc/Services.txt, sort services alphabetically

12 years agoImplement SVSNICK command to change remote nicknames
Alexander Barton [Fri, 2 Nov 2012 16:50:31 +0000 (17:50 +0100)]
Implement SVSNICK command to change remote nicknames

The SVSNICK command allows other servers (and services on
"pseudo-servers") to forcefully change nicknames of remote users.

Syntax: ":<from> SVSNICK <oldnick> <newnick>"

The SVSNICK command itself doesn't change the nickname, but it becomes
forwarded to the server to which the user is connected to. And then this
server initiates the real nickname changing using regular NICK commands.

This allows to still run networks with old servers not supporting the
SVSNICK command, because SVSNICK commands for nicknames on such servers
are silently ignored and don't cause a desync of the network.

12 years agoIRC_NICK(): Code cleanup, new function Change_Nick()
Alexander Barton [Fri, 2 Nov 2012 13:36:29 +0000 (14:36 +0100)]
IRC_NICK(): Code cleanup, new function Change_Nick()

12 years agoSpelling fix: "nick name" -> "nickname"
Alexander Barton [Fri, 2 Nov 2012 13:30:19 +0000 (14:30 +0100)]
Spelling fix: "nick name" -> "nickname"

12 years agoXcode: correctly #define PACKAGE and PACKAGE_NAME
Alexander Barton [Fri, 2 Nov 2012 13:16:58 +0000 (14:16 +0100)]
Xcode: correctly #define PACKAGE and PACKAGE_NAME

12 years agoFix warning message introduced when cleaning up IRC_SERVER()
Alexander Barton [Mon, 29 Oct 2012 10:44:45 +0000 (11:44 +0100)]
Fix warning message introduced when cleaning up IRC_SERVER()

This reverts a not intentional code change and fixes the following compiler
warning message (tested with gcc 4.4.5):

 irc-server.c: In function "IRC_SERVER":
 irc-server.c:142: warning: suggest parentheses around operand of "!"
                            or change "&" to "&&" or "!" to "~"

12 years agoMake server reconnect time a little bit more random
Alexander Barton [Sun, 28 Oct 2012 19:19:57 +0000 (20:19 +0100)]
Make server reconnect time a little bit more random

Add randomly up to 15 seconds to the reconnect delay for outgoing server
links when the connection has been "short" and therefore the "ConnectRetry"
delay is being enforced.

This should make it even more unlikely that two servers deadlock each
other when both are trying to connect to the other one at the same time,
for example in test environments.

12 years agoDon't accept connections for servers already beeing linked
Alexander Barton [Sun, 28 Oct 2012 18:48:24 +0000 (19:48 +0100)]
Don't accept connections for servers already beeing linked

If two servers try to link each other, there was a time frame that
could result in one connection overwriting the other, e. g. the incoming
connection overwriting the status of the outgoing one. And this could
lead to all kind of weirdness (even crashes!) later on.

So now such incoming connections are dropped. But this most probably
prevents the two servers from linking until timing changes somehow
(network latency?) because each server drops the incoming connection of
the other one, so no connection survives in the end.

But this has to be addressed by an other patch ...

12 years agoIRC_SERVER(): Code cleanup
Alexander Barton [Sun, 28 Oct 2012 17:52:37 +0000 (18:52 +0100)]
IRC_SERVER(): Code cleanup

12 years agoUse lowercase "package name" for syslog logging again
Alexander Barton [Mon, 29 Oct 2012 09:24:27 +0000 (10:24 +0100)]
Use lowercase "package name" for syslog logging again

This is how ngIRCd up to release 19.2 behaved; "bug" introduced by commit
67e882, "configure.in: require autoconf 2.67 and automake 1.11", which
changed the "PACKAGE_NAME" to "ngIRCd"; so use "PACKAGE" which still is
the lowercase version for initializing syslog logging.

12 years agoDocument new configuration option "MaxListSize"
Alexander Barton [Sun, 28 Oct 2012 19:36:58 +0000 (20:36 +0100)]
Document new configuration option "MaxListSize"

12 years agoMake the maximum /list reply length a configurable limit.
Brett Smith [Thu, 25 Oct 2012 18:46:29 +0000 (14:46 -0400)]
Make the maximum /list reply length a configurable limit.

12 years agoUpdate NEWS and ChangeLog files
Alexander Barton [Wed, 24 Oct 2012 20:03:56 +0000 (22:03 +0200)]
Update NEWS and ChangeLog files

12 years agoAllow remote servers and IRC Ops to change channel topics
Alexander Barton [Fri, 19 Oct 2012 17:45:44 +0000 (19:45 +0200)]
Allow remote servers and IRC Ops to change channel topics

Remote servers are always allowed to change all channel topics,
and IRC Operators are allowed to change all channel topics if the
configuration option "OperCanUseMode" is enabled.

Bug introduced by commit 7b01bb8 and reported by DNS777.

12 years agoIncreased maximum number of possible user and channel modes
DNS [Wed, 10 Oct 2012 23:53:20 +0000 (01:53 +0200)]
Increased maximum number of possible user and channel modes

Currntly ngIRCd supports 13 user and 15 channel modes, because there
have been quite a few additions since our last release. But our data
structures can only hold 15 user and -- even worse! -- only 9 channel
modes! So enlarge the buffers to 20 bytes (actually 21 including NULL)
to allow storing of all mode characters and to have some space left
for more modes to come ...

(cherry picked from commit 8996d777621d88d4bcc439ab4792b2814920687f)

12 years agoUpdate error messages for user mode +b and channel Mode +M.
DNS777 [Fri, 19 Oct 2012 16:37:33 +0000 (18:37 +0200)]
Update error messages for user mode +b and channel Mode +M.

Replaced error message for channel mode +M with ERR_NEEDREGGEDNICK_MSG
(used by Bahamut, inspircd, ircu & Unreal too) and using numeric 477
and the msg simliar like inspircd.

Replaced the error message ERR_CANNOTSENDTONICK_MSG for user mode +b
with ERR_NONONREG_MSG and using numeric 486, similar like unrealircd.

(cherry picked from commit 55a61ab17f63a9e757b7c7598c31b98ce5a132e8
and commit 3737d9ab7da1ea0485cefc07c65dc5308bf0db02)

12 years agoTest suite: add more checks to whois-test.e
Alexander Barton [Mon, 15 Oct 2012 19:39:08 +0000 (21:39 +0200)]
Test suite: add more checks to whois-test.e

12 years agoAdd "i586/pc/haiku" to doc/Platforms.txt
Alexander Barton [Thu, 11 Oct 2012 15:05:21 +0000 (15:05 +0000)]
Add "i586/pc/haiku" to doc/Platforms.txt

12 years agoDisable UID/GID checks on "single user OS"
Alexander Barton [Thu, 11 Oct 2012 14:54:13 +0000 (14:54 +0000)]
Disable UID/GID checks on "single user OS"

Don't abort on "single user operating systems" that don't know more than
one user account and therefore can't change user and group IDs.

Currently, the only such system supported by ngIRCd is Haiku, a BeOS
clone.

12 years agoSearch gethostbyname() in libbind and libnetwork
Alexander Barton [Thu, 11 Oct 2012 14:50:45 +0000 (14:50 +0000)]
Search gethostbyname() in libbind and libnetwork

This is required for Haiku (BeOS clone) at least.

12 years agoUpdate manual pages
Alexander Barton [Tue, 9 Oct 2012 11:13:01 +0000 (13:13 +0200)]
Update manual pages

Among other little things, bring project description in line with website.

12 years agoTest suite: add test for user mode "b"
Alexander Barton [Mon, 8 Oct 2012 10:15:34 +0000 (12:15 +0200)]
Test suite: add test for user mode "b"

12 years agoImplement user mode "b": block messages
DNS777 [Mon, 8 Oct 2012 10:11:04 +0000 (12:11 +0200)]
Implement user mode "b": block messages

When a user has set mode "b", all private messages and notices to this
user are blocked if they don't originate from a registered user, an IRC Op,
server or service. The originator gets an error numeric sent back in this
case, ERR_CANNOTSENDTONICK_MSG(976), which is/was(?) used by KineIRCd, too.

This closes bug #144.

12 years agoFix ERR_CANNOTSENDTOCHAN_MSG message
Alexander Barton [Sun, 7 Oct 2012 13:11:05 +0000 (15:11 +0200)]
Fix ERR_CANNOTSENDTOCHAN_MSG message

This error message is not only used if one can not send to a channel
because it is moderated, but for _all_ reasons when a message can not
be delivered (moderated, banned, no external messages, ...), so strip
the "(+m) -- Moderated" part of the error message again.

Bug introduced by commit 9a82304a.

12 years agoShorten filenames of Anope protocol module patchfiles
Alexander Barton [Sun, 7 Oct 2012 10:06:11 +0000 (12:06 +0200)]
Shorten filenames of Anope protocol module patchfiles

Filenames have been too long and couldn't be stored in all tar
archive formats ...

12 years agoWHOIS: show RPL_WHOISHOST_MSG to all IRC Ops in the network
Alexander Barton [Sat, 6 Oct 2012 22:05:25 +0000 (00:05 +0200)]
WHOIS: show RPL_WHOISHOST_MSG to all IRC Ops in the network

Not only show RPL_WHOISHOST_MSG to local IRC opreators, but show
it to all IRC operators in the network. And don't show it to anybody
if the "more privacy" configuration option is enabled.

This closes bug #134.

12 years agoTest suite: make expect scripts more verbose
Alexander Barton [Mon, 24 Sep 2012 21:05:24 +0000 (23:05 +0200)]
Test suite: make expect scripts more verbose

Now tests.sh transforms each expect script it executes using sed(1)
and inserts a 'puts -nonewline stderr "."' in front of each "expect"
command.

12 years agoTest suite: remove indentation of messages
Alexander Barton [Mon, 24 Sep 2012 20:25:58 +0000 (22:25 +0200)]
Test suite: remove indentation of messages

12 years agoMerge branch 'bug141-ModesQq'
Alexander Barton [Sat, 6 Oct 2012 20:37:57 +0000 (22:37 +0200)]
Merge branch 'bug141-ModesQq'

This closes bug #141.

* bug141-ModesQq:
  KICK-protect IRC services
  Implement channel mode "Q" and user mode "q"

Conflicts:
src/ngircd/defines.h
src/ngircd/messages.h

12 years agoShow active user modes in WHOIS reply
DNS777 [Sat, 6 Oct 2012 19:56:59 +0000 (21:56 +0200)]
Show active user modes in WHOIS reply

Implement numeric RPL_WHOISMODES_MSG(379) and show user modes in the
reply of the WHOIS command for the user himself or, if MorePrivacy
isn't set, for request initiated by an IRC operator.

Numeric 379 is used by Unreal and InspIRCd for this purpose, too.

Closes bug #129.

12 years agoImplement channel mode 'V' (invite disallow)
DNS777 [Sat, 6 Oct 2012 18:49:35 +0000 (20:49 +0200)]
Implement channel mode 'V' (invite disallow)

If the new channel mode "V" is set, the INVITE command becomes invalid
and all clients get the new ERR_NOINVITE_MSG(518) reply.

Unreal and InspIRCd uses this mode, too.

This closes bug #143.

12 years agoAllow channel admins to "de-admin" channel members
DNS777 [Sat, 6 Oct 2012 17:52:00 +0000 (19:52 +0200)]
Allow channel admins to "de-admin" channel members

This patch fixes unsetting of channel user mode "+a" (channel admin)
and adds a better error message: without this patch, a channel admin is
unable to unset this mode.

This closes bug #142.

12 years agoKICK-protect IRC services
Alexander Barton [Sat, 6 Oct 2012 17:23:05 +0000 (19:23 +0200)]
KICK-protect IRC services

12 years agoMerge branch 'bug109-CHARCONV'
Alexander Barton [Sat, 6 Oct 2012 16:25:43 +0000 (18:25 +0200)]
Merge branch 'bug109-CHARCONV'

This closes bug #109.

* bug109-CHARCONV:
  Debian: require "telnet" or "telnet-ssl" for building
  Debian ngircd-full[-dbg]: enable CHARCONV
  Add "CHARCONV" to "feature string" when enabled
  Implement new IRC+ "CHARCONV" command
  Added new configure option "--with-iconv"

Conflicts:
src/ngircd/messages.h

12 years agoImplement channel mode "Q" and user mode "q"
Alexander Barton [Sat, 6 Oct 2012 16:13:01 +0000 (18:13 +0200)]
Implement channel mode "Q" and user mode "q"

Both modes protect users from channel kicks: only IRC operators and
servers can kick users having mode "q" or in channels with mode "Q".

Original patch by DNS777 <dns@rbose.org>, thanks!

This closes bug #141.

12 years agoDefine HAVE_SETSID for Mac OS X Xcode builds
Alexander Barton [Sat, 6 Oct 2012 15:58:44 +0000 (17:58 +0200)]
Define HAVE_SETSID for Mac OS X Xcode builds

12 years agoFix spelling: ERR_CHANOPPRIVTOLOW_MSG -> ERR_CHANOPPRIVTOOLOW_MSG
Alexander Barton [Sat, 6 Oct 2012 15:21:32 +0000 (17:21 +0200)]
Fix spelling: ERR_CHANOPPRIVTOLOW_MSG -> ERR_CHANOPPRIVTOOLOW_MSG

Thanks to DNS for pointing this out, see bug #126!

12 years agoDebian: require "telnet" or "telnet-ssl" for building
Alexander Barton [Sat, 6 Oct 2012 14:36:34 +0000 (16:36 +0200)]
Debian: require "telnet" or "telnet-ssl" for building

12 years agoDebian ngircd-full[-dbg]: enable CHARCONV
Alexander Barton [Sat, 6 Oct 2012 14:36:07 +0000 (16:36 +0200)]
Debian ngircd-full[-dbg]: enable CHARCONV

12 years agoMakefile.am: don't use "make -C", it isn't portable
Alexander Barton [Wed, 26 Sep 2012 23:11:01 +0000 (01:11 +0200)]
Makefile.am: don't use "make -C", it isn't portable

12 years agoTest suite: don't use "mkdir -p"
Alexander Barton [Wed, 26 Sep 2012 22:56:03 +0000 (00:56 +0200)]
Test suite: don't use "mkdir -p"

"mkdir -p" is not supported on all platforms.
Tested with Apple A/UX 3.1.x.

12 years agoERR_CHANNELISFULL_MSG: better wording
Federico G. Schwindt [Wed, 26 Sep 2012 12:26:50 +0000 (13:26 +0100)]
ERR_CHANNELISFULL_MSG: better wording

(cherry picked from commit 0fcfa7e00fa8e098dd3724c7188c88ac82a52881)

12 years agoFix getpid.sh to work on Apple A/UX again
Alexander Barton [Wed, 26 Sep 2012 22:19:31 +0000 (00:19 +0200)]
Fix getpid.sh to work on Apple A/UX again

12 years agoSend RPL_REHASHING if rehash was accepted
Federico G. Schwindt [Wed, 26 Sep 2012 12:13:10 +0000 (13:13 +0100)]
Send RPL_REHASHING if rehash was accepted

(cherry picked from commit f1b171a09cd076f743a7fff221fa7aa752abb374)

12 years agoChange variable name "SSLDHFile" to "DHFile" in log messages
Federico G. Schwindt [Tue, 18 Sep 2012 23:52:50 +0000 (00:52 +0100)]
Change variable name "SSLDHFile" to "DHFile" in log messages

(cherry picked from commit d96db0a2e56d310177edb45d0a8b164a37992ab1)

12 years agoMove ConnSSL_InitLibrary() "dummy" from header into C file
Federico G. Schwindt [Tue, 18 Sep 2012 23:34:29 +0000 (00:34 +0100)]
Move ConnSSL_InitLibrary() "dummy" from header into C file

(cherry picked from commit 5fd88c81a70d0c9e627f08522e57d251586288eb)

12 years agoNJOIN: correctly reset channel level flags
Alexander Barton [Wed, 26 Sep 2012 21:51:05 +0000 (23:51 +0200)]
NJOIN: correctly reset channel level flags

This fixes commit 7b01bb83.
Bug reported by DNS777 <dns@rbose.org>, thanks!

12 years agoSimplify check for valid user names in IRC_USER().
Alexander Barton [Wed, 26 Sep 2012 21:28:13 +0000 (23:28 +0200)]
Simplify check for valid user names in IRC_USER().

Patches from Federico G. Schwindt, thanks!

(cherry picked from commit a44b7126227ba1118ec02b399e31b08102af5e8c
and 6fbe9583753b2620da275676cde46a89cb4d06c2)

12 years agoAllow user mode +x only when "CloakHostModeX" is set
Alexander Barton [Wed, 26 Sep 2012 20:52:06 +0000 (22:52 +0200)]
Allow user mode +x only when "CloakHostModeX" is set

Allow users to "cloak" their hostname only when the configuration
variable "CloakHostModeX" (introduced in 19.2) is set. Otherwise, only
IRC opertators, other servers, and services are allowed to set mode +x.

This prevents regular users from changing their hostmask to the name
of the IRC server itself, which confused quite a few people ;-)

This fixes bug #133.

12 years agoNew configuration option "OperChanPAutoOp"
DNS777 [Tue, 25 Sep 2012 11:08:39 +0000 (13:08 +0200)]
New configuration option "OperChanPAutoOp"

If disabled, IRC operators don't become channel operators in persistent
channels when joining. Enabled by default, which has been the behavior
of ngIRCd up to this patch.

Closes bug #135.

(Cosmetic fixes by Alex.)

12 years agoAllow opers to see secret (+s) channels in LIST command
DNS777 [Tue, 25 Sep 2012 10:55:07 +0000 (12:55 +0200)]
Allow opers to see secret (+s) channels in LIST command

As long as 'MorePrivacy' isn't enabled in the configuration file, local
IRC operators can see secret (+s) channels when using the LIST command.

Closes bug #136.

12 years agoconfigure: only use AM_PROG_AR when available
Alexander Barton [Mon, 24 Sep 2012 18:56:24 +0000 (20:56 +0200)]
configure: only use AM_PROG_AR when available

This fixes commit 78d189fb on systems with older automake ...

12 years agoRemove all geneerated Makefile.am on "make maintainer-clean"
Alexander Barton [Mon, 24 Sep 2012 18:45:37 +0000 (20:45 +0200)]
Remove all geneerated Makefile.am on "make maintainer-clean"

12 years agoRename configure.in to configure.ac
Alexander Barton [Mon, 24 Sep 2012 18:40:31 +0000 (20:40 +0200)]
Rename configure.in to configure.ac

This fixes

  automake: warning: autoconf input should be named 'configure.ac',
  not 'configure.in'

when running the autogen.sh script.

12 years agoconfigure.ng: use AM_PROG_AR to check ar(1) command
Alexander Barton [Mon, 24 Sep 2012 18:39:06 +0000 (20:39 +0200)]
configure.ng: use AM_PROG_AR to check ar(1) command

This fixes

  automake-1.12/am/library.am: warning: 'libngipaddr.a':
   linking libraries using a non-POSIX .../automake-1.12/am/library.am:
   archiver requires 'AM_PROG_AR' in 'configure.in'
   src/ipaddr/Makefile.am:12: while processing library 'libngipaddr.a'

and similar warnings of automake.

12 years agoMerge branch 'automake-am11-am12'
Alexander Barton [Mon, 24 Sep 2012 18:28:02 +0000 (20:28 +0200)]
Merge branch 'automake-am11-am12'

* automake-am11-am12:
  autogen.sh: detect automake version format a.b.c and a.b
  configure.ng: don't require GIT tree to detect version string
  Include .mailmap file in distribution archives
  Include all build-system files into distribution archives
  Change build system to support new and old GNU automake

12 years agoautogen.sh: detect automake version format a.b.c and a.b
Alexander Barton [Mon, 24 Sep 2012 16:01:47 +0000 (18:01 +0200)]
autogen.sh: detect automake version format a.b.c and a.b

12 years agoconfigure.ng: don't require GIT tree to detect version string
Alexander Barton [Mon, 24 Sep 2012 16:00:36 +0000 (18:00 +0200)]
configure.ng: don't require GIT tree to detect version string

12 years agoInclude .mailmap file in distribution archives
Alexander Barton [Mon, 24 Sep 2012 15:50:32 +0000 (17:50 +0200)]
Include .mailmap file in distribution archives

12 years agoINSTALL: update GNU automake/autoconf requirements
Alexander Barton [Mon, 24 Sep 2012 15:46:22 +0000 (17:46 +0200)]
INSTALL: update GNU automake/autoconf requirements

12 years agoautomake: don't use INCLUDES, it's AM_CPPFLAGS nowadays
Alexander Barton [Mon, 24 Sep 2012 15:45:15 +0000 (17:45 +0200)]
automake: don't use INCLUDES, it's AM_CPPFLAGS nowadays

12 years agoautomake: enable colored test output, if available
Alexander Barton [Mon, 24 Sep 2012 15:43:02 +0000 (17:43 +0200)]
automake: enable colored test output, if available

The "color-tests" option can't be checked for, but is available starting
with automake 1.11 which introduced AM_SILENT_RULES -- so we check this ...

12 years agoAdd doc/Contributing.txt to distribution archive
Alexander Barton [Mon, 24 Sep 2012 15:40:33 +0000 (17:40 +0200)]
Add doc/Contributing.txt to distribution archive

12 years agoInclude all build-system files into distribution archives
Alexander Barton [Mon, 24 Sep 2012 12:34:16 +0000 (14:34 +0200)]
Include all build-system files into distribution archives

12 years agoLoose GNU autoconf / automake requirements a bit
Alexander Barton [Mon, 24 Sep 2012 08:22:21 +0000 (10:22 +0200)]
Loose GNU autoconf / automake requirements a bit

Now ngIRCd requires at least GNU autoconf 2.61 and automake 1.10, the
requirements of commit 67e882d4 have been too restrictive:

             19.2      67e882d4  now
  ---------- --------- --------- ---------
  autoconf   >=2.50    >=2.67    >=2.61
  automake   >=1.6     >=1.11    >=1.10

The tools required now are supported by Debian GNU/Linux 4.0 "Etch",
RedHat Enterprise Linux 5, and Mac OS X 10.6.x for example.

I read the changelogs of autoconf and automake, and I think ther's nothing
that prevents it from working with these older versions; and we don't want
to force users to upgrade without real benefits.

Please note: the recommended versions are still autoconf 1.11.x and the
most recent autoconf release that works with automake 1.11.x!

12 years agoMerge branch 'bug92-xop'
Alexander Barton [Sun, 23 Sep 2012 17:58:50 +0000 (19:58 +0200)]
Merge branch 'bug92-xop'

By Alexander Barton (5) and Sebastian Köhler (2)

* bug92-xop:
  Fix NAMES/WHO response when client has multi-prefix
  Fix prefix of "halfop" when "multi-prefix" is active
  Clean up doc/.gitignore
  doc/Modes.txt: add version number to new channel modes
  Fix some "whitespace glitches"
  Tests and documentation for xop
  Implemented xop support

Conflicts (because of "multi-prefix fix"):
src/ngircd/irc-info.c

This fixes bug #92 "ngircd does not support XOP usermodes".

12 years agoFix NAMES/WHO response when client has multi-prefix
Alexander Barton [Sun, 23 Sep 2012 17:37:06 +0000 (19:37 +0200)]
Fix NAMES/WHO response when client has multi-prefix

This has been fixed by commit 16f94546 "Fix NAMES response when
client has multi-prefix" in the master branch, fix it in this patch
series, too.

12 years agoFix prefix of "halfop" when "multi-prefix" is active
Alexander Barton [Sun, 23 Sep 2012 17:23:23 +0000 (19:23 +0200)]
Fix prefix of "halfop" when "multi-prefix" is active

12 years agoChange build system to support new and old GNU automake
Alexander Barton [Sun, 23 Sep 2012 15:55:48 +0000 (17:55 +0200)]
Change build system to support new and old GNU automake

Starting with GNU automake 1.12, the "de-ANSI-fication support" has been
removed, which ngIRCd used to enable building itself on very old systems.

Now the problem is, that using automake >= 1.12 isn't working because of
the now unsupported M4 macros. Therefore the solution that this patch
implements is to dynamically generate the automake input files with our
own ./autogen.sh script:

  configure.ng => configure.in
  Makefile.ng => Makefile.am

This is quite an ugly approach, but it works and enables us to:

  1. use current automake >= 1.12 for development and "private builds",
  2. still build distribution archives using automake 1.11.x that have
     "de-ANSI-fication support" enabled in the generated Makefile's.

And if you are using Makefile's generated with a automake version newer
than 1.11.x (without "de-ANSI-fication support"), the ./configure script
warns you not to use this generated build system to generate distribution
archives.

Drawback of this patch: you MUST use our autogen.sh script, you can't call
the autoconf/automake commands directly any more; but autoreconf should
still work ...

12 years agoClean up doc/.gitignore
Alexander Barton [Sun, 23 Sep 2012 15:52:53 +0000 (17:52 +0200)]
Clean up doc/.gitignore

12 years agodoc/Modes.txt: add version number to new channel modes
Alexander Barton [Sun, 23 Sep 2012 15:52:26 +0000 (17:52 +0200)]
doc/Modes.txt: add version number to new channel modes

12 years agoFree all listen ports on initialization
Alexander Barton [Fri, 21 Sep 2012 08:41:03 +0000 (10:41 +0200)]
Free all listen ports on initialization

Now you can reconfigure listen ports and reload the server configuration
on runtime. Without this patch, no ports could be removed.

12 years agoInitialize SSL when needed only, and disable SSL on errors
Alexander Barton [Fri, 21 Sep 2012 08:36:09 +0000 (10:36 +0200)]
Initialize SSL when needed only, and disable SSL on errors

With this patch, the SSL subsystem will only be initialized if at least
one SSL ports is configured; so you won't get "SSL initialization failed"
messages if you didn't configured it at all.

And if SSL initialization fails, no SSL listen ports will be enabled
later which never could establish a working SSL connection at all ...

12 years agoAdd "CHARCONV" to "feature string" when enabled
Alexander Barton [Sun, 16 Sep 2012 23:00:05 +0000 (01:00 +0200)]
Add "CHARCONV" to "feature string" when enabled

12 years agoImplement new IRC+ "CHARCONV" command
Alexander Barton [Sun, 16 Sep 2012 22:36:10 +0000 (00:36 +0200)]
Implement new IRC+ "CHARCONV" command

See bug 109 and doc/Protocol.txt for details and documentation.

12 years agoAdded new configure option "--with-iconv"
Alexander Barton [Thu, 24 Mar 2011 16:09:44 +0000 (17:09 +0100)]
Added new configure option "--with-iconv"

The iconv library should be used for implementing the new CHARCONV
IRC command discussed in bug 109.

And because CHARCONV will be an IRC+ feature, we only test for libiconv
if IRC+ is enabled as well.

12 years agoSort "feature string" alphabetically
Alexander Barton [Sun, 16 Sep 2012 22:55:30 +0000 (00:55 +0200)]
Sort "feature string" alphabetically

12 years agoInclude CAP command even when using "strict RFC mode"
Alexander Barton [Sun, 16 Sep 2012 12:08:52 +0000 (14:08 +0200)]
Include CAP command even when using "strict RFC mode"

12 years agoMerge branch 'autoconf-update'
Alexander Barton [Sun, 16 Sep 2012 11:05:23 +0000 (13:05 +0200)]
Merge branch 'autoconf-update'

Update GNU autoconf and automake infrastructure.
Tested on modern systems as well as Apple A/UX :-)

* autoconf-update:
  AUTOMAKE_OPTIONS: fix ansi2knr option, include path
  Don't use AC_FUNC_MALLOC and AC_FUNC_REALLOC
  Make our own targets "silent", if enabled
  configure.in: use AC_CHECK_{FUNCS|HEADERS}_ONCE
  Updated config.{guess|sub} to version 2012-08-14
  Make autogen.sh more verbose when VERBOSE=1 is set
  configure.in: use AC_SEARCH_LIBS (not AC_CHECK_LIB)
  configure.in: use AS_HELP_STRING macro
  configure.in: use AC_CANONICAL_HOST (not AC_CANONICAL_TARGET)
  configure.in: inttypes.h is an optional header file
  Use HAVE_SETSID #define when testing for setsid()
  Don't include <stdint.h>, it is included by "portab.h"
  Don't check type.h availability, it is required
  configure.in: Use AC_CONFIG_FILES macro
  configure.in: Don't use AC_C_PROTOTYPES
  configure.in: Update checks for required and optional features
  configure.in: require autoconf 2.67 and automake 1.11
  configure.in: sort some lists (templates, output, ...)