Commit Graph

2942 Commits

Author SHA1 Message Date
Alexander Barton 538e612a47 Test suite: add test for user mode "b" 2012-10-08 12:15:34 +02:00
DNS777 9d97004a28 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.
2012-10-08 12:11:04 +02:00
Alexander Barton 87deb43012 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.
2012-10-07 15:11:05 +02:00
Alexander Barton a9cbb375b7 Shorten filenames of Anope protocol module patchfiles
Filenames have been too long and couldn't be stored in all tar
archive formats ...
2012-10-07 12:06:11 +02:00
Alexander Barton 161adbb1aa 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.
2012-10-07 00:05:25 +02:00
Alexander Barton de2fa78d92 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.
2012-10-06 23:17:07 +02:00
Alexander Barton 8bede388af Test suite: remove indentation of messages 2012-10-06 23:17:06 +02:00
Alexander Barton c9d166747d 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
2012-10-06 22:37:57 +02:00
DNS777 56cdc2175c 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.
2012-10-06 21:56:59 +02:00
DNS777 de453d71cb 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.
2012-10-06 20:49:35 +02:00
DNS777 23b07bdf50 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.
2012-10-06 19:52:15 +02:00
Alexander Barton 9ac94339dc KICK-protect IRC services 2012-10-06 19:23:05 +02:00
Alexander Barton 46b0eef721 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
2012-10-06 18:26:25 +02:00
Alexander Barton d3ae351236 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.
2012-10-06 18:13:01 +02:00
Alexander Barton 4790d78c98 Define HAVE_SETSID for Mac OS X Xcode builds 2012-10-06 17:58:44 +02:00
Alexander Barton c66e20ce6e Fix spelling: ERR_CHANOPPRIVTOLOW_MSG -> ERR_CHANOPPRIVTOOLOW_MSG
Thanks to DNS for pointing this out, see bug #126!
2012-10-06 17:21:32 +02:00
Alexander Barton 343a90dc37 Debian: require "telnet" or "telnet-ssl" for building 2012-10-06 16:36:34 +02:00
Alexander Barton 09ab0704f4 Debian ngircd-full[-dbg]: enable CHARCONV 2012-10-06 16:36:07 +02:00
Alexander Barton 114644cdb0 Makefile.am: don't use "make -C", it isn't portable 2012-09-27 01:11:01 +02:00
Alexander Barton cf9f9e1f30 Test suite: don't use "mkdir -p"
"mkdir -p" is not supported on all platforms.
Tested with Apple A/UX 3.1.x.
2012-09-27 00:57:37 +02:00
Federico G. Schwindt 19ce256a95 ERR_CHANNELISFULL_MSG: better wording
(cherry picked from commit 0fcfa7e00fa8e098dd3724c7188c88ac82a52881)
2012-09-27 00:22:48 +02:00
Alexander Barton eba53f652c Fix getpid.sh to work on Apple A/UX again 2012-09-27 00:19:31 +02:00
Federico G. Schwindt d8ee498a65 Send RPL_REHASHING if rehash was accepted
(cherry picked from commit f1b171a09cd076f743a7fff221fa7aa752abb374)
2012-09-27 00:07:40 +02:00
Federico G. Schwindt e3a1a61868 Change variable name "SSLDHFile" to "DHFile" in log messages
(cherry picked from commit d96db0a2e56d310177edb45d0a8b164a37992ab1)
2012-09-27 00:05:07 +02:00
Federico G. Schwindt 1a2bdd9e4c Move ConnSSL_InitLibrary() "dummy" from header into C file
(cherry picked from commit 5fd88c81a70d0c9e627f08522e57d251586288eb)
2012-09-27 00:03:56 +02:00
Alexander Barton 384f965fba NJOIN: correctly reset channel level flags
This fixes commit 7b01bb83.
Bug reported by DNS777 <dns@rbose.org>, thanks!
2012-09-26 23:51:48 +02:00
Alexander Barton 005340c83f Simplify check for valid user names in IRC_USER().
Patches from Federico G. Schwindt, thanks!

(cherry picked from commit a44b7126227ba1118ec02b399e31b08102af5e8c
and 6fbe9583753b2620da275676cde46a89cb4d06c2)
2012-09-26 23:28:13 +02:00
Alexander Barton d21afce2b6 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.
2012-09-26 22:55:10 +02:00
DNS777 808c291c76 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.)
2012-09-25 13:08:39 +02:00
DNS777 62a07596d6 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.
2012-09-25 12:55:07 +02:00
Alexander Barton b730b64bbe configure: only use AM_PROG_AR when available
This fixes commit 78d189fb on systems with older automake ...
2012-09-24 20:56:24 +02:00
Alexander Barton 3e22fc32f3 Remove all geneerated Makefile.am on "make maintainer-clean" 2012-09-24 20:45:37 +02:00
Alexander Barton e65a35e964 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.
2012-09-24 20:40:31 +02:00
Alexander Barton 78d189fbf7 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.
2012-09-24 20:39:06 +02:00
Alexander Barton 8cfb910441 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
2012-09-24 20:28:02 +02:00
Alexander Barton 039a939cb8 autogen.sh: detect automake version format a.b.c and a.b 2012-09-24 18:01:47 +02:00
Alexander Barton d7d5f4330b configure.ng: don't require GIT tree to detect version string 2012-09-24 18:00:36 +02:00
Alexander Barton 79c1222896 Include .mailmap file in distribution archives 2012-09-24 17:50:32 +02:00
Alexander Barton a3f3a1097b INSTALL: update GNU automake/autoconf requirements 2012-09-24 17:46:22 +02:00
Alexander Barton d4df626d88 automake: don't use INCLUDES, it's AM_CPPFLAGS nowadays 2012-09-24 17:45:15 +02:00
Alexander Barton eed8a4ee6e 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 ...
2012-09-24 17:43:02 +02:00
Alexander Barton b1b83831d1 Add doc/Contributing.txt to distribution archive 2012-09-24 17:40:33 +02:00
Alexander Barton 8e1beae4e7 Include all build-system files into distribution archives 2012-09-24 14:34:16 +02:00
Alexander Barton baed0618ed 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!
2012-09-24 10:22:21 +02:00
Alexander Barton e3e181f4b3 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".
2012-09-23 20:06:14 +02:00
Alexander Barton 1f2aa4da6f 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.
2012-09-23 19:37:06 +02:00
Alexander Barton fc39146f48 Fix prefix of "halfop" when "multi-prefix" is active 2012-09-23 19:23:23 +02:00
Alexander Barton 192e304b94 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 ...
2012-09-23 18:13:55 +02:00
Alexander Barton 1744a8d145 Clean up doc/.gitignore 2012-09-23 17:52:53 +02:00
Alexander Barton b12acddf4f doc/Modes.txt: add version number to new channel modes 2012-09-23 17:52:26 +02:00