1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00
Commit Graph

3578 Commits

Author SHA1 Message Date
Alexander Barton
f54fb9ee14 Update config.guess and config.sub to recent versions
- config.guess: 2023-08-22
- config.sub: 2023-09-19
2024-01-11 15:12:54 +01:00
Alexander Barton
a06f33d4e5 Channel Admins are not allowed to set Channel Owner status!
This was reported back in April 2021, thanks Sarah!

    Subject: NGIRCD bug report
    Date: April 28 2021, 14:30:08 MESZ
    To: alex@barton.de

    Hello,

    I am writing to you to report a bug in ngircd.
    In any give channel, if an user is with mode +a (admin), he/she can
    sets mode +/-q(owner) to any other user. This is not inline with the
    documentation.

    I've looked into the code irc-mode.c, apparently an if block is
    missing. Below are the code snippets that I believe fixes the bug.

This patch is what Sarah sent in. Thanks a lot!
2024-01-11 15:12:54 +01:00
Alexander Barton
5413518586 Convert the FAQ to Markdown and enhance it! 2024-01-11 15:12:54 +01:00
Alexander Barton
2877706660 Test suite: Update for OpenSSL 3.x 2024-01-11 15:12:54 +01:00
Alexander Barton
2448d047f9 Allow SSL client-only configurations without keys/certificates
You don't need to configure certificates/keys as long as you don't
configure SSL-enabled listening ports.

This can make sense when you want to only link your local daemon to an
uplink server using SSL and only have clients on your local host or in
you fully trusted network, where SSL is not required.
2024-01-11 15:12:54 +01:00
Alexander Barton
07219281ef Remove unmaintained contrib/MacOSX/ folder
This includes removing the Xcode project.

The sample launchd(8) configuration properties list file was moved to
"contrib/de.barton.ngircd.plist" and kept.
2024-01-11 15:12:48 +01:00
Alexander Barton
a5de81e489 QuickStart.md: Update title and fix Markdown syntax 2024-01-11 15:11:56 +01:00
Alexander Barton
9a71ac8a91 Update the project description, enhance & fix the README.md 2024-01-11 15:11:56 +01:00
Alexander Barton
0061394d7f 2024 =:) 2024-01-11 15:11:56 +01:00
Alexander Barton
bc7148f4ac Fix showing the "Ident" option in --configtest output
We tested for the wrong #define ... ooops!
2024-01-06 16:21:01 +01:00
Alexander Barton
f96966a62f Change GnuTLS "slot handling" messages to debug level
Those messages are about an internal implementation detail, not relevant
for an administrator of ngIRCd.
2024-01-06 16:21:01 +01:00
Alexander Barton
7c90264f1f Enlarge buffer for log messages
For example, SSL/TLS certificate information can easily get longer than
256 characters. So enlarge the log buffer to 1 KB.
2024-01-06 16:21:01 +01:00
Alexander Barton
21c1751b04 Respect "SSLConnect" option for incoming connections
Don't accept incoming plain-text ("non SSL") server connections for
servers configured with "SSLConnect" enabled.

If "SSLConnect" is not set for an incoming connection the server still
accepts both plain-text and encrypted connections.

This change prevents an authenticated client-server being able to force
the server-server to send its password on a plain-text connection when
SSL/TLS was intended.
2024-01-06 16:21:01 +01:00
Alexander Barton
843cbfc0f3 Always initiate closing a connection on errors.
Always try to close a connection with errors immediately, but try hard
to avoid too much recursion.

Without this patch, an outgoing server connection could get stuck in an
"endless" state trying to write out data over and over again.

This tries to fix 04de1423eb.
2024-01-06 16:21:01 +01:00
Alexander Barton
9540d0c0a4 Add "hopm.service" to "Wants" and "Before" dependencies in systemd unit file 2023-10-17 16:15:38 +02:00
Alexander Barton
f31d64eb1c Update Debian package configuration
This not only bumps the "compat" version, but updates the package
dependencies and build rules accordingly.

