ngircd-alex.git
2 years agoautogen.sh, ngindent, platformtest.sh: Fix warnings of "shellcheck"
Alexander Barton [Sat, 19 Dec 2015 18:23:50 +0000 (19:23 +0100)]
autogen.sh, ngindent, platformtest.sh: Fix warnings of "shellcheck"

- SC2006: Use $(..) instead of legacy `..`.
- SC2015: Note that A && B || C is not if-then-else. C may run
          when A is true.
- SC2086: Double quote to prevent globbing and word splitting.
- SC2166: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.

2 years agoUpdate Xcode project for latest Xcode version (8.0)
Alexander Barton [Fri, 21 Oct 2016 19:33:38 +0000 (21:33 +0200)]
Update Xcode project for latest Xcode version (8.0)

3 years agoUpdate Xcode project for latest Xcode version (7.3)
Alexander Barton [Wed, 21 Sep 2016 20:47:40 +0000 (22:47 +0200)]
Update Xcode project for latest Xcode version (7.3)

3 years agoUpdated config.sub to version 2014-09-11
Alexander Barton [Sun, 18 Sep 2016 16:46:44 +0000 (18:46 +0200)]
Updated config.sub to version 2014-09-11

3 years agoAdd "Documentation" variables to systemd configuration files
Alexander Barton [Sun, 18 Sep 2016 16:10:45 +0000 (18:10 +0200)]
Add "Documentation" variables to systemd configuration files

3 years agoMake sure that SYSCONFDIR is always set
Alexander Barton [Fri, 22 Jul 2016 17:01:04 +0000 (19:01 +0200)]
Make sure that SYSCONFDIR is always set

This is useful when ./configure hasn't been run but some source code
linters are run in an editor, for example.

3 years agoAdd "PAMServiceName" configuration option
Alexander Barton [Sun, 5 Jun 2016 23:08:55 +0000 (01:08 +0200)]
Add "PAMServiceName" configuration option

This setting allows to run multiple ngIRCd instances with separate PAM
configurations on each instance. If one sets it to ngircd-foo, PAM will
use /etc/pam.d/ngircd-foo instead of the default /etc/pam.d/ngircd.

Thanks to "somechris" for the patch & pull request!

Closes #226.

3 years agoAdd PAMServiceName setting to specify the used PAM configuration
Christian Aistleitner [Sun, 5 Jun 2016 10:46:56 +0000 (12:46 +0200)]
Add PAMServiceName setting to specify the used PAM configuration

This setting allows to run multiple ngIRCd instances with
PAM configurations on each instance.
If one sets it to "ngircd-foo", PAM will use `/etc/pam.d/ngircd-foo`
instead of the default `/etc/pam.d/ngircd`.

3 years agoAdd an ".editorconfig" file to the project
Alexander Barton [Fri, 6 May 2016 22:43:30 +0000 (00:43 +0200)]
Add an ".editorconfig" file to the project

3 years agoPlatforms.txt: Remove x86_64/unknown/linux-gnu, tcc 0.9.25
Alexander Barton [Sat, 16 Jan 2016 13:31:14 +0000 (14:31 +0100)]
Platforms.txt: Remove x86_64/unknown/linux-gnu, tcc 0.9.25

This combination had been successfully tested with ngIRCd 21, but after
further investigation didn't build correctly: it seems as if tcc fails
to correctly link external libraries (e. g. ngipaddr).

Astonishingly the test suite passed nevertheless, with garbled output,
but without the daemon crashing!?

When using tcc with ngIRCd 23 (and current master), the test suite fails
completely because the daemon crashes ... (which actually is good!)

3 years agoPlatforms.txt: Add systems
Alexander Barton [Sun, 10 Jan 2016 17:05:44 +0000 (18:05 +0100)]
Platforms.txt: Add systems

- Add armv7l/unk./linux-gnueabihf (gcc 4.9.2)
- Add x86_64/unknown/linux-gnu (icc 16)

