Commit Graph
3398 Commits
Author SHA1 Message Date
Alexander Barton 7f2d21f962 Update config.guess and config.sub to recent versions
- config.guess: 2018-03-08
- config.sub: 2018-03-08
2018-04-01 02:32:24 +02:00
Alexander Barton 6af9476cad Initialize listening socket: Streamline error message 2018-04-01 02:19:08 +02:00
Alexander Barton 263c5edb60 Update NEWS and ChangeLog files 2018-03-25 23:00:45 +02:00
Alexander Barton b4f7aae67e Correctly retry outgoing conenctions when forking a resolver failed
When ngIRCd failed to spawn a new resolver subprocess, the connection
structure was still marked as "SERVER_WAIT", and no new attempt to
connect to this server was made.

Thanks to Robert Obermeier for reporting this bug!

Closes #243.
2018-03-25 21:59:01 +02:00
Alexander Barton 798de94d65 Fix use-after-free while handling ERROR during client login
This patch fixes a "use after free" bug which is hit while processing
ERROR commands while a new client is logging into the server, which
leads to only the CLIENT structure becoming freed, but not the
CONNECTION structure, too. And this leads to the daemon accessing the
already freed CLIENT structure later on ...

So now IRC_ERROR() uses the correct function Conn_Close() to correctly
free both structures.

The CONNECTION structure is cleaned up later on, and the freed CLIENT
structure can't be overwritten during normal operations, therefore this
bug normally can't crash (DoS) the service -- but you can easily hit it
when using the GCC option "-fsanitize=address", or run ngIRCd with
Valgrind.