Closes #299.
2023-09-17 23:42:08 +02:00
Alexander Barton
4a548e1220 Update config.guess and config.sub to recent versions
- config.guess: 2022-01-09
- config.sub: 2022-01-03
2023-09-17 23:39:05 +02:00
Valentin Lorentz
0714466af8 Return ERR_NOTEXTTOSEND on empty PRIVMSG content
They are dropped further down the line anyway; and sending ERR_NOTEXTTOSEND
early matches other servers' behavior.
2023-09-17 22:25:40 +02:00
Alexander Barton
445e559dbd Update and enhance the manual pages a bit 2023-09-17 22:03:12 +02:00
Alexander Barton
8fdb8f90b1 Merge branch 'katp32/master'
Thanks Katherine Peeters for the patch and pull request!

Closes #294.

* katp32/master:
  Improve documentation for --syslog
  Added command line flag to enable syslog
  Split NoSyslog from behaviour of NoDaemon
2023-09-17 21:37:45 +02:00
Alexander Barton
a106d18d7d Conf_Test(): Use yesno_to_str() instead of individual tests and output 2023-09-17 20:28:52 +02:00
Alexander Barton
a7f448e713 Channel autojoin: Add missing variable in --configtest output 2023-09-17 20:27:14 +02:00
Alexander Barton
232c7382de Silence compiler warning in Init_New_Client()
Use strdup() instead of pointless strndup() to fix the following
compiler warning:

client.c: In function ‘Init_New_Client’:
client.c:216:32: warning: ‘strndup’ specified bound 127 exceeds source size 5 [-Wstringop-overread]
  216 |                 client->away = strndup(DEFAULT_AWAY_MSG, CLIENT_AWAY_LEN - 1);
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2023-09-17 20:16:35 +02:00
Alexander Barton
30ba325dde Various fixes and enhancements for the "Autojoin" patch
- Bring sample-ngircd.conf and ngircd.conf.5 description in line.
- Fix configuration parsing, it always showed the 'Unknown variable
  "Autojoin"' error message, even when everything was perfectly fine.
- And fix a build error (at least on macOS with Apple Clang 14):
    login.c:234:3: error: call to undeclared function 'IRC_JOIN'; ISO
    C99 and later do not support implicit function declarations
    [-Wimplicit-function-declaration]
       IRC_JOIN(Client, &Req);
       ^
  The #include for the "irc.channel.h" header was missing!
- Remove a unused variable that caused a compiler warning:
    login.c:222:12: warning: unused variable 'n' [-Wunused-variable]
       size_t i, n, channel_count = array_length(&Conf_Channels, sizeof(*conf_chan));
                 ^
- Add a explicit cast to fix a compiler warning:
    login.c:235:15: warning: assigning to 'char *' from 'const char[51]'
    discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
       Req.argv[0] = conf_chan->name;
                   ^ ~~~~~~~~~~~~~~~
2023-09-17 19:56:07 +02:00
Ivan Agarkov
cfd7d4288e Channel autojoin functionality 2023-09-16 12:40:33 +02:00
Alexander Barton
3b70f4ba0c 2023! 2023-08-03 14:22:53 +02:00
Alexander Barton
335ae4f0d0 Hide +i users on "WHOIS <pattern>"
Let's behave like most(?) other IRC daemons (at least ircd2.11) and hide
all +i users when WHOIS is used with a pattern. Otherwise privacy of
this users is not guaranteed and the +i mode a bit useless ...

Reported by Cahata on #ngircd, thanks!
2023-08-03 10:57:27 +02:00
Alexander Barton
63ad3b9acd Update the final "closing connection" message
Add some more information (nick name, user name, host name) and bring it
in line with some other implementations (at least ircd2.11 and Hybrid).
2023-07-18 11:45:01 +02:00
Alexander Barton
0035e0d778 Fix RPL_INVITING message: It must originate from the server
All numeric replies must originate from an IRC server, never from a
client. So fix the RPL_INVITING message!

Thanks tommyrot for reporting this!

Closes #307.
2023-07-18 11:42:07 +02:00
Alexander Barton
0f90a059b6 Enhance log messages for refused connections 2023-07-05 11:03:02 +02:00
Florian Weimer
0e678f766f configure.ng: Include <string.h> for memset in WORKING_GETADDRINFO probe
Otherwise, the probe always fails with compilers which do not
support implicit function declarations.
2023-02-05 21:35:40 +01:00
Alexander Barton
50114cd017 Add "+DEBUG" to the version string only when configured with --enable-debug
The debug log messages are always available and a runtime option (since
commit c7de505c), but the assert()'s are only active when ngIRCd was
configured with the "--enable-debug" option.