3 years agoTravis-CI: use "container-based infrastructure"
Alexander Barton [Sun, 10 Jan 2016 18:50:00 +0000 (19:50 +0100)]
Travis-CI: use "container-based infrastructure"

See <https://docs.travis-ci.com/user/migrating-from-legacy/> for
details.

3 years agoplatformtest.sh: Delete ngIRCd binary before test run
Alexander Barton [Sun, 10 Jan 2016 16:44:36 +0000 (17:44 +0100)]
platformtest.sh: Delete ngIRCd binary before test run

This ensures that we definitely don't test an old binary later on ...

3 years agoplatformtest.sh: Only show "runs=Y" when test suite succeeded
Alexander Barton [Sun, 10 Jan 2016 16:39:43 +0000 (17:39 +0100)]
platformtest.sh: Only show "runs=Y" when test suite succeeded

Display "?" in the "runs" colum when the simple "run test" succeeded but
the test suite failed. And display a message to double check the actual
status, because it is somewhat unclear, if the daemon actually "works"
or not in this case.

3 years agoPlatforms.txt: Add and update systems
Alexander Barton [Thu, 7 Jan 2016 01:02:07 +0000 (02:02 +0100)]
Platforms.txt: Add and update systems

- Add i386/pc/minix (clang 3.4)
- Update i686/pc/cygwin (gcc 4.9.3)
- Add x86_64/apple/darwin15.2.0 (Apple clang 7.0)

3 years agoSend_Message: Fix handling of "empty" targets
Alexander Barton [Thu, 7 Jan 2016 00:54:11 +0000 (01:54 +0100)]
Send_Message: Fix handling of "empty" targets

Clients can specify multiple targets for the "PRIVMSG", "NOTICE", and
"SQUERY" commands, separated by commas (e. g. "PRIVMSG a,#b,c :text").

