about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)Author
2012-10-11Disable UID/GID checks on "single user OS"Alexander Barton
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.
2012-10-08Test suite: add test for user mode "b"Alexander Barton
2012-10-08Implement user mode "b": block messagesDNS777
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-07Fix ERR_CANNOTSENDTOCHAN_MSG messageAlexander Barton
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-07WHOIS: show RPL_WHOISHOST_MSG to all IRC Ops in the networkAlexander Barton
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-06Test suite: make expect scripts more verboseAlexander Barton
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-06Test suite: remove indentation of messagesAlexander Barton
2012-10-06Merge branch 'bug141-ModesQq'Alexander Barton
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-06Show active user modes in WHOIS replyDNS777
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-06Implement channel mode 'V' (invite disallow)DNS777
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-06Allow channel admins to "de-admin" channel membersDNS777
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-06KICK-protect IRC servicesAlexander Barton
2012-10-06Merge branch 'bug109-CHARCONV'Alexander Barton
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-06Implement channel mode "Q" and user mode "q"Alexander Barton
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-06Fix spelling: ERR_CHANOPPRIVTOLOW_MSG -> ERR_CHANOPPRIVTOOLOW_MSGAlexander Barton
Thanks to DNS for pointing this out, see bug #126!
2012-09-27Test suite: don't use "mkdir -p"Alexander Barton
"mkdir -p" is not supported on all platforms. Tested with Apple A/UX 3.1.x.
2012-09-27ERR_CHANNELISFULL_MSG: better wordingFederico G. Schwindt
(cherry picked from commit 0fcfa7e00fa8e098dd3724c7188c88ac82a52881)
2012-09-27Fix getpid.sh to work on Apple A/UX againAlexander Barton
2012-09-27Send RPL_REHASHING if rehash was acceptedFederico G. Schwindt
(cherry picked from commit f1b171a09cd076f743a7fff221fa7aa752abb374)
2012-09-27Change variable name "SSLDHFile" to "DHFile" in log messagesFederico G. Schwindt
(cherry picked from commit d96db0a2e56d310177edb45d0a8b164a37992ab1)
2012-09-27Move ConnSSL_InitLibrary() "dummy" from header into C fileFederico G. Schwindt
(cherry picked from commit 5fd88c81a70d0c9e627f08522e57d251586288eb)
2012-09-26NJOIN: correctly reset channel level flagsAlexander Barton
This fixes commit 7b01bb83. Bug reported by DNS777 <dns@rbose.org>, thanks!
2012-09-26Simplify check for valid user names in IRC_USER().Alexander Barton
Patches from Federico G. Schwindt, thanks! (cherry picked from commit a44b7126227ba1118ec02b399e31b08102af5e8c and 6fbe9583753b2620da275676cde46a89cb4d06c2)
2012-09-26Allow user mode +x only when "CloakHostModeX" is setAlexander Barton
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-25New configuration option "OperChanPAutoOp"DNS777
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-25Allow opers to see secret (+s) channels in LIST commandDNS777
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-24Remove all geneerated Makefile.am on "make maintainer-clean"Alexander Barton
2012-09-24Merge branch 'automake-am11-am12'Alexander Barton
* 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-24automake: don't use INCLUDES, it's AM_CPPFLAGS nowadaysAlexander Barton
2012-09-24Include all build-system files into distribution archivesAlexander Barton
2012-09-23Merge branch 'bug92-xop'Alexander Barton
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-23Fix NAMES/WHO response when client has multi-prefixAlexander Barton
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-23Fix prefix of "halfop" when "multi-prefix" is activeAlexander Barton
2012-09-23Change build system to support new and old GNU automakeAlexander Barton
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-21Free all listen ports on initializationAlexander Barton
Now you can reconfigure listen ports and reload the server configuration on runtime. Without this patch, no ports could be removed.
2012-09-21Initialize SSL when needed only, and disable SSL on errorsAlexander Barton
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 ...
2012-09-17Add "CHARCONV" to "feature string" when enabledAlexander Barton
2012-09-17Implement new IRC+ "CHARCONV" commandAlexander Barton
See bug 109 and doc/Protocol.txt for details and documentation.
2012-09-17Sort "feature string" alphabeticallyAlexander Barton
2012-09-16Include CAP command even when using "strict RFC mode"Alexander Barton
2012-09-16Merge branch 'autoconf-update'Alexander Barton
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, ...)
2012-09-16AUTOMAKE_OPTIONS: fix ansi2knr option, include pathAlexander Barton
Set correct relative path to ansi2knr.c in AUTOMAKE_OPTIONS, so that ansi2knr.{1|c} is only included once in the distribution archive.
2012-09-14Allow limited punctuation in usernames, for better PAM integration.Brett Smith
2012-09-13configure.in: use AC_CANONICAL_HOST (not AC_CANONICAL_TARGET)Alexander Barton
See the autoconf manual for details: http://www.gnu.org/software/autoconf/manual/autoconf.html#Specifying-Target-Triplets
2012-09-11Merge pull request #2 from briancollins/masterAlexander Barton
Fix IRC_Send_NAMES not sending correct prefix for certain clients.
2012-09-11Correctly re-initialize signal handlers on RESTARTAlexander Barton
This fixes part 2 of bug #127 :-)
2012-09-11Use HAVE_SETSID #define when testing for setsid()Alexander Barton
2012-09-11Don't include <stdint.h>, it is included by "portab.h"Alexander Barton
2012-09-11Don't check type.h availability, it is requiredAlexander Barton
2012-09-11New_Connection(): mark "IsSSL" parameter as UNUSEDAlexander Barton
This fixes the following warning message when building without SSL support: conn.c: In function "New_Connection": conn.c:1365: warning: unused parameter "IsSSL" Introduced by commit 01b62202.