mirror of
https://github.com/osmarks/ngircd.git
synced 2025-10-05 10:12:22 +00:00
Compare commits
14 Commits
rel-26-rc1
...
rel-26-rc2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4bcf4613f9 | ||
![]() |
c55a832806 | ||
![]() |
3dedd57f7f | ||
![]() |
07cb8ed9ae | ||
![]() |
b003d469f1 | ||
![]() |
15c7444283 | ||
![]() |
eb46f3d96d | ||
![]() |
a84cba8f78 | ||
![]() |
d697de3186 | ||
![]() |
02cf31c0e2 | ||
![]() |
430bb22376 | ||
![]() |
dc6807338e | ||
![]() |
0d503945cb | ||
![]() |
bae68eb612 |
29
ChangeLog
29
ChangeLog
@@ -10,6 +10,31 @@
|
|||||||
|
|
||||||
ngIRCd 26
|
ngIRCd 26
|
||||||
|
|
||||||
|
ngIRCd 26~rc2 (2020-06-11)
|
||||||
|
- Add AppStream metadata file (contrib/de.barton.ngircd.metainfo.xml).
|
||||||
|
- Don't send invalid CHANINFO commands when a channel has mode +k set but no
|
||||||
|
key is known to the server. This can happen with a misconfigured predefined
|
||||||
|
channel, for example, and looked like this: "CHANINFO #test +Pk 0 :" --
|
||||||
|
note the unset key represented by the two spaces. Fix this by sending a
|
||||||
|
"*" in this case and update the CHANINFO documentation, too.
|
||||||
|
- ngircd.spec: Fix names of README.md and INSTALL.md, add ".md" extension.
|
||||||
|
- Update description texts in the README.md file, the RPM and Debian package
|
||||||
|
files and the manual page: bring them in line with the updated homepage.
|
||||||
|
- Server-Server protocol: Fix use-after-free when unregistering a directly
|
||||||
|
connected server sending a SQUIT for itself.
|
||||||
|
- Server-Server protocol: Detect bogus SERVER commands lacking a prefix.
|
||||||
|
Thanks Hilko Bengen (hillu) for finding & reporting this as well for the
|
||||||
|
patch & pull request (even if fixed differently).
|
||||||
|
Closes #275.
|
||||||
|
- Fix the PING-PONG logic: In ngIRCd 26~rc1 this was completely broken (while
|
||||||
|
trying to fix timeouts during server handshakes in bigger networks): the
|
||||||
|
daemon never disconnected any stale peers but kept sending out PINGs over
|
||||||
|
and over again ...
|
||||||
|
- Test suite: Add missing files needed to test SSL support to "EXTRA_DIST",
|
||||||
|
so that they are included in distribution archives: in rc1, "make check"
|
||||||
|
fails when using sources from an archive and enabling SSL support.
|
||||||
|
Thanks to Hilko Bengen <bengen@hilluzination.de> for the patch!
|
||||||
|
|
||||||
ngIRCd 26~rc1 (2020-05-10)
|
ngIRCd 26~rc1 (2020-05-10)
|
||||||
- Tweak & update doc/HowToRelease.txt, .mailmap and AUTHORS files.
|
- Tweak & update doc/HowToRelease.txt, .mailmap and AUTHORS files.
|
||||||
- Allow up to 512 characters per line in MOTD and help text files (but keep
|
- Allow up to 512 characters per line in MOTD and help text files (but keep
|
||||||
@@ -25,9 +50,9 @@ ngIRCd 26
|
|||||||
this/those command(s) to be handled first and don't try to read even more
|
this/those command(s) to be handled first and don't try to read even more
|
||||||
data from the network (which most probably would overflow the read buffer
|
data from the network (which most probably would overflow the read buffer
|
||||||
of this connection soon).
|
of this connection soon).
|
||||||
- Update Travis-CI configuration, "sudo" is depreacted.
|
- Update Travis-CI configuration, "sudo" is deprecated.
|
||||||
- Log G-/K-Line changes only when not initiated by a server: this prevents
|
- Log G-/K-Line changes only when not initiated by a server: this prevents
|
||||||
the log from becomming spammed during "net bursts".
|
the log from becoming spammed during "net bursts".
|
||||||
- Update test suite to include SSL tests, including checking for reloading
|
- Update test suite to include SSL tests, including checking for reloading
|
||||||
certificates during runtime.
|
certificates during runtime.
|
||||||
- Makefile.am: Replace "make" with "${MAKE}". This fixes warnings like this:
|
- Makefile.am: Replace "make" with "${MAKE}". This fixes warnings like this:
|
||||||
|
8
NEWS
8
NEWS
@@ -10,6 +10,10 @@
|
|||||||
|
|
||||||
ngIRCd 26
|
ngIRCd 26
|
||||||
|
|
||||||
|
ngIRCd 26~rc2 (2020-06-11)
|
||||||
|
- Add AppStream metadata file (contrib/de.barton.ngircd.metainfo.xml).
|
||||||
|
- Various bug fixes, see the ChangeLog. No new or changed functionality.
|
||||||
|
|
||||||
ngIRCd 26~rc1 (2020-05-10)
|
ngIRCd 26~rc1 (2020-05-10)
|
||||||
- Allow up to 512 characters per line in MOTD and help text files (but keep
|
- Allow up to 512 characters per line in MOTD and help text files (but keep
|
||||||
in mind that lines can't get that long, because they have to be prefixed
|
in mind that lines can't get that long, because they have to be prefixed
|
||||||
@@ -25,7 +29,7 @@ ngIRCd 26
|
|||||||
data from the network (which most probably would overflow the read buffer
|
data from the network (which most probably would overflow the read buffer
|
||||||
of this connection soon).
|
of this connection soon).
|
||||||
- Log G-/K-Line changes only when not initiated by a server: this prevents
|
- Log G-/K-Line changes only when not initiated by a server: this prevents
|
||||||
the log from becomming spammed during "net bursts".
|
the log from becoming spammed during "net bursts".
|
||||||
- Update test suite to include SSL tests, including checking for reloading
|
- Update test suite to include SSL tests, including checking for reloading
|
||||||
certificates during runtime.
|
certificates during runtime.
|
||||||
- Add support for GnuTLS certificate reload, which is quite handy when using
|
- Add support for GnuTLS certificate reload, which is quite handy when using
|
||||||
@@ -90,7 +94,7 @@ ngIRCd 25 (2019-01-23)
|
|||||||
|
|
||||||
ngIRCd 25~rc1 (2018-08-11)
|
ngIRCd 25~rc1 (2018-08-11)
|
||||||
- Only send TOPIC updates to a channel when the topic actually changed:
|
- Only send TOPIC updates to a channel when the topic actually changed:
|
||||||
This prevents the channel from becoming flooded by unecessary TOPIC update
|
This prevents the channel from becoming flooded by unnecessary TOPIC update
|
||||||
messages, that can happen when IRC services try to enforce a certain topic
|
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.
|
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
|
Therefore still forward it to all servers, but don't inform local clients
|
||||||
|
14
README.md
14
README.md
@@ -7,11 +7,13 @@ server for small or private networks, developed under the terms of the GNU
|
|||||||
General Public License ([GPL]); please see the file `COPYING` for licensing
|
General Public License ([GPL]); please see the file `COPYING` for licensing
|
||||||
information.
|
information.
|
||||||
|
|
||||||
The server is simple to configure, can cope with dynamic IP addresses, and
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
supports IPv6 as well as SSL. It is written from scratch and not based on the
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
original IRCd.
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the "forefather", the
|
||||||
|
daemon of the IRCNet.
|
||||||
|
|
||||||
The name ngIRCd means *next generation IRC daemon*, which is a little bit
|
The name ngIRCd means *next-generation IRC daemon*, which is a little bit
|
||||||
exaggerated: *lightweight Internet Relay Chat server* most probably would have
|
exaggerated: *lightweight Internet Relay Chat server* most probably would have
|
||||||
been a better name :-)
|
been a better name :-)
|
||||||
|
|
||||||
@@ -20,8 +22,8 @@ online available here: <https://ngircd.barton.de/doc/INSTALL.md>!
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
ngIRCd should be quite feature complete and stable to be used as daemon in
|
ngIRCd should be quite feature-complete and stable to be used as a daemon in
|
||||||
real world IRC networks.
|
real-world IRC networks.
|
||||||
|
|
||||||
It is not the goal of ngIRCd to implement all the nasty behaviors of the
|
It is not the goal of ngIRCd to implement all the nasty behaviors of the
|
||||||
original ircd, but to implement most of the useful commands and semantics
|
original ircd, but to implement most of the useful commands and semantics
|
||||||
|
@@ -1,3 +1,9 @@
|
|||||||
|
ngircd (26~rc2-0ab1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New "upstream" release candidate 2 for ngIRCd Release 26.
|
||||||
|
|
||||||
|
-- Alexander Barton <alex@barton.de> Thu, 11 Jun 2020 17:21:17 +0200
|
||||||
|
|
||||||
ngircd (26~rc1-0ab1) unstable; urgency=low
|
ngircd (26~rc1-0ab1) unstable; urgency=low
|
||||||
|
|
||||||
* New "upstream" release candidate 1 for ngIRCd Release 26.
|
* New "upstream" release candidate 1 for ngIRCd Release 26.
|
||||||
|
@@ -19,16 +19,21 @@ Architecture: any
|
|||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||||
Provides: ircd
|
Provides: ircd
|
||||||
Description: lightweight Internet Relay Chat server
|
Description: lightweight Internet Relay Chat server
|
||||||
This package provides ngIRCd, a portable and lightweight Internet Relay
|
ngIRCd is a free, portable and lightweight Internet Relay Chat server
|
||||||
Chat server for small or private networks, developed under the GNU
|
for small or private networks, developed under the GNU General Public
|
||||||
General Public License (GPL). It is simple to configure, can cope with
|
License (GPL).
|
||||||
dynamic IP addresses, and supports IPv6 as well as SSL. It is written
|
.
|
||||||
from scratch and not based on the original IRCd.
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the "forefather", the
|
||||||
|
daemon of IRCNet.
|
||||||
.
|
.
|
||||||
This package contains the "standard distribution", including support for
|
This package contains the "standard distribution", including support for
|
||||||
syslog logging and compressed server-links using zlib. Please have a look
|
syslog logging and compressed server-links using zlib. Please have a look
|
||||||
at the "ngircd-full" package if you need advanced functionality like support
|
at the "ngircd-full" package if you need "more advanced" functionality like
|
||||||
for IPv6 or SSL.
|
support for TCP wrappers, IDENT requests, the IPv6 protocol, PAM and
|
||||||
|
SSL encrypted client and server links.
|
||||||
|
|
||||||
Package: ngircd-full
|
Package: ngircd-full
|
||||||
Architecture: any
|
Architecture: any
|
||||||
@@ -36,14 +41,18 @@ Depends: ${shlibs:Depends}, ${misc:Depends}
|
|||||||
Provides: ircd
|
Provides: ircd
|
||||||
Conflicts: ngircd, ngircd-dbg
|
Conflicts: ngircd, ngircd-dbg
|
||||||
Description: lightweight Internet Relay Chat server
|
Description: lightweight Internet Relay Chat server
|
||||||
This package provides ngIRCd, a portable and lightweight Internet Relay
|
ngIRCd is a free, portable and lightweight Internet Relay Chat server
|
||||||
Chat server for small or private networks, developed under the GNU
|
for small or private networks, developed under the GNU General Public
|
||||||
General Public License (GPL). It is simple to configure, can cope with
|
License (GPL).
|
||||||
dynamic IP addresses, and supports IPv6 as well as SSL. It is written
|
.
|
||||||
from scratch and not based on the original IRCd.
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the "forefather", the
|
||||||
|
daemon of IRCNet.
|
||||||
.
|
.
|
||||||
In addition to the features of the "standard package", this package
|
In addition to the features of the "standard package", this package
|
||||||
includes support for TCP wrappers, IDENT requests, the IPv6 protocol and
|
includes support for TCP wrappers, IDENT requests, the IPv6 protocol, PAM and
|
||||||
SSL encrypted client and server links.
|
SSL encrypted client and server links.
|
||||||
|
|
||||||
Package: ngircd-full-dbg
|
Package: ngircd-full-dbg
|
||||||
@@ -52,14 +61,18 @@ Depends: ${shlibs:Depends}, ${misc:Depends}
|
|||||||
Provides: ircd
|
Provides: ircd
|
||||||
Conflicts: ngircd, ngircd-full
|
Conflicts: ngircd, ngircd-full
|
||||||
Description: lightweight Internet Relay Chat server
|
Description: lightweight Internet Relay Chat server
|
||||||
This package provides ngIRCd, a portable and lightweight Internet Relay
|
ngIRCd is a free, portable and lightweight Internet Relay Chat server
|
||||||
Chat server for small or private networks, developed under the GNU
|
for small or private networks, developed under the GNU General Public
|
||||||
General Public License (GPL). It is simple to configure, can cope with
|
License (GPL).
|
||||||
dynamic IP addresses, and supports IPv6 as well as SSL. It is written
|
.
|
||||||
from scratch and not based on the original IRCd.
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the "forefather", the
|
||||||
|
daemon of IRCNet.
|
||||||
.
|
.
|
||||||
In addition to the features of the "standard package", this package
|
In addition to the features of the "standard package", this package
|
||||||
includes support for TCP wrappers, IDENT requests, the IPv6 protocol and
|
includes support for TCP wrappers, IDENT requests, the IPv6 protocol, PAM and
|
||||||
SSL encrypted client and server links.
|
SSL encrypted client and server links.
|
||||||
.
|
.
|
||||||
And in addition to the "full" variant, the binaries contained in this
|
And in addition to the "full" variant, the binaries contained in this
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
SUBDIRS = Debian MacOSX
|
SUBDIRS = Debian MacOSX
|
||||||
|
|
||||||
EXTRA_DIST = README \
|
EXTRA_DIST = README \
|
||||||
|
de.barton.ngircd.metainfo.xml \
|
||||||
ngindent.sh \
|
ngindent.sh \
|
||||||
ngircd-bsd.sh \
|
ngircd-bsd.sh \
|
||||||
ngIRCd-Logo.gif \
|
ngIRCd-Logo.gif \
|
||||||
|
@@ -18,6 +18,9 @@ MacOSX/
|
|||||||
- Project files for XCode, the "project builder" of Apple Mac OS X.
|
- Project files for XCode, the "project builder" of Apple Mac OS X.
|
||||||
- de.barton.ngircd.plist[.tmpl]: launchd(8) property list.
|
- de.barton.ngircd.plist[.tmpl]: launchd(8) property list.
|
||||||
|
|
||||||
|
de.barton.ngircd.metainfo.xml
|
||||||
|
- AppStream metadata file.
|
||||||
|
|
||||||
ngindent.sh
|
ngindent.sh
|
||||||
- Script to indent the code of ngIRCd in the "standard way".
|
- Script to indent the code of ngIRCd in the "standard way".
|
||||||
|
|
||||||
|
125
contrib/de.barton.ngircd.metainfo.xml
Normal file
125
contrib/de.barton.ngircd.metainfo.xml
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<component type="service">
|
||||||
|
<id>de.barton.ngircd</id>
|
||||||
|
<name>ngIRCd</name>
|
||||||
|
<summary>Lightweight Internet Relay Chat server</summary>
|
||||||
|
<metadata_license>MIT</metadata_license>
|
||||||
|
<project_license>GPL-2.0-or-later</project_license>
|
||||||
|
<developer_name>Alexander Barton and Contributors</developer_name>
|
||||||
|
<update_contact>alex@barton.de</update_contact>
|
||||||
|
<description>
|
||||||
|
<p>ngIRCd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL).</p>
|
||||||
|
<p>The server is quite easy to configure, can handle dynamic IP addresses, and optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for user authentication as well as character set conversion for legacy clients. The server has been written from scratch and is not based on the "forefather", the daemon of the IRCNet.</p>
|
||||||
|
<p>The name ngIRCd means next-generation IRC daemon, which is a little bit exaggerated: lightweight Internet Relay Chat server most probably would have been a better name :-)</p>
|
||||||
|
</description>
|
||||||
|
<icon type="remote" width="300" height="300">https://ngircd.barton.de/common/ngircd-300x300.png</icon>
|
||||||
|
<categories>
|
||||||
|
<category>Network</category>
|
||||||
|
</categories>
|
||||||
|
<url type="homepage">https://ngircd.barton.de</url>
|
||||||
|
<url type="bugtracker">https://ngircd.barton.de/bugtracker</url>
|
||||||
|
<url type="help">https://ngircd.barton.de/support</url>
|
||||||
|
<provides>
|
||||||
|
<binary>ngircd</binary>
|
||||||
|
</provides>
|
||||||
|
<launchable type="service">ngircd</launchable>
|
||||||
|
<releases>
|
||||||
|
<release version="26~rc2" date="2020-06-11" type="development" />
|
||||||
|
<release version="26~rc1" date="2020-05-10" type="development" />
|
||||||
|
<release version="25" date="2019-01-23" />
|
||||||
|
<release version="25~rc1" date="2018-08-11" type="development" />
|
||||||
|
<release version="24" date="2017-01-20" />
|
||||||
|
<release version="24~rc1" date="2017-01-07" type="development" />
|
||||||
|
<release version="23" date="2015-11-16" />
|
||||||
|
<release version="23~rc1" date="2015-09-06" type="development" />
|
||||||
|
<release version="22.1" date="2015-04-06" />
|
||||||
|
<release version="22" date="2014-10-11" />
|
||||||
|
<release version="22~rc1" date="2014-09-29" type="development" />
|
||||||
|
<release version="21.1" date="2014-03-25" />
|
||||||
|
<release version="21" date="2013-10-30" />
|
||||||
|
<release version="21~rc2" date="2013-10-20" type="development" />
|
||||||
|
<release version="21~rc1" date="2013-10-05" type="development" />
|
||||||
|
<release version="20.3" date="2013-08-23" />
|
||||||
|
<release version="20.2" date="2013-02-15" />
|
||||||
|
<release version="20.1" date="2013-01-02" />
|
||||||
|
<release version="20" date="2012-12-17" />
|
||||||
|
<release version="20~rc2" date="2012-12-02" type="development" />
|
||||||
|
<release version="20~rc1" date="2012-11-11" type="development" />
|
||||||
|
<release version="19.2" date="2012-06-19" />
|
||||||
|
<release version="19.2~rc1" date="2012-06-13" type="development" />
|
||||||
|
<release version="19.1" date="2012-03-19" />
|
||||||
|
<release version="19" date="2012-02-29" />
|
||||||
|
<release version="19~rc1" date="2012-02-12" type="development" />
|
||||||
|
<release version="18" date="2011-07-10" />
|
||||||
|
<release version="18~rc2" date="2011-06-29" type="development" />
|
||||||
|
<release version="18~rc1" date="2011-06-27" type="development" />
|
||||||
|
<release version="17.1" date="2010-12-19" />
|
||||||
|
<release version="17" date="2010-11-07" />
|
||||||
|
<release version="17~rc3" date="2010-10-27" type="development" />
|
||||||
|
<release version="17~rc2" date="2010-10-25" type="development" />
|
||||||
|
<release version="17~rc1" date="2010-10-11" type="development" />
|
||||||
|
<release version="16" date="2010-05-02" />
|
||||||
|
<release version="16~rc2" date="2010-04-25" type="development" />
|
||||||
|
<release version="16~rc1" date="2010-03-25" type="development" />
|
||||||
|
<release version="15" date="2009-11-07" />
|
||||||
|
<release version="15~rc1" date="2009-10-15" type="development" />
|
||||||
|
<release version="14.1" date="2009-05-05" />
|
||||||
|
<release version="14" date="2009-04-20" />
|
||||||
|
<release version="14~rc1" date="2009-03-29" type="development" />
|
||||||
|
<release version="13" date="2008-12-25" />
|
||||||
|
<release version="0.12.1" date="2008-07-09" />
|
||||||
|
<release version="0.12.0" date="2008-05-13" />
|
||||||
|
<release version="0.12.0-pre2" date="2008-04-29" type="development" />
|
||||||
|
<release version="0.12.0-pre1" date="2008-04-20" type="development" />
|
||||||
|
<release version="0.11.1" date="2008-02-26" />
|
||||||
|
<release version="0.11.0" date="2008-01-15" />
|
||||||
|
<release version="0.11.0-pre2" date="2008-01-07" type="development" />
|
||||||
|
<release version="0.11.0-pre1" date="2008-01-02" type="development" />
|
||||||
|
<release version="0.10.4" date="2008-01-07" />
|
||||||
|
<release version="0.10.3" date="2007-08-01" />
|
||||||
|
<release version="0.10.2" date="2007-06-08" />
|
||||||
|
<release version="0.10.2-pre2" date="2007-05-19" type="development" />
|
||||||
|
<release version="0.10.2-pre1" date="2007-05-05" type="development" />
|
||||||
|
<release version="0.10.1" date="2006-12-17" />
|
||||||
|
<release version="0.10.0" date="2006-10-01" />
|
||||||
|
<release version="0.10.0-pre2" date="2006-09-09" type="development" />
|
||||||
|
<release version="0.10.0-pre1" date="2006-08-02" type="development" />
|
||||||
|
<release version="0.9.2" date="2005-10-15" />
|
||||||
|
<release version="0.9.1" date="2005-08-03" />
|
||||||
|
<release version="0.9.0" date="2005-07-24" />
|
||||||
|
<release version="0.9.0-pre1" date="2005-07-09" type="development" />
|
||||||
|
<release version="0.8.3" date="2005-02-03" />
|
||||||
|
<release version="0.8.2" date="2005-01-26" />
|
||||||
|
<release version="0.8.1" date="2004-12-25" />
|
||||||
|
<release version="0.8.0" date="2004-06-26" />
|
||||||
|
<release version="0.8.0-pre1" date="2004-05-07" type="development" />
|
||||||
|
<release version="0.7.7" date="2004-02-05" />
|
||||||
|
<release version="0.7.6" date="2003-12-05" />
|
||||||
|
<release version="0.7.5" date="2003-11-07" />
|
||||||
|
<release version="0.7.1" date="2003-07-18" />
|
||||||
|
<release version="0.7.0" date="2003-05-01" />
|
||||||
|
<release version="0.7.0-pre2" date="2003-04-27" type="development" />
|
||||||
|
<release version="0.7.0-pre1" date="2003-04-22" type="development" />
|
||||||
|
<release version="0.6.0" date="2002-12-24" />
|
||||||
|
<release version="0.6.0-pre2" date="2002-12-23" type="development" />
|
||||||
|
<release version="0.6.0-pre1" date="2002-12-18" type="development" />
|
||||||
|
<release version="0.5.4" date="2002-11-24" />
|
||||||
|
<release version="0.5.3" date="2002-11-08" />
|
||||||
|
<release version="0.5.2" date="2002-10-04" />
|
||||||
|
<release version="0.5.1" date="2002-10-03" />
|
||||||
|
<release version="0.5.0" date="2002-09-20" />
|
||||||
|
<release version="0.5.0-pre2" date="2002-09-17" type="development" />
|
||||||
|
<release version="0.5.0-pre1" date="2002-09-16" type="development" />
|
||||||
|
<release version="0.4.3" date="2002-06-11" />
|
||||||
|
<release version="0.4.2" date="2002-04-29" />
|
||||||
|
<release version="0.4.1" date="2002-04-08" />
|
||||||
|
<release version="0.4.0" date="2002-04-01" />
|
||||||
|
<release version="0.3.0" date="2002-03-02" />
|
||||||
|
<release version="0.2.1" date="2002-02-17" />
|
||||||
|
<release version="0.2.0" date="2002-02-15" />
|
||||||
|
<release version="0.1.0" date="2002-01-29" />
|
||||||
|
<release version="0.0.3" date="2002-01-16" />
|
||||||
|
<release version="0.0.2" date="2002-01-06" />
|
||||||
|
<release version="0.0.1" date="2001-12-31" />
|
||||||
|
</releases>
|
||||||
|
</component>
|
@@ -1,5 +1,5 @@
|
|||||||
%define name ngircd
|
%define name ngircd
|
||||||
%define version 26~rc1
|
%define version 26~rc2
|
||||||
%define release 1
|
%define release 1
|
||||||
%define prefix %{_prefix}
|
%define prefix %{_prefix}
|
||||||
|
|
||||||
@@ -15,19 +15,15 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|||||||
BuildRequires: zlib-devel, openssl-devel
|
BuildRequires: zlib-devel, openssl-devel
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package provides ngIRCd, a portable and lightweight Internet Relay
|
ngIRCd is a free, portable and lightweight Internet Relay Chat server for small
|
||||||
Chat server for small or private networks, developed under the GNU
|
or private networks, developed under the GNU General Public License (GPL).
|
||||||
General Public License (GPL). It is simple to configure, can cope with
|
|
||||||
dynamic IP addresses, and supports IPv6 as well as SSL. It is written
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
from scratch and not based on the original IRCd.
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the forefather, the
|
||||||
|
daemon of IRCNet.
|
||||||
|
|
||||||
Advantages:
|
|
||||||
- well arranged (lean) configuration file
|
|
||||||
- simple to build/install, configure and maintain
|
|
||||||
- supports IPv6 and SSL
|
|
||||||
- no problems with servers that have dynamic IP addresses
|
|
||||||
- freely available, modern, portable and tidy C-source
|
|
||||||
- ngIRCd is being actively developed since 2001
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
@@ -54,7 +50,7 @@ make %{?_smp_mflags}
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(755,root,root)
|
%defattr(755,root,root)
|
||||||
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README doc/*
|
%doc AUTHORS COPYING ChangeLog INSTALL.md NEWS README.md doc/*
|
||||||
%config(noreplace) /etc
|
%config(noreplace) /etc
|
||||||
%{_prefix}/sbin
|
%{_prefix}/sbin
|
||||||
%{_mandir}/man5/ngircd.conf*
|
%{_mandir}/man5/ngircd.conf*
|
||||||
|
@@ -874,6 +874,10 @@ Server Protocol Commands
|
|||||||
CHANINFO is used by servers to inform each other about a channel:
|
CHANINFO is used by servers to inform each other about a channel:
|
||||||
its modes, channel key, user limits and its topic.
|
its modes, channel key, user limits and its topic.
|
||||||
.
|
.
|
||||||
|
Note: even when <modes> don't include "k" (key) or "l" (limit), both
|
||||||
|
parameters must be given when used; use "*" for "no key" and 0 for
|
||||||
|
"no limit" for the unused parameter in this case.
|
||||||
|
.
|
||||||
The CHANINFO command is allowed on server-links only.
|
The CHANINFO command is allowed on server-links only.
|
||||||
|
|
||||||
References:
|
References:
|
||||||
|
@@ -55,6 +55,7 @@ c) Update the files describing the new release:
|
|||||||
- NEWS
|
- NEWS
|
||||||
|
|
||||||
d) Update the version numbers in the following files:
|
d) Update the version numbers in the following files:
|
||||||
|
- contrib/de.barton.ngircd.metainfo.xml
|
||||||
- contrib/ngircd.spec
|
- contrib/ngircd.spec
|
||||||
|
|
||||||
e) Generate a new Debian change log entry in the following file, e.g. using
|
e) Generate a new Debian change log entry in the following file, e.g. using
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
ngIRCd - Next Generation IRC Server
|
ngIRCd - Next Generation IRC Server
|
||||||
http://ngircd.barton.de/
|
http://ngircd.barton.de/
|
||||||
|
|
||||||
(c)2001-2019 Alexander Barton and Contributors.
|
(c)2001-2020 Alexander Barton and Contributors.
|
||||||
ngIRCd is free software and published under the
|
ngIRCd is free software and published under the
|
||||||
terms of the GNU General Public License.
|
terms of the GNU General Public License.
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@ x86_64/apple/darwin15.6.0 A-clang 8.0 23~38-g455 16-11-04 alex Y Y Y Y 3
|
|||||||
x86_64/apple/darwin16.5.0 A-clang 8.1 25~rc1-7-g 18-11-04 alex Y Y Y Y 3
|
x86_64/apple/darwin16.5.0 A-clang 8.1 25~rc1-7-g 18-11-04 alex Y Y Y Y 3
|
||||||
x86_64/apple/darwin17.7.0 A-clang 10.0 25~rc1 18-11-04 alex Y Y Y Y 3
|
x86_64/apple/darwin17.7.0 A-clang 10.0 25~rc1 18-11-04 alex Y Y Y Y 3
|
||||||
x86_64/apple/darwin18.2.0 A-clang 10.0 25~rc1-11 19-01-23 alex Y Y Y Y 3
|
x86_64/apple/darwin18.2.0 A-clang 10.0 25~rc1-11 19-01-23 alex Y Y Y Y 3
|
||||||
x86_64/apple/darwin19.0.0 A-clang 11.0 25~19-g928 19-12-07 alex Y Y Y Y 3
|
x86_64/apple/darwin19.4.0 A-clang 11.0 26~rc1 20-05-10 alex Y Y Y Y 3
|
||||||
x86_64/unknown/dragonfly3.4 gcc 4.7.2 21 13-11-12 goetz Y Y N Y 3
|
x86_64/unknown/dragonfly3.4 gcc 4.7.2 21 13-11-12 goetz Y Y N Y 3
|
||||||
x86_64/unkn./freebsd8.1-gnu gcc 4.4.5 19 12-02-26 alex Y Y Y Y 3
|
x86_64/unkn./freebsd8.1-gnu gcc 4.4.5 19 12-02-26 alex Y Y Y Y 3
|
||||||
x86_64/unknown/freebsd8.4 gcc 4.2.1 24~rc1-7 17-01-20 alex Y Y Y Y 3
|
x86_64/unknown/freebsd8.4 gcc 4.2.1 24~rc1-7 17-01-20 alex Y Y Y Y 3
|
||||||
@@ -119,6 +119,7 @@ x86_64/unknown/linux-gnu gcc 5.3.0 23 15-12-14 goetz Y Y Y Y 1
|
|||||||
x86_64/pc/linux-gnu [WSL] gcc 5.4.0 24 18-03-07 goetz Y Y y Y 7
|
x86_64/pc/linux-gnu [WSL] gcc 5.4.0 24 18-03-07 goetz Y Y y Y 7
|
||||||
x86_64/pc/linux-gnu gcc 6.2.1 24~rc1-7 17-01-20 alex Y Y Y Y 1
|
x86_64/pc/linux-gnu gcc 6.2.1 24~rc1-7 17-01-20 alex Y Y Y Y 1
|
||||||
x86_64/pc/linux-gnu gcc 6.3.0 25~rc1-11 19-01-23 alex Y Y Y Y 1
|
x86_64/pc/linux-gnu gcc 6.3.0 25~rc1-11 19-01-23 alex Y Y Y Y 1
|
||||||
|
x86_64/pc/linux-gnu gcc 8.3.0 26~rc1 20-05-10 alex Y Y Y Y 1
|
||||||
x86_64/unknown/linux-gnu icc 16 23 16-01-13 goetz Y Y Y Y 1
|
x86_64/unknown/linux-gnu icc 16 23 16-01-13 goetz Y Y Y Y 1
|
||||||
x86_64/unknown/linux-gnu nwcc 0.8.2 21 13-12-01 goetz Y Y Y Y 1
|
x86_64/unknown/linux-gnu nwcc 0.8.2 21 13-12-01 goetz Y Y Y Y 1
|
||||||
x86_64/unknown/linux-gnu Open64 21.1 14-03-27 goetz Y Y Y Y 1
|
x86_64/unknown/linux-gnu Open64 21.1 14-03-27 goetz Y Y Y Y 1
|
||||||
@@ -135,8 +136,8 @@ x86_64/unknown/openbsd5.5 gcc 4.2.1 22~rc1-3 14-10-10 alex Y Y Y Y 3
|
|||||||
(1) */*/linux-gnu (Linux platforms):
|
(1) */*/linux-gnu (Linux platforms):
|
||||||
ngIRCd has been tested with various Linux distributions, such as ArchLinux,
|
ngIRCd has been tested with various Linux distributions, such as ArchLinux,
|
||||||
Debian, Gentoo, Red Hat (Fedora) and SuSE using Linux kernels 2.2.x, 2.4.x,
|
Debian, Gentoo, Red Hat (Fedora) and SuSE using Linux kernels 2.2.x, 2.4.x,
|
||||||
2.6.x, 3.x, and 4.x, with various versions of the GNU C compiler (starting
|
2.6.x, 3.x, 4.x and 5.x, with various versions of the GNU C compiler
|
||||||
with 2.95.x) and Clang. The eldest glibc used was glibc-2.0.7.
|
(starting with 2.95.x) and Clang. The eldest glibc used was glibc-2.0.7.
|
||||||
ngIRCd compiled and ran on all of these systems successfully.
|
ngIRCd compiled and ran on all of these systems successfully.
|
||||||
Current Linux kernels (starting with 2.6.x) and glibc's support the more
|
Current Linux kernels (starting with 2.6.x) and glibc's support the more
|
||||||
efficient epoll() IO interface, see (5) below.
|
efficient epoll() IO interface, see (5) below.
|
||||||
|
@@ -13,12 +13,15 @@ ngIRCd \- the "next generation" IRC daemon
|
|||||||
.BR ngIRCd
|
.BR ngIRCd
|
||||||
is a free, portable and lightweight Internet Relay Chat server for small
|
is a free, portable and lightweight Internet Relay Chat server for small
|
||||||
or private networks, developed under the GNU General Public License (GPL).
|
or private networks, developed under the GNU General Public License (GPL).
|
||||||
It is easy to configure, can cope with dynamic IP addresses, and supports
|
.PP
|
||||||
IPv6, SSL-protected connections as well as PAM for authentication.
|
The server is quite easy to configure, can handle dynamic IP addresses, and
|
||||||
It is written from scratch and not based on the original IRCd.
|
optionally supports IDENT, IPv6 connections, SSL-protected links, and PAM for
|
||||||
|
user authentication as well as character set conversion for legacy clients. The
|
||||||
|
server has been written from scratch and is not based on the "forefather", the
|
||||||
|
daemon of the IRCNet.
|
||||||
.PP
|
.PP
|
||||||
The name ngIRCd means
|
The name ngIRCd means
|
||||||
.IR "next generation IRC daemon",
|
.IR "next-generation IRC daemon",
|
||||||
which is a little bit exaggerated:
|
which is a little bit exaggerated:
|
||||||
.IR "lightweight Internet Relay Chat server"
|
.IR "lightweight Internet Relay Chat server"
|
||||||
most probably would have been a better name :-)
|
most probably would have been a better name :-)
|
||||||
|
@@ -45,13 +45,17 @@ Conn_UpdateIdle(CONN_ID Idx)
|
|||||||
/**
|
/**
|
||||||
* Update "ping timestamp", the time of the last outgoing PING request.
|
* Update "ping timestamp", the time of the last outgoing PING request.
|
||||||
*
|
*
|
||||||
|
* the value 0 signals a newly connected client including servers during the
|
||||||
|
* initial "server burst"; and 1 means that no PONG is pending for a PING.
|
||||||
|
*
|
||||||
* @param Idx Connection index.
|
* @param Idx Connection index.
|
||||||
|
* @param TimeStamp 0, 1, or time stamp.
|
||||||
*/
|
*/
|
||||||
GLOBAL void
|
GLOBAL void
|
||||||
Conn_UpdatePing(CONN_ID Idx)
|
Conn_UpdatePing(CONN_ID Idx, time_t TimeStamp)
|
||||||
{
|
{
|
||||||
assert(Idx > NONE);
|
assert(Idx > NONE);
|
||||||
My_Connections[Idx].lastping = My_Connections[Idx].lastdata = time(NULL);
|
My_Connections[Idx].lastping = TimeStamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
|
|
||||||
GLOBAL void Conn_UpdateIdle PARAMS((CONN_ID Idx));
|
GLOBAL void Conn_UpdateIdle PARAMS((CONN_ID Idx));
|
||||||
GLOBAL void Conn_UpdatePing PARAMS((CONN_ID Idx));
|
GLOBAL void Conn_UpdatePing PARAMS((CONN_ID Idx, time_t TimeStamp));
|
||||||
|
|
||||||
GLOBAL time_t Conn_GetSignon PARAMS((CONN_ID Idx));
|
GLOBAL time_t Conn_GetSignon PARAMS((CONN_ID Idx));
|
||||||
GLOBAL time_t Conn_GetIdle PARAMS(( CONN_ID Idx ));
|
GLOBAL time_t Conn_GetIdle PARAMS(( CONN_ID Idx ));
|
||||||
|
@@ -1866,6 +1866,9 @@ Check_Connections(void)
|
|||||||
CLIENT *c;
|
CLIENT *c;
|
||||||
CONN_ID i;
|
CONN_ID i;
|
||||||
char msg[64];
|
char msg[64];
|
||||||
|
time_t time_now;
|
||||||
|
|
||||||
|
time_now = time(NULL);
|
||||||
|
|
||||||
for (i = 0; i < Pool_Size; i++) {
|
for (i = 0; i < Pool_Size; i++) {
|
||||||
if (My_Connections[i].sock < 0)
|
if (My_Connections[i].sock < 0)
|
||||||
@@ -1880,7 +1883,7 @@ Check_Connections(void)
|
|||||||
My_Connections[i].lastdata) {
|
My_Connections[i].lastdata) {
|
||||||
/* We already sent a ping */
|
/* We already sent a ping */
|
||||||
if (My_Connections[i].lastping <
|
if (My_Connections[i].lastping <
|
||||||
time(NULL) - Conf_PongTimeout) {
|
time_now - Conf_PongTimeout) {
|
||||||
/* Timeout */
|
/* Timeout */
|
||||||
snprintf(msg, sizeof(msg),
|
snprintf(msg, sizeof(msg),
|
||||||
"Ping timeout: %d seconds",
|
"Ping timeout: %d seconds",
|
||||||
@@ -1889,10 +1892,10 @@ Check_Connections(void)
|
|||||||
Conn_Close(i, NULL, msg, true);
|
Conn_Close(i, NULL, msg, true);
|
||||||
}
|
}
|
||||||
} else if (My_Connections[i].lastdata <
|
} else if (My_Connections[i].lastdata <
|
||||||
time(NULL) - Conf_PingTimeout) {
|
time_now - Conf_PingTimeout) {
|
||||||
/* We need to send a PING ... */
|
/* We need to send a PING ... */
|
||||||
LogDebug("Connection %d: sending PING ...", i);
|
LogDebug("Connection %d: sending PING ...", i);
|
||||||
Conn_UpdatePing(i);
|
Conn_UpdatePing(i, time_now);
|
||||||
Conn_WriteStr(i, "PING :%s",
|
Conn_WriteStr(i, "PING :%s",
|
||||||
Client_ID(Client_ThisServer()));
|
Client_ID(Client_ThisServer()));
|
||||||
}
|
}
|
||||||
@@ -1903,7 +1906,7 @@ Check_Connections(void)
|
|||||||
* still not registered. */
|
* still not registered. */
|
||||||
|
|
||||||
if (My_Connections[i].lastdata <
|
if (My_Connections[i].lastdata <
|
||||||
time(NULL) - Conf_PongTimeout) {
|
time_now - Conf_PongTimeout) {
|
||||||
LogDebug
|
LogDebug
|
||||||
("Unregistered connection %d timed out ...",
|
("Unregistered connection %d timed out ...",
|
||||||
i);
|
i);
|
||||||
|
@@ -877,11 +877,20 @@ IRC_PONG(CLIENT *Client, REQUEST *Req)
|
|||||||
(long)(time(NULL) - Conn_GetSignon(conn)),
|
(long)(time(NULL) - Conn_GetSignon(conn)),
|
||||||
time(NULL) - Conn_GetSignon(conn) == 1 ? "" : "s",
|
time(NULL) - Conn_GetSignon(conn) == 1 ? "" : "s",
|
||||||
Client_UserCount(), Channel_CountVisible(NULL));
|
Client_UserCount(), Channel_CountVisible(NULL));
|
||||||
Conn_UpdatePing(conn);
|
}
|
||||||
} else
|
#ifdef DEBUG
|
||||||
LogDebug("Connection %d: received PONG. Lag: %ld seconds.",
|
else {
|
||||||
conn, (long)(time(NULL) - Conn_LastPing(conn)));
|
if (Conn_LastPing(conn) > 1)
|
||||||
|
LogDebug("Connection %d: received PONG. Lag: %ld seconds.",
|
||||||
|
conn, (long)(time(NULL) - Conn_LastPing(conn)));
|
||||||
|
else
|
||||||
|
LogDebug("Got unexpected PONG on connection %d. Ignored.",
|
||||||
|
conn);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* We got a PONG, so signal that none is pending on this connection. */
|
||||||
|
Conn_UpdatePing(conn, 1);
|
||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
} /* IRC_PONG */
|
} /* IRC_PONG */
|
||||||
|
|
||||||
|
@@ -186,6 +186,15 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
|
|||||||
if (!Client_CheckID(Client, Req->argv[0]))
|
if (!Client_CheckID(Client, Req->argv[0]))
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
|
|
||||||
|
if (!Req->prefix) {
|
||||||
|
/* We definitely need a prefix here! */
|
||||||
|
Log(LOG_ALERT, "Got SERVER command without prefix! (on connection %d)",
|
||||||
|
Client_Conn(Client));
|
||||||
|
Conn_Close(Client_Conn(Client), NULL,
|
||||||
|
"SERVER command without prefix", true);
|
||||||
|
return DISCONNECTED;
|
||||||
|
}
|
||||||
|
|
||||||
from = Client_Search( Req->prefix );
|
from = Client_Search( Req->prefix );
|
||||||
if (! from) {
|
if (! from) {
|
||||||
/* Uh, Server, that introduced the new server is unknown?! */
|
/* Uh, Server, that introduced the new server is unknown?! */
|
||||||
@@ -358,7 +367,7 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
|
|||||||
{
|
{
|
||||||
char msg[COMMAND_LEN], logmsg[COMMAND_LEN];
|
char msg[COMMAND_LEN], logmsg[COMMAND_LEN];
|
||||||
CLIENT *from, *target;
|
CLIENT *from, *target;
|
||||||
CONN_ID con;
|
CONN_ID con, client_con;
|
||||||
int loglevel;
|
int loglevel;
|
||||||
|
|
||||||
assert(Client != NULL);
|
assert(Client != NULL);
|
||||||
@@ -398,6 +407,7 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
|
|||||||
return CONNECTED;
|
return CONNECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
client_con = Client_Conn(Client);
|
||||||
con = Client_Conn(target);
|
con = Client_Conn(target);
|
||||||
|
|
||||||
if (Req->argv[1][0])
|
if (Req->argv[1][0])
|
||||||
@@ -419,7 +429,7 @@ IRC_SQUIT(CLIENT * Client, REQUEST * Req)
|
|||||||
Req->argv[0], Client_ID(from),
|
Req->argv[0], Client_ID(from),
|
||||||
Req->argv[1][0] ? Req->argv[1] : "-");
|
Req->argv[1][0] ? Req->argv[1] : "-");
|
||||||
Conn_Close(con, NULL, msg, true);
|
Conn_Close(con, NULL, msg, true);
|
||||||
if (con == Client_Conn(Client))
|
if (con == client_con)
|
||||||
return DISCONNECTED;
|
return DISCONNECTED;
|
||||||
} else {
|
} else {
|
||||||
/* This server is not directly connected, so the SQUIT must
|
/* This server is not directly connected, so the SQUIT must
|
||||||
|
@@ -214,7 +214,7 @@ Synchronize_Lists(CLIENT * Client)
|
|||||||
static bool
|
static bool
|
||||||
Send_CHANINFO(CLIENT * Client, CHANNEL * Chan)
|
Send_CHANINFO(CLIENT * Client, CHANNEL * Chan)
|
||||||
{
|
{
|
||||||
char *modes, *topic;
|
char *modes, *topic, *key;
|
||||||
bool has_k, has_l;
|
bool has_k, has_l;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -243,9 +243,10 @@ Send_CHANINFO(CLIENT * Client, CHANNEL * Chan)
|
|||||||
Channel_Name(Chan), modes, topic);
|
Channel_Name(Chan), modes, topic);
|
||||||
}
|
}
|
||||||
/* "CHANINFO <chan> +<modes> <key> <limit> :<topic>" */
|
/* "CHANINFO <chan> +<modes> <key> <limit> :<topic>" */
|
||||||
|
key = Channel_Key(Chan);
|
||||||
return IRC_WriteStrClient(Client, "CHANINFO %s +%s %s %lu :%s",
|
return IRC_WriteStrClient(Client, "CHANINFO %s +%s %s %lu :%s",
|
||||||
Channel_Name(Chan), modes,
|
Channel_Name(Chan), modes,
|
||||||
has_k ? Channel_Key(Chan) : "*",
|
has_k ? (key && *key ? key : "*") : "*",
|
||||||
has_l ? Channel_MaxUsers(Chan) : 0, topic);
|
has_l ? Channel_MaxUsers(Chan) : 0, topic);
|
||||||
} /* Send_CHANINFO */
|
} /* Send_CHANINFO */
|
||||||
|
|
||||||
|
@@ -25,8 +25,11 @@ EXTRA_DIST = \
|
|||||||
start-server1 stop-server1 ngircd-test1.conf \
|
start-server1 stop-server1 ngircd-test1.conf \
|
||||||
start-server2 stop-server2 ngircd-test2.conf \
|
start-server2 stop-server2 ngircd-test2.conf \
|
||||||
start-server3 stop-server3 ngircd-test3.conf \
|
start-server3 stop-server3 ngircd-test3.conf \
|
||||||
reload-server3 reload-server.sh prep-server3 cleanup-server3\
|
reload-server3 reload-server.sh prep-server3 cleanup-server3 switch-server3 \
|
||||||
connect-ssl-cert1-test.e connect-ssl-cert2-test.e
|
connect-ssl-cert1-test.e connect-ssl-cert2-test.e \
|
||||||
|
ssl/cert-my-first-domain-tld.pem ssl/cert-my-second-domain-tld.pem \
|
||||||
|
ssl/dhparams-my-first-domain-tld.pem ssl/dhparams-my-second-domain-tld.pem \
|
||||||
|
ssl/key-my-first-domain-tld.pem ssl/key-my-second-domain-tld.pem
|
||||||
|
|
||||||
all:
|
all:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user