1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-12-12 01:40:27 +00:00
ngIRCd IRC server.
Go to file
Alexander Barton 669d71f3fe Explicitly test for the empty string in Channel_UserHasMode()
Basically this is unnecessary, as Channel_UserModes() always returns a
valid pointer and strchr() can deal with an empty (NULL-terminated)
string perfectly fine, bit it makes the code a bit more obvious and
silences the following warning:

  In function ‘Channel_UserHasMode’,
      inlined from ‘Channel_Kick’ at channel.c:384:7:
  channel.c:784:16: warning: ‘strchr’ reading 1 or more bytes from a region
                    of size 0 [-Wstringop-overread]
    784 |         return strchr(Channel_UserModes(Chan, Client), Mode) != NULL;
        |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This was seen with "gcc (Debian 12.2.0-14) 12.2.0" at least.
2024-01-20 16:43:54 +01:00
.github/workflows GitHub "ngIRCd CI" Action: Use sudo(8) when installing packages 2022-12-29 16:01:52 +01:00
contrib Update the mailing list address to ngircd@lists.barton.de 2024-01-20 16:43:54 +01:00
doc Convert the AUTHORS file to Markdown 2024-01-20 16:43:54 +01:00
man Update and enhance the manual pages a bit 2023-09-17 22:03:12 +02:00
src Explicitly test for the empty string in Channel_UserHasMode() 2024-01-20 16:43:54 +01:00
.clang_complete Add ".clang_complete" file 2015-09-03 16:46:48 +02:00
.editorconfig Add an ".editorconfig" file to the project 2016-05-07 00:43:30 +02:00
.gitignore Git: Ignore generated files of SSL tests 2020-05-06 23:47:28 +02:00
.mailmap Add missing authors to AUTHORS, tweak ".mailmap" file 2020-05-10 00:16:11 +02:00
AUTHORS.md Update the AUTHORS.md file 2024-01-20 16:43:54 +01:00
autogen.sh autogen.sh: Prefere automake 1.11 over other releases 2024-01-16 22:32:33 +01:00
ChangeLog autogen.sh: Prefere automake 1.11 over other releases 2024-01-16 22:32:33 +01:00
config.guess Update config.guess and config.sub to recent versions 2024-01-11 15:12:54 +01:00
config.sub Update config.guess and config.sub to recent versions 2024-01-11 15:12:54 +01:00
configure.ng Update the mailing list address to ngircd@lists.barton.de 2024-01-20 16:43:54 +01:00
COPYING Update GPL 2 license text to current version 2011-11-06 21:53:15 +01:00
INSTALL.md Autodetect support for IPv6 by default 2024-01-16 22:32:33 +01:00
Makefile.am Convert the AUTHORS file to Markdown 2024-01-20 16:43:54 +01:00
NEWS 2024 =:) 2024-01-11 15:11:56 +01:00
README.md Update the mailing list address to ngircd@lists.barton.de 2024-01-20 16:43:54 +01:00

ngIRCd - Internet Relay Chat Server

Introduction

ngIRCd is a free, portable and lightweight Internet Relay Chat (IRC) server for small or private networks, developed under the terms of the GNU General Public License (GPL); please see the file COPYING for licensing information.

The server is quite easy to configure and runs as a single-node server or can be part of a network of ngIRCd servers in a LAN or across the internet. It optionally supports the IPv6 protocol, SSL/TLS-protected client-server and server-server links, the Pluggable Authentication Modules (PAM) system for user authentication, IDENT requests, and character set conversion for legacy clients.

The name ngIRCd stands for next-generation IRC daemon, which is a little bit exaggerated: lightweight Internet Relay Chat server most probably would have been a better name :-)

Please see the INSTALL.md document for installation and upgrade information, online available here: https://ngircd.barton.de/doc/INSTALL.md!

Status

Development of ngIRCd started back in 2001: The server has been written from scratch in C, tries to follow all relevant standards, and is not based on the forefather, the daemon of the IRCNet.

It is not the goal of ngIRCd to implement all the nasty behaviors of the original ircd or corner-cases in the RFCs, but to implement most of the useful commands and semantics that are used by existing clients.

ngIRCd is used as the daemon in real-world in-house and public IRC networks and included in the package repositories of various operating systems.

Features (or: why use ngIRCd?)

  • Well arranged (lean) configuration file.
  • Simple to build, install, configure, and maintain.
  • Supports IPv6 and SSL.
  • Can use PAM for user authentication.
  • Lots of popular user and channel modes are implemented.
  • Supports "cloaking" of users.
  • No problems with servers that have dynamic IP addresses.
  • Freely available, modern, portable and tidy C source.
  • Wide field of supported platforms, including AIX, A/UX, FreeBSD, HP-UX, IRIX, Linux, macOS, NetBSD, OpenBSD, Solaris and Windows with WSL or Cygwin.

Documentation

The homepage of the ngIRCd project is https://ngircd.barton.de.

Installation of ngIRCd is described in the file INSTALL.md in the source directory; please see the file doc/QuickStart.md in the doc/ directory for some configuration examples.

More documentation can be found in the doc/ directory and online.

Downloads & Source Code

You can find the latest information about the ngIRCd and the most recent stable release on the news and downloads pages of the homepage.

Visit our source code repository at GitHub if you are interested in the latest development code: https://github.com/ngircd/ngircd.

Problems, Bugs, Patches

Please don't hesitate to contact us if you encounter problems:

See https://ngircd.barton.de/support for details.

If you find any bugs in ngIRCd (which most probably will be there ...), please report them to our issue tracker at GitHub: