1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-26 18:36:38 +02:00

15 Commits

Author SHA1 Message Date
Bram Matthys 779a427fc7 Updates for new repository name of test framework. 2019-08-18 09:58:24 +02:00
Bram Matthys 6044323d03 Add dot in UNREAL_VERSION_SUFFIX. 2019-07-07 15:39:23 +02:00
Bram Matthys e133b21703 UnrealIRCd 4.2.4.1 2019-07-07 15:05:59 +02:00
Bram Matthys 96ee7083c8 Customizing set::ssl::outdated-protocols and set::ssl::outdated-ciphers
was not possible since the configuration code was missing.
Reported by HeXiLeD in https://bugs.unrealircd.org/view.php?id=5327
2019-07-07 14:57:15 +02:00
Bram Matthys 755ef5b052 Debian 10 effectively overrides our set::ssl::protocols settings
causing UnrealIRCd to only accept SSL/TLS 1.2 and later connections.
We now use SSL_CTX_set_min_proto_version() to set the minimum
protocol version to fix this, only to disable specific SSL/TLS
versions later on via the old API.
It's great that they disabled SSL/TLS <1.2 by default and we have
already been considering doing the same in 2020, laying the
groundwork via set::ssl::outdated-protocols in February 2019.
However, such a chance is unexpected during UnrealIRCd 4.x.
2019-07-07 10:41:55 +02:00
Bram Matthys 8babe4db3f UnrealIRCd 4.2.4 2019-06-30 08:22:15 +02:00
Bram Matthys 58f8943069 More Windows fixes/workarounds.. 2019-06-30 08:10:17 +02:00
Bram Matthys 332135e5b3 Change set::ident::read-timeout from 30 to 15 seconds since otherwise
it exceeds set::handshake-timeout which would be very unfortunate for
those (few) poor users that are affected by this.
2019-06-29 18:49:36 +02:00
Bram Matthys eae47eac5f Fix bug where the Windows version only accepts very few clients. 2019-06-29 17:20:06 +02:00
Bram Matthys 12e1faf417 Fix m_sinfo not marked as an official module. 2019-06-29 16:26:01 +02:00
Bram Matthys f8de9ec78e Windows: duh, update version number there too. 2019-06-29 16:11:17 +02:00
Bram Matthys dc9880ce1e * The Windows version should warn and not error if using old-style regex. 2019-06-29 15:56:53 +02:00
Bram Matthys ac94ef3c85 Preparations for UnrealIRCd 4.2.4 2019-06-29 15:53:40 +02:00
Bram Matthys ce38423b42 Silently force a 'make clean' as otherwise part (or whole) of the
compiled source could be using different settings than the user
just requested when re-running ./Config.
2019-06-16 10:15:57 +02:00
Bram Matthys 06df7cba70 Add new ./configure option (last question at ./Config): --enable-asan
This will enable AddressSanitizer which can be used to catch bugs.
It's only meant for (3rd party module) developers or if you are having
crash issues. On production servers it is not recommended, as it
consumes 3-4 times more memory and incurs a slowdown of about x2.
2019-05-12 15:30:00 +02:00
456 changed files with 66941 additions and 80750 deletions
+3 -14
View File
@@ -7,25 +7,14 @@
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for UnrealIRCd 5.2.4
for UnrealIRCd 4.2.4.1
This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
regarding the setup of it, during the process.
A short installation guide is available online at:
https://www.unrealircd.org/docs/Installing_from_source
Full documentation is available at:
https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
--------------------------------------------------------------------------------------
The full release notes are available in doc/RELEASE-NOTES.md
For easier viewing, check out the latest online release notes at:
https://github.com/unrealircd/unrealircd/blob/unreal52/doc/RELEASE-NOTES.md
UnrealIRCd 5 is compatible with the following services:
* anope with the "unreal4" protocol module - version 2.0.7 or higher required!
* atheme with the "unreal4" protocol module - tested with version 7.2.9
--------------------------------------------------------------------------------------
https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
+3 -4
View File
@@ -6,7 +6,9 @@ conftest.*
config.settings
extras/pcre2*
extras/c-ares*
extras/regexp*
config.status
extras/tre*
extras/ircdcron/ircd.cron
extras/ircdcron/ircdchk
src/modules/snomasks/Makefile
@@ -31,7 +33,7 @@ tags
server.cert.pem
server.key.pem
server.req.pem
tls.rnd
ssl.rnd
# Ignores for platform stuff
.DS_Store
@@ -70,6 +72,3 @@ xcuserdata
src/macosx/build/
DerivedData
src/macosx/pods/
# Doxygen generated files
doc/doxygen/
+6
View File
@@ -0,0 +1,6 @@
[submodule "extras/tests/ircfly"]
path = extras/tests/ircfly
url = https://github.com/unrealircd/ircfly.git
[submodule "extras/tests/functional-tests"]
path = extras/tests/functional-tests
url = https://github.com/unrealircd/unrealircd-tests-old.git
+28
View File
@@ -0,0 +1,28 @@
language: c
os: linux
dist: xenial
compiler:
- clang
- gcc
script: extras/build-tests/nix/build $BUILDCONFIG
env:
- BUILDCONFIG=""
- BUILDCONFIG="system-cares"
- BUILDCONFIG="system-cares system-curl"
- BUILDCONFIG="local-curl"
matrix:
include:
- os: osx
env: BUILDCONFIG=""
- os: osx
env: BUILDCONFIG="system-cares"
- os: osx
env: BUILDCONFIG="system-cares system-curl"
- os: osx
env: BUILDCONFIG="local-curl"
- env: BUILDCONFIG="libressl-27"
- env: BUILDCONFIG="libressl-28"
- env: BUILDCONFIG="libressl-29"
- env: BUILDCONFIG="openssl-102"
- env: BUILDCONFIG="openssl-110"
- env: BUILDCONFIG="openssl-111"
-5
View File
@@ -1,5 +0,0 @@
Help out and make UnrealIRCd a better product!
You can do so by reporting issues, testing, programming, documenting,
translating, helping others, and more.
See https://www.unrealircd.org/docs/Contributing
+494 -378
View File
File diff suppressed because it is too large Load Diff
+90 -81
View File
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
#
#XCFLAGS=-O -g -export-dynamic
IRCDLIBS=@IRCDLIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @SODIUM_LIBS@ @PTHREAD_LIBS@
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@
CRYPTOLIB=@CRYPTOLIB@
OPENSSLINCLUDES=
XCFLAGS=@PTHREAD_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @SODIUM_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
@@ -91,12 +91,25 @@ IRCDMODE = 711
URL=@URL@
# [CHANGEME]
# If you get a link-time error dealing with strtoul, comment out
# this line.
# STRTOUL= strtoul.o
STRTOUL=@STRTOUL@
# [CHANGEME]
# If you get crashes around a specific number of clients, and that
# client load comes close or a little over the system-defined value of
# FD_SETSIZE, override it here and see what happens. You may override
# the system FD_SETSIZE by setting the FD_SETSIZE Makefile variable to
# -DFD_SETSIZE=<some number>.
FD_SETSIZE=@FD_SETSIZE@
# Where is your openssl binary
OPENSSLPATH=@OPENSSLPATH@
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS)
XLDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@ @LDFLAGS@
LDFLAGS=$(XLDFLAGS)
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(FD_SETSIZE)
LDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@
SHELL=/bin/sh
SUBDIRS=src
@@ -113,7 +126,7 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' \
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'SHELL=${SHELL}' \
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
'CRYPTOLIB=${CRYPTOLIB}' \
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
'URL=${URL}'
@@ -152,7 +165,7 @@ cleandir: clean
rm -rf include/setup.h Makefile Settings
distclean: cleandir
rm -rf extras/*.bak extras/*.tar extras/c-ares
rm -rf extras/*.bak extras/regexp extras/*.tar extras/c-ares
rm -rf extras/c-ares-* extras/tre-*
rm -rf config.log config.settings *.pem ircd.* unrealircd
rm -rf Makefile config.status
@@ -164,75 +177,58 @@ depend:
done
install: all
$(INSTALL) -m 0700 -d $(DESTDIR)@BINDIR@
$(INSTALL) -m 0700 src/ircd $(DESTDIR)@BINDIR@/unrealircd
$(INSTALL) -m 0700 extras/unrealircd-upgrade-script $(DESTDIR)@BINDIR@/unrealircd-upgrade-script
$(INSTALL) -m 0700 -d $(DESTDIR)@DOCDIR@
$(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc doc/KEYS doc/RELEASE-NOTES.md $(DESTDIR)@DOCDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.default.conf $(DESTDIR)@CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.optional.conf $(DESTDIR)@CONFDIR@
-@if [ ! -f "$(DESTDIR)@CONFDIR@/modules.sources.list" ] ; then \
$(INSTALL) -m 0600 doc/conf/modules.sources.list $(DESTDIR)@CONFDIR@ ; \
$(INSTALL) -m 0700 -d @BINDIR@
$(INSTALL) -m 0700 src/ircd @BINDIR@/unrealircd
$(INSTALL) -m 0700 -d @DOCDIR@
$(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc @DOCDIR@
$(INSTALL) -m 0700 -d @CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.default.conf @CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.optional.conf @CONFDIR@
-@if [ ! -f "@CONFDIR@/spamfilter.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/spamfilter.conf @CONFDIR@ ; \
fi
-@if [ ! -f "$(DESTDIR)@CONFDIR@/spamfilter.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/spamfilter.conf $(DESTDIR)@CONFDIR@ ; \
-@extras/patches/patch_spamfilter_conf "@CONFDIR@"
-@if [ ! -f "@CONFDIR@/badwords.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/badwords.conf @CONFDIR@ ; \
fi
-@extras/patches/patch_spamfilter_conf "$(DESTDIR)@CONFDIR@"
-@if [ ! -f "$(DESTDIR)@CONFDIR@/badwords.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/badwords.conf $(DESTDIR)@CONFDIR@ ; \
-@if [ ! -f "@CONFDIR@/dccallow.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/dccallow.conf @CONFDIR@ ; \
fi
-@if [ ! -f "$(DESTDIR)@CONFDIR@/dccallow.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/dccallow.conf $(DESTDIR)@CONFDIR@ ; \
$(INSTALL) -m 0700 -d @CONFDIR@/aliases
$(INSTALL) -m 0600 doc/conf/aliases/*.conf @CONFDIR@/aliases
$(INSTALL) -m 0700 -d @CONFDIR@/help
$(INSTALL) -m 0600 doc/conf/help/*.conf @CONFDIR@/help
$(INSTALL) -m 0700 -d @CONFDIR@/examples
$(INSTALL) -m 0600 doc/conf/examples/*.conf @CONFDIR@/examples
$(INSTALL) -m 0700 -d @CONFDIR@/ssl
$(INSTALL) -m 0600 doc/conf/ssl/curl-ca-bundle.crt @CONFDIR@/ssl
$(INSTALL) -m 0700 unrealircd @SCRIPTDIR@
$(INSTALL) -m 0700 -d @MODULESDIR@
$(INSTALL) -m 0700 src/modules/*.so @MODULESDIR@
$(INSTALL) -m 0700 -d @MODULESDIR@/usermodes
$(INSTALL) -m 0700 src/modules/usermodes/*.so @MODULESDIR@/usermodes
$(INSTALL) -m 0700 -d @MODULESDIR@/chanmodes
$(INSTALL) -m 0700 src/modules/chanmodes/*.so @MODULESDIR@/chanmodes
$(INSTALL) -m 0700 -d @MODULESDIR@/snomasks
$(INSTALL) -m 0700 src/modules/snomasks/*.so @MODULESDIR@/snomasks
$(INSTALL) -m 0700 -d @MODULESDIR@/extbans
$(INSTALL) -m 0700 src/modules/extbans/*.so @MODULESDIR@/extbans
$(INSTALL) -m 0700 -d @MODULESDIR@/cap
$(INSTALL) -m 0700 src/modules/cap/*.so @MODULESDIR@/cap
$(INSTALL) -m 0700 -d @MODULESDIR@/third
@#Ugly stuff to detect 0 files in this directory:
@+for f in src/modules/third/*.so; do \
[ -e $f ] && $(INSTALL) -m 0700 src/modules/third/*.so @MODULESDIR@/third || echo; \
done
$(INSTALL) -m 0700 -d @TMPDIR@
$(INSTALL) -m 0700 -d @CACHEDIR@
$(INSTALL) -m 0700 -d @PERMDATADIR@
$(INSTALL) -m 0700 -d @LOGDIR@
-@if [ ! -f "@CONFDIR@/ssl/server.cert.pem" ] ; then \
$(INSTALL) -m 0600 server.req.pem @CONFDIR@/ssl ; \
$(INSTALL) -m 0600 server.key.pem @CONFDIR@/ssl ; \
$(INSTALL) -m 0600 server.cert.pem @CONFDIR@/ssl ; \
fi
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/aliases
$(INSTALL) -m 0600 doc/conf/aliases/*.conf $(DESTDIR)@CONFDIR@/aliases
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/help
$(INSTALL) -m 0600 doc/conf/help/*.conf $(DESTDIR)@CONFDIR@/help
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/examples
$(INSTALL) -m 0600 doc/conf/examples/*.conf $(DESTDIR)@CONFDIR@/examples
$(INSTALL) -m 0700 unrealircd $(DESTDIR)@SCRIPTDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@
@rm -f $(DESTDIR)@MODULESDIR@/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/*.so $(DESTDIR)@MODULESDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/usermodes
@rm -f $(DESTDIR)@MODULESDIR@/usermodes/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/usermodes/*.so $(DESTDIR)@MODULESDIR@/usermodes
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/chanmodes
@rm -f $(DESTDIR)@MODULESDIR@/chanmodes/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/chanmodes/*.so $(DESTDIR)@MODULESDIR@/chanmodes
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/snomasks
@rm -f $(DESTDIR)@MODULESDIR@/snomasks/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/snomasks/*.so $(DESTDIR)@MODULESDIR@/snomasks
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/extbans
@rm -f $(DESTDIR)@MODULESDIR@/extbans/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/extbans/*.so $(DESTDIR)@MODULESDIR@/extbans
@#If the conf/ssl directory exists then rename it here to conf/tls
@#and add a symlink for backwards compatibility (so that f.e. certbot
@#doesn't randomly fail after an upgrade to U5).
-@if [ -d "$(DESTDIR)@CONFDIR@/ssl" ] ; then \
mv "$(DESTDIR)@CONFDIR@/ssl" "$(DESTDIR)@CONFDIR@/tls" ; \
ln -s "$(DESTDIR)@CONFDIR@/tls" "$(DESTDIR)@CONFDIR@/ssl" ; \
fi
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/tls
$(INSTALL) -m 0600 doc/conf/tls/curl-ca-bundle.crt $(DESTDIR)@CONFDIR@/tls
@# delete modules/cap directory, to avoid confusing with U4 to U5 upgrades:
rm -rf $(DESTDIR)@MODULESDIR@/cap
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/third
@rm -f $(DESTDIR)@MODULESDIR@/third/*.so 1>/dev/null 2>&1
@#This step can fail with zero files, so we ignore exit status:
-$(INSTALL) -m 0700 src/modules/third/*.so $(DESTDIR)@MODULESDIR@/third
$(INSTALL) -m 0700 -d $(DESTDIR)@TMPDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@CACHEDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@PERMDATADIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@LOGDIR@
-@if [ ! -f "$(DESTDIR)@CONFDIR@/tls/server.cert.pem" ] ; then \
$(INSTALL) -m 0600 server.req.pem $(DESTDIR)@CONFDIR@/tls ; \
$(INSTALL) -m 0600 server.key.pem $(DESTDIR)@CONFDIR@/tls ; \
$(INSTALL) -m 0600 server.cert.pem $(DESTDIR)@CONFDIR@/tls ; \
fi
@rm -f $(DESTDIR)@SCRIPTDIR@/source
ln -s @BUILDDIR@ $(DESTDIR)@SCRIPTDIR@/source
@echo ''
@echo '* UnrealIRCd is now installed.'
@@ -258,19 +254,32 @@ install: all
echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
fi
pem: extras/tls.cnf
@echo "Generating server key..."
$(OPENSSLPATH) ecparam -out server.key.pem -name secp384r1 -genkey
@echo "Generating certificate request..."
### TODO: all the stuff below ;) ###
pem: src/ssl.cnf
@echo "Generating certificate request .. "
$(OPENSSLPATH) req -new \
-config extras/tls.cnf -sha256 -out server.req.pem \
-key server.key.pem -nodes
@echo "Generating self-signed certificate..."
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -nodes -in server.req.pem \
-config src/ssl.cnf -sha256 -out server.req.pem \
-keyout server.key.pem -nodes
@echo "Generating self-signed certificate .. "
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
-key server.key.pem -out server.cert.pem
@echo "Setting permissions on server.*.pem files..."
@echo "Generating fingerprint .."
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
-in server.cert.pem
@echo "Setting o-rwx & g-rwx for files... "
chmod o-rwx server.req.pem server.key.pem server.cert.pem
chmod g-rwx server.req.pem server.key.pem server.cert.pem
@echo "Done!. If you want to encrypt the private key, run"
@echo "make encpem"
encpem: server.key.pem
@echo "Encrypting server key .."
$(OPENSSLPATH) rsa -in server.key.pem -out server.key.c.pem -des3
-@if [ -f server.key.c.pem ] ; then \
echo "Replacing unencrypted with encrypted .." ; \
cp server.key.c.pem server.key.pem ; \
rm -f server.key.c.pem ; \
fi
Makefile: config.status Makefile.in
./config.status
-1130
View File
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -1,11 +1,13 @@
[![Build Status - *NIX](https://travis-ci.org/unrealircd/unrealircd.svg?branch=unreal42)](https://travis-ci.org/unrealircd/unrealircd)
[![Build Status - Windows](https://ci.appveyor.com/api/projects/status/9kgectl2mfyia0s5/branch/unreal42?svg=true)](https://ci.appveyor.com/project/syzop/unrealircd/branch/unreal42)
[![Twitter Follow](https://img.shields.io/twitter/follow/Unreal_IRCd.svg?style=social&label=Follow)](https://twitter.com/Unreal_IRCd)
## About UnrealIRCd
UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999.
It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd
with a market share of 42%. UnrealIRCd is a highly advanced IRCd with a strong
with a market share of over 50%. UnrealIRCd is a highly advanced IRCd with a strong
focus on modularity, an advanced and highly configurable configuration file.
Key features include SSL/TLS, cloaking, its advanced anti-flood and anti-spam systems,
Key features include SSL, cloaking, its advanced anti-flood and anti-spam systems,
swear filtering and module support. We are also particularly proud on our extensive
online documentation.
@@ -20,10 +22,7 @@ Simply download the UnrealIRCd Windows version from www.unrealircd.org
Alternatively you can compile UnrealIRCd for Windows yourself. However this is not straightforward and thus not recommended.
#### *BSD/Linux/macOS
Do the following steps under a separate account for running UnrealIRCd,
[do NOT compile or run as root](https://www.unrealircd.org/docs/Do_not_run_as_root).
### Step 1: Compile the IRCd
First you must compile the IRCd:
* Run `./Config`
* Run `make`
-22
View File
@@ -1,22 +0,0 @@
# Security Policy
## Supported Versions
* The latest *stable* release of the 5.x branch (until 2023-07-01)
* The latest *stable* release of the 6.x branch
See [UnrealIRCd releases](https://www.unrealircd.org/docs/UnrealIRCd_releases) for information on older versions and End Of Life dates.
## Reporting a Vulnerability
Please report issues on the [bug tracker](https://bugs.unrealircd.org) and in the bug submit form **set the 'View Status' to 'private'**.
Do not report security issues on the forums or in a public IRC channel such as #unreal-support.
If you insist on e-mail then you can use syzop@unrealircd.org or security@unrealircd.org. Again, the bug tracker is preferred.
If you are *unsure* if something is a security issue, then report it at the bug tracker as a 'private' bug anyway. Better safe than sorry.
Do not ask around in public channels or forums.
You should get a response or at least an acknowledgement soon. If you don't hear back within 24 hours, then please try to contact us again.
## Full policy
See https://www.unrealircd.org/docs/Policy:_Handling_of_security_issues for full information.
+10
View File
@@ -0,0 +1,10 @@
version: 4.2.x-devbuild-{build}
environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
TARGET: "Visual Studio 2017"
SHORTNAME: "vs2017"
init:
- cmd: git config --global core.autocrlf true
build_script:
- cmd: call extras\\build-tests\\windows\\build.bat
+1 -90
View File
@@ -145,7 +145,7 @@ AC_ARG_ENABLE(ssl,
[enable_ssl=no])
AS_IF([test $enable_ssl != "no"],
[
AC_MSG_CHECKING([for OpenSSL])
AC_MSG_CHECKING([for openssl])
for dir in $enable_ssl /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do
ssldir="$dir"
if test -f "$dir/include/openssl/ssl.h"; then
@@ -179,36 +179,7 @@ AS_IF([test $enable_ssl != "no"],
CRYPTOLIB="-lssl -lcrypto";
if test ! "$ssldir" = "/usr" ; then
LDFLAGS="$LDFLAGS -L$ssldir/lib";
dnl check if binary path exists
if test -f "$ssldir/bin/openssl"; then
OPENSSLPATH="$ssldir/bin/openssl";
fi
fi
dnl linking require -ldl?
AC_MSG_CHECKING([OpenSSL linking with -ldl])
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB -ldl"
AC_TRY_LINK([#include <openssl/err.h>], [ERR_clear_error();],
[
AC_MSG_RESULT(yes)
CRYPTOLIB="$CRYPTOLIB -ldl"
],
[
AC_MSG_RESULT(no)
dnl linking require both -ldl and -lpthread?
AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
LIBS="$SAVE_LIBS $CRYPTOLIB -ldl -lpthread"
AC_TRY_LINK([#include <openssl/err.h>], [ERR_clear_error();],
[
AC_MSG_RESULT(yes)
CRYPTOLIB="$CRYPTOLIB -ldl -lpthread"
],
[
AC_MSG_RESULT(no)
])
])
LIBS="$SAVE_LIBS"
fi
])
])
@@ -252,63 +223,3 @@ else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_SSL_CTX_SET_SECURITY_LEVEL],
[
AC_MSG_CHECKING([for SSL_CTX_set_security_level in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[SSL_CTX *ctx = NULL; SSL_CTX_set_security_level(ctx, 1);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_SSL_CTX_SET_SECURITY_LEVEL], [], [Define if ssl library has SSL_CTX_set_security_level])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_ASN1_TIME_diff],
[
AC_MSG_CHECKING([for ASN1_TIME_diff in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[int one, two; ASN1_TIME_diff(&one, &two, NULL, NULL);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_ASN1_TIME_diff], [], [Define if ssl library has ASN1_TIME_diff])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_X509_get0_notAfter],
[
AC_MSG_CHECKING([for X509_get0_notAfter in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[X509_get0_notAfter(NULL);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_X509_get0_notAfter], [], [Define if ssl library has X509_get0_notAfter])
else
AC_MSG_RESULT([no])
fi
])
-2
View File
@@ -1,6 +1,4 @@
#!/bin/bash
echo "Regenerating 'configure' and headers..."
echo "NOTE: Normally only UnrealIRCd developers run this command!!"
cd "$(dirname "${0}")"
Vendored
+4342 -2485
View File
File diff suppressed because it is too large Load Diff
+353 -154
View File
@@ -2,12 +2,13 @@ dnl Process this file with autoconf to produce a configure script.
dnl When updating the version, remember to update the following files
dnl appropriately:
dnl include/windows/setup.h
dnl src/windows/unrealinst.iss
dnl doc/Config.header
dnl
dnl include/win32/setup.h
dnl src/win32/unrealinst.iss
dnl .CHANGES.NEW
dnl src/version.c.SH
AC_INIT([unrealircd], [5.2.4], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_INIT([unrealircd], [4.2.4.1], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_CONFIG_SRCDIR([src/ircd.c])
AC_CONFIG_HEADER([include/setup.h])
AC_CONFIG_AUX_DIR([autoconf])
@@ -22,11 +23,12 @@ dnl Save CFLAGS, use this when building the libraries like c-ares
orig_cflags="$CFLAGS"
dnl Save build directory early on (used in our m4 macros too)
BUILDDIR_NOW="`pwd`"
BUILDDIR="`pwd`"
AC_SUBST(BUILDDIR)
dnl Calculate the versions. Perhaps the use of expr is a little too extravagant
# Generation version number (e.g.: X in X.Y.Z)
UNREAL_VERSION_GENERATION=["5"]
UNREAL_VERSION_GENERATION=["4"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: X for X.Y.Z)])
# Major version number (e.g.: Y in X.Y.Z)
@@ -40,7 +42,7 @@ AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor versi
# The version suffix such as a beta marker or release candidate
# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a
# string instead of an integer because it contains arbitrary data.
UNREAL_VERSION_SUFFIX=[""]
UNREAL_VERSION_SUFFIX=[".1"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rcX for unrealircd-3.2.9-rcX)])
AC_PATH_PROG(RM,rm)
@@ -60,40 +62,30 @@ exit 1
])
AC_PATH_PROG(INSTALL,install)
AC_PATH_PROG(GUNZIP, gunzip)
AC_PATH_PROG(PKGCONFIG, pkg-config)
dnl Check for compiler
AC_PROG_CC_C99
AS_IF([test "$ac_cv_prog_cc_c99" = "no"],
[AC_MSG_ERROR([No C99 compiler was found. Please install gcc or clang and other build tools. Eg, on Debian/Ubuntu you probably want to run the following as root: apt-get install build-essential ])])
dnl Check for make moved down, so the above compiler check takes precedence.
AC_CHECK_PROG(MAKER, gmake, gmake, make)
AC_PATH_PROG(GMAKE,gmake)
AS_IF([$MAKER --version | grep -q "GNU Make"],
[GNUMAKE="0"],
[AC_MSG_ERROR([It seems your system does not have make/gmake installed. If you are on Linux then install make, otherwise install gmake.])])
AC_PATH_PROG(GUNZIP, gunzip)
AC_PATH_PROG(PKGCONFIG, pkg-config)
dnl Checks for libraries.
AC_CHECK_LIB(descrypt, crypt,
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
IRCDLIBS="$IRCDLIBS-ldescrypt "],
IRCDLIBS="$IRCDLIBS-ldescrypt "
MKPASSWDLIBS="-ldescrypt"],
[AC_CHECK_LIB(crypt, crypt,
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
IRCDLIBS="$IRCDLIBS-lcrypt "])])
IRCDLIBS="$IRCDLIBS-lcrypt "
MKPASSWDLIBS="-lcrypt"])])
AC_CHECK_LIB(socket, socket,
[IRCDLIBS="$IRCDLIBS-lsocket "
SOCKLIB="-lsocket"])
AC_CHECK_LIB(nsl, inet_ntoa,
[IRCDLIBS="$IRCDLIBS-lnsl "
INETLIB="-lnsl"])
AC_CHECK_LIB(crypto, RAND_egd,
AC_DEFINE(HAVE_RAND_EGD, 1, [Define if the libcrypto has RAND_egd]))
dnl Check for big-endian system, even though these hardly exist anymore...
AS_CASE([$host_cpu],
[i?86|amd64|x86_64],
[ac_cv_c_bigendian=no]
)
AC_C_BIGENDIAN(
AC_DEFINE(NATIVE_BIG_ENDIAN, 1, [machine is bigendian]),
AC_DEFINE(NATIVE_LITTLE_ENDIAN, 1, [machine is littleendian]),
AC_MSG_ERROR([unknown endianness]),
AC_MSG_ERROR([universal endianness is not supported - compile separately and use lipo(1)])
)
AC_SUBST(MKPASSWDLIBS)
dnl HARDENING START
dnl This is taken from https://github.com/kmcallister/autoharden
@@ -111,9 +103,13 @@ LD="$flag_wrap $LD"
# We use the same hardening flags for C and C++. We must check that each flag
# is supported by both compilers.
AC_DEFUN([check_cc_flag],
AC_DEFUN([check_cc_cxx_flag],
[AC_LANG_PUSH(C)
AX_CHECK_COMPILE_FLAG([$1], [$2], [$3], [-Werror $4])
AX_CHECK_COMPILE_FLAG([$1],
[AC_LANG_PUSH(C)
AX_CHECK_COMPILE_FLAG([$1], [$2], [$3], [-Werror $4])
AC_LANG_POP(C)],
[$3], [-Werror $4])
AC_LANG_POP(C)])
AC_DEFUN([check_link_flag],
@@ -128,29 +124,23 @@ AC_ARG_ENABLE([hardening],
HARDEN_CFLAGS=""
HARDEN_LDFLAGS=""
AS_IF([test x"$hardening" != x"no"], [
check_cc_flag([-fno-strict-overflow], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow"])
check_cc_cxx_flag([-fno-strict-overflow], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow"])
# This one will likely succeed, even on platforms where it does nothing.
check_cc_flag([-D_FORTIFY_SOURCE=2], [HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2"])
check_cc_cxx_flag([-D_FORTIFY_SOURCE=2], [HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2"])
check_cc_flag([-fstack-protector-all],
check_cc_cxx_flag([-fstack-protector-all],
[check_link_flag([-fstack-protector-all],
[HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-protector-all"
check_cc_flag([-Wstack-protector], [HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector"],
check_cc_cxx_flag([-Wstack-protector], [HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector"],
[], [-fstack-protector-all])
check_cc_flag([--param ssp-buffer-size=1], [HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1"],
check_cc_cxx_flag([--param ssp-buffer-size=1], [HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1"],
[], [-fstack-protector-all])])])
# Added in UnrealIRCd 5.0.5 (default on Ubuntu 19.10)
check_cc_flag([-fstack-clash-protection], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-clash-protection"])
# Control Flow Enforcement (ROP hardening) - requires CPU hardware support
check_cc_flag([-fcf-protection], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fcf-protection"])
# At the link step, we might want -pie (GCC) or -Wl,-pie (Clang on OS X)
#
# The linker checks also compile code, so we need to include -fPIE as well.
check_cc_flag([-fPIE],
check_cc_cxx_flag([-fPIE],
[check_link_flag([-fPIE -pie],
[HARDEN_BINCFLAGS="-fPIE"
HARDEN_BINLDFLAGS="-pie"],
@@ -173,11 +163,7 @@ LD="$saved_LD"
dnl HARDENING END
dnl UnrealIRCd might not be strict-aliasing safe at this time
check_cc_flag([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"])
dnl UnrealIRCd should be able to compile with -fno-common
dnl This also makes ASan (if it is in use) able to instrument these variables.
check_cc_flag([-fno-common], [CFLAGS="$CFLAGS -fno-common"])
check_cc_cxx_flag([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"])
dnl Previously -funsigned-char was in a config check. It would always
dnl be enabled with gcc and clang. We now unconditionally enable it,
@@ -193,16 +179,16 @@ dnl We should be able to turn this on unconditionally:
CFLAGS="$CFLAGS -Wall"
dnl More warnings (if the compiler supports it):
check_cc_flag([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
check_cc_flag([-Waggregate-return], [CFLAGS="$CFLAGS -Waggregate-return"])
check_cc_cxx_flag([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
check_cc_cxx_flag([-Waggregate-return], [CFLAGS="$CFLAGS -Waggregate-return"])
dnl The following few are more experimental, if they have false positives we'll have
dnl to disable them:
dnl Can't use this, too bad: check_cc_flag([-Wlogical-op], [CFLAGS="$CFLAGS -Wlogical-op"])
check_cc_flag([-Wduplicated-cond], [CFLAGS="$CFLAGS -Wduplicated-cond"])
check_cc_flag([-Wduplicated-branches], [CFLAGS="$CFLAGS -Wduplicated-branches"])
dnl Can't use this, too bad: check_cc_cxx_flag([-Wlogical-op], [CFLAGS="$CFLAGS -Wlogical-op"])
check_cc_cxx_flag([-Wduplicated-cond], [CFLAGS="$CFLAGS -Wduplicated-cond"])
check_cc_cxx_flag([-Wduplicated-branches], [CFLAGS="$CFLAGS -Wduplicated-branches"])
dnl And now to filter out certain warnings:
dnl [!] NOTE REGARDING THE check_cc_flag used by these:
dnl [!] NOTE REGARDING THE check_cc_cxx_flag used by these:
dnl We check for the -Woption even though we are going to use -Wno-option.
dnl This is due to the following (odd) gcc behavior:
dnl "When an unrecognized warning option is requested (e.g.,
@@ -218,44 +204,37 @@ dnl -Woption instead.
dnl Pointer signedness warnings are really a pain and 99.9% of the time
dnl they are of absolutely no use whatsoever. IMO the person who decided
dnl to enable this without -Wall should be shot on sight.
check_cc_flag([-Wpointer-sign], [CFLAGS="$CFLAGS -Wno-pointer-sign"])
check_cc_cxx_flag([-Wpointer-sign], [CFLAGS="$CFLAGS -Wno-pointer-sign"])
dnl This is purely for charsys.c... I like it so we can easily read
dnl this for non-utf8. We can remove it once we ditch non-utf8 some day
dnl of course, or decide to ignore me and encode them.
check_cc_flag([-Winvalid-source-encoding], [CFLAGS="$CFLAGS -Wno-invalid-source-encoding"])
check_cc_cxx_flag([-Winvalid-source-encoding], [CFLAGS="$CFLAGS -Wno-invalid-source-encoding"])
check_cc_flag([-Wformat-zero-length], [CFLAGS="$CFLAGS -Wno-format-zero-length"])
check_cc_cxx_flag([-Wformat-zero-length], [CFLAGS="$CFLAGS -Wno-format-zero-length"])
check_cc_flag([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"])
check_cc_cxx_flag([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"])
dnl While it can be useful to occasionally to compile with warnings about
dnl unused variables and parameters, we often 'think ahead' when coding things
dnl so they may be useless now but not later. Similarly, for variables, we
dnl don't always care about a variable that may still be present in a build
dnl without DEBUGMODE. Unused variables are optimized out anyway.
check_cc_flag([-Wunused], [CFLAGS="$CFLAGS -Wno-unused"])
check_cc_flag([-Wunused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"])
check_cc_flag([-Wunused-but-set-parameter], [CFLAGS="$CFLAGS -Wno-unused-but-set-parameter"])
check_cc_cxx_flag([-Wunused], [CFLAGS="$CFLAGS -Wno-unused"])
check_cc_cxx_flag([-Wunused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"])
dnl We use this and this warning is meaningless since 'char' is always unsigned
dnl in UnrealIRCd compiles (-funsigned-char).
check_cc_flag([-Wchar-subscripts], [CFLAGS="$CFLAGS -Wno-char-subscripts"])
check_cc_cxx_flag([-Wchar-subscripts], [CFLAGS="$CFLAGS -Wno-char-subscripts"])
check_cc_flag([-Wsign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"])
check_cc_cxx_flag([-Wsign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"])
dnl Don't warn about empty body, we use this, eg via Debug(()) or in if's.
check_cc_flag([-Wempty-body], [CFLAGS="$CFLAGS -Wno-empty-body"])
check_cc_cxx_flag([-Wempty-body], [CFLAGS="$CFLAGS -Wno-empty-body"])
dnl This one fails with ircstrdup(var, staticstring)
dnl Shame we have to turn it off completely...
check_cc_flag([-Waddress], [CFLAGS="$CFLAGS -Wno-address"])
dnl This one breaks our TO_INTFUNC() that is used in m_tkl for tkl_typetochar
check_cc_flag([-Wcast-function-type], [CFLAGS="$CFLAGS -Wno-cast-function-type"])
AS_IF([$CC --version | grep -q "clang version 3."],
[CFLAGS="$CFLAGS -Wno-tautological-compare"])
check_cc_cxx_flag([-Waddress], [CFLAGS="$CFLAGS -Wno-address"])
dnl End of -W... compiler checks.
@@ -325,6 +304,8 @@ dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically.
])
AC_CACHE_CHECK([if your system has IPv6 support], [ac_cv_ip6], [
save_libs="$LIBS"
LIBS="$LIBS $SOCKLIB"
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
@@ -339,23 +320,170 @@ exit(0); /* We only check if the code compiles, that's enough. We can deal with
if test "$ac_cv_ip6" = "no"; then
AC_MSG_ERROR([Your system does not support IPv6])
fi
LIBS="$save_libs"
AC_CHECK_HEADER(sys/param.h,
AC_DEFINE([PARAMH], [], [Define if you have the <sys/param.h> header file.]))
AC_CHECK_HEADER(stdlib.h,
AC_DEFINE([STDLIBH], [], [Define if you have the <stdlib.h> header file.]))
AC_CHECK_HEADER(stddef.h,
AC_DEFINE([STDDEFH], [], [Define if you have the <stddef.h> header file.]))
AC_CHECK_HEADER(sys/syslog.h,
AC_DEFINE([SYSSYSLOGH], [], [Define if you have the <sys/syslog.h> header file.]))
AC_CHECK_HEADER(unistd.h,
AC_DEFINE([UNISTDH], [], [Define if you have the <unistd.h> header file.]))
AC_CHECK_HEADER(string.h,
AC_DEFINE([STRINGH], [], [Define if you have the <string.h> header file.]))
AC_CHECK_HEADER(strings.h,
AC_DEFINE([STRINGSH], [], [Define if you have the <strings.h> header file.]))
AC_CHECK_HEADER(malloc.h,
AC_DEFINE([MALLOCH], [<malloc.h>], [Define to <malloc.h> you need malloc.h.]))
AC_CHECK_HEADER(sys/rusage.h,
AC_DEFINE([RUSAGEH], [], [Define if you have the <sys/rusage.h> header file.]))
AC_CHECK_HEADER(glob.h,
AC_DEFINE([GLOBH], [], [Define if you have the <glob.h> header file.]))
AC_CHECK_HEADERS([stdint.h inttypes.h])
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_SIZE_T
AC_TYPE_INTPTR_T
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
AC_STRUCT_TM
AC_TYPE_UID_T
unreal_CHECK_TYPE_SIZES
dnl in the future, it would be nice to avoid AC_TRY_RUN to allow
dnl better support for crosscompiling.
AC_CACHE_CHECK([what kind of nonblocking sockets you have], [ac_cv_nonblocking],[
save_libs="$LIBS"
LIBS="$LIBS $SOCKLIB"
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/file.h>
#include <signal.h>
alarmed() {
exit(1);
}
int main() {
#ifdef O_NONBLOCK
char b[12], x[32];
int f, l = sizeof(x);
f = socket(AF_INET, SOCK_DGRAM, 0);
if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) {
signal(SIGALRM, alarmed);
alarm(3);
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
alarm(0);
exit(0);
}
#endif
exit(1);
}
],ac_cv_nonblocking=O_NONBLOCK,[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/file.h>
#include <signal.h>
alarmed() {
exit(0);
}
int main() {
#ifdef O_NDELAY
char b[12], x[32];
int f, l = sizeof(x);
f = socket(AF_INET, SOCK_DGRAM, 0);
if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) {
signal(SIGALRM, alarmed);
alarm(3);
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
alarm(0);
exit(0);
}
#endif
exit(1);
}],ac_cv_nonblocking=O_NDELAY,[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/file.h>
#include <signal.h>
alarmed() {
exit(1);
}
int main() {
#ifdef FIONBIO
char b[12], x[32];
int f, l = sizeof(x);
f = socket(AF_INET, SOCK_DGRAM, 0);
if (f >= 0 && !(fcntl(f, F_SETFL, FIONBIO))) {
signal(SIGALRM, alarmed);
alarm(3);
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
alarm(0);
exit(0);
}
#endif
exit(1);
], ac_cv_nonblocking=FIONBIO,ac_cv_nonblocking=none)])])])
if test "$ac_cv_nonblocking" = "O_NONBLOCK"; then
AC_DEFINE([NBLOCK_POSIX], [], [Define if you have O_NONBLOCK])
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
AC_DEFINE([NBLOCK_BSD], [], [Define if you have O_NDELAY])
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
AC_DEFINE([NBLOCK_SYSV], [], [Define if you have FIONBIO])
fi
LIBS="$save_libs"
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_FUNC_SETPGRP
AC_FUNC_SETVBUF_REVERSED
AC_CHECK_FUNCS(snprintf,
AC_DEFINE([HAVE_SNPRINTF], [], [Define if you have snprintf]))
AC_CHECK_FUNCS(vsnprintf,
AC_DEFINE([HAVE_VSNPRINTF], [], [Define if you have vsnprintf]))
AC_CHECK_FUNCS(strlcpy,
AC_DEFINE([HAVE_STRLCPY], [], [Define if you have strlcpy. Otherwise, an internal implementation will be used!]))
AC_CHECK_FUNCS(strlcat,
AC_DEFINE([HAVE_STRLCAT], [], [Define if you have strlcat]))
AC_CHECK_FUNCS(strlncat,
AC_DEFINE([HAVE_STRLNCAT], [], [Define if you have strlncat]))
AC_CHECK_FUNCS(inet_pton,
AC_DEFINE([HAVE_INET_PTON], [], [Define if you have inet_pton]))
AC_CHECK_FUNCS(inet_ntop,
AC_DEFINE([HAVE_INET_NTOP], [], [Define if you have inet_ntop]))
dnl Check if it supports C99 style variable length arrays
AC_CACHE_CHECK([if C99 variable length arrays are supported], [ac_cv_varlen_arrays], [
AC_TRY_COMPILE(,[
int main() {
int i = 5;
int a[i];
a[0] = 1;
return 0;
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
])
if test "$ac_cv_varlen_arrays" = "yes" ; then
AC_DEFINE([HAVE_C99_VARLEN_ARRAY], [], [Define if you have a compiler with C99 variable length array support])
fi
AC_CHECK_FUNCS([setrlimit])
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([gettimeofday],
[AC_DEFINE([GETTIMEOFDAY], [], [Define if you have gettimeofday])],
[AC_CHECK_FUNCS([lrand48],
[AC_DEFINE([LRADN48], [], [Define if you have lrand48])])])
AC_CHECK_FUNCS([getrusage],
[AC_DEFINE([GETRUSAGE_2], [], [Define if you have getrusage])],
[AC_CHECK_FUNCS([times],
@@ -375,14 +503,65 @@ AC_CHECK_FUNCS([setproctitle],
]
)
AC_CHECK_FUNCS(explicit_bzero,AC_DEFINE([HAVE_EXPLICIT_BZERO], [], [Define if you have explicit_bzero]))
AC_CACHE_CHECK([what type of signals you have], [ac_cv_sigtype], [
AC_TRY_RUN([
#include <signal.h>
int main() {
sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L);
}
], ac_cv_sigtype=POSIX, [
AC_TRY_RUN([
#include <signal.h>
int calls = 0;
void handler()
{
if (calls)
return;
calls++;
kill(getpid(), SIGTERM);
sleep(1);
}
int main() {
signal(SIGTERM, handler);
kill(getpid(), SIGTERM);
exit(0);
}
], ac_cv_sigtype=BSD,ac_cv_sigtype=SYSV)])])
if test "$ac_cv_sigtype" = "POSIX"; then
AC_DEFINE([POSIX_SIGNALS], [], [Define if you have POSIX signals])
elif test "$ac_cv_sigtype" = "BSD"; then
AC_DEFINE([BSD_RELIABLE_SIGNALS], [], [Define if you have BSD signals])
else
AC_DEFINE([SYSV_UNRELIABLE_SIGNALS], [], [Define if you have SYSV signals])
fi
AC_CHECK_FUNCS(strtoken,,AC_DEFINE([NEED_STRTOKEN], [], [Define if you need the strtoken function.]))
AC_CHECK_FUNCS(strtok,,AC_DEFINE([NEED_STRTOK], [], [Define if you need the strtok function.]))
AC_CHECK_FUNCS(strerror,,AC_DEFINE([NEED_STRERROR], [], [Define if you need the strerror function.]))
AC_CHECK_FUNCS(index,,AC_DEFINE([NOINDEX], [], [Define if you do not have the index function.]))
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
AC_CHECK_FUNCS(bcopy,,AC_DEFINE([NEED_BCOPY], [], [Define if you don't have bcopy]))
AC_CHECK_FUNCS(bcmp,,AC_DEFINE([NEED_BCMP], [], [Define if you don't have bcmp]))
AC_CHECK_FUNCS(bzero,,AC_DEFINE([NEED_BZERO], [], [Define if you need bzero]))
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE([GOT_STRCASECMP], [], [Define if you have strcasecmp]))
save_libs="$LIBS"
LIBS="$LIBS $SOCKLIB $INETLIB"
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE([NEED_INET_ADDR], [], [Define if you need inet_addr]))
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE([NEED_INET_NTOA], [], [Define if you need inet_ntoa]))
LIBS="$save_libs"
AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog]))
AC_SUBST(STRTOUL)
AC_SUBST(CRYPTOLIB)
AC_SUBST(MODULEFLAGS)
AC_SUBST(DYNAMIC_LDFLAGS)
AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
[AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])],
[AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])])
AC_ARG_WITH([sendq], [AS_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
[AC_DEFINE_UNQUOTED([MAXSENDQLENGTH], [$withval], [Set to the max sendq you want])],
[AC_DEFINE([MAXSENDQLENGTH], [3000000], [Set to the max sendq you want])])
AC_ARG_WITH(permissions, [AS_HELP_STRING([--with-permissions=permissions], [Specify the default permissions for
configuration files])],
dnl We have an apparently out-of-place 0 here because of a MacOSX bug and because
@@ -409,13 +588,6 @@ AC_ARG_WITH(confdir, [AS_HELP_STRING([--with-confdir=path],[Specify the director
[AC_DEFINE_UNQUOTED([CONFDIR], ["$HOME/unrealircd/conf"], [Define the location of the configuration files])
CONFDIR="$HOME/unrealircd/conf"])
dnl We have to pass the builddir as well, for the module manager
AC_ARG_WITH(builddir, [AS_HELP_STRING([--with-builddir=path],[Specify the build directory])],
[AC_DEFINE_UNQUOTED([BUILDDIR], ["$withval"], [Define the build directory])
BUILDDIR="$withval"],
[AC_DEFINE_UNQUOTED([BUILDDIR], ["$BUILDDIR_NOW"], [Specify the build directory])
BUILDDIR="$BUILDDIR_NOW"])
AC_ARG_WITH(modulesdir, [AS_HELP_STRING([--with-modulesdir=path],[Specify the directory for loadable modules])],
[AC_DEFINE_UNQUOTED([MODULESDIR], ["$withval"], [Define the location of the modules])
MODULESDIR="$withval"],
@@ -475,7 +647,6 @@ AS_IF([test "x$PRIVATELIBDIR" = "x"],
LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
export LDFLAGS])
AC_SUBST(BUILDDIR)
AC_SUBST(BINDIR)
AC_SUBST(SCRIPTDIR)
AC_SUBST(CONFDIR)
@@ -506,22 +677,29 @@ AC_ARG_WITH(showlistmodes,
[AS_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([LIST_SHOW_MODES], [], [Define if you want modes shown in /list])])])
AC_ARG_WITH(shunnotices, [AS_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([SHUN_NOTICES], [], [Define if you want users to be notified when their shun is removed])])])
AC_ARG_WITH(no-operoverride, [AS_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([NO_OPEROVERRIDE], [], [Define if you want OperOverride disabled])])])
AC_ARG_WITH(disableusermod, [AS_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([DISABLE_USERMOD], [], [Define if you want to disable /set* and /chg*])])])
AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([OPEROVERRIDE_VERIFY], [], [Define if you want opers to have to use /invite to join +s/+p channels])])])
AC_ARG_WITH(system-pcre2, [AS_HELP_STRING([--without-system-pcre2], [Use the system pcre2 package instead of bundled, discovered using pkg-config])], [], [with_system_pcre2=yes])
AC_ARG_WITH(disable-extendedban-stacking, [AS_HELP_STRING([--with-disable-extendedban-stacking], [Disable extended ban stacking])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([DISABLE_STACKED_EXTBANS], [], [Define to disable extended ban stacking (~q:~c:\#chan, etc)])])])
AC_ARG_WITH(tre, [AS_HELP_STRING([--without-tre], [Do not use the old deprecated TRE regex library])], [with_tre=no], [with_tre=yes])
AC_ARG_WITH(system-tre, [AS_HELP_STRING([--with-system-tre], [Use the system tre package instead of bundled, discovered using pkg-config])], [], [with_system_tre=no])
AC_ARG_WITH(system-pcre2, [AS_HELP_STRING([--with-system-pcre2], [Use the system pcre2 package instead of bundled, discovered using pkg-config])], [], [with_system_pcre2=no])
AC_ARG_WITH(system-argon2, [AS_HELP_STRING([--without-system-argon2], [Use bundled version instead of system argon2 library. Normally autodetected via pkg-config])], [], [with_system_argon2=yes])
AC_ARG_WITH(system-sodium, [AS_HELP_STRING([--without-system-sodium], [Use bundled version instead of system sodium library. Normally autodetected via pkg-config])], [], [with_system_sodium=yes])
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--without-system-cares], [Use bundled version instead of system c-ares. Normally autodetected via pkg-config.])], [], [with_system_cares=yes])
CHECK_SSL
CHECK_SSL_CTX_SET1_CURVES_LIST
CHECK_SSL_CTX_SET_MIN_PROTO_VERSION
CHECK_SSL_CTX_SET_SECURITY_LEVEL
CHECK_ASN1_TIME_diff
CHECK_X509_get0_notAfter
AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])],
[enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"])
AS_IF([test $enable_dynamic_linking = "yes"],
@@ -536,10 +714,34 @@ AC_ARG_ENABLE([werror],
AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan],
[Enable address sanitizer and other debugging options, not recommended for production servers!])],
[Enable address sanitizer, not recommended for production servers!])],
[ac_cv_asan="$enableval"],
[ac_cv_asan="no"])
AC_MSG_CHECKING([if FD_SETSIZE is large enough to allow $ac_fd file descriptors])
AC_COMPILE_IFELSE([
#include <sys/types.h>
#include <sys/time.h>
int main() {
#if FD_SETSIZE < $ac_fd
#error FD_SETSIZE is smaller than $ac_fd
#endif
exit(0);
}
], AC_MSG_RESULT([yes]), [
# must be passed on the commandline to avoid a ``warning, you redefined something''
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
AC_MSG_RESULT(no)
])
AC_SUBST([FD_SETSIZE])
case `uname -s` in
*SunOS*|*solaris*)
AC_DEFINE([_SOLARIS], [], [Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris])
IRCDLIBS="$IRCDLIBS -lresolv "
;;
esac
AC_CHECK_FUNCS([poll],
AC_DEFINE([HAVE_POLL], [], [Define if you have poll]))
AC_CHECK_FUNCS([epoll_create epoll_ctl epoll_wait],
@@ -552,15 +754,62 @@ dnl fail on certain solaris boxes. We might as
dnl well set it here.
export PATH_SEPARATOR
dnl Use system pcre2 when available, unless --without-system-pcre2.
has_system_pcre2="no"
AS_IF([test "x$with_system_pcre2" = "xyes"],[
PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00,[has_system_pcre2=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libpcre2*])],[has_system_pcre2=no])])
AS_IF([test "x$with_tre" = "xyes"],[
AC_DEFINE([USE_TRE], [], [Use the old deprecated TRE regex library])
])
AS_IF([test "$has_system_pcre2" = "no"], [
AS_IF([test "x$with_system_tre" = "xno"],[
AS_IF([test "x$with_tre" = "xyes"],[
compile_tre="yes"
])
])
AS_IF([test "x$compile_tre" = "xyes"],[
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
tre_version="0.8.0-git"
AC_MSG_RESULT(extracting TRE regex library)
cur_dir=`pwd`
cd extras
dnl remove old tre directory to force a recompile...
dnl and remove its installation prefix just to clean things up.
rm -rf tre-$tre_version rege[]xp
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz tre.tar.gz
else
cp tre.tar.gz tre.tar.gz.bak
gunzip -f tre.tar.gz
cp tre.tar.gz.bak tre.tar.gz
tar xf tre.tar
fi
AC_MSG_RESULT(configuring TRE regex library)
cd tre-$tre_version
./configure --disable-agrep --enable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp --libdir=$PRIVATELIBDIR || exit 1
AC_MSG_RESULT(compiling TRE regex library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing TRE regex library)
$ac_cv_prog_MAKER install || exit 1
TRE_CFLAGS="-I$cur_dir/extras/regexp/include"
AC_SUBST(TRE_CFLAGS)
TRE_LIBS=
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --libs tre.pc`"])
dnl For when pkg-config isn't available -- or for when pkg-config
dnl doesn't see the tre.pc file somehow... (#3982)
AS_IF([test -z "$TRE_LIBS"],
[TRE_LIBS="$PRIVATELIBDIR/libtre.so"])
AC_SUBST(TRE_LIBS)
cd $cur_dir
])
AS_IF([test "x$with_system_tre" = "xyes"],[
dnl use pkgconfig for tre:
PKG_CHECK_MODULES([TRE], tre >= 0.7.5)
])
AS_IF([test "x$with_system_pcre2" = "xno"],[
dnl REMEMBER TO CHANGE WITH A NEW PCRE2 RELEASE!
pcre2_version="10.36"
pcre2_version="10.32"
AC_MSG_RESULT(extracting PCRE2 regex library)
cur_dir=`pwd`
cd extras
@@ -584,6 +833,7 @@ AC_MSG_RESULT(installing PCRE2 regex library)
$ac_cv_prog_MAKER install || exit 1
PCRE2_CFLAGS="-I$cur_dir/extras/pcre2/include"
AC_SUBST(PCRE2_CFLAGS)
PCRE2_LIBS=
dnl See c-ares's compilation section for more info on this hack.
dnl ensure that we're linking against the bundled version of pcre2
@@ -596,6 +846,9 @@ AS_IF([test -z "$PCRE2_LIBS"],
[PCRE2_LIBS="$PRIVATELIBDIR/libpcre2-8.so"])
AC_SUBST(PCRE2_LIBS)
cd $cur_dir
],[
dnl use pkgconfig for pcre2:
PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00)
])
dnl Use system argon2 when available, unless --without-system-argon2
@@ -628,11 +881,6 @@ AC_MSG_RESULT(installing Argon2 library)
$ac_cv_prog_MAKER install PREFIX=$cur_dir/extras/argon2 || exit 1
# We need to manually copy the libs to PRIVATELIBDIR because
# there is no way to tell make install in libargon2 to do so.
# BUT FIRST, delete the old library so it becomes an unlink+create
# operation rather than overwriting the existing file which would
# lead to a crash of the currently running IRCd.
rm -f "$PRIVATELIBDIR/"libargon2*
# Now copy the new library files:
cp -av $cur_dir/extras/argon2/lib/* $PRIVATELIBDIR/
ARGON2_CFLAGS="-I$cur_dir/extras/argon2/include"
AC_SUBST(ARGON2_CFLAGS)
@@ -641,55 +889,6 @@ AC_SUBST(ARGON2_LIBS)
cd $cur_dir
])
dnl Use system sodium when available, unless --without-system-sodium
has_system_sodium="no"
AS_IF([test "x$with_system_sodium" = "xyes"],[
PKG_CHECK_MODULES([SODIUM], [libsodium >= 1.0.16],[has_system_sodium=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libsodium*])],[has_system_sodium=no])])
AS_IF([test "$has_system_sodium" = "no"],[
dnl REMEMBER TO CHANGE WITH A NEW SODIUM RELEASE!
sodium_version="1.0.18"
AC_MSG_RESULT(extracting sodium library)
cur_dir=`pwd`
cd extras
dnl remove old sodium directory to force a recompile...
dnl and remove its installation prefix just to clean things up.
rm -rf sodium-$sodium_version sodium
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz libsodium.tar.gz
else
cp libsodium.tar.gz libsodium.tar.gz.bak
gunzip -f libsodium.tar.gz
cp libsodium.tar.gz.bak libsodium.tar.gz
tar xf libsodium.tar
fi
AC_MSG_RESULT(compiling sodium library)
cd libsodium-$sodium_version
save_cflags="$CFLAGS"
CFLAGS="$orig_cflags"
export CFLAGS
./configure --prefix=$cur_dir/extras/sodium --libdir=$PRIVATELIBDIR --enable-shared --disable-static --enable-opt || exit 1
CFLAGS="$save_cflags"
AC_MSG_RESULT(compiling sodium resolver library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing sodium resolver library)
$ac_cv_prog_MAKER install || exit 1
SODIUM_CFLAGS="-I$cur_dir/extras/sodium/include"
AC_SUBST(SODIUM_CFLAGS)
SODIUM_LIBS=
dnl See c-ares's compilation section for more info on this hack.
dnl ensure that we're linking against the bundled version
dnl (we only reach this code if linking against the bundled version is desired).
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
[SODIUM_LIBS="`$ac_cv_path_PKGCONFIG --libs libsodium.pc`"])
dnl For when pkg-config isn't available
AS_IF([test -z "$SODIUM_LIBS"],
[SODIUM_LIBS="-L$PRIVATELIBDIR -lsodium"])
AC_SUBST(SODIUM_LIBS)
cd $cur_dir
])
dnl Use system c-ares when available, unless --without-system-cares.
has_system_cares="no"
AS_IF([test "x$with_system_cares" = "xyes"],[
@@ -700,7 +899,7 @@ AS_IF([test "$has_system_cares" = "no"], [
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
dnl NOTE: when changing this here, ALSO change it in extras/curlinstall
dnl and in the comment in this file around line 400!
cares_version="1.17.2"
cares_version="1.15.0"
AC_MSG_RESULT(extracting c-ares resolver library)
cur_dir=`pwd`
cd extras
@@ -719,7 +918,7 @@ cd c-ares-$cares_version
save_cflags="$CFLAGS"
CFLAGS="$orig_cflags"
export CFLAGS
./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared --disable-tests || exit 1
./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared || exit 1
CFLAGS="$save_cflags"
AC_MSG_RESULT(compiling c-ares resolver library)
$ac_cv_prog_MAKER || exit 1
@@ -779,7 +978,7 @@ fi
dnl Address sanitizer build
if test "$ac_cv_asan" = "yes" ; then
CFLAGS="$CFLAGS -O1 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD"
CFLAGS="$CFLAGS -O0 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD"
IRCDLIBS="-fsanitize=address $IRCDLIBS"
fi
@@ -794,8 +993,8 @@ AC_CONFIG_FILES([Makefile
src/modules/usermodes/Makefile
src/modules/snomasks/Makefile
src/modules/extbans/Makefile
src/modules/cap/Makefile
src/modules/third/Makefile
extras/unrealircd-upgrade-script
unrealircd])
AC_OUTPUT
chmod 0700 unrealircd
-47
View File
@@ -1,47 +0,0 @@
pub rsa4096 2015-07-02 [SC] [expires: 2025-06-29]
1D2D2B03A0B68ED11D68A24BA7A21B0A108FF4A9
uid UnrealIRCd releases (for verification of software downloads only!) <releases@unrealircd.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFWVOFYBEACsWFWM25VDaGXq22GSTJo1O53bgAMCZsqj9VKDriUmj7uvozlp
BGHgYFVM4ZT1FUAsWedeIP2aLLkYGmH4odVaAk7IeUa7HfpE45/F6+End6bCpYGe
1UdVQM/Bu3VHoUtVvtIFg788JwbplroapA/D0pi/EAN8WYnN9etgLM2lvzwbjBz9
xTOefwvgRsKbCH63VW7NCyquEcdEJxnMHB7JZUEuzrOUvhAiIkwKw8wbcn36zX0i
wcAFtVO5uVTA/Tdu6nWsZvqVc6R1E3usJzWSwbmoUtPUM5Mk9I9gL73EsqEbgs5N
trT00r75RcfiThNEP8NtDtB8AFum6OCSg/+8bdJmKcWVKpuB+lUvP0d4UAqm5vmH
/KQh/nyHXKvAvhWqHizozP1WGevpxLFHMjm/+1T167Iil/3UcUyn9qd0CuYSszJw
y5Vp6iJHkVo8qxI89rkzSDRi+ppLCBTwuN01ducftDxvIQMVrphdKZLPGzQrltkh
lIN4XNS6cOOsrbbk5+Kc2xih6qt+DyiRHaNFQnoMdRVeIrmf4u4ClMcHlzELV8gF
D+s0BbVqhVwAhbKMfKaVmvVlj8bSET0z2s0vhZODwlgANpDBLNsIU6leiYRAzub5
WY5Hz1m7P8ZXSMPh4/vGh1kg3E9IRKLZDZ65gEYr8nNCzbAYmDQ3IkplIwARAQAB
tFxVbnJlYWxJUkNkIHJlbGVhc2VzIChmb3IgdmVyaWZpY2F0aW9uIG9mIHNvZnR3
YXJlIGRvd25sb2FkcyBvbmx5ISkgPHJlbGVhc2VzQHVucmVhbGlyY2Qub3JnPokC
PgQTAQIAKAUCVZU4VgIbAwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA
CgkQp6IbChCP9KlFzQ/+ObuBgCtXvLcbpq7C2usHxgtEB1rV9khLGugJXevjMaf3
+vo4d5cd5go665po8oqDnSUfq+8LPDj/nnroKQcS5Kb4KdHz6rn+53rHWtw6PPGN
KswFS05Vy2AkYg4nVXvrGm0oV173qOms2REoStP0mEm7F7ZTJ6k1qgmZ8tcFgfMm
fqEl94O5zDWycaJx7K0h3n+xUyhh+lT9Zl3duzVzCc+YI+dD6UOIXBF9TF9fIb8m
300MBLwTTHq64nGsZbhfzCHNHAO6hTy5XmE+d1g4R87rKim6lP0V1LTbvhOhYhZg
0JrVOr9dhHY4tw1xglz++nMM24t2O9zoRoZjDMHBzzBm3gJq3G160kxVZKKcVaQd
nfYvPOBNtyEyaIIJD8vs2Z9jiJLjpoz0LhnE2TmE4M6YqBsSWfFuPrHE+PJQyEQg
2zEoTRCSFSLaq+5kl3vKM/cblwkQeKkNe8u6bDNk7bEPUCQstyOqcvoTWE2gs3f2
n7wI7BzW3uX5YUp1CcdPig1XxveI4XaKKrhRacvGvvNHdXw1scj1K0SCXvy4EPpf
dLthTC6BHwO2P56wlxK0MRL/GD72ttBCcsyLWYdL9OIT6Lx4bZVhvEjKDapWAL04
X1mXMHUK1iO4lunbqP3lu6F8qsuI/B2sIiJK7aSjv4bjVRw/jcESrhmCvnN3B3mI
RgQQEQIABgUCVZU9NQAKCRBpsoj7n/A5N4E2AJ4i5z98+mA8Ug9utdslGvHFRq+s
PgCeILJ7/dJFYZFz1YpaNTbRCHIesaWIXgQQEQgABgUCVZU9ZwAKCRBuZ21Ff+GZ
pueXAP9bJ1hPWa3ITIoapW9eTT1eNv+17KqcclwZzxCopbUkFAD+NptTuXpeivM+
USWsQJFpFlLdDckcv8QzLQwgzZ8TXtKJAhwEEAEIAAYFAlg796cACgkQ3pO4tH50
XrMyWQ/+NJyhO5yibAhN4RgCJ+qFdp9Llm+SQGFjVtw8L7nv3M0Us8xspmVlX7TZ
/OK6AhUyaqAmg3ZXruaetrBVIAlP675cXJ1NIPfyT+PvMUbupvqBhyPZKqdnh2WT
ZMYdQrvw503h+BlyjGeAWd34tLhtiM1A69tntFu2A7bKhkoxE7KoyCjKmLgUb30M
r5guxb6DCUXK8m5ooHl58kLtJrTpW9l3YYXpKe/POYPIK6ULZN7TChtFOTJ+ebx1
2LaQGGdRKaCSM1OX7mfvBG8GtljQcGoP+f5TmvRbCGGfiR9r6MdgG6LYTuYf7pR7
NBwxveqwJV4iOmd9b+doIra5tRX0TqEKdEqpVHhm4UTZlHVyIpg97Lc/7WiWS1Z5
UIhT4YxlztPUvWmCXlleNEqBYK86OsVFqryHDVKtPbH65k/xKfu8w/hHkv7TQ23r
eoMs1uBlaUWe3orgUOr0tnFLXz809SAwC9sxQq9TWTm50NqiaQvBVInSUssFYPkG
qBljIXtdUzFGBn3sTpFRY6p2yzIo54EQmQAvMQPEJkQ8JQJ47au82DxFUBZYKci5
lsJfRueGnn5A36eUZdkhZ6Dm61M3YldYcpRa4Xfi0AWbg5yW/uUipc36Ey+vwWyl
x+1IZgjnIIMsyDLuq2tm5p1tiJK2N9L0rxQb/DIK7j8+ZvmlFZQ=
=foLZ
-----END PGP PUBLIC KEY BLOCK-----
+66
View File
@@ -0,0 +1,66 @@
UnrealIRCd 4.2.4.1 Release Notes
=================================
This version, 4.2.4.1, fixes an issue with Debian 10. On Debian 10 the
list of permitted SSL/TLS protocols was ignored (set::ssl::protocols).
Other than that, set::ssl::outdated-protocols and set::ssl::outdated-ciphers
are now configurable (rarely needed, though).
Below are the release notes of previous release, 4.2.4.
==[ 4.2.4 release notes ]==
This release fixes a crash issue if UnrealIRCd is configured to use utf8 or
chinese character sets in set::allowed-nickchars. This is not the default.
We don't expect many users to run their IRCd with this enabled, as the utf8
support was tagged as experimental and the chinese/gbk implementation is
incomplete.
In addition to the bug fix from above, this release also contains a number
of other fixes and enhancements. In particular there were some Windows
fixes and the reputation and connthrottle modules are now working better.
Enhancements:
* Improve server linking error messages
* Enhance WHOX to WHO auto-conversion for "WHO +s serv.er.name"
Major issues fixed:
* A crash issue if using utf8 or chinese in set::allowed-nickchars.
* The Windows version only accepted very few clients.
* The Windows version should warn and not error if using old-style regex.
* The Windows version did not save the reputation database.
Minor issues fixed:
* The 'connthrottle' module incorrectly allowed 0 unknown users in when
it was throttling, rather than the set rate.
* The 'reputation' module did not show scores for remote users in /WHOIS,
only after 5 minutes had passed.
* Some users may have experienced a "Registration Timeout" error when
connecting. This happened because their ident server accepted the TCP/IP
connection but after that failed to respond to the ident request. We
have now lowered set::ident::read-timeout to 15 seconds to fix this.
* If successfully logged in using SASL then avoid an "You are already
logged in" error message that could happen due to PASS forwarding.
The message was harmless, but annoying in some setups.
Module coders / Developers:
* If you are debugging or developing modules then we encourage you to
use AddressSanitizer. This does come at a 10x performance slowdown
and can consume a lot more memory, but it is very useful in tracing
common C mistakes such as out of bounds read/writes, double frees,
and so on. You will see exactly where a mistake was made.
To use this, in the last ./Config question you answer: --enable-asan
IRC protocol:
* No changes
Other changes:
* Various HELPOP updates
Future versions:
* We intend to change the default plaintext oper policy from 'warn' to 'deny'
in the summer of 2019. This will deny /OPER when used from a non-SSL
connection. For security, IRC Operators should really use SSL/TLS!
==[ CHANGES IN OLDER RELEASES ]==
For changes in previous UnrealIRCd releases see doc/RELEASE-NOTES.old or
https://raw.githubusercontent.com/unrealircd/unrealircd/unreal42/doc/RELEASE-NOTES.old
-1162
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+143 -123
View File
@@ -1,123 +1,143 @@
Rules about patches & modifications to UnrealIRCd
1. When making a change, always add a small description in the commit log.
Don't forget to mention the bug# and credit the reporter (if any).
2. If new files are made, they must contain proper copyright headers.
3. Each bug or feature should have a bug# so people can have a discussion
about it. This has a few implications (read!!):
* People must report bugs/feature requests to bugs.unrealircd.org and
not on IRC, e-mail, etc.
* That means other people can see the bug# and comment on it. This means
discussion is easy to read back for each issue and not spread between
several IRC logs.
Furthermore, by using the bugtracker instead of directly committing,
people could point out that there might be a better way to do things
than you originally thought, or it might be that other devs don't like
it at all.
* If a head coder has 'acknowledged' or 'confirmed' the issue or stated
in a comment that it's OK to implement, then any dev may take the issue.
The dev should change the status to 'assigned' and work on it, then
commit and change it to 'resolved', set 'fixed in version' to the
correct release, and add a comment pasting the relevant commit log.
Of course other guidelines, in particular rule #7, still applies.
4. If you don't have direct write access to the repository then you can
submit changes as as PR on github. It is very much preferred to also
have a bugs.unrealircd.org entry for it as well (see previous item).
5. For the stable branch, in general, only commit changes that have an
associated bugid# and/or were discussed.
For branches currently in development (alpha/beta) there's more freedom
and if you think the change will be small and is fine without a
discussion then feel free to commit.
6. Regarding reidenting, restructuring or other major code cleanups: please
discuss before doing so. The other devs might not agree with you on the
particular cleanup you have in mind which would result in another
clean-up-the-cleanup commit.
You may, however reindent and clean up individual sections when you are
working on fixing a particular bug# or implementing a new feature. In fact
you're encouraged to do so if the code is confusing without it. However,
obey the style of Unreal's code (mostly outlined in this document)
and do not introduce yet another (new) style. Also, be careful with doing
any cleanup: if you're unsure in any way about the use of something,
or something that looks redundant on first sight, then look more
carefully... it might indeed be useless and/or redundant, but it might
also be a subtle thing that can create great bugs when 'cleaned up'.
7. During the Release Candidate stage (from RC1 until the final release)
only the head coder may commit directly, all others should ask and
present their patch before committing. Yes, even if you are changing
only 1 line of code or text.
9. UnrealIRCd should compile on all supported operating systems and
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
higher on Windows. This means you cannot blindly use all C99 extensions.
10. Coders must test their code before committing.
11. /*
* These kind of comments
*/
NOT
// These kind of comments
12. if (something == 1)
{
moo; /* comment */
/* This does what what what */
cow(go(moo));
}
NOT
if (something == 1) {
}
13. Do not touch version.c.SH or version.h, unless you are a head coder.
If you need a credit in, contact us
14. Protocol changes must be discussed before making patches for it.
15. We do NOT rip people off. If we use other people's code, it MUST be
properly credited.
16. We use tabsize 8 and we use tabs AND NOT SPACES.
Some code is old and horrible and has a mix of tabs and spaces used for
spacing, that's something we do not want to have ;)
17. Be careful about overflows. Do not do any unchecked string copies.
Instead of strcpy, strcat and sprintf/ircsprintf, use the following
functions: strlcpy, strlcat, snprintf/ircnsprintf.
If you are copying/writing character-by-character or word-by-word in a
loop, eg using *p++ = x; then be very sure about your size counting.
Often it's better to avoid such code altogether, by simply using
strlcat for everything.
18. Speed. When optimizing or writing code, keep in mind that readability and
stability comes FIRST, and after that comes speed. So we'd rather prefer some
readable code (even if difficult) over some odd highly optimized routine which
nobody understands, is difficult to extend, and might have several bugs.
As mentioned earlier: use ircsnprintf, not snprintf (this is because
ircsnprintf is optimized for simple strings like the ones we use).
ircsnprintf calls snprintf when it finds a (non-simple) format specifier it
can't handle. Simple format specifiers do not have prefixes other than
h and l.
19. Initialize your structs and use the proper memory calls.
In UnrealIRCd we use safe_alloc, safe_free, safe_strdup and safe_strldup.
Do NOT use malloc, calloc or strdup.
20. Comment your code! This should speak for itself...
Put comments wherever you think they are needed, to aid any further coders
with reading your code.. and, in fact, it will aid yourself as well if you
would look back at your code 2 years later.
If there's some obscure pitfall, DO mention it! Don't just "hope" a next
author will see it like you did.
21. Use enums whenever possible, rather than #define constants. Besides making
things more clean, it also aids debugging.
Rules about patches & modifications to UnrealIRCd
1. When making a change, always add a small description in the commit log.
Don't forget to mention the bug# and credit the reporter (if any).
2. If new files are made, it must contain proper copyright headers.
3. If you want to submit patches (f.e. if you don't have write access to
the repository), then submit them to https://bugs.unrealircd.org/
using "hg export" or "hg diff". Naturally include a clear description
of what the change does.
4. Each bug or feature should have a bug# so people can have a discussion
about it. This has a few implications (read!!):
* People must report bugs/feature requests to bugs.unrealircd.org and
not on IRC, e-mail, etc.
* That means other people can see the bug# and comment on it. This means
discussion is easy to read back for each issue and not spread between
several IRC logs.
Furthermore, by using the bugtracker instead of directly committing,
people could point out that there might be a better way to do things
than you originally thought, or it might be that other devs don't like
it at all.
* If a head coder has 'acknowledged' or 'confirmed' the bug or stated in
a comment that it's OK to implement, then a dev may take the issue.
The dev should change the status to 'assigned' and work on it, then
commit and change it to 'resolved', set 'fixed in version' to next
release, and add a comment pasting the relevant Changelog item and the
releaseid (.XYZ).
Of course other guidelines, like #7 and #8 still apply.
5. Do not commit changes that do not have an associated bug# and have not
had any discussion.
3.2.x: Small/tiny bugfixes that do not change any functionality, are
very unlikely to break anything and definitely don't require any prior
discussion may be exempted.
3.4.x: During the alpha & beta stage it is permitted to commit fixes
and code cleanups / restructuring without any discussion.
However in general, and in particular for new features, it is appreciated
if there has been prior discussion on bugs.unrealircd.org (or by mail).
6. Regarding reidenting, restructuring or other major code cleanups: please
discuss before doing so. The other devs might not agree with you on the
particular cleanup you have in mind which would result in another
clean-up-the-cleanup commit.
You may, however reindent and clean up individual sections when you are
working on fixing a particular bug# or implementing a new feature. In fact
you're encouraged to do so if the code is confusing without it. However,
obey the style of Unreal's code (mostly outlined in this document)
and do not introduce yet another (new) style. Also, be careful with doing
any cleanup: if you're unsure in any way about the use of something,
or something that looks redundant on first sight, then look more
carefully... it might indeed be useless and/or redundant, but it might
also be a subtle thing that can create great bugs when 'cleaned up'.
7. Prior to a 3.2.x release: be very careful with any restructuring of a
subsystem or doing any major commits that may break things. Stuff like
this can be perfectly fine if there are many months to go, but are not
good to do a month before release. The head coder may impose additional
restrictions during such a period.
8. During the Release Candidate stage (from RC1 until the final release)
only the head coder may commit directly, all others should ask and
present their patch before committing. Yes, even if you are changing
only 1 line of code or text.
9. UnrealIRCd should compile on all supported operating systems and
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
higher on Windows. This means you cannot blindly use all C99 extensions.
10. Coders must test their code before committing.
11. /*
* These kind of comments
*/
NOT
// These kind of comments
12. if (something == 1)
{
moo; /* comment */
/* This does what what what */
cow(go(moo));
}
NOT
if (something == 1) {
}
13. Do not touch version.c.SH or version.h, unless you are a head coder
if you need a credit in, contact us
14. Protocol changes must be discussed before making patches for it.
15. We do NOT rip people off. If we use other people's code, it MUST be
properly credited.
16. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
Some code is old and horrible and has a mix of tabs and spaces used for
spacing, that's something we do not want to have ;)
17. Be careful about overflows. Do not do any unchecked string copies.
Instead of strcpy, strcat and sprintf/ircsprintf, use the following
functions: strlcpy, strlcat, snprintf/ircnsprintf.
If you are copying/writing character-by-character or word-by-word in a
loop, be very sure about your size counting. Sometimes it's possible
to avoid such code alltogether by just calling strlcat each time.
18. Speed. When optimizing or writing code, keep in mind that readability and
stability comes FIRST, and after that comes speed. So we'd rather prefer some
readable code (even if difficult) over some odd highly optimized routine which
nobody understands, is difficult to extend, and might have several bugs.
As mentioned earlier: use ircsnprintf, not snprintf (this is because
ircsnprintf is optimized for simple strings like the ones we use).
ircsnprintf calls snprintf when it finds a (non-simple) format specifier it
can't handle. Simple format specifiers do not have prefixes other than
h and l.
19. Initialize your structs and use the proper memory calls.
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
the memory area (eg: the struct) with zero's (a la calloc).
Use of MyMallocEx is suggested. In general you should not be using MyMalloc.
"But MyMalloc is faster!" you might say. This is true, but using MyMallocEx
has very little speed impact and enormous benefits: people tend to forget
to set certain fields in the struct to NULL, or much more common: when
someone later on (eg: 1 year later) adds a field to a struct, there could
be several places he/she needs to update to make sure x->something is NULL
after allocating a new struct. Bad idea.
Little speed impact, huge stability benefits, easy decision ;).
20. Comment your code! This should speak for itself...
Put comments wherever you think they are needed, to aid any further coders
with reading your code.. and, in fact, it will aid yourself as well if you
would look back at your code 2 years later.
If there's some obscure pitfall, DO mention it! Don't just "hope" a next
author will see it like you did.
21. Use enums whenever possible, rather than #define constants. Besides making
things more clean, it also aids debugging.
+9 -9
View File
@@ -5,39 +5,39 @@ alias identify {
target chanserv;
type services;
parameters "IDENTIFY %1-";
}
};
format "^[^#]" {
target nickserv;
type services;
parameters "IDENTIFY %1-";
}
};
type command;
}
};
alias services {
format "^#" {
target chanserv;
type services;
parameters "%1-";
}
};
format "^[^#]" {
target nickserv;
type services;
parameters "%1-";
}
};
type command;
}
};
alias register {
format "^#" {
target chanserv;
type services;
parameters "REGISTER %1-";
}
};
format "^[^#]" {
target nickserv;
type services;
parameters "REGISTER %1-";
}
};
type command;
}
};
+13 -12
View File
@@ -1,17 +1,18 @@
/* Anope Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias hostserv { type services; }
alias hs { target hostserv; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias botserv { type services; };
alias bs { target botserv; type services; };
alias hostserv { type services; };
alias hs { target hostserv; type services; };
include "aliases/aliases.conf";
+21 -21
View File
@@ -1,26 +1,26 @@
/* Atheme Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias hostserv { type services; }
alias hs { target hostserv; type services; }
alias saslserv { type services; }
alias sss { target saslserv; type services; }
alias gameserv { type services; }
alias gms { target gameserv; type services; }
alias groupserv { type services; }
alias grs { target groupserv; type services; }
alias alis { type services; }
alias ls { target alis; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias botserv { type services; };
alias bs { target botserv; type services; };
alias hostserv { type services; };
alias hs { target hostserv; type services; };
alias saslserv { type services; };
alias sss { target saslserv; type services; };
alias gameserv { type services; };
alias gms { target gameserv; type services; };
alias groupserv { type services; };
alias grs { target groupserv; type services; };
alias alis { type services; };
alias ls { target alis; type services; };
include "aliases/aliases.conf";
+25 -25
View File
@@ -1,33 +1,33 @@
/* Auspice Aliases */
/* Uncomment this, if you have enabled "MassServ, W and X" in auspice */
# alias massserv { type services; }
# alias ma { target massserv; type services; }
# alias W { type services; }
# alias X { type services; }
# alias massserv { type services; };
# alias ma { target massserv; type services; };
# alias W { type services; };
# alias X { type services; };
/* Uncomment this, if you have enabled "WebServ" in auspice */
# alias webserv { type services; }
# alias ws { target webserv; type services; }
# alias webserv { type services; };
# alias ws { target webserv; type services; };
alias agent { type services; }
alias adminserv { type services; }
alias as { target adminserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias hostserv { type services; }
alias ho { target hostserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias rootserv { type services; }
alias rs { target rootserv; type services; }
alias agent { type services; };
alias adminserv { type services; };
alias as { target adminserv; type services; };
alias botserv { type services; };
alias bs { target botserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias helpserv { type services; };
alias hs { target helpserv; type services; };
alias hostserv { type services; };
alias ho { target hostserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias rootserv { type services; };
alias rs { target rootserv; type services; };
include "aliases/aliases.conf";
+8 -8
View File
@@ -1,12 +1,12 @@
/* Cygnus Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias rootserv { type services; }
alias rs { target rootserv; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias rootserv { type services; };
alias rs { target rootserv; type services; };
include "aliases/aliases.conf";
+12 -12
View File
@@ -1,16 +1,16 @@
/* Epona Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { target helpserv; type services; };
alias botserv { type services; };
alias bs { target botserv; type services; };
include "aliases/aliases.conf";
+10 -10
View File
@@ -1,14 +1,14 @@
/* Generic Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { target helpserv; type services; };
include "aliases/aliases.conf";
+2 -2
View File
@@ -1,4 +1,4 @@
/* Generic StatServ Aliases */
alias statserv { type stats; }
alias ss { target statserv; type stats; }
alias statserv { type stats; };
alias ss { target statserv; type stats; };
+13 -13
View File
@@ -1,17 +1,17 @@
/* IRCServices Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias irciihelp { type services; }
alias statserv { type services; }
alias ss { target statserv; type services; }
alias nickserv { type services; };
alias ns { target nickserv; type services; };
alias chanserv { type services; };
alias cs { target chanserv; type services; };
alias memoserv { type services; spamfilter yes; };
alias ms { target memoserv; type services; spamfilter yes; };
alias operserv { type services; };
alias os { target operserv; type services; };
alias helpserv { type services; };
alias hs { target helpserv; type services; };
alias irciihelp { type services; };
alias statserv { type services; };
alias ss { target statserv; type services; };
include "aliases/aliases.conf";
+4 -4
View File
@@ -1,6 +1,6 @@
/* OperStats Aliases */
alias operserv { type stats; }
alias os { target operserv; type stats; }
alias statserv { type stats; }
alias ss { target statserv; type stats; }
alias operserv { type stats; };
alias os { target operserv; type stats; };
alias statserv { type stats; };
alias ss { target statserv; type stats; };
+19 -19
View File
@@ -30,22 +30,22 @@
*/
badword all { word "pussy"; }
badword all { word "fuck"; }
badword all { word "whore"; }
badword all { word "slut"; }
badword all { word "shit"; }
badword all { word "asshole"; }
badword all { word "bitch"; }
badword all { word "cunt"; }
badword all { word "vagina"; }
badword all { word "penis"; }
badword all { word "jackass"; }
badword all { word "*fucker*"; }
badword all { word "faggot"; }
badword all { word "fag"; }
badword all { word "horny"; }
badword all { word "dickhead"; }
badword all { word "sonuvabitch"; }
badword all { word "*fuck*"; }
badword all { word "tits"; }
badword all { word "pussy"; };
badword all { word "fuck"; };
badword all { word "whore"; };
badword all { word "slut"; };
badword all { word "shit"; };
badword all { word "asshole"; };
badword all { word "bitch"; };
badword all { word "cunt"; };
badword all { word "vagina"; };
badword all { word "penis"; };
badword all { word "jackass"; };
badword all { word "*fucker*"; };
badword all { word "faggot"; };
badword all { word "fag"; };
badword all { word "horny"; };
badword all { word "dickhead"; };
badword all { word "sonuvabitch"; };
badword all { word "*fuck*"; };
badword all { word "tits"; };
+20 -20
View File
@@ -17,26 +17,26 @@
*/
/* first.. deny everything, then allow known-good stuff... */
deny dcc { filename "*"; reason "Possible executable content"; soft yes; }
deny dcc { filename "*"; reason "Possible executable content"; soft yes; };
/* common image formats */
allow dcc { filename "*.jpg"; soft yes; }
allow dcc { filename "*.jpeg"; soft yes; }
allow dcc { filename "*.gif"; soft yes; }
allow dcc { filename "*.png"; soft yes; }
allow dcc { filename "*.bmp"; soft yes; }
allow dcc { filename "*.jpg"; soft yes; };
allow dcc { filename "*.jpeg"; soft yes; };
allow dcc { filename "*.gif"; soft yes; };
allow dcc { filename "*.png"; soft yes; };
allow dcc { filename "*.bmp"; soft yes; };
/* audio / video (but not scripted/playlists!) */
allow dcc { filename "*.mp1"; soft yes; }
allow dcc { filename "*.mp2"; soft yes; }
allow dcc { filename "*.mp3"; soft yes; }
allow dcc { filename "*.mpg"; soft yes; }
allow dcc { filename "*.mpeg"; soft yes; }
allow dcc { filename "*.m1v"; soft yes; }
allow dcc { filename "*.m2v"; soft yes; }
allow dcc { filename "*.vob"; soft yes; }
allow dcc { filename "*.wav"; soft yes; }
allow dcc { filename "*.mp1"; soft yes; };
allow dcc { filename "*.mp2"; soft yes; };
allow dcc { filename "*.mp3"; soft yes; };
allow dcc { filename "*.mpg"; soft yes; };
allow dcc { filename "*.mpeg"; soft yes; };
allow dcc { filename "*.m1v"; soft yes; };
allow dcc { filename "*.m2v"; soft yes; };
allow dcc { filename "*.vob"; soft yes; };
allow dcc { filename "*.wav"; soft yes; };
/* text / misc */
allow dcc { filename "*.txt"; soft yes; }
allow dcc { filename "*.log"; soft yes; }
allow dcc { filename "*.pdf"; soft yes; }
allow dcc { filename "*.c"; soft yes; }
allow dcc { filename "*.cpp"; soft yes; }
allow dcc { filename "*.txt"; soft yes; };
allow dcc { filename "*.log"; soft yes; };
allow dcc { filename "*.pdf"; soft yes; };
allow dcc { filename "*.c"; soft yes; };
allow dcc { filename "*.cpp"; soft yes; };
+83 -166
View File
@@ -1,19 +1,19 @@
/* Configuration file for UnrealIRCd 5
/* Configuration file for UnrealIRCd 4
*
* Simply copy this file to your conf/ directory, call it
* 'unrealircd.conf' and walk through it line by line (edit it!)
*
* Important: All lines, except { and } end with an ;
* This is very important, if you miss a ; somewhere then the
* configuration file parser will complain and the file will not
* Important: All lines, except the opening { line, end with an ;
* including };. This is very important, if you miss a ; somewhere then
* the configuration file parser will complain and your file will not
* be processed correctly!
* If this is your first experience with an UnrealIRCd configuration
* file then we really recommend you to read a little about the syntax,
* this only takes a few minutes and will help you a lot:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* UnrealIRCd 5 documentation (very extensive!):
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
* UnrealIRCd 4 documentation (very extensive!):
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
*
* Frequently Asked Questions:
* https://www.unrealircd.org/docs/FAQ
@@ -58,10 +58,10 @@ include "operclass.default.conf";
* have it's own sid).
*/
me {
name "irc.example.org";
info "ExampleNET Server";
name "irc.foonet.com";
info "FooNet Server";
sid "001";
}
};
/* The admin { } block defines what users will see if they type /ADMIN.
* It normally contains information on how to contact the administrator.
@@ -69,8 +69,8 @@ me {
admin {
"Bob Smith";
"bob";
"email@example.org";
}
"widely@used.name";
};
/* Clients and servers are put in class { } blocks, we define them here.
* Class blocks consist of the following items:
@@ -87,7 +87,7 @@ class clients
maxclients 1000;
sendq 200k;
recvq 8000;
}
};
/* Special class for IRCOps with higher limits */
class opers
@@ -96,7 +96,7 @@ class opers
maxclients 50;
sendq 1M;
recvq 8000;
}
};
/* Server class with good defaults */
class servers
@@ -105,7 +105,7 @@ class servers
connfreq 15; /* try to connect every 15 seconds */
maxclients 10; /* max servers */
sendq 20M;
}
};
/* Allow blocks define which clients may connect to this server.
* This allows you to add a server password or restrict the server to
@@ -116,21 +116,21 @@ class servers
/* Allow everyone in, but only 3 connections per IP */
allow {
mask *;
ip *@*;
class clients;
maxperip 3;
}
};
/* Example of a special allow block on a specific IP:
* Requires users on that IP to connect with a password. If the password
* is correct then it permits 20 connections on that IP.
*/
allow {
mask 192.0.2.1;
ip *@192.0.2.1;
class clients;
password "somesecretpasswd";
maxperip 20;
}
};
/* Oper blocks define your IRC Operators.
* IRC Operators are people who have "extra rights" compared to others,
@@ -158,8 +158,8 @@ oper bobsmith {
*/
operclass netadmin;
swhois "is a Network Administrator";
vhost netadmin.example.org;
}
vhost netadmin.mynet.org;
};
/* Listen blocks define the ports where the server should listen on.
* In other words: the ports that clients and servers may use to
@@ -172,35 +172,35 @@ oper bobsmith {
* port <port>;
* options {
* <options....>;
* }
* }
* };
* };
*/
/* Standard IRC port 6667 */
listen {
ip *;
port 6667;
}
};
/* Standard IRC SSL/TLS port 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
options { ssl; };
};
/* Special SSL/TLS servers-only port for linking */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
options { ssl; serversonly; };
};
/* NOTE: If you are on an IRCd shell with multiple IP's and you use
* the above listen { } blocks then you will likely get an
* 'Address already in use' error and the ircd won't start.
* This means you MUST bind to a specific IP instead of '*' like:
* listen { ip 1.2.3.4; port 6667; }
* listen { ip 1.2.3.4; port 6667; };
* Of course, replace the IP with the IP that was assigned to you.
*/
@@ -208,49 +208,50 @@ listen {
* Link blocks allow you to link multiple servers together to form a network.
* See https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
link hub.mynet.org
{
incoming {
mask *@something;
}
};
outgoing {
bind-ip *; /* or explicitly an IP */
hostname hub.example.org;
hostname hub.mynet.org;
port 6900;
options { tls; }
}
options { ssl; };
};
/* We use the SPKI fingerprint of the other server for authentication.
* Run './unrealircd spkifp' on the other side to get it.
* NOTE: requires UnrealIRCd 4.0.16 or later.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; };
class servers;
}
};
/* The link block for services is usually much simpler.
* For more information about what Services are,
* see https://www.unrealircd.org/docs/Services
*/
link services.example.org
link services.mynet.org
{
incoming {
mask 127.0.0.1;
}
};
password "changemeplease";
class servers;
}
};
/* U-lines give other servers (even) more power/commands.
* If you use services you must add them here.
* NEVER put the name of an UnrealIRCd server here!!!
*/
ulines {
services.example.org;
}
services.mynet.org;
};
/* Here you can add a password for the IRCOp-only /DIE and /RESTART commands.
* This is mainly meant to provide a little protection against accidental
@@ -259,13 +260,13 @@ ulines {
drpass {
restart "restart";
die "die";
}
};
/* The log block defines what should be logged and to what file.
* See also https://www.unrealircd.org/docs/Log_block
*/
/* This is a good default, it logs everything */
/* This is a good default, it logs almost everything */
log "ircd.log" {
flags {
oper;
@@ -273,14 +274,13 @@ log "ircd.log" {
server-connects;
kills;
errors;
flood;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
};
};
/* With "aliases" you can create an alias like /SOMETHING to send a message to
* some user or bot. They are usually used for services.
@@ -294,7 +294,7 @@ include "aliases/anope.conf";
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reserved for Services";
}
};
/* Ban ip.
* Note that you normally use /KLINE, /GLINE and /ZLINE for this.
@@ -302,19 +302,19 @@ ban nick {
ban ip {
mask 195.86.232.81;
reason "Hate you";
}
};
/* Ban server - if we see this server linked to someone then we delink */
ban server {
mask eris.berkeley.edu;
reason "Get out of here.";
}
};
/* Ban user - just as an example, you normally use /KLINE or /GLINE for this */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
}
};
/* Ban realname allows you to ban clients based on their 'real name'
* or 'gecos' field.
@@ -322,12 +322,12 @@ ban user {
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
};
ban realname {
mask "sub7server";
reason "sub7";
}
};
/* Ban and TKL exceptions. Allows you to exempt users / machines from
* KLINE, GLINE, etc.
@@ -340,26 +340,26 @@ ban realname {
except ban {
mask *@192.0.2.1;
// you may add more mask entries here..
}
};
/* except ban with type 'all' protects you from GLINE, GZLINE, QLINE, SHUN */
except ban {
/* except tkl with type 'all' protects you from GLINE, GZLINE, QLINE, SHUN */
except tkl {
mask *@192.0.2.1;
type all;
}
};
/* With deny dcc blocks you can ban filenames for DCC */
deny dcc {
filename "*sub7*";
reason "Possible Sub7 Virus";
}
};
/* deny channel allows you to ban a channel (mask) entirely */
deny channel {
channel "*warez*";
reason "Warez is illegal";
class "clients";
}
};
/* VHosts (Virtual Hosts) allow users to acquire a different host.
* See https://www.unrealircd.org/docs/Vhost_block
@@ -374,7 +374,7 @@ vhost {
mask *@unrealircd.com;
login "test";
password "test";
}
};
/* Blacklist blocks will query an external DNS Blacklist service
* whenever a user connects, to see if the IP address is known
@@ -396,12 +396,12 @@ blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; };
};
action gline;
ban-time 24h;
reason "Proxy/Drone detected. Check https://dronebl.org/lookup?ip=$ip for details.";
}
};
/* EFnetRBL, see https://rbl.efnetrbl.org/ for documentation
* and the meaning of the reply types.
@@ -414,22 +414,22 @@ blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
reply { 1; 4; 5; };
};
action gline;
ban-time 24h;
reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details.";
}
reason "Proxy/Drone/TOR detected. Check http://rbl.efnetrbl.org/?i=$ip for details.";
};
/* You can include other configuration files */
/* include "klines.conf"; */
/* Network configuration */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
network-name "MYNet";
default-server "irc.mynet.org";
services-server "services.mynet.org";
stats-server "stats.mynet.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
@@ -445,21 +445,20 @@ set {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"and another one";
"and another one";
}
}
};
};
/* Server specific configuration */
set {
kline-address "set.this.to.email.address"; /* e-mail or URL shown when a user is banned */
modes-on-connect "+ixw"; /* when users connect, they will get these user modes */
modes-on-oper "+xws"; /* when someone becomes IRCOp they'll get these modes */
modes-on-join "+nt"; /* default channel modes when a new channel is created */
modes-on-oper "+xwgs"; /* when someone becomes IRCOp they'll get these modes */
oper-auto-join "#opers"; /* IRCOps are auto-joined to this channel */
options {
hide-ulines; /* hide U-lines in /MAP and /LINKS */
show-connect-info; /* show "looking up your hostname" messages on connect */
}
};
maxchannelsperuser 10; /* maximum number of channels a user may /JOIN */
@@ -474,12 +473,15 @@ set {
/* static-part does the same for /PART */
/* static-part yes; */
/* Flood protection:
* There are lots of settings for this and most have good defaults.
* See https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
/* Which /STATS to restrict to opers only. We suggest to leave it to * (ALL) */
oper-only-stats "*";
/* Anti flood protection */
anti-flood {
}
nick-flood 3:60; /* 3 nick changes per 60 seconds (the default) */
connect-flood 3:60; /* 3 connection attempts per 60 seconds (the default) */
away-flood 4:120; /* 4 times per 2 minutes you may use /AWAY (default) */
};
/* Settings for spam filter */
spamfilter {
@@ -487,93 +489,8 @@ set {
ban-reason "Spam/Advertising"; /* default reason */
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
/* except "#help"; channel to exempt from Spamfilter */
}
/* Restrict certain commands.
* See https://www.unrealircd.org/docs/Set_block#set::restrict-commands
*/
restrict-commands {
list {
connect-delay 60;
exempt-identified yes;
exempt-reputation-score 24;
}
invite {
connect-delay 120;
exempt-identified yes;
exempt-reputation-score 24;
}
/* In addition to the ability to restrict any command,
* such as shown above. There are also 4 special types
* that you can restrict. These are "private-message",
* "private-notice", "channel-message" and "channel-notice".
* They are commented out (disabled) in this example:
*/
//private-message {
// connect-delay 10;
//}
//private-notice {
// connect-delay 10;
//}
}
}
/*
* The following will configure connection throttling of "unknown users".
*
* When UnrealIRCd detects a high number of users connecting from IP addresses
* that have not been seen before, then connections from new IP's are rejected
* above the set rate. For example at 10:60 only 10 users per minute can connect
* that have not been seen before. Known IP addresses can always get in,
* regardless of the set rate. Same for users who login using SASL.
*
* See also https://www.unrealircd.org/docs/Connthrottle for details.
* Or just keep reading the default configuration settings below:
*/
set {
connthrottle {
/* First we must configure what we call "known users".
* By default these are users on IP addresses that have
* a score of 24 or higher. A score of 24 means that the
* IP was connected to this network for at least 2 hours
* in the past month (or minimum 1 hour if registered).
* The sasl-bypass option is another setting. It means
* that users who authenticate to services via SASL
* are considered known users as well.
* Users in the "known-users" group (either by reputation
* or by SASL) are always allowed in by this module.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
}
/* New users are all users that do not belong in the
* known-users group. They are considered "new" and in
* case of a high number of such new users connecting
* they are subject to connection rate limiting.
* By default the rate is 20 new local users per minute
* and 30 new global users per minute.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
}
/* This configures when this module will NOT be active.
* The default settings will disable the module when:
* - The reputation module has been running for less than
* a week. If running less than 1 week then there is
* insufficient data to consider who is a "known user".
* - The server has just been booted up (first 3 minutes).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
}
}
}
};
};
/* Finally, you may wish to have a MOTD (Message of the Day), this can be
* done by creating an 'ircd.motd' text file in your conf/ directory.
-610
View File
@@ -1,610 +0,0 @@
/* Archivo de configuración para UnrealIRCd 5
*
* Simplemente copie este archivo a su directorio conf /, llámelo
* 'unrealircd.conf' y recorrerlo línea por línea (¡edítalo!)
*
* Importante: Todas las líneas, excepto { y } terminan con un;
* Esto es muy importante, si pierde un; en algún lugar entonces el
* el analizador de archivos de configuración se quejará y el archivo no
* ¡será procesado correctamente!
* Si esta es su primera experiencia con una configuración de UnrealIRCd
* entonces realmente le recomendamos que lea un poco sobre la sintaxis,
* esto solo toma unos minutos y te ayudará mucho:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* Documentación de UnrealIRCd 5 (¡muy extensa!):
* https://www.unrealircd.org/docs/Main_Page/es
*
* Preguntas frecuentes:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Esto es un comentario, todo el texto aquí se ignora (tipo de comentario #1) */
// Esto también es un comentario, esta línea se ignora (tipo de comentario #2)
#Esto también es un comentario, nuevamente esta línea se ignora (tipo de comentario # 3)
/* UnrealIRCd hace un uso intensivo de módulos. Los módulos le permiten
* personalizar el conjunto de funciones que desea habilitar en UnrealIRCd.
* Vea más: https://www.unrealircd.org/docs/Modules
*
* Al usar la inclusión a continuación, le indicamos al IRCd que lea el archivo
* 'modules.default.conf' este cargará más de 150 módulos
* cargados con UnrealIRCd. En otras palabras: esto simplemente cargará
* todas las funciones disponibles en UnrealIRCd.
* Si está configurando UnrealIRCd por primera vez, le sugerimos
* utilizar este. Entonces, cuando todo esté en funcionamiento, puedes venir
* volver más tarde para personalizar la lista (si así lo desea).
*/
include "modules.default.conf";
/* Ahora incluyamos algunos otros archivos:
* - help / help.conf para nuestro sistema on-IRC /HELPOP
* - badwords.conf para canal y modo de usuario +G
* - spamfilter.conf como ejemplo de uso de filtro de texto.
* (comentado)
* - operclass.default.conf contiene algunas buenas operclasses que
* puedes usarlo en tus bloques operativos.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
/* Este es el bloque me {} que básicamente dice quiénes somos.
* Define el nombre de nuestro servidor, alguna línea de información y un "sid" único.
* La identificación del servidor (sid) debe comenzar con un dígito seguido de dos dígitos o
* letras. El sid debe ser único para su red IRC (cada servidor debe
* tiene su propio sid).
*/
me {
name "irc.ejemplo.org";
info "Servidor EjemploNET";
sid "001";
}
/* El bloque admin {} define lo que los usuarios verán si escriben /ADMIN.
* Normalmente contiene información sobre cómo contactar al administrador.
*/
admin {
"Bob Smith";
"bob";
"correo-electrónico@ejemplo.org";
}
/* Los clientes y servidores se colocan en bloques de clase {}, los definimos aquí.
* Los bloques de clase constan de los siguientes elementos:
* - pingfreq: con qué frecuencia hacer ping a un usuario /servidor (en segundos)
* - connfreq: con qué frecuencia intentamos conectarnos a este servidor (en segundos)
* - sendq: el tamaño máximo de cola para una conexión
* - recvq: cola de recepción máxima de una conexión (control de inundaciones)
*/
/* Clase de cliente con buenos valores predeterminados */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* Clase especial para IRCOps con límites superiores */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Clase de servidor con buenos valores predeterminados */
class servers
{
pingfreq 60;
connfreq 15; /* intenta conectarte cada 15 segundos */
maxclients 10; /* máximo de servidores */
sendq 20M;
}
/* Bloques de permitir definen qué clientes pueden conectarse a este servidor.
* Esto le permite agregar una contraseña de servidor o restringir el servidor a
* IP específicas únicamente. También configuras las conexiones máximas
* permitido por IP aquí.
* Ver también: https://www.unrealircd.org/docs/Allow_block
*/
/* Permitir que todos entren, pero solo 3 conexiones por IP */
allow {
mask *;
class clients;
maxperip 3;
}
/* Ejemplo de un bloque de permiso especial en una IP específica:
* Requiere que los usuarios de esa IP se conecten con una contraseña. Si la contraseña
* es correcto, entonces permite 20 conexiones en esa IP.
*/
allow {
mask 192.0.2.1;
class clients;
password "algunacontraseña";
maxperip 20;
}
/* Los bloques de operaciones definen sus operadores de IRC.
* Los operadores de IRC son personas que tienen "derechos adicionales" en comparación con otros,
* por ejemplo, pueden /KILL a otras personas, iniciar la vinculación del servidor,
* /JOIN a canales aunque estén prohibidos, etc.
*
* Para obtener más información sobre cómo convertirse en un IRCOp y cómo administrar
* tareas, consulte: https://www.unrealircd.org/docs/IRCOp_guide
*
* Para obtener detalles sobre el bloque oper {} en sí, consulte
* https://www.unrealircd.org/docs/Oper_block
*/
/* Aquí hay un ejemplo de bloque de operador para 'bobsmith' con contraseña 'test'.
* ¡¡DEBES cambiar esto !!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Los permisos de operador se definen en un bloque 'operclass'.
* Ver https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd viene con una serie de bloques predeterminados, consulte
* el artículo para una lista completa. Elegimos 'netadmin' aquí.
*/
operclass netadmin;
swhois "es un Administrador de Red";
vhost netadmin.ejemplo.org;
}
/* Los bloques de escucha definen los puertos donde el servidor debe escuchar.
* En otras palabras: los puertos que los clientes y servidores pueden usar para
* conectarse a este servidor.
*
* Sintaxis:
* listen {
* {
* ip <ip>;
* port <puerto>;
* options {
* <opciones....>;
* }
* }
*/
/* Puerto estándar para IRC 6667 */
listen {
ip *;
port 6667;
}
/* Puerto estándar para IRC SSL/TLS 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Puerto especial SSL/TLS servers-only/(Solo servidores) para enlaces */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* NOTA: Si está en una shell IRCd con varias IP y usa
* los bloques listen {} anteriores, es probable que obtenga un
* Error "address is already in use" y el ircd no se inicia.
* Esto significa que DEBE vincularse a una IP específica en lugar de '*' como:
* escuchar { ip 1.2.3.4; puerto 6667; }
* Por supuesto, reemplace la IP con la IP que se le asignó.
*/
/*
* Los bloques de enlaces le permiten enlazar varios servidores para formar una red.
* Ver https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.ejemplo.org
{
incoming {
mask *@algo;
}
outgoing {
bind-ip *; /* o explícitamente una IP */
hostname hub.ejemplo.org;
port 6900;
options { tls; }
}
/* Usamos la huella digital SPKI del otro servidor para la autenticación.
* Ejecute './unrealircd spkifp' en el otro lado para obtenerlo.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
/* El bloqueo de enlaces para servicios suele ser mucho más sencillo.
* Para obtener más información sobre qué son los Servicios,
* ver https://www.unrealircd.org/docs/Services
*/
link servicios.ejemplo.org
{
incoming {
mask 127.0.0.1;
}
password "cambiameporfavor";
class servers;
}
/* Las líneas U dan a otros servidores (incluso) más poder/comandos.
* Si utiliza servicios debe agregarlos aquí.
* ¡¡¡NUNCA ponga aquí el nombre de un servidor UnrealIRCd !!!
*/
ulines {
servicios.ejemplo.org;
}
/* Aquí puede agregar una contraseña para los comandos solo IRCOp /DIE y /RESTART.
* Esto está destinado principalmente a proporcionar una pequeña protección contra accidentes
* se reinicia y el servidor se mata.
*/
drpass {
restart "reiniciar";
die "muere";
}
/* El bloque de registros define qué se debe registrar y en qué archivo.
* Ver también https://www.unrealircd.org/docs/Log_block
*/
/* Este es un buen valor predeterminado, registra todo */
log "ircd.log" {
flags {
oper;
connects;
server-connects;
kills;
errors;
flood;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
/ * Con "aliases" puedes crear un alias como /ALGO para enviar un mensaje
* algún usuario o bot. Suelen utilizarse para servicios.
*
* Tenemos varios archivos de alias preestablecidos, consulte el directorio alias /.
* Como ejemplo, aquí incluimos todos los alias utilizados para los servicios de anope.
* /
include "aliases/anope.conf";
/* Prohibir los apodos para que no puedan ser utilizados por usuarios habituales. */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reservado para Servicios";
}
/* Prohibir ip.
* Tenga en cuenta que normalmente se usa /KLINE, /GLINE y /ZLINE para esto.
*/
ban ip {
mask 195.86.232.81;
reason "Te odio";
}
/* Ban server - if we see this server linked to someone then we delink */
ban server {
mask eris.berkeley.edu;
reason "Sal de aquí.";
}
/* Banear un user - solo como ejemplo, normalmente usa /KLINE or /GLINE para esto */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiota";
}
/* Banear realname te permite prohibir clientes en función de su 'nombre real'
* o campo 'gecos'.
*/
ban realname {
mask "Equipo Swat";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Excepciones de prohibición y TKL. Le permite eximir a los usuarios/máquinas de
* KLINE, GLINE, etc.
* Si es un IRCOp con una IP estática (y no hay personas que no sean de confianza en esa IP)
* entonces le sugerimos que se agregue aquí. De esa manera siempre puedes entrar
* incluso si accidentalmente te aplicas una prohibición de * LINE.
*/
/* Excepciones, te protege de KLINE and ZLINE */
except ban {
mask *@192.0.2.1;
// puede agregar más entradas de máscara aquí..
}
/* excepto prohibir con tipo 'all' te protege de GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
/* Con deny dcc puedes prohibir nombres de archivo para DCC */
deny dcc {
filename "*sub7*";
reason "Posible Sub7 Virus";
}
/* deny channel te perimte banear un canal entero (mascará) */
deny channel {
channel "*warez*";
reason "Warez es ilegal";
class "clients";
}
/* VHosts (Virtual Hosts) permite a los usuarios adquirir un host diferente.
* Ver https://www.unrealircd.org/docs/Vhost_block
*/
/* Ejemplo de vhost que puede usar. En el tipo de IRC: /VHOST test test
* NOTA: solo las personas con un host 'unrealircd.com' pueden usarlo así
* asegúrese de cambiar vhost :: mask antes de realizar la prueba.
*/
vhost {
vhost odio.microsefrs.com;
mask *@unrealircd.com;
login "testeo";
password "testeo";
}
/* Los bloques de lista negra consultarán un servicio de lista negra de DNS externo
* cada vez que un usuario se conecta, para ver si se conoce la dirección IP
* por causar ataques con drones, es una máquina pirateada conocida, etc.
* Documentación: https://www.unrealircd.org/docs/Blacklist_block
* O simplemente eche un vistazo a los bloques a continuación.
*/
/* DroneBL, probablemente la lista negra más popular utilizada por los servidores IRC.
* Consulte https://dronebl.org/ para obtener su documentación y el
* significado de los tipos de respuesta. En el momento de escribir este artículo utilizamos tipos:
* 3: IRC Drone, 5: Embotellador, 6: Spambot o drone desconocido,
* 7: DDoS Drone, 8: Proxy SOCKS, 9: Proxy HTTP, 10: ProxyChain,
* 11: Proxy de página web, 12: Open DNS Resolver, 13: Atacantes de fuerza bruta,
* 14: Proxy Wingate abierto, 15: Enrutador / puerta de enlace comprometido,
* 16: Gusanos de autorooting.
*/
blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone detectado. Consulte https://dronebl.org/lookup?ip=$ip para más detalles.";
}
/* EFnetRBL, consulte https://rbl.efnetrbl.org/ para obtener documentación
* y el significado de los tipos de respuesta.
* Al momento de escribir este artículo: 1 es proxy abierto, 4 es TOR, 5 es drones/flooding.
*
* NOTA: Si desea permitir proxies TOR en su servidor, entonces
* necesita eliminar el '4;' a continuación en la sección de respuesta.
*/
blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone detectado. Consulte https://rbl.efnetrbl.org/?i=$ip para más detalles.";
}
/* Puede incluir otros archivos de configuración */
/* include "klines.conf"; */
/* Configuración de la red */
set {
network-name "EjemploNET";
default-server "irc.ejemplo.org";
services-server "services.ejemplo.org";
stats-server "stats.ejemplo.org";
help-channel "#Ayuda";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
/* Las claves de ocultación deben ser las mismas en todos los servidores de la red.
* Se utilizan para generar hosts enmascarados y deben mantenerse en secreto.
* Las claves deben ser 3 cadenas aleatorias de 50-100 caracteres
* y debe constar de minúsculas (a-z), mayúsculas (A-Z) y dígitos (0-9).
* SUGERENCIA: en * NIX, puede ejecutar './unrealircd gencloak' en su shell/Vps para
* que UnrealIRCd genere 3 cadenas aleatorias para ti.
*/
cloak-keys {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"uno más";
"y otro más";
}
}
/* Configuración específica del servidor */
set {
kline-address "setea.un.correo.electrónico"; /* Correo electrónico o URL que se muestra cuando un usuario está baneado */
modes-on-connect "+ixw"; /* cuando los usuarios se conectan, obtendrán estos modos de usuario */
modes-on-oper "+xws"; /* cuando alguien se convierte en IRCOp obtendrá estos modos */
modes-on-join "+nt"; /* modos de canal predeterminados cuando se crea un nuevo canal */
oper-auto-join "#opers"; /* Las IRCOps se unen automáticamente a este canal. */
options {
hide-ulines; /* ocultar las líneas U en /MAP and /LINKS */
show-connect-info; /* muestra "looking up your hostname" cuando conectas */
}
maxchannelsperuser 10; /* Número máximo de canales que un usuario puede /JOIN */
/* El tiempo mínimo que un usuario debe estar conectado antes de que se le permita
* usar un mensaje QUIT. Con suerte, esto ayudará a detener el spam.
*/
anti-spam-quit-message-time 10s;
/* O simplemente setea un quit estático, significa que cualquier /QUIT es ignorado */
/* static-quit "Client quit"; */
/* static-part hace lo mismo para /PART */
/* static-part yes; */
/* Protección contra flood:
* Hay muchas configuraciones para esto y la mayoría tienen buenos valores predeterminados.
* Ver https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Opciones de Filtro de texto */
spamfilter {
ban-time 1d; /* la duracion por defecto de un *LINE seteado por el filtro de texto */
ban-reason "Spam/Publicidad"; /* razón por defecto */
virus-help-channel "#ayuda"; /* canal de uso para 'viruschan' */
/* except "#ayuda"; inmunidad para el canal Ayuda del filtro de texto */
}
/* Restringir ciertos comandos.
* Ver https://www.unrealircd.org/docs/Set_block#set::restrict-commands
*/
restrict-commands {
list {
connect-delay 60;
exempt-identified yes;
exempt-reputation-score 24;
}
invite {
connect-delay 120;
exempt-identified yes;
exempt-reputation-score 24;
}
/* Además de la capacidad de restringir cualquier comando,
* como se muestra arriba. También hay 4 tipos especiales
* que puede restringir. Estos son "private-message",
* "private-notice", "channel-message" y "channel-notice".
* Están comentados (desactivados) en este ejemplo:
*/
//private-message {
// connect-delay 10;
//}
//private-notice {
// connect-delay 10;
//}
}
}
/*
* Lo siguiente configurará la limitación de la conexión de "unknown users".
*
* Cuando UnrealIRCd detecta una gran cantidad de usuarios que se conectan desde direcciones IP
* que no se han visto antes, se rechazan las conexiones de las nuevas IP
* por encima de la configuración establecida. Por ejemplo, 10:60 solo pueden conectarse 10 usuarios por minuto
* que no se hayan visto antes. Las direcciones IP conocidas siempre pueden ingresar,
* independientemente de la configuración establecida. Lo mismo para los usuarios que inician sesión con SASL.
*
* Consulte también https://www.unrealircd.org/docs/Connthrottle para obtener más detalles.
* O simplemente siga leyendo los ajustes de configuración predeterminados a continuación:
*/
set {
connthrottle {
/* Primero debemos configurar lo que llamamos "known users".
* De forma predeterminada, estos son usuarios en direcciones IP que tienen
* una puntuación de 24 o más. Una puntuación de 24 significa que
* La IP estuvo conectada a esta red durante al menos 2 horas
* en el último mes (o mínimo 1 hora si está registrado).
* La opción sasl-bypass es otra configuración. Significa
* que los usuarios que se autentican en los servicios a través de SASL
* también se consideran usuarios conocidos.
* Usuarios del grupo "known users" (ya sea por reputación
* o por SASL) siempre están permitidos por este módulo.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
}
/* Los nuevos usuarios son todos los usuarios que no pertenecen al
* grupo de usuarios conocidos. Se consideran "nuevos" y en
* caso de un gran número de nuevos usuarios que se conectan
* están sujetos a limitación de velocidad de conexión.
* Por defecto, la configuración es de 20 nuevos usuarios locales por minuto.
* y 30 nuevos usuarios globales por minuto.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
}
/* Esta configuración es para cuando este módulo NO este activo.
* La configuración predeterminada deshabilitará el módulo cuando:
* - El módulo de reputación se ha estado ejecutando durante menos de
* una semana. Si se ejecuta menos de 1 semana, entonces hay
* Datos insuficientes para considerar quién es un "known users".
* - El servidor acaba de iniciarse (primeros 3 minutos).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
}
}
}
/* Finalmente, es posible que desee tener un MOTD (Mensaje del día), esto puede ser
* hecho creando un archivo de texto 'ircd.motd' en su directorio conf /.
* Este archivo se mostrará a sus usuarios al conectarse.
* Para obtener más información, consulte https://www.unrealircd.org/docs/MOTD_and_Rules
*/
/*
* ¿Problemas o necesita más ayuda?
* 1) https://www.unrealircd.org/docs/Main_Page/es
* 2) https://www.unrealircd.org/docs/FAQ <- ¡responde el 80% de sus preguntas!
* 3) Si aún tiene problemas, puede obtener asistencia:
* - Foros: https://forums.unrealircd.org/
* - IRC: irc.unrealircd.org (SSL en el puerto 6697) / #unreal-support
* Tenga en cuenta que primero le pedimos que lea la documentación y las preguntas frecuentes.
*/
+67 -61
View File
@@ -1,4 +1,4 @@
/* Fichier de configuration pour UnrealIRCd 5
/* Fichier de configuration pour UnrealIRCd 4
*
* Copiez ce fichier dans le répertoire conf/, renommez le
* 'unrealircd.conf' et parcourez-le ligne par ligne (modifiez le !)
@@ -13,8 +13,8 @@
* beaucoup :
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* Documentation pour UnrealIRCd 5 (très complète !) :
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation/fr
* Documentation pour UnrealIRCd 4 (très complète !) :
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr
*
* Foire Aux Questions :
* https://www.unrealircd.org/docs/FAQ
@@ -59,10 +59,10 @@ include "operclass.default.conf";
* (chaque serveur doit avoir un sid différent).
*/
me {
name "irc.example.org";
info "Serveur ExampleNET";
name "irc.foonet.com";
info "Serveur FooNet";
sid "001";
}
};
/* Le bloc admin { } définit ce que les utilisateurs verront en faisant
* /ADMIN. C'est généralement des infos de contact de l'administrateur.
@@ -70,8 +70,8 @@ me {
admin {
"Bob Smith";
"bob";
"adresse.email@example.org";
}
"adresse.email@foonet.com";
};
/* Les clients et serveurs sont placés dans des classes, que nous
* définissons dans ces blocs class { }.
@@ -92,7 +92,7 @@ class clients
maxclients 1000;
sendq 200k;
recvq 8000;
}
};
/* Classe spéciale pour des IRCOps avec des limites plus hautes */
class opers
@@ -101,7 +101,7 @@ class opers
maxclients 50;
sendq 1M;
recvq 8000;
}
};
/* Classe pour des serveurs */
class servers
@@ -110,7 +110,7 @@ class servers
connfreq 15; /* essayer de se connecter toutes les 15 sec */
maxclients 10; /* nombre max de serveurs */
sendq 5M;
}
};
/* Les blocs allow définissent quels clients peuvent se connecter au
* serveur. Ils vous permettent d'ajouter un mot de passe ou de restreindre
@@ -121,21 +121,21 @@ class servers
/* Accepter tout le monde, mais seulement 5 connexions par IP */
allow {
mask *;
ip *@*;
class clients;
maxperip 5;
}
};
/* Exemple de bloc allow spécial pour une IP donnée :
* Les utilisateurs sur cette IP doivent se connecter avec un mot de passe.
* S'il est correct, alors autoriser 20 connexions sur cette IP.
*/
allow {
mask 192.0.2.1;
ip *@192.0.2.1;
class clients;
password "unmotdepassesecret";
maxperip 20;
}
};
/* Les blocs oper définissent vos Opérateurs IRC.
* Les Opérateurs IRC sont des utilisateurs avec des "droits en plus"
@@ -160,8 +160,8 @@ oper bobsmith {
*/
operclass netadmin;
swhois "est un Administrateur du Réseau";
vhost netadmin.example.org;
}
vhost netadmin.mynet.org;
};
/* Les blocs listen définissent les ports sur lesquels le serveur écoute.
* C'est-à-dire les ports que les clients et les serveurs utilisent pour
@@ -174,29 +174,29 @@ oper bobsmith {
* port <numéro de port>;
* options {
* <options....>;
* }
* }
* };
* };
*/
/* Port standard pour IRC 6667 */
listen {
ip *;
port 6667;
}
};
/* Port standard pour IRC sur SSL/TLS 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
options { ssl; };
};
/* Port SSL/TLS spécial pour la connexion entre serveurs */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
options { ssl; serversonly; };
};
/* NOTE : Si vous utilisez un serveur IRC avec plusieurs IP et que vous
* utilisez les blocs listen ci-dessus, vous aurez peut-être une
@@ -212,23 +212,23 @@ listen {
* pour former un réseau IRC.
* Voir https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
link hub.mynet.org
{
incoming {
mask *@something;
}
};
outgoing {
bind-ip *; /* ou une IP précise */
hostname hub.example.org;
hostname hub.mynet.org;
port 6900;
options { tls; }
}
options { ssl; };
};
password "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"; /* Empreinte SSL de l'autre serveur */
class servers;
}
};
/* Les U-lines donnent encore plus de pouvoir à certains serveurs.
* Si vous utilisez des Services, vous devez les indiquer ici.
@@ -237,8 +237,8 @@ link hub.example.org
* https://www.unrealircd.org/docs/Services )
*/
ulines {
services.example.org;
}
services.mynet.org;
};
/* Ici vous pouvez indiquer un mot de passe pour les commandes /DIE et
* /RESTART, qui sont restreintes aux IRCops.
@@ -248,7 +248,7 @@ ulines {
drpass {
restart "restart";
die "die";
}
};
/* Le bloc log indique ce qui doit être journalisé et dans quel fichier.
* Voir aussi https://www.unrealircd.org/docs/Log_block
@@ -267,8 +267,8 @@ log "ircd.log" {
oper-override;
tkl;
spamfilter;
}
}
};
};
/* Avec des "alias", vous pouvez créer un alias comme /UNTRUC pour envoyer
* un message à un utilisateur ou à un bot. Ils sont souvent utilisés pour
@@ -286,7 +286,7 @@ include "aliases/anope.conf";
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Réservé aux Services";
}
};
/* Bannir une IP.
* NB : vous pouvez aussi utiliser /KLINE, /GLINE et /ZLINE pour ça.
@@ -294,7 +294,7 @@ ban nick {
ban ip {
mask 195.86.232.81;
reason "Je vous hais !";
}
};
/* Bannir un serveur - si ce serveur est connecté au réseau, nous nous
* déconnecterons
@@ -302,7 +302,7 @@ ban ip {
ban server {
mask eris.berkeley.edu;
reason "Va-t-en d'ici.";
}
};
/* Bannir un utilisateur - juste pour l'exemple, on utilise normalement
* /KLINE or /GLINE pour ça
@@ -310,18 +310,18 @@ ban server {
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
}
};
/* Bannir un realname (ou 'gecos') */
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
};
ban realname {
mask "sub7server";
reason "sub7";
}
};
/* Exceptions de ban et TKL. Vous permet d'exempter des utilisateurs des
* KLINE, GLINE, etc ...
@@ -335,13 +335,13 @@ ban realname {
except ban {
mask *@192.0.2.1;
// vous pouvez ajouter d'autres lignes mask à la suite
}
};
/* except ban avec le type 'all' vous protège des GLINE, GZLINE, QLINE, SHUN */
except ban {
/* except tkl avec le type 'all' vous protège des GLINE, GZLINE, QLINE, SHUN */
except tkl {
mask *@192.0.2.1;
type all;
}
};
/* Avec un bloc deny dcc vous pouvez interdire des noms de fichiers dans
* les échanges DCC
@@ -349,14 +349,14 @@ except ban {
deny dcc {
filename "*sub7*";
reason "Possible virus Sub7";
}
};
/* deny channel vous permet d'interdire des masques de noms de salons */
deny channel {
channel "*warez*";
reason "Le warez est illegal";
class "clients";
}
};
/* Les VHosts (Virtual Hosts - Hôtes Virtuels) permettent aux utilisateurs
* d'avoir un nom d'hôte différent.
@@ -372,17 +372,17 @@ vhost {
mask *@unrealircd.com;
login "test";
password "test";
}
};
/* Vous pouvez inclure d'autres fichiers de configuration */
/* include "klines.conf"; */
/* Configuration du réseau */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
network-name "MYNet";
default-server "irc.mynet.org";
services-server "services.mynet.org";
stats-server "stats.mynet.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
@@ -400,20 +400,20 @@ set {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"et une autre";
"et une troisième";
}
}
};
};
/* Configuration spécifique au serveur */
set {
kline-address "indiquez.une.adresse.email"; /* e-mail ou URL indiquée lorsqu'un utilisateur est banni */
modes-on-connect "+ixw"; /* modes utilisateur ajoutés lorsqu'un utilisateur se connecte */
modes-on-oper "+xws"; /* modes utilisateur ajoutés lorsqu'un utilisateur devient IRCOp */
modes-on-oper "+xwgs"; /* modes utilisateur ajoutés lorsqu'un utilisateur devient IRCOp */
oper-auto-join "#opers"; /* salon que les IRCOps joignent automatiquement */
options {
hide-ulines; /* cacher les U-lines de /MAP et /LINKS */
show-connect-info; /* afficher les messages "looking up your hostname" à la connexion */
}
};
maxchannelsperuser 10; /* nombre max de salons par utilisateur */
@@ -430,11 +430,17 @@ set {
/* static-part fait la même chose pour /PART */
/* static-part yes; */
/* Protections anti-flood.
* Voir: https://www.unrealircd.org/docs/Set_block#set::anti-flood
/* Quelles /STATS sont restreintes aux Opérateurs. Nous vous
* conseillons de laisser '*' (toutes)
*/
oper-only-stats "*";
/* Protections anti-flood */
anti-flood {
}
nick-flood 3:60; /* 3 changements de nick par 60 secondes */
connect-flood 3:60; /* 3 tentatives de connexions par 60 seconds */
away-flood 4:120; /* 4 utilisation de /AWAY par 2 minutes */
};
/* Paramètres de Spamfilter */
spamfilter {
@@ -442,8 +448,8 @@ set {
ban-reason "Spam/Publicité"; /* raison par defaut */
virus-help-channel "#help"; /* salon par défaut pour l'action 'viruschan' */
/* except "#help"; salon à exempter de Spamfilter */
}
}
};
};
/*
* Un problème ou besoin d'aide supplémentaire ?
+78 -73
View File
@@ -1,4 +1,4 @@
/* UnrealIRCd 5 için yapılandırma dosyası
/* UnrealIRCd 4 için yapılandırma dosyası
* Türkçe Çeviri: Diablo - (Serkan Sepetçi)
* İletişim: irc.trirc.com:6667 - diablo@unrealircd.org
*
@@ -14,8 +14,8 @@
* bu size bilgi edinmeniz açısından yardımcı olacaktır:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* UnrealIRCd 5 belgeleme (çok geniş!):
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
* UnrealIRCd 4 belgeleme (çok geniş!):
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
*
* Sıkça Sorulan Sorular:
* https://www.unrealircd.org/docs/FAQ
@@ -59,10 +59,10 @@ include "operclass.default.conf";
* kendi sid olmalıdır).
*/
me {
name "irc.example.org";
info "ExampleNET Server";
name "irc.foonet.com";
info "FooNet Server";
sid "001";
}
};
/* admin { } bloğu /ADMIN sorgusunda kullanıcılara görüntülenecek metni belirler.
* Normalde yöneticiye ulaşma konusunda bilgi içerir.
@@ -70,8 +70,8 @@ me {
admin {
"Bob Smith";
"bob";
"email@example.org";
}
"widely@used.name";
};
/* Kullanıcılar ve sunucular için class { } bloğu belirtilir.
* Class blokları aşağıdaki işlemlerden oluşur:
@@ -88,7 +88,7 @@ class clients
maxclients 1000;
sendq 200k;
recvq 8000;
}
};
/* IRCOp'lar için varsaylan yüksek limitli özel class ayarları */
class opers
@@ -97,7 +97,7 @@ class opers
maxclients 50;
sendq 1M;
recvq 8000;
}
};
/* Sunucular için varsayılan class ayarları */
class servers
@@ -106,7 +106,7 @@ class servers
connfreq 15; /* Her 15 saniyede bir bağlanmayı dener */
maxclients 10; /* maksimum kullanıcı */
sendq 5M;
}
};
/* Allow blockları sunucunuza kimlerin bağlanabileceğini belirtir.
* Bir sunucu şifresi eklenebilir veya belirlitilen bir IP adresi için
@@ -117,21 +117,21 @@ class servers
/* IP başına sadece 5 bağlantı izini verir */
allow {
mask *;
ip *@*;
class clients;
maxperip 3;
}
};
/* Örnek olarak özel bir IP bloğu izini:
* Bu IP bir şifre ile bağlantı yapması olduğunu gerektirir.
* Şifre doğru ise o zaman bu IP 20 bağlantıya izin verecektir.
*/
allow {
mask 192.0.2.1;
ip *@192.0.2.1;
class clients;
password "somesecretpasswd";
maxperip 20;
}
};
/* Oper bloğu, IRC Operatorleri tanımlar.
* IRC Operatörler, diğer kullanıcılara göre "ekstra haklara" sahip kullanıcılardır.
@@ -159,8 +159,8 @@ oper bobsmith {
*/
operclass netadmin;
swhois "is a Network Administrator";
vhost netadmin.example.org;
}
vhost netadmin.mynet.org;
};
/* Listen blokları sunucu portu için gereken bağlantı noktalarını tanımlar.
* Diğer bir deyişle: Bu portlar kullanıcılar ve serverlar için
@@ -173,29 +173,29 @@ oper bobsmith {
* port <port numarası>;
* options {
* <seçenekler....>;
* }
* }
* };
* };
*/
/* Standard IRC port 6667 */
listen {
ip *;
port 6667;
}
};
/* Standard IRC SSL/TLS port 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
options { ssl; };
};
/* Özel SSL/TLS sadece sunucuları bağlamak için port */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
options { ssl; serversonly; };
};
/* DiKKAT: Eğer bir çok IP barındıran bir IRCd Shell kullanıyorsanız
* logunuzda olası 'Address already in use' hatasını alacaksınız
@@ -209,49 +209,50 @@ listen {
* Link blockları bir ağ oluşturmak için birden fazla sunucu bağlamaya izin verir.
* Görmek için: https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
link hub.mynet.org
{
incoming {
mask *@something;
}
};
outgoing {
bind-ip *; /* veya açıkça bir IP */
hostname hub.example.org;
hostname hub.mynet.org;
port 6900;
options { tls; }
}
options { ssl; };
};
/* Kimlik doğrulaması için diğer sunucunun SPKI parmak izini kullanıyoruz.
* Kullanmamız için diğer tarafda './unrealircd spkifp' uygulayıp çalıştırıyoruz.
* NOT: UnrealIRCd 4.0.16 veya üzeri versiyonları gerektirir.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; };
class servers;
}
};
/* Servis'ler için bağlantı bloğu genellikle çok daha basittir.
* Servis'lerin ne olduğu hakkında daha fazla bilgi için,
* https://www.unrealircd.org/docs/Services
*/
link services.example.org
link services.mynet.org
{
incoming {
mask 127.0.0.1;
}
};
password "changemeplease";
class servers;
}
};
/* U-lines satırları sunuculara daha güç/komut kazandırır.
* Eğer hizmetlerini kullanmak istiyorsanız onları buraya eklemeniz gerekir.
* ASLA buraya (normal) UnrealIRCd sunucunun adını yazmayınız!!!
*/
ulines {
services.example.org;
}
services.mynet.org;
};
/* Bu blok /DIE ve /RESTART için şifre tanımlamanızı sağlar. Sadece IRCOp'lar içindir.
* Bu genelde kazara sunucuyu yeniden başlatma ve kapanmasına karşı biraz
@@ -260,7 +261,7 @@ ulines {
drpass {
restart "restart";
die "die";
}
};
/* Bu log bloğu hangi dosyaya ve nelerin olması gerektiğini tanımlar.
* Görmeniz için: https://www.unrealircd.org/docs/Log_block
@@ -279,8 +280,8 @@ log "ircd.log" {
oper-override;
tkl;
spamfilter;
}
}
};
};
/* Bazı kullanıcılara veya botlara bir mesaj göndermek için "aliases"
* takma ad oluşturmanızı sağlar. Genellikle servisler için kullanılır.
@@ -294,7 +295,7 @@ include "aliases/anope.conf";
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Servisler için ayrılmış";
}
};
/* Ban ip.
* Normalde bunun için /KLINE, /GLINE ve /ZLINE kullanıldığını unutmayınız.
@@ -302,19 +303,19 @@ ban nick {
ban ip {
mask 195.86.232.81;
reason "Senden nefret ediyorum";
}
};
/* Ban server - bir sunucunun bağlanmasını devredışı kılar */
ban server {
mask eris.berkeley.edu;
reason "Defol git buradan.";
}
};
/* Ban user - normalde /KLINE veya /GLINE kullanıldığını unutmayınız */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Salak";
}
};
/* Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas alınarak
* banlamanıza olanak sağlar.
@@ -322,12 +323,12 @@ ban user {
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
};
ban realname {
mask "sub7server";
reason "sub7";
}
};
/* Ban ve TKL istisnaları. Kullanıcıları / makineleri gözetmeksizin
* KLINE, GLINE, gibi banlardan muaf tutmanıza olanak sağlar.
@@ -340,26 +341,26 @@ ban realname {
except ban {
mask *@192.0.2.1;
// burada daha fazla mask girdileri ekleyebilirsiniz..
}
};
/* except ban bloğu, sizi 'tüm' GLINE, GZLINE, QLINE, SHUN gibi banlardan koruyacaktır */
except ban {
/* except tkl bloğu, sizi 'tüm' GLINE, GZLINE, QLINE, SHUN gibi banlardan koruyacaktır */
except tkl {
mask *@192.0.2.1;
type all;
}
};
/* Deny dcc bloğu, sunucu üzerinden DCC yoluyla dosya gönderilmesine izin vermeyecektir */
deny dcc {
filename "*sub7*";
reason "Olası Sub7 Virüsü";
}
};
/* Deny channel bloğu, kullanıcıların belirtilen kanallara girmesini engeller */
deny channel {
channel "*warez*";
reason "Warez is illegal";
class "clients";
}
};
/* VHosts (Virtual Hosts) bloğu, kullanıcının yeni bir host alabilmesine olanak sağlar.
* Görmeniz için; https://www.unrealircd.org/docs/Vhost_block
@@ -374,7 +375,7 @@ vhost {
mask *@unrealircd.com;
login "test";
password "test";
}
};
/* Blacklist blokları, bir kullanıcı bağlandığında IP adresinin drone saldırılarına
* neden olduğunu, bilinen bir saldırıya uğramış bir makine olup olmadığını görmek
@@ -396,12 +397,12 @@ blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; };
};
action gline;
ban-time 24h;
reason "Proxy/Drone belirlendi. Ayrıntılar için https://dronebl.org/lookup?ip=$ip adresine bakınız.";
}
};
/* EFnetRBL, belgeler ve cevap (reply) tiplerini görmek için https://rbl.efnetrbl.org/
* adresine bakınız.
@@ -414,22 +415,22 @@ blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
reply { 1; 4; 5; };
};
action gline;
ban-time 24h;
reason "Proxy/Drone/TOR belirlendi. Ayrıntılar için https://rbl.efnetrbl.org/?i=$ip adresine bakınız.";
}
reason "Proxy/Drone/TOR belirlendi. Ayrıntılar için http://rbl.efnetrbl.org/?i=$ip adresine bakınız.";
};
/* Diğer yapılandırma dosyalarını dahil edebilirsiniz */
/* include "klines.conf"; */
/* Ağ yapılandırması */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
network-name "MYNet";
default-server "irc.mynet.org";
services-server "services.mynet.org";
stats-server "stats.mynet.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
@@ -445,20 +446,20 @@ set {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"ve diğeri";
"ve diğeri";
}
}
};
};
/* Sunucunun kendine özgü yapılandırması */
set {
kline-address "set.this.to.email.address"; /* bir kullanıcı banlandığında e-mail yada URL satırı gösterir */
modes-on-connect "+ixw"; /* kullanıcılar bağlandığında, bu modları alacaktır */
modes-on-oper "+xws"; /* Birisi IRC Operatör olduğunda bu modları alacaktır */
modes-on-oper "+xwgs"; /* Birisi IRC Operatör olduğunda bu modları alacaktır */
oper-auto-join "#opers"; /* IRCoplar bu kanala otomatik olarak giriş yapacaktır */
options {
hide-ulines; /* U-lines satırları /MAP ve /LINKS komutunda gözükmez */
show-connect-info; /* sunucuya bağlanırken "looking up your hostname" mesajı görüntülenecektir */
}
};
maxchannelsperuser 10; /* bir kullanıcının maksimum girebileceği kanal sayısı */
@@ -473,11 +474,15 @@ set {
/* static-part /PART komutu ile aynı işi görür */
/* static-part yes; */
/* Anti flood Koruması
* Görmeniz için: https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
/* /STATS komutunu operler için kısıtlar. Önerilen * (TÜMÜ) */
oper-only-stats "*";
/* Anti flood Koruması */
anti-flood {
}
nick-flood 3:60; /* Her 60 saniyede 3 nick değişikliği (varsayılan) */
connect-flood 3:60; /* Her 60 saniyede 3 bağlantı girişi izni (varsayılan) */
away-flood 4:120; /* Her 2 dakikada 4 kez /AWAY kullanımı izni (varsayılan) */
};
/* Spam filter Ayarları */
spamfilter {
@@ -485,8 +490,8 @@ set {
ban-reason "Spam/Advertising"; /* varsayılan sebep */
virus-help-channel "#help"; /* 'viruschan' eylemi için kullanılacak kanal */
/* except "#help"; Spamfilter'den muaf tutulacak kanal */
}
}
};
};
/* Son olarak, bir MOTD (Günün Mesajı) oluşturabilirsiniz, bu
* conf/ dizininde 'ircd.motd' metin dosyası oluşturarak yapabilirsiniz.
* Bu dosyanın içeriği bağlantı kuran kullanıcılara gösterilecektir.
+188 -265
View File
File diff suppressed because it is too large Load Diff
+129 -126
View File
@@ -1,4 +1,4 @@
/* UnrealIRCd 5 Help Configuration
/* UnrealIRCd 4 Help Configuration
* Based on the original help text written by hAtbLaDe
* Revised by CC (07/2002) and many others
*
@@ -28,7 +28,7 @@ help {
" /HELPOP OFLAGS - liefert eine Liste aller O:Line Flags";
" -";
" ==-------------------------oOo--------------------------==";
}
};
help Usercmds {
" Zur Zeit sind folgende User-Befehle verfügbar.";
@@ -48,7 +48,7 @@ help Usercmds {
" KICK NICK TIME";
" KNOCK NOTICE TOPIC";
" ==-------------------------oOo-------------------------==";
}
};
help Opercmds {
" Dieser Abschnitt führt alle Befehle auf, die nur";
@@ -69,7 +69,7 @@ help Opercmds {
" DCCDENY MKPASSWD SDESC ZLINE";
" DIE MODULE SETHOST";
" ==-------------------------oOo-------------------------==";
}
};
help Svscmds {
" Dieser Abschnitt gibt alle Befehle aus die nur";
@@ -85,7 +85,7 @@ help Svscmds {
" SVSFLINE SVSMOTD SVSO SWHOIS";
" SVSJOIN SVSNICK SVSPART UNSQLINE";
" ==-------------------------oOo-------------------------==";
}
};
help Umodes {
" Hier eine Liste aller User Modi, die benutzt werden können.";
@@ -120,7 +120,7 @@ help Umodes {
" V = Markiert den Client als einen WebTV-User";
" W = User erhält eine NOTICE, wenn und von wem er /WHOISed wird (nur für IRCOPS)";
" ==---------------------------oOo---------------------------==";
}
};
help Snomasks {
" Snomask seht für 'Service NOtice MASK'. Hiermit wird (hauptsächlich)";
@@ -150,7 +150,7 @@ help Snomasks {
" S = Sieht Spamfilter Treffer";
" v = Sieht wenn sich jemand für einen VHOST einloggt.";
" ==-------------------------oOo------------------------==";
}
};
help Chmodes {
" Hier sind alle verfügbaren ChannelModes aufgelistet die man mit /MODE setzen kann.";
@@ -197,7 +197,7 @@ help Chmodes {
" [h] erfordert mindestens HalfOp Staus, [o] erfordert mindestens Op Staus,";
" [q] erfordert Owner Status";
" ==------------------------------oOo----------------------------==";
}
};
help ExtBans {
" Erweiterte Banntypen: ";
@@ -228,7 +228,7 @@ help ExtBans {
" | | Dieser Bann würde auch auf 'Stupid bot script v1.4'. ";
" | | passen. ";
" ==------------------------------------------------------------------------------==";
}
};
help Chmodef {
" Der +f Channel Mode ermöglicht eienn umfangreichen Flood Schutz für einen";
@@ -254,7 +254,7 @@ help Chmodef {
" -";
" Wird eine aktion für einen Modus gewählt, kann eine Zeit (in Minuten)";
" angegeben werden, nach der die gewählte aktion aufgehoben wird.";
}
};
help Oflags {
@@ -292,7 +292,7 @@ help Oflags {
" X (can_addline) Kann /ADDLINE ausführen";
" d (can_dccdeny) Kann /DCCDENY ausführen";
" ==----------------------oOo--------------------==";
}
};
help Nick {
@@ -302,7 +302,7 @@ help Nick {
" -";
" Syntax: NICK <neuer Nickname>";
" Beispiel: NICK hAtbLaDe";
}
};
help Whois {
" Zeigt Informationen über den angegebenen User";
@@ -323,7 +323,7 @@ help Whois {
" + - User ist Voiced (+v)";
" ! - User hat Channels, die für whois verborgen sind (+p) und man selbst ist IRCOp";
" ? - Der Channel ist geheim (+s) und man selbst ist IRCOp";
}
};
help Who {
" Liefert Informationen über User";
@@ -367,7 +367,7 @@ help Who {
" + - User ist Voiced (+v)";
" ! - User ist +H und man selbst ein IRC Operator";
" ? - User ist nur sichtbar, weil man selbst IRC Operator ist";
}
};
help Whowas {
" Liefert Informationen über User, die nicht mehr zum";
@@ -376,7 +376,7 @@ help Whowas {
" Syntax: WHOWAS <nickname>";
" WHOWAS <nickname> <max number of replies>";
" Beispiel: WHOWAS hAtbLaDe";
}
};
help Cycle {
" Der/die angegebene(n) Channel(s)werden verlassen und";
@@ -386,7 +386,7 @@ help Cycle {
" Syntax: CYCLE <chan1>,<chan2>,<chan3>";
" Example: CYCLE #help";
" Example: CYCLE #main,#chat";
}
};
help Dns {
" Liefert Informationen über den DNS Cache des IRC Servers.";
@@ -397,14 +397,14 @@ help Dns {
" 'DNS i' liefert Details über die Nameserver Konfiguration";
" -";
"Syntax: DNS [option]";
}
};
help Names {
" Liefert eine Liste aller User im angegeben Channel.";
" -";
"Syntax: NAMES <channel>";
"Beispiel: NAMES #Support";
}
};
help Ison {
" Überprüfung, ob bestimmte User mit angegebenem Nicknamen";
@@ -412,7 +412,7 @@ help Ison {
" -";
" Syntax: ISON <user> <user2> <user3> <user4>";
" Beispiel: ISON hAtbLaDe Stskeeps OperServ AOLBot";
}
};
help Join {
" Wird verwendet, um einen oder mehrere Channels auf einem";
@@ -427,7 +427,7 @@ help Join {
" Beispiel: JOIN #Support";
" JOIN #Lobby,#IRCd";
" JOIN #IRCd,#Support,#main letmein,somepass,anotherpass";
}
};
help Part {
" Befehl, um einen Channel zu verlassen, in dem man sich momentan";
@@ -438,7 +438,7 @@ help Part {
" Syntax: PART <chan>,<chan2>,<chan3>,<chan4> <reason>";
" Beispiel: PART #Support";
" PART #Lobby,#IRCd See ya later!";
}
};
help Motd {
" Zeigt die Message Of The Day des IRC Servers an, auf dem man ";
@@ -447,21 +447,21 @@ help Motd {
" -";
" Syntax: MOTD";
" MOTD <server>";
}
};
help Rules {
" Zeigt die Regeln des Netzwerkes an, mit dem man verbunden ist.";
" -";
" Syntax: RULES";
" RULES <server>";
}
};
help Lusers {
" Liefert Informationen über die Anzahl lokaler und ";
" globaler User und die maximal erreichte Userzahl..";
" -";
" Syntax: LUSERS [server]";
}
};
help Map {
" Zeigt eine pseude-grafische Netzwerks Karte an, aus der die";
@@ -469,7 +469,7 @@ help Map {
" zu Routing Zwecken benötigt.";
" -";
" Syntax: MAP";
}
};
help Quit {
" Beendet die Verbindung zum IRC Server. Die verbleibenden User in";
@@ -478,7 +478,7 @@ help Quit {
" -";
" Syntax: QUIT <reason>";
" Beispiel: QUIT Leaving!";
}
};
help Ping {
" Der Ping Befehl dient dazu, die Anwesenheit eines Users oder Servers";
@@ -490,10 +490,10 @@ help Ping {
" Zu beachten ist, dass dies unterschiedlich zum CTCP PING Befehl ist.";
" -";
" Syntax: PING <server> <server2>";
" Beispiel: PING irc.example.org";
" Beispiel: PING irc.fyremoon.net";
" PING hAtbLaDe";
" PING hAtbLaDe irc2.dynam.ac";
}
};
help Pong {
" Die PONG Nachricht ist die Antwort auf die PING Nachricht. Wird der";
@@ -502,16 +502,16 @@ help Pong {
" Nachricht geantwortet hat und diese Nachricht erzeugt hat.";
" -";
" Syntax: PONG <server> <server2>";
" Beispiel: PONG irc.example.org irc2.dynam.ac";
" (PONG Nachricht von irc.example.org to irc2.dynam.ac)";
}
" Beispiel: PONG irc.fyremoon.net irc2.dynam.ac";
" (PONG Nachricht von irc.fyremoon.net to irc2.dynam.ac)";
};
help Version {
" Liefert versions Informationen über den benutzten IRCd.";
" -";
" Syntax: VERSION";
" VERSION <server>";
}
};
help Stats {
" Liefert verschiedene statistische Informationen über den Server.";
@@ -521,21 +521,21 @@ help Stats {
" -";
" Gibt man nur /stats ohne Parameter ein, erhält man eine Liste der";
" möglichen Flags.";
}
};
help Links {
" Listet sämtliche Server auf, die momentan zum Netzwerk verbunden";
" sind. Nur IRCops können gelinkte U-lined Servers /Services) sehen.";
" -";
" Syntax: LINKS";
}
};
help Admin {
" Liefert Informationen über die Administration des Servers.";
" -";
" Syntax: ADMIN";
" ADMIN <server>";
}
};
help Userhost {
" Zeigt den userhost des angegebenen Nicknamen an. Wird ";
@@ -543,7 +543,7 @@ help Userhost {
" -";
" Syntax: USERHOST <nickname>";
" Beispiel: USERHOST hAtbLaDe";
}
};
help Userip {
" Liefert die IP des Users zurück, nach dem gefragt wurde.";
@@ -551,7 +551,7 @@ help Userip {
" -";
" Syntax: USERIP <nickname>";
" Beispiel: USERIP codemastr";
}
};
help Topic {
" Setzt oder ändert das Topic des angegebenen Channels";
@@ -561,7 +561,7 @@ help Topic {
" TOPIC <channel> <topic> (Ändert Topic)";
" Beispiel: TOPIC #Operhelp";
" TOPIC #Lobby Welcome to #Lobby!!";
}
};
help Invite {
" Sendet einem User eine Einladung, einen bestimmten Channel zu betreten.";
@@ -572,7 +572,7 @@ help Invite {
" Syntax: INVITE <user> <channel>";
" Beispiel: INVITE hAtbLaDe #Support";
" Beispiel: INVITE";
}
};
help Kick {
" Entfernt einen User aus einem Channel. Kann nur von Operators oder ";
@@ -582,7 +582,7 @@ help Kick {
" Syntax: KICK <channel>[,<channel2>..] <user>[,<user2>..] <reason>";
" Beispiel: KICK #Lobby foobar Lamer..";
" KICK #Lobby,#OperHelp Lamer23,Luser12 Lamers!";
}
};
help Away {
" Stellt den eigenen Online Status auf \"Away\" ein.";
@@ -590,7 +590,7 @@ help Away {
" Syntax: AWAY <Grund> (Setzt eigenen Nick auf Away und zeigt angegebenen Grund an)";
" AWAY (Hebt den Away Status auf)";
" Beispiel: AWAY Essenszeit!";
}
};
help Watch {
" Watch ist ein Benachrichtigungssystem welches schneller und ressourcenschonender";
@@ -604,7 +604,7 @@ help Watch {
" Syntax: WATCH +nick1 +nick2 +nick3 (Fügt Nickname hinzu)";
" WATCH -nick (Löscht Nickname)";
" WATCH (Zeigt die Watch Liste an)";
}
};
help List {
" Liefert eine vollständige Liste sämtlicher Channels im Netzwerk.";
@@ -621,7 +621,7 @@ help List {
" !*mask* Zeigt Channels an, die NICHT zur Maske *mask* passen";
" -";
" Sämtliche Flags können statt einer Standard Maske verwendet werden.";
}
};
help Privmsg {
" Eröffnet eine private Unterhaltung, ein sogenanntes 'Query'";
@@ -638,7 +638,7 @@ help Privmsg {
" Beispiel: PRIVMSG hAtbLaDe :Hello";
" PRIVMSG hAtbLaDe,Somefella,Lamer :Hallo allerseits!";
" PRIVMSG @#hottub Am Samstag haben wir Team Besprechung.";
}
};
help Notice {
" Sendet Nachrichten an bestimmte Empfänger, die nur von diesen gelesen";
@@ -656,7 +656,7 @@ help Notice {
" Beispiel: NOTICE hAtbLaDe :Hello";
" NOTICE hAtbLaDe,Somefella,Lamer :Hallo Leute!";
" NOTICE @#hottub Achtet mal auf diesen Lamer.";
}
};
help Knock {
" In Channels, die auf invite only eingestellt sind, kann man";
@@ -664,14 +664,14 @@ help Knock {
" -";
" Syntax: KNOCK <channel> <message>";
" Beispiel: KNOCK #secret_chan Ich bin Op hier, holt mich mal rein!";
}
};
help Setname {
" Ermöglicht es, dass User ihren \"Real name\" (GECOS) direkt online";
" im IRC, ohne neu zu connecten, ändern können.";
" -";
" Syntax: SETNAME <New Real Name>";
}
};
help Vhost {
" Verbirgt den realen Hostnamen durch Überschreiben mit einem virtuellen,";
@@ -680,7 +680,7 @@ help Vhost {
" -";
" Synatx: VHOST <login> <password>";
" Beispiel: VHOST openbsd ilovecypto";
}
};
help Mode {
" Setzt einen Modus für einen Channel oder einen User. Eine Liste der";
@@ -689,34 +689,34 @@ help Mode {
" Syntax: MODE <channel/user> <mode>";
" Beispiel: MODE #Support +tn";
" MODE #Support +ootn hAtbLaDe XYZ";
}
};
help Credits {
" Zeigt eine Liste aller, die an der Entwicklung von UnrealIRCd mitgewirkt haben.";
" -";
" Syntax: CREDITS";
" CREDITS <server>";
}
};
help Dalinfo {
" Diser Befehl liefert historische Danksagungen (von ircu, etc..)";
" -";
" Syntax: DALINFO";
" Syntax: DALINFO <server>";
}
};
help License {
" Dieser Befehl zeigt die Lizenzinformationen für UnrealIRCd an.";
" Syntax: LICENSE";
" LICENSE <server>";
}
};
help Time {
" Zeigt das aktuelle Datum und die Zeit des Servers an.";
" -";
" Syntax : TIME";
" TIME <server>";
}
};
help Silence {
" Nachrichten von einem User oder einer Liste von Usern werden ignoriert.";
@@ -724,7 +724,7 @@ help Silence {
" Syntax: SILENCE +nickname (Schreibt einen Nicknamen in die SILENCE Liste)";
" SILENCE -nickname (Löscht einen Nicknamen aus der SILENCE Liste)";
" SILENCE (Zeigt die aktuelle SILENCE Liste an)";
}
};
help Oper {
" Bewirkt, dass ein User den IRC Operator Status erhält.";
@@ -734,7 +734,7 @@ help Oper {
" Achtung: Sowohl uid als auch Passwort sind case sensitive ";
" (Groß- und Kleinschreibung beachten!)";
" Beispiel: OPER hAtbLaDe foobar234";
}
};
help Wallops {
" Sendet eine \"Nachricht\" an alle, die den Usermodus +w haben.";
@@ -742,7 +742,7 @@ help Wallops {
" können sie lesen.";
" -";
" Syntax: WALLOPS <nachricht>";
}
};
help Globops {
" Sendet eine globale \"Nachricht\" an alle IRCops. Die Nachricht";
@@ -751,7 +751,7 @@ help Globops {
" -";
" Syntax: GLOBOPS <message>";
" Beispiel: GLOBOPS Lets get em clones ..";
}
};
help Locops {
" Ähnlich, wie GLOBOPS, allerdings empfangen nur IRCops,";
@@ -759,28 +759,28 @@ help Locops {
" -";
" Syntax: LOCOPS <message>";
" Beispiel: LOCOPS Gib dem User mal ne k:line ...";
}
};
help Chatops {
" Sendet eine Nachricht an alle IrcOps (global).";
" -";
" Syntax: CHATOPS <message>";
" Example: CHATOPS Gonna k:line that user ...";
}
};
help Adchat {
" Sendet eine Nachricht an alle Admins, die online sind.";
" -";
" Syntax: ADCHAT <text>";
" Beispiel: ADCHAT Hey guys! I'm finally here.";
}
};
help Nachat {
" Sendet eine Nachricht an alle NetAdmins, die online sind.";
" -";
" Syntax: NACHAT <text>";
" Beispiel: NACHAT Hey guys! How is everything?";
}
};
help Kill {
" Dieser Befehl entfernt User vom Server (anders als KICK";
@@ -790,7 +790,7 @@ help Kill {
" -";
" Syntax: KILL <user1>, <user2>, <user3>,... <reason>";
" Beispiel: KILL Jack16 Werbung für Dialer hier nicht erlaubt";
}
};
help Kline {
" Dieser Befehl erzeugt zeitabhängige K:Line bezogen auf eine";
@@ -806,7 +806,7 @@ help Kline {
" Beispiel: KLINE *@*.aol.com Abuse (setzt eine permanente K:line)";
" KLINE *@*.someisp.com 2d Abuse (setzt eine K:line für 2 Tage)";
" KLINE -*@*.aol.com";
}
};
help Zline {
" Dieser Befehl erzeugt zeitabhängige Z:Line bezogen auf eine";
@@ -824,7 +824,7 @@ help Zline {
" ZLINE -*@127.0.0.1";
" Anmerkung: Gibt man bei zline statt einer IP einen Host an, so wirkt sie wie eine kline.";
" ACHTUNG: Der IrcOp benötigt hierfür das can_gkline oper Flag";
}
};
help Gline {
" Dieser Befehl erzeugt zeitabhängige G:Line bezogen auf eine";
@@ -842,7 +842,7 @@ help Gline {
" GLINE *@*.idiot.net 1d5h :Spammers (Setzt eine 29 std G:line)";
" GLINE -*@*.idiot.net";
" ACHTUNG: Der IrcOp benötigt hierfür das can_gkline oper Flag";
}
};
help Shun {
" Verhindert, dass der User IRGENDEINEN Befehl ausführen kann, ausser";
@@ -860,7 +860,7 @@ help Shun {
" (Shunt foobar@aol.com für 10 Minuten wegen Spamming)";
" SHUN +foobar@aol.com 1d6h :Spamming (Bewirkt einen 30 stündigen SHUN)";
" ACHTUNG: Der IrcOp benötigt hierfür das can_gkline oper Flag";
}
};
help Gzline {
" Dieser Befehl erzeugt zeitabhängige globale Z:Line. Wer eine IP Adresse";
@@ -877,7 +877,7 @@ help Gzline {
" GZLINE *@4.16.200.* 1d5h Spammers (Setzt eine 29 std Globale Z:line)";
" GZLINE -*@4.16.200.* ";
" Anmerkung: Gibt man bei gzline statt einer IP einen Host an, so wirkt sie wie eine gline.";
}
};
help Akill {
" Setzt einen Autokill für die angegebene Host Maske. Das verhindert, ";
@@ -887,14 +887,14 @@ help Akill {
" -";
" Syntax: AKILL <user@host> :<Grund>";
" Beispiel: AKILL foo@aol.com :Spammers!";
}
};
help Rakill {
" Löscht einen durch Service Administrator gesetzten AKILL.";
" DIESER BEFEHL IST NUR SERVERN ERLAUBT";
" -";
" Syntax: RAKILL <user@host>";
}
};
help Rehash {
" Veranlasst den Server, seine Konfigurationsdatei neu einzulesen.";
@@ -922,7 +922,7 @@ help Rehash {
" zur regelmäßigen automatischen Wiederverfügbarmachung von nicht mehr";
" benötigtem Speicherplatz, indem nicht mehr erreichbare Objekte im";
" Speicher automatisch freigegeben werden.";
}
};
help Restart {
" Killt den IRC Prozess und startet ihn neu. Dabei werden alle momentan";
@@ -932,7 +932,7 @@ help Restart {
" Syntax: RESTART";
" RESTART <password>";
" RESTART <password> <reason>";
}
};
help Die {
" Beendet den IRC Prozess. Dabei werden alle momentan zum Server";
@@ -941,17 +941,17 @@ help Die {
" -";
" Syntax: DIE";
" DIE <password>";
}
};
help Lag {
" Dieser Befehl ist ähnlich einem Traceroute für IRC Server.";
" Man gibt beispielsweise /LAG irc.example.org ein und es";
" Man gibt beispielsweise /LAG irc.fyremoon.net ein und es";
" erfolgen Antworten von jedem Server über den der Befehl geleitet wird";
" mit Zeit u.s.w.";
" Hilfreich, um nachzuschauen, wo ein Lag ist.";
" -";
" Syntax: LAG <server>";
}
};
help Sethost {
" Mit diesem Befehl kann man den Virtual host (Vhost) in jeden gewünschten";
@@ -960,7 +960,7 @@ help Sethost {
" -";
" Syntax: SETHOST <new hostname>";
" Beispiel: SETHOST hier.kommt.der.chef";
}
};
help Setident {
" Mit diesem Befehl kann man den Ident (Username) ändern.";
@@ -968,7 +968,7 @@ help Setident {
" -";
" Syntax: SETIDENT <new ident>";
" Beispiel: SETIDENT l33t";
}
};
help Chghost {
" Mit diesem Befehl kann man den Host eines Users, der aktuell";
@@ -977,7 +977,7 @@ help Chghost {
" -";
" Syntax: CHGHOST <nick> <host>";
" Beispiel: CHGHOST hAtbLaDe root.me.com";
}
};
help Chgident {
" Ändert den Ident eines Users im IRC Netzwerk.";
@@ -985,7 +985,7 @@ help Chgident {
" -";
" Syntax: CHGIDENT <nick> <ident>";
" Beispiel: CHGIDENT hAtbLaDe sheep";
}
};
help Chgname {
" Ändert den \"IRC Name\" (oder \"Real Name\") eines Users im IRC Netzwerk.";
@@ -993,7 +993,7 @@ help Chgname {
" -";
" Syntax: CHGNAME <nick> <name>";
" Beispiel: CHGNAME hAtbLaDe Gotta new name :)";
}
};
help Squit {
" Trennt einen IRC Server vom Netzwerk.";
@@ -1002,7 +1002,7 @@ help Squit {
" -";
" Syntax: SQUIT <server>";
" Beispiel: SQUIT leaf.*";
}
};
help Connect {
" Linkt einen anderen IRC Server zu dem, auf dem der Befehl gegeben wird.";
@@ -1013,7 +1013,7 @@ help Connect {
" CONNECT <hub> <port> <leaf>";
" Beispiel: CONNECT leaf.*";
" CONNECT hub.* 6667 leaf.*";
}
};
help Dccdeny {
" Legt ein DCC Verbot für diese Dateimaske fest. Das bedeutet, dass alle";
@@ -1021,7 +1021,7 @@ help Dccdeny {
" Befehl nur für IrcOps.";
" -";
" Syntax: DCCDENY <filename mask> <reason>";
}
};
help Undccdeny {
" Wird EXAKT die angegeben Datei gefunden, wird sie gelöscht, andernfalls";
@@ -1029,7 +1029,7 @@ help Undccdeny {
" Befehl nur für IrcOps.";
" -";
" Syntax: UNDCCDENY <filename mask>";
}
};
help Sajoin {
" Zwingt einen User, einen Channel zu joinen.";
@@ -1038,7 +1038,7 @@ help Sajoin {
" Syntax: SAJOIN <nick> <channel>,[<channel2>..]";
" Beispiel: SAJOIN hAtbLaDe #OperHelp";
" SAJOIN hAtbLaDe #Support,#IRCHelp";
}
};
help Sapart {
" Zwingt einen User, einen Channel zu verlassen.";
@@ -1047,7 +1047,7 @@ help Sapart {
" Syntax: SAPART <nick> <channel>,[<channel2>..]";
" Beispiel: SAPART hAtbLaDe #OperHelp";
" SAPART hAtbLaDe #Support,#IRCHelp";
}
};
help Samode {
" Erlaubt es einem Services Administrator die Modi eines Channels zu ändern,";
@@ -1056,7 +1056,7 @@ help Samode {
" -";
" Syntax: SAMODE <channel> <mode>";
" Beispiel: SAMODE #Support +m";
}
};
help Trace {
" Man kann TRACE auf Server und User anwenden.";
@@ -1067,15 +1067,15 @@ help Trace {
" Befehl nur für IrcOps.";
" -";
" Syntax: TRACE <servername|nickname>";
" Beispiel: TRACE irc.example.org";
}
" Beispiel: TRACE irc.fyremoon.net";
};
help Opermotd {
" Zeigt die Operator MOTD des IRCd an.";
" Befehl nur für IrcOps.";
" -";
" Syntax: OPERMOTD";
}
};
help Sdesc {
" Mit diesem Befehl kann man die Infozeile des Servers ändern,";
@@ -1084,7 +1084,7 @@ help Sdesc {
" -";
" Syntax: SDESC <New description>";
" Beispiel: SDESC Fly High, Fly Free";
}
};
help Mkpasswd {
" Dieser Befehl verschlüsselt den übergebenen String und liefert einen 'hash' zurück.";
@@ -1095,7 +1095,7 @@ help Mkpasswd {
" -";
" Syntax: MKPASSWD <method> <password>";
" Beispiel: MKPASSWD argon2 IamTeh1337";
}
};
help Module {
" Dieser Befehl liefert eine Liste aller geladenen Module.";
@@ -1116,21 +1116,24 @@ help Module {
" [OLD?] Fehlende Modul Version, vergessen, ein altes Beta* Modul neu zu kompilieren?";
" Zusätzlich sieht man eine Liste, welche 'hooks' und Befehlüberschreitungen";
" vorhanden sind (die Nummer der 'hook's' kann in include/modules.h nachgesehen werden.";
}
};
help Close {
" Dieser Befehl schliesst alle unbekannten Verbindungen zum IRC Server";
" IRC server.";
" -";
" Syntax: CLOSE";
}
};
help Tsctl {
" Uhrzeit aller Server anzeigen.";
" Dies ist ein erweiterter Befehl, um die interne IRC Uhrzeit anzupassen.";
" Befehl nur für IrcOps.";
" -";
" Syntax: TSCTL ALLTIME (Zeigt den Zeitstatus aller Server)";
}
" Syntax: TSCTL OFFSET +|- <time> (Stellt interne IRC Uhrzeit)";
" TSCTL TIME (Erzeugt einen Zeitstatus Bericht)";
" TSCTL ALLTIME (Zeigt den Zeitstatus aller Server)";
" TSCTL SVSTIME <timestamp> (Stellt die Uhrzeit auf allen Servern ein)";
};
help Svsnick {
" Ändert den Nicknamen des Users, der angegeben wird.";
@@ -1138,7 +1141,7 @@ help Svsnick {
" -";
" Syntax: SVSNICK <nickname> <new nickname> <timestamp>";
" Beispiel: SVSNICK hAtbLaDe Foobar 963086432";
}
};
help Svsmode {
" Ändert Modi des Users, der angegeben wird.";
@@ -1146,7 +1149,7 @@ help Svsmode {
" -";
" Syntax: SVSMODE <nickname> <usermode>";
" Beispiel: SVSMODE hAtbLaDe +i";
}
};
help Svskill {
" Disconnected einen User vom Netzwerk.";
@@ -1154,7 +1157,7 @@ help Svskill {
" -";
" Syntax: SVSKILL <user> :<reason>";
" Beispiel: SVSKILL Lamer21 :Goodbye";
}
};
help Svsnoop {
" Dieser Befehl aktiviert oder deaktiviert die Möglichkeit";
@@ -1163,7 +1166,7 @@ help Svsnoop {
" -";
" Syntax: SVSNOOP <server> <+/->";
" Beispiel: SVSNOOP leaf.* -";
}
};
help Svsjoin {
" Zwingt einen User, einen Channel zu joinen.";
@@ -1172,7 +1175,7 @@ help Svsjoin {
" Syntax: SVSJOIN <nick> <channel>[,<channel2>..]";
" Beispiel: SVSJOIN hAtbLaDe #jail";
" SVSJOIN hAtbLaDe #jail,#zoo";
}
};
help Svspart {
" Zwingt einen User einen Channel zu verlassen.";
@@ -1182,7 +1185,7 @@ help Svspart {
" Beispiel: SVSPART hAtbLaDe #Hanson";
" SVSPART hAtbLaDe #Hanson,#AOL";
" SVSPART hAtbLaDe #Hanson,#AOL Und weg auch....";
}
};
help Svso {
" Gibt dem Nick Operflags wie die in den O:lines.";
@@ -1192,7 +1195,7 @@ help Svso {
" Syntax: SVSO <nick> <+operflags> (Setzt die Operflags)";
" SVSO <nick> - (Löscht alle O:Line Flags)";
" Beispiel: SVSO SomeNick +bBkK";
}
};
help Swhois {
" Ändert die WHOIS Meldung des Nicknamen.";
@@ -1201,7 +1204,7 @@ help Swhois {
" Syntax: SWHOIS <nick> :<message> (Stellt SWHOIS ein)";
" SWHOIS <nick> : (Reset des SWHOIS)";
" Beispiel: SWHOIS SomeNick :is a lamer";
}
};
help Sqline {
" Bannt den Nicknamen oder ähnliche Namen vom Server.";
@@ -1209,7 +1212,7 @@ help Sqline {
" -";
" Syntax: SQLINE <nickmask> :<Reason>";
" Beispiel: SQLINE *Bot* :No bots";
}
};
help Unsqline {
" Entfernt Bann auf Nickname oder Nickname Maske.";
@@ -1217,7 +1220,7 @@ help Unsqline {
" -";
" Synax: UNSQLINE <nickmask>";
" Beispiel: UNSQLINE *Bot*";
}
};
help Svs2mode {
" Ändert die Usermodi eines Nicknamens.";
@@ -1225,7 +1228,7 @@ help Svs2mode {
" -";
" Syntax: :services.somenet.com SVS2MODE <nickname> +<mode>";
" Beispiel: :services.roxnet.org SVS2MODE hAtbLaDe +h";
}
};
help Svsfline {
" Setzt gegebene Dateimaske auf DCCDENY";
@@ -1234,7 +1237,7 @@ help Svsfline {
" Syntax: :server SVSFLINE + file :grund (Fügt Dateinamen hinzu)";
" :server SVSFLINE - file (löscht den Dateinamen)";
" :server SVSFLINE * (Löscht die DCCDENY Liste)";
}
};
help Svsmotd {
"Ändert die Service Message Of The Day";
@@ -1243,7 +1246,7 @@ help Svsmotd {
" SVSMOTD ! (Löscht die MOTD)";
" SVSMOTD ! :<text> (Löscht Text und fügt neuen hinzu)";
"Beispiel: SVSMOTD # :Services MOTD";
}
};
help Svsnline {
" Setzt einen globalen Bann auf den Realnamen.";
@@ -1256,7 +1259,7 @@ help Svsnline {
" SVSNLINE - (um einen Bann zu löschen)";
" SVSNLINE * (um alle Banns zu löschen)";
" Beispiel: SVSNLINE sub7_drone :*sub7*";
}
};
help Svslusers {
" Ändert die globale und/oder lokale maximalen Userzahl";
@@ -1265,15 +1268,15 @@ help Svslusers {
" Muss durch einen U:Lined Server gesendet werden.";
" -";
" Syntax: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
" Beispiel: SVSLUSERS irc.example.org -1 200";
}
" Beispiel: SVSLUSERS irc.test.com -1 200";
};
help Svswatch {
" Ändert die WATCH Liste eines Users.";
" Muss durch einen U:Lined Server gesendet werden.";
" Syntax: SVSWATCH <nick> :<watch parameters>";
" Beispiel: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
}
};
help Svssilence {
" Ändert die SILENCE Liste eines Users.";
@@ -1282,7 +1285,7 @@ help Svssilence {
" zum Setzen/Löschen in einer Zeile stehen.";
" Syntax: SVSSILENCE <nick> :<silence parameters>";
" Beispiel: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
}
};
help Svssno {
" Ändert die snomask des angegebenen Users.";
@@ -1290,7 +1293,7 @@ help Svssno {
" -";
" Syntax: SVSSNO <nickname> <snomasks>";
" Beispiel: SVSSNO joe +Gc";
}
};
help Svs2sno {
" Ändert die snomask eines Nicknamen und zeigt dem";
@@ -1299,7 +1302,7 @@ help Svs2sno {
" -";
" Syntax: SVS2SNO <nickname> <snomasks>";
" Beispiel: SVS2SNO joe +Gc";
}
};
help Svsnolag {
" Aktiviert ein 'kein fake lag' für einen User.";
@@ -1307,7 +1310,7 @@ help Svsnolag {
" -";
" Syntax: SVSNOLAG [+|-] <nickname>";
" Example: SVSNOLAG + joe";
}
};
help Svs2nolag {
" Aktiviert ein 'kein fake lag' für einen User.";
@@ -1315,7 +1318,7 @@ help Svs2nolag {
" -";
" Syntax: SVS2NOLAG [+|-] <nickname>";
" Example: SVS2NOLAG + joe";
}
};
help Spamfilter {
" Diese Befehle setzten oder löschen globale Spam Filter.";
@@ -1332,14 +1335,14 @@ help Spamfilter {
" 'kline', 'gline', 'zline', 'gzline', 'block' (blockiert Nachricht),";
" 'dccblock' (kann keine DCC mehr senden), 'viruschan' (verlässt alle Channels";
" und joint zwangsweise im Virus Help Channel), warn (Warnung für IrcOps).";
" [regex] hier handelt es sich um den Ausdruck in der Nachricht, auf den hin Reaktionen";
" erfolgen sollen.";
" [tkltime] die Zeitdauer, wie lange *LINEs, die durch [action] gesetzt wurden, gelten sollen";
" (ein '-' angeben, um den Default aus set::spamfilter::ban-time zu verwenden,";
" dieser Wert wird für 'block/tempshun' ignoriert).";
" dieser Wert wird für 'block/tempshun' ignoriert).";
" [reason] der Grund für die *LINE oder blocknachricht, DARF KEINE LEERZEICHEN ENTHALTEN,";
" '_' wird in Leerzeichen übersetzt. Auch hier gilt, dass bei Angabe von '-' der";
" Default (set::spamfilter::ban-reason) benutzt wird.";
" [regex] hier handelt es sich um den Ausdruck in der Nachricht, auf den hin Reaktionen";
" erfolgen sollen.";
" - ";
" Einige Beispiele (die möglicherweise länger als eine Zeile sind):";
" /spamfilter add p block - - Come watch me on my webcam";
@@ -1350,7 +1353,7 @@ help Spamfilter {
" /spamfilter add p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
" /spamfilter del p block - - Come watch me on my webcam*";
" /spamfilter add cN gzline 1d No_advertising_please come to irc\..+\..+";
}
};
help Tempshun {
" Setzt oder löscht 'temoräre Shuns'.";
@@ -1361,25 +1364,25 @@ help Tempshun {
" Syntax: TEMPSHUN [+|-]<nickname> [reason]";
" Example: TEMPSHUN evilguy vermutlich Infektion";
" TEMPSHUN -niceguy";
}
};
help DccAllow {
" Für Hilfe zum DCCALLOW System, gib ein: '/DCCALLOW HELP'";
/* It would be useless and bad to include it here since that
* stuff quickly gets out-of-synch.
*/
}
};
help Addmotd {
" Fügt eine Zeile ans Ende der MOTD an.";
" -";
" Syntax: ADDMOTD <text>";
" Beispiel: ADDMOTD Spielt fair!";
}
};
help Addomotd {
" Fügt eine Zeile ans Ende der OPERMOTD an. ";
" -";
" Syntax: ADDOMOTD <text>";
" Beispiel: ADDOMOTD Abuse it and lose it!";
}
};
File diff suppressed because it is too large Load Diff
+318 -337
View File
File diff suppressed because it is too large Load Diff
+141 -125
View File
@@ -1,4 +1,4 @@
/* UnrealIRCd 5 Help Configuration
/* UnrealIRCd 4 Help Configuration
* Based on the original help text written by hAtbLaDe
* Revised by CC (07/2002) and many others
*
@@ -23,7 +23,7 @@ help {
" /HELPOP CHMODES - Per la lista delle mode per i canali.";
" -";
" ==-------------------------oOo--------------------------==";
}
};
/* note: indexes were generated by cat somecmds|sort|column -c 70
* along with tab->space conversion (tabwidth 8).
@@ -48,7 +48,7 @@ help Usercmds {
" KICK NICK TIME";
" KNOCK NOTICE TOPIC";
" ==-------------------------oOo-------------------------==";
}
};
help Opercmds {
" In questa sezione trovi i comandi disponibili solamente agli Oper.";
@@ -68,7 +68,7 @@ help Opercmds {
" DCCDENY MKPASSWD SDESC ZLINE";
" DIE MODULE SETHOST";
" ==-------------------------oOo-------------------------==";
}
};
help Svscmds {
" In questa sezione sono elencati i comandi che possono essere";
@@ -85,7 +85,7 @@ help Svscmds {
" SVSFLINE SVSMOTD SVSO SWHOIS";
" SVSJOIN SVSNICK SVSPART UNSQLINE";
" ==-------------------------oOo-------------------------==";
}
};
help Umodes {
" Questa è una lista di tutte le mode utente disponibili.";
@@ -112,7 +112,7 @@ help Umodes {
" T = Blocca la ricezione di CTCP.";
" W = Segnala quando qualcuno fa un /WHOIS su di te (disponibile solo allo Staff).";
" ==---------------------------oOo---------------------------==";
}
};
help Snomasks {
" Snomask sta per 'Service NOtice MASK', principalmente controlla quali";
@@ -140,7 +140,7 @@ help Snomasks {
" S = Mostra blocchi dovuti allo Spamfilter.";
" v = Mostra l'utilizzo del comando /VHOST.";
" ==-------------------------oOo------------------------==";
}
};
help Chmodes {
" Questa è una lista di tutte le mode canale disponibili.";
@@ -186,7 +186,7 @@ help Chmodes {
" Z = Indica che tutti gli utenti in canale stanno utilizzando una connessione sicura";
" (Questa mode è modificabile solo dal server e solo se il canale è già +z).";
" ==------------------------------oOo----------------------------==";
}
};
help ExtBans {
" Questi ban di permettono di bannare im naniera diversa dal tradizionale nick!user@host.";
@@ -213,7 +213,11 @@ help ExtBans {
" Questi tipi di ban introducono nuovi criteri per bannare un utente:";
" ==-Type--------Name---------------------------Explanation-----------------------==";
" | | Se un utente è identificato ai services con questo ";
" ~a | account | account, rientrerà nel ban. ";
" | | account, rientrerà nel ban. ";
" | | Questo è leggermente differente da ~R perché un ";
" ~a | account | utente con nick ABC potrebbe essere identificato con ";
" | | l'account XYZ. Non tutti i services supportano questo ";
" | | comando, in tal caso dovrai usare ~R. ";
" | | Esempio: +e ~a:Name ";
"-----------------------------------------------------------------------------------";
" | | Se l'utente è nel canale specificato nel ban, non sarà ";
@@ -235,6 +239,14 @@ help ExtBans {
" | | (' ') che il trattino basso ('_'), quindi rientrerebbe ";
" | | in questo ban anche 'Stupid bot script'. ";
"-----------------------------------------------------------------------------------";
" | | Se un utente è identificato ai services (solitamente ";
" | | NickServ) e il suo nickname è quello indicato, rientrerà";
" | | nel ban. Ciò significa che questo ban è realmente utile ";
" ~R | registered | solo per le eccezioni (+e), ad esempio +e ~R:Nick. ";
" | | Permetterà a <Nick> di stare in canale, a meno che non ";
" | | ci siano altri ban ad impedirlo, se è identificato a ";
" | | NickServ e sta usando il nickname <Nick>. ";
"-----------------------------------------------------------------------------------";
" | | Quando un utente sta usando SSL/TLS con un certificato ";
" | | client puoi far corrispondere all'utente la sua firma ";
" ~S | certfp | digitale (che trovi con /WHOIS). Molto utile per le ";
@@ -246,7 +258,7 @@ help ExtBans {
"ad esempio +b ~q:~c:#lamers impedirà di scrivere a tutti gli utenti che frequentano #lamers.";
"I ban del secondo gruppo possono essere usati anche per le eccezioni agli inviti (+I),";
"come +I ~c:#trusted e +I ~a:accountname.";
}
};
help Chmodef {
" La mode di canale +f fornisce una protezione completa dal flood per il canale.";
@@ -271,7 +283,7 @@ help Chmodef {
" -";
" Se scegli di specificare un'azione per una mode, puoi anche specificare";
" un tempo (in minuti) dopo il quale quell'azione sarà annullata.";
}
};
help Nick {
" Cambia la tua 'identità online' sul server.";
@@ -280,7 +292,7 @@ help Nick {
" -";
" Sintassi: NICK <nuovonick>";
" Esempio: NICK Ugo";
}
};
help Whois {
" Mostra tutte le informazioni possibili sull'utente in questione,";
@@ -300,7 +312,7 @@ help Whois {
" + - L'utente è voice nel canale (+v).";
" ! - L'utente ha nascosto i suoi canali nel whois (+p) e tu lo vedi perché sei un Oper.";
" ? - Il canale è segreto (+s) e tu lo vedi perché sei un Oper.";
}
};
help Who {
" Fornisce informazioni sugli utenti.";
@@ -342,7 +354,7 @@ help Who {
" + - L'utente è voice del canale (+v).";
" ! - L'utente ha nascosto il suo stato di Oper, ma tu puoi vederlo perché sei Oper.";
" ? - L'utente è visibile solamente agli Oper.";
}
};
help Whowas {
" Fornisce informazioni simili al whois (vedi /HELPOP WHOIS)";
@@ -351,7 +363,7 @@ help Whowas {
" Sintassi: WHOWAS <nickname>";
" WHOWAS <nickname> <numero massimo di risultati>";
" Esempio: WHOWAS Ugo";
}
};
help Cycle {
" 'Cicla' dal canale indicato. Questo comando corrisponde";
@@ -360,7 +372,7 @@ help Cycle {
" Sintassi: CYCLE <chan1>,<chan2>,<chan3>";
" Esempio: CYCLE #help";
" Esempio: CYCLE #main,#chat";
}
};
help Dns {
" Restituisce informzioni relative alla cache DNS del server IRC.";
@@ -371,14 +383,14 @@ help Dns {
" 'DNS i' mostrerà informazioni dettagliate sulla configurazione dei nameservers";
" -";
" Sintassi: DNS [opzione]";
}
};
help Names {
" Restituisce la lista degli utenti sul canale indicato.";
" -";
" Sintassi: NAMES <canale>";
" Esempio: NAMES #irchelp";
}
};
help Ison {
" Usato per determinare se un dato utente è";
@@ -386,7 +398,7 @@ help Ison {
" -";
" Sintassi: ISON <utente1> <utente2> <utente3>";
" Esempio: ISON hAtbLaDe Stskeeps AOLBot";
}
};
help Join {
" Usato per accedere ad uno o più canali sul server IRC.";
@@ -399,7 +411,7 @@ help Join {
" Esempio: JOIN #irchelp";
" JOIN #Lobby,#IRCd";
" JOIN #IRCd,#irchelp,#main letmein,somepass,anotherpass";
}
};
help Part {
" Usato per uscire da uno o più canali del server IRC.";
@@ -409,34 +421,34 @@ help Part {
" Sintassi: PART <canale1>,<canale2>,<canale3> <motivo>";
" Example: PART #irchelp";
" PART #Lobby,#IRCd A più tardi!";
}
};
help Motd {
" Mostra il 'Message Of The Day' del server IRC a cui sei connesso.";
" -";
" Sintassi: MOTD";
" MOTD <server>";
}
};
help Rules {
" Mostra il regolamento del server IRC a cui sei connesso.";
" -";
" Sintassi: RULES";
" RULES <server>";
}
};
help Lusers {
" Fornisce informazioni relative agli utenti locali e globali,";
" come numero di utenti massimo e attuale.";
" -";
" Sintassi: LUSERS [server]";
}
};
help Map {
" Restituisce una 'Mappa' grafica della net IRC.";
" -";
" Sintassi: MAP";
}
};
help Quit {
" Ti disconnette dal server IRC.";
@@ -445,7 +457,7 @@ help Quit {
" -";
" Sintassi: QUIT <motivo>";
" Esempio: QUIT Sto uscendo!";
}
};
help Ping {
" Questo comando è utilizzato per verificare la presenza di un client o un";
@@ -457,10 +469,10 @@ help Ping {
" Nota che questo comando è differente dal /CTCP PING.";
" -";
" Sintassi: PING <server> <server2>";
" Esempio: PING irc.example.org";
" Esempio: PING irc.mynet.it";
" PING Ugo";
" PING Ugo irc.example.org";
}
" PING Ugo irc.mynet.it";
};
help Pong {
" Il PONG è una risposta ad un messaggio PING. Se il parametro <server2> è definito,";
@@ -469,16 +481,16 @@ help Pong {
" questo messaggio.";
" -";
" Sintassi: PONG <server> <server2>";
" Esempio: PONG irc.example.org irc.othernet.it";
" (corrisponde a un messaggio PONG da irc.example.org a irc.othernet.it)";
}
" Esempio: PONG irc.mynet.it irc.othernet.it";
" (corrisponde a un messaggio PONG da irc.mynet.it a irc.othernet.it)";
};
help Version {
" Fornisce informazioni relative alla versione del software IRCd in uso.";
" -";
" Sintassi: VERSION";
" VERSION <server>";
}
};
help Stats {
" Fornisce informazioni statistiche relative al server.";
@@ -487,21 +499,21 @@ help Stats {
" Esempio: STATS u";
" -";
" Digita /STATS senza parametri per un elenco delle flag disponibili.";
}
};
help Links {
" Elenca tutti i server attualmente linkati nella net IRC.";
" Solo gli Oper possono vedere i server U:Lined";
" -";
" Sintassi: LINKS";
}
};
help Admin {
" Fornisce informazioni relative agli amministratori del server.";
" -";
" Sintassi: ADMIN";
" ADMIN <server>";
}
};
help Userhost {
" Restituisce la mask user@host dell'utente indicato.";
@@ -509,7 +521,7 @@ help Userhost {
" -";
" Sintassi: USERHOST <nickname>";
" Esempio: USERHOST Ugo";
}
};
help Userip {
" Restituisce l'IP dell'utente indicato";
@@ -517,7 +529,7 @@ help Userip {
" -";
" Sintassi: USERIP <nickname>";
" Esempio: USERIP Ugo";
}
};
help Topic {
" Imposta o cambia il topic del canale indicato.";
@@ -527,7 +539,7 @@ help Topic {
" TOPIC <canale> <messaggio> (Cambia il topic attuale con <messaggio>)";
" Example: TOPIC #Operhelp";
" TOPIC #Lobby Benvenuti su #Lobby!";
}
};
help Invite {
" Manda all'utente indicato un invito per accedere ad un dato canale.";
@@ -539,7 +551,7 @@ help Invite {
" Sintassi: INVITE <utente> <canale>";
" Esempio: INVITE Ugo #irchelp";
" Esempio: INVITE";
}
};
help Kick {
" Espelle un utente da un canale. Può essere utilizzato solo da halfop e superiori.";
@@ -547,7 +559,7 @@ help Kick {
" -";
" Sintassi: KICK <canale> <utente> [motivo]";
" Esempio: KICK #Lobby foobar Lamer";
}
};
help Away {
" Imposta il tuo stato come 'Away' (non al computer).";
@@ -557,7 +569,7 @@ help Away {
" Sintassi: AWAY <motivo> (Ti imposta away con la motivazione fornita)";
" AWAY (Annulla il tuo stato di away)";
" Esempio: AWAY Ora di pranzo!";
}
};
help Watch {
" 'Watch' è un sistema di notifica sul server più veloce e che utilizza";
@@ -571,7 +583,7 @@ help Watch {
" Sintassi: WATCH +nick1 +nick2 +nick3 (Aggiunge i nick indicati alla lista)";
" WATCH -nick (Rimuove i nick indicati dalla lista)";
" WATCH (Controlla quali utenti sono online)";
}
};
help List {
" Fornisce un elenco completo di tutti i canali presenti sulla net IRC.";
@@ -588,7 +600,7 @@ help List {
" !*mask* Elenca i canali che NON corrispondono al parametro indicato";
" -";
" Ciascuno di questi può essere usato al posto dei valori standard.";
}
};
help Privmsg {
" Invia un messaggio ad un utente, canale o server.";
@@ -607,7 +619,7 @@ help Privmsg {
" /PRIVMSG $<mask> <testo>";
" Invia un messaggio a tutti gli utenti sui server che corrispondono a <mask>. Solo per Oper.";
" I client mostrano generalmente questo tipo di messaggi nella finestra di status.";
" Esempio: /PRIVMSG $*.example.org Nelle prossime ore il server subirà un aggiornamento";
" Esempio: /PRIVMSG $*.mynet.it Nelle prossime ore il server subirà un aggiornamento";
" Nota che in molti casi è preferibile utilizzare i services (ad esempio /OS GLOBAL).";
" -";
" Sono supportati anche più destinatari, ad esempio /PRIVMSG <nick1>,<nick2>,<nick3>.";
@@ -615,7 +627,7 @@ help Privmsg {
" Nota: In alcuni vecchi client (ad esempio ircII) non puoi utilizzare /msg o /privmsg";
" per utilizzare le 'funzioni avanzate'. Dovrai invece usare";
" '/QUOTE PRIVMSG @#canale ciao' o un comando simile.";
}
};
help Notice {
" Invia un notice ad un utente, canale o server.";
@@ -634,7 +646,7 @@ help Notice {
" /NOTICE $<mask> <testo>";
" Invia un messaggio a tutti gli utenti sui server che corrispondono a <mask>. Solo per Oper.";
" I client mostrano generalmente questo tipo di messaggi nella finestra di status.";
" Esempio: /NOTICE $*.example.org Nelle prossime ore il server subirà un aggiornamento";
" Esempio: /NOTICE $*.mynet.it Nelle prossime ore il server subirà un aggiornamento";
" Nota che in molti casi è preferibile utilizzare i services (ad esempio /OS GLOBAL).";
" -";
" Sono supportati anche più destinatari, ad esempio /NOTICE <nick1>,<nick2>,<nick3>.";
@@ -642,7 +654,7 @@ help Notice {
" Nota: In alcuni vecchi client (ad esempio ircII) non puoi utilizzare /notice";
" per utilizzare le 'funzioni avanzate'. Dovrai invece usare";
" '/QUOTE NOTICE @#canale ciao' o un comando simile.";
}
};
help Knock {
" Per i canali ad invito, puoi utilizzare questo comando per 'bussare'";
@@ -650,14 +662,14 @@ help Knock {
" -";
" Syntax: KNOCK <canale> <messaggio>";
" Example: KNOCK #canale Fatemi entrare!";
}
};
help Setname {
" Permette agli utenti di cambiare il loro 'Real name' (GECOS)";
" direttamente sul server IRC, senza riconnettersi.";
" -";
" Sintassi: SETNAME <Nuovo Realname>";
}
};
help Vhost {
" Nasconde il tuo hostname reale con uno virtuale";
@@ -665,7 +677,7 @@ help Vhost {
" -";
" Sintassi: VHOST <login> <password>";
" Esempio: VHOST mylogin mypassword";
}
};
help Mode {
" Imposta una mode su un canale o un utente.";
@@ -674,7 +686,7 @@ help Mode {
" Sintassi: MODE <canale/utente> <mode> <parametri>";
" Example: MODE #irchelp +tn";
" MODE #irchelp +ootn hAtbLaDe XYZ";
}
};
help Credits {
" Con questo comando verrà mostrata una lista di utenti";
@@ -682,27 +694,27 @@ help Credits {
" -";
" Sintassi: CREDITS";
" CREDITS <server>";
}
};
help Dalinfo {
" Questo comando mostrerà i crediti storici (da ircu, ecc.).";
" -";
" Sintassi: DALINFO";
" Sintassi: DALINFO <server>";
}
};
help License {
" Questo comando mostra i dettagli relativi alla licenza con cui è rilasciato UnrealIRCd.";
" Sintassi: LICENSE";
" LICENSE <server>";
}
};
help Time {
" Mostra la data e l'ora corrente del server.";
" -";
" Sintassi : TIME";
" TIME <server>";
}
};
help Silence {
" Ignora i messaggi di un utente o di una lista di utenti a livello server.";
@@ -710,7 +722,7 @@ help Silence {
" Sintassi: SILENCE +nickname (Aggiunge un nick alla lista)";
" SILENCE -nickname (Rimuove un nick dalla lista)";
" SILENCE (Elenca i nick attualmente in lista SILENCE)";
}
};
help Oper {
" Utilizzato dagli utenti per ottenere i privilegi di Oper";
@@ -719,28 +731,28 @@ help Oper {
" Sintassi: OPER <utente> <password>";
" Nota: sia <utente> che <password> sono case sensitive.";
" Esempio: OPER Ugo foobar234";
}
};
help Wallops {
" Invia un particolare messaggio a tutti gli utenti con la mode +w impostata.";
" Solo gli Oper possono inviare wallops, mentre chiunque può visualizzarli.";
" -";
" Sintassi: WALLOPS <messaggio>";
}
};
help Locops {
" Invia un messaggio a tutti gli Oper sullo stesso server di chi invia.";
" -";
" Sintassi: LOCOPS <messaggio>";
" Esempio: LOCOPS Dobbiamo bannare quell'utente...";
}
};
help Globops {
" Invia un messaggio a tutti gli Oper.";
" -";
" Sintassi: GLOBOPS <messaggio>";
" Esempio: GLOBOPS Dobbiamo bannare quell'utente...";
}
};
help Kill {
" Disconnette forzatamente un utente dal server IRC.";
@@ -748,7 +760,7 @@ help Kill {
" -";
" Sintassi: KILL <nick1>,<nick2>,<nick3> <motivo>";
" Example: KILL Ugo Non sono ammessi cloni";
}
};
help Kline {
" Questo comando aggiunge una kline a tempo.";
@@ -763,7 +775,7 @@ help Kline {
" KLINE *@*.isp.com 2d Violazione del regolamento (aggiunge una kline di due giorni)";
" KLINE Idiot 1d Utente non gradito";
" KLINE -*@*.aol.com";
}
};
help Zline {
" Questo comando aggiunge una zline a tempo.";
@@ -778,7 +790,7 @@ help Zline {
" ZLINE *@1.2.3.4 2d Violazione del regolamento (aggiunge una kline di due giorni)";
" ZLINE -*@1.2.3.4";
" Nota: questo comando richiede il permesso can_zline nel blocco oper";
}
};
help Gline {
" Questo comando aggiunge una gline a tempo.";
@@ -794,7 +806,7 @@ help Gline {
" GLINE Idiot 1d Violazione del regolamento";
" GLINE -*@*.idiot.net";
" Nota: questo comando richiede il permesso can_gkline nel blocco oper";
}
};
help Shun {
" Impedisce all'utente di eseguire ogni comando ad eccezione di /ADMIN";
@@ -812,7 +824,7 @@ help Shun {
" ('shunna' foobar@aol.com per 10 minuti per Spam)";
" SHUN +foobar@aol.com 1d6h :Spam (Aggiunge uno shun di 30 ore)";
" Nota: questo comando richiede il permesso can_gkline nel blocco oper";
}
};
help Gzline {
" Questo comando aggiunge una zline globale a tempo.";
@@ -826,7 +838,7 @@ help Gzline {
" Esempio: GZLINE *@1.2.3.4 900 Spam (Aggiunge una gzline di 15 minuti)";
" GZLINE *@1.2.3.4 1d5h Spam (Aggiunge una gzline di 29 ore)";
" Nota: questo comando richiede il permesso can_gzline nel blocco oper";
}
};
help Rehash {
" Ricarica i file di configurazione del server.";
@@ -846,8 +858,8 @@ help Rehash {
" -dns - Inizializza e ricarica il risolutore DNS";
" -garbage - Forza la pulizia dei file inutili";
" -motd - Ricarica i file MOTD, BOTMOTD, OPERMOTD e RULES, inclusi quelli nei blocchi tld";
" -tls - Ricarica i certificati SSL/TLS";
}
" -ssl - Ricarica i certificati SSL";
};
help Restart {
" Termina e riavvia il processo IRC, disconnettendo tutti gli utenti attualmente connessi.";
@@ -856,7 +868,7 @@ help Restart {
" Sintassi: RESTART";
" RESTART <password>";
" RESTART <password> <motivo>";
}
};
help Die {
" Termina il processo IRC, disconnettendo tutti gli utenti attualmente connessi.";
@@ -864,16 +876,16 @@ help Die {
" -";
" Sintassi: DIE";
" DIE <password>";
}
};
help Lag {
" Questo comando è come un 'traceroute' per i server IRC.";
" Digitando /LAG irc.example.org otterrai una risposta con l'elenco";
" Digitando /LAG irc.mynet-it otterrai una risposta con l'elenco";
" di tutti i server dai quali è passata la richiesta.";
" Utile per identificare in quale punto si verifica il lag.";
" -";
" Sintassi: LAG <server>";
}
};
help Sethost {
" Permette agli utenti di cambiare il proprio host con un virtualhost";
@@ -882,7 +894,7 @@ help Sethost {
" -";
" Sintassi: SETHOST <nuovo-host>";
" Esempio: SETHOST il.mio.vhost";
}
};
help Setident {
" Permette agli utenti di cambiare la propria ident.";
@@ -890,7 +902,7 @@ help Setident {
" -";
" Sintassi: SETIDENT <nuova-ident>";
" Esempio: SETIDENT l33t";
}
};
help Chghost {
" Cambia l'hostname di un utente attualmente connesso.";
@@ -898,7 +910,7 @@ help Chghost {
" -";
" Sintassi: CHGHOST <nick> <nuovo-host>";
" Esempio: CHGHOST Ugo my.new.host";
}
};
help Chgident {
" Cambia l'ident di un utente attualmente connesso.";
@@ -906,7 +918,7 @@ help Chgident {
" -";
" Sintassi: CHGIDENT <nick> <nuova-ident>";
" Esempio: CHGIDENT Ugo user";
}
};
help Chgname {
" Cambia il 'Realname' di un utente attualmente connesso.";
@@ -914,15 +926,15 @@ help Chgname {
" -";
" Sintassi: CHGNAME <nick> <nuovo-realname>";
" Esempio: CHGNAME Ugo Il mio nuovo nome :)";
}
};
help Squit {
" Disconnette un determinato server IRC dalla net.";
" Questa funzione è utilizzabile solo dagli Oper.";
" -";
" Sintassi: SQUIT <server>";
" Esempio: SQUIT server2.example.org";
}
" Esempio: SQUIT server2.mynet.it";
};
help Connect {
" Connette un determinato server IRC a quello attualmente utilizzato";
@@ -933,7 +945,7 @@ help Connect {
" CONNECT <server1> <porta> <server2>";
" Esempio: CONNECT leaf.server.net";
" CONNECT leaf.server.net 6667 hub.server.net";
}
};
help Dccdeny {
" Aggiunge un blocco DCC per un determinato file.";
@@ -941,14 +953,14 @@ help Dccdeny {
" Questa funzione è utilizzabile solo dagli Oper.";
" -";
" Sintassi: DCCDENY <file> <motivo>";
}
};
help Undccdeny {
" Rimuove il blocco DCC dal file esatto indicato, se esistente. Se non esistente esegue una ricerca.";
" Questa funzione è utilizzabile solo dagli Oper.";
" -";
" Sintassi: UNDCCDENY <file>";
}
};
help Sajoin {
" Forza un utente ad accedere ad un canale.";
@@ -957,7 +969,7 @@ help Sajoin {
" Sintassi: SAJOIN <nick> <canale>,[<canale2>,ecc.]";
" Esempio: SAJOIN Ugo #OperHelp";
" SAJOIN Ugo #OperHelp,#IRCHelp";
}
};
help Sapart {
" Forza un utente a lasciare un canale.";
@@ -967,7 +979,7 @@ help Sapart {
" Esempio: SAPART Ugo #OperHelp";
" SAPART Ugo #OperHelp,#IRCHelp";
" SAPART Ugo #OperHelp,#IRCHelp Utente assente";
}
};
help Samode {
" Permette di modificare le mode di un canale pur non essendone op o superiore.";
@@ -975,7 +987,7 @@ help Samode {
" -";
" Sintassi: SAMODE <canale> <mode>";
" Esempio: SAMODE #irchelp +m";
}
};
help Trace {
" Permette di tracciare un server o un utente.";
@@ -983,15 +995,15 @@ help Trace {
" Se utilizzato su un server ne restituisce classe, versione e informazioni sul collegamento.";
" -";
" Sintassi: TRACE <server/nick>";
" Esempio: TRACE irc.example.org";
}
" Esempio: TRACE irc.mynet.it";
};
help Opermotd {
" Mostra il MOTD per gli Oper";
" Questa funzione è utilizzabile solo dagli Oper.";
" -";
" Sintassi: OPERMOTD";
}
};
help Sdesc {
" Permette di modificare la descrizione del server";
@@ -1000,7 +1012,7 @@ help Sdesc {
" -";
" Sintassi: SDESC <nuova descrizione>";
" Esempio: SDESC Il mio server IRC";
}
};
help Mkpasswd {
" Restituisce un 'hash' della stringa specificata.";
@@ -1011,7 +1023,7 @@ help Mkpasswd {
" -";
" Sintassi: MKPASSWD <metodo> <password>";
" Esempio: MKPASSWD argon2 LaMiaPassword";
}
};
help Module {
" Restituisce un elenco di tutti i moduli caricati sul server.";
@@ -1033,19 +1045,23 @@ help Module {
" [3RD] Il modulo è di terze parti, ovvero non parte del core di UnrealIRCd.";
" In aggiunta vedrai un elenco degli hook e dei comandi di ovverride presenti";
" (il numero di hook può essere visto anche in include/modules.h).";
}
};
help Close {
" Questo comando termina tutte le connessioni sconosciute al server IRC.";
" -";
" Sintassi: CLOSE";
}
};
help Tsctl {
" Questo è un comando avanzato utilizzato per correggere l'orologio interno di IRC.";
" Questa funzione è utilizzabile solo dagli Oper.";
" -";
" Sintassi: TSCTL ALLTIME (Mostra il report TS di tutti i server)";
}
" Sintassi: TSCTL OFFSET +|- <orario> (Modifica l'orologio interno di IRC)";
" TSCTL TIME (Restituisce il report TS)";
" TSCTL ALLTIME (Mostra il report TS di tutti i server)";
" TSCTL SVSTIME <timestamp> (Imposta l'orario di tutti i server)";
};
help Htm {
" Attiva o disattiva la modalità 'High Traffic'.";
@@ -1063,7 +1079,7 @@ help Htm {
" NOISY - Abilita un avviso quando la modalità HTM viene attivata/disattivata";
" QUIET - Disabilita l'avviso quando la modalità HTM viene attivata/disattivata";
" TO <valore> - Imposta il valore oltre il quale attivare HTM";
}
};
help Svsnick {
" Cambia il nickname dell'utente indicato.";
@@ -1071,7 +1087,7 @@ help Svsnick {
" -";
" Sintassi: SVSNICK <nickname> <nuovo-nick> <timestamp>";
" Esempio: SVSNICK Ugo Foobar 963086432";
}
};
help Svsmode {
" Cambia le mode dell'utente indicato.";
@@ -1079,7 +1095,7 @@ help Svsmode {
" -";
" Sintassi: SVSMODE <nickname> <usermode>";
" Esempio: SVSMODE Ugo +i";
}
};
help Svskill {
" Disconnette forzatamente un utente dal server.";
@@ -1087,7 +1103,7 @@ help Svskill {
" -";
" Sintassi: SVSKILL <nickname> :<motivo>";
" Esempio: SVSKILL Lamer21 :Arrivederci";
}
};
help Svsnoop {
" Attiva o disattiva le funzionalità per gli Oper sul server indicato.";
@@ -1095,7 +1111,7 @@ help Svsnoop {
" -";
" Sintassi: SVSNOOP <server> <+/->";
" Esempio: SVSNOOP leaf.server.net -";
}
};
help Svsjoin {
" Forza un utente ad accedere ad un canale.";
@@ -1104,7 +1120,7 @@ help Svsjoin {
" Sintassi: SVSJOIN <nick> <canale1>[,<canale2>,ecc.] [password1[,password2,ecc.]]";
" Esempio: SVSJOIN Ugo #jail";
" SVSJOIN Ugo #jail,#zoo";
}
};
help Svspart {
" Forza un utente a lasciare un canale.";
@@ -1114,7 +1130,7 @@ help Svspart {
" Esempio: SVSPART Ugo #Hanson";
" SVSPART Ugo #Hanson,#AOL";
" SVSPART Ugo #Hanson,#AOL Accesso non ammesso";
}
};
help Svso {
" Assegna all'utente delle operflag come quelle nelle operclass.";
@@ -1124,7 +1140,7 @@ help Svso {
" Sintassi: SVSO <nick> <+operflags> (aggiunge le operflag)";
" SVSO <nick> - (rimuove tutte le operflag)";
" Esempio: SVSO Ugo +bBkK";
}
};
help Swhois {
" Cambia il messaggio di whois dell'utente indicato.";
@@ -1133,7 +1149,7 @@ help Swhois {
" Sintassi: SWHOIS <nick> :<messaggio> (imposta il messaggio di SWHOIS)";
" SWHOIS <nick> : (Resetta il messaggio di SWHOIS)";
" Esempio: SWHOIS Ugo :sono un lamer";
}
};
help Sqline {
" Blocca l'uso di un determinato nick sul server.";
@@ -1141,7 +1157,7 @@ help Sqline {
" -";
" Sintassi: SQLINE <nick> :<motivo>";
" Esempio: SQLINE *Bot* :Bot non ammessi";
}
};
help Unsqline {
" Rimuove il blocco di un nick dal server.";
@@ -1149,7 +1165,7 @@ help Unsqline {
" -";
" Sintassi: UNSQLINE <nick>";
" Esempio: UNSQLINE *Bot*";
}
};
help Svs2mode {
" Cambia le mode di un utente e gli mostra un messaggio di notifica.";
@@ -1157,7 +1173,7 @@ help Svs2mode {
" -";
" Sintassi: SVS2MODE <nickname> <mode>";
" Esempio: SVS2MODE Ugo +h";
}
};
help Svsfline {
" Aggiunge il file indicato alla lista DCCDENY.";
@@ -1166,7 +1182,7 @@ help Svsfline {
" Sintassi: :server SVSFLINE + file :motivo (aggiunge il file alla lista)";
" :server SVSFLINE - file (rimuove il file dalla lista)";
" :server SVSFLINE * (svuota la lista)";
}
};
help Svsmotd {
" Cambia il MOTD dei services.";
@@ -1175,7 +1191,7 @@ help Svsmotd {
" SVSMOTD ! (Cancella il MOTD)";
" SVSMOTD ! :<testo> (Cancella il MOTD attuale e aggiunge il testo)";
" Esempio: SVSMOTD # :Services MOTD";
}
};
help Svsnline {
" Aggiunge un ban sul realname.";
@@ -1187,7 +1203,7 @@ help Svsnline {
" SVSNLINE - :<realname> (rimuove un ban)";
" SVSNLINE * (Rimuove tutti i ban)";
" Esempio: SVSNLINE + sub7_drone :*sub7*";
}
};
help Svslusers {
" Modifica il conteggio degli utenti locali o globali di un server.";
@@ -1195,15 +1211,15 @@ help Svslusers {
" Deve essere inviato tramite un server U:Lined.";
" -";
" Sintassi: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
" Esempio: SVSLUSERS irc.example.org -1 200";
}
" Esempio: SVSLUSERS irc.mynet.it -1 200";
};
help Svswatch {
" Cambia la lista WATCH di un utente.";
" Deve essere inviato tramite un server U:Lined.";
" Sintassi: SVSWATCH <nick> :<parametri>";
" Esempio: SVSWATCH Ugo :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
}
};
help Svssilence {
" Cambia la lista SILENCE di un utente.";
@@ -1212,7 +1228,7 @@ help Svssilence {
" più valori in una stessa linea.";
" Sintassi: SVSSILENCE <nick> :<parametri>";
" Esempio: SVSSILENCE Ugo :+*!*@*.com +*!*@*.bla.com";
}
};
help Svssno {
" Cambia le snomask di un utente.";
@@ -1220,7 +1236,7 @@ help Svssno {
" -";
" Sintassi: SVSSNO <nickname> <snomasks>";
" Esempio: SVSSNO Ugo +Gc";
}
};
help Svs2sno {
" Cambia le snomask di un utente e gli mostra un messaggio di notifica";
@@ -1228,7 +1244,7 @@ help Svs2sno {
" -";
" Sintassi: SVS2SNO <nickname> <snomasks>";
" Esempio: SVS2SNO Ugo +Gc";
}
};
help Svsnolag {
" Abilita il 'no fake lag' per un utente";
@@ -1236,7 +1252,7 @@ help Svsnolag {
" -";
" Sintassi: SVSNOLAG [+|-] <nickname>";
" Esempio: SVSNOLAG + Ugo";
}
};
help Svs2nolag {
" Abilita il 'no fake lag' per un utente";
@@ -1244,7 +1260,7 @@ help Svs2nolag {
" -";
" Syntax: SVS2NOLAG [+|-] <nickname>";
" Example: SVS2NOLAG + Ugo";
}
};
help Spamfilter {
" Questo comando aggiunge o rimuove filtri di spamfilter globali.";
@@ -1264,11 +1280,11 @@ help Spamfilter {
" 'kline', 'gline', 'zline', 'gzline', 'block' (blocca il messaggio),";
" 'dccblock' (blocca l'invio di DCC), 'viruschan' (esce da tutti i canali ed entra";
" automaticamente sul 'virus chan' definito nel file di configurazione), 'warn' (avvisa gli Oper).";
" [stringa] La stringa che deve essere bloccata (come espressione regolare o testo semplice)";
" [durata] La durata del ban in caso sia impostata una *line come azione. Usa '-' per utilizzare";
" la durata di default definita nel file di configurazione";
" [motivo] Il motivo da visualizzare nella *line, utilizzando i trattini bassi come spazi.";
" Usa '-' per utilizzare il motivo di default definito nel file di configurazione";
" [stringa] La stringa che deve essere bloccata (come espressione regolare o testo semplice)";
" - ";
" Alcuni esempi:";
" /spamfilter add -simple p block - - Come watch me on my webcam";
@@ -1278,8 +1294,8 @@ help Spamfilter {
" /spamfilter add -simple p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
" /spamfilter add -simple p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
" /spamfilter del -simple p block - - Come watch me on my webcam*";
" /spamfilter add -regex cN gzline 1d No_advertising_please come to irc\..+\..+";
}
" /spamfilter add -regex cN gzline 1d No_advertising_please /come to irc\..+\..+/";
};
help Tempshun {
" Aggiunge o rimuove shun temporanei'.";
@@ -1289,23 +1305,23 @@ help Tempshun {
" Sintassi: TEMPSHUN [+|-]<nickname> [motivo]";
" Example: TEMPSHUN Ugo possibile virus";
" TEMPSHUN -Ugo";
}
};
help DccAllow {
" Per informazioni sul sistema DCCALLOW digita '/DCCALLOW HELP'";
/* Sarebbe inutile inserire qui le informazioni che si possono già trovare altrove */
}
};
help Addmotd {
" Aggiunge una linea alla fine del MOTD ";
" -";
" Sintassi: ADDMOTD <testo>";
" Esempio: ADDMOTD Divertiti!";
}
};
help Addomotd {
" Aggiunge una linea alla fine dell'OperMOTD ";
" -";
" Sintassi: ADDOMOTD <testo>";
" Esempio: ADDOMOTD Fatti non foste a moderare come bruti...";
}
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+137 -126
View File
@@ -1,4 +1,4 @@
/* UnrealIRCd 5 Help Configuration
/* UnrealIRCd 4 Help Configuration
* Based on the original help text written by hAtbLaDe
* Revised by CC (07/2002)
*
@@ -24,7 +24,7 @@ help {
" /HELPOP OFLAGS - Просмотреть флаги в O:line";
" -";
" ==-------------------------oOo--------------------------==";
}
};
help Usercmds {
" Список команд, доступных пользователям на данный момент.";
@@ -44,7 +44,7 @@ help Usercmds {
" KICK NICK TIME";
" KNOCK NOTICE TOPIC";
" ==-------------------------oOo---------------------------==";
}
};
help Opercmds {
" Список команд, доступных только IRC операторам.";
@@ -64,7 +64,7 @@ help Opercmds {
" DCCDENY MKPASSWD SDESC ZLINE";
" DIE MODULE SETHOST";
" ==-------------------------oOo---------------------------==";
}
};
help Svscmds {
" Список команд, которые могут быть посланы";
@@ -81,7 +81,7 @@ help Svscmds {
" SVSFLINE SVSMOTD SVSO SWHOIS";
" SVSJOIN SVSNICK SVSPART UNSQLINE";
" ==-------------------------oOo---------------------------==";
}
};
help Umodes {
" Список режимов пользователя.";
@@ -125,7 +125,7 @@ help Umodes {
" W = Позволяет видеть, когда кто-то делает /WHOIS на Ваш";
" ник (только для IRC операторов)";
" ==---------------------------oOo---------------------------==";
}
};
help Snomasks {
" Snomask - это сокращение от 'Service NOtice MASK'.";
@@ -157,7 +157,7 @@ help Snomasks {
" S = Видны сообщения спам фильтра";
" v = Видны попытки использования команды /VHOST";
" ==-------------------------oOo------------------------==";
}
};
help Chmodes {
" В этой секции приведён список режимов, которые могут быть наложены";
@@ -230,7 +230,7 @@ help Chmodes {
" [h] - минимум требуются права halfop, [o] - минимум требуются права";
" chanop, [q] - требуются права владельца";
" ==------------------------------oOo----------------------------==";
}
};
help ExtBans {
" Данные типы банов позволяют вам банить не только по традиционной маске nick!user@host.";
@@ -272,12 +272,19 @@ help ExtBans {
" ~r | настоящее имя | он не сможет зайти. Пример: +b ~r:*Stupid_bot_script* ";
" | | Дополнение: Подчёркивание ('_') обозначает и ";
" | | пробел (' '), и подчёркивание ('_'). ";
"-----------------------------------------------------------------------------------";
" | | Бан срабатывает, если пользователь идентифицирован ";
" ~R | | на сервисах (обычно Nickserv) и имя совпадает. В ";
" |зарегестрирован| реальности необходим для исключений на канале. ";
" | | Пример: +e ~R:Nick ";
" | | Позволяет Nick находится на канале, независимо от банов,";
" | | если он идентифицирован на сервисах, использует ник Nick";
" ==------------------------------------------------------------------------------==";
" -";
" Вы можете стекировать расширенные типы банов первой и второй группы друг с другом.";
" Пример: +b ~q:~c:#lamers";
" Действием данной команды будет молчание всех пользователей, кто сидит в #lamers";
}
};
help Chmodef {
" Режим канала +f предоставляет гибкий механизм защиты канала от флуда.";
@@ -303,7 +310,7 @@ help Chmodef {
" -";
" Если вы задаёте некое действие в ответ на флуд, вы можете так же указать,";
" как долго (в минутах) будет действовать наказание.";
}
};
help Oflags {
" Описание флагов, помещаемых в O:lines конфигурационного файла сервера";
@@ -340,7 +347,7 @@ help Oflags {
" X (can_addline) Может использовать /ADDLINE";
" d (can_dccdeny) Может использовать /DCCDENY";
" ==----------------------oOo--------------------==";
}
};
help Nick {
" Изменяет виртуальное имя (Ник).";
@@ -349,7 +356,7 @@ help Nick {
" -";
" Синтаксис: NICK <новое имя>";
" Пример: NICK hAtbLaDe";
}
};
help Whois {
" Показывает различную информацию о пользователе:";
@@ -372,7 +379,7 @@ help Whois {
" видите, потому что имеете права оператора IRC";
" ? - Канал является \"Секретным\" (+s), но вы его видите, потому";
" что имеете права оператора IRC";
}
};
help Who {
" Возвращает информацию о пользователях";
@@ -428,7 +435,7 @@ help Who {
" ! - У пользователя установлен флаг +H";
" ? - Вы видите пользователя только потому, что являетесь IRC";
" оператором";
}
};
help Whowas {
" Показывает информацию WHOIS о пользователях";
@@ -437,7 +444,7 @@ help Whowas {
" Синтаксис: WHOWAS <имя пользователя>";
" WHOWAS <имя пользователя> <количество записей>";
" Пример: WHOWAS hAtbLaDe";
}
};
help Cycle {
" Выполнить цикл \"выйти/войти\" в указанном канале. Команда";
@@ -446,7 +453,7 @@ help Cycle {
" Синтаксис: CYCLE <канал1>,<канал2>,<канал3>";
" Пример: CYCLE #help";
" CYCLE #main,#chat";
}
};
help Dns {
" Возвращает информацию из DNS кэша IRC сервера.";
@@ -458,14 +465,14 @@ help Dns {
" 'DNS i' вернёт подробную информацию о конфигурации сервера имён";
" -";
"Синтаксис: DNS [опция]";
}
};
help Names {
" Возвращает список пользователей указанного канала.";
" -";
" Синтаксис: NAMES <канал>";
" Пример: NAMES #Support";
}
};
help Ison {
" Служит для определения состояния Пользователя - в";
@@ -473,7 +480,7 @@ help Ison {
" -";
" Синтаксис: ISON <имя> <имя2> <имя3> <имя4>";
" Пример: ISON hAtbLaDe Stskeeps OperServ AOLBot";
}
};
help Join {
" Используется для входа на канал(ы) IRC сервера.";
@@ -487,7 +494,7 @@ help Join {
" Пример: JOIN #Support";
" JOIN #Lobby,#IRCd";
" JOIN #IRCd,#Support,#main letmein,somepass,anotherpass";
}
};
help Part {
" Используется для того, чтобы покинуть текущий канал.";
@@ -499,7 +506,7 @@ help Part {
" Синтаксис: PART <канал>,<канал2>,<канал3>,<канал4> <причина>";
" Пример: PART #Support";
" PART #Lobby,#IRCd See ya later!";
}
};
help Motd {
" Показывают информационное сообщение IRC сервера, к которому";
@@ -507,28 +514,28 @@ help Motd {
" -";
" Синтаксис: MOTD";
" MOTD <сервер>";
}
};
help Rules {
" Показывает правила пользования сетью.";
" -";
" Синтаксис: RULES";
" RULES <сервер>";
}
};
help Lusers {
" Предоставляет информацию о количестве локальных и глобальных";
" пользователей (текущее и максимальное количество пользователей сети).";
" -";
" Синтаксис: LUSERS [сервер]";
}
};
help Map {
" Предоставляет \"Карту Сети\" список серверов и связи между ними.";
" В основном используется для визуализации маршрутизации в сети.";
" -";
" Синтаксис: MAP";
}
};
help Quit {
" Отключает от IRC сервера. Пользователи каналов, в которых вы";
@@ -538,7 +545,7 @@ help Quit {
" -";
" Синтаксис: QUIT <причина>";
" Пример: QUIT Leaving!";
}
};
help Ping {
" Команда PING используется для определения присутствия клиента или";
@@ -551,10 +558,10 @@ help Ping {
" CTCP PING";
" -";
" Синтаксис: PING <сервер> <сервер2>";
" Пример: PING irc.example.org";
" Пример: PING irc.fyremoon.net";
" PING hAtbLaDe";
" PING hAtbLaDe irc2.dynam.ac";
}
};
help Pong {
" Сообщение PONG - это ответ на запрос PING. Если указан параметр";
@@ -563,16 +570,16 @@ help Pong {
" идёт ответ на запрос PING.";
" -";
" Синтаксис: PONG <сервер> <сервер2>";
" Пример: PONG irc.example.org irc2.dynam.ac";
" (PONG от irc.example.org на irc2.dynam.ac)";
}
" Пример: PONG irc.fyremoon.net irc2.dynam.ac";
" (PONG от irc.fyremoon.net на irc2.dynam.ac)";
};
help Version {
" Возавращает версию ПО на IRC сервере.";
" -";
" Синтаксис: VERSION";
" VERSION <сервер>";
}
};
help Stats {
" Возвращает немного статистической информации с сервера";
@@ -582,7 +589,7 @@ help Stats {
" -";
" Дайте команду /stats без параметров для получения списка доступных";
" флагов.";
}
};
help Links {
" Возвращает список серверов, слинкованных с сетью на данный момент.";
@@ -590,14 +597,14 @@ help Links {
" IRC операторы.";
" -";
" Синтаксис: LINKS";
}
};
help Admin {
" Возвращает административную информацию с указанного сервера.";
" -";
" Синтаксис: ADMIN";
" ADMIN <сервер>";
}
};
help Userhost {
" Возвращает имя хоста для указанного пользователя.";
@@ -605,7 +612,7 @@ help Userhost {
" -";
" Синтаксис: USERHOST <имя>";
" Пример: USERHOST hAtbLaDe";
}
};
help Userip {
" Возвращает IP адрес указанного пользователя.";
@@ -613,7 +620,7 @@ help Userip {
" -";
" Синтаксис: USERIP <имя>";
" Пример: USERIP codemastr";
}
};
help Topic {
" Устанавливает/изменяет тему указанного канала, или просто показывает";
@@ -623,7 +630,7 @@ help Topic {
" TOPIC <канал> <тема> (Изменит тему)";
" Пример: TOPIC #Operhelp";
" TOPIC #Lobby Welcome to #Lobby!!";
}
};
help Invite {
" Посылает указанному пользователю приглашение войти на указанный канал.";
@@ -635,7 +642,7 @@ help Invite {
" -";
" Синтаксис: INVITE [<имя> <канал>]";
" Пример: INVITE";
}
};
help Kick {
" Удаляет пользователя из канала. Может быть использована только";
@@ -644,7 +651,7 @@ help Kick {
" -";
" Синтаксис: KICK <канал> <пользователь> [причина]";
" Пример: KICK #Lobby foobar Lamer..";
}
};
help Away {
" Помечает вас как отсутствующего - \"Away\".";
@@ -653,7 +660,7 @@ help Away {
" указанной причине)";
" AWAY (Снимет статус отсутствующего)";
" Пример: AWAY Lunch time!";
}
};
help Watch {
" Watch - это система уведомлений, более быстрая и использующая меньше";
@@ -668,7 +675,7 @@ help Watch {
" уведомлений)";
" WATCH -имя (Удаление имени из списка)";
" WATCH (Покажет весь список уведомлений)";
}
};
help List {
" Возвращает полный список каналов, доступных в сети IRC на данный";
@@ -688,7 +695,7 @@ help List {
" -";
" Все эти параметры могут быть использованы вместо стандартной";
" строки поиска.";
}
};
help Privmsg {
" Позволяет послать сообщение пользователю, всему каналу или целому";
@@ -712,7 +719,7 @@ help Privmsg {
" [Только для Операторов IRC]";
" Сообщение показывается в окне статуса большинством современных IRC";
" клиентов.";
" Пример: /PRIVMSG $*.example.org We will be upgrading our net in the";
" Пример: /PRIVMSG $*.mynet.net We will be upgrading our net in the";
" next hour";
" Однако, следует заметить, что в большинстве случаев лучше использовать";
" сервисы (/OS GLOBAL).";
@@ -725,7 +732,7 @@ help Privmsg {
" нельзя использовать дополнительные возможности команд /msg или";
" /privmsg, нужно пользоваться ими следующим образом:";
" '/QUOTE PRIVMSG @#channel blah'.";
}
};
help Notice {
" Посылает \"notice\" пользователю, каналу или всем, кто подключен к";
@@ -748,7 +755,7 @@ help Notice {
" Посылает \"notice\" всем пользователям сервера, попадающим под";
" <маска> [Доступно только операторам]";
" Сообщения видны в окне статуса большинства современных клиентов.";
" Пример: /NOTICE $*.example.org We will be upgrading our net in the";
" Пример: /NOTICE $*.mynet.net We will be upgrading our net in the";
" next hour";
" В большинстве случаев сервисы (/OS GLOBAL) будут лучшей";
" альтернативой.";
@@ -759,7 +766,7 @@ help Notice {
" ВАЖНО: В случае использования старых клиентов (ircII, к примеру),";
" чтобы использовать дополнительные возможности, необходимо применять";
" следующий способ: '/QUOTE NOTICE @#channel blah'.";
}
};
help Knock {
" Для каналов с ограничением доступа \"только по приглашению\" вы можете";
@@ -767,14 +774,14 @@ help Knock {
" -";
" Синтаксис: KNOCK <#канал> <сообщение>";
" Пример: KNOCK #secret_chan I'm an op, let me in!";
}
};
help Setname {
" Позволяет пользователю изменить реальное имя (\"Real name\") (GECOS)";
" без отключения от IRC";
" -";
" Синтаксис: SETNAME <новое \"реальное имя\">";
}
};
help Vhost {
" Скрывает реальный hostname пользователя, заменяя его виртуальным";
@@ -782,7 +789,7 @@ help Vhost {
" -";
" Синтаксис: VHOST <логин> <пароль>";
" Пример: VHOST openbsd ilovecypto";
}
};
help Mode {
" Устанавливает режим для пользователя или канала.";
@@ -792,7 +799,7 @@ help Mode {
" Синтаксис: MODE <канал/пользователь> <режим>";
" Пример: MODE #Support +tn";
" MODE #Support +ootn hAtbLaDe XYZ";
}
};
help Credits {
" Эта команда возвращает список людей, так или иначе помогавших в";
@@ -800,28 +807,28 @@ help Credits {
" -";
" Синтаксис: CREDITS";
" CREDITS <сервер>";
}
};
help Dalinfo {
" Историческая справка о создателях сервера (от ircu, и далее...)";
" -";
" Синтаксис: DALINFO";
" DALINFO <сервер>";
}
};
help License {
" Возвращает информацию о лицензии, под которой распространяется";
" UnrealIRCd.";
" Синтаксис: LICENSE";
" LICENSE <сервер>";
}
};
help Time {
" Отображает текущую дату и время на сервере.";
" -";
" Синтаксис: TIME";
" TIME <сервер>";
}
};
help Silence {
" Игнорирует сообщения от пользователя или группы пользователей сервера.";
@@ -829,7 +836,7 @@ help Silence {
" Синтаксис: SILENCE +nickname (Добавляет ник в SILENCE список)";
" SILENCE -nickname (Удаляет ник из SILENCE списка)";
" SILENCE (Отображает текущий SILENCE список)";
}
};
help Oper {
" Позволяет пользователю получить статус IRC оператора.";
@@ -837,7 +844,7 @@ help Oper {
" Синтаксис: OPER <идентификатор> <пароль>";
" ВАЖНО: идентификатор и пароль чувствительны к регистру";
" Пример: OPER hAtbLaDe foobar234";
}
};
help Wallops {
" Посылает сообщение всем пользователям с установленным флагом +w.";
@@ -845,7 +852,7 @@ help Wallops {
" сообщения может любой пользователь с установленным флагом +w";
" -";
" Синтаксис: WALLOPS <сообщение>";
}
};
help Globops {
" Посылает общесетевое сообщение для IRC операторов. Видеть его могут";
@@ -853,35 +860,35 @@ help Globops {
" -";
" Синтаксис: GLOBOPS <сообщение>";
" Пример: GLOBOPS Lets get em clones ..";
}
};
help Locops {
" Посылает сообщение IRC операторам, подключенным к серверу (local).";
" -";
" Синтаксис: LOCOPS <сообщение>";
" Пример: LOCOPS Gonna k:line that user ...";
}
};
help Chatops {
" Посылает сообщение всем IRC операторам (global).";
" -";
" Синтаксис: CHATOPS <message>";
" Пример: CHATOPS Gonna k:line that user ...";
}
};
help Adchat {
" Посылает сообщение всем подключенным администраторам";
" -";
" Синтаксис: ADCHAT <текст>";
" Пример: ADCHAT Hey guys! I'm finally here.";
}
};
help Nachat {
" Посылает сообщение всем подключенным администраторам сети";
" -";
" Синтаксис: NACHAT <текст>";
" Пример: NACHAT Hey guys! How is everything?";
}
};
help Kill {
" Отключает пользователей от сервера IRC.";
@@ -889,7 +896,7 @@ help Kill {
" -";
" Синтаксис: KILL <ник1>,<ник2>,<ник3>,... <причина>";
" Пример: KILL Jack16 Cloning is not allowed";
}
};
help Kline {
" Команда временно добавляет пользователя или хост в K:Lines. ";
@@ -906,7 +913,7 @@ help Kline {
" KLINE *@*.someisp.com 2d Abuse (добавляет K:line на 2 дня)";
" KLINE Idiot 1d Please go away";
" KLINE -*@*.aol.com";
}
};
help Zline {
" Команда временно добавляет пользователя или хост в Z:Lines. ";
@@ -922,7 +929,7 @@ help Zline {
" ZLINE *@127.0.0.1 2d Abuse (Добавляет Z:line на 2 дня)";
" ZLINE -*@127.0.0.1";
" ВАЖНО: для использования требуется флаг, разрешающий zline";
}
};
help Gline {
" Команда временно добавляет пользователя или хост в G:Lines. ";
@@ -939,7 +946,7 @@ help Gline {
" GLINE *@*.idiot.net 1d Spammer (Добавляет G:line на 24 часа)";
" GLINE -*@*.idiot.net";
" ВАЖНО: для использования требуется флаг, разрешающий gline";
}
};
help Shun {
" Запрещает использование любой команды, кроме ADMIN и ответов на";
@@ -959,7 +966,7 @@ help Shun {
" (Shun foobar@aol.com на 10 минут по причине Spamming)";
" SHUN +foobar@aol.com 1d6h :Spamming (SHUN на 30 часов)";
" ВАЖНО: для использования требуется флаг, разрешающий gkline";
}
};
help Gzline {
" Команда накладывает временный глобальный Z:line. Если вы попадаете под";
@@ -977,7 +984,7 @@ help Gzline {
" GZLINE *@4.16.200.* 1d5h Spammers (Действующий 29 часов";
" общесетевой Z:line)";
" ВАЖНО: требует установленного can_gzline флага";
}
};
help Akill {
" Применяет Autokill на указанную маску. Запрещает подключение к сети";
@@ -986,14 +993,14 @@ help Akill {
" -";
" Синтаксис: AKILL <user@host> :<причина>";
" Пример: AKILL foo@aol.com :Spammers!";
}
};
help Rakill {
" Снимает ранее установленный AKILL.";
" ЭТА КОМАНДА МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ТОЛЬКО СЕРВЕРАМИ";
" -";
" Синтаксис: RAKILL <user@host>";
}
};
help Rehash {
" Заставляет сервер перечитать файл конфигурации.";
@@ -1014,9 +1021,9 @@ help Rehash {
" -dns - Переинециализация и перезагрузка преобразования адресов";
" -garbage - Активирует \"сборщик мусора\"";
" -motd - Перечитает все файлы MOTD, BOTMOTD, OPERMOTD и RULES (включая tld{})";
" -tls - Перезагрузка сертификатов SSL/TLS";
" -ssl - Перезагрузка сертификатов SSL";
}
};
help Restart {
" Перезапускает IRC демона, с отключением всех пользователей,";
@@ -1026,7 +1033,7 @@ help Restart {
" Синтаксис: RESTART";
" RESTART <пароль>";
" RESTART <пароль> <причина>";
}
};
help Die {
" Убивает IRC демон, отключает от него всех пользователей.";
@@ -1034,16 +1041,16 @@ help Die {
" -";
" Синтаксис: DIE";
" DIE <пароль>";
}
};
help Lag {
" Команда - аналог Traceroute для IRC серверов";
" Вы вводите /LAG irc.example.org и получаете ответ от каждого";
" Вы вводите /LAG irc.fyremoon.net и получаете ответ от каждого";
" сервера, через который она проходит, с указанием времени задержки.";
" Используется для поиска лагов и серверов с нестыковкой по времени";
" -";
" Синтаксис: LAG <server>";
}
};
help Sethost {
" Пользуясь этой командой вы можете сменить свой виртуальный хост";
@@ -1052,7 +1059,7 @@ help Sethost {
" -";
" Синтаксис: SETHOST <новое имя>";
" Пример: SETHOST i.have.hairy.armpits";
}
};
help Setident {
" Этой командой вы можете сменить себе ваш идент (Username).";
@@ -1060,7 +1067,7 @@ help Setident {
" -";
" Синтаксис: SETIDENT <новый ident>";
" Пример: SETIDENT l33t";
}
};
help Chghost {
" Сменяет имя хоста пользователя IRC сети на указанное.";
@@ -1068,7 +1075,7 @@ help Chghost {
" -";
" Синтаксис: CHGHOST <ник> <хост>";
" Пример: CHGHOST hAtbLaDe root.me.com";
}
};
help Chgident {
" Изменяет идентификационную информацию (Ident) о пользователе сети.";
@@ -1076,7 +1083,7 @@ help Chgident {
" -";
" Синтаксис: CHGIDENT <ник> <ident>";
" Пример: CHGIDENT hAtbLaDe sheep";
}
};
help Chgname {
" Изменяет \"IRC Name\" (или \"Real Name\") пользователя сети";
@@ -1084,7 +1091,7 @@ help Chgname {
" -";
" Синтаксис: CHGNAME <ник> <имя>";
" Пример: CHGNAME hAtbLaDe Gotta new name :)";
}
};
help Squit {
" Отключает IRC сервер (или все сервера, попадающие под маску) от сети.";
@@ -1093,7 +1100,7 @@ help Squit {
" -";
" Синтаксис: SQUIT <сервер>";
" Пример: SQUIT leaf.*";
}
};
help Connect {
" Подключает указанный IRC сервер к тому, на котором вы находитесь.";
@@ -1104,21 +1111,21 @@ help Connect {
" CONNECT <leaf> <port> <hub>";
" Пример: CONNECT leaf.*";
" CONNECT leaf.* 6667 hub.*";
}
};
help Dccdeny {
" Запрещает передачу файлов, попадающих под указанную маску, по DCC.";
" Команда доступна только IRC операторам.";
" -";
" Синтаксис: DCCDENY <маска> <причина>";
}
};
help Undccdeny {
" Отменить запрет на передачу файлов по указанной маске.";
" Команда доступна только IRC операторам.";
" -";
" Синтаксис: UNDCCDENY <filename mask>";
}
};
help Sajoin {
" Заставляет пользователя войти в канал.";
@@ -1127,7 +1134,7 @@ help Sajoin {
" Синтаксис: SAJOIN <ник> <канал>,[<канал2>..]";
" Пример: SAJOIN hAtbLaDe #OperHelp";
" SAJOIN hAtbLaDe #Support,#IRCHelp";
}
};
help Sapart {
" Заставляет пользователя покинуть канал.";
@@ -1137,7 +1144,7 @@ help Sapart {
" Пример: SAPART hAtbLaDe #OperHelp";
" SAPART hAtbLaDe #Support,#IRCHelp";
" SAPART hAtbLaDe #Support,#IRCHelp Go away";
}
};
help Samode {
" Позволяет администратору сервисов изменить режимы на указанном канале";
@@ -1146,7 +1153,7 @@ help Samode {
" -";
" Синтаксис: SAMODE <канал> <режим>";
" Пример: SAMODE #Support +m";
}
};
help Trace {
" Команду TRACE можно использовать на сервере или пользователе.";
@@ -1157,15 +1164,15 @@ help Trace {
" используете его в первый раз.";
" -";
" Синтаксис: TRACE <сервер|ник>";
" Пример: TRACE irc.example.org";
}
" Пример: TRACE irc.fyremoon.net";
};
help Opermotd {
" Показывает MOTD сервера для IRC операторов";
" Команда доступна только IRC операторам.";
" -";
" Синтаксис: OPERMOTD";
}
};
help Sdesc {
" Этой командой можно изменить описание сервера без применения squit";
@@ -1174,7 +1181,7 @@ help Sdesc {
" -";
" Синтаксис: SDESC <новое описание>";
" Пример: SDESC Fly High, Fly Free";
}
};
help Mkpasswd {
" Команда возвратит 'hash' указанной строки, который можно";
@@ -1185,7 +1192,7 @@ help Mkpasswd {
" -";
" Синтаксис: MKPASSWD <метод> <пароль>";
" Пример: MKPASSWD argon2 IamTeh1337";
}
};
help Module {
" Покажет список загруженных сервером модулей.";
@@ -1205,20 +1212,24 @@ help Module {
" [OLD?] Отсутствует Mod_Version, забыли перекомпилировать старый";
" модуль";
" Так же будут видны присутствующие hooks и command overrides.";
}
};
help Close {
" Команда позволяет отключить все неизвестные соединения к IRC серверу.";
" -";
" Синтаксис: CLOSE";
}
};
help Tsctl {
" Команда позволяет управлять временем в IRC сети";
" Может использоваться только IRC операторами.";
" -";
" Синтаксис: TSCTL ALLTIME (Покажет время на всех серверах)";
}
" Синтаксис: TSCTL OFFSET +|- <time> (Настройка времени IRC)";
" TSCTL TIME (Покажет время)";
" TSCTL ALLTIME (Покажет время на всех серверах)";
" TSCTL SVSTIME <timestamp> (Установит время на всех";
" серверах)";
};
help Svsnick {
" Меняет ник указанному пользователю.";
@@ -1226,7 +1237,7 @@ help Svsnick {
" -";
" Синтаксис: SVSNICK <старый ник> <новый ник> <timestamp>";
" Пример: SVSNICK hAtbLaDe Foobar 963086432";
}
};
help Svsmode {
" Изменяет режимы указанного пользователя.";
@@ -1234,7 +1245,7 @@ help Svsmode {
" -";
" Синтаксис: SVSMODE <ник> <режим>";
" Пример: SVSMODE hAtbLaDe +i";
}
};
help Svskill {
" Отключает пользователя от сети.";
@@ -1242,7 +1253,7 @@ help Svskill {
" -";
" Синтаксис: SVSKILL <пользователь> :<причина>";
" Пример: SVSKILL Lamer21 :Goodbye";
}
};
help Svsnoop {
" Включает или отключает режим IRC оператора";
@@ -1252,7 +1263,7 @@ help Svsnoop {
" -";
" Синтаксис: SVSNOOP <сервер> <+/->";
" Пример: SVSNOOP leaf.* -";
}
};
help Svsjoin {
" Заставляет пользователя войти в указанный канал.";
@@ -1261,7 +1272,7 @@ help Svsjoin {
" Синтаксис: SVSJOIN <ник> <канал>[,<канал2>..] [ключ1[,ключ2[..]]]";
" Пример: SVSJOIN hAtbLaDe #jail";
" SVSJOIN hAtbLaDe #jail,#zoo";
}
};
help Svspart {
" Заставляет пользователя покинуть канал.";
@@ -1271,7 +1282,7 @@ help Svspart {
" Пример: SVSPART hAtbLaDe #Hanson";
" SVSPART hAtbLaDe #Hanson,#AOL";
" SVSPART hAtbLaDe #Hanson,#AOL You must leave";
}
};
help Svso {
" Даёт пользователю Operflags как описано в O:lines.";
@@ -1281,7 +1292,7 @@ help Svso {
" Синтаксис: SVSO <nick> <+operflags> (Добавляет Operflags)";
" SVSO <nick> - (Снимает все O:Line флаги)";
" Пример: SVSO SomeNick +bBkK";
}
};
help Swhois {
" Изменяет сообщение WHOIS для указанного ника.";
@@ -1290,7 +1301,7 @@ help Swhois {
" Синтаксис: SWHOIS <ник> :<сообщение> (Устанавливает SWHOIS)";
" SWHOIS <ник> : (Сбрасывает SWHOIS)";
" Пример: SWHOIS SomeNick :is a lamer";
}
};
help Sqline {
" Накладывает бан на указанный ник или маску.";
@@ -1298,7 +1309,7 @@ help Sqline {
" -";
" Синтаксис: SQLINE <маска> :<причина>";
" Пример: SQLINE *Bot* :No bots";
}
};
help Unsqline {
" Снимает бан с указанного ника или маски";
@@ -1306,7 +1317,7 @@ help Unsqline {
" -";
" Синтаксис: UNSQLINE <маска>";
" Пример: UNSQLINE *Bot*";
}
};
help Svs2mode {
" Изменяет режимы указанного пользователя и уведомляет его";
@@ -1315,7 +1326,7 @@ help Svs2mode {
" -";
" Синтаксис: SVS2MODE <ник> <режимы>";
" Пример: SVS2MODE hAtbLaDe +h";
}
};
help Svsfline {
" Добавляет маску файла к DCCDENY";
@@ -1324,7 +1335,7 @@ help Svsfline {
" Синтаксис: :server SVSFLINE + file :reason (Добавляет имя файла)";
" :server SVSFLINE - file (Удаляет имя файла)";
" :server SVSFLINE * (Очищает список DCCDENY)";
}
};
help Svsmotd {
" Изменяет MOTD у сервисов.";
@@ -1333,7 +1344,7 @@ help Svsmotd {
" SVSMOTD ! (Удаляет текущий MOTD)";
" SVSMOTD ! :<текст> (Замещает текущий новым MOTD)";
" Пример: SVSMOTD # :Services MOTD";
}
};
help Svsnline {
" Создаёт глобальный бан на основе реального имени.";
@@ -1345,7 +1356,7 @@ help Svsnline {
" SVSNLINE - :<имя> (чтобы удалить бан)";
" SVSNLINE * (очистить все баны)";
" Пример: SVSNLINE + sub7_drone :*sub7*";
}
};
help Svslusers {
" Изменяет общее и/или локальное максимальное количество";
@@ -1354,15 +1365,15 @@ help Svslusers {
" Должно использоваться через сервер, описанный в U:Lines.";
" -";
" Синтаксис: SVSLUSERS <сервер> <globalmax|-1> <localmax|-1>";
" Пример: SVSLUSERS irc.example.org -1 200";
}
" Пример: SVSLUSERS irc.test.com -1 200";
};
help Svswatch {
" Изменяет список WATCH у указанного пользователя.";
" Должно использоваться через сервер, описанный в U:Lines.";
" Синтаксис: SVSWATCH <имя> :<параметры>";
" Пример: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
}
};
help Svssilence {
" Изменяет список SILENCE у указанного пользователя.";
@@ -1371,7 +1382,7 @@ help Svssilence {
" несколько записей одной командой.";
" Синтаксис: SVSSILENCE <имя> :<параметры>";
" Пример: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
}
};
help Svssno {
" Изменяет snomask для указанного ника.";
@@ -1379,7 +1390,7 @@ help Svssno {
" -";
" Синтаксис: SVSSNO <ник> <snomasks>";
" Пример: SVSSNO joe +Gc";
}
};
help Svs2sno {
" Изменяет snomask для указанного ника и уведомляет пользователя";
@@ -1388,7 +1399,7 @@ help Svs2sno {
" -";
" Синтаксис: SVS2SNO <ник> <snomasks>";
" Пример: SVS2SNO joe +Gc";
}
};
help Svsnolag {
" Включает 'no fake lag' для указанного пользователя.";
@@ -1396,7 +1407,7 @@ help Svsnolag {
" -";
" Синтаксис: SVSNOLAG [+|-] <ник>";
" Пример: SVSNOLAG + joe";
}
};
help Svs2nolag {
" Включает 'no fake lag' для указанного пользователя.";
@@ -1404,7 +1415,7 @@ help Svs2nolag {
" -";
" Синтаксис: SVS2NOLAG [+|-] <ник>";
" Пример: SVS2NOLAG + joe";
}
};
help Spamfilter {
@@ -1426,6 +1437,7 @@ help Spamfilter {
" сообщение), 'dccblock' (блокирует любой dccs), 'viruschan'";
" (покинуть все каналы и войти в канал помощи),";
" 'warn' (уведомляет операторов).";
" [regex] регулярное выражение, блокируемое фильтром";
" [tkltime] длительность применяемого фильтром действия (указание '-'";
" включает значение из set::spamfilter::ban-time, но для";
" block/tempshun этот параметр игнорируется.);";
@@ -1433,7 +1445,6 @@ help Spamfilter {
" ПРОБЕЛОВ, '_' будут преобразованы в пробелы. Если в качестве";
" причины указать '-', будет использовано значение";
" по-умолчанию из set::spamfilter::ban-reason.";
" [regex] регулярное выражение, блокируемое фильтром";
" - ";
" Примеры:";
" /spamfilter add p block - - Come watch me on my webcam";
@@ -1444,7 +1455,7 @@ help Spamfilter {
" /spamfilter add p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
" /spamfilter del p block - - Come watch me on my webcam*";
" /spamfilter add cN gzline 1d No_advertising_please come to irc\..+\..+";
}
};
help Tempshun {
" Добавляет/удаляет 'временный shun'.";
@@ -1455,23 +1466,23 @@ help Tempshun {
" Синтаксис: TEMPSHUN [+|-]<ник> [причина]";
" Пример: TEMPSHUN evilguy suspected infection";
" TEMPSHUN -niceguy";
}
};
help DccAllow {
" Для получения помощи по системе DCCALLOW, введите '/DCCALLOW HELP'";
}
};
help Addmotd {
" Добавляет линию в конец MOTD (сообщение дня)";
" -";
" Синтаксис: ADDMOTD <текст>";
" Пример: ADDMOTD Удачного общения!";
}
};
help Addomotd {
" Добавляет линию в конец OPERMOTD (сообщение дня для операторов)";
" -";
" Синтаксис: ADDOMOTD <текст>";
" Пример: ADDOMOTD Согрешите и потеряйте операторство!";
}
};
+142 -126
View File
@@ -1,4 +1,4 @@
/* UnrealIRCd 5 Yardım Yapılandırması
/* UnrealIRCd 4 Yardım Yapılandırması
*
* Orjinal yardım metnini yazan by hAtbLaDe
* Gözden geçiren by CC (07/2002) ve diğerleri
@@ -23,7 +23,7 @@ help {
" /HELPOP CHMODES - Kanal modelerini listeler";
" -";
" ==-------------------------oOo--------------------------==";
}
};
/* note: indexes were generated by cat somecmds|sort|column -c 70
* along with tab->space conversion (tabwidth 8).
@@ -48,7 +48,7 @@ help Usercmds {
" KICK NICK TIME";
" KNOCK NOTICE TOPIC";
" ==-------------------------oOo-------------------------==";
}
};
help Opercmds {
" Bu bölümdeki komutları sadece IRC Operatorler kullanabilir.";
@@ -68,7 +68,7 @@ help Opercmds {
" DCCDENY MKPASSWD SDESC ZLINE";
" DIE MODULE SETHOST";
" ==-------------------------oOo-------------------------==";
}
};
help Svscmds {
" Servisler ile uygulanılan komutları listeler.";
@@ -85,7 +85,7 @@ help Svscmds {
" SVSFLINE SVSMOTD SVSO SWHOIS";
" SVSJOIN SVSNICK SVSPART UNSQLINE";
" ==-------------------------oOo-------------------------==";
}
};
help Umodes {
" Aktif olarak kullanılan Kullanıcı modeleri aşağıdakilerdir.";
@@ -114,7 +114,7 @@ help Umodes {
" W = Size /whois çekildiğinde whois çekeni görmenizi sağlar. (Sadece IRCOp statüsündeki kullanıcılar kullanabilir)";
" Z = Sadece güvenli bağlantı kullanan kullanıcılardan/kullanıcılara PRIVMSG'ler alın/gönderin (SSL)";
" ==---------------------------oOo---------------------------==";
}
};
help Snomasks {
" Snomask açılımı 'Server Notice MASK', server bildirilerini kontrol eder.";
@@ -142,7 +142,7 @@ help Snomasks {
" S = Spamfilter uyarılarını görmenizi sağlar";
" v = Vhost kullanım uyarılarını görmenizi sağlar";
" ==-------------------------oOo------------------------==";
}
};
help Chmodes {
" Kullanılabilen mümkün kanal modelerinin hepsini listeler. /MODE";
@@ -189,7 +189,7 @@ help Chmodes {
" -";
" [h] Halfop, [o] Kanal Operator, [q] Kanal Sahibi";
" ==------------------------------oOo----------------------------==";
}
};
help ExtBans {
" Bu banlar, temel alınan geleneksel banlardan başka sana nick!user@host maskesi";
@@ -233,7 +233,11 @@ help ExtBans {
" Bu ban tipleri kullanılabilen yeni kriterleri gösterir:";
" ==-Tip--------İsim------------------------------Açıklama------------------------==";
" | | Bir kullanıcı servislere bu hesap adıyla giriş yaptıysa ";
" ~a | account | bu yasak ile eşleşecektir. ";
" | | bu yasak ile eşleşecektir. ";
" | | Bu ABC harfli bir kullanıcının XYZ hesab altında oturum ";
" ~a | account | açabileceği anlamına gelir ~R'den biraz farklıdır. ";
" | | Tüm servis paketleri bunu desteklemez, bu durumda bunun ";
" | | yerine ~R kullanmanız gerekecektir. ";
" | | Örnek: +e ~a:Name ";
"-----------------------------------------------------------------------------------";
" | | Kullanıcı bu kanaldaysa, diğer kanala giriş yapabilir ";
@@ -255,6 +259,14 @@ help ExtBans {
" | | dolayısı ile ('_') karekteri, bu ban ";
" | | 'Stupid bot script v1.4' ile eşleşir. ";
"-----------------------------------------------------------------------------------";
" | | Eğer bir kullanıcı kendini servislere tanıtmamışsa ";
" | | (Genellikle NickServ) ve nicki eşleşiyorsa bu ban da ";
" | | eşleşir. Yani bu ban çeşidi yalnıca ban yollarında ";
" ~R | registered | geçerlidir (+e). Örnek: +e ~R:Nick ";
" | | Nick veya rumuzlu kullanıcının diğer banlarına ";
" | | bakılmaksızın eğer kendini NickServ'e tanıtmışsa ";
" | | kanalda bulunmasına izin verir. ";
"-----------------------------------------------------------------------------------";
" | | Bir kullanıcı istemci sertifikasına sahip SSL/TLS ";
" | | kullanıyorsa, kullanıcıyı SSL fingerprint iziyle ";
" ~S | certfp | eşletirebilirsiniz (bunu /WHOIS içinde görürüsünüz). ";
@@ -270,7 +282,7 @@ help ExtBans {
" Örnek: +b ~q:~c:#lamers";
" Yukardaki yapılan ban, 'Quiet' olan bütün kullanıcıları #lamers kanalına girmelerini sağlayacaktır.";
" +I ~c:#trusted ve +I ~a:accountname gibi.";
}
};
help Chmodef {
" +f kanal modu kanallar için gelişmiş bir flood koruma sistemi sağlamaktadır.";
@@ -293,7 +305,7 @@ help Chmodef {
" -";
" Eğer olay başına haraket belirlerseniz, aynı zamanda haraketin ne kadar süre(dakika)";
" sonrasında geçerliliğini kaybedeceğini seçebilirsiniz.";
}
};
help Nick {
@@ -303,7 +315,7 @@ help Nick {
" -";
" Kullanımı: NICK <yeni nick>";
" Örnek: NICK hAtbLaDe";
}
};
help Whois {
" Sorgularda kullanıcının hakkında bilgi gösterir,";
@@ -323,7 +335,7 @@ help Whois {
" + - Kullanıcı voice modesine sahip (+v)";
" ! - Kullanıcının, whoisinde (+p) saklanan kanalları var, ve senin bir IRCop olman gerekli";
" ? - Gizlenmiş bir kanal (+s) ve senin bir IRCop olman gerekli";
}
};
help Who {
" Kullanıcıların hakkında durum bilgisi gösterir.";
@@ -367,7 +379,7 @@ help Who {
" + - Kullanıcı bir voice (+v)";
" ! - Kullanıcının IRC Operator olduğunu gizler";
" ? - Kullanıcı online bir IRC Operator";
}
};
help Whowas {
" Kullanıcılar için geçmiş WHOIS bilgilerini listeler.";
@@ -376,7 +388,7 @@ help Whowas {
" Kullanımı: WHOWAS <nick>";
" WHOWAS <nick> <cevapların max sayısı>";
" Örnek: WHOWAS hAtbLaDe";
}
};
help Cycle {
" Kanallarda çık-gir yapmasını sağlar. Bu komut";
@@ -385,7 +397,7 @@ help Cycle {
" Kullanımı: CYCLE <kanal>,<kanal2>,<kanal3>";
" Örnek: CYCLE #help";
" Örnek: CYCLE #main,#chat";
}
};
help Dns {
" IRC Serverının DNS hakkında dönüş bilgisi görüntüler.";
@@ -396,14 +408,14 @@ help Dns {
" 'DNS i' Sana nameserver configin hakkında ayrıntıları verecek";
" -";
" Kullanımı: DNS [seçenek]";
}
};
help Names {
" Belirtilen kanalda kullanıcıların listesini gösterir.";
" -";
" Kullanımı: NAMES <kanal>";
" Örnek: NAMES #Support";
}
};
help Ison {
" Bu komut, bir kullanıcı yada kullanıcıların online";
@@ -411,7 +423,7 @@ help Ison {
" -";
" Kullanımı: ISON <nick> <nick2> <nick3> <nick4>";
" Örnek: ISON hAtbLaDe Stskeeps OperServ AOLBot";
}
};
help Join {
" Bir IRC Server üzerinde bir veya daha çok kanallara girer.";
@@ -424,7 +436,7 @@ help Join {
" Örnek: JOIN #Support";
" JOIN #Lobby,#IRCd";
" JOIN #IRCd,#Support,#main letmein,somepass,anotherpass";
}
};
help Part {
" Belirtilen kanal ya da kanallardan çıkmanızı sağlar.";
@@ -434,35 +446,35 @@ help Part {
" Kullanımı: PART <kanal>,<kanal2>,<kanal3>,<kanal4> <sebeb>";
" Örnek: PART #Support";
" PART #Lobby,#IRCd Sonra görüşürüz!";
}
};
help Motd {
" Bir IRC Serverın gününün mesajının olduğu dosyayı metin olarak gösterir.";
" -";
" Kullanımı: MOTD";
" MOTD <server>";
}
};
help Rules {
" Bir IRC Serverın kurallar dosyasını metin olarak gösterir.";
" -";
" Kullanımı: RULES";
" RULES <server>";
}
};
help Lusers {
" Yerel ve global kullanıcı bilgisini göstermesini sağlar.";
" Bilgiler Yerel ve Network server için geçerlidir.";
" -";
" Kullanımı: LUSERS [server]";
}
};
help Map {
" IRC Serverın grafiksel bir \"Network Map\" (Harita)sını gösterir.";
" Özellikle yönlendirme amaçları için kullanılır.";
" -";
" Kullanımı: MAP";
}
};
help Quit {
" IRC Serverdan bağlantınızı koparır. Kanallardaki kullanıcılar";
@@ -471,7 +483,7 @@ help Quit {
" -";
" Kullanımı: QUIT <sebeb>";
" Örnek: QUIT Leaving!";
}
};
help Ping {
" PING komutu, aktif bir clientin varlığını test etmek için kullanılır veya";
@@ -483,10 +495,10 @@ help Ping {
" Bunun 'CTCP PING' komutundan farklı olduğunu unutmayınız..";
" -";
" Kullanımı: PING <server> <server2>";
" Örnek: PING irc.example.org";
" Örnek: PING irc.fyremoon.net";
" PING hAtbLaDe";
" PING hAtbLaDe irc2.dynam.ac";
}
};
help Pong {
" PONG mesajı sonrasi verilen PING mesajı bir cevaptır.Eğer parametre <server2> ise";
@@ -495,16 +507,16 @@ help Pong {
" ve bu mesajı oluşturan varlığın ismidir.";
" -";
" Kullanımı: PONG <server> <server2>";
" Örnek: PONG irc.example.org irc2.dynam.ac";
" (irc.example.org irc2.dynam.ac giden pong mesajı)";
}
" Örnek: PONG irc.fyremoon.net irc2.dynam.ac";
" (irc.fyremoon.net irc2.dynam.ac giden pong mesajı)";
};
help Version {
" Kullanılan IRCd yazılımının uyarlama bilgisini gösterir.";
" -";
" Kullanımı: VERSION";
" VERSION <server>";
}
};
help Stats {
" Server hakkında kesin istatistiksel bilgiyi gösterir.";
@@ -513,21 +525,21 @@ help Stats {
" Örnek: STATS u";
" -";
" Parametreler olmadan müsait flagların bir listesini görmen için /stats yazmalısın.";
}
};
help Links {
" Serverların hepsinin güncel olarak, şebekeye bağlandığı listeler.";
" U:lined Serverlarını sadece IRCop'lar görebilir.";
" -";
" Kullanımı: LINKS";
}
};
help Admin {
" Server hakkında yönetimsel olarak bilgi satırı gösterir.";
" -";
" Kullanımı: ADMIN";
" ADMIN <server>";
}
};
help Userhost {
" Bir kullanıcının USERHOST satırını gösterir.";
@@ -535,7 +547,7 @@ help Userhost {
" -";
" Kullanımı: USERHOST <nick>";
" Örnek: USERHOST hAtbLaDe";
}
};
help Userip {
" Bir kullanıcının IP adresini gösterir.";
@@ -543,7 +555,7 @@ help Userip {
" -";
" Kullanımı: USERIP <nick>";
" Örnek: USERIP codemastr";
}
};
help Topic {
" Kanalın başlığını değiştirmeyi sağlar veya metin belirtilmez ise";
@@ -553,7 +565,7 @@ help Topic {
" TOPIC <kanal> <metin> (başlığı değiştirir.)";
" Örnek: TOPIC #Operhelp";
" TOPIC #Lobby Hoşgeldiniz #Lobby!!";
}
};
help Invite {
" Özel bir kanala katılması için bir kullanıcıya bir davet yollar.";
@@ -564,7 +576,7 @@ help Invite {
" Kullanımı: INVITE [<nick> <kanal>]";
" Örnek: INVITE hAtbLaDe #Support";
" Örnek: INVITE";
}
};
help Kick {
" Kullanıcı yada Kullanıcıları kanaldan atmaya yarar.";
@@ -572,7 +584,7 @@ help Kick {
" -";
" Kullanımı: KICK <kanal> <nick> <sebeb>";
" Örnek: KICK #Lobby foobar Lamer..";
}
};
help Away {
" Bir sebeb belirttiğinizde sizi \"Away\", yani meşgul olarak gösterir.";
@@ -580,7 +592,7 @@ help Away {
" Kullanımı: AWAY <sebeb> (belirtilen nedenden dolayı sizi away(meşgul) yapar.)";
" AWAY (Awaydan çıkartır.)";
" Örnek: AWAY Öğle yemeği zamanı!";
}
};
help Watch {
" Watch serverde hızlı çalışan bir bildiri sistemidir.";
@@ -593,7 +605,7 @@ help Watch {
" Kullanımı: WATCH +nick +nick2 +nick3 (nickleri ekler.)";
" WATCH -nick (nick siler.)";
" WATCH (Watch listesindeki bağlı kullanıcıları görüntüler.)";
}
};
help List {
" Serverdeki bütün kanalların tam olarak listelemesini sağlar.";
@@ -610,7 +622,7 @@ help List {
" !*maske* içerisinde belirttiğiniz *maske* geçmeyen kanalları listeler.";
" -";
" Bunlar dışında başka flaglar kullanılabilir.";
}
};
help Privmsg {
" Belirlenen hedefe bir metin gönderir. Bu hedef, bir kanal ya da bir nick olabilir.";
@@ -629,7 +641,7 @@ help Privmsg {
" /PRIVMSG $<maske> <mesaj>";
" Belirtilen <maske> de bulunan tüm kullanıcılara mesaj yollamanızı sağlar. [Sadece Operatorler]";
" Bu mesaj genelde status penceresinde gösterilir.";
" Örn: /PRIVMSG $*.example.org Biz, gelecek saat serverımızı yükseltiyor olacağız";
" Örn: /PRIVMSG $*.mynet.net Biz, gelecek saat serverımızı yükseltiyor olacağız";
" Hizmetlerin çoğunu not olarak bildirir. (/OS GLOBAL) daha iyi bir alternatifdir.";
" -";
" Birden fazla hedefe aynı mesajı göndermek isterseniz: /PRIVMSG <nick>,<nick2>,<nick3> <mesaj>.";
@@ -637,7 +649,7 @@ help Privmsg {
" NOT : Bazı eski clientlerde (örneğin: ircll) /msg komutunu";
" gibi gelişmiş özellikleri kullanamazsınız. Kullanabilmeniz için";
" '/QUTOE PRIVMSG @#kanal selam' veya benzeri bir komut uygulamanız gerekir.";
}
};
help Notice {
" Belirtilen hedefe bir metini uyarı modunda gönderir.";
@@ -656,7 +668,7 @@ help Notice {
" /NOTICE $<maske> <mesaj>";
" Belirtilen <maske> de bulunan tüm kullanıcılara notice yollamanızı sağlar. [Sadece Operatorler]";
" Bu mesaj genelde status penceresinde gösterilir.";
" Örn: /NOTICE $*.example.org Gelecek saat, serverımızı yükseltiyor olacağız";
" Örn: /NOTICE $*.mynet.net Gelecek saat, serverımızı yükseltiyor olacağız";
" Hizmetlerin çoğunu not olarak bildirir. (/OS GLOBAL) daha iyi bir alternatifdir.";
" -";
" Birden fazla hedefe aynı mesajı göndermek isterseniz: /NOTICE <nick>,<nick>,<nick>.";
@@ -664,7 +676,7 @@ help Notice {
" NOT : Bazı eski clientlerde (örneğin: ircll) /notice komutunu";
" gibi gelişmiş özellikleri kullanamazsınız. Kullanabilmeniz için";
" '/QUTOE NOTICE @#kanal selam' veya benzeri bir komut uygulamanız gerekir.";
}
};
help Knock {
" Davetsel olan kanallar için, sadece sen \"Knock\" olan bir";
@@ -672,14 +684,14 @@ help Knock {
" -";
" Kullanımı: KNOCK <kanal> <mesaj>";
" Örnek: KNOCK #davetsel_kanal Ben opum, beni davet et!";
}
};
help Setname {
" Tekrar bağlamadan kullanıcıların serverdaki \"Real name\" (GECOS)";
" kısmını internet üzerinde değiştirmesi için kullanıcılara izin verir.";
" -";
" Kullanımı: SETNAME <yeni isim>";
}
};
help Vhost {
" Gerçek hostadını sanal host adı ile değiştirmeye yarar.";
@@ -687,7 +699,7 @@ help Vhost {
" -";
" Kullanımı: VHOST <giriş> <şifre>";
" Örnek: VHOST openbsd ilovecypto";
}
};
help Mode {
" Bir kanal veya nickin modesini değiştirir.";
@@ -696,7 +708,7 @@ help Mode {
" Kullanımı: MODE <kanal/nick> <mode>";
" Örnek: MODE #Support +tn";
" MODE #Support +ootn hAtbLaDe XYZ";
}
};
help Credits {
" Bu komut, UnrealIRCd'yı yapan, yardım eden bütün";
@@ -704,27 +716,27 @@ help Credits {
" -";
" Kullanımı: CREDITS";
" CREDITS <server>";
}
};
help Dalinfo {
" Bu komut, tarihsel kredileri gösterir. (ircu, vs..)";
" -";
" Kullanımı: DALINFO";
" Kullanımı: DALINFO <server>";
}
};
help License {
" Bu komut, UnrealIRCd'ın, altında bırakılan lisans bilgisini gösterir.";
" Kullanımı: LICENSE";
" LICENSE <server>";
}
};
help Time {
" Serverın güncel tarihini ve zamanının olduğu bir bilgi satırı gösterir.";
" -";
" Kullanımı: TIME";
" TIME <server>";
}
};
help Silence {
" Bir kullanıcı eklendiği zaman mesaj gelmesini engeller, veya eklenen nickleri listeler.";
@@ -732,7 +744,7 @@ help Silence {
" Kullanımı: SILENCE +nick (nick ekler.)";
" SILENCE -nick (nick siler.)";
" SILENCE (Silence listteki nickleri listeler.)";
}
};
help Oper {
" Bir kullanıcının IRC operatör konumuna geçmesi için doğru bir";
@@ -741,7 +753,7 @@ help Oper {
" Kullanımı: OPER <nick> <şifre>";
" Not: Hem kullanıcı ID, hem de şifre, hassas bir olaydır.";
" Örnek: OPER hAtbLaDe foobar234";
}
};
help Wallops {
" Umodesi +w olan bütün kullanıcılara mesaj göndermesini sağlar.";
@@ -749,14 +761,14 @@ help Wallops {
" bunları görebilir.";
" -";
" Kullanımı: WALLOPS <mesaj>";
}
};
help Locops {
" Bu komut, serverda bütün IRCop'lara bir mesaj yollamasını sağlar. (Yerel).";
" -";
" Kullanımı: LOCOPS <mesaj>";
" Örnek: LOCOPS Gonna kullanıcısına k:line atın ...";
}
};
help Globops {
" Serverda bütün IRCops'lar global bir mesaj yollayabilir.";
@@ -764,7 +776,7 @@ help Globops {
" -";
" Kullanımı: GLOBOPS <mesaj>";
" Örnek: GLOBOPS Kloneleri almaya izin ver ..";
}
};
help Kill {
" Belirtilen Kullanıcıları IRC serverda bağlantısını kesmek için kullanılan bir komuttur.";
@@ -772,7 +784,7 @@ help Kill {
" -";
" Kullanımı: KILL <nick1>,<nick2>,<nick3>,... <sebeb>";
" Örnek: KILL Jack16 Clone yasak!";
}
};
help Kline {
" Bu komut, bir nicke zamanlı K:Lines atmanızı sağlar.";
@@ -787,7 +799,7 @@ help Kline {
" KLINE *@*.someisp.com 2d Kötü kullanım (2 günlük kline ekler.)";
" KLINE Idiot 1d Kötü kullanım";
" KLINE -*@*.aol.com";
}
};
help Zline {
" Bu komut, bir nicke zamanlı Z:Lines atmanızı sağlar. Eğer bir nick Z:Lines'a uygun";
@@ -802,7 +814,7 @@ help Zline {
" ZLINE *@127.0.0.1 2d Kötü kullanım (2 günlük Zline ekler.)";
" ZLINE -*@127.0.0.1";
" NOT: ZLINE atabilme flağına sahip olmaniz gerekir. (can_zline)";
}
};
help Gline {
" Bu komut, bir nicke zamanlı G:Lines atmanızı sağlar. Eğer bir nick G:Lines'a uygun";
@@ -819,7 +831,7 @@ help Gline {
" GLINE Idiot 1d Kötü kullanım";
" GLINE -*@*.idiot.net";
" NOT: GLINE atabilme flağına sahip olmaniz gerekir. (can_gkline)";
}
};
help Shun {
" ADMIN hariçindeki bir kullanıcının herhangi bir komutu uygulamasını engeller";
@@ -837,7 +849,7 @@ help Shun {
" (Shuns foobar@aol.com adresine Spam nedeni ile 10dk shun ekler.)";
" SHUN +foobar@aol.com 1d6h :Boş mesaj (Spam nedeni ile 30 saat Shun ekler.)";
" NOT: SHUN atabilme flağına sahip olmanız gerekir. (can_gkline)";
}
};
help Gzline {
" Bu komut, bir nicke zamanlı Z:line atmanızı sağlar. Eğer bir nick Z:line'ya uygun";
@@ -852,7 +864,7 @@ help Gzline {
" Örnek: GZLINE *@4.16.200.* 900 Boş mesaj (15 dk Global Z:line ekler.)";
" GZLINE *@4.16.200.* 1d5h Boş mesaj (29 saat Global Z:line ekler.)";
" NOT: Gzline atabilme flağına sahip olmanız gerekir. (can_gzline)";
}
};
help Rehash {
" Yerel bir serverın konfigurasyon dosya(larını) yeniden okumasını sağlar";
@@ -873,8 +885,8 @@ help Rehash {
" -garbage - Değersiz dataların toplanmasını sağlar";
" -motd - Tüm MOTD, BOTMOTD, OPERMOTD ve RULES dosyalarını tekrar okumasını sağlar";
" (tld{}'de onlar dahil bloklar)";
" -tls - SSL/TLS Sertifikaları yeniden okur";
}
" -ssl - SSL Sertifikaları yeniden okur";
};
help Restart {
" Serverın belirtilen şifre ile yeniden başlatılmasını sağlar.";
@@ -884,7 +896,7 @@ help Restart {
" Kullanımı: RESTART";
" RESTART <şifre>";
" RESTART <şifre> <sebeb>";
}
};
help Die {
" IRC Serverını, belirtilen şifre ile tamamen kapatmasını sağlar.";
@@ -893,15 +905,15 @@ help Die {
" -";
" Kullanımı: DIE";
" DIE <şifre>";
}
};
help Lag {
" Bu komut irc serverları için Traceroute benzeri bir komuttur.";
" Eğer /LAG irc.example.org şeklinde kullanırsanız.";
" Eğer /LAG irc.fyremoon.net şeklinde kullanırsanız.";
" Serverın lag durumunu görmüş olacaksınız.";
" -";
" Kullanımı: LAG <server>";
}
};
help Sethost {
" Bu komut, kendinin veya bir kullanıcının virtual host kısmını değiştirmesini sağlar. (Vhost)";
@@ -910,7 +922,7 @@ help Sethost {
" -";
" Kullanımı: SETHOST <yeni host>";
" Örnek: SETHOST i.have.hairy.armpits";
}
};
help Setident {
" Bu komutla, kendinin veya bir kullanıcının Identini değiştirmesini sağlar. (Username.)";
@@ -918,7 +930,7 @@ help Setident {
" -";
" Kullanımı: SETIDENT <yeni ident>";
" Örnek: SETIDENT l33t";
}
};
help Chghost {
" Güncel olarak IRC Serverda bir kullanıcının hostname kısmını değiştirmeyi sağlar.";
@@ -926,7 +938,7 @@ help Chghost {
" -";
" Kullanımı: CHGHOST <nick> <hostismi>";
" Örnek: CHGHOST hAtbLaDe root.me.com";
}
};
help Chgident {
" Güncel olarak IRC Serverda bir kullanıcının IDENT kısmını değiştirmesini sağlar.";
@@ -934,7 +946,7 @@ help Chgident {
" -";
" Kullanımı: CHGIDENT <nick> <ident>";
" Örnek: CHGIDENT hAtbLaDe Koyun";
}
};
help Chgname {
" Güncel olarak IRC Serverda bir kullanıcının \"IRC Name\" veya \"Real Name\" kısmını değiştirmeye yarar.";
@@ -942,7 +954,7 @@ help Chgname {
" -";
" Kullanımı: CHGNAME <nick> <isim>";
" Örnek: CHGNAME hAtbLaDe Gotta yeni isim :)";
}
};
help Squit {
" Network'dan bir IRC Serverın bağlantısının kopmasını sağlar.";
@@ -951,7 +963,7 @@ help Squit {
" -";
" Kullanımı: SQUIT <server>";
" Örnek: SQUIT leaf.*";
}
};
help Connect {
" Bir serverın, güncel olarak üzerinde olduğu başka bir IRC servera bağlar.";
@@ -962,7 +974,7 @@ help Connect {
" CONNECT <server> <port> <ana server>";
" Örnek: CONNECT leaf.*";
" CONNECT leaf.* 6667 hub.*";
}
};
help Dccdeny {
" Belirlenen bir dosya uzantısına, DCC engeli koyar. uzantıyı";
@@ -970,14 +982,14 @@ help Dccdeny {
" Sadece IRCop'lar kullanabilir.";
" -";
" Kullanımı: DCCDENY <dosyaismi maskesi> <sebeb>";
}
};
help Undccdeny {
" Belirlenen bir dosya uzantısında, DCC engeli varsa bu engeli kaldırmasını sağlar.";
" Sadece IRCop'lar kullanabilir.";
" -";
" Kullanımı: UNDCCDENY <dosyaismi maskesi>";
}
};
help Sajoin {
" Bir kullanıcıyı, zorla kanal yada kanallara girmesini sağlar.";
@@ -986,7 +998,7 @@ help Sajoin {
" Kullanımı: SAJOIN <nick> <kanal>,[<kanal2>]";
" Örnek: SAJOIN hAtbLaDe #OperHelp";
" SAJOIN hAtbLaDe #Support,#IRCHelp";
}
};
help Sapart {
" Bir kullanıcıyı, zorla kanal yada kanallardan çıkmasını sağlar.";
@@ -996,7 +1008,7 @@ help Sapart {
" Örnek: SAPART hAtbLaDe #OperHelp";
" SAPART hAtbLaDe #Support,#IRCHelp";
" SAPART hAtbLaDe #Support,#IRCHelp Hoşcakal";
}
};
help Samode {
" Operatör durumuna sahip olmadan bir kanalın";
@@ -1005,24 +1017,24 @@ help Samode {
" -";
" Kullanımı: SAMODE <kanal> <mode>";
" Örnek: SAMODE #Support +m";
}
};
help Trace {
" TRACE komutunu serverlar veya clientler için kullanabilirsiniz.";
" Kullanıcı için uygularsanız size class ını ve lag durumunu gösterir.";
" Server için uygularsanız size class,version ve link bilgisini gösterir.";
" TRACE Komutu bazı zamanlarda karışabilir özellikle ilk defa kullanıyorsanız.";
" -";
" Kullanımı: TRACE <server|nick>";
" Örnek: TRACE irc.example.org";
}
" Kullanıcı için uygularsanız size class ını ve lag durumunu gösterir.";
" Server için uygularsanız size class,version ve link bilgisini gösterir.";
" TRACE Komutu bazı zamanlarda karışabilir özellikle ilk defa kullanıyorsanız.";
" -";
" Kullanımı: TRACE <server|nick>";
" Örnek: TRACE irc.fyremoon.net";
};
help Opermotd {
" IRC Operatorler için hazırlanan günün mesajını göstermeyi sağlar.";
" Sadece IRCop'lar kullanabilir.";
" -";
" Kullanımı: OPERMOTD";
}
};
help Sdesc {
" Bu komutla sen, IRC Serverın bilgi satırını değiştirebilirsin.";
@@ -1031,7 +1043,7 @@ help Sdesc {
" -";
" Kullanımı: SDESC <yeni bilgi>";
" Örnek: SDESC Yüksekten uç";
}
};
help Mkpasswd {
" Bu komut belirlenen bir hash komutu olarak geri döner.";
@@ -1041,7 +1053,7 @@ help Mkpasswd {
" -";
" Kullanımı: MKPASSWD <metod> <şifre>";
" Örnek: MKPASSWD argon2 IamTeh1337";
}
};
help Module {
" Bu komut size yüklü olan modülleri listeler.";
@@ -1062,21 +1074,24 @@ help Module {
" Sen buna ek olarak, farklı komutlar ve modüllerin listesini göreceksin.";
" Ek olarak hookların ve override komutların bir listesini göreceksiniz";
" (hook numarası include/modules.h içerisinden görülebilir).";
}
};
help Close {
" Bu komut, IRC serverından bütün bilinmeyen";
" bağlantılarınızı kesmenizi sağlar.";
" -";
" Kullanımı: CLOSE";
}
};
help Tsctl {
" İleri düzey olan bu komut dahili irc saatini ayarlar.";
" Sadece IRCop'lar kullanabilir.";
" -";
" Kullanımı: TSCTL ALLTIME (Tüm serverın aktif saatini gösterir)";
}
" Kullanımı: TSCTL OFFSET +|- <zaman> (Dahili irc saatini ayarlar)";
" TSCTL TIME (Aktif saati gösterir)";
" TSCTL ALLTIME (Tüm serverın aktif saatini gösterir)";
" TSCTL SVSTIME <timestamp> (Tüm serverın saatini ayarlar)";
};
help Svsnick {
" Bu komut, bir kullanıcının o an kullandığı nickin başka bir nicke dönüştürmesini sağlar.";
@@ -1084,7 +1099,7 @@ help Svsnick {
" -";
" Kullanımı: SVSNICK <nick> <yeni nick> <süre>";
" Örnek: SVSNICK hAtbLaDe Foobar 963086432";
}
};
help Svsmode {
" Bu komut, bir kullanıcının o an kullandığı modelerini değiştirmesini sağlar.";
@@ -1092,7 +1107,7 @@ help Svsmode {
" -";
" Kullanımı: SVSMODE <nick> <mode>";
" Örnek: SVSMODE hAtbLaDe +i";
}
};
help Svskill {
" Bu komut, bir kullanıcının IRC serverındaki bağlantısının zorla kopmasını sağlar.";
@@ -1100,7 +1115,7 @@ help Svskill {
" -";
" Kullanımı: SVSKILL <nick> :<sebeb>";
" Örnek: SVSKILL Lamer21 :Güle Güle";
}
};
help Svsnoop {
" Bu komut, IRC serverındaki IRCop";
@@ -1109,7 +1124,7 @@ help Svsnoop {
" -";
" Kullanımı: SVSNOOP <server> <+/->";
" Örnek: SVSNOOP leaf.* -";
}
};
help Svsjoin {
" Bu komut, bir kullanıcının kanal yada kanallara zorla girmesini sağlar.";
@@ -1118,7 +1133,7 @@ help Svsjoin {
" Kullanımı: SVSJOIN <nick> <kanal>[,<kanal2>..] [şifre[,şifre2[..]]]";
" Örnek: SVSJOIN hAtbLaDe #jail";
" SVSJOIN hAtbLaDe #jail,#zoo";
}
};
help Svspart {
" Bu komut, bir kullanıcının kanal yada kanallardan zorla çıkmasını sağlar.";
@@ -1128,7 +1143,7 @@ help Svspart {
" Örnek: SVSPART hAtbLaDe #Hanson";
" SVSPART hAtbLaDe #Hanson,#AOL";
" SVSPART hAtbLaDe #Hanson,#AOL Sen çıkmalısın";
}
};
help Svso {
" Bu komut, bir kullanıcıya O:lines yetkilisi gibi IRCop flagları verir.";
@@ -1138,7 +1153,7 @@ help Svso {
" Kullanımı: SVSO <nick> <+oper-flagları> (OPER flagları ekler.)";
" SVSO <nick> - (O:Line flaglarını siler.)";
" Örnek: SVSO SomeNick +bBkK";
}
};
help Swhois {
" Bu komut, bir kullanıcının whois bilgisini değiştirmeyi sağlar.";
@@ -1147,7 +1162,7 @@ help Swhois {
" Kullanımı: SWHOIS <nick> :<mesaj> (Swhois ekler.)";
" SWHOIS <nick> : (Swhois'i temizler.)";
" Örnek: SWHOIS SomeNick :is a lamer";
}
};
help Sqline {
" Bu komut, nick veya nick karakterlerini kullanan kullanıcıları yasaklamasını sağlar.";
@@ -1155,7 +1170,7 @@ help Sqline {
" -";
" Kullanımı: SQLINE <nick> :<sebeb>";
" Örnek: SQLINE *Bot* :Botlara Hayır";
}
};
help Unsqline {
" Bu komut, kullanımı yasaklanmış olan nick veya nick karekterlerinin yeniden kullanılmasını sağlar.";
@@ -1163,7 +1178,7 @@ help Unsqline {
" -";
" Kullanımı: UNSQLINE <nick>";
" Örnek: UNSQLINE *Bot*";
}
};
help Svs2mode {
" Bu komut, bir kullanıcının modelerini zorla değiştirmeyi sağlar.";
@@ -1171,7 +1186,7 @@ help Svs2mode {
" -";
" Kullanımı: SVS2MODE <nick> <kullanıcı modesi>";
" Örnek: SVS2MODE hAtbLaDe +h";
}
};
help Svsfline {
" DCCDENY'e verilmiş dosya adı maskesini ekler veya siler.";
@@ -1180,7 +1195,7 @@ help Svsfline {
" Kullanımı: :server SVSFLINE + dosya :sebeb (Dosya adı ekler.)";
" :server SVSFLINE - dosya (Dosya adı siler.)";
" :server SVSFLINE * (DCCDENY listesini temizler.)";
}
};
help Svsmotd {
" Günün Servisler mesajını ekler veya siler.";
@@ -1189,7 +1204,7 @@ help Svsmotd {
" SVSMOTD ! (Motd siler.)";
" SVSMOTD ! :<mesaj> (bulunan mesaji silip, yenisini ekler.)";
" Örnek: SVSMOTD # :Services MOTD";
}
};
help Svsnline {
" Global bir realname (isim) yasağını ekler.";
@@ -1202,7 +1217,7 @@ help Svsnline {
" SVSNLINE - :<isim> (eklenmiş bir banı kaldırır.)";
" SVSNLINE * (eklenmiş tüm banları kaldırır.)";
" Örnek: SVSNLINE + sub7_drone :*sub7*";
}
};
help Svslusers {
" Global ve/veya Yerel maksimum kullanıcı sayısını değiştirir.";
@@ -1210,15 +1225,15 @@ help Svslusers {
" Sadece U:Lined (Servisler)'den gönderilebilir.";
" -";
" Kullanımı: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
" Örnek: SVSLUSERS irc.example.org -1 200";
}
" Örnek: SVSLUSERS irc.test.com -1 200";
};
help Svswatch {
" Bir kullanıcının, WATCH listesini değiştirmeyi sağlar.";
" Sadece U:Lined (Servis'den) gönderilebilir.";
" Kullanımı: SVSWATCH <nick> :<watch parametresi>";
" Örnek: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
}
};
help Svssilence {
" Bir kullanıcının, SILENCE listesini değiştirmeyi sağlar.";
@@ -1227,7 +1242,7 @@ help Svssilence {
" ekleme/çıkarma yapabilirsiniz.";
" Kullanımı: SVSSILENCE <nick> :<silence parametreleri>";
" Örnek: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
}
};
help Svssno {
" Bu komut, bir kullanıcının snomasklarını değiştirmesini sağlar.";
@@ -1235,7 +1250,7 @@ help Svssno {
" -";
" Kullanımı: SVSSNO <nick> <snomasklar>";
" Örnek: SVSSNO joe +Gc";
}
};
help Svs2sno {
" Bu komut, bir kullanıcının zorla snomasklarını";
@@ -1244,7 +1259,7 @@ help Svs2sno {
" -";
" Kullanımı: SVS2SNO <nick> <snomasklar>";
" Örnek: SVS2SNO joe +Gc";
}
};
help Svsnolag {
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
@@ -1252,14 +1267,14 @@ help Svsnolag {
" -";
" Syntax: SVSNOLAG [+|-] <nickname>";
" Example: SVSNOLAG + joe";
}
};
help Svs2nolag {
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
" Sadece U:Lined (Servisler)'den gönderilebilir.";
" -";
" Kullanım: SVS2NOLAG [+|-] <nickname>";
" Örnek: SVS2NOLAG + joe";
}
};
help Spamfilter {
" Bu komut ekleme/temizleme olarak global boş mesajları filtreler.";
@@ -1278,13 +1293,13 @@ help Spamfilter {
" 'kline', 'gline', 'zline', 'gzline', 'block' (mesajı blocklar),";
" 'dccblock' (Dcc'leri herhangi şekilde yollamak mümkün değil.), 'viruschan' ";
" (Bütün kanallardan çıkarır ve virüs yardım kanalına sokar.), 'warn' (IRC Operatorleri uyarır.)";
" [string] Bu engellenmesi gereken gerçek dizedir (regex veya simple örneğine göre yapılır)";
" [tkltime] *LINEs çizgilerin, hareket ile yerleştirdiği süre (süre belirtmek";
" istemezseniz yerine '-' işareti belirtmek zorundasınız";
" set::spamfilter::ban-time, ignore eder veya block/tempshun koyar');";
" [reason] *LINE mesajın blocklanması için sebeb belirtmelisiniz, BOŞLUKLARI İÇERMEZ,";
" '_' işareti boşluklara çevirilecektir. Eğer sen sebeb yerine,";
" '-' işareti kullanırsan, (set::spamfilter::ban-reason) olarak yansıyacaktır.";
" [string] Bu engellenmesi gereken gerçek dizedir (regex veya simple örneğine göre yapılır)";
" - ";
" Birkaç örnek (Not: örnek komutlar satırlara bölünmüş olabilir):";
" /spamfilter add -simple p block - - Hemen seni webcamıma bekliyorum.";
@@ -1295,7 +1310,7 @@ help Spamfilter {
" /spamfilter add -simple p kill - Lütfen_www.viruscan.xx/nicepage/virus=blah_adresine_tıklayın. Hemen seni webcamıma bekliyorum.";
" /spamfilter del -simple p block - - Hemen seni webcamıma bekliyorum*";
" /spamfilter add -regex cN gzline 1d Lütfen_reklam_yapmayınız. irc\..+\..+ adresine bekliyorum.";
}
};
help Tempshun {
" Geçici SHUN ekler/kaldırır.Geçici shun listesine eklenen nick";
@@ -1304,25 +1319,26 @@ help Tempshun {
" Kullanımı: TEMPSHUN [+|-]<nick> [sebeb]";
" Örnek: TEMPSHUN evilguy Rahatsızlık vermeyiniz!";
" TEMPSHUN -niceguy";
}
};
help DccAllow {
" DCCALLOW sistemi hakkında yardım almak için '/DCCALLOW HELP' yazınız.";
/* It would be useless and bad to include it here since that stuff quickly gets out of synch
* stuff quickly gets out-of-synch.
*/
}
};
help Addmotd {
" MOTD sonuna yeni bir dizin ekler.";
" -";
" Kullanımı: ADDMOTD <yazı>";
" Örnek: ADDMOTD Güzel oyna!";
}
};
help Addomotd {
" OPERMOTD sonuna yeni bir dizin ekler.";
" -";
" Kullanımı: ADDOMOTD <yazı>";
" Örnek: ADDOMOTD Onu kötü kullan ve onu kaybet!";
}
};
+105 -131
View File
@@ -29,116 +29,116 @@ loadmodule "cloak";
// User commands (MINIMAL)
// These provide just the minimal set of IRC commands that are
// required by RFC1459 along with WATCH and MAP.
loadmodule "admin";
loadmodule "away";
loadmodule "invite";
loadmodule "ison";
loadmodule "join";
loadmodule "kick";
loadmodule "links";
loadmodule "list";
loadmodule "lusers";
loadmodule "map";
loadmodule "message";
loadmodule "mode";
loadmodule "motd";
loadmodule "names";
loadmodule "nick";
loadmodule "part";
loadmodule "pass";
loadmodule "pingpong";
loadmodule "protoctl";
loadmodule "quit";
loadmodule "rules";
loadmodule "topic";
loadmodule "user";
loadmodule "userhost";
loadmodule "watch";
loadmodule "whox";
loadmodule "whois";
loadmodule "whowas";
loadmodule "m_admin";
loadmodule "m_away";
loadmodule "m_invite";
loadmodule "m_ison";
loadmodule "m_join";
loadmodule "m_kick";
loadmodule "m_links";
loadmodule "m_list";
loadmodule "m_lusers";
loadmodule "m_map";
loadmodule "m_message";
loadmodule "m_mode";
loadmodule "m_motd";
loadmodule "m_names";
loadmodule "m_nick";
loadmodule "m_part";
loadmodule "m_pass";
loadmodule "m_pingpong";
loadmodule "m_protoctl";
loadmodule "m_quit";
loadmodule "m_rules";
loadmodule "m_topic";
loadmodule "m_user";
loadmodule "m_userhost";
loadmodule "m_watch";
loadmodule "m_who";
loadmodule "m_whois";
loadmodule "m_whowas";
// User commands (EXTENDED)
// These are commands that provide extended functionality.
loadmodule "botmotd";
loadmodule "cap";
loadmodule "cycle";
loadmodule "dccallow";
loadmodule "help";
loadmodule "knock";
loadmodule "lag";
loadmodule "sasl";
loadmodule "setname";
loadmodule "silence";
loadmodule "starttls";
loadmodule "time";
loadmodule "userip";
loadmodule "vhost";
loadmodule "history";
loadmodule "m_botmotd";
loadmodule "m_cap";
loadmodule "m_cycle";
loadmodule "m_dccallow";
loadmodule "m_help";
loadmodule "m_knock";
loadmodule "m_lag";
loadmodule "m_sasl";
loadmodule "m_setname";
loadmodule "m_silence";
loadmodule "m_starttls";
loadmodule "m_time";
loadmodule "m_userip";
loadmodule "m_vhost";
// IRC Operator commands
// Note: several of these like kill are also server-to-server commands
// Note: several of these like m_kill are also server-to-server commands
// which are required if you link to other servers.
loadmodule "addmotd";
loadmodule "addomotd";
loadmodule "chghost";
loadmodule "chgident";
loadmodule "chgname";
loadmodule "close";
loadmodule "connect";
loadmodule "squit";
loadmodule "dccdeny";
loadmodule "globops";
loadmodule "kill"; /* also server-to-server */
loadmodule "locops";
loadmodule "mkpasswd";
loadmodule "oper";
loadmodule "opermotd";
loadmodule "sajoin";
loadmodule "samode";
loadmodule "sapart";
loadmodule "sdesc";
loadmodule "sethost";
loadmodule "setident";
loadmodule "stats";
loadmodule "tkl"; /* also server-to-server */
loadmodule "trace";
loadmodule "tsctl";
loadmodule "unsqline";
loadmodule "wallops";
loadmodule "m_addmotd";
loadmodule "m_addomotd";
loadmodule "m_chghost";
loadmodule "m_chgident";
loadmodule "m_chgname";
loadmodule "m_close";
loadmodule "m_connect";
loadmodule "m_squit";
loadmodule "m_dccdeny";
loadmodule "m_globops";
loadmodule "m_kill"; /* also server-to-server */
loadmodule "m_locops";
loadmodule "m_mkpasswd";
loadmodule "m_oper";
loadmodule "m_opermotd";
loadmodule "m_sajoin";
loadmodule "m_samode";
loadmodule "m_sapart";
loadmodule "m_sdesc";
loadmodule "m_sethost";
loadmodule "m_setident";
loadmodule "m_stats";
loadmodule "m_tkl"; /* also server-to-server */
loadmodule "m_trace";
loadmodule "m_tsctl";
loadmodule "m_undccdeny";
loadmodule "m_unsqline";
loadmodule "m_wallops";
loadmodule "jumpserver";
// Server-to-server commands
// Don't remove these, unless you never link to other servers.
loadmodule "eos";
loadmodule "md";
loadmodule "netinfo";
loadmodule "server";
loadmodule "sjoin";
loadmodule "sqline";
loadmodule "swhois";
loadmodule "umode2";
loadmodule "sinfo";
loadmodule "require-module";
loadmodule "m_eos";
loadmodule "m_md";
loadmodule "m_netinfo";
loadmodule "m_server";
loadmodule "m_sjoin";
loadmodule "m_sqline";
loadmodule "m_swhois";
loadmodule "m_umode2";
loadmodule "m_sinfo";
// Services commands
// You could disable these if you don't use Services
// https://www.unrealircd.org/docs/Services
loadmodule "sendsno";
loadmodule "sendumode";
loadmodule "svsjoin";
loadmodule "svskill";
loadmodule "svslusers";
loadmodule "svsmode";
loadmodule "svsmotd";
loadmodule "svsnick";
loadmodule "svsnline";
loadmodule "svsnolag";
loadmodule "svsnoop";
loadmodule "svspart";
loadmodule "svssilence";
loadmodule "svssno";
loadmodule "svswatch";
loadmodule "m_sendsno";
loadmodule "m_sendumode";
loadmodule "m_svsfline";
loadmodule "m_svsjoin";
loadmodule "m_svskill";
loadmodule "m_svslusers";
loadmodule "m_svsmode";
loadmodule "m_svsmotd";
loadmodule "m_svsnick";
loadmodule "m_svsnline";
loadmodule "m_svsnolag";
loadmodule "m_svsnoop";
loadmodule "m_svspart";
loadmodule "m_svssilence";
loadmodule "m_svssno";
loadmodule "m_svswatch";
/*** Channel modes ***/
@@ -160,7 +160,6 @@ loadmodule "chanmodes/nonickchange"; /* +N */
loadmodule "chanmodes/nokick"; /* +Q */
loadmodule "chanmodes/regonlyspeak"; /* +M */
loadmodule "chanmodes/secureonly"; /* +z */
loadmodule "chanmodes/history"; /* +H */
/*** User modes ***/
@@ -185,6 +184,7 @@ loadmodule "extbans/join"; /* +b ~j (prevent only joins) */
loadmodule "extbans/quiet"; /* +b ~q (prevent only messaging) */
loadmodule "extbans/nickchange"; /* +b ~n (prevent only nick changes) */
loadmodule "extbans/realname"; /* +b ~r (ban by real name) */
loadmodule "extbans/regnick"; /* +b ~R (ban/exempt if using registered nick) */
loadmodule "extbans/account"; /* +b ~a (ban/exempt if logged in with services account) */
loadmodule "extbans/inchannel"; /* +b ~c (ban/exempt if in channel) */
loadmodule "extbans/operclass"; /* +b ~O (ban/exempt by operclass) */
@@ -192,46 +192,20 @@ loadmodule "extbans/certfp"; /* +b ~S (ban/exempt by certfp) */
loadmodule "extbans/textban"; /* +b ~T (censor or block text) */
loadmodule "extbans/msgbypass"; /* +e ~m (bypass message restrictions) */
loadmodule "extbans/timedban"; /* +b ~t (timed bans / temporary bans) */
loadmodule "extbans/partmsg"; /* +b ~p (hide part/quit message) */
loadmodule "extbans/securitygroup"; /* +b ~G (security group) */
/** IRCv3 extensions */
loadmodule "account-notify"; /* send ACCOUNT message upon services account login */
loadmodule "message-tags"; /* add tags to messages, required for various IRCv3 features */
loadmodule "batch"; /* also required for several IRCv3 features */
loadmodule "server-time"; /* adds server timestamp to various messages */
loadmodule "message-ids"; /* adds unique msgid to various messages */
loadmodule "account-tag"; /* adds services account information to messages */
loadmodule "echo-message"; /* shows clients if their messages are altered/filtered */
loadmodule "labeled-response"; /* correlate requests and responses easily */
loadmodule "bot-tag"; /* indicate the message comes from a bot (draft/bot) */
loadmodule "typing-indicator"; /* typing indicator in PM and channels (+typing) */
loadmodule "reply-tag"; /* indicate to which message you are responding (+draft/reply) */
loadmodule "clienttagdeny"; /* informs clients about supported client-only message tags */
loadmodule "sts"; /* strict transport policy (set::tls::sts-policy) */
loadmodule "link-security"; /* link-security announce */
loadmodule "plaintext-policy"; /* plaintext-policy announce */
loadmodule "chathistory"; /* CHATHISTORY client command, 005 and a CAP (draft) */
/*** CAP modules ***/
loadmodule "cap/sts"; /* strict transport policy (set::ssl::sts-policy) */
loadmodule "cap/plaintext-policy"; /* plaintext-policy announce */
loadmodule "cap/link-security"; /* link-security announce */
/*** Other ***/
// These are modules that don't fit in any of the previous sections
loadmodule "ident_lookup"; /* Ident lookups if set::options::identd-check is set*/
loadmodule "certfp"; /* SSL/TLS certificate fingerprint in /WHOIS (& more) */
loadmodule "tls_antidos"; /* prevent TLS DoS (renegotiate floods) */
loadmodule "certfp"; /* SSL certificate fingerprint in /WHOIS (& more) */
loadmodule "ssl_antidos"; /* prevent SSL DoS (renegotiate floods) */
loadmodule "m_nopost"; /* Block POST commands (Firefox XPS IRC Attack) */
loadmodule "webirc"; /* WEBIRC command. See webirc block. */
loadmodule "blacklist"; /* Blacklist support (DNSBL). See blacklist block. */
loadmodule "jointhrottle"; /* set::anti-flood::join-flood (previously chanmode +j) */
loadmodule "charsys"; /* Provides set::allowed-nickchars (must always be loaded!) */
loadmodule "authprompt"; /* Authentication prompt, see set::authentication-prompt */
loadmodule "history_backend_mem"; /* History storage backend (used by chanmodes/history) */
loadmodule "tkldb"; /* Write TKLines to .db file */
loadmodule "channeldb"; /* Write channel settings to .db file (+P channels only) */
loadmodule "rmtkl"; /* Easily remove *-Lines in bulk with /RMTKL */
loadmodule "restrict-commands"; /* Provides set::restrict-commands settings */
loadmodule "reputation"; /* used by Connthrottle and others, see next */
loadmodule "connthrottle"; /* see https://www.unrealircd.org/docs/Connthrottle */
loadmodule "userip-tag"; /* unrealircd.org/userip tag for ircops */
loadmodule "userhost-tag"; /* unrealircd.org/userhost tag for ircops */
loadmodule "targetfloodprot"; /* set::anti-flood::target-flood protection */
+107 -31
View File
@@ -15,12 +15,12 @@
// This add the /IRCOPS command: A more visual way for users
// to see which IRCOps are online.
loadmodule "ircops";
loadmodule "m_ircops";
// This adds the /STAFF command: This command simply displays
// a text file that you can configure here:
loadmodule "staff";
set { staff-file "network.staff"; }
loadmodule "m_staff";
set { staff-file "network.staff"; };
/*** Channel modes ***/
@@ -36,8 +36,7 @@ loadmodule "nocodes";
// The hideserver module will hide /MAP and /LINKS to regular users.
// It does not truly enhance security as server names can still be
// seen at other places.
// Comment out the following line to enable this:
// loadmodule "hideserver";
loadmodule "hideserver";
// The antirandom module will kill or *line users that have a nick,
// ident and/or realname that is considered "random".
@@ -125,9 +124,9 @@ set {
* NOTE: Use the REAL host or IP here, not any cloaked hosts!
*/
except-hosts {
mask 192.168.0.0/16;
mask 127.0.0.0/8;
}
mask 192.168.*;
mask 127.*;
};
/* EXCEPT-WEBIRC:
* This will make antirandom not check connections from WEBIRC gateways.
@@ -136,38 +135,27 @@ set {
* default is 'yes'.
*/
except-webirc yes;
}
}
// This module will send a HTTP 301 redirect to any client which sends
// a HTTP request to us. This is commented out by default:
//loadmodule "webredir";
//set {
// webredir {
// url "https://...";
// }
//}
};
};
// This adds websocket support. For more information, see:
// https://www.unrealircd.org/docs/WebSocket_support
loadmodule "websocket";
// This adds support for WHOX
// This is currently experimental!
loadmodule "m_whox";
// This module will detect and stop spam containing of characters of
// mixed "scripts", where (for example) some characters are in
// Latin script and other characters are in Cyrillic script.
loadmodule "antimixedutf8";
set {
antimixedutf8 {
/* Take action at this 'score' (lower = more sensitive)
*
* A score of 2 or 3 will catch a lot but also
* catch innocent users who are not using a pure
* Latin script, such as Russian people who
* commonly use a mix of Latin and Cyrillic.
*
* A score of 8 is a safe default.
/* Take action at this 'score'.
* 10 is a good and safe default.
*/
score 8;
score 10;
/* Action to take, see:
* https://www.unrealircd.org/docs/Actions
@@ -175,9 +163,97 @@ set {
ban-action block;
/* Block/kill/ban reason (sent to user) */
ban-reason "Mixed character spam";
ban-reason "Possible mixed character spam";
/* Duration of ban (does not apply to block/kill) */
ban-time 4h; // For other types
}
}
};
};
// This provides an authentication prompt if a user is forced to
// authenticate due to a 'require authentication' block or for
// some other reason. It tells them to use SASL or type /AUTH user:pass
// See also the following article for more general information:
// https://www.unrealircd.org/docs/Authentication
// NOTE: This feature is currently experimental.
loadmodule "authprompt";
set {
authentication-prompt {
/* Enabled or not? */
enabled yes;
message "The server requires clients from this IP address to authenticate with a registered nickname and password.";
message "Please reconnect using SASL, or authenticate now by typing: /QUOTE AUTH nick:password";
/* As you can see you can have multiple 'message' items.
* It may be useful to refer to a webpage for more
* information and/or where users can register their nick.
*/
//fail-message "Authentication failed";
/* Multiple fail-message lines are also supported */
};
};
// If you use the authprompt module then you may want to raise the
// timeout in which users must complete the handshake.
// By uncommenting the following, you can raise it from 30 to 60 seconds:
// set { handshake-timeout 60s; };
/*
* The following will configure connection throttling of "unknown users".
*
* When UnrealIRCd detects a high number of users connecting from IP addresses
* that have not been seen before, then connections from new IP's are rejected
* above the set rate. For example at 10:60 only 10 users per minute can connect
* that have not been seen before. Known IP addresses can always get in,
* regardless of the set rate. Same for users who login using SASL.
*
* See also https://www.unrealircd.org/docs/Connthrottle
* Or just keep reading the default configuration below:
*/
loadmodule "reputation";
loadmodule "connthrottle";
set {
connthrottle {
/* First we must configure what we call "known users".
* By default these are users on IP addresses that have
* a score of 24 or higher. A score of 24 means that the
* IP was connected to this network for at least 2 hours
* in the past month (or minimum 1 hour if registered).
* The sasl-bypass option is another setting. It means
* that users who authenticate to services via SASL
* are considered known users as well.
* Users in the "known-users" group (either by reputation
* or by SASL) are always allowed in by this module.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
};
/* New users are all users that do not belong in the
* known-users group. They are considered "new" and in
* case of a high number of such new users connecting
* they are subject to connection rate limiting.
* By default the rate is 20 new local users per minute
* and 30 new global users per minute.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
};
/* This configures when this module will NOT be active.
* The default settings will disable the module when:
* - The reputation module has been running for less than
* a week. If running less than 1 week then there is
* insufficient data to consider who is a "known user".
* - The server has just been booted up (first 3 minutes).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
};
};
};
-21
View File
@@ -1,21 +0,0 @@
#
# This file contains the list of repositories that are used
# by the './unrealircd module' command.
# Note that 3rd party modules are NOT written by the UnrealIRCd team.
# Use such modules at your own risk. In case of problems, contact
# the module author. For more information, see:
# https://www.unrealircd.org/docs/Module_manager
#
#
# This is the unrealircd-contrib repository which is added by default in
# UnrealIRCd 5 to make it easy for users to install 3rd party modules.
# If you are a module coder and want to add your module to this repository
# as well, then read the rules and procedure at:
# https://www.unrealircd.org/docs/Rules_for_3rd_party_modules_in_unrealircd-contrib
#
https://modules.unrealircd.org/modules.list
# You can add more repositories here. However, do note that all
# URLs MUST start with https://
+43 -47
View File
@@ -22,123 +22,119 @@
operclass locop {
permissions {
chat;
channel { operonly; override { flood; } }
client { see; }
channel { operonly; override { flood; }; };
client { see; };
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash; }
route { local; }
kill { local; }
self;
server { opermotd; info; close; module; dns; rehash; };
route { local; };
kill { local; };
server-ban {
kline;
zline { local; }
}
}
}
zline { local; };
};
};
};
/* Global IRC Operator */
operclass globop {
permissions {
chat;
channel { operonly; see; override { flood; } }
channel { operonly; see; override { flood; }; };
client;
immune;
self { getbaddcc; opermodes; set; }
self;
server { opermotd; info; close; module; dns; rehash;
remote; tsctl { view; } }
remote; tsctl { view; }; };
route;
kill;
server-ban { dccdeny; shun; zline; kline; gline; }
}
}
server-ban { dccdeny; shun; zline; kline; gline; };
};
};
/* Server administrator */
operclass admin {
permissions {
chat;
channel { operonly; see; override { flood; } }
channel { operonly; see; override { flood; }; };
client;
immune;
self { getbaddcc; opermodes; set; }
self;
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl { view; } }
addomotd; tsctl { view; }; };
route;
kill;
server-ban;
}
}
};
};
/* Services Admin */
operclass services-admin {
permissions {
chat;
channel { operonly; see; override { flood; } }
channel { operonly; see; override { flood; }; };
client;
immune;
self { getbaddcc; opermodes; set; }
self;
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl { view; } }
addomotd; tsctl { view; }; };
route;
kill;
server-ban;
sacmd;
services;
}
}
};
};
/* Network Administrator */
operclass netadmin {
permissions {
chat;
channel { operonly; see; override { flood; } }
channel { operonly; see; override { flood; }; };
client;
immune;
self { getbaddcc; opermodes; set; }
self;
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl; }
addomotd; tsctl; };
route;
kill;
server-ban;
sacmd;
services;
}
}
};
};
/* Same as 'globop' operclass, but with OperOverride capabilities added */
operclass globop-with-override {
parent globop;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
channel { operonly; see; override; };
};
};
/* Same as 'admin' operclass, but with OperOverride capabilities added */
operclass admin-with-override {
parent admin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
channel { operonly; see; override; };
};
};
/* Same as 'services-admin' operclass, but with OperOverride capabilities added */
operclass services-admin-with-override {
parent services-admin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
channel { operonly; see; override; };
};
};
/* Same as 'netadmin' operclass, but with OperOverride capabilities added */
operclass netadmin-with-override {
parent netadmin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
channel { operonly; see; override; };
};
};
+14 -14
View File
@@ -29,7 +29,7 @@ spamfilter {
target private;
action gline;
reason "Infected by fyle trojan: see http://www.sophos.com/virusinfo/analyses/trojfylexa.html";
}
};
/* This signature uses a \ which has to escaped to \\ in the configuration file */
spamfilter {
@@ -38,7 +38,7 @@ spamfilter {
target dcc;
action block;
reason "Infected by Gaggle worm?";
}
};
spamfilter {
match-type simple;
@@ -46,7 +46,7 @@ spamfilter {
target private;
action gline;
reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html";
}
};
spamfilter {
match-type simple;
@@ -54,7 +54,7 @@ spamfilter {
target private;
action gline;
reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm";
}
};
/* Now spamfilters of type 'regex'.
@@ -69,10 +69,10 @@ spamfilter {
spamfilter {
match-type regex;
match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}";
target { private; channel; }
target { private; channel; };
action kill;
reason "mIRC 6.0-6.11 exploit attempt";
}
};
/* Similarly, this regex shows a pattern that matches
* against at least 225 characters in length.
@@ -80,10 +80,10 @@ spamfilter {
spamfilter {
match-type regex;
match "\x01DCC (SEND|RESUME).{225}";
target { private; channel; }
target { private; channel; };
action kill;
reason "Possible mIRC 6.12 exploit attempt";
}
};
/* Earlier you saw an example of a $decode exploit which used
* match-type 'simple' and - indeed - the filter was quite simple.
@@ -100,7 +100,7 @@ spamfilter {
target private;
action block;
reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan.";
}
};
spamfilter {
match-type regex;
@@ -108,7 +108,7 @@ spamfilter {
target private;
action block;
reason "Infected by fagot worm: see http://www.f-secure.com/v-descs/fagot.shtml";
}
};
/* This shows a regex which specifically matches an entire line by
* the use of ^ and $
@@ -119,7 +119,7 @@ spamfilter {
target channel;
action gline;
reason "Attempting to login to a GTBot";
}
};
/* An example of how to match against an IP address in text (IPv4 only) */
spamfilter {
@@ -128,7 +128,7 @@ spamfilter {
target channel;
action gline;
reason "Attempting to use a GTBot";
}
};
/* A slightly more complex example with a partial OR matcher (|) */
spamfilter {
@@ -137,7 +137,7 @@ spamfilter {
target private;
action gline;
reason "Infected by some trojan (erotica?)";
}
};
/* In regex a \ is special and needs to be escaped to \\
* However in this configuration file, \ is also special and
@@ -151,4 +151,4 @@ spamfilter {
target dcc;
action dccblock;
reason "Infected by Gaggle worm";
}
};
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
==[ Translations ]===========================================================
In UnrealIRCd 5 we support the following translations:
In UnrealIRCd 4 we support the following translations:
* on-line documentation at https://www.unrealircd.org/docs/ (wiki!)
* help.conf
* example.conf
-155
View File
@@ -1,155 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="UnrealIRCd rules - based off Microsoft Native Minimum Rules" Description="These rules focus on the most critical problems in your native code, including potential security holes and application crashes. It is recommended to include this rule set in any custom rule set you create for your native projects." ToolsVersion="10.0">
<Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
<Name Resource="NativeMinimumRules_Name" />
<Description Resource="NativeMinimumRules_Description" />
</Localization>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<!-- Many false positives <Rule Id="C6001" Action="Warning" /> -->
<!-- Many false positives <Rule Id="C6011" Action="Warning" /> -->
<Rule Id="C6029" Action="Warning" />
<Rule Id="C6053" Action="Warning" />
<Rule Id="C6059" Action="Warning" />
<Rule Id="C6063" Action="Warning" />
<Rule Id="C6064" Action="Warning" />
<Rule Id="C6066" Action="Warning" />
<Rule Id="C6067" Action="Warning" />
<Rule Id="C6101" Action="Warning" />
<Rule Id="C6200" Action="Warning" />
<Rule Id="C6201" Action="Warning" />
<Rule Id="C6270" Action="Warning" />
<Rule Id="C6271" Action="Warning" />
<Rule Id="C6272" Action="Warning" />
<Rule Id="C6273" Action="Warning" />
<Rule Id="C6274" Action="Warning" />
<Rule Id="C6276" Action="Warning" />
<Rule Id="C6277" Action="Warning" />
<Rule Id="C6284" Action="Warning" />
<Rule Id="C6290" Action="Warning" />
<Rule Id="C6291" Action="Warning" />
<Rule Id="C6302" Action="Warning" />
<Rule Id="C6303" Action="Warning" />
<Rule Id="C6305" Action="Warning" />
<Rule Id="C6306" Action="Warning" />
<Rule Id="C6328" Action="Warning" />
<!-- <Rule Id="C6385" Action="Warning" /> more false positives -->
<!-- <Rule Id="C6386" Action="Warning" /> the analysis this one does - or lack thereof - is particularly dumb pffff -->
<!-- <Rule Id="C6387" Action="Warning" /> more null/0 false positives -->
<Rule Id="C6500" Action="Warning" />
<Rule Id="C6501" Action="Warning" />
<Rule Id="C6503" Action="Warning" />
<Rule Id="C6504" Action="Warning" />
<Rule Id="C6505" Action="Warning" />
<Rule Id="C6506" Action="Warning" />
<Rule Id="C6508" Action="Warning" />
<Rule Id="C6509" Action="Warning" />
<Rule Id="C6510" Action="Warning" />
<Rule Id="C6511" Action="Warning" />
<Rule Id="C6513" Action="Warning" />
<Rule Id="C6514" Action="Warning" />
<Rule Id="C6515" Action="Warning" />
<Rule Id="C6516" Action="Warning" />
<Rule Id="C6517" Action="Warning" />
<Rule Id="C6518" Action="Warning" />
<Rule Id="C6522" Action="Warning" />
<Rule Id="C6525" Action="Warning" />
<Rule Id="C6527" Action="Warning" />
<Rule Id="C6530" Action="Warning" />
<Rule Id="C6540" Action="Warning" />
<Rule Id="C6551" Action="Warning" />
<Rule Id="C6552" Action="Warning" />
<Rule Id="C6701" Action="Warning" />
<Rule Id="C6702" Action="Warning" />
<Rule Id="C6703" Action="Warning" />
<Rule Id="C6704" Action="Warning" />
<Rule Id="C6705" Action="Warning" />
<Rule Id="C6706" Action="Warning" />
<!-- CppCoreCheck -->
<!-- Span/View over temporary -->
<Rule Id="C26449" Action="Warning" />
<!-- Arithmetic overflow -->
<Rule Id="C26450" Action="Warning" />
<Rule Id="C26451" Action="Warning" />
<Rule Id="C26452" Action="Warning" />
<Rule Id="C26453" Action="Warning" />
<Rule Id="C26454" Action="Warning" />
<!-- Unitialized Member -->
<Rule Id="C26495" Action="Warning" />
<Rule Id="C28021" Action="Warning" />
<!-- <Rule Id="C28182" Action="Warning" /> false positives for dereferencing null ptr -->
<Rule Id="C28202" Action="Warning" />
<Rule Id="C28203" Action="Warning" />
<Rule Id="C28205" Action="Warning" />
<Rule Id="C28206" Action="Warning" />
<Rule Id="C28207" Action="Warning" />
<Rule Id="C28210" Action="Warning" />
<Rule Id="C28211" Action="Warning" />
<Rule Id="C28212" Action="Warning" />
<Rule Id="C28213" Action="Warning" />
<Rule Id="C28214" Action="Warning" />
<Rule Id="C28215" Action="Warning" />
<Rule Id="C28216" Action="Warning" />
<Rule Id="C28217" Action="Warning" />
<Rule Id="C28218" Action="Warning" />
<Rule Id="C28219" Action="Warning" />
<Rule Id="C28220" Action="Warning" />
<Rule Id="C28221" Action="Warning" />
<Rule Id="C28222" Action="Warning" />
<Rule Id="C28223" Action="Warning" />
<Rule Id="C28224" Action="Warning" />
<Rule Id="C28225" Action="Warning" />
<Rule Id="C28226" Action="Warning" />
<Rule Id="C28227" Action="Warning" />
<Rule Id="C28228" Action="Warning" />
<Rule Id="C28229" Action="Warning" />
<Rule Id="C28230" Action="Warning" />
<Rule Id="C28231" Action="Warning" />
<Rule Id="C28232" Action="Warning" />
<Rule Id="C28233" Action="Warning" />
<Rule Id="C28234" Action="Warning" />
<Rule Id="C28235" Action="Warning" />
<Rule Id="C28236" Action="Warning" />
<Rule Id="C28237" Action="Warning" />
<Rule Id="C28238" Action="Warning" />
<Rule Id="C28239" Action="Warning" />
<Rule Id="C28240" Action="Warning" />
<Rule Id="C28241" Action="Warning" />
<Rule Id="C28243" Action="Warning" />
<Rule Id="C28245" Action="Warning" />
<Rule Id="C28246" Action="Warning" />
<Rule Id="C28250" Action="Warning" />
<!-- <Rule Id="C28251" Action="Warning" /> this may be real but it's damn annoying: inconsistent annotation for function -->
<Rule Id="C28252" Action="Warning" />
<Rule Id="C28253" Action="Warning" />
<Rule Id="C28254" Action="Warning" />
<Rule Id="C28262" Action="Warning" />
<Rule Id="C28263" Action="Warning" />
<Rule Id="C28267" Action="Warning" />
<Rule Id="C28272" Action="Warning" />
<Rule Id="C28273" Action="Warning" />
<Rule Id="C28275" Action="Warning" />
<Rule Id="C28279" Action="Warning" />
<Rule Id="C28280" Action="Warning" />
<Rule Id="C28282" Action="Warning" />
<Rule Id="C28285" Action="Warning" />
<Rule Id="C28286" Action="Warning" />
<Rule Id="C28287" Action="Warning" />
<Rule Id="C28288" Action="Warning" />
<Rule Id="C28289" Action="Warning" />
<Rule Id="C28290" Action="Warning" />
<Rule Id="C28291" Action="Warning" />
<Rule Id="C28300" Action="Warning" />
<Rule Id="C28301" Action="Warning" />
<Rule Id="C28302" Action="Warning" />
<Rule Id="C28303" Action="Warning" />
<Rule Id="C28304" Action="Warning" />
<Rule Id="C28305" Action="Warning" />
<Rule Id="C28308" Action="Warning" />
<Rule Id="C28309" Action="Warning" />
<Rule Id="C28350" Action="Warning" />
<Rule Id="C28351" Action="Warning" />
</Rules>
</RuleSet>
+4 -30
View File
@@ -10,45 +10,19 @@ if [ "$1" != "" ]; then
BUILDCONFIG="$*"
fi
if [[ "$OSTYPE" == "freebsd"* ]]; then
export MAKE="gmake -j4"
else
export MAKE="make -j4"
fi
export CPPFLAGS="-DFAKELAG_CONFIGURABLE -DNOREMOVETMP"
# !! skipped for now: extras/build-tests/nix/select-config $BUILDCONFIG !!
# !! temporary use this:
cp extras/build-tests/nix/configs/default ./config.settings
# Debian 8 workaround:
if lsb_release -av 2>&1|egrep 'Debian.*jessie'; then
echo "Disabling ASan due to false positives on deb8"
echo 'EXTRAPARA="--enable-werror --disable-asan"' >>config.settings
fi
if uname -s|grep -i freebsd; then
echo "Disabling ASan on FreeBSD due to 100% CPU loop in OpenSSL initialization routine"
echo 'EXTRAPARA="--enable-werror --disable-asan"' >>config.settings
fi
# If SSLDIR is set the environment, this overrides config.settings
# Used for example in the openssl3 build tests.
if [ "$SSLDIR" != "" ]; then
echo 'SSLDIR="'"$SSLDIR"'"' >>config.settings
fi
export MAKE="make -j3"
export CPPFLAGS="-DFAKELAG_CONFIGURABLE"
extras/build-tests/nix/select-config $BUILDCONFIG
# Read config.settings, this makes a couple of variables available to us.
. ./config.settings
if [ "$SSLDIR" != "" ]; then
# In case we build local openssl/libressl
export LD_LIBRARY_PATH="$SSLDIR/lib"
fi
./Config -quick || (tail -n 5000 config.log; exit 1)
./Config -quick || (tail -n 5000 config.log; echo '*** now tre:'; tail -n 5000 extras/tre-0.8.0-git/config.log; echo '** end of tre config.log **'; exit 1)
$MAKE
yes ''|make pem
make
./unrealircd module install third/dumpcmds
make install
set +x
+7 -2
View File
@@ -8,8 +8,9 @@ LOGDIR=$HOME/unrealircd/logs
CACHEDIR=$HOME/unrealircd/cache
DOCDIR=$HOME/unrealircd/doc
TMPDIR=$HOME/unrealircd/tmp
PRIVATELIBDIR=$HOME/unrealircd/lib
LIBDIR=$HOME/unrealircd/lib
PREFIXAQ="1"
MAXSENDQLENGTH="3000000"
MAXCONNECTIONS="1024"
NICKNAMEHISTORYLENGTH="2000"
DEFPERM="0600"
@@ -17,8 +18,12 @@ SSLDIR=""
REMOTEINC=""
CURLDIR=""
SHOWLISTMODES="1"
TOPICNICKISNUH=""
SHUNNOTICES=""
NOOPEROVERRIDE=""
DISABLEUSERMOD=""
OPEROVERRIDEVERIFY=""
DISABLEEXTBANSTACKING=""
GENCERTIFICATE="0"
EXTRAPARA="--enable-werror --enable-asan"
#EXTRAPARA="--enable-werror"
ADVANCED=""
+48 -44
View File
@@ -9,52 +9,56 @@ set -e
# Verbose:
set -x
# Kill old instances
killall -9 unrealircd || true
# Remove old junk
rm -rf cipherscan/ unrealircd-tests/
if [ ! -d ~/cipherscan ]; then
# Install 'cipherscan'
git clone -q https://github.com/mozilla/cipherscan
fi
# Install 'unrealircd-tests'
git clone -q https://github.com/unrealircd/unrealircd-tests.git
cd unrealircd-tests
# FreeBSD has various issues with the tests from us and others,
# better set a flag to keep it simple:
FREEBSD=0
if uname -a|grep -q FreeBSD; then
FREEBSD=1
fi
# Run the test framework, testing both services:
if [ "$FREEBSD" = 1 ]; then
# FreeBSD runs without services since they fail mysteriously:
./run -services none || exit 1
# Install packages
if [[ "$OSTYPE" == "darwin"* ]]; then
brew install git || true
brew install python || true
gem install bundler || true
gem install rake || true
gem install rspec || true
else
# Linux tests both with anope and atheme services:
./run -services anope || exit 1
./run -services atheme || exit 1
sudo apt-get install git python rake -y
gem install bundler -v "~>1.0"
fi
# Database writing/reading tests
## unencrypted:
./run -services none -boot tests/db/writing/* || exit 1
./run -services none -keepdbs -boot tests/db/reading/* || exit 1
## encrypted:
./run -services none -include db_crypted.conf -boot tests/db/writing/* || exit 1
./run -services none -include db_crypted.conf -keepdbs -boot tests/db/reading/* || exit 1
# Do cipherscan test at the end
# Has problems on non-Linux-64-bit, so we skip there:
if [ "$FREEBSD" = 0 -a "$HOSTNAME" != "ub18-ia32" ]; then
sleep 2
cd ../extras/tests/tls
./tls-tests
cd -
# Install 'ircfly'
git clone -q https://github.com/unrealircd/ircfly.git
cd ircfly
bundle install
bundle exec rake build
if [[ "$OSTYPE" == "darwin"* ]]; then
bundle exec rake install
else
sudo rake install
fi
cd ..
killall -15 unrealircd atheme-services services anope || true
# Install 'cipherscan'
git clone -q https://github.com/mozilla/cipherscan
# Install 'unrealircd-tests-old'
git clone -q https://github.com/unrealircd/unrealircd-tests-old.git
cd unrealircd-tests-old
bundle install
mv config.yaml.example config.yaml
# Start the IRC servers
cp ircdconfig/* ~/unrealircd/conf/
cd ~/unrealircd
bin/unrealircd -f hub.conf
bin/unrealircd -f irc1.conf
bin/unrealircd -f irc2.conf
cd -
# Do cipherscan test
sleep 2
cd ../extras/tests/tls
./tls-tests
cd -
# Back in unrealircd-tests-old, run the tests!
if [[ "$OSTYPE" == "darwin"* ]]; then
bundle exec rake
else
rake
fi
@@ -1,14 +0,0 @@
#!/bin/bash
#
# This is a simple wrapper script that will run the tests
# When finished, either due to succes or failure,
# it will kill the ircd
#
# Also, it makes sure the job times out (is killed)
# in case it misbehaves
#
set +ex
timeout --kill-after=5 600 extras/build-tests/nix/run-tests
EX="$?"
killall -9 valgrind valgrind.bin memcheck memcheck-amd64-linux memcheck-x86-linux ircd unrealircd val 1>/dev/null 2>&1
exit $EX
+1 -1
View File
@@ -25,7 +25,7 @@ function build_ssl {
}
if [ ! -d extras ]; then
echo "This tool is supposed to be run from the source root, so ~/unrealircd-5.0.x or similar"
echo "This tool is supposed to be run from the source root, so ~/unrealircd-4.2.x or similar"
exit 1
fi
+17 -74
View File
@@ -1,29 +1,23 @@
echo on
rem Temporarily hardcoded:
set TARGET=Visual Studio 2019
set SHORTNAME=vs2019
rem Build script for appveyor
rem Initialize Visual Studio variables
if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
if "%TARGET%" == "Visual Studio 2019" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
rem Installing tools
rem only for appveyor:
rem cinst unrar -y
rem cinst unzip -y
rem cinst innosetup -y
cinst unrar -y
cinst unzip -y
cinst innosetup -y
curl -fsS -o dlltool.exe https://www.unrealircd.org/files/dev/win/dlltool.exe
rem Installing UnrealIRCd dependencies
cd \projects
mkdir unrealircd-5-libs
cd unrealircd-5-libs
curl -fsS -o unrealircd-libraries-5-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-5-devel.zip
unzip unrealircd-libraries-5-devel.zip
copy dlltool.exe \users\user\worker\unreal5-w10\build /y
mkdir unrealircd-deps
cd unrealircd-deps
curl -fsS -o SetACL.exe https://www.unrealircd.org/files/dev/win/SetACL.exe
curl -fsS -o unrealircd-libraries-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-devel.zip
unzip unrealircd-libraries-devel.zip
rem for appveyor: cd \projects\unrealircd
cd \users\user\worker\unreal5-w10\build
cd \projects\unrealircd
rem Now the actual build
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
@@ -31,23 +25,18 @@ call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
rem The above command will fail, due to missing symbol file
rem However the symbol file can only be generated after the above command
rem So... we create the symbolfile...
nmake -f makefile.windows SYMBOLFILE
nmake -f makefile.win32 SYMBOLFILE
rem And we re-run the exact same command:
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Compile dependencies for unrealircd-tests -- this doesn't belong here though..
curl -fsS -o src\modules\third\fakereputation.c https://raw.githubusercontent.com/unrealircd/unrealircd-tests/master/serverconfig/unrealircd/modules/fakereputation.c
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat CUSTOMMODULE MODULEFILE=fakereputation
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Convert c:\dev to c:\projects\unrealircd-5-libs
rem Convert c:\dev to c:\projects\unrealircd-deps
rem TODO: should use environment variable in innosetup script?
sed -i "s/c:\\dev\\unrealircd-5-libs/c:\\projects\\unrealircd-5-libs/gi" src\windows\unrealinst.iss
sed -i "s/c:\\\\dev/c:\\\\projects\\\\unrealircd-deps/gi" src\win32\unrealinst.iss
rem Build installer file
"c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\windows\unrealinst.iss
"c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\win32\unrealinst.iss
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Show some proof
@@ -55,52 +44,6 @@ ren mysetup.exe unrealircd-dev-build.exe
dir unrealircd-dev-build.exe
sha256sum unrealircd-dev-build.exe
rem Kill any old instances, just to be sure
taskkill -im unrealircd.exe -f
sleep 2
rem Just a safety measure so we don't end up testing
rem some old version...
del "C:\Program Files\UnrealIRCd 5\bin\unrealircd.exe"
echo Running installer...
start /WAIT unrealircd-dev-build.exe /VERYSILENT /LOG=setup.log
if %ERRORLEVEL% NEQ 0 goto installerfailed
rem Upload artifact
rem appveyor PushArtifact unrealircd-dev-build.exe
rem if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Install 'unrealircd-tests'
cd ..
rd /q/s unrealircd-tests
git clone https://github.com/unrealircd/unrealircd-tests.git
appveyor PushArtifact unrealircd-dev-build.exe
if %ERRORLEVEL% NEQ 0 EXIT /B 1
cd unrealircd-tests
dir
rem All tests except db:
"C:\Program Files\Git\bin\bash.exe" ./runwin
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Test unencrypted db's:
"C:\Program Files\Git\bin\bash.exe" ./runwin -boot tests/db/writing/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
"C:\Program Files\Git\bin\bash.exe" ./runwin -keepdbs -boot tests/db/reading/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Test encrypted db's:
"C:\Program Files\Git\bin\bash.exe" ./runwin -include db_crypted.conf -boot tests/db/writing/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
"C:\Program Files\Git\bin\bash.exe" ./runwin -include db_crypted.conf -keepdbs -boot tests/db/reading/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
goto end
:installerfailed
type setup.log
echo INSTALLATION FAILED
EXIT /B 1
:end
@@ -0,0 +1,21 @@
rem Build command for Visual Studio 2017
nmake -f makefile.win32 ^
LIBRESSL_INC_DIR="c:\projects\unrealircd-deps\libressl\include" ^
LIBRESSL_LIB_DIR="c:\projects\unrealircd-deps\libressl\lib" ^
SSLLIB="crypto-44.lib ssl-46.lib" ^
USE_REMOTEINC=1 ^
LIBCURL_INC_DIR="c:\projects\unrealircd-deps\curl-ssl\include" ^
LIBCURL_LIB_DIR="c:\projects\unrealircd-deps\curl-ssl\builds\libcurl-vc-x86-release-dll-ssl-dll-ipv6-sspi-obj-lib" ^
CARES_LIB_DIR="c:\projects\unrealircd-deps\c-ares\msvc\cares\dll-release" ^
CARES_INC_DIR="c:\projects\unrealircd-deps\c-ares" ^
CARESLIB="cares.lib" ^
TRE_LIB_DIR="c:\projects\unrealircd-deps\tre\win32\release" ^
TRE_INC_DIR="c:\projects\unrealircd-deps\tre" ^
TRELIB="tre.lib" ^
PCRE2_INC_DIR="c:\projects\unrealircd-deps\pcre2\include" ^
PCRE2_LIB_DIR="c:\projects\unrealircd-deps\pcre2\lib" ^
PCRE2LIB="pcre2-8.lib" ^
ARGON2_LIB_DIR="c:\projects\unrealircd-deps\argon2\vs2015\build" ^
ARGON2_INC_DIR="c:\projects\unrealircd-deps\argon2\include" ^
ARGON2LIB="Argon2RefDll.lib" %*
@@ -1,21 +0,0 @@
rem Build command for Visual Studio 2019
nmake -f makefile.windows ^
LIBRESSL_INC_DIR="c:\projects\unrealircd-5-libs\libressl\include" ^
LIBRESSL_LIB_DIR="c:\projects\unrealircd-5-libs\libressl\lib" ^
SSLLIB="crypto-46.lib ssl-48.lib" ^
USE_REMOTEINC=1 ^
LIBCURL_INC_DIR="c:\projects\unrealircd-5-libs\curl\include" ^
LIBCURL_LIB_DIR="c:\projects\unrealircd-5-libs\curl\builds\libcurl-vc-x64-release-dll-ssl-dll-cares-dll-ipv6-obj-lib" ^
CARES_LIB_DIR="c:\projects\unrealircd-5-libs\c-ares\msvc\cares\dll-release" ^
CARES_INC_DIR="c:\projects\unrealircd-5-libs\c-ares\include" ^
CARESLIB="cares.lib" ^
PCRE2_INC_DIR="c:\projects\unrealircd-5-libs\pcre2\include" ^
PCRE2_LIB_DIR="c:\projects\unrealircd-5-libs\pcre2\lib" ^
PCRE2LIB="pcre2-8.lib" ^
ARGON2_LIB_DIR="c:\projects\unrealircd-5-libs\argon2\vs2015\build" ^
ARGON2_INC_DIR="c:\projects\unrealircd-5-libs\argon2\include" ^
ARGON2LIB="Argon2RefDll.lib" ^
SODIUM_LIB_DIR="c:\projects\unrealircd-5-libs\libsodium\bin\x64\Release\v142\dynamic" ^
SODIUM_INC_DIR="c:\projects\unrealircd-5-libs\libsodium\src\libsodium\include" ^
SODIUMLIB="libsodium.lib" %*
Binary file not shown.
+3 -3
View File
@@ -4,7 +4,7 @@ OUTF="curl-latest.tar.gz"
OUTD="curl-latest"
ARESPATH="`pwd`/extras/c-ares"
UNREALDIR="`pwd`"
CARESVERSION="1.17.2"
CARESVERSION="1.15.0"
LIBDIR="$1"
if [ "x$1" = "x" ]; then
@@ -18,7 +18,7 @@ if [ ! -f src/parse.c ]; then
cd ..
else
echo "Please run this program from your UnrealIRCd directory"
echo "(usually $HOME/unrealircd-5.0.X or something like that)"
echo "(usually $HOME/unrealircd-4.2.X or something like that)"
exit 1
fi
fi
@@ -90,7 +90,7 @@ cd "$OUTD" || exit 1
echo "Building and installing libcurl"
CPPFLAGS="-I$ARESPATH/include" ./configure --prefix=$UNREALDIR/extras/curl --libdir=$LIBDIR --enable-shared \
--enable-ares=$ARESPATH --with-openssl
--disable-thread --enable-ares=$ARESPATH --disable-ipv6
cp -R $ARESPATH/lib ares
make && make install
-17
View File
@@ -1,17 +0,0 @@
Welcome to the doxygen-generated documentation for the UnrealIRCd 5.x API.
This is intended **for developers only!**
Note that UnrealIRCd 5 is the **old stable**, it is no longer receiving new
features and is bug fix only. If you are developing a new 3rd party module
then you are suggested to develop for UnrealIRCd 6 and go to the
[UnrealIRCd 6 module api](https://www.unrealircd.org/api/6/) page instead.
## Wiki documentation ##
* Be sure to check the [Module API](https://www.unrealircd.org/docs/Dev:Module_API) article on the wiki
as well, which provides a better *overview* of the module API
## Doxygen docs ##
* [Functions and structs ordered by purpose](modules.html) - **this contains most of the module API!**
* [The most common structs](group__CommonStructs.html) - like Client, User, Server, Channel, etc.
* [All structs](classes.html) - in a simple alphabetical index
* [Browse by source file](dir_68267d1309a1af8e8297ef4c3efbcdba.html) - see all src/*.c files and their (documented) functions.
File diff suppressed because it is too large Load Diff
-4
View File
@@ -1,4 +0,0 @@
code {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
}
-56
View File
@@ -1,56 +0,0 @@
<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<!--BEGIN PROJECT_NAME--><title>$projectname Module API: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
$treeview
$search
$mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
$extrastylesheet
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!--BEGIN TITLEAREA-->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<!--BEGIN PROJECT_LOGO-->
<td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
<!--END PROJECT_LOGO-->
<!--BEGIN PROJECT_NAME-->
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">$projectname
<!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">Module API $projectnumber</span><!--END PROJECT_NUMBER-->
</div>
<!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
</td>
<!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME-->
<!--BEGIN PROJECT_BRIEF-->
<td style="padding-left: 0.5em;">
<div id="projectbrief">$projectbrief</div>
</td>
<!--END PROJECT_BRIEF-->
<!--END !PROJECT_NAME-->
<!--BEGIN DISABLE_INDEX-->
<!--BEGIN SEARCHENGINE-->
<td>$searchbox</td>
<!--END SEARCHENGINE-->
<!--END DISABLE_INDEX-->
</tr>
</tbody>
</table>
</div>
<!--END TITLEAREA-->
<!-- end header part -->
Binary file not shown.
Binary file not shown.
+98
View File
@@ -0,0 +1,98 @@
# Makefile for regex.
#
# Copyright (C) 1992, 1993 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
version = 0.12
# You can define CPPFLAGS on the command line. Aside from system-specific
# flags, you can define:
# -DREGEX_MALLOC to use malloc/realloc/free instead of alloca.
# -DDEBUG to enable the compiled pattern disassembler and execution
# tracing; code runs substantially slower.
# -DEXTRACT_MACROS to use the macros EXTRACT_* (as opposed to
# the corresponding C procedures). If not -DDEBUG, the macros
# are used.
CPPFLAGS =
# Likewise, you can override CFLAGS to optimize, use -Wall, etc.
CFLAGS = -g
# Ditto for LDFLAGS and LOADLIBES.
LDFLAGS =
LOADLIBES =
srcdir = @srcdir@
VPATH = @srcdir@
CC = @CC@
DEFS = @DEFS@
SHELL = /bin/sh
subdirs = moo
default all:: regex.o
.PHONY: default all
regex.o: regex.c regex.h
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) -c $<
clean mostlyclean::
rm -f *.o
distclean:: clean
rm -f Makefile config.status
extraclean:: distclean
rm -f patch* *~* *\#* *.orig *.rej *.bak core a.out
configure: configure.in
autoconf
config.status: configure
sh configure --no-create
Makefile: Makefile.in config.status
sh config.status
makeargs = $(MFLAGS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' CC='$(CC)' \
DEFS='$(DEFS)' LDFLAGS='$(LDFLAGS)' LOADLIBES='$(LOADLIBES)'
default all install \
mostlyclean clean distclean extraclean realclean \
TAGS check::
for d in $(subdirs); do (cd $$d; $(MAKE) $(makeargs) $@); done
.PHONY: install mostlyclean clean distclean extraclean realclean TAGS check
# Prevent GNU make 3 from overflowing arg limit on system V.
.NOEXPORT:
distfiles = AUTHORS ChangeLog COPYING INSTALL NEWS README \
*.in configure regex.c regex.h
distdir = regex-$(version)
distargs = version=$(version) distdir=../$(distdir)/$$d
dist: TAGS configure
@echo "Version numbers in: Makefile.in, ChangeLog, NEWS,"
@echo " regex.c, regex.h,"
@echo " and doc/xregex.texi (if modified)."
rm -rf $(distdir)
mkdir $(distdir)
ln $(distfiles) $(distdir)
for d in $(subdirs); do (cd $$d; $(MAKE) $(distargs) dist); done
tar czhf $(distdir).tar.Z $(distdir)
rm -rf $(distdir)
.PHONY: dist
+60
View File
@@ -0,0 +1,60 @@
This directory contains the GNU regex library. It is compliant with
POSIX.2, except for internationalization features.
See the file NEWS for a list of major changes in the current release.
See the file INSTALL for compilation instructions. (The only thing
installed is the documentation; regex.c is compiled into regex.o, but
not installed anywhere.)
The subdirectory `doc' contains a (programmers') manual for the library.
It's probably out-of-date. Improvements are welcome.
The subdirectory `test' contains the various tests we've written.
We know this code is not as fast as it might be. If you have specific
suggestions, profiling results, or other such useful information to
report, please do.
Emacs 18 is not going use this revised regex (but Emacs 19 will). If
you want to try it with Emacs 18, apply the patch at the end of this
file first.
Mail bug reports to bug-gnu-utils@prep.ai.mit.edu.
Please include an actual regular expression that fails (and the syntax
used to compile it); without that, there's no way to reproduce the bug,
so there's no way we can fix it. Even if you include a patch, also
include the regular expression in error; otherwise, we can't know for
sure what you're trying to fix.
Here is the patch to make this version of regex work with Emacs 18.
*** ORIG/search.c Tue Jan 8 13:04:55 1991
--- search.c Sun Jan 5 10:57:00 1992
***************
*** 25,26 ****
--- 25,28 ----
#include "commands.h"
+
+ #include <sys/types.h>
#include "regex.h"
***************
*** 477,479 ****
/* really needed. */
! && *(searchbuf.buffer) == (char) exactn /* first item is "exact match" */
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
--- 479,482 ----
/* really needed. */
! /* first item is "exact match" */
! && *(searchbuf.buffer) == (char) RE_EXACTN_VALUE
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
***************
*** 1273,1275 ****
searchbuf.allocated = 100;
! searchbuf.buffer = (char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
--- 1276,1278 ----
searchbuf.allocated = 100;
! searchbuf.buffer = (unsigned char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
Vendored Executable
+462
View File
@@ -0,0 +1,462 @@
#!/bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf.
# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# Usage: configure [--srcdir=DIR] [--host=HOST] [--gas] [--nfp] [--no-create]
# [--prefix=PREFIX] [--exec-prefix=PREFIX] [--with-PACKAGE] [TARGET]
# Ignores all args except --srcdir, --prefix, --exec-prefix, --no-create, and
# --with-PACKAGE unless this script has special code to handle it.
for arg
do
# Handle --exec-prefix with a space before the argument.
if test x$next_exec_prefix = xyes; then exec_prefix=$arg; next_exec_prefix=
# Handle --host with a space before the argument.
elif test x$next_host = xyes; then next_host=
# Handle --prefix with a space before the argument.
elif test x$next_prefix = xyes; then prefix=$arg; next_prefix=
# Handle --srcdir with a space before the argument.
elif test x$next_srcdir = xyes; then srcdir=$arg; next_srcdir=
else
case $arg in
# For backward compatibility, also recognize exact --exec_prefix.
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
next_exec_prefix=yes ;;
-gas | --gas | --ga | --g) ;;
-host=* | --host=* | --hos=* | --ho=* | --h=*) ;;
-host | --host | --hos | --ho | --h)
next_host=yes ;;
-nfp | --nfp | --nf) ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre | --no-cr | --no-c | --no- | --no)
no_create=1 ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
next_prefix=yes ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
srcdir=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
next_srcdir=yes ;;
-with-* | --with-*)
package=`echo $arg|sed 's/-*with-//'`
# Delete all the valid chars; see if any are left.
if test -n "`echo $package|sed 's/[-a-zA-Z0-9_]*//g'`"; then
echo "configure: $package: invalid package name" >&2; exit 1
fi
eval "with_`echo $package|sed s/-/_/g`=1" ;;
*) ;;
esac
fi
done
trap 'rm -f conftest* core; exit 1' 1 3 15
rm -f conftest*
compile='${CC-cc} $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
unique_file=regex.c
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
srcdirdefaulted=yes
# Try the directory containing this script, then `..'.
prog=$0
confdir=`echo $prog|sed 's%/[^/][^/]*$%%'`
test "X$confdir" = "X$prog" && confdir=.
srcdir=$confdir
if test ! -r $srcdir/$unique_file; then
srcdir=..
fi
fi
if test ! -r $srcdir/$unique_file; then
if test x$srcdirdefaulted = xyes; then
echo "configure: Can not find sources in \`${confdir}' or \`..'." 1>&2
else
echo "configure: Can not find sources in \`${srcdir}'." 1>&2
fi
exit 1
fi
# Preserve a srcdir of `.' to avoid automounter screwups with pwd.
# But we can't avoid them for `..', to make subdirectories work.
case $srcdir in
.|/*|~*) ;;
*) srcdir=`cd $srcdir; pwd` ;; # Make relative path absolute.
esac
if test -z "$CC"; then
echo checking for gcc
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/gcc; then
CC="gcc"
break
fi
done
IFS="$saveifs"
fi
test -z "$CC" && CC="cc"
# Find out if we are using GNU C, under whatever name.
cat > conftest.c <<EOF
#ifdef __GNUC__
yes
#endif
EOF
${CC-cc} -E conftest.c > conftest.out 2>&1
if egrep yes conftest.out >/dev/null 2>&1; then
GCC=1 # For later tests.
fi
rm -f conftest*
# Make sure to not get the incompatible SysV /etc/install and
# /usr/sbin/install, which might be in PATH before a BSD-like install,
# or the SunOS /usr/etc/install directory, or the AIX /bin/install,
# or the AFS install, which mishandles nonexistent args. (Sigh.)
if test -z "$INSTALL"; then
echo checking for install
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
case $dir in
/etc|/usr/sbin|/usr/etc|/usr/afsws/bin) ;;
*)
if test -f $dir/install; then
if grep dspmsg $dir/install >/dev/null 2>&1; then
: # AIX
else
INSTALL="$dir/install -c"
INSTALL_PROGRAM='$(INSTALL)'
INSTALL_DATA='$(INSTALL) -m 644'
break
fi
fi
;;
esac
done
IFS="$saveifs"
fi
INSTALL=${INSTALL-cp}
INSTALL_PROGRAM=${INSTALL_PROGRAM-'$(INSTALL)'}
INSTALL_DATA=${INSTALL_DATA-'$(INSTALL)'}
echo checking for AIX
echo checking how to run the C preprocessor
if test -z "$CPP"; then
CPP='${CC-cc} -E'
cat > conftest.c <<EOF
#include <stdio.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
:
else
CPP=/lib/cpp
fi
rm -f conftest*
fi
cat > conftest.c <<EOF
#ifdef _AIX
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
DEFS="$DEFS -D_ALL_SOURCE=1"
fi
rm -f conftest*
echo checking for DYNIX/ptx libseq
cat > conftest.c <<EOF
#if defined(_SEQUENT_)
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
SEQUENT=1
fi
rm -f conftest*
test -n "$SEQUENT" && test -f /usr/lib/libseq.a &&
LIBS="$LIBS -lseq"
echo checking for POSIXized ISC
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
ISC=1 # If later tests want to check for ISC.
DEFS="$DEFS -D_POSIX_SOURCE=1"
if test -n "$GCC"; then
CC="$CC -posix"
else
CC="$CC -Xp"
fi
fi
echo checking for minix/config.h
cat > conftest.c <<EOF
#include <minix/config.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
MINIX=1
fi
rm -f conftest*
# The Minix shell can't assign to the same variable on the same line!
if test -n "$MINIX"; then
DEFS="$DEFS -D_POSIX_SOURCE=1"
DEFS="$DEFS -D_POSIX_1_SOURCE=2"
DEFS="$DEFS -D_MINIX=1"
fi
echo checking for ANSI C header files
cat > conftest.c <<EOF
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
# SunOS string.h does not declare mem*, contrary to ANSI.
echo '#include <string.h>' > conftest.c
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "memchr" conftest.out >/dev/null 2>&1; then
# SGI's /bin/cc from Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
cat > conftest.c <<EOF
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#define XOR(e,f) (((e) && !(f)) || (!(e) && (f)))
int main () { int i; for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
eval $compile
if test -s conftest && (./conftest; exit) 2>/dev/null; then
DEFS="$DEFS -DSTDC_HEADERS=1"
fi
rm -f conftest*
fi
rm -f conftest*
fi
rm -f conftest*
for hdr in string.h
do
trhdr=HAVE_`echo $hdr | tr '[a-z]./' '[A-Z]__'`
echo checking for ${hdr}
cat > conftest.c <<EOF
#include <${hdr}>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
DEFS="$DEFS -D${trhdr}=1"
fi
rm -f conftest*
done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo checking for working alloca.h
cat > conftest.c <<EOF
#include <alloca.h>
main() { exit(0); }
t() { char *p = alloca(2 * sizeof(int)); }
EOF
if eval $compile; then
DEFS="$DEFS -DHAVE_ALLOCA_H=1"
fi
rm -f conftest*
decl="#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#if HAVE_ALLOCA_H
#include <alloca.h>
#else
#ifdef _AIX
#pragma alloca
#else
char *alloca ();
#endif
#endif
#endif
"
echo checking for alloca
cat > conftest.c <<EOF
$decl
main() { exit(0); }
t() { char *p = (char *) alloca(1); }
EOF
if eval $compile; then
:
else
alloca_missing=1
fi
rm -f conftest*
if test -n "$alloca_missing"; then
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=alloca.o
fi
prog='/* Ultrix mips cc rejects this. */
typedef int charset[2]; const charset x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *p;
char **p2;
/* HPUX 7.0 cc rejects these. */
++p;
p2 = (char const* const*) p;'
echo checking for working const
cat > conftest.c <<EOF
main() { exit(0); }
t() { $prog }
EOF
if eval $compile; then
:
else
DEFS="$DEFS -Dconst="
fi
rm -f conftest*
if test -z "$prefix"
then
echo checking for gcc to derive installation directory prefix
saveifs="$IFS"; IFS="$IFS:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test $dir != . && test -f $dir/gcc; then
# Not all systems have dirname.
prefix=`echo $dir|sed 's%/[^/][^/]*$%%'`
break
fi
done
IFS="$saveifs"
fi
if test -n "$prefix"; then
test -z "$exec_prefix" && exec_prefix='${prefix}'
prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%"
fi
if test -n "$exec_prefix"; then
prsub="$prsub
s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%\
exec_prefix\\1=\\2$exec_prefix%"
fi
trap 'rm -f config.status; exit 1' 1 3 15
echo creating config.status
rm -f config.status
cat > config.status <<EOF
#!/bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null`:
#
# $0 $*
for arg
do
case "\$arg" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
exec /bin/sh $0 $* ;;
*) echo "Usage: config.status --recheck" 2>&1; exit 1 ;;
esac
done
trap 'rm -f Makefile; exit 1' 1 3 15
CC='$CC'
INSTALL='$INSTALL'
INSTALL_PROGRAM='$INSTALL_PROGRAM'
INSTALL_DATA='$INSTALL_DATA'
CPP='$CPP'
ALLOCA='$ALLOCA'
LIBS='$LIBS'
srcdir='$srcdir'
DEFS='$DEFS'
prefix='$prefix'
exec_prefix='$exec_prefix'
prsub='$prsub'
EOF
cat >> config.status <<\EOF
top_srcdir=$srcdir
for file in .. Makefile; do if [ "x$file" != "x.." ]; then
srcdir=$top_srcdir
# Remove last slash and all that follows it. Not all systems have dirname.
dir=`echo $file|sed 's%/[^/][^/]*$%%'`
if test "$dir" != "$file"; then
test "$top_srcdir" != . && srcdir=$top_srcdir/$dir
test ! -d $dir && mkdir $dir
fi
echo creating $file
rm -f $file
echo "# Generated automatically from `echo $file|sed 's|.*/||'`.in by configure." > $file
sed -e "
$prsub
s%@CC@%$CC%g
s%@INSTALL@%$INSTALL%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@CPP@%$CPP%g
s%@ALLOCA@%$ALLOCA%g
s%@LIBS@%$LIBS%g
s%@srcdir@%$srcdir%g
s%@DEFS@%$DEFS%
" $top_srcdir/${file}.in >> $file
fi; done
exit 0
EOF
chmod +x config.status
test -n "$no_create" || ./config.status
+23
View File
@@ -0,0 +1,23 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(regex.c)
AC_PROG_CC
AC_PROG_INSTALL
dnl I'm not sure if AC_AIX and AC_DYNIX_SEQ are really necessary. The
dnl Autoconf documentation isn't specific about which BSD functions they
dnl provide.
AC_AIX
AC_DYNIX_SEQ
AC_ISC_POSIX
AC_MINIX
AC_STDC_HEADERS
AC_HAVE_HEADERS(string.h)
AC_ALLOCA
AC_CONST
AC_PREFIX(gcc)
AC_OUTPUT(Makefile doc/Makefile test/Makefile)
+4
View File
@@ -0,0 +1,4 @@
clean:
default:
all:
echo "."
+4940
View File
File diff suppressed because it is too large Load Diff
+490
View File
@@ -0,0 +1,490 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __REGEXP_LIBRARY_H__
#define __REGEXP_LIBRARY_H__
/* POSIX says that <sys/types.h> must be included (by the caller) before
<regex.h>. */
#ifdef VMS
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
should be there. */
#include <stddef.h>
#endif
/* The following bits are used to determine the regexp syntax we
recognize. The set/not-set meanings are chosen so that Emacs syntax
remains the value 0. The bits are given in alphabetical order, and
the definitions shifted by one from the previous bit; thus, when we
add or remove a bit, only one other definition need change. */
typedef unsigned reg_syntax_t;
/* If this bit is not set, then \ inside a bracket expression is literal.
If set, then such a \ quotes the following character. */
#define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
/* If this bit is not set, then + and ? are operators, and \+ and \? are
literals.
If set, then \+ and \? are operators and + and ? are literals. */
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
/* If this bit is set, then character classes are supported. They are:
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
If not set, then character classes are not supported. */
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
/* If this bit is set, then ^ and $ are always anchors (outside bracket
expressions, of course).
If this bit is not set, then it depends:
^ is an anchor if it is at the beginning of a regular
expression or after an open-group or an alternation operator;
$ is an anchor if it is at the end of a regular expression, or
before a close-group or an alternation operator.
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
POSIX draft 11.2 says that * etc. in leading positions is undefined.
We already implemented a previous draft which made those constructs
invalid, though, so we haven't changed the code back. */
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
/* If this bit is set, then special characters are always special
regardless of where they are in the pattern.
If this bit is not set, then special characters are special only in
some contexts; otherwise they are ordinary. Specifically,
* + ? and intervals are only special when not after the beginning,
open-group, or alternation operator. */
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
/* If this bit is set, then *, +, ?, and { cannot be first in an re or
immediately after an alternation or begin-group operator. */
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
/* If this bit is set, then . matches newline.
If not set, then it doesn't. */
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
/* If this bit is set, then . doesn't match NUL.
If not set, then it does. */
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
/* If this bit is set, nonmatching lists [^...] do not match newline.
If not set, they do. */
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
/* If this bit is set, either \{...\} or {...} defines an
interval, depending on RE_NO_BK_BRACES.
If not set, \{, \}, {, and } are literals. */
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
/* If this bit is set, +, ? and | aren't recognized as operators.
If not set, they are. */
#define RE_LIMITED_OPS (RE_INTERVALS << 1)
/* If this bit is set, newline is an alternation operator.
If not set, newline is literal. */
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
/* If this bit is set, then `{...}' defines an interval, and \{ and \}
are literals.
If not set, then `\{...\}' defines an interval. */
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
/* If this bit is set, (...) defines a group, and \( and \) are literals.
If not set, \(...\) defines a group, and ( and ) are literals. */
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
/* If this bit is set, then \<digit> matches <digit>.
If not set, then \<digit> is a back-reference. */
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
/* If this bit is set, then | is an alternation operator, and \| is literal.
If not set, then \| is an alternation operator, and | is literal. */
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
/* If this bit is set, then an ending range point collating higher
than the starting range point, as in [z-a], is invalid.
If not set, then when ending range point collates higher than the
starting range point, the range is ignored. */
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
/* If this bit is set, then an unmatched ) is ordinary.
If not set, then an unmatched ) is invalid. */
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
stored in the pattern buffer, so changing this does not affect
already-compiled regexps. */
extern reg_syntax_t re_syntax_options;
/* Define combinations of the above bits for the standard possibilities.
(The [[[ comments delimit what gets put into the Texinfo file, so
don't delete them!) */
/* [[[begin syntaxes]]] */
#define RE_SYNTAX_EMACS 0
#define RE_SYNTAX_AWK \
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
#define RE_SYNTAX_GREP \
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
| RE_NEWLINE_ALT)
#define RE_SYNTAX_EGREP \
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \
| RE_NO_BK_VBAR)
#define RE_SYNTAX_POSIX_EGREP \
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
/* Syntax bits common to both basic and extended POSIX regex syntax. */
#define _RE_SYNTAX_POSIX_COMMON \
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
| RE_INTERVALS | RE_NO_EMPTY_RANGES)
#define RE_SYNTAX_POSIX_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
isn't minimal, since other operators, such as \`, aren't disabled. */
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
#define RE_SYNTAX_POSIX_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
/* [[[end syntaxes]]] */
/* Maximum number of duplicates an interval can allow. Some systems
(erroneously) define this in other header files, but we want our
value, so remove any previous define. */
#ifdef RE_DUP_MAX
#undef RE_DUP_MAX
#endif
#define RE_DUP_MAX ((1 << 15) - 1)
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
/* If this bit is set, then use extended regular expression syntax.
If not set, then use basic regular expression syntax. */
#define REG_EXTENDED 1
/* If this bit is set, then ignore case when matching.
If not set, then case is significant. */
#define REG_ICASE (REG_EXTENDED << 1)
/* If this bit is set, then anchors do not match at newline
characters in the string.
If not set, then anchors do match at newlines. */
#define REG_NEWLINE (REG_ICASE << 1)
/* If this bit is set, then report only success or fail in regexec.
If not set, then returns differ between not matching and errors. */
#define REG_NOSUB (REG_NEWLINE << 1)
/* POSIX `eflags' bits (i.e., information for regexec). */
/* If this bit is set, then the beginning-of-line operator doesn't match
the beginning of the string (presumably because it's not the
beginning of a line).
If not set, then the beginning-of-line operator does match the
beginning of the string. */
#define REG_NOTBOL 1
/* Like REG_NOTBOL, except for the end-of-line. */
#define REG_NOTEOL (1 << 1)
/* If any error codes are removed, changed, or added, update the
`re_error_msg' table in regex.c. */
typedef enum
{
REG_NOERROR = 0, /* Success. */
REG_NOMATCH, /* Didn't find a match (for regexec). */
/* POSIX regcomp return error codes. (In the order listed in the
standard.) */
REG_BADPAT, /* Invalid pattern. */
REG_ECOLLATE, /* Not implemented. */
REG_ECTYPE, /* Invalid character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* Unmatched left bracket. */
REG_EPAREN, /* Parenthesis imbalance. */
REG_EBRACE, /* Unmatched \{. */
REG_BADBR, /* Invalid contents of \{\}. */
REG_ERANGE, /* Invalid range end. */
REG_ESPACE, /* Ran out of memory. */
REG_BADRPT, /* No preceding re for repetition op. */
/* Error codes we've added. */
REG_EEND, /* Premature end. */
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
} reg_errcode_t;
/* This data structure represents a compiled pattern. Before calling
the pattern compiler, the fields `buffer', `allocated', `fastmap',
`translate', and `no_sub' can be set. After the pattern has been
compiled, the `re_nsub' field is available. All other fields are
private to the regex routines. */
struct re_pattern_buffer
{
/* [[[begin pattern_buffer]]] */
/* Space that holds the compiled pattern. It is declared as
`unsigned char *' because its elements are
sometimes used as array indexes. */
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
unsigned long allocated;
/* Number of bytes actually used in `buffer'. */
unsigned long used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
/* Pointer to a fastmap, if any, otherwise zero. re_search uses
the fastmap, if there is one, to skip over impossible
starting points for matches. */
char *fastmap;
/* Either a translate table to apply to all characters before
comparing them, or zero for no translation. The translation
is applied to a pattern when it is compiled and to a string
when it is matched. */
char *translate;
/* Number of subexpressions found by the compiler. */
size_t re_nsub;
/* Zero if this pattern cannot match the empty string, one else.
Well, in truth it's used only in `re_search_2', to see
whether or not we should use the fastmap, so we don't set
this absolutely perfectly; see `re_compile_fastmap' (the
`duplicate' case). */
unsigned can_be_null : 1;
/* If REGS_UNALLOCATED, allocate space in the `regs' structure
for `max (RE_NREGS, re_nsub + 1)' groups.
If REGS_REALLOCATE, reallocate space if necessary.
If REGS_FIXED, use what's there. */
#define REGS_UNALLOCATED 0
#define REGS_REALLOCATE 1
#define REGS_FIXED 2
unsigned regs_allocated : 2;
/* Set to zero when `regex_compile' compiles a pattern; set to one
by `re_compile_fastmap' if it updates the fastmap. */
unsigned fastmap_accurate : 1;
/* If set, `re_match_2' does not return information about
subexpressions. */
unsigned no_sub : 1;
/* If set, a beginning-of-line anchor doesn't match at the
beginning of the string. */
unsigned not_bol : 1;
/* Similarly for an end-of-line anchor. */
unsigned not_eol : 1;
/* If true, an anchor at a newline matches. */
unsigned newline_anchor : 1;
/* [[[end pattern_buffer]]] */
};
typedef struct re_pattern_buffer regex_t;
/* search.c (search_buffer) in Emacs needs this one opcode value. It is
defined both in `regex.c' and here. */
#define RE_EXACTN_VALUE 1
/* Type for byte offsets within the string. POSIX mandates this. */
typedef int regoff_t;
/* This is the structure we store register match data in. See
regex.texinfo for a full description of what registers match. */
struct re_registers
{
unsigned num_regs;
regoff_t *start;
regoff_t *end;
};
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
`re_match_2' returns information about at least this many registers
the first time a `regs' structure is passed. */
#ifndef RE_NREGS
#define RE_NREGS 30
#endif
/* POSIX specification for registers. Aside from the different names than
`re_registers', POSIX uses an array of structures, instead of a
structure of arrays. */
typedef struct
{
regoff_t rm_so; /* Byte offset from string's start to substring's start. */
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
} regmatch_t;
/* Declarations for routines. */
/* To avoid duplicating every routine declaration -- once with a
prototype (if we are ANSI), and once without (if we aren't) -- we
use the following macro to declare argument types. This
unfortunately clutters up the declarations a bit, but I think it's
worth it. */
#if __STDC__
#define _RE_ARGS(args) args
#else /* not __STDC__ */
#define _RE_ARGS(args) ()
#endif /* not __STDC__ */
/* Sets the current default syntax to SYNTAX, and return the old syntax.
You can also simply assign to the `re_syntax_options' variable. */
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
/* Compile the regular expression PATTERN, with length LENGTH
and syntax given by the global `re_syntax_options', into the buffer
BUFFER. Return NULL if successful, and an error string if not. */
extern const char *re_compile_pattern
_RE_ARGS ((const char *pattern, int length,
struct re_pattern_buffer *buffer));
/* Compile a fastmap for the compiled pattern in BUFFER; used to
accelerate searches. Return 0 if successful and -2 if was an
internal error. */
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
/* Search in the string STRING (with length LENGTH) for the pattern
compiled into BUFFER. Start searching at position START, for RANGE
characters. Return the starting position of the match, -1 for no
match, or -2 for an internal error. Also return register
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
extern int re_search
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, int range, struct re_registers *regs));
/* Like `re_search', but search in the concatenation of STRING1 and
STRING2. Also, stop searching at index START + STOP. */
extern int re_search_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, int range, struct re_registers *regs, int stop));
/* Like `re_search', but return how many characters in STRING the regexp
in BUFFER matched, starting at position START. */
extern int re_match
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, struct re_registers *regs));
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
extern int re_match_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, struct re_registers *regs, int stop));
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using BUFFER and REGS will use this memory
for recording register information. STARTS and ENDS must be
allocated with malloc, and must each be at least `NUM_REGS * sizeof
(regoff_t)' bytes long.
If NUM_REGS == 0, then subsequent matches should allocate their own
register data.
Unless this function is called, the first search or match using
PATTERN_BUFFER will allocate its own register data, without
freeing the old data. */
extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
extern int re_exec _RE_ARGS ((const char *));
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
extern int regexec
_RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags));
extern size_t regerror
_RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size));
extern void regfree _RE_ARGS ((regex_t *preg));
#endif /* not __REGEXP_LIBRARY_H__ */
/*
Local variables:
make-backup-files: t
version-control: t
trim-versions-without-asking: nil
End:
*/
+3 -2
View File
@@ -1,4 +1,4 @@
# AppArmor profile for UnrealIRCd 5
# AppArmor profile for UnrealIRCd 4.0.16+
#
# Note that you may still see some DENIED warnings in logs with
# operation="chmod". These are harmless and can be safely ignored.
@@ -17,7 +17,8 @@
@{HOME}/unrealircd/conf/ r,
@{HOME}/unrealircd/conf/** r,
@{HOME}/unrealircd/data/** rw,
@{HOME}/unrealircd/data/ircd.tune rw,
@{HOME}/unrealircd/data/unrealircd.pid rw,
@{HOME}/unrealircd/lib/*.so* mr,
@{HOME}/unrealircd/logs/* rw,
@{HOME}/unrealircd/modules/**.so r,
Submodule extras/tests/ircfly added at 3a0301d13f
@@ -1,14 +1,20 @@
Target: 127.0.0.1:5901
Target: 127.0.0.1:5900
prio ciphersuite protocols pfs curves
1 ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
2 ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
3 ECDHE-ECDSA-AES256-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
4 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
5 ECDHE-ECDSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
6 ECDHE-ECDSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
2 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
3 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
4 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
5 ECDHE-RSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
6 ECDHE-RSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
7 AES256-GCM-SHA384 TLSv1.2 None None
8 AES128-GCM-SHA256 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES128-SHA256 TLSv1.2 None None
11 AES256-SHA TLSv1,TLSv1.1,TLSv1.2 None None
12 AES128-SHA TLSv1,TLSv1.1,TLSv1.2 None None
Certificate: untrusted, 384 bits, ecdsa-with-SHA256 signature
Certificate: untrusted, 4096 bits, sha256WithRSAEncryption signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
@@ -0,0 +1,33 @@
Target: 127.0.0.1:5900
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
2 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
3 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
4 ECDHE-RSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
5 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
6 ECDHE-RSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1,prime256v1
7 AES256-GCM-SHA384 TLSv1.2 None None
8 AES128-GCM-SHA256 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES128-SHA256 TLSv1.2 None None
11 AES256-SHA TLSv1,TLSv1.1,TLSv1.2 None None
12 AES128-SHA TLSv1,TLSv1.1,TLSv1.2 None None
Certificate: untrusted, 4096 bits, sha256WithRSAEncryption signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
Cipher ordering: server
Curves ordering: server - fallback: no
Server supports secure renegotiation
Server supported compression methods: NONE
TLS Tolerance: yes
Intolerance to:
SSL 3.254 : absent
TLS 1.0 : absent
TLS 1.1 : absent
TLS 1.2 : absent
TLS 1.3 : absent
TLS 1.4 : absent
@@ -1,27 +0,0 @@
Target: 127.0.0.1:5901
prio ciphersuite protocols pfs curves
1 ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-256,256bits prime256v1
2 ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-256,256bits prime256v1
3 ECDHE-ECDSA-AES256-SHA384 TLSv1.2 ECDH,P-256,256bits prime256v1
4 ECDHE-ECDSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-256,256bits prime256v1
5 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 ECDH,P-256,256bits prime256v1
6 ECDHE-ECDSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-256,256bits prime256v1
Certificate: untrusted, 384 bits, ecdsa-with-SHA256 signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
Cipher ordering: server
Curves ordering: server - fallback: no
Server supports secure renegotiation
Server supported compression methods: NONE
TLS Tolerance: yes
Intolerance to:
SSL 3.254 : absent
TLS 1.0 : absent
TLS 1.1 : absent
TLS 1.2 : absent
TLS 1.3 : absent
TLS 1.4 : absent
@@ -1,27 +0,0 @@
Target: 127.0.0.1:5901
prio ciphersuite protocols pfs curves
1 ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
2 ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
3 ECDHE-ECDSA-AES256-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
4 ECDHE-ECDSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
5 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
6 ECDHE-ECDSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
Certificate: untrusted, 384 bits, ecdsa-with-SHA256 signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
Cipher ordering: server
Curves ordering: server - fallback: no
Server supports secure renegotiation
Server supported compression methods: NONE
TLS Tolerance: yes
Intolerance to:
SSL 3.254 : absent
TLS 1.0 : absent
TLS 1.1 : absent
TLS 1.2 : absent
TLS 1.3 : absent
TLS 1.4 : absent
@@ -0,0 +1,33 @@
Target: 127.0.0.1:5900
prio ciphersuite protocols pfs curves
1 ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
2 ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
3 ECDHE-RSA-AES256-SHA384 TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
4 ECDHE-RSA-AES256-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
5 ECDHE-RSA-AES128-SHA256 TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
6 ECDHE-RSA-AES128-SHA TLSv1,TLSv1.1,TLSv1.2 ECDH,P-256,256bits prime256v1,secp521r1,brainpoolP512r1,brainpoolP384r1,secp384r1,brainpoolP256r1,secp256k1,sect571r1,sect571k1,sect409k1,sect409r1,sect283k1,sect283r1
7 AES256-GCM-SHA384 TLSv1.2 None None
8 AES128-GCM-SHA256 TLSv1.2 None None
9 AES256-SHA256 TLSv1.2 None None
10 AES128-SHA256 TLSv1.2 None None
11 AES256-SHA TLSv1,TLSv1.1,TLSv1.2 None None
12 AES128-SHA TLSv1,TLSv1.1,TLSv1.2 None None
Certificate: untrusted, 4096 bits, sha256WithRSAEncryption signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
Cipher ordering: server
Curves ordering: server - fallback: no
Server supports secure renegotiation
Server supported compression methods: NONE
TLS Tolerance: yes
Intolerance to:
SSL 3.254 : absent
TLS 1.0 : absent
TLS 1.1 : absent
TLS 1.2 : absent
TLS 1.3 : absent
TLS 1.4 : absent
@@ -1,27 +0,0 @@
Target: 127.0.0.1:5901
prio ciphersuite protocols pfs curves
1 ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
2 ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
3 ECDHE-ECDSA-AES256-SHA384 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
4 ECDHE-ECDSA-AES128-SHA256 TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
5 ECDHE-ECDSA-AES256-SHA TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
6 ECDHE-ECDSA-AES128-SHA TLSv1.2 ECDH,P-521,521bits secp521r1,secp384r1
Certificate: untrusted, 384 bits, ecdsa-with-SHA256 signature
TLS ticket lifetime hint: None
NPN protocols: None
OCSP stapling: not supported
Cipher ordering: server
Curves ordering: server - fallback: no
Server supports secure renegotiation
Server supported compression methods: NONE
TLS Tolerance: yes
Intolerance to:
SSL 3.254 : absent
TLS 1.0 : PRESENT
TLS 1.1 : PRESENT
TLS 1.2 : absent
TLS 1.3 : absent
TLS 1.4 : absent
+5 -14
View File
@@ -9,15 +9,9 @@ function fail()
CIPHERSCAN="cipherscan"
OPENSSL="openssl"
if [ -x ~/cipherscan ]; then
CIPHERSCAN="$HOME/cipherscan/cipherscan"
OPENSSL="$HOME/cipherscan/openssl"
elif [ -x /home/travis/build/unrealircd/unrealircd/cipherscan/cipherscan ]; then
if [ -x /home/travis/build/unrealircd/unrealircd/cipherscan/cipherscan ]; then
CIPHERSCAN="/home/travis/build/unrealircd/unrealircd/cipherscan/cipherscan"
OPENSSL="/home/travis/build/unrealircd/unrealircd/cipherscan/openssl"
elif [ -x ../../../cipherscan/ ]; then
CIPHERSCAN="`readlink -f ../../../cipherscan/cipherscan`"
OPENSSL="`readlink -f ../../../cipherscan/openssl`"
fi
$CIPHERSCAN --help >/dev/null || exit 1
@@ -27,16 +21,13 @@ $CIPHERSCAN --help >/dev/null || exit 1
# It compares the output against a reference .txt file and alarms us if there
# are any changes. These changes may not always be harmful, but at least we
# will get warned on any possible changes.
$CIPHERSCAN --no-colors 127.0.0.1:5901|grep -vF '.....' >cipherscan.test.txt
$CIPHERSCAN --no-colors 127.0.0.1:5900|grep -vF '.....' >cipherscan.test.txt
# Now check if profile matches, if so.. everything is ok.
# We have 1 or more baseline profiles
# And you can optionally add profile-specific, eg openssl-102.txt
# Yeah that was a great idea but maintaining that is a bit of a hassle.
# TODO: reintroduce it though, see below.
##for f in cipherscan_profiles/baseline*txt cipherscan_profiles/$BUILDCONFIG.txt
FAILED=1
for f in cipherscan_profiles/*.txt
for f in cipherscan_profiles/baseline*txt cipherscan_profiles/$BUILDCONFIG.txt
do
diff -uab $f cipherscan.test.txt 1>/dev/null 2>&1
if [ "$?" -eq 0 ]; then
@@ -73,7 +64,7 @@ fi
for cipher in 3DES RC4
do
echo "Testing cipher $cipher (MUST FAIL!).."
(echo QUIT|$OPENSSL s_client -connect 127.0.0.1:5901 -cipher $cipher) &&
(echo QUIT|$OPENSSL s_client -connect 127.0.0.1:5900 -cipher $cipher) &&
fail "UnrealIRCd allowed us to connect with cipher $cipher, BAD!"
done
@@ -81,7 +72,7 @@ done
for protocol in ssl2 ssl3
do
echo "Testing protocol $protocol (MUST FAIL!).."
(echo QUIT|$OPENSSL s_client -connect 127.0.0.1:5901 -$protocol) &&
(echo QUIT|$OPENSSL s_client -connect 127.0.0.1:5900 -$protocol) &&
fail "UnrealIRCd allowed us to connect with protocol $protocol, BAD!"
done
BIN
View File
Binary file not shown.
-123
View File
@@ -1,123 +0,0 @@
#!/usr/bin/env bash
#
# This is stage 1 of the UnrealIRCd upgrade script
# It downloads stage 2 online, verifies the integrity, and then
# passes control to it to proceed with the rest of the upgrade.
#
# This is a bash script, so it is less cross-platform than the
# rest of UnrealIRCd. We also mostly assume Linux/FreeBSD here.
#
BUILDDIR="@BUILDDIR@"
SCRIPTDIR="@SCRIPTDIR@"
DOCDIR="@DOCDIR@"
TMPDIR="@TMPDIR@"
function warn()
{
echo
echo "WARNING: $*"
echo "This is for your information only. It is possible to continue."
echo "Press ENTER to continue, or CTRL+C to abort."
echo "If in doubt, see https://www.unrealircd.org/docs/FAQ#upgrade-verify-failed"
read xyz
}
function bigwarn()
{
echo
echo "[!!!] WARNING: $*"
echo "Check https://www.unrealircd.org/docs/FAQ#upgrade-verify-failed !"
echo "Type 'IGNORE' in uppercase to continue if you think it is safe."
echo "Type anything else to abort."
read answer
if [ "$answer" != "IGNORE" ]; then
exit 1
fi
}
function fail()
{
echo
echo "ERROR: $*"
echo "NOTE: Your existing UnrealIRCd is backed up to $BACKUPDIR"
echo "Perhaps check out the FAQ for common problems:"
echo "https://www.unrealircd.org/docs/FAQ#upgrade-failed"
echo "Otherwise, follow the manual upgrade procedure from"
echo "https://www.unrealircd.org/docs/Upgrading"
exit 1
}
if [ ! -d "$BUILDDIR" ]; then
echo "UnrealIRCd source not found at $BUILDDIR."
echo "Sorry, then it is not possible to know your existing settings and thus we cannot upgrade."
echo "Follow the manual upgrade procedure from https://www.unrealircd.org/docs/Upgrading"
exit 1
fi
FETCHER="wget"
if ! wget --help 1>/dev/null 2>&1; then
# fetch is a pain: it always returns 1 (false) even for usage info and has no --version
fetch 1>/dev/null 2>&1
if [ "$?" -ne 1 ]; then
echo "The tool 'wget' is missing, which is used by this script."
echo "On Linux consider running 'sudo apt install wget' or 'sudo yum install wget'"
echo "and run this script again."
echo "Or, don't use this script and follow the manual upgrade procedure from"
echo "https://www.unrealircd.org/docs/Upgrading"
exit 1
fi
FETCHER="fetch"
fi
# Weird way to get version, but ok.
cd "$BUILDDIR" || fail "Could not cd to builddir"
UNREALVER="`./configure --version|head -n1|awk '{ print $3 }'`"
cd .. || fail "Could not cd back"
# Set and export all variables with settings
export UNREALVER BUILDDIR SCRIPTDIR DOCDIR TMPDIR FETCHER
# Download the install script
if [ "$FETCHER" = "wget" ]; then
wget -O unrealircd-upgrade-script.stage2 "https://www.unrealircd.org/downloads/unrealircd-upgrade-script.stage2?from=$UNREALVER" || fail "Could not download online installer"
wget -O unrealircd-upgrade-script.stage2.asc "https://www.unrealircd.org/downloads/unrealircd-upgrade-script.stage2.asc" || fail "Could not download online installer signature"
else
fetch -o unrealircd-upgrade-script.stage2 "https://www.unrealircd.org/downloads/unrealircd-upgrade-script.stage2?from=$UNREALVER" || fail "Could not download online installer"
fetch -o unrealircd-upgrade-script.stage2.asc "https://www.unrealircd.org/downloads/unrealircd-upgrade-script.stage2.asc" || fail "Could not download online installer signature"
fi
# GPG verification - if available
if gpg --version 1>/dev/null 2>&1; then
if [ -f "$DOCDIR/KEYS" ]; then
gpg --import "$DOCDIR/KEYS"
echo
if gpg --batch --exit-on-status-write-error --verify unrealircd-upgrade-script.stage2.asc unrealircd-upgrade-script.stage2; then
echo "GPG: Verification succeeded. Download is genuine."
export NOGPG=0
else
bigwarn "GPG/PGP verification failed. This could be a security issue."
export NOGPG=1
fi
else
warn "Unable to check download integrity with GPG/PGP. Missing $DOCDIR/KEYS file."
export NOGPG=1
fi
else
echo "WARNING: The GnuPG (GPG/PGP) verification tool 'gpg' is not installed."
if [[ "$OSTYPE" == "freebsd"* ]] ; then
echo "Consider running 'sudo pkg install gnupg'"
else
echo "Consider running 'sudo apt install gpg' or 'yum install gnupg2'"
fi
echo "When 'gpg' is installed then the UnrealIRCd upgrade script can"
echo "verify the digital signature of the download file."
warn "Unable to check download integrity"
export NOGPG=1
fi
chmod +x unrealircd-upgrade-script.stage2
./unrealircd-upgrade-script.stage2 $*
SAVERET="$?"
rm -f unrealircd-upgrade-script.stage2 unrealircd-upgrade-script.stage2
exit $SAVERET
+40
View File
@@ -0,0 +1,40 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/auth.h
* Copyright (C) 2001 Carsten V. Munk (stskeeps@tspre.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
typedef struct {
char *data;
short type;
} anAuthStruct;
#define AUTHTYPE_PLAINTEXT 0
#define AUTHTYPE_UNIXCRYPT 1
#define AUTHTYPE_MD5 2
#define AUTHTYPE_SHA1 3
#define AUTHTYPE_SSL_CLIENTCERT 4
#define AUTHTYPE_RIPEMD160 5
#define AUTHTYPE_SSL_CLIENTCERTFP 6
#define AUTHTYPE_BCRYPT 7
#define AUTHTYPE_SPKIFP 8
#define AUTHTYPE_ARGON2 9
#ifndef HAVE_CRYPT
#define crypt DES_crypt
#endif
+12 -1
View File
@@ -26,7 +26,18 @@
#define MODEBUFLEN 200
#define ChannelExists(n) (find_channel(n, NULL))
#define CANNOT_SEND_MODERATED 1
#define CANNOT_SEND_NOPRIVMSGS 2
#define CANNOT_SEND_BAN 4
#define CANNOT_SEND_MODREG 6
#define CANNOT_SEND_SWEAR 7 /* This isn't actually used here */
#define CANNOT_SEND_NONOTICE 8
#define NullChn ((aChannel *)0)
#define ChannelExists(n) (find_channel(n, NullChn) != NullChn)
#define IsULine(sptr) (sptr->flags & FLAGS_ULINE)
/* NOTE: Timestamps will be added to MODE-commands, so never make
* RESYNCMODES and MODEPARAMS higher than MAXPARA-3. DALnet servers
+63
View File
@@ -0,0 +1,63 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/class.h
* Copyright (C) 1990 Darren Reed
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
#ifndef __class_include__
#define __class_include__
typedef struct Class {
int class;
int conFreq;
int pingFreq;
int maxLinks;
long maxSendq;
int links;
struct Class *next;
} aClass;
#define Class(x) ((x)->class)
#define ConFreq(x) ((x)->conFreq)
#define PingFreq(x) ((x)->pingFreq)
#define MaxLinks(x) ((x)->maxLinks)
#define MaxSendq(x) ((x)->maxSendq)
#define Links(x) ((x)->links)
#define ConfLinks(x) (Class(x)->links)
#define ConfMaxLinks(x) (Class(x)->maxLinks)
#define ConfClass(x) (Class(x)->class)
#define ConfConFreq(x) (Class(x)->conFreq)
#define ConfPingFreq(x) (Class(x)->pingFreq)
#define ConfSendq(x) (Class(x)->maxSendq)
#define FirstClass() classes
#define NextClass(x) ((x)->next)
extern aClass *classes;
extern aClass *find_class(int);
extern int get_conf_class(aConfItem *);
extern int get_client_class(aClient *);
extern int get_client_ping(aClient *);
extern int get_con_freq(aClass *);
extern void add_class(int, int, int, int, long);
extern void check_class(void);
extern void initclass(void);
#endif /* __class_include__ */
+80 -12
View File
@@ -25,16 +25,19 @@
#include <time.h>
#ifdef _WIN32
#include <malloc.h>
#define NTDDI_VERSION 0x0501
#define _WIN32_WINNT 0x0501
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <io.h>
#include <direct.h>
#endif
#include "types.h"
#include "config.h"
#ifndef _WIN32
#ifdef PARAMH
#include <sys/param.h>
#endif
#ifndef _WIN32
#include <stdbool.h>
#else
typedef int bool;
@@ -57,12 +60,6 @@ typedef int bool;
#define BMAGIC 0x4675636B596F754661736369737473
#ifdef _WIN32
#define DEADBEEF_ADDR 0xDEADBEEFDEADBEEF
#else
#define DEADBEEF_ADDR 0xDEADBEEF
#endif
#define BASE_VERSION "UnrealIRCd"
#ifndef _WIN32
#define FDwrite(x,y,z) write(x, y, z)
@@ -88,6 +85,19 @@ typedef int bool;
#define UNSURE (2)
#endif
#if 0
#ifndef MALLOCH
char *malloc(), *calloc();
void free();
#else
#include MALLOCH
#endif
#endif
#define TS time_t
extern int match(const char *, const char *);
#define mycmp(a,b) \
( (toupper(a[0])!=toupper(b[0])) || smycmp((a)+1,(b)+1) )
extern int smycmp(const char *, const char *);
@@ -95,13 +105,34 @@ extern int smycmp(const char *, const char *);
extern int myncmp(const char *, const char *, int);
#endif
#ifdef NEED_STRTOK
extern char *strtok2(char *, char *);
#endif
#ifdef NEED_STRTOKEN
extern char *strtoken(char **, char *, char *);
#endif
#ifdef NEED_INET_ADDR
extern unsigned long inet_addr(char *);
#endif
#if defined(NEED_INET_NTOA) || defined(NEED_INET_NETOF) && !defined(_WIN32)
#include <netinet/in.h>
#endif
#ifdef NEED_INET_NTOA
extern char *inet_ntoa(struct in_addr);
#endif
#ifndef HAVE_INET_NTOP
const char *inet_ntop(int, const void *, char *, size_t);
#endif
#ifndef HAVE_INET_PTON
int inet_pton(int af, const char *src, void *dst);
#endif
extern MODVAR int global_count, max_global_count;
extern char *myctime(time_t);
#ifdef _WIN32
extern int gettimeofday(struct timeval *tp, void *tzp);
#endif
extern char *strtoken(char **, char *, char *);
#define PRECISE_CHECK
@@ -113,10 +144,19 @@ extern int gettimeofday(struct timeval *tp, void *tzp);
#endif
extern MODVAR u_char tolowertab[], touppertab[];
#if defined(NICK_GB2312) || defined(NICK_GBK) || defined(NICK_GBK_JAP)
#define USE_LOCALE
#include <ctype.h>
#endif
#ifndef USE_LOCALE
#undef tolower
#define tolower(c) (tolowertab[(u_char)(c)])
#undef toupper
#define toupper(c) (touppertab[(u_char)(c)])
#undef isalpha
#undef isdigit
#undef isxdigit
@@ -129,6 +169,7 @@ extern MODVAR u_char tolowertab[], touppertab[];
#undef isupper
#undef isspace
#undef iscntrl
#endif
extern MODVAR unsigned char char_atribs[];
#define PRINT 1
@@ -148,6 +189,7 @@ extern MODVAR unsigned char char_atribs[];
#endif
#define isallowed(c) (char_atribs[(u_char)(c)]&ALLOW)
#ifndef USE_LOCALE
#define iscntrl(c) (char_atribs[(u_char)(c)]&CNTRL)
#define isalpha(c) (char_atribs[(u_char)(c)]&ALPHA)
#define isspace(c) (char_atribs[(u_char)(c)]&SPACE)
@@ -161,8 +203,34 @@ extern MODVAR unsigned char char_atribs[];
#define isascii(c) ((u_char)(c) >= 0 && (u_char)(c) <= 0x7f)
#define isgraph(c) ((char_atribs[(u_char)(c)]&PRINT) && ((u_char)(c) != 0x32))
#define ispunct(c) (!(char_atribs[(u_char)(c)]&(CNTRL|ALPHA|DIGIT)))
#endif
#define iswseperator(c) (!isalnum(c) && !((u_char)c >= 128))
#ifndef MALLOCD
#define MyFree free
#define MyMalloc malloc
#define MyRealloc realloc
#else
#define MyFree(x) do {debug(DEBUG_MALLOC, "%s:%i: free %02x", __FILE__, __LINE__, x); free(x); } while(0)
#define MyMalloc(x) StsMalloc(x, __FILE__, __LINE__)
#define MyRealloc realloc
static char *StsMalloc(size_t size, char *file, long line)
{
void *x;
x = malloc(size);
debug(DEBUG_MALLOC, "%s:%i: malloc %02x", file, line, x);
return x;
}
#endif
#define safestrdup(x,y) do { if (x) MyFree(x); if (!(y)) x = NULL; else x = strdup(y); } while(0)
#define safestrldup(x,y,sz) do { if (x) MyFree(x); if (!y) x = NULL; else x = strldup(y,sz); } while(0)
#define safefree(x) do { if (x) MyFree(x); x = NULL; } while(0)
extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
/*
* Protocol support text. DO NO CHANGE THIS unless you know what
* you are doing.
@@ -206,7 +274,7 @@ extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
extern MODVAR time_t now;
extern MODVAR TS now;
#ifndef _WIN32
#if defined(__STDC__)
+218 -32
View File
@@ -68,9 +68,38 @@
# define MODULE_SUFFIX ".dll"
#endif
/*
* If channel mode is +z, only send to secure links & people
*
*/
#undef SECURECHANMSGSONLYGOTOSECURE
/* If you want to support chinese and/or japanese nicks */
#undef NICK_GB2312
#undef NICK_GBK
#undef NICK_GBK_JAP
/* Permit remote /rehash */
#define REMOTE_REHASH
/*
* Special remote include caching, see this Changelog item:
* - Added special caching of remote includes. When a remote include fails to
* load (for example when the webserver is down), then the most recent
* version of that remote include will be used, and the ircd will still boot
* and be able to rehash. Even though this is quite a simple feature, it
* can make a key difference when deciding to roll out remote includes on
* your network. Previously, servers would be unable to boot or rehash when
* the webserver was down, which would be a big problem (often unacceptable).
* The latest version of fetched urls are cached in the cache/ directory as
* cache/<md5 hash of url>.
* Obviously, if there's no 'latest version' and an url fails, the ircd will
* still not be able to boot. This would be the case if you added or changed
* the path of a remote include and it's trying to fetch it for the first time.
* There usually is no reason to disable this.
*/
#define REMOTEINC_SPECIALCACHE
/*
** Freelinks garbage collector -Stskeeps
**
@@ -83,6 +112,9 @@
#define HOW_MANY_FREELINKS_ALLOWED 200 /* default: 200 */
/* NOTE: On some systems, valloc() causes many problems. */
#undef VALLOC /* Define this if you have valloc(3) */
/*
* read/write are restarted after signals defining this 1, gets
* siginterrupt call compiled, which attempts to remove this
@@ -92,6 +124,19 @@
#define RESTARTING_SYSTEMCALLS
#endif
/*
* If your host supports varargs and has vsprintf(), vprintf() and vscanf()
* C calls in its library, then you can define USE_VARARGS to use varargs
* instead of imitation variable arg passing.
*/
#define USE_VARARGS
/* NOTE: with current server code, varargs doesn't survive because it can't
* be used in a chain of 3 or more funtions which all have a variable
* number of params. If anyone has a solution to this, please notify
* the maintainer.
*/
/* DEBUGMODE: This should only be used when tracing a problem. It creates
* an insane amount of log output which can be very useful for debugging.
* You should *NEVER* enable this setting on production servers.
@@ -114,6 +159,15 @@
#define BPATH CONFDIR"/bot.motd" /* Bot MOTD */
#define IRCDTUNE PERMDATADIR"/ircd.tune" /* tuning .. */
/* SHOW_INVISIBLE_LUSERS
*
* As defined this will show the correct invisible count for anyone who does
* LUSERS on your server. On a large net this doesnt mean much, but on a
* small net it might be an advantage to undefine it.
* (This will get defined for you if you're using userload (stats w). -mlv)
*/
#define SHOW_INVISIBLE_LUSERS
/** FAKELAG_CONFIGURABLE makes it possible to make certain classes exempted
* from 'fake lag' (that is, the artificial delay that is added by the ircd
* to prevent flooding, which causes the messages/commands of the user to
@@ -128,9 +182,29 @@
*/
//#undef FAKELAG_CONFIGURABLE
/* The default value for class::sendq */
#define DEFAULT_SENDQ 3000000
/* The default value for class::recvq */
/*
* Max amount of internal send buffering when socket is stuck (bytes)
*/
#ifndef MAXSENDQLENGTH
#define MAXSENDQLENGTH 3000000
#endif
/*
* BUFFERPOOL is the maximum size of the total of all sendq's.
* Recommended value is 2 * MAXSENDQLENGTH, for hubs, 5 *.
*/
#ifndef BUFFERPOOL
#define BUFFERPOOL (18 * MAXSENDQLENGTH)
#endif
/*
* DEFAULT_RECVQ
*
* this controls the number of bytes the server will allow a client to
* send to the server without processing before disconnecting the client for
* flooding it. Values greater than 8000 make no difference to the server.
* NOTE: you can now also set this in class::recvq, if that's not present,
* this default value will be used.
*/
#define DEFAULT_RECVQ 8000
/* You can define the nickname of NickServ here (usually "NickServ").
@@ -145,6 +219,12 @@
/* You shouldn't change anything below this line, unless absolutely needed. */
/*
* Port where ircd resides. NOTE: This *MUST* be greater than 1024 if you
* plan to run ircd under any other uid than root.
*/
#define PORTNUM 6667 /* 6667 is default */
/*
* Maximum number of network connections your server will allow.
* On *NIX this is configured via ./Config so don't set it here.
@@ -162,11 +242,11 @@
(defined(HAVE_POLL) || defined(HAVE_EPOLL) || defined(HAVE_KQUEUE))
/* Have poll/epoll/kqueue and either no --with-maxconnections or
* --with-maxconnections=0, either of which indicates 'automatic' mode.
* At the time of writing we will try a limit of 16384.
* At the time of writing we will try a limit of 8192.
* It will automatically be lowered at boottime if we can only use
* 4096, 2048 or 1024. No problem.
*/
#define MAXCONNECTIONS 16384
#define MAXCONNECTIONS 8192
#elif defined(MAXCONNECTIONS_REQUEST) && (MAXCONNECTIONS_REQUEST >= 1)
/* --with-maxconnections=something */
#define MAXCONNECTIONS MAXCONNECTIONS_REQUEST
@@ -211,17 +291,20 @@
* This means any other events and such may be delayed up to this value
* when there is no socket data waiting for us (no clients sending anything).
* Was 2000ms in 3.2.x, 1000ms for versions below 3.4-alpha4.
* 500ms in UnrealIRCd 4 (?)
* 250ms in UnrealIRCd 5.
*/
#define SOCKETLOOP_MAX_DELAY 250
#define SOCKETLOOP_MAX_DELAY 500
/*
* Max time from the nickname change that still causes KILL
* automaticly to switch for the current nick of that user. (seconds)
*/
#define KILLCHASETIMELIMIT 30
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
/*
* Forces Unreal to use compressed IPv6 addresses rather than expanding them
*/
#undef IPV6_COMPRESSED
/* Detect slow spamfilters? This requires a little more cpu time when processing
* any spamfilter (like on text/connect/..) but will save you from slowing down
* your IRCd to a near-halt (well, in most cases.. there are still cases like when
@@ -233,17 +316,13 @@
#endif
/* Maximum number of ModData objects that may be attached to an object */
/* UnrealIRCd 4.0.0 - 4.0.13: 8, 8, 4, 4
* UnrealIRCd 4.0.14+ : 12, 8, 4, 4
* UnrealIRCd 5.0.0 : 12, 8, 8, 4, 4, 500, 500
/* UnrealIRCd 4.0.0 - 4.0.13: 8, 8, 4, 4
* UnrealIRCd 4.0.14+ : 12, 8, 4, 4
*/
#define MODDATA_MAX_CLIENT 12
#define MODDATA_MAX_LOCAL_CLIENT 8
#define MODDATA_MAX_CHANNEL 8
#define MODDATA_MAX_MEMBER 4
#define MODDATA_MAX_MEMBERSHIP 4
#define MODDATA_MAX_LOCAL_VARIABLE 500
#define MODDATA_MAX_GLOBAL_VARIABLE 500
#define MODDATA_MAX_CLIENT 12
#define MODDATA_MAX_CHANNEL 8
#define MODDATA_MAX_MEMBER 4
#define MODDATA_MAX_MEMBERSHIP 4
/* If EXPERIMENTAL is #define'd then all users will receive a notice about
* this when they connect, along with a pointer to bugs.unrealircd.org where
@@ -279,14 +358,92 @@
#define CONFIGFILE CPATH
#define IRCD_PIDFILE PIDFILE
#ifdef DEBUGMODE
#define Debug(x) debug x
#define LOGFILE LPATH
#else
#define Debug(x) ;
#define LOGFILE "/dev/null"
#ifdef __osf__
#define OSF
/* OSF defines BSD to be its version of BSD */
#undef BSD
#include <sys/param.h>
#ifndef BSD
#define BSD
#endif
#endif
#ifdef ultrix
#define ULTRIX
#endif
#ifdef __hpux
#define HPUX
#endif
#ifdef sgi
#define SGI
#endif
#ifndef KLINE_TEMP
#define KLINE_PERM 0
#define KLINE_TEMP 1
#define KLINE_AKILL 2
#define KLINE_EXCEPT 3
#endif
#ifdef DEBUGMODE
#ifndef _WIN32
extern void debug(int, char *, ...);
#define Debug(x) debug x
#else
extern void debug(int, char *, ...);
#define Debug(x) debug x
#endif
#define LOGFILE LPATH
#else
#define Debug(x) ;
#if VMS
#define LOGFILE "NLA0:"
#else
#define LOGFILE "/dev/null"
#endif
#endif
#if defined(mips) || defined(PCS)
#undef SYSV
#endif
#ifdef MIPS
#undef BSD
#define BSD 1 /* mips only works in bsd43 environment */
#endif
#ifdef BSD_RELIABLE_SIGNALS
# if defined(SYSV_UNRELIABLE_SIGNALS) || defined(POSIX_SIGNALS)
error You stuffed up config.h signals
#define use only one.
# endif
#define HAVE_RELIABLE_SIGNALS
#endif
#ifdef SYSV_UNRELIABLE_SIGNALS
# ifdef POSIX_SIGNALS
error You stuffed up config.h signals
#define use only one.
# endif
#undef HAVE_RELIABLE_SIGNALS
#endif
#ifdef POSIX_SIGNALS
#define HAVE_RELIABLE_SIGNALS
#endif
#ifdef HAVECURSES
# define DOCURSES
#else
# undef DOCURSES
#endif
#ifdef HAVETERMCAP
# define DOTERMCAP
#else
# undef DOTERMCAP
#endif
# define stricmp strcasecmp
# define strnicmp strncasecmp
#if defined(DEFAULT_RECVQ)
# if (DEFAULT_RECVQ < 512)
error DEFAULT_RECVQ needs redefining.
@@ -297,6 +454,42 @@
#if (NICKNAMEHISTORYLENGTH < 100)
# define NICKNAMEHISTORYLENGTH 100
#endif
/*
* Some ugliness for AIX platforms.
*/
#ifdef AIX
# include <sys/machine.h>
# if BYTE_ORDER == BIG_ENDIAN
# define BIT_ZERO_ON_LEFT
# endif
# if BYTE_ORDER == LITTLE_ENDIAN
# define BIT_ZERO_ON_RIGHT
# endif
/*
* this one is used later in sys/types.h (or so i believe). -avalon
*/
# define BSD_INCLUDES
#endif
/*
* This is just to make Solaris porting easier -- codemastr
*/
#if defined(SOL20) || defined(SOL25) || defined(SOL26) || defined(SOL27)
#define _SOLARIS
#endif
#ifdef NEED_BCMP
#define bcmp memcmp
#endif
#ifdef NEED_BCOPY
#define bcopy(a,b,c) memcpy(b,a,c)
#endif
#ifdef NEED_BZERO
#define bzero(a,b) memset(a,0,b)
#endif
#if defined(AIX) && defined(_XOPEN_SOURCE_EXTENDED) && _XOPEN_SOURCE_EXTENDED
# define SOCK_LEN_TYPE size_t
#else
# define SOCK_LEN_TYPE int
#endif
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \
@@ -316,12 +509,5 @@
id(void) { __asm__(""); }
#endif
#ifndef __has_feature
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif
#ifndef __has_extension
#define __has_extension __has_feature // Compatibility with pre-3.0 compilers.
#endif
#endif /* __config_include__ */
+1 -1
View File
@@ -45,7 +45,7 @@
*/
typedef struct dbuf {
u_int length; /* Current number of bytes stored */
// u_int offset; /* Offset to the first byte */
u_int offset; /* Offset to the first byte */
struct list_head dbuf_list;
} dbuf;
+76 -60
View File
@@ -1,7 +1,6 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/dynconf.h
* Copyright (C) 1999-2003 Carsten Munk
* Copyright (C) 2003-2021 Bram Matthys
* Copyright (C) 1999 Carsten Munk
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,18 +21,12 @@
#define DYNCONF_H
/* config level */
#define DYNCONF_CONF_VERSION "1.5"
#define DYNCONF_NETWORK_VERSION "2.2"
typedef struct FloodSettings FloodSettings;
struct FloodSettings {
FloodSettings *prev, *next;
char *name;
int limit[MAXFLOODOPTIONS];
long period[MAXFLOODOPTIONS];
};
typedef struct NetworkConfiguration NetworkConfiguration;
struct NetworkConfiguration {
typedef struct zNetwork aNetwork;
struct zNetwork {
unsigned x_inah:1;
char *x_ircnetwork;
char *x_ircnet005;
@@ -54,22 +47,13 @@ struct ChMode {
char *extparams[EXTCMODETABLESZ];
};
typedef struct OperStat {
struct OperStat *prev, *next;
typedef struct _OperStat {
struct _OperStat *prev, *next;
char *flag;
} OperStat;
typedef enum BroadcastChannelMessagesOption { BROADCAST_CHANNEL_MESSAGES_AUTO=1, BROADCAST_CHANNEL_MESSAGES_ALWAYS=2, BROADCAST_CHANNEL_MESSAGES_NEVER=3 } BroadcastChannelMessagesOption;
typedef enum AllowedChannelChars { ALLOWED_CHANNELCHARS_ANY=1, ALLOWED_CHANNELCHARS_ASCII=2, ALLOWED_CHANNELCHARS_UTF8=3 } AllowedChannelChars;
typedef enum BanTarget { BAN_TARGET_IP=1, BAN_TARGET_USERIP=2, BAN_TARGET_HOST=3, BAN_TARGET_USERHOST=4, BAN_TARGET_ACCOUNT=5, BAN_TARGET_CERTFP=6 } BanTarget;
typedef enum HideIdleTimePolicy { HIDE_IDLE_TIME_NEVER=1, HIDE_IDLE_TIME_ALWAYS=2, HIDE_IDLE_TIME_USERMODE=3, HIDE_IDLE_TIME_OPER_USERMODE=4 } HideIdleTimePolicy;
/** The set { } block configuration */
typedef struct Configuration Configuration;
struct Configuration {
typedef struct zConfiguration aConfiguration;
struct zConfiguration {
unsigned som:1;
unsigned hide_ulines:1;
unsigned flat_map:1;
@@ -77,7 +61,7 @@ struct Configuration {
unsigned ident_check:1;
unsigned fail_oper_warn:1;
unsigned show_connect_info:1;
unsigned no_connect_tls_info:1;
unsigned no_connect_ssl_info:1;
unsigned dont_resolve:1;
unsigned use_ban_version:1;
unsigned mkpasswd_for_everyone:1;
@@ -96,22 +80,22 @@ struct Configuration {
long conn_modes;
long oper_modes;
char *oper_snomask;
char *user_snomask;
char *auto_join_chans;
char *oper_auto_join_chans;
char *allow_user_stats;
OperStat *allow_user_stats_ext;
int ping_warning;
char *oper_only_stats;
OperStat *oper_only_stats_ext;
int maxchannelsperuser;
int maxdccallow;
int anti_spam_quit_message_time;
char *egd_path;
char *static_quit;
char *static_part;
TLSOptions *tls_options;
SSLOptions *ssl_options;
Policy plaintext_policy_user;
MultiLine *plaintext_policy_user_message;
char *plaintext_policy_user_message;
Policy plaintext_policy_oper;
MultiLine *plaintext_policy_oper_message;
char *plaintext_policy_oper_message;
Policy plaintext_policy_server;
Policy outdated_tls_policy_user;
char *outdated_tls_policy_user_message;
@@ -122,13 +106,22 @@ struct Configuration {
char *restrict_usermodes;
char *restrict_channelmodes;
char *restrict_extendedbans;
int new_linking_protocol;
char *channel_command_prefix;
long handshake_data_flood_amount;
long handshake_data_flood_ban_time;
int handshake_data_flood_ban_action;
long unknown_flood_bantime;
long unknown_flood_amount;
struct ChMode modes_on_join;
int level_on_join;
FloodSettings *floodsettings;
unsigned char away_count;
long away_period;
unsigned char nick_count;
long nick_period;
unsigned char invite_count;
long invite_period;
unsigned char knock_count;
long knock_period;
unsigned char max_concurrent_conversations_users;
unsigned char max_concurrent_conversations_new_user_every;
int ident_connect_timeout;
int ident_read_timeout;
long default_bantime;
@@ -146,12 +139,14 @@ struct Configuration {
int spamfilter_stop_on_first_match;
int maxbans;
int maxbanlength;
int timesynch_enabled;
int timesynch_timeout;
char *timesynch_server;
int watch_away_notification;
int uhnames;
NetworkConfiguration network;
aNetwork network;
unsigned short default_ipv6_clone_mask;
int ping_cookie;
int min_nick_length;
int nick_length;
int topic_length;
int kick_length;
@@ -160,10 +155,9 @@ struct Configuration {
int hide_list;
int max_unknown_connections_per_ip;
long handshake_timeout;
long sasl_timeout;
long handshake_delay;
BanTarget automatic_ban_target;
BanTarget manual_ban_target;
int ban_include_username;
char *reject_message_password_mismatch;
char *reject_message_too_many_connections;
char *reject_message_server_full;
char *reject_message_unauthorized;
@@ -172,26 +166,24 @@ struct Configuration {
int topic_setter;
int ban_setter;
int ban_setter_sync;
int part_instead_of_quit_on_comment_change;
BroadcastChannelMessagesOption broadcast_channel_messages;
AllowedChannelChars allowed_channelchars;
HideIdleTimePolicy hide_idle_time;
};
extern MODVAR Configuration iConf;
extern MODVAR Configuration tempiConf;
#ifndef DYNCONF_C
extern MODVAR aConfiguration iConf;
extern MODVAR aConfiguration tempiConf;
extern MODVAR int ipv6_disabled;
#endif
#define KLINE_ADDRESS iConf.kline_address
#define GLINE_ADDRESS iConf.gline_address
#define CONN_MODES iConf.conn_modes
#define OPER_MODES iConf.oper_modes
#define OPER_SNOMASK iConf.oper_snomask
#define CONNECT_SNOMASK iConf.user_snomask
#define SHOWOPERMOTD iConf.som
#define HIDE_ULINES iConf.hide_ulines
#define FLAT_MAP iConf.flat_map
#define ALLOW_CHATOPS iConf.allow_chatops
#define PINGWARNING iConf.ping_warning
#define MAXCHANNELSPERUSER iConf.maxchannelsperuser
#define MAXDCCALLOW iConf.maxdccallow
#define DONT_RESOLVE iConf.dont_resolve
@@ -202,8 +194,8 @@ extern MODVAR int ipv6_disabled;
#define IDENT_CHECK iConf.ident_check
#define FAILOPER_WARN iConf.fail_oper_warn
#define SHOWCONNECTINFO iConf.show_connect_info
#define NOCONNECTTLSLINFO iConf.no_connect_tls_info
#define ALLOW_USER_STATS iConf.allow_user_stats
#define NOCONNECTSSLINFO iConf.no_connect_ssl_info
#define OPER_ONLY_STATS iConf.oper_only_stats
#define ANTI_SPAM_QUIT_MSG_TIME iConf.anti_spam_quit_message_time
#ifdef HAVE_RAND_EGD
#define USE_EGD iConf.use_egd
@@ -229,12 +221,24 @@ extern MODVAR int ipv6_disabled;
#define RESTRICT_USERMODES iConf.restrict_usermodes
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
#define NEW_LINKING_PROTOCOL iConf.new_linking_protocol
#define THROTTLING_PERIOD iConf.throttle_period
#define THROTTLING_COUNT iConf.throttle_count
#define USE_BAN_VERSION iConf.use_ban_version
#define UNKNOWN_FLOOD_BANTIME iConf.unknown_flood_bantime
#define UNKNOWN_FLOOD_AMOUNT iConf.unknown_flood_amount
#define MODES_ON_JOIN iConf.modes_on_join.mode
#define LEVEL_ON_JOIN iConf.level_on_join
#define AWAY_PERIOD iConf.away_period
#define AWAY_COUNT iConf.away_count
#define NICK_PERIOD iConf.nick_period
#define NICK_COUNT iConf.nick_count
#define KNOCK_PERIOD iConf.knock_period
#define KNOCK_COUNT iConf.knock_count
#define INVITE_PERIOD iConf.invite_period
#define INVITE_COUNT iConf.invite_count
#define IDENT_CONNECT_TIMEOUT iConf.ident_connect_timeout
#define IDENT_READ_TIMEOUT iConf.ident_read_timeout
@@ -269,13 +273,15 @@ extern MODVAR int ipv6_disabled;
#define MAXBANS iConf.maxbans
#define MAXBANLENGTH iConf.maxbanlength
#define TIMESYNCH iConf.timesynch_enabled
#define TIMESYNCH_TIMEOUT iConf.timesynch_timeout
#define TIMESYNCH_SERVER iConf.timesynch_server
#define WATCH_AWAY_NOTIFICATION iConf.watch_away_notification
#define UHNAMES_ENABLED iConf.uhnames
/** Used for testing the set { } block configuration.
* It tests if a setting is present and is also used for duplicate checking.
*/
/* Used for "is present?" and duplicate checking */
struct SetCheck {
unsigned has_show_opermotd:1;
unsigned has_hide_ulines:1;
@@ -287,8 +293,9 @@ struct SetCheck {
unsigned has_dont_resolve:1;
unsigned has_mkpasswd_for_everyone:1;
unsigned has_allow_part_if_shunned:1;
unsigned has_tls_server_cipher_list :1;
unsigned has_tls_protocols :1;
unsigned has_ssl_egd:1;
unsigned has_ssl_server_cipher_list :1;
unsigned has_ssl_protocols :1;
unsigned has_dns_bind_ip:1;
unsigned has_link_bind_ip:1;
unsigned has_throttle_period:1;
@@ -304,8 +311,7 @@ struct SetCheck {
unsigned has_check_target_nick_bans:1;
unsigned has_watch_away_notification:1;
unsigned has_uhnames:1;
unsigned has_allow_user_stats:1;
unsigned has_ping_warning:1;
unsigned has_oper_only_stats:1;
unsigned has_maxchannelsperuser:1;
unsigned has_maxdccallow:1;
unsigned has_anti_spam_quit_message_time:1;
@@ -316,9 +322,18 @@ struct SetCheck {
unsigned has_restrict_usermodes:1;
unsigned has_restrict_channelmodes:1;
unsigned has_restrict_extendedbans:1;
unsigned has_new_linking_protocol:1;
unsigned has_channel_command_prefix:1;
unsigned has_anti_flood_unknown_flood_bantime:1;
unsigned has_anti_flood_unknown_flood_amount:1;
unsigned has_modes_on_join:1;
unsigned has_level_on_join:1;
unsigned has_anti_flood_away_count:1;
unsigned has_anti_flood_away_period:1;
unsigned has_anti_flood_nick_flood:1;
unsigned has_anti_flood_connect_flood:1;
unsigned has_anti_flood_invite_flood:1;
unsigned has_anti_flood_knock_flood:1;
unsigned has_ident_connect_timeout:1;
unsigned has_ident_read_timeout:1;
unsigned has_default_bantime:1;
@@ -348,14 +363,15 @@ struct SetCheck {
unsigned has_options_fail_oper_warn:1;
unsigned has_options_dont_resolve:1;
unsigned has_options_show_connect_info:1;
unsigned has_options_no_connect_tls_info:1;
unsigned has_options_no_connect_ssl_info:1;
unsigned has_options_mkpasswd_for_everyone:1;
unsigned has_options_allow_insane_bans:1;
unsigned has_options_allow_part_if_shunned:1;
unsigned has_options_disable_cap:1;
unsigned has_options_disable_ipv6:1;
unsigned has_ping_cookie:1;
unsigned has_min_nick_length:1;
unsigned has_nick_length:1;
unsigned has_hide_ban_reason:1;
};
+7 -5
View File
@@ -7,24 +7,24 @@
typedef void (*IOCallbackFunc)(int fd, int revents, void *data);
typedef enum FDCloseMethod { FDCLOSE_SOCKET=0, FDCLOSE_FILE=1, FDCLOSE_NONE=3 } FDCloseMethod;
typedef struct fd_entry {
int fd;
char desc[FD_DESC_SZ];
IOCallbackFunc read_callback;
unsigned char read_oneshot;
IOCallbackFunc write_callback;
unsigned char write_oneshot;
void *data;
time_t deadline;
unsigned char is_open;
FDCloseMethod close_method;
unsigned int backend_flags;
} FDEntry;
extern MODVAR FDEntry fd_table[MAXCONNECTIONS + 1];
extern int fd_open(int fd, const char *desc, FDCloseMethod close_method);
extern int fd_close(int fd);
extern int fd_open(int fd, const char *desc);
extern void fd_close(int fd);
extern int fd_unmap(int fd);
extern void fd_unnotify(int fd);
extern int fd_socket(int family, int type, int protocol, const char *desc);
extern int fd_accept(int sockfd);
@@ -33,6 +33,8 @@ extern int fd_fileopen(const char *path, unsigned int flags);
#define FD_SELECT_READ 0x1
#define FD_SELECT_WRITE 0x2
#define FD_SELECT_ONESHOT 0x4
#define FD_SELECT_NOWRITE 0x8
extern void fd_setselect(int fd, int flags, IOCallbackFunc iocb, void *data);
extern void fd_select(time_t delay); /* backend-specific */
+410 -671
View File
File diff suppressed because it is too large Load Diff
+73
View File
@@ -0,0 +1,73 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/hash.h
* Copyright (C) 1991 Darren Reed
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
#ifndef __hash_include__
#define __hash_include__
typedef struct hashentry {
int hits;
int links;
void *list;
} aHashEntry;
/* Taner had BITS_PER_COL 4 BITS_PER_COL_MASK 0xF - Dianora */
#define BITS_PER_COL 3
#define BITS_PER_COL_MASK 0x7
#define MAX_SUB (1<<BITS_PER_COL)
/* Client hash table
* used in hash.c
*/
#define U_MAX_INITIAL 2048
#define U_MAX_INITIAL_MASK (U_MAX_INITIAL-1)
#define U_MAX (U_MAX_INITIAL*MAX_SUB)
/* Channel hash table
* used in hash.c
*/
#define CH_MAX_INITIAL 2048
#define CH_MAX_INITIAL_MASK (CH_MAX_INITIAL-1)
#define CH_MAX (CH_MAX_INITIAL*MAX_SUB)
/* Who was hash table
* used in whowas.c
*/
#define WW_MAX_INITIAL 16
#define WW_MAX_INITIAL_MASK (WW_MAX_INITIAL-1)
#define WW_MAX (WW_MAX_INITIAL*MAX_SUB)
#define WATCHHASHSIZE 10007 /* prime number */
/*
* Throttling
*/
#define THROTTLING_HASH_SIZE 1019 /* prime number */
#define NullChn ((aChannel *)0)
#define find_channel hash_find_channel
#endif /* __hash_include__ */
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that: (1) source distributions retain this entire copyright
* notice and comment, and (2) distributions including binaries display
* the following acknowledgement: ``This product includes software
* developed by the University of California, Berkeley and its contributors''
* in the documentation or other materials provided with the distribution
* and in all advertising materials mentioning features or use of this
* software. Neither the name of the University nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* $Id$
*
* @(#)inet.h 5.4 (Berkeley) 6/1/90
*/
/* External definitions for functions in inet(3) */
#include "config.h" /* for system definitions */
#ifdef __alpha
#define __u_l unsigned int
#else
#define __u_l unsigned long
#endif
extern int inet_pton(int af, const char *src, void *dst);
extern const char *inet_ntop(int af, const void *src, char *dst, size_t cnt);
#ifdef __STDC__
# ifndef _WIN32
extern __u_l inet_addr(char *);
extern char *inet_ntoa(struct in_addr);
extern int inet_aton(const char *, struct in_addr *);
# endif
extern __u_l inet_makeaddr(int, int);
extern __u_l inet_network(char *);
extern __u_l inet_lnaof(struct in_addr);
#else
# ifndef _WIN32
extern __u_l inet_addr();
extern char *inet_ntoa();
# endif
#ifndef HPUX
extern __u_l inet_makeaddr();
#endif
#endif
#ifndef HPUX
extern __u_l inet_network();
extern __u_l inet_lnaof();
#endif
#undef __u_l
#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif
+11 -5
View File
@@ -9,15 +9,21 @@
#include <stdarg.h>
#include <stdio.h>
/* ugly hack GRR, for both attribute and FORMAT_STRING */
/*
* Proto types
*/
/* You do want it to work in debug mode yes ? --DrBin */
/* ugly hack GRR */
#if !defined(__GNUC__) && !defined(__common_include__)
#define __attribute__(x) /* nothing */
#endif
#ifndef FORMAT_STRING
# define FORMAT_STRING(p) p
#endif
extern char *ircvsnprintf(char *str, size_t size, const char *format, va_list);
extern char *ircsnprintf(char *str, size_t size, FORMAT_STRING(const char *format), ...) __attribute__((format(printf,3,4)));
extern char *ircsnprintf(char *str, size_t size, const char *format, ...) __attribute__((format(printf,3,4)));
extern const char atoi_tab[4000];
#endif

Some files were not shown because too many files have changed in this diff Show More