Since commit 49ab79d0 ("Limit the number of message targes, and suppress
duplicates"), ngIRCd crashed when the client sent the separator character
only as target(s), e. g. "," or ",,,," etc.!

This patch fixes the bug and adds a test case for this issue.

Thanks to Florian Westphal <fw@strlen.de> for spotting the issue!

3 years agoUpdate README file
Alexander Barton [Wed, 6 Jan 2016 18:01:25 +0000 (19:01 +0100)]
Update README file

3 years agoPlatforms.txt: Add and update systems
Alexander Barton [Wed, 6 Jan 2016 16:21:54 +0000 (17:21 +0100)]
Platforms.txt: Add and update systems

- Update i586/pc/interix3.5 (gcc 3.3)

- Add i686/pc/linux-gnu (gcc 2.6.3)
- Add i686/pc/linux-gnu (gcc 2.95.2)

Thanks to Götz Hoffart <goetz@hoffart.de>!

3 years agoplatformtest.sh: Use $LOGNAME instead of $USER
Alexander Barton [Wed, 6 Jan 2016 14:47:31 +0000 (15:47 +0100)]
platformtest.sh: Use $LOGNAME instead of $USER

LOGNAME is more standard than USER.

3 years agoUpdate copyright notices for 2016
Alexander Barton [Mon, 4 Jan 2016 21:43:58 +0000 (22:43 +0100)]
Update copyright notices for 2016

3 years agoLimit the number of message targes, and suppress duplicates
Alexander Barton [Mon, 4 Jan 2016 21:11:47 +0000 (22:11 +0100)]
Limit the number of message targes, and suppress duplicates

This prevents an user from flooding the server using commands like this:

  PRIVMSG nick1,nick1,nick1,...

Duplicate targets are suppressed silently (channels and clients).

In addition, the maximum number of targets per PRIVMSG/NOTICE/... command
are limited to MAX_HNDL_TARGETS (25). If there are more, the daemon sends
the new 407 (ERR_TOOMANYTARGETS_MSG) numeric, containing the first target
that hasn't been handled any more.

Closes #187.

3 years agoAdd "_MSG" postfix to ERR_WILDTOPLEVEL_MSG
Alexander Barton [Mon, 4 Jan 2016 21:10:38 +0000 (22:10 +0100)]
Add "_MSG" postfix to ERR_WILDTOPLEVEL_MSG

3 years agoCommands.txt, PRIVMSG: Fix "server mask" description
Alexander Barton [Mon, 4 Jan 2016 20:15:05 +0000 (21:15 +0100)]
Commands.txt, PRIVMSG: Fix "server mask" description

3 years agoEnahnce comments for Send_Message() and Send_Message_Mask()
Alexander Barton [Mon, 4 Jan 2016 19:45:49 +0000 (20:45 +0100)]
Enahnce comments for Send_Message() and Send_Message_Mask()

No functional changes.

3 years agoGet rid of unclever assert() in Send_Message_Mask()
Alexander Barton [Mon, 4 Jan 2016 19:37:13 +0000 (20:37 +0100)]
Get rid of unclever assert() in Send_Message_Mask()

Either we use assert() to _guarantee_ a certain condition, or we use
if(...) to test for it. But never both.

So get rid of the assert() in Send_Message_Mask() and handle the case
that the target mask doesn't contain a dot (".") as regular error,
don't require the caller to assure that any more.

This polishes commit 5a312824.

Please note:
The test in Send_Message() is still _required_ to detect whether the
target is a channel (no dot) or a "target mask" (at least one dot)!

3 years agoTest suite: Add new test for server-server logins
Alexander Barton [Wed, 30 Dec 2015 16:10:26 +0000 (17:10 +0100)]
Test suite: Add new test for server-server logins

This test detects the recent NJOIN breakage, for example ...

3 years agoFix NJOIN handler killing all clients
Alexander Barton [Wed, 30 Dec 2015 13:51:48 +0000 (14:51 +0100)]
Fix NJOIN handler killing all clients

This bug has been introduced by commit 1e386fb7ac which had
the logic reversed :-(

Reported by "ninguno" in #ngircd, thanks a lot!

3 years agocontrib/ngindent: Fix shebang line
Alexander Barton [Sat, 19 Dec 2015 18:21:45 +0000 (19:21 +0100)]
contrib/ngindent: Fix shebang line

3 years agocontrib/platformtest.sh: Warn when external tools are missing
Alexander Barton [Sat, 19 Dec 2015 16:27:27 +0000 (17:27 +0100)]
contrib/platformtest.sh: Warn when external tools are missing

3 years agocontrib/platformtest.sh: Make script more portable
Alexander Barton [Sat, 19 Dec 2015 16:27:03 +0000 (17:27 +0100)]
contrib/platformtest.sh: Make script more portable

3 years agoPlatforms.txt: Add and update systems
Alexander Barton [Sat, 19 Dec 2015 16:08:55 +0000 (17:08 +0100)]
Platforms.txt: Add and update systems

- Update i386/unknown/openbsd3.5 (gcc 2.95.3)
- Update i686/pc/linux-gnu (gcc 2.7.2.1)
- Add x86_64/unknown/linux-gnu (gcc 5.3.0)

Thanks to Götz Hoffart <goetz@hoffart.de>!

3 years agodoc/Platforms.txt: Sort list
Alexander Barton [Sat, 19 Dec 2015 16:02:10 +0000 (17:02 +0100)]
doc/Platforms.txt: Sort list

3 years agoMake NJOIN handler more fault-tolerant
Alexander Barton [Sun, 13 Dec 2015 20:56:07 +0000 (21:56 +0100)]
Make NJOIN handler more fault-tolerant

Don't crash the daemon when the NJOIN handler can't join the new client
to a channel (when the Channel_Join() function failed) but try to KILL this
client -- which is the only possible reaction besides crashing: otherwise
the network would get out of sync.

3 years agoIRC_KillClient(): Don't break when called without "Client"
Alexander Barton [Sun, 13 Dec 2015 20:48:31 +0000 (21:48 +0100)]
IRC_KillClient(): Don't break when called without "Client"

The IRC_KillClient() function is documented to handle the case that the
"Client" structure is NULL, so make sure that this actually works and
can't crash the daemon.

Please note:
The current code doesn't make use of this feature, so this fix is
definitely the "right" thing to do but doesn't fix an actual problem.

3 years agoIRC_NJOIN(): Code cleanup
Alexander Barton [Sun, 13 Dec 2015 20:00:46 +0000 (21:00 +0100)]
IRC_NJOIN(): Code cleanup

No functional changes.

3 years agoModes.txt: Add "name prefixes" to channel user mode description
Alexander Barton [Sun, 13 Dec 2015 19:19:05 +0000 (20:19 +0100)]
Modes.txt: Add "name prefixes" to channel user mode description

3 years agoFix NJOIN not propagating "half ops" status
Alexander Barton [Sun, 13 Dec 2015 18:55:47 +0000 (19:55 +0100)]
Fix NJOIN not propagating "half ops" status

ngIRCd tested for the wrong prefix of "half ops" when processing NJOIN
commands and therefore never classified a remote user as "half op".

Thanks to wowaname for pointing this out on #ngircd!

3 years agongIRCd Release 23 rel-23
Alexander Barton [Mon, 16 Nov 2015 20:33:15 +0000 (21:33 +0100)]
ngIRCd Release 23

3 years agoUpdate ChangeLog file
Alexander Barton [Sun, 15 Nov 2015 16:07:56 +0000 (17:07 +0100)]
Update ChangeLog file

3 years agoUpdate doc/Platforms.txt
Alexander Barton [Sun, 15 Nov 2015 16:06:24 +0000 (17:06 +0100)]
Update doc/Platforms.txt

3 years agoExplicitly cast time_t to long when printing it out
Alexander Barton [Sun, 15 Nov 2015 14:14:12 +0000 (15:14 +0100)]
Explicitly cast time_t to long when printing it out

This prevents wrong sizes data types on platforms where time_t doesn't
equal a long any more, for example on OpenBSD.

4 years agocontrib/Debian/changelog: Fix email address
Alexander Barton [Fri, 11 Sep 2015 19:11:38 +0000 (21:11 +0200)]
contrib/Debian/changelog: Fix email address

4 years agoDocumentation: Spelling fixes
Alexander Barton [Sun, 6 Sep 2015 17:38:16 +0000 (19:38 +0200)]
Documentation: Spelling fixes

4 years agongIRCd Release 23~rc1 rel-23-rc1
Alexander Barton [Sun, 6 Sep 2015 14:57:01 +0000 (16:57 +0200)]
ngIRCd Release 23~rc1

4 years agoUpdate AUTHORS and .mailmap file
Alexander Barton [Sun, 6 Sep 2015 14:51:40 +0000 (16:51 +0200)]
Update AUTHORS and .mailmap file

And add a note to doc/HowToRelease.txt to not forget to update the list
of authors in the future ...

4 years agoUpdate ChangeLog file
Alexander Barton [Thu, 3 Sep 2015 15:05:58 +0000 (17:05 +0200)]
Update ChangeLog file

4 years agoAdd ".clang_complete" file
Alexander Barton [Thu, 3 Sep 2015 14:46:48 +0000 (16:46 +0200)]
Add ".clang_complete" file

This file is used of the "linter-clang" package of the Atom editor,
for example.

4 years agoMake server-to-server protocol more robust
Alexander Barton [Thu, 3 Sep 2015 14:22:36 +0000 (16:22 +0200)]
Make server-to-server protocol more robust

Now ngIRCd catches more errors on the server-to-server (S2S) protocol
that could crash the daemon before. This hasn't been a real problem
because the IRC S2S protocol is "trusted" by design, but the behavior
is much better now.

Thanks to wowaname on #ngircd for pointing this out!

4 years agoplatformtest.sh: Fix quoting
Alexander Barton [Wed, 26 Aug 2015 22:12:50 +0000 (00:12 +0200)]
platformtest.sh: Fix quoting

4 years agoautogen.sh: Fix parameter quoting
Alexander Barton [Wed, 26 Aug 2015 22:10:41 +0000 (00:10 +0200)]
autogen.sh: Fix parameter quoting

4 years agongircd.init: Fix non-POSIX "==" test operator
Alexander Barton [Wed, 26 Aug 2015 22:10:18 +0000 (00:10 +0200)]
ngircd.init: Fix non-POSIX "==" test operator

4 years agoReproducible builds
Christoph Biedl [Tue, 25 Aug 2015 16:12:05 +0000 (18:12 +0200)]
Reproducible builds

At the moment ngircd fails the tests for reproducible builds in Debian
since it uses the __DATE__ and __TIME__ macros for the INFO command.

Instead of patching this out I decided to implement an optional
constant BIRTHTIME that allows you to set a time stamp for the "Birth
Date" information, in seconds since the epoch, like in

    export CFLAGS += -DBIRTHTIME=$(shell date +%s --date="2015/08/15 23:42:22")

In the future, Debian will provide a SOURCE_DATE_EPOCH environment
variable, dealing with the situation until then will be my job.

The time format was taken from the NGIRCd_StartStr formatting in
ngircd.c so the "Birth Date" and "On-line since" lines in the INFO
output look similar:

    :irc.example.net 371 nick :ngIRCd 22.1-IDENT+IPv6+IRCPLUS+PAM+SSL+SYSLOG+ZLIB-x86_64/pc/linux-gnu
    :irc.example.net 371 nick :Birth Date: Tue Aug 25 2015 at 18:11:11 (CEST)
    :irc.example.net 371 nick :On-line since Tue Aug 25 2015 at 18:11:33 (CEST)
    :irc.example.net 374 nick :End of INFO list

The format of the time stamped is changed, but as far as I can tell, there's no
rule that is violated by that.

Bonus level: Reformat the messages so the time stamps are aligned.

4 years agoUpdate systemd service file
Alexander Barton [Fri, 14 Aug 2015 17:55:32 +0000 (19:55 +0200)]
Update systemd service file

4 years agoUpdate NEWS and ChangeLog files
Alexander Barton [Fri, 7 Aug 2015 15:20:47 +0000 (17:20 +0200)]
Update NEWS and ChangeLog files

4 years agoWhitespace fixes (no functional changes)
Alexander Barton [Sat, 1 Aug 2015 13:15:30 +0000 (15:15 +0200)]
Whitespace fixes (no functional changes)

4 years agoFix debug message "Client ... is closing connection"
Alexander Barton [Sat, 1 Aug 2015 13:14:23 +0000 (15:14 +0200)]
Fix debug message "Client ... is closing connection"

It should be "host:port"!

4 years agoINSTALL: Add deprecation notice for "PredefChannelsOnly"
Alexander Barton [Sat, 1 Aug 2015 12:45:08 +0000 (14:45 +0200)]
INSTALL: Add deprecation notice for "PredefChannelsOnly"

Obviously I forgot to list this for ngIRCd 21 ... oops!

4 years ago"NoticeAuth" configuration variable is deprecated now!
Alexander Barton [Sat, 1 Aug 2015 12:43:38 +0000 (14:43 +0200)]
"NoticeAuth" configuration variable is deprecated now!

4 years agoMerge pull request #217 from SaberUK/master+notice-auth
Alexander Barton [Sat, 1 Aug 2015 12:51:04 +0000 (14:51 +0200)]
Merge pull request #217 from SaberUK/master+notice-auth

Use "NOTICE *" before registration instead of "NOTICE AUTH".

4 years agoChannel mode "N" is targeted for ngIRCd 23.
Alexander Barton [Sat, 1 Aug 2015 12:21:45 +0000 (14:21 +0200)]
Channel mode "N" is targeted for ngIRCd 23.

4 years agoFirst check if channel has mode "N", then check membership
Alexander Barton [Sat, 1 Aug 2015 12:21:32 +0000 (14:21 +0200)]
First check if channel has mode "N", then check membership

This should be more efficient.

4 years agoMerge pull request #214 from Flupsy/channel-mode-N
Alexander Barton [Sat, 1 Aug 2015 12:24:20 +0000 (14:24 +0200)]
Merge pull request #214 from Flupsy/channel-mode-N

Channel mode N (users on this channel can't change their nick)

4 years agoAdd "build+*" to .gitignore file
Alexander Barton [Mon, 20 Jul 2015 07:34:39 +0000 (09:34 +0200)]
Add "build+*" to .gitignore file

4 years agoRemote GIT.txt from Makefile[.am], too!
Alexander Barton [Mon, 20 Jul 2015 07:34:14 +0000 (09:34 +0200)]
Remote GIT.txt from Makefile[.am], too!

4 years agoREADNE, AUTHORS: Update mailing list and issue tracker URLs
Alexander Barton [Sun, 19 Jul 2015 01:21:37 +0000 (03:21 +0200)]
READNE, AUTHORS: Update mailing list and issue tracker URLs

4 years agodoc/Contributing.txt: Add note about using GitHub
Alexander Barton [Sun, 19 Jul 2015 01:20:48 +0000 (03:20 +0200)]
doc/Contributing.txt: Add note about using GitHub

4 years agoRemove doc/GIT.txt: it is outdated
Alexander Barton [Sun, 19 Jul 2015 01:19:38 +0000 (03:19 +0200)]
Remove doc/GIT.txt: it is outdated

ngIRCd uses GitHub, and Git itself is quite common today. So don't
include an own Git "mini HowTo" any longer.

4 years agoStreamline ".gitignore" files
Alexander Barton [Sun, 19 Jul 2015 01:03:06 +0000 (03:03 +0200)]
Streamline ".gitignore" files

4 years agoUpdate NEWS and ChangeLog files
Alexander Barton [Sun, 19 Jul 2015 00:41:03 +0000 (02:41 +0200)]
Update NEWS and ChangeLog files

4 years agoRename NoticeAuth to NoticeBeforeRegistration.
Peter Powell [Tue, 14 Jul 2015 13:43:19 +0000 (14:43 +0100)]
Rename NoticeAuth to NoticeBeforeRegistration.

The old name is still supported for compatibility reasons.

4 years agoUse "NOTICE *" before registration instead of "NOTICE AUTH".
Peter Powell [Tue, 14 Jul 2015 13:37:42 +0000 (14:37 +0100)]
Use "NOTICE *" before registration instead of "NOTICE AUTH".

AUTH is a valid nickname so sending notices to it is probably not
a good idea. Use * as the target instead as done with numerics
when the nick is not available.

This mimics the behaviour in Charybdis, IRCD-Hybrid, InspIRCd 2.2,
Plexus 4, etc.

4 years agoOnly enforce channel mode N on users (not servers or services)
Ian Chard [Fri, 26 Jun 2015 09:36:57 +0000 (10:36 +0100)]
Only enforce channel mode N on users (not servers or services)

4 years agoMerge pull request #215 from tejr/master
Alexander Barton [Fri, 26 Jun 2015 05:41:19 +0000 (07:41 +0200)]
Merge pull request #215 from tejr/master

Specify session context for OpenSSL clients.

Closes #182.

4 years agoSpecify session context for OpenSSL clients
Tom Ryder [Fri, 26 Jun 2015 04:21:54 +0000 (16:21 +1200)]
Specify session context for OpenSSL clients

Reconnecting to ngIRCd 22.1 built with OpenSSL with some OpenSSL
clients, including Pidgin and stunnel 5.06, attempts to reuse a session
and fails due to the absence of this line.

The error message in syslog from ngIRCd is:

> SSL protocol error: SSL_accept (error:140D9115:SSL
> routines:SSL_GET_PREV_SESSION:session id context uninitialized)

This patch appears to fix the problem for both Pidgin and stunnel; it
may work for other OpenSSL clients that attempt to re-use sessions.

*   <https://github.com/ngircd/ngircd/issues/182>
*   <https://developer.pidgin.im/ticket/11568>
*   <https://www.openssl.org/docs/ssl/SSL_CTX_set_session_id_context.html>

4 years agoDon't bother looking for +N channels for an op
Ian Chard [Wed, 24 Jun 2015 19:28:27 +0000 (20:28 +0100)]
Don't bother looking for +N channels for an op

4 years agoFix several broken URLs.
Unit 193 [Wed, 24 Jun 2015 04:24:22 +0000 (00:24 -0400)]
Fix several broken URLs.

4 years agoDon't use a standard message number
Ian Chard [Wed, 24 Jun 2015 14:51:37 +0000 (15:51 +0100)]
Don't use a standard message number

4 years agoAdd documentation for channel mode N
Ian Chard [Wed, 24 Jun 2015 14:41:31 +0000 (15:41 +0100)]
Add documentation for channel mode N

4 years agoAdd channel mode N (normal user can't change nick while on channel)
Ian Chard [Wed, 24 Jun 2015 14:37:56 +0000 (15:37 +0100)]
Add channel mode N (normal user can't change nick while on channel)

4 years agoMerge remote-tracking branch 'LucentW/master'
Alexander Barton [Sun, 7 Jun 2015 19:13:45 +0000 (21:13 +0200)]
Merge remote-tracking branch 'LucentW/master'

* LucentW/master:
  Fix with oneshot invites
  Fixed building issues\
  Implement timestamp tracking of invites
  Keep track of who placed bans/invites/excepts
  IRC operators w/OperCanMode can kick anyone [already cherry-picked]

Closes #203, Closes #205.

4 years agoMake setgroups(3) function optional
Alexander Barton [Sat, 6 Jun 2015 20:19:47 +0000 (22:19 +0200)]
Make setgroups(3) function optional

For example, Interix is missing this function, which prevented
ngIRCd to build on this platform. When setgroups(3) isn't available,
a warning message is issued when ngIRCd starts up.

4 years agoIRC operators w/OperCanMode can kick anyone
LucentW [Mon, 11 May 2015 20:05:08 +0000 (22:05 +0200)]
IRC operators w/OperCanMode can kick anyone

Closes #202.

(cherry picked from commit 10c7ba99e73b42ec8c4c191ccdae60bdd35bba7d)

4 years agoImplement numeric RPL_LISTSTART(321)
LucentW [Wed, 13 May 2015 20:26:14 +0000 (20:26 +0000)]
Implement numeric RPL_LISTSTART(321)

lightIRC and other clients expecting RPL_LISTSTART should now behave correctly.

Closes #207.

(cherry picked from commit 0680ce5fd99bc643651d1433bcdaf271aeb73c46)

4 years agoUpdate ngircd.conf.5: "CloadUserToNick" hides user and real name
Alexander Barton [Fri, 15 May 2015 21:15:09 +0000 (23:15 +0200)]
Update ngircd.conf.5: "CloadUserToNick" hides user and real name

Closes #208.

4 years agoFix with oneshot invites
LucentW [Fri, 15 May 2015 12:02:21 +0000 (14:02 +0200)]
Fix with oneshot invites

This should finally implement correctly oneshot invites sent via /INVITE

4 years agoFix MatchCaseInsensitive[List]](): lowercase string _and_ pattern
Alexander Barton [Wed, 13 May 2015 21:47:53 +0000 (23:47 +0200)]
Fix MatchCaseInsensitive[List]](): lowercase string _and_ pattern

Up to now, only the the string ("haystack") became lowercased and was
the compared to the pattern ("needle") -- which failed, when the pattern
itself wasn't all lowercase ...

4 years agoStreamline effect of "MorePrivacy" option (WHOIS, LIST)
Alexander Barton [Wed, 13 May 2015 20:42:51 +0000 (22:42 +0200)]
Streamline effect of "MorePrivacy" option (WHOIS, LIST)

- Update documentation in ngircd.conf(5)
- LIST: Don't hide channels for IRC Ops when "MorePrivacy" is in effect
- WHOIS: Don't hide IP addresses/hostnames when "MorePrivacy" is in effect

Closes #198

4 years agoFixed building issues\
LucentW [Wed, 13 May 2015 20:08:26 +0000 (20:08 +0000)]
Fixed building issues\

Now builds cleanly. Pass all tests from make check.

4 years agoImplement timestamp tracking of invites
LucentW [Mon, 11 May 2015 19:50:48 +0000 (21:50 +0200)]
Implement timestamp tracking of invites

Now lists nodes also have the "onlyonce" field, since the valid_until is
used to keep the timestamp of placing. Found no references to onlyonce
or about valid_until being == 1, though, so it might be unused, but
still available for other enhancements.

4 years agoKeep track of who placed bans/invites/excepts
LucentW [Fri, 8 May 2015 14:02:57 +0000 (16:02 +0200)]
Keep track of who placed bans/invites/excepts

Implements #203.
WARNING: it does not track the time of placement of invites, since the
time_t is already used as a flag for single use invites!

4 years agoIRC operators w/OperCanMode can kick anyone
LucentW [Mon, 11 May 2015 20:05:08 +0000 (22:05 +0200)]
IRC operators w/OperCanMode can kick anyone

4 years agodoc/Modes.txt: Fix indentation
Alexander Barton [Thu, 30 Apr 2015 07:29:41 +0000 (09:29 +0200)]
doc/Modes.txt: Fix indentation

4 years agoMerge pull request #197 from LucentW/master
Alexander Barton [Thu, 30 Apr 2015 07:28:15 +0000 (09:28 +0200)]
Merge pull request #197 from LucentW/master

Implement user mode "I": Hide channels on WHOIS

User mode +I prevents ngIRCd from showing channels on WHOIS.
IRC Operators can always see those.

Closes #197.

4 years agoFixed indents 2
LucentW [Wed, 29 Apr 2015 18:27:11 +0000 (20:27 +0200)]
Fixed indents 2

4 years agoFixed indents and documentation
LucentW [Wed, 29 Apr 2015 18:25:18 +0000 (20:25 +0200)]
Fixed indents and documentation

(also updated the copyright date on the txt I edited)

4 years agoImplement +I (private channel list on whois)
LucentW [Mon, 27 Apr 2015 21:20:32 +0000 (23:20 +0200)]
Implement +I (private channel list on whois)

Implements enhancement requested in issue #179

4 years agoMake sure that the target user is able to join a local channel
Alexander Barton [Sun, 12 Apr 2015 18:59:43 +0000 (20:59 +0200)]
Make sure that the target user is able to join a local channel

Implement ERR_USERNOTONSERV(504) numeric and make sure that the
target user is on the same server when inviting other users to
local ("&") channels.

ircd-ratbox uses the ERR_USERNOTONSERV(504) numeric for this, and I
think this is a good idea -- other IRC daemons (like ircu) silently
drop such impossible invites, but thats not a big benefit ...

Idea by Cahata, thanks! Closes #183.

4 years agoINVITE command: Enforce 1 second penalty time
Alexander Barton [Sun, 12 Apr 2015 18:14:24 +0000 (20:14 +0200)]
INVITE command: Enforce 1 second penalty time

This prevents flooding of the target client.

This closes #186. Reported by Cahata, thanks!

4 years agoMODE command: Always report channel creation time
Alexander Barton [Sun, 12 Apr 2015 17:35:39 +0000 (19:35 +0200)]
MODE command: Always report channel creation time

Up to now when receiving a MODE command, ngIRCd only reported the channel
creation time to clients that were members of the channel. This patch
reports the channel creation time to all clients, regardless if they are
joined to that channel or not.

At least ircd-seven behaves like this.

This closes #188. Thanks Cahata!

4 years agoUpdate Xcode project for latest Xcode version (6.3)
Alexander Barton [Fri, 10 Apr 2015 20:30:17 +0000 (22:30 +0200)]
Update Xcode project for latest Xcode version (6.3)