Thanks a lot to Joseph Bisch <joseph.bisch@gmail.com> for discovering
and reporting this issue!
2018-03-11 21:18:38 +01:00
Alexander Barton ac341176da Only send TOPIC updates to a channel when the topic actually changed
This prevents the channel from becoming flooded by unecessary TOPIC
update messages, that can happen when IRC services try to enforce a
certain topic but which is already set (at least on the local server),
for example. Therefore still forward it to all servers, but don't inform
local clients (still update setter and timestamp information, though!)
2018-03-11 21:01:45 +01:00
Alexander Barton 6a622c0084 Update Xcode project for latest Xcode version (9.2)
This includes adding missing and deleting obsolete file references.
2018-03-11 20:55:03 +01:00
Alexander Barton 91ef17aba2 Use .mailmap to fix spelling of Götz Hoffart 2018-02-25 21:44:14 +01:00
Alexander Barton 13761f1ec9 Little code cleanups, better comments 2018-02-25 21:43:39 +01:00
Alexander Barton 03acae970d User mode "C": Allow messages from servers, services, and IRC Ops
Update user mode "C" handling ("Only users that share a channel are
allowed to send messages") to behave like user mode "b" ("block private
messages and notices") and therefore allow messages from servers, services,
and IRC Operators, too.

Change proposed by "wowaname" in #ngircd, thanks!
2018-02-25 03:22:05 +01:00
Alexander Barton 8f0c705029 portab/Makefile: Split list into separate lines 2018-02-25 03:17:21 +01:00
Alexander Barton d803ff0525 configure.ng: Split list into separate lines 2018-02-25 03:17:21 +01:00
Alexander Barton 3559940e4a Update NEWS and ChangeLog files 2018-02-11 10:22:41 +01:00
Alexander Barton 34bdb0d98a 2018! 2018-02-09 22:02:21 +01:00
Alexander Barton 7ed22d0b22 Fix compiler warning in ForwardLookup()
When compiling without "working getaddrinfo()", the "af" parameter of
ForwardLookup() is unused by that function. Mark it as such!

This prevents the following compiler warning:

  resolve.c:235:56: warning: unused parameter ‘af’
    [-Wunused-parameter]
2018-01-29 23:34:40 +01:00
Alexander Barton d9f81ac669 Fix compiler warning in Option_String()
When compiling ngIRCd without support for SSL and without support for
ZLIB, gcc outputs the following warning:

  irc.c:493:9: warning: variable ‘options’ set but not used
    [-Wunused-but-set-variable]

Fix it by providing a dummy function in this case.
2018-01-29 23:32:06 +01:00
Alexander Barton 7207bef418 Fix Get_Error() usage, take II
This should fix the following compiler warning:

  resolve.c:113:1: warning: ‘Get_Error’ defined but not used
    [-Wunused-function]

Which can happen, because the logic of commit 543f44bf isn't sufficient:
Get_Error() is only used when neither HAVE_WORKING_GETADDRINFO nor
HAVE_GETNAMEINFO are set ...

Enhances 543f44bf.
Closes #241.
2018-01-29 23:30:53 +01:00
Alexander Barton 619a3f3ff2 contrib/ngircd.logcheck: Add sample logcheck(8) rules 2017-12-28 18:03:12 +01:00
Alexander BartonandGitHub 05640f9285 Allow IRC Ops and remote servers to KILL service clients (#242)
In the end, service clients behave like regular users, therefore IRC
operators and servers should be able to KILL them: for example to
resolve nick collisions.

This is related to #238.
2017-09-30 16:48:28 +02:00
James LuandAlexander Barton e009fc87d5 Don't forward KILLs to other servers if they've been blocked locally
This prevents clients from killing IRC services, for example.

Closes #238.
Closes #239.
2017-09-26 22:50:20 +02:00
Alexander Barton c37d6971d6 Update AUTHORS file 2017-09-23 13:54:39 +02:00
Alexander BartonandGitHub ddeb7b20eb Merge pull request #240 from bkuhls/fix_Get_Error
Fix Get_Error usage
2017-09-17 23:27:48 +02:00
Bernd Kuhls 543f44bff8 Fix Get_error usage
The usage of Get_Error is guarded by "ifdef h_errno" in this file, the
definition of this function should follow the same rules.

Fixes a build error when cross-compiling:
https://github.com/ngircd/ngircd/issues/223
2017-09-13 14:07:11 +02:00
Alexander Barton bc728f92de Update HowToRelease.txt
- Freshmeat is no more, and
- GitHub issues doesn't allow us to configure "releases".
2017-03-12 22:25:08 +01:00
Alexander Barton 2f6f6929d8 Services.txt: Show Atheme "name" in example configuration 2017-02-20 23:29:40 +01:00
Alexander Barton f244ab2219 Services.txt: Show ngIRCd "Name" in example configuration 2017-02-20 23:06:47 +01:00
Alexander Barton e17d4bdec7 ngIRCd Release 24 rel-24 2017-01-20 19:13:49 +01:00
Alexander Barton b2ba3e745a Platforms.txt: Add and update systems
- Update i386/unknown/freebsd7.3 (gcc 4.2.1)
- Update i386/unknown/netbsdelf4.0 (gcc 4.1.2)
- Update x86_64/apple/darwin16.3.0 (Apple clang 8.0)
- Update x86_64/unknown/freebsd8.4 (gcc 4.2.1)
- Update x86_64/pc/linux-gnu (gcc 4.4.5)
- Update x86_64/pc/linux-gnu (gcc 4.8.4)
- Update x86_64/pc/linux-gnu (gcc 4.9.2)
- Update x86_64/pc/linux-gnu (gcc 6.2.1)
- Add x86_64/pc/linux-gnu (gcc 6.3.1)
2017-01-20 19:12:05 +01:00
Alexander Barton 3890304b54 Make sure that platformtest.sh aborts when autogen.sh fails 2017-01-20 17:24:28 +01:00
Alexander Barton a69866f3f9 Specify Debian "source format" 2017-01-20 16:08:46 +01:00
Alexander Barton 7071476d2a Update config.guess and config.sub to recent versions
- config.guess: 2016-10-02
- config.sub: 2016-11-04
2017-01-20 16:05:46 +01:00
Alexander Barton 3c627dd70d Build Debian packages with OpenSSL instead of GnuTLS
OpenSSL allows to reload used certificates on runtime for example (which
is very useful when using Let's Encrypt), and therefore is preferred ...
2017-01-20 16:04:53 +01:00
Alexander Barton 879d550408 Fix handling of connection pool allocation and enlargement
The daemon only enlarged its connection pool when accepting new client
connections, not when establishing new outgoing server links.

Thanks to Lukas Braun (k00mi) for reporting this!

In addition this patch streamlines the connection pool allocation, so
that there is only one place in the code allocating the pool: the now
updated Socket2Index() function. The name doesn't quite fit, but this
existing and today quite useless function (because the mapping from
socket number to connection index is 1:1 today) already became called
in almost all relevant code paths, so I decided to reuse it to keep the
patch small ...probably we want to fix the naming in a second patch?

Closes #231.
2017-01-19 00:06:46 +01:00
Alexander Barton 2bb917f05a 2017! 2017-01-15 22:07:11 +01:00
Alexander Barton 72acf53d69 Update doc/RFC.txt, add RFC 7194 2017-01-15 21:25:07 +01:00
Alexander Barton 479d7d99c1 ngIRCd Release 24~rc1 rel-24-rc1 2017-01-08 02:15:52 +01:00
Alexander Barton 181da30997 Debian: Use "dh_prep" instead deprecated "dh_clean -k" 2017-01-08 02:15:52 +01:00
Alexander Barton bfebdaece8 ngircd.conf.5.tmpl: Fix spelling
Thanks to Christoph Biedl.
2017-01-07 15:52:23 +01:00
Alexander Barton d2a134b79c Platforms.txt: Add and update systems
- Add x86_64/apple/darwin16.3.0 (Apple clang 8.0)
- Update x86_64/pc/linux-gnu (gcc 4.9.2)
- Add x86_64/pc/linux-gnu (gcc 6.2.1.)
2017-01-06 22:51:46 +01:00
Alexander Barton 74f021fb44 Further enhance systemd unit file
- Add more comments/documentation.
- Add dependencies for services and proxy scanners.
- Add more limit configurations.
- Allow AF_UNIX address family, required for syslog!
2017-01-06 22:50:24 +01:00
Alexander Barton 8e09180295 Install systemd service file in Debian package 2017-01-06 00:38:05 +01:00
Alexander Barton f0532c98cd Enhance systemd service file
- Add homepage :-)
- Remote CAP_SETUID and CAP_SETGID from CapabilityBoundingSet: This is
  nor needed, because the unit already sets User=irc and Group=irc.
- Add RestrictAddressFamilies, and restrict it to AF_INET and AF_INET6.
- Read in the Debian "default files", but note: only PARAMS is supported!
2017-01-06 00:34:51 +01:00
Alexander Barton 9e0e955daf Update Debian package
- Update debhelper compatibility to version 9.
- Update build-dependencies.
- Change group of ngircd.conf to "irc" in postinst script (this makes
  starting ngIRCd as user "irc" easier, for example when using systemd).
- Don't create /var/run/ircd during installation: this is handled by the
  SysV init script and the systemd service already.
2017-01-06 00:30:43 +01:00
Alexander Barton 3e44738416 Update NEWS and ChangeLog files 2016-12-11 00:15:50 +01:00
Alexander Barton 02c8887543 Log privilege violations and failed OPER as "error" and to &server 2016-12-08 01:34:33 +01:00
Alexander Barton 77861f6fe2 Immediately shut down connection on receiving ERROR
Don't wait for the peer to close the connection. This allows us to
forward the ERROR mesage in the network, instead of the very generic
"client closed connection" message.
2016-12-08 01:01:40 +01:00
Alexander Barton e9e3df27b7 Xcode: Fix "duplicate symbols" error in current Xcode 2016-12-08 00:56:39 +01:00
Alexander Barton 0dc3c13469 x-Line synchronization: Don't send negative durations 2016-12-08 00:22:05 +01:00
Alexander Barton d0d4de4980 List expiration: use same log level as when setting
And log this event to the &SERVER channel, too.
2016-12-08 00:20:38 +01:00
Alexander Barton 85df414907 Remove leftover debug message. Oops! 2016-12-08 00:18:57 +01:00