So only add "+DEBUG" to the version string when the latter is the case.
2023-01-02 23:51:15 +01:00
michi
c7de505c91 Make the debug loglevel always available
This basically means to unifdef DEBUG in (almost) all places.
We keep it in src/portab/portab.h so DEBUG stays available to
enable assert(). Also add a comment about this.
2023-01-02 22:39:16 +01:00
Alexander Barton
8e9c789ae1 Better validate MODE +k & +l parameters and return errors
Implement new numeric ERR_INVALIDMODEPARAM_MSG(696) and:

- Reject channel keys with spaces and return ERR_INVALIDMODEPARAM_MSG;
  This was possible until now and resulted in garbled IRC commands later.
- Reject empty channel keys and return ERR_INVALIDMODEPARAM_MSG;
  This was possible until now and resulted in garbled IRC commands later.
- Return ERR_INVALIDMODEPARAM_MSG when user limit is out of bounds;
  This was silently ignored until now.

Closes #290. Thanks Val Lorentz for reporting it!
2023-01-02 22:32:16 +01:00
Alexander Barton
3c9c54989e Channel modes +k & +l: Always report an error when a parameter is missing
This relates to #290 and considerations which errors to show when: and I
think it is the better approach to give feedback instead of silently
failing.

Note that this code path is also used when handling modes of channels
defined in "[Channel]" blocks in configuration files: in this case the
client is the local server and we can't send messages to it, because it
has no socket connection! Therefore we need those "is_machine" checks
and log an error im this case.
2023-01-02 21:48:42 +01:00
Alexander Barton
0ea1715d00 Refactor Channel_Mode(), get rid of some nesting
No functional changes.
2023-01-02 21:25:28 +01:00
michi
24f956abf7 Allow ircops to use WHO on any channel. 2023-01-02 21:17:29 +01:00
Alexander Barton
0652c99b39 Remove outdated macOS "Package Maker" configuration
The tool is unavailable for many macOS versions and many years, so
remove all related files.
2022-12-29 18:06:18 +01:00
Alexander Barton
a0576f4810 We no longer use Travis-CI, remove its configuration 2022-12-29 16:48:50 +01:00
Alexander Barton
1b186cf5a0
GitHub "ngIRCd CI" Action: Use sudo(8) when installing packages 2022-12-29 16:01:52 +01:00
Alexander Barton
b49bc98b83
Add "ngIRCd CI" GitHub Action 2022-12-29 15:58:19 +01:00
Alexander Barton
55744b1863 Refactor join_send_topic() into IRC_Send_Channel_Info() and use it for JOIN and NJOIN handlers
This reduces code duplication and brings the order of messages on JOIN
and NJOIN in line.

Fixes #288.
2022-12-27 16:42:06 +01:00
ewired
5ef1a657f4 Send NAMES list and channel topic to NJOIN'ed users
Send the NAMES list and channel topic to users "forcefully" joined to a
channel using NJOIN, like they joined on their own using JOIN.

Closes #288.
2022-12-26 17:45:44 +01:00
Alexander Barton
3e23f7d2c3 Channel mode setting: The local server is allowed to work on local channels
Don't forbid the local server to change modes on local channels: this
happens when overriding modes on local (&) channels in the server
configuration file, for example, and is perfectly fine.

Without this patch, the server worked as expected but showed critical
error messages for each local channel in its configuration file:

  "Got remote MODE command for local channel!? Ignored."
2022-12-26 17:32:59 +01:00
Alexander Barton
46081d619a Update Xcode project for latest Xcode version (14.2) 2022-12-25 15:54:59 +01:00
Alexander Barton
d605a0825a README.md: Update "status" section, remove "is being actively developed" ... 2022-12-25 15:20:00 +01:00
Alexander Barton
56ed5c90ad Spelling fixes, mostly in file comments 2022-12-25 15:16:31 +01:00
hello-smile6
7b30c352a1 Use "||" instead of "|" 2022-12-17 14:54:55 +01:00
9pfs
ea7ad914c8 Fix gline/kline with cloaked hostnames 2022-12-17 14:54:55 +01:00
Jules Maselbas
93e36555e3 Convert uses of Log(LOG_DEBUG, ...) to LogDebug() 2022-12-17 14:52:44 +01:00