mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-21 09:26:37 +02:00
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c75d4d64a0 | |||
| 00bd34adf4 | |||
| c7dcad793c | |||
| 6feeb23ae3 | |||
| 8ea0ac5f4c | |||
| 4560beb895 | |||
| dae494ddb1 | |||
| 33f23cefb8 | |||
| b67cdeda7b | |||
| 778efe22e3 | |||
| b9a2b18077 | |||
| e638fef3a7 | |||
| 7b88c81ef2 | |||
| b6cef35228 | |||
| 51e5031fbd | |||
| 19d3ff1a84 | |||
| c2dc1e4909 | |||
| fdd3c1a2d8 | |||
| 104990002e | |||
| c39013f134 | |||
| a09902cf2c | |||
| e527514f03 | |||
| bd4542cda1 | |||
| 769b98a83d | |||
| cad17acd21 | |||
| 49f524b6a4 | |||
| 20ae445980 | |||
| 51dd0849e2 | |||
| c294689287 | |||
| a3641d1ffb | |||
| f4d102edfb | |||
| 2cadcc8624 | |||
| 750a9d31ff | |||
| 0efacfa2ab | |||
| 70f34f75fc | |||
| c37c0594cb | |||
| 206dc189ba |
+5
-5
@@ -7,14 +7,14 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for UnrealIRCd 4.2.4.1
|
||||
for Unreal3.2
|
||||
|
||||
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
|
||||
If you have problems regarding the setup & compile, read Unreal.nfo to get
|
||||
more information on where to get help. Please, before running this setup,
|
||||
read the documentation in the "doc" folder. Docs are also avail online @
|
||||
http://www.unrealircd.com/unreal32docs.html
|
||||
|
||||
Full documentation is available at:
|
||||
https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
Configuration rant, by Stskeeps
|
||||
--------------------------------
|
||||
|
||||
Right.. so you think you are done now, you can boot your IRCd and be happy,
|
||||
and it just works. No, you still got a lot to do. You need to read all of
|
||||
the documentation through. Would you even have made it this far without
|
||||
makeconf?.
|
||||
|
||||
Well, today, people think they can be 3 months on IRC, and be ready to run
|
||||
an IRC daemon. I hate to say this, but I don't think so.
|
||||
|
||||
If you cannot read an IRC help file, or understand what stuff like "desynch",
|
||||
"masskill", "k-line", or what "mode # +l 5" means - or you got no experince
|
||||
in the UNIX field at all, like, you MUST know how to invoke a editor in a
|
||||
shell, or to unzip a file. If you don't know/can do these things, I suggest
|
||||
you stop trying to set this up, and go read on some UNIX tutorials, and IRC
|
||||
tutorials. It takes a LOT of work to run a IRC server good.
|
||||
|
||||
I mean. I sit on the #unreal-support support channel each day, and I see
|
||||
countless questions about stuff that IS IN the documentation. Numerous
|
||||
people don't even bother to look at the config files (CONFIG_FILE_STOP
|
||||
problem).
|
||||
|
||||
You need to look at the documentation now. You need to see how to "include"
|
||||
other configuration files. You need to know how to work out how to use
|
||||
doc/example.settings. I can only tell you, if you ask for support, and it
|
||||
is for errors that you could solve by reading the first lines of a document,
|
||||
then you'll be firmly ignored. I'm sorry, we cannot help your laziness.
|
||||
|
||||
Anyhow, good luck with setting this up. Hope you understand what I am saying
|
||||
here. You will learn a lot more reading, than just ignoring what we are
|
||||
saying.
|
||||
|
||||
--Stskeeps
|
||||
@@ -0,0 +1,50 @@
|
||||
|
||||
Unreal3.2 Release Notes
|
||||
========================
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
* If you are upgrading, make sure you run make clean and ./Config before doing make
|
||||
* The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIrcd/faq/
|
||||
Read them before asking for help.
|
||||
* Report bugs at http://bugs.unrealircd.org/
|
||||
|
||||
== [ NEW ]==
|
||||
- Added german docs (doc/unreal32docs.de.html)
|
||||
- In a spamfilter reason field '_' gets converted to a space (' '),
|
||||
now also added '__' which gets converted to underscore itself ('_').
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- '/spamfiltere remove' was often removing the wrong entry (RC2 bug)
|
||||
- The TRE regex library was sometimes matching too much if [range].+
|
||||
was used multiple times.
|
||||
- Fixed a remote include issue and added timeouts in case a connection/transfer fails
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- Sometimes hosts were not resolved on Windows due to a resolver bug
|
||||
- spamfilter and sqline: memory leak on /rehash (a few kb)
|
||||
- spamfilter: protect against insane long reason/regex fields in configfile
|
||||
- set::modes-on-join now accepts extended channelmodes
|
||||
- Opteron: various crashbugs fixed, should work ok now.
|
||||
- Win32 GUI "rehash all" option did not reload motd/rules.
|
||||
- Same for ./unreal rehash on *NIX
|
||||
- Usermode 'r' (registered) was unset if you changed the case of your
|
||||
nick (eg: 'blah'->'Blah'), this affected at least ircservices.
|
||||
- vhost::swhois wasn't shown if you did a remote /whois.
|
||||
- Made './curlinstall' work with new c-ares-1.0.0.
|
||||
- Fixed compile problem on some machines related to TRE / libintl.
|
||||
- /who +m was incorrectly hiding +H users even for opers.
|
||||
- Fixed /rehash bug if an .so or remote include didn't load properly
|
||||
|
||||
==[ CHANGED ]==
|
||||
- spamfilter.conf: fixed fyle sig, added sigs for: soex, Nkie, LOI, Gaggle,
|
||||
changed a lot of sigs from block to gline.
|
||||
- Windows: now using new Inno Setup which made the installer 300k smaller
|
||||
- Docs, help.conf and other text updates.
|
||||
|
||||
==[ COMMING UP ]==
|
||||
- You can expect module support on windows in a nearby release.
|
||||
|
||||
==[ ADDITIONAL INFO ]==
|
||||
* See Changelog
|
||||
@@ -0,0 +1,15 @@
|
||||
|-------------------------------------------------------------------------|
|
||||
| Congratulations on your new SSL self-signed certificate for your IRCd. |
|
||||
| However, wouldn't it be better that you get your certifcate signed by |
|
||||
| some kind of Certification Authority (CA), so your users can check that |
|
||||
| they are really connected to the real server, so they feel secure? |
|
||||
| |
|
||||
| There is an initiative at CACert.org - They offer SSL Certificates |
|
||||
| for use with your IRCd for free, so your users can be sure that they |
|
||||
| can trust you and your server. |
|
||||
| |
|
||||
| To get a free signed certificate please visit http://www.CACert.org |
|
||||
| _________________________|
|
||||
| | Press enter to continue |
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
_ _ _ ___________ _____ _
|
||||
| | | | | |_ _| ___ \/ __ \ | |
|
||||
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
|
||||
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
|
||||
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Update Script v2.0
|
||||
|
||||
What download program do you want to use?
|
||||
-----------------------------------------
|
||||
|
||||
Type "wget" for wget
|
||||
Type "lynx" for lynx
|
||||
|
||||
>
|
||||
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# UnrealIRCd Bug Reporting Script
|
||||
# Copyright (c) 2001, The UnrealIRCd Team
|
||||
# All rights reserved
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
# provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
# and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||
# and the following disclaimer in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of the The UnrealIRCd Team nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written permission.
|
||||
# * The source code may not be redistributed for a fee or in closed source
|
||||
# programs, without expressed oral consent by the UnrealIRCd Team, however
|
||||
# for operating systems where binary distribution is required, if URL
|
||||
# is passed with the package to get the full source
|
||||
# * No warranty is given unless stated so by the The UnrealIRCd Team
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'' AND ANY EXPRESS OR
|
||||
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# First we define some nice settings and some nice functions
|
||||
set print pretty on
|
||||
|
||||
# dumplist <linked list> <structure format>
|
||||
define dumplist
|
||||
echo Dumping linked list $arg0 in format $arg1\n
|
||||
set $p = $arg0
|
||||
while $p
|
||||
print *($arg1 *) $p
|
||||
set $p = $p->next
|
||||
end
|
||||
end
|
||||
|
||||
# dumparray <name> <size>
|
||||
define dumparray
|
||||
echo Dumping array $arg0 size $arg1\n
|
||||
set $p = 0
|
||||
while $p < $arg1
|
||||
if $arg0[$p]
|
||||
print *$arg0[$p]
|
||||
end
|
||||
set $p = $p + 1
|
||||
end
|
||||
end
|
||||
|
||||
echo Full backtrace:\n
|
||||
echo ---------------\n
|
||||
echo \n
|
||||
bt full
|
||||
echo \n
|
||||
echo Backup parse() buffer:\n
|
||||
echo ----------------------\n
|
||||
echo \n
|
||||
print backupbuf
|
||||
echo \n
|
||||
echo me output:\n
|
||||
echo ----------------------\n
|
||||
print me
|
||||
echo \n
|
||||
echo IRCstats:\n
|
||||
echo ----------------------\n
|
||||
print IRCstats
|
||||
echo \n
|
||||
echo Modules:\n
|
||||
echo ----------------------\n
|
||||
dumparray Modules 50
|
||||
quit
|
||||
@@ -0,0 +1,6 @@
|
||||
ircdcron/ircd.cron
|
||||
ircdcron/ircdchk
|
||||
src/modules/Makefile
|
||||
src/ssl.rnd
|
||||
src/win32/devel/StackTrace.lib
|
||||
src/win32/gnu_regex.lib
|
||||
-74
@@ -1,74 +0,0 @@
|
||||
# Ignore configure step
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
config.log
|
||||
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
|
||||
src/modules/chanmodes/Makefile
|
||||
src/modules/extbans/Makefile
|
||||
src/modules/usermodes/Makefile
|
||||
src/modules/Makefile
|
||||
src/modules/third/Makefile
|
||||
/Makefile
|
||||
/src/Makefile
|
||||
/unrealircd
|
||||
include/setup.h
|
||||
|
||||
# Ignore tags file
|
||||
tags
|
||||
|
||||
# Ignore editor files
|
||||
*\#*
|
||||
*~
|
||||
|
||||
# Ignore SSL Stuff
|
||||
server.cert.pem
|
||||
server.key.pem
|
||||
server.req.pem
|
||||
ssl.rnd
|
||||
|
||||
# Ignores for platform stuff
|
||||
.DS_Store
|
||||
|
||||
# Ignores for build artifacts
|
||||
*.so
|
||||
*.o
|
||||
*.dSYM
|
||||
*.dylib
|
||||
src/ircd
|
||||
src/version.c
|
||||
src/include
|
||||
|
||||
# Ignores for mac stuff
|
||||
## Various settings
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
|
||||
## Other
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
*.xcuserstate
|
||||
*.xcscmblueprint
|
||||
|
||||
## Obj-C/Swift specific
|
||||
*.hmap
|
||||
*.ipa
|
||||
|
||||
src/macosx/build/
|
||||
DerivedData
|
||||
src/macosx/pods/
|
||||
@@ -1,6 +0,0 @@
|
||||
[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
@@ -1,28 +0,0 @@
|
||||
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"
|
||||
+1751
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,32 @@
|
||||
UnrealIRCd is a free program, but we do put a lot of time, effort, and money
|
||||
into creating and maintaining Unreal. To make it easier for user's to show their
|
||||
appreciation, the Unreal team has decided to accept donations through PayPal. If
|
||||
you like Unreal, and you'd like to see it continue to exist, please consider making
|
||||
a donation. We're not asking for anything huge, whatever you can afford is fine.
|
||||
|
||||
PayPal Donation Link:
|
||||
<https://www.paypal.com/xclick/business=donation%40unrealircd.com&
|
||||
item_name=UnrealIRCd+Donation&no_shipping=1&cn=Comments&tax=0¤cy_code=USD>
|
||||
|
||||
Or simply send a payment through PayPal to:
|
||||
donation@unrealircd.com
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than money
|
||||
(old computer hardware, etc.), contact Stskeeps (stskeeps@unrealircd.com) and send
|
||||
your donation to:
|
||||
|
||||
UnrealIRCd Project
|
||||
C/O Carsten Munk
|
||||
P.O.Box 52
|
||||
7400 Herning
|
||||
Denmark
|
||||
|
||||
All those who donate at least $10 USD will have their name and/or company listed in /credits.
|
||||
Additionally, all donators will be listed on the website (regardless of the amount). To make
|
||||
this possible, please include along with your donation the name (or nickname) you want to
|
||||
appear in the list as well as the company name (or IRC server) to list.
|
||||
|
||||
Thank you for your support,
|
||||
The UnrealIRCd Team
|
||||
|
||||
[ $Id$ ]
|
||||
@@ -0,0 +1,23 @@
|
||||
**** Remote Includes ****
|
||||
|
||||
Setting up UnrealIRCd to work with remote includes is not very difficult. The first step is to
|
||||
download c-ares. C-ares can be downloaded from <http://daniel.haxx.se/projects/c-ares/>
|
||||
download the latest version of c-ares and extract the .tar.gz somewhere.
|
||||
|
||||
Now, download the latest version of curl, available at <http://curl.haxx.se/download.html>
|
||||
again, extract the tar.gz somewhere.
|
||||
|
||||
Next, go to the Unreal3.2 directory and run the curlinstall script. You run the script
|
||||
as follows:
|
||||
|
||||
./curlinstall ares_path curl_path
|
||||
|
||||
Paths should be complete pathnames. If you extracted c-ares to /home/username/c-ares-1.0.0
|
||||
and curl to /home/username/curl-7.11.0 then you would run:
|
||||
|
||||
./curlinstall /home/username/c-ares-1.0.0 /home/username/curl-7.11.0
|
||||
|
||||
Lastly, run ./Config. When asked whether to enable remote includes say "yes" and when asked
|
||||
for the path curl was installed to include the path that is printed out after ./curlinstall
|
||||
completes. Then simply run make to compile Unreal as usual and remote includes should work
|
||||
fine.
|
||||
+74
-113
@@ -20,7 +20,7 @@
|
||||
#*/
|
||||
|
||||
CC=@CC@
|
||||
INCLUDEDIR=@UNRLINCDIR@
|
||||
INCLUDEDIR=../include
|
||||
NETWORKSDIR=
|
||||
FROMDOS=/home/cmunk/bin/4dos
|
||||
|
||||
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
|
||||
#
|
||||
|
||||
#XCFLAGS=-O -g -export-dynamic
|
||||
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@
|
||||
IRCDLIBS=@IRCDLIBS@ @TRELIBS@
|
||||
CRYPTOLIB=@CRYPTOLIB@
|
||||
OPENSSLINCLUDES=
|
||||
|
||||
XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
|
||||
XCFLAGS=-I@TREINCDIR@ @CFLAGS@
|
||||
#
|
||||
# use the following on MIPS:
|
||||
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
||||
@@ -89,6 +89,12 @@ XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLA
|
||||
# you are not defining CMDLINE_CONFIG
|
||||
IRCDMODE = 711
|
||||
|
||||
# [CHANGEME]
|
||||
# IRCDDIR must be the same as DPATH in include/config.h
|
||||
#
|
||||
IRCDDIR=@IRCDDIR@
|
||||
|
||||
|
||||
URL=@URL@
|
||||
|
||||
# [CHANGEME]
|
||||
@@ -98,18 +104,15 @@ URL=@URL@
|
||||
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>.
|
||||
# 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.
|
||||
FD_SETSIZE=@FD_SETSIZE@
|
||||
|
||||
# Where is your openssl binary
|
||||
OPENSSLPATH=@OPENSSLPATH@
|
||||
|
||||
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(FD_SETSIZE)
|
||||
LDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@
|
||||
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) @LDFLAGS@ $(FD_SETSIZE)
|
||||
|
||||
SHELL=/bin/sh
|
||||
SUBDIRS=src
|
||||
@@ -124,36 +127,43 @@ all: build
|
||||
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
|
||||
'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
|
||||
'INCLUDEDIR=${INCLUDEDIR}' \
|
||||
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
|
||||
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
|
||||
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
||||
'CRYPTOLIB=${CRYPTOLIB}' \
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
|
||||
'URL=${URL}'
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' 'URL=${URL}'
|
||||
|
||||
custommodule:
|
||||
@if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
|
||||
+cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
|
||||
server: Makefile
|
||||
build: Makefile
|
||||
server:
|
||||
build:
|
||||
-@if [ ! -f include/setup.h ] ; then \
|
||||
echo "Hmm...doesn't look like you've run Config..."; \
|
||||
echo "Doing so now."; \
|
||||
sh Config; \
|
||||
fi
|
||||
@+for i in $(SUBDIRS); do \
|
||||
@for i in $(SUBDIRS); do \
|
||||
echo "Building $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
||||
done
|
||||
@echo ''
|
||||
@echo '* UnrealIRCd compiled successfully'
|
||||
@echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !'
|
||||
@echo ''
|
||||
@echo ' __________________________________________________ '
|
||||
@echo '| Compile is now complete. |'
|
||||
@echo '| You should now read the documentation and learn |'
|
||||
@echo '| how to configure your IRCd. |'
|
||||
@echo '| |'
|
||||
@echo '| If you really like UnrealIRCd, and would like to |'
|
||||
@echo '| make a donation, please read the Donation file in|'
|
||||
@echo '| this archive. :) |'
|
||||
@echo '| |'
|
||||
@echo '| Thanks for using Unreal IRCd! If you are in need |'
|
||||
@echo '| for any kind of help regarding the IRCd please |'
|
||||
@echo '| read the Unreal.nfo file. |'
|
||||
@echo '|__________________________________________________|'
|
||||
|
||||
clean:
|
||||
$(RM) -f *~ \#* core *.orig include/*.orig
|
||||
@+for i in $(SUBDIRS); do \
|
||||
@for i in $(SUBDIRS); do \
|
||||
echo "Cleaning $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
||||
done
|
||||
@@ -162,109 +172,62 @@ clean:
|
||||
fi
|
||||
|
||||
cleandir: clean
|
||||
rm -rf include/setup.h Makefile Settings
|
||||
rm -rf include/networks.h include/setup.h Makefile Settings
|
||||
|
||||
makex:
|
||||
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
||||
chmod +x rehash ircdreg
|
||||
|
||||
fromdos: cleandir
|
||||
$(FROMDOS) -dv *
|
||||
$(FROMDOS) -dv src/*
|
||||
$(FROMDOS) -dv include/*
|
||||
$(FROMDOS) -dv doc/*
|
||||
$(FROMDOS) -dv crypt/*
|
||||
$(FROMDOS) -dv ircdcron/*
|
||||
makedist: makex
|
||||
echo "Stamping.."
|
||||
|
||||
stamp: makedist
|
||||
echo "/* Auto created release stamping */" > include/stamp.h
|
||||
echo "#define RELEASEID2 \"`date +%s`\"" >> include/stamp.h
|
||||
echo "#define RELEASESTUFF \"`hostname`\"" >> include/stamp.h
|
||||
echo "" >> include/stamp.h
|
||||
|
||||
distclean: cleandir
|
||||
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
|
||||
|
||||
depend:
|
||||
@+for i in $(SUBDIRS); do \
|
||||
@for i in $(SUBDIRS); do \
|
||||
echo "Making dependencies in $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
||||
done
|
||||
|
||||
install: all
|
||||
$(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
|
||||
-@extras/patches/patch_spamfilter_conf "@CONFDIR@"
|
||||
-@if [ ! -f "@CONFDIR@/badwords.conf" ] ; then \
|
||||
$(INSTALL) -m 0600 doc/conf/badwords.conf @CONFDIR@ ; \
|
||||
fi
|
||||
-@if [ ! -f "@CONFDIR@/dccallow.conf" ] ; then \
|
||||
$(INSTALL) -m 0600 doc/conf/dccallow.conf @CONFDIR@ ; \
|
||||
fi
|
||||
$(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
|
||||
@echo ''
|
||||
@echo '* UnrealIRCd is now installed.'
|
||||
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \
|
||||
fi
|
||||
@echo '* Directory layout:'
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo ' * Base directory: @SCRIPTDIR@' ; \
|
||||
fi
|
||||
@echo ' * Configuration files: @CONFDIR@'
|
||||
@echo ' * Log files: @LOGDIR@'
|
||||
@echo ' * Modules: @MODULESDIR@'
|
||||
@echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"'
|
||||
@echo ''
|
||||
@echo '* Consult the documentation online at:'
|
||||
@echo ' * https://www.unrealircd.org/docs/'
|
||||
@echo ' * https://www.unrealircd.org/docs/FAQ'
|
||||
@echo '* You may also wish to install a cron job to ensure UnrealIRCd is always running:'
|
||||
@echo ' * https://www.unrealircd.org/docs/Cron_job'
|
||||
@echo ''
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
|
||||
fi
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/*.network $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 networks/makenet $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/networks.ndx $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/example.settings doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/aliases
|
||||
$(INSTALL) -m 0600 aliases/*.conf $(IRCDDIR)/aliases
|
||||
$(TOUCH) $(IRCDDIR)/unrealircd.conf
|
||||
chmod 0600 $(IRCDDIR)/unrealircd.conf
|
||||
$(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
||||
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
|
||||
### TODO: all the stuff below ;) ###
|
||||
pem: src/ssl.cnf
|
||||
@echo "Generating certificate request .. "
|
||||
$(OPENSSLPATH) req -new \
|
||||
-config src/ssl.cnf -sha256 -out server.req.pem \
|
||||
-config src/ssl.cnf -out server.req.pem \
|
||||
-keyout server.key.pem -nodes
|
||||
@echo "Generating self-signed certificate .. "
|
||||
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
|
||||
$(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \
|
||||
-key server.key.pem -out server.cert.pem
|
||||
@echo "Generating fingerprint .."
|
||||
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
|
||||
$(OPENSSLPATH) x509 -subject -dates -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
|
||||
@@ -281,5 +244,3 @@ encpem: server.key.pem
|
||||
rm -f server.key.c.pem ; \
|
||||
fi
|
||||
|
||||
Makefile: config.status Makefile.in
|
||||
./config.status
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
==[ COMPILING ]==
|
||||
To build the ircd, run:
|
||||
./Config
|
||||
make
|
||||
|
||||
If you specified an alternative location during ./Config you also need
|
||||
to run "make install".
|
||||
|
||||
==[ MAKING A CONFIG FILE ]==
|
||||
If you are new, then you need to create your own configfile:
|
||||
|
||||
copy doc/example.conf to your main UnrealIRCd directory and call
|
||||
it unrealircd.conf .
|
||||
Then open it in an editor and carefully modify it, consult the docs
|
||||
(doc/unreal32docs.html, or online: www.unrealircd.com/unreal32docs.html)
|
||||
for more information about every block/setting.
|
||||
Common problems are explained in the FAQ, which is located at:
|
||||
http://www.vulnscan.org/UnrealIrcd/faq/ .
|
||||
|
||||
==[ BOOTING YOUR IRCD ]==
|
||||
Just type: ./unreal start
|
||||
Note that after booting the errors are usually logged to ircd.log,
|
||||
so check that file if you have any problems.
|
||||
Again, check the FAQ (and docs) if you have any boot problems.
|
||||
@@ -1,57 +0,0 @@
|
||||
[](https://travis-ci.org/unrealircd/unrealircd)
|
||||
[](https://ci.appveyor.com/project/syzop/unrealircd/branch/unreal42)
|
||||
[](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 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, cloaking, its advanced anti-flood and anti-spam systems,
|
||||
swear filtering and module support. We are also particularly proud on our extensive
|
||||
online documentation.
|
||||
|
||||
## How to get started
|
||||
Please consult our excellent online documentation at https://www.unrealircd.org/docs/
|
||||
when setting up the IRCd!
|
||||
|
||||
### Step 1: Installation
|
||||
#### Windows
|
||||
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
|
||||
First you must compile the IRCd:
|
||||
|
||||
* Run `./Config`
|
||||
* Run `make`
|
||||
* Run `make install`
|
||||
* Now change to the directory where you installed UnrealIRCd, e.g. `cd /home/xxxx/unrealircd`
|
||||
|
||||
### Step 2: Configuration
|
||||
Configuration files are stored in the conf/ folder by default (eg: /home/xxxx/unrealircd/conf)
|
||||
|
||||
#### Create a configuration file
|
||||
If you are new, then you need to create your own configuration file:
|
||||
Copy conf/examples/example.conf to conf/ and call it unrealircd.conf.
|
||||
Then open it in an editor and carefully modify it using the documentation and FAQ as a guide (see below).
|
||||
|
||||
### Step 3: Booting
|
||||
|
||||
#### Linux/*BSD/macOS
|
||||
Run `./unrealircd start` in the directory where you installed UnrealIRCd.
|
||||
|
||||
#### Windows
|
||||
Start -> All Programs -> UnrealIRCd -> UnrealIRCd
|
||||
|
||||
## Documentation & FAQ
|
||||
You can find the **documentation** online at: https://www.unrealircd.org/docs/
|
||||
|
||||
We also have a good **FAQ**: https://www.unrealircd.org/docs/FAQ
|
||||
|
||||
## Website, support, and other links ##
|
||||
* https://www.unrealircd.org - Our main website
|
||||
* https://forums.unrealircd.org - Support
|
||||
* https://bugs.unrealircd.org - Bug tracker
|
||||
* ircs://irc.unrealircd.org:6697/unreal-support - IRC support
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.2 =
|
||||
===============================================
|
||||
Was brought to you by:
|
||||
|
||||
The core team:
|
||||
==============
|
||||
* Stskeeps <stskeeps@tspre.org>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
* Syzop <syzop@unrealircd.org>
|
||||
* Luke <luke@unrealircd.com>
|
||||
|
||||
Contributors
|
||||
============
|
||||
* McSkaf <mcskaf@unrealircd.org>
|
||||
* Zogg <zogg@unrealircd.org>
|
||||
* NiQuiL <niquil@unrealircd.org>
|
||||
* assyrian <assyrian@unrealircd.org>
|
||||
* nighthawk <nighthawk@unrealircd.com>
|
||||
* DrBin <drbin@unrealircd.com>
|
||||
* llthangel <llthangel@unrealircd.org>
|
||||
* Griever <griever@unrealircd.com>
|
||||
|
||||
Documentation:
|
||||
==============
|
||||
* CKnight^ <cknight@unrealircd.com>
|
||||
|
||||
Precenses on the Internet:
|
||||
* http://www.unrealircd.com
|
||||
|
||||
CVS
|
||||
====
|
||||
To get anonymous access: (read only)
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot login"
|
||||
|
||||
press enter when asked for password
|
||||
Then, choose the appropiate branch you want:
|
||||
|
||||
latest 3.2 release ("stable"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r stable -d Unreal-stable unreal"
|
||||
|
||||
latest 3.2 fixes / development ("unreal3_2_fixes"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r unreal3_2_fixes -d Unreal-stable unreal"
|
||||
|
||||
To get support
|
||||
================
|
||||
Before asking others for help you MUST:
|
||||
* read the docs (doc/unreal32docs.html or online: www.unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIrcd/faq/)
|
||||
|
||||
Means of support:
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
|
||||
[Note: Follow the bots instructions in order to get voice.
|
||||
Please be patient after asking questions, we may do other stuff
|
||||
or we're away. Don't repeat questions, we heard you first time,
|
||||
READ THE TOPIC before you ask anything. We do this on a free
|
||||
base so we are volunteeringly helping you, but we are humans
|
||||
like you, and we got to have peace at times as well.]
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
* Mailing list: unreal-users@lists.sourceforge.net
|
||||
(http://lists.sourceforge.net/lists/listinfo/unreal-users also
|
||||
has links to the archive).
|
||||
|
||||
UnrealIRCd Bugtracker (Where to report bugs or make suggestions)
|
||||
==================================================================
|
||||
http://bugs.unrealircd.org
|
||||
|
||||
Want to discuss, chat, etc?
|
||||
=============================
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #UnrealIRCd
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
alias identify {
|
||||
format "^#" {
|
||||
target chanserv;
|
||||
nick chanserv;
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target nickserv;
|
||||
nick nickserv;
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
@@ -16,12 +16,12 @@ alias identify {
|
||||
|
||||
alias services {
|
||||
format "^#" {
|
||||
target chanserv;
|
||||
nick chanserv;
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target nickserv;
|
||||
nick nickserv;
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
@@ -30,12 +30,12 @@ alias services {
|
||||
|
||||
alias register {
|
||||
format "^#" {
|
||||
target chanserv;
|
||||
nick chanserv;
|
||||
type services;
|
||||
parameters "REGISTER %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target nickserv;
|
||||
nick nickserv;
|
||||
type services;
|
||||
parameters "REGISTER %1-";
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
/* Anope Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { nick operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias hs { nick helpserv; type services; };
|
||||
alias botserv { type services; };
|
||||
alias bs { nick botserv; type services; };
|
||||
alias hostserv { type services; };
|
||||
alias hs { nick hostserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/* Auspice Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias hs { nick helpserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { nick operserv; type services; };
|
||||
alias rootserv { type services; };
|
||||
alias rs { nick rootserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -0,0 +1,12 @@
|
||||
/* Cygnus Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias rootserv { type services; };
|
||||
alias rs { nick rootserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -0,0 +1,16 @@
|
||||
/* Epona Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { nick operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias hs { nick helpserv; type services; };
|
||||
alias botserv { type services; };
|
||||
alias bs { nick botserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -0,0 +1,14 @@
|
||||
/* Generic Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { nick operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias hs { nick helpserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generic StatServ Aliases */
|
||||
|
||||
alias statserv { type stats; };
|
||||
alias ss { target statserv; type stats; };
|
||||
alias ss { nick statserv; type stats; };
|
||||
@@ -0,0 +1,17 @@
|
||||
/* IRCServices Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { nick nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { nick chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { nick memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { nick operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias hs { nick helpserv; type services; };
|
||||
alias irciihelp { type services; };
|
||||
alias statserv { type services; };
|
||||
alias ss { nick statserv; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,6 +1,6 @@
|
||||
/* OperStats Aliases */
|
||||
|
||||
alias operserv { type stats; };
|
||||
alias os { target operserv; type stats; };
|
||||
alias os { nick operserv; type stats; };
|
||||
alias statserv { type stats; };
|
||||
alias ss { target statserv; type stats; };
|
||||
alias ss { nick statserv; type stats; };
|
||||
@@ -1,10 +0,0 @@
|
||||
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
|
||||
Vendored
+141
@@ -0,0 +1,141 @@
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
dnl Macro: unet_CHECK_TYPE_SIZES
|
||||
dnl
|
||||
dnl Check the size of several types and define a valid int16_t and int32_t.
|
||||
dnl
|
||||
AC_DEFUN(unreal_CHECK_TYPE_SIZES,
|
||||
[dnl Check type sizes
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
if test "$ac_cv_sizeof_int" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, int)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, short)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned short)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 16 bits])
|
||||
fi
|
||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, int)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, short)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned short)
|
||||
elif test "$ac_cv_sizeof_long" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, long)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned long)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 32 bits])
|
||||
fi
|
||||
AC_CHECK_SIZEOF(rlim_t)
|
||||
if test "$ac_cv_sizeof_rlim_t" = 8 ; then
|
||||
AC_DEFINE(LONG_LONG_RLIM_T)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(CHECK_LIBCURL,
|
||||
[
|
||||
AC_ARG_ENABLE(libcurl,
|
||||
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
|
||||
[
|
||||
CURLCFLAG=`$enableval/bin/curl-config --cflags`
|
||||
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
|
||||
CURLLIBS=`$enableval/bin/curl-config --libs`
|
||||
|
||||
dnl curl-7.11.0 and up will include the ares info, older versions do not
|
||||
if test "x`echo $CURLLIBS |grep .*ares.*`" = x ; then
|
||||
CURLLIBS="$CURLLIBS -lares"
|
||||
fi
|
||||
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||
URL="url.o"
|
||||
AC_SUBST(URL)
|
||||
])
|
||||
])
|
||||
|
||||
dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostler@juniper.net>
|
||||
|
||||
AC_DEFUN([CHECK_SSL],
|
||||
[
|
||||
AC_ARG_ENABLE(ssl,
|
||||
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr])],
|
||||
[
|
||||
AC_MSG_CHECKING(for openssl)
|
||||
for dir in $enableval /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do
|
||||
ssldir="$dir"
|
||||
if test -f "$dir/include/openssl/ssl.h"; then
|
||||
AC_MSG_RESULT(found in $ssldir/include/openssl)
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break;
|
||||
fi
|
||||
if test -f "$dir/include/ssl.h"; then
|
||||
AC_MSG_RESULT(found in $ssldir/include)
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test x_$found_ssl != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ssl support)
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
||||
fi
|
||||
AC_DEFINE(USE_SSL)
|
||||
fi
|
||||
],
|
||||
)
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
[
|
||||
AC_ARG_ENABLE(ziplinks,
|
||||
[AC_HELP_STRING([--enable-ziplinks],[enable ziplinks will check /usr/local /usr /usr/pkg])],
|
||||
[
|
||||
AC_MSG_CHECKING(for zlib)
|
||||
for dir in $enableval /usr/local /usr /usr/pkg; do
|
||||
zlibdir="$dir"
|
||||
if test -f "$dir/include/zlib.h"; then
|
||||
AC_MSG_RESULT(found in $zlibdir)
|
||||
found_zlib="yes";
|
||||
if test "$zlibdir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -DZIP_LINKS";
|
||||
else
|
||||
CFLAGS="$CFLAGS -I$zlibdir/include -DZIP_LINKS";
|
||||
fi
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if test x_$found_zlib != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ziplink support)
|
||||
else
|
||||
IRCDLIBS="$IRCDLIBS -lz";
|
||||
if test "$zlibdir" != "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$zlibdir/lib";
|
||||
fi
|
||||
HAVE_ZLIB=yes
|
||||
fi
|
||||
AC_SUBST(HAVE_ZLIB)
|
||||
],
|
||||
)
|
||||
])
|
||||
Vendored
-1438
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,400 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(src/ircd.c)
|
||||
if test $# = 0; then
|
||||
echo "You might want to run ./Config or provide some parameters to this script."
|
||||
echo "./configure --help for information about this script"
|
||||
exit 0
|
||||
fi
|
||||
AC_CONFIG_HEADER(include/setup.h)
|
||||
AC_PROG_CC
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
AC_CACHE_CHECK(if gcc has a working -pipe, ac_cv_pipe, [
|
||||
save_cflags="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -pipe"
|
||||
AC_TRY_COMPILE(,, ac_cv_pipe="yes", ac_cv_pipe="no")
|
||||
CFLAGS="$save_cflags"
|
||||
])
|
||||
if test "$ac_cv_pipe" = "yes"; then
|
||||
CFLAGS="-pipe $CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
AC_PATH_PROG(OPENSSLPATH,openssl)
|
||||
AC_PATH_PROG(INSTALL,install)
|
||||
AC_CHECK_PROG(MAKER, gmake, gmake, make)
|
||||
AC_PATH_PROG(GMAKE,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) IRCDLIBS="$IRCDLIBS-ldescrypt " MKPASSWDLIBS="-ldescrypt"],
|
||||
AC_CHECK_LIB(crypt, crypt,[ AC_DEFINE(HAVE_CRYPT) 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_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
|
||||
dnl module checking based on Hyb7's module checking code
|
||||
AC_DEFUN(AC_ENABLE_DYN,
|
||||
[
|
||||
AC_CHECK_FUNC(dlopen,, AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
||||
[
|
||||
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
|
||||
AC_DEFINE(STATIC_LINKING)
|
||||
]))
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -export-dynamic"
|
||||
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
||||
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
||||
if test "$ac_cv_export_dynamic" = "no"; then
|
||||
CFLAGS=$hold_cflags
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
ac_cv_pic="-fPIC -DPIC -shared"
|
||||
case `uname -s` in
|
||||
Darwin*[)]
|
||||
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case `uname -s` in
|
||||
SunOS*[)]
|
||||
ac_cv_pic="-KPIC -DPIC -G"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
|
||||
cat >uscore.c << __EOF__
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
__EOF__
|
||||
$CC -o uscore $CFLAGS uscore.c 1>&5
|
||||
if test -z "`strings -a uscore |grep '^_main$'`"; then
|
||||
ac_cv_underscore=no
|
||||
else
|
||||
ac_cv_underscore=yes
|
||||
fi
|
||||
rm -f uscore uscore.c
|
||||
])
|
||||
if test "$ac_cv_underscore" = "yes"; then
|
||||
AC_DEFINE(UNDERSCORE)
|
||||
fi
|
||||
|
||||
MODULEFLAGS=$ac_cv_pic
|
||||
AC_DEFINE(DYNAMIC_LINKING)
|
||||
])
|
||||
AC_DEFUN(AC_ENABLE_INET6,[
|
||||
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>
|
||||
int main() {
|
||||
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
], ac_cv_ip6=yes, ac_cv_ip6=no)
|
||||
])
|
||||
if test "$ac_cv_ip6" = "no"; then
|
||||
AC_MSG_WARN(Your system does not support IPv6 so it will not be enabled)
|
||||
else
|
||||
AC_DEFINE(INET6)
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
])
|
||||
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(PARAMH))
|
||||
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(STDLIBH))
|
||||
AC_CHECK_HEADER(stddef.h,AC_DEFINE(STDDEFH))
|
||||
AC_CHECK_HEADER(sys/syslog.h,AC_DEFINE(SYSSYSLOGH))
|
||||
AC_CHECK_HEADER(unistd.h,AC_DEFINE(UNISTDH))
|
||||
AC_CHECK_HEADER(string.h,AC_DEFINE(STRINGH))
|
||||
AC_CHECK_HEADER(strings.h,AC_DEFINE(STRINGSH))
|
||||
AC_CHECK_HEADER(malloc.h,AC_DEFINE(MALLOCH,<malloc.h>))
|
||||
AC_CHECK_HEADER(sys/rusage.h,AC_DEFINE(RUSAGEH))
|
||||
AC_CHECK_HEADER(glob.h,AC_DEFINE(GLOBH))
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_SIZE_T
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
AC_TYPE_UID_T
|
||||
unreal_CHECK_TYPE_SIZES
|
||||
|
||||
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)
|
||||
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
|
||||
AC_DEFINE(NBLOCK_BSD)
|
||||
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
|
||||
AC_DEFINE(NBLOCK_SYSV)
|
||||
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))
|
||||
AC_CHECK_FUNCS(vsnprintf,AC_DEFINE(HAVE_VSNPRINTF))
|
||||
AC_CHECK_FUNCS(strlcpy, AC_DEFINE(HAVE_STRLCPY))
|
||||
AC_CHECK_FUNCS(strlcat, AC_DEFINE(HAVE_STRLCAT))
|
||||
AC_CHECK_FUNCS(strlncat, AC_DEFINE(HAVE_STRLNCAT))
|
||||
|
||||
AC_CACHE_CHECK(if we can set the core size to unlimited, ac_cv_force_core,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
int main() {
|
||||
struct rlimit corelim;
|
||||
corelim.rlim_cur = corelim.rlim_max = RLIM_INFINITY;
|
||||
if (setrlimit(RLIMIT_CORE, &corelim))
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],ac_cv_force_core=yes,ac_cv_force_core=no)
|
||||
])
|
||||
if test "$ac_cv_force_core" = "yes"; then
|
||||
AC_DEFINE(FORCE_CORE)
|
||||
fi
|
||||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS(gettimeofday,AC_DEFINE(GETTIMEOFDAY),[AC_CHECK_FUNCS(lrand48,AC_DEFINE(LRADN48))])
|
||||
AC_CHECK_FUNCS(getrusage,AC_DEFINE(GETRUSAGE_2),[AC_CHECK_FUNCS(times,AC_DEFINE(TIMES_2))])
|
||||
AC_CHECK_FUNCS(setproctitle,AC_DEFINE(HAVE_SETPROCTITLE),[
|
||||
AC_CHECK_LIB(util,setproctitle,AC_DEFINE(HAVE_SETPROCTITLE) IRCDLIBS="$IRCDLIBS-lutil",[
|
||||
AC_EGREP_HEADER([#define.*PS_STRINGS.*],sys/exec.h,AC_DEFINE(HAVE_PSSTRINGS),[
|
||||
AC_CHECK_FUNCS(pstat,AC_DEFINE(HAVE_PSTAT))
|
||||
])
|
||||
])
|
||||
])
|
||||
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)
|
||||
elif test "$ac_cv_sigtype" = "BSD"; then
|
||||
AC_DEFINE(BSD_RELIABLE_SIGNALS)
|
||||
else
|
||||
AC_DEFINE(SYSV_UNRELIABLE_SIGNALS)
|
||||
fi
|
||||
AC_CHECK_FUNCS(strtoken,,AC_DEFINE(NEED_STRTOKEN))
|
||||
AC_CHECK_FUNCS(strtok,,AC_DEFINE(NEED_STRTOK))
|
||||
AC_CHECK_FUNCS(strerror,,AC_DEFINE(NEED_STRERROR))
|
||||
AC_CHECK_FUNCS(index,,AC_DEFINE(NOINDEX))
|
||||
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
|
||||
AC_CHECK_FUNCS(bcopy,,AC_DEFINE(NEED_BCOPY))
|
||||
AC_CHECK_FUNCS(bcmp,,AC_DEFINE(NEED_BCMP))
|
||||
AC_CHECK_FUNCS(bzero,,AC_DEFINE(NEED_BZERO))
|
||||
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE(GOT_STRCASECMP))
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB $INETLIB"
|
||||
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE(NEED_INET_ADDR))
|
||||
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE(NEED_INET_NTOA))
|
||||
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE(NEED_INET_NETOF))
|
||||
LIBS="$save_libs"
|
||||
AC_CHECK_FUNCS(syslog,AC_DEFINE(HAVE_SYSLOG))
|
||||
AC_CHECK_FUNCS(vsyslog,AC_DEFINE(HAVE_VSYSLOG))
|
||||
AC_SUBST(STRTOUL)
|
||||
AC_SUBST(CRYPTOLIB)
|
||||
AC_SUBST(MODULEFLAGS)
|
||||
AC_ARG_WITH(listen, [AC_HELP_STRING([--with-listen=backlog],[Specify the listen backlog value])],
|
||||
AC_DEFINE_UNQUOTED(LISTEN_SIZE,$withval),AC_DEFINE(LISTEN_SIZE,5))
|
||||
AC_ARG_WITH(nick-history, [AC_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
||||
AC_DEFINE_UNQUOTED(NICKNAMEHISTORYLENGTH,$withval), AC_DEFINE(NICKNAMEHISTORYLENGTH,2000))
|
||||
AC_ARG_WITH(sendq, [AC_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
|
||||
AC_DEFINE_UNQUOTED(MAXSENDQLENGTH,$withval),AC_DEFINE(MAXSENDQLENGTH,3000000))
|
||||
AC_ARG_WITH(bufferpool, [AC_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
||||
AC_DEFINE_UNQUOTED(BUFFERPOOL,[($withval * MAXSENDQLENGTH)]),AC_DEFINE(BUFFERPOOL,[(18 * MAXSENDQLENGTH)]))
|
||||
AC_ARG_WITH(hostname, [AC_HELP_STRING([--with-hostname=host],[Specify the local hostname of the server])], AC_DEFINE_UNQUOTED(DOMAINNAME,"$withval"),AC_DEFINE_UNQUOTED(DOMAINNAME,"`hostname`"))
|
||||
AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`")
|
||||
AC_ARG_WITH(permissions, [AC_HELP_STRING([--with-permissions=permissions],[Specify the default permissions for
|
||||
configuration files])], AC_DEFINE_UNQUOTED(DEFAULT_PERMISSIONS,$withval), AC_DEFINE(DEFAULT_PERMISSIONS, 0600))
|
||||
AC_ARG_WITH(dpath, [AC_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
||||
AC_DEFINE_UNQUOTED(DPATH, "$withval") IRCDDIR="$withval"; mkdir $withval/tmp, AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`" mkdir `pwd`/tmp)
|
||||
AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the max file descriptors to use])],
|
||||
ac_fd=$withval, ac_fd=1024)
|
||||
AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $ac_fd)
|
||||
AC_ARG_WITH(spath, [AC_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
||||
AC_DEFINE_UNQUOTED(SPATH,"$withval") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
||||
AC_ARG_ENABLE(nospoof, [AC_HELP_STRING([--enable-nospoof],[Enable spoofing protection])], AC_DEFINE(NOSPOOF))
|
||||
AC_ARG_ENABLE(prefixaq, [AC_HELP_STRING([--enable-prefixaq],[Enable chanadmin and chanowner prefixes])], AC_DEFINE(PREFIX_AQ))
|
||||
AC_ARG_ENABLE(hub, [AC_HELP_STRING([--enable-hub],[Compile as a hub server])], AC_DEFINE(HUB))
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
CHECK_LIBCURL
|
||||
AC_ARG_ENABLE(dynamic-linking, [AC_HELP_STRING([--enable-dynamic-linking],[Make the IRCd dynamically link shared objects rather than statically])], AC_ENABLE_DYN, AC_DEFINE(STATIC_LINKING))
|
||||
AC_ARG_ENABLE(inet6, [AC_HELP_STRING([--enable-inet6],[Make the IRCd support IPv6])], AC_ENABLE_INET6)
|
||||
AC_SUBST(IRCDDIR)
|
||||
AC_SUBST(BINDIR)
|
||||
AC_MSG_CHECKING(if FD_SETSIZE is large enough to allow $ac_fd file descriptors)
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
int main() {
|
||||
if (FD_SETSIZE >= $ac_fd)
|
||||
exit(0);
|
||||
exit(1);
|
||||
}
|
||||
], AC_MSG_RESULT(yes), [
|
||||
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
AC_SUBST(FD_SETSIZE)
|
||||
case `uname -s` in
|
||||
*SunOS*)
|
||||
CFLAGS="$CFLAGS -D_SOLARIS"
|
||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
*solaris*)
|
||||
CFLAGS="$CFLAGS -D_SOLARIS"
|
||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW RELEASE!
|
||||
tre_version="0.6.6"
|
||||
AC_MSG_RESULT(extracting TRE regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old tre directory to force a recompile...
|
||||
rm -rf tre-$tre_version
|
||||
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 --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
$ac_cv_prog_MAKER
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
$ac_cv_prog_MAKER install
|
||||
TREINCDIR="$cur_dir/extras/regexp/include"
|
||||
AC_SUBST(TREINCDIR)
|
||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||
TRELIBS="-L../extras/regexp/lib -ltre"
|
||||
else
|
||||
TRELIBS=`$ac_cv_path_PKGCONFIG --libs tre.pc`
|
||||
fi
|
||||
AC_SUBST(TRELIBS)
|
||||
cd $cur_dir
|
||||
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
@@ -1,72 +0,0 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the current language's compiler
|
||||
# or gives an error. (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||
# force the compiler to issue an error when a bad flag is given.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_COMPILE_FLAGS
|
||||
@@ -1,71 +0,0 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the linker or gives an error.
|
||||
# (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the linker's default flags
|
||||
# when the check is done. The check is thus made with the flags: "LDFLAGS
|
||||
# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
|
||||
# issue an error when a bad flag is given.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_CHECK_LINK_FLAG],
|
||||
[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS $4 $1"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
LDFLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_LINK_FLAGS
|
||||
@@ -1,332 +0,0 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro figures out how to build C programs using POSIX threads. It
|
||||
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
||||
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
||||
# flags that are needed. (The user can also force certain compiler
|
||||
# flags/libs to be tested by setting these environment variables.)
|
||||
#
|
||||
# Also sets PTHREAD_CC to any special C compiler that is needed for
|
||||
# multi-threaded programs (defaults to the value of CC otherwise). (This
|
||||
# is necessary on AIX to use the special cc_r compiler alias.)
|
||||
#
|
||||
# NOTE: You are assumed to not only compile your program with these flags,
|
||||
# but also link it with them as well. e.g. you should link with
|
||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||
#
|
||||
# If you are only building threads programs, you may wish to use these
|
||||
# variables in your default LIBS, CFLAGS, and CC:
|
||||
#
|
||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
||||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
# CC="$PTHREAD_CC"
|
||||
#
|
||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
||||
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
|
||||
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
#
|
||||
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
|
||||
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
|
||||
# PTHREAD_CFLAGS.
|
||||
#
|
||||
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
||||
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
||||
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
||||
# will define HAVE_PTHREAD.
|
||||
#
|
||||
# Please let the authors know if this macro fails on any platform, or if
|
||||
# you have any other suggestions or comments. This macro was based on work
|
||||
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
||||
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
||||
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
||||
# grateful for the helpful feedback of numerous users.
|
||||
#
|
||||
# Updated for Autoconf 2.68 by Daniel Richard G.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 21
|
||||
|
||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||
AC_DEFUN([AX_PTHREAD], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_PUSH([C])
|
||||
ax_pthread_ok=no
|
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h
|
||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
||||
# It gets checked for in the link test anyway.
|
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||
# etcetera environment variables, and if threads linking works using
|
||||
# them:
|
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
||||
AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
fi
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
# We must check for the threads library under a number of different
|
||||
# names; the ordering is very important because some systems
|
||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
||||
# libraries is broken (non-POSIX).
|
||||
|
||||
# Create a list of thread flags to try. Items starting with a "-" are
|
||||
# C compiler flags, and other items are library names, except for "none"
|
||||
# which indicates that we try without any flags at all, and "pthread-config"
|
||||
# which is a program returning the flags for the Pth emulation library.
|
||||
|
||||
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the
|
||||
# individual items follow:
|
||||
|
||||
# pthreads: AIX (must check this before -lpthread)
|
||||
# none: in case threads are in libc; should be tried before -Kthread and
|
||||
# other compiler flags to prevent continual compiler warnings
|
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
||||
# -pthreads: Solaris/gcc
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
||||
# also defines -D_REENTRANT)
|
||||
# ... -mt is also the pthreads flag for HP/aCC
|
||||
# pthread: Linux, etcetera
|
||||
# --thread-safe: KAI C++
|
||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||
|
||||
case ${host_os} in
|
||||
solaris*)
|
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed
|
||||
# (non-functional) versions of the pthreads routines, so link-based
|
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
||||
# a function called by this macro, so we could check for that, but
|
||||
# who knows whether they'll stub that too in a future libc.) So,
|
||||
# we'll just look for -pthreads and -lpthread first:
|
||||
|
||||
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
darwin*)
|
||||
ax_pthread_flags="-pthread $ax_pthread_flags"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clang doesn't consider unrecognized options an error unless we specify
|
||||
# -Werror. We throw in some extra Clang-specific options to ensure that
|
||||
# this doesn't happen for GCC, which also accepts -Werror.
|
||||
|
||||
AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
|
||||
save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_extra_flags="-Werror"
|
||||
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[ax_pthread_extra_flags=
|
||||
AC_MSG_RESULT([no])])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
for flag in $ax_pthread_flags; do
|
||||
|
||||
case $flag in
|
||||
none)
|
||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||
;;
|
||||
|
||||
-*)
|
||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
||||
PTHREAD_CFLAGS="$flag"
|
||||
;;
|
||||
|
||||
pthread-config)
|
||||
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
||||
if test x"$ax_pthread_config" = xno; then continue; fi
|
||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
||||
PTHREAD_LIBS="-l$flag"
|
||||
;;
|
||||
esac
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
|
||||
|
||||
# Check for various functions. We must include pthread.h,
|
||||
# since some functions may be macros. (On the Sequent, we
|
||||
# need a special flag -Kthread to make this header compile.)
|
||||
# We check for pthread_join because it is in -lpthread on IRIX
|
||||
# while pthread_create is in libc. We check for pthread_attr_init
|
||||
# due to DEC craziness with -lpthreads. We check for
|
||||
# pthread_cleanup_push because it is one of the few pthread
|
||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||
# We try pthread_create on general principles.
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
|
||||
static void routine(void *a) { a = 0; }
|
||||
static void *start_routine(void *a) { return a; }],
|
||||
[pthread_t th; pthread_attr_t attr;
|
||||
pthread_create(&th, 0, start_routine, 0);
|
||||
pthread_join(th, 0);
|
||||
pthread_attr_init(&attr);
|
||||
pthread_cleanup_push(routine, 0);
|
||||
pthread_cleanup_pop(0) /* ; */])],
|
||||
[ax_pthread_ok=yes],
|
||||
[])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
break;
|
||||
fi
|
||||
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
done
|
||||
fi
|
||||
|
||||
# Various other checks:
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
||||
attr_name=unknown
|
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
|
||||
[int attr = $attr; return attr /* ; */])],
|
||||
[attr_name=$attr; break],
|
||||
[])
|
||||
done
|
||||
AC_MSG_RESULT([$attr_name])
|
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||
AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
|
||||
[Define to necessary symbol if this constant
|
||||
uses a non-standard name on your system.])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
||||
flag=no
|
||||
case ${host_os} in
|
||||
aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
|
||||
osf* | hpux*) flag="-D_REENTRANT";;
|
||||
solaris*)
|
||||
if test "$GCC" = "yes"; then
|
||||
flag="-D_REENTRANT"
|
||||
else
|
||||
# TODO: What about Clang on Solaris?
|
||||
flag="-mt -D_REENTRANT"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$flag])
|
||||
if test "x$flag" != xno; then
|
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||
[[int i = PTHREAD_PRIO_INHERIT;]])],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
||||
])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
|
||||
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
# More AIX lossage: compile with *_r variant
|
||||
if test "x$GCC" != xyes; then
|
||||
case $host_os in
|
||||
aix*)
|
||||
AS_CASE(["x/$CC"],
|
||||
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
|
||||
[#handle absolute path differently from PATH based program lookup
|
||||
AS_CASE(["x$CC"],
|
||||
[x/*],
|
||||
[AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
|
||||
[AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
|
||||
|
||||
AC_SUBST([PTHREAD_LIBS])
|
||||
AC_SUBST([PTHREAD_CFLAGS])
|
||||
AC_SUBST([PTHREAD_CC])
|
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||
if test x"$ax_pthread_ok" = xyes; then
|
||||
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
||||
:
|
||||
else
|
||||
ax_pthread_ok=no
|
||||
$2
|
||||
fi
|
||||
AC_LANG_POP
|
||||
])dnl AX_PTHREAD
|
||||
@@ -1,225 +0,0 @@
|
||||
#serial 1
|
||||
|
||||
dnl Macro: unreal_CHECK_TYPE_SIZES
|
||||
dnl originally called unet_CHECK_TYPE_SIZES
|
||||
dnl
|
||||
dnl Check the size of several types and define a valid int16_t and int32_t.
|
||||
dnl
|
||||
AC_DEFUN([unreal_CHECK_TYPE_SIZES],
|
||||
[dnl Check type sizes
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
if test "$ac_cv_sizeof_int" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, int)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, short)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned short)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 16 bits])
|
||||
fi
|
||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, int)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, short)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned short)
|
||||
elif test "$ac_cv_sizeof_long" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, long)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned long)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 32 bits])
|
||||
fi
|
||||
AC_CHECK_SIZEOF(rlim_t)
|
||||
if test "$ac_cv_sizeof_rlim_t" = 8 ; then
|
||||
AC_DEFINE([LONG_LONG_RLIM_T], [], [Define if rlim_t is long long])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_LIBCURL],
|
||||
[
|
||||
AC_ARG_ENABLE(libcurl,
|
||||
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
|
||||
[enable_curl=$enableval],
|
||||
[enable_curl=no])
|
||||
|
||||
AS_IF([test "x$enable_curl" != "xno"],
|
||||
[
|
||||
dnl sane, default directory for Operating System-managed libcURL
|
||||
dnl (when --enable-libcurl is passed without any arguments). On
|
||||
dnl systems with stuff in /usr/local, /usr/local/bin should already
|
||||
dnl be in PATH. On sane systems, this will invoke the curl-config
|
||||
dnl installed by the package manager.
|
||||
CURLCONFIG="curl-config"
|
||||
AS_IF([test "x$enable_curl" != "xyes"],
|
||||
[CURLCONFIG="$enable_curl/bin/curl-config"])
|
||||
|
||||
AC_MSG_CHECKING([$CURLCONFIG])
|
||||
AS_IF([$CURLCONFIG --version 2>/dev/null >/dev/null],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_FAILURE([Could not find curl-config, try editing --enable-libcurl])])
|
||||
|
||||
CURLCFLAG="`$CURLCONFIG --cflags`"
|
||||
CURLLIBS="`$CURLCONFIG --libs`"
|
||||
|
||||
dnl This test must be this way because of #3981
|
||||
AS_IF([$CURLCONFIG --libs | grep -q -e ares],
|
||||
[CURLUSESCARES="1"],
|
||||
[CURLUSESCARES="0"])
|
||||
|
||||
dnl sanity warnings
|
||||
AS_IF([test -z "${CURLLIBS}"],
|
||||
[AC_MSG_WARN([CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config])])
|
||||
|
||||
dnl Ok this is ugly, basically we need to strip the version of c-ares that curl uses
|
||||
dnl because we want to use our own version (which is hopefully fully binary
|
||||
dnl compatible with the curl one as well).
|
||||
dnl Therefore we need to strip the cares libs in a weird way...
|
||||
dnl If anyone can come up with something better and still portable (no awk!?)
|
||||
dnl then let us know. -- Syzop
|
||||
dnl
|
||||
dnl It is dangerous to mix and match cURL with potentially ABI-incompatible versions of
|
||||
dnl c-ares, just use --with-system-cares.
|
||||
dnl Thus, make sure to use --with-system-cares when using system-cURL. If the user
|
||||
dnl wants bundled c-ares + system libcURL, then we should filter out c-ares
|
||||
dnl flags. _Only_ in that case should we mess with the flags. -- ohnobinki
|
||||
|
||||
AS_IF([test "x$has_system_cares" = "xno" && test "x$BUILDDIR/extras/curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ],
|
||||
[
|
||||
AC_MSG_ERROR([[
|
||||
|
||||
You have decided to build unrealIRCd with libcURL (remote includes) support.
|
||||
However, you have system-installed c-ares support has either been disabled
|
||||
(--without-system-cares) or is unavailable.
|
||||
Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible
|
||||
with the system-installed libcURL, this is a bad idea which may result in error
|
||||
messages looking like:
|
||||
|
||||
\`\`[error] unrealircd.conf:9: include: error downloading '(http://example.net/ex.conf)': Could not resolve host: example.net (Successful completion)''
|
||||
|
||||
Or UnrealIRCd might even crash.
|
||||
|
||||
Please build UnrealIRCd with --with-system-cares when enabling --enable-libcurl
|
||||
]])
|
||||
])
|
||||
|
||||
dnl Make sure that linking against cURL works rather than letting the user
|
||||
dnl find out after compiling most of his program. ~ohnobinki
|
||||
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||
CFLAGS="$CFLAGS $CURLCFLAG"
|
||||
AC_DEFINE([USE_LIBCURL], [], [Define if you have libcurl installed to get remote includes and MOTD support])
|
||||
|
||||
AC_MSG_CHECKING([curl_easy_init() in $CURLLIBS])
|
||||
LIBS_SAVEDA="$LIBS"
|
||||
CFLAGS_SAVEDA="$CFLAGS"
|
||||
|
||||
LIBS="$IRCDLIBS $IRCDLIBS_CURL_CARES"
|
||||
CFLAGS="$CFLAGS $CFLAGS_CURL_CARES"
|
||||
AC_LINK_IFELSE(
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[[#include <curl/curl.h>]],
|
||||
[[CURL *curl = curl_easy_init();]])
|
||||
],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_FAILURE([You asked for libcURL (remote includes) support, but it can't be found at $enable_curl])
|
||||
])
|
||||
LIBS="$LIBS_SAVEDA"
|
||||
CFLAGS="$CFLAGS_SAVEDA"
|
||||
|
||||
URL="url.o"
|
||||
AC_SUBST(URL)
|
||||
]) dnl AS_IF(enable_curl)
|
||||
])
|
||||
|
||||
dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostler@juniper.net>
|
||||
|
||||
AC_DEFUN([CHECK_SSL],
|
||||
[
|
||||
AC_ARG_ENABLE(ssl,
|
||||
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr])],
|
||||
[],
|
||||
[enable_ssl=no])
|
||||
AS_IF([test $enable_ssl != "no"],
|
||||
[
|
||||
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
|
||||
AC_MSG_RESULT([found in $ssldir/include/openssl])
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/include/ssl.h"; then
|
||||
AC_MSG_RESULT([found in $ssldir/include])
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test x_$found_ssl != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
echo ""
|
||||
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
|
||||
echo "The following packages are required:"
|
||||
echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'"
|
||||
echo "2) The binary package is usually called 'openssl'."
|
||||
echo "NOTE: you or your system administrator needs to install the library AND the binary package."
|
||||
echo "After doing so, simply re-run ./Config"
|
||||
exit 1
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
||||
fi
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_SSL_CTX_SET1_CURVES_LIST],
|
||||
[
|
||||
AC_MSG_CHECKING([for SSL_CTX_set1_curves_list 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_set1_curves_list(ctx, "test");],
|
||||
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_SET1_CURVES_LIST], [], [Define if ssl library has SSL_CTX_set1_curves_list])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_SSL_CTX_SET_MIN_PROTO_VERSION],
|
||||
[
|
||||
AC_MSG_CHECKING([for SSL_CTX_set_min_proto_version 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_min_proto_version(ctx, TLS1_VERSION);],
|
||||
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_MIN_PROTO_VERSION], [], [Define if ssl library has SSL_CTX_set_min_proto_version])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "${0}")"
|
||||
|
||||
ACLOCAL_AMFLAGS=(-I autoconf/m4)
|
||||
|
||||
aclocal "${ACLOCAL_AMFLAGS[@]}"
|
||||
autoconf
|
||||
autoheader
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword channel { word "pussy"; };
|
||||
badword channel { word "fuck"; };
|
||||
badword channel { word "whore"; };
|
||||
badword channel { word "slut"; };
|
||||
badword channel { word "shit"; };
|
||||
badword channel { word "asshole"; };
|
||||
badword channel { word "bitch"; };
|
||||
badword channel { word "cunt"; };
|
||||
badword channel { word "vagina"; };
|
||||
badword channel { word "penis"; };
|
||||
badword channel { word "jackass"; };
|
||||
badword channel { word "*fucker*"; };
|
||||
badword channel { word "faggot"; };
|
||||
badword channel { word "fag"; };
|
||||
badword channel { word "horny"; };
|
||||
badword channel { word "gay"; };
|
||||
badword channel { word "dickhead"; };
|
||||
badword channel { word "sonuvabitch"; };
|
||||
badword channel { word "*fuck*"; };
|
||||
badword channel { word "tits"; };
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badword messages@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword message { word "pussy"; };
|
||||
badword message { word "fuck"; };
|
||||
badword message { word "whore"; };
|
||||
badword message { word "slut"; };
|
||||
badword message { word "shit"; };
|
||||
badword message { word "asshole"; };
|
||||
badword message { word "bitch"; };
|
||||
badword message { word "cunt"; };
|
||||
badword message { word "vagina"; };
|
||||
badword message { word "penis"; };
|
||||
badword message { word "jackass"; };
|
||||
badword message { word "*fucker*"; };
|
||||
badword message { word "faggot"; };
|
||||
badword message { word "fag"; };
|
||||
badword message { word "horny"; };
|
||||
badword message { word "gay"; };
|
||||
badword message { word "dickhead"; };
|
||||
badword message { word "sonuvabitch"; };
|
||||
badword message { word "*fuck*"; };
|
||||
badword message { word "tits"; };
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that quit message censoring
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badword badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword quit { word "pussy"; };
|
||||
badword quit { word "fuck"; };
|
||||
badword quit { word "whore"; };
|
||||
badword quit { word "slut"; };
|
||||
badword quit { word "shit"; };
|
||||
badword quit { word "asshole"; };
|
||||
badword quit { word "bitch"; };
|
||||
badword quit { word "cunt"; };
|
||||
badword quit { word "vagina"; };
|
||||
badword quit { word "penis"; };
|
||||
badword quit { word "jackass"; };
|
||||
badword quit { word "*fucker*"; };
|
||||
badword quit { word "faggot"; };
|
||||
badword quit { word "fag"; };
|
||||
badword quit { word "horny"; };
|
||||
badword quit { word "gay"; };
|
||||
badword quit { word "dickhead"; };
|
||||
badword quit { word "sonuvabitch"; };
|
||||
badword quit { word "*fuck*"; };
|
||||
badword quit { word "tits"; };
|
||||
Vendored
+1360
File diff suppressed because it is too large
Load Diff
Vendored
+166
-601
File diff suppressed because it is too large
Load Diff
-1000
File diff suppressed because it is too large
Load Diff
Executable
+66
@@ -0,0 +1,66 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test "x$1" = x -o "x$2" = x ; then
|
||||
echo "Syntax:"
|
||||
echo "curlinstall ares_path libcurl_path"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
save_PWD=`pwd`
|
||||
echo "Installing ares"
|
||||
cd $1
|
||||
./configure --prefix=$HOME/ares && make && make install
|
||||
|
||||
SSLFLAG=""
|
||||
while [ -z "$SSLFLAG" ] ; do
|
||||
echo ""
|
||||
echo "Should libcurl be built with SSL support?"
|
||||
echo $n "-> " $c
|
||||
read cc
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
SSLFLAG="--with-ssl"
|
||||
;;
|
||||
[Nn]*)
|
||||
SSLFLAG="--without-ssl"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -f $HOME/ares/lib/libcares.a ] ; then
|
||||
if [ -f $HOME/ares/lib/libares.a ] ; then
|
||||
rm -f $HOME/ares/lib/libares.a
|
||||
fi
|
||||
cp $HOME/ares/lib/libcares.a $HOME/ares/lib/libares.a
|
||||
fi
|
||||
|
||||
echo "Installing libcurl"
|
||||
cd $2
|
||||
CPPFLAGS="-I$HOME/ares/include" ./configure --prefix=$HOME/curl --disable-shared \
|
||||
--disable-thread --enable-ares=$HOME/ares --disable-ipv6 $SSLFLAG
|
||||
cp -R $HOME/ares/lib ares
|
||||
make && make install
|
||||
|
||||
if [ -f $HOME/curl/lib/libares.a ] ; then
|
||||
rm -f $HOME/curl/lib/libares.a
|
||||
fi
|
||||
cp $HOME/ares/lib/libares.a $HOME/curl/lib
|
||||
|
||||
cd $save_PWD
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "libcurl has been installed. When running ./Config specify:"
|
||||
echo "$HOME/curl"
|
||||
echo "for the directory you installed libcurl to."
|
||||
|
||||
+6
-8
@@ -119,13 +119,11 @@ Tom Hopkins <hoppie@buengf.bu.edu> / September, October 1990:
|
||||
lines worth. :)
|
||||
|
||||
UnrealIRCd Coders
|
||||
Carsten Munk <stskeeps@unrealircd.com> / May 1999 - December 2008
|
||||
Dominick Meglio <codemastr@unrealircd.com> / June 1999 - August 2005
|
||||
David Flynn / March 2000 - June 2000
|
||||
McSkaf / June 2001 - September 2001
|
||||
Finny Merrill <griever@unrealircd.com> / November 2001 - December 2002
|
||||
Bram Matthys <syzop@unrealircd.com> / January 2002 - date
|
||||
This list is incomplete, type /INFO on IRC to find the updated list.
|
||||
Carsten Munk <stskeeps@unrealircd.com> / May 1999, date
|
||||
Dominick Meglio <codemastr@unrealircd.com> / June 1999, date
|
||||
David Flynn / March 2000, June 2000
|
||||
McSkaf / June 2001, September 2001
|
||||
Finny Merrill <griever@unrealircd.com> / November 2001, date
|
||||
|
||||
Thanks go to those persons not mentioned here who have added their advice,
|
||||
opinions, and code to IRC.
|
||||
@@ -145,4 +143,4 @@ Eric P. Scott <eps@toaster.sfsu.edu>
|
||||
Dan Goodwin <fornax@wpi.wpi.edu>
|
||||
Noah Friedman <friedman@ai.mit.edu>
|
||||
|
||||
[ $Id$ ]
|
||||
[ $Id$ ]
|
||||
@@ -1,14 +0,0 @@
|
||||
Although UnrealIRCd is a free program, we do put a great deal of time,
|
||||
effort, and money into keeping UnrealIRCd alive. If you like UnrealIRCd and
|
||||
want to support us then please consider making a donation.
|
||||
|
||||
PayPal Donation Link: https://unrealircd.org/index/donations
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than
|
||||
money, then please contact Syzop (syzop@unrealircd.com).
|
||||
|
||||
All those who donate at least a certain minimum amount will have their name
|
||||
and/or company listed in /CREDITS and will be listed on the website.
|
||||
|
||||
Thank you for your support,
|
||||
The UnrealIRCd Team
|
||||
@@ -1,66 +0,0 @@
|
||||
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
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,195 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>UnrealIRCd - 3.2 - Offical Documentation</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p> <font size="-1">I M P O R T A N T R E A D I N G</font></p>
|
||||
<p><font size="-1">(YES, YOU WILL NEED TO READ ALL OF THIS)</font></p>
|
||||
<p><font size="-1">* Unreal3.2 is a lot different than Unreal3.1.1. Forget
|
||||
all you have learned about setting up Unreal3.1.1 - this is a lot different.
|
||||
We have got a new configuration format that integrates all the former config
|
||||
files,ircd.conf, vhost.conf, chrestrict.conf, unrealircd.conf, into to one newunrealircd.conf
|
||||
(what the ircd.conf is called now). See doc/ for more information on the configuration
|
||||
format</font></p>
|
||||
<p><font size="-1">* THIS IS A BETA VERSION, REPORT BUGS ON http://bugs.unrealircd.org</font></p>
|
||||
<p><font size="-1">* We have introduced a new cloaking algorithm (+x), which makes
|
||||
it incompatible with Unreal3.1.1 - these can however still link, but the hostname
|
||||
will look different. This is made of three big numbers, configured in the config
|
||||
file - and these MUST be the same on all servers on the network. Keep these
|
||||
numbers secret, and the cloaking algorithm is uncrackable (within 55 years,
|
||||
that is). The +x algorithm was changed slightly to fix a method of cracking
|
||||
that was found. #define COMPAT_BETA4_KEYS to use the beta4 system for compatibility
|
||||
with older betas.</font></p>
|
||||
<p><font size="-1">* If you use Linux and have problems where the IRCd complains
|
||||
that MAXCONNECTIONS is larger than FD_SETSIZE, you need to get your root to
|
||||
edit /usr/include/bits/types.h - #define __FD_SETSIZE 1024 to be somenumber
|
||||
that is equal or higher than MAXCONNECTIONS. This is a problem with Linux that
|
||||
it is hard coded and non override able in some distributions. We recommend you
|
||||
use FreeBSD or the variants of this if you need to run high load IRC servers.</font></p>
|
||||
<p><font size="-1">* We use autoconf to help with compilation, and this should
|
||||
make us able to a lot more platform (we have even ported to BeOS).</font></p>
|
||||
<p><font size="-1">* We require a pthreads library for the SOCKS scan now - and
|
||||
this is now done in the background (no more waiting!).</font></p>
|
||||
<p><font size="-1">* The IRCd is now modularized, and you load modules with the
|
||||
loadmodule command. You will most likely want to add these lines:<br>
|
||||
loadmodule "src/modules/commands.so";<br>
|
||||
loadmodule "src/modules/scan.so";<br>
|
||||
loadmodule "src/modules/scan_socks.so";<br>
|
||||
loadmodule "src/modules/scan_http.so";</font></p>
|
||||
<p><font size="-1"> If you would like to code a module, doc/ will contain a module
|
||||
guide,and we got an example module in src/modules/m_dummy.c.</font></p>
|
||||
<p><font size="-1">* We have some IPv6 support, and there are some minor bugs
|
||||
in it.</font></p>
|
||||
<p><font size="-1">* The documentation is NOT yet 100% complete</font></p>
|
||||
<p><font size="-1">* We have added snomask (similar to ircu), basically this allowed
|
||||
us to remove several modes. Modes +cfFkje are gone, but don't worry, you can
|
||||
still use them. They are now added like this:</font></p>
|
||||
<p><font size="-1"> /mode yournick +s +cF</font></p>
|
||||
<p><font size="-1"> You set the flags in the second parameter of the mode command
|
||||
for a mode change +s, setting -s with no parameters removes all your snomask.
|
||||
You can remove a specific snomask by doing:</font></p>
|
||||
<p><font size="-1"> /mode yournick -s -c</font></p>
|
||||
<p><font size="-1">The current snomasks are:</font></p>
|
||||
<p><font size="-1"> c - local connects<br>
|
||||
F - far connects<br>
|
||||
f - flood notices<br>
|
||||
k - kill notices<br>
|
||||
e - 'eyes' notices<br>
|
||||
j - 'junk' notices<br>
|
||||
v - vhost notices<br>
|
||||
G - gline/shun notices<br>
|
||||
n - nick change notices<br>
|
||||
q - deny nick (Q:line) rejection notices</font></p>
|
||||
<p><font size="-1"> It shouldn't be too hard to figure out, just play around with
|
||||
it a bit :)</font></p>
|
||||
<p><font size="-1">* /who needs testing it was recorded and may contain bugs</font></p>
|
||||
<p><font size="-1">* We have added alias {} which allows you to dynamically create
|
||||
commands such as /nickserv Read example.conf for more information on how to
|
||||
create your own. To use standard ones include one of the following files</font></p>
|
||||
<p><font size="-1"> aliases/ircservices.conf (IRCServices, Daylight)<br>
|
||||
aliases/epona.conf (Epona)<br>
|
||||
aliases/auspice.conf (Auspice)<br>
|
||||
aliases/generic.conf (Magick, Sirius, Wrecked)<br>
|
||||
aliases/operstats.conf (OperStats)<br>
|
||||
aliases/genericstats.conf (GeoStats, NeoStats)</font></p>
|
||||
<p><font size="-1">* You can now use an IP in the oper::from and vhost::from fields
|
||||
even if the host resolves</font></p>
|
||||
<p><font size="-1">* Added an http proxy scanner (scan_http.so)</font></p>
|
||||
<p><font size="-1">* Added oper::snomask to specify default oper snomask modes</font></p>
|
||||
<p><font size="-1">* /helpop text has been moved to a config directive, help {}.
|
||||
To keep the standard help text you need to include help.conf so add include
|
||||
"help.conf"; to your config file.</font></p>
|
||||
<p><font size="-1">* To be able to use G:lines you must now have the can_gkline
|
||||
flag (or t if old style flags)</font></p>
|
||||
<p><font size="-1">* Usermode +T (Tech Admin) has been removed, since it is 100%
|
||||
useless</font></p>
|
||||
<p><font size="-1">* Added a make install to copy files to the installation location</font></p>
|
||||
<p><font size="-1">* Removed ./ircd, ./killircd, crypt/mkpasswd, ./rehash and
|
||||
merged them into a new ./unreal [start|stop|rehash|mkpasswd] for mkpasswd the
|
||||
format is</font></p>
|
||||
<p><font size="-1"> ./unreal mkpasswd [method] [password]</font></p>
|
||||
<p><font size="-1">* Added a new system for crypting passwords. You now do for
|
||||
example password "my password" { crypt; }; This allows you to have
|
||||
some crypted passwords and others not. If you have SSL enabled you may also
|
||||
use the md5 and sha1 methods.</font></p>
|
||||
<p><font size="-1">* The old blackhole is now set::scan::endpoint and specifies
|
||||
an IP and port to tell proxies to connect to.</font></p>
|
||||
<p><font size="-1">* You can now specify a cipher list for SSL links (read doc/conf.doc
|
||||
for more info)</font></p>
|
||||
<p><font size="-1">* +I is now in invisibility.so so it is easily disabled</font></p>
|
||||
<p><font size="-1">* set::socks has been replaced by set::scan (read doc/conf.doc
|
||||
for more info)</font></p>
|
||||
<p><font size="-1">* If you experience problems with the scanners, perhaps check
|
||||
out BOPM (http://www.blitzed.org/bopm)</font></p>
|
||||
<p><font size="-1">* log {} syslog support added (read doc/unreal32docs.html for
|
||||
more info)</font></p>
|
||||
<p><font size="-1">* Added ripemd-160 password encryption support</font></p>
|
||||
<p><font size="-1">* Enabled sha1 and md5 password encryption on Win32 regardless
|
||||
of whether SSL is used.</font></p>
|
||||
<p><font size="-1">* Added WinNT/2k/XP service support (experimental) To use this
|
||||
you use the unreal.exe utility: unreal install -installs the service<br>
|
||||
unreal uninstall -uninstalls the service <br>
|
||||
unreal start -starts the service <br>
|
||||
unreal stop -stops the service<br>
|
||||
unreal restart -restarts the service<br>
|
||||
unreal rehash -rehashes the config file</font></p>
|
||||
<p><font size="-1"> Config errors and crashes are now logged to service.log when
|
||||
in service mode.</font></p>
|
||||
<p><font size="-1">* Implemented a new win32 debugger to make fixing bugs much
|
||||
easier.</font></p>
|
||||
<p><font size="-1">* Added a win32 installer to simplify installing under Windows.</font></p>
|
||||
<p><font size="-1">* AKILL/RAKILL is deprecated. Server command still works but
|
||||
will be removed eventually (aliases to TKL G). For normal opers it notices that
|
||||
the commands are deprecated.</font></p>
|
||||
<p><font size="-1">Made the config parser smarter when it comes to time values
|
||||
and size values. Entries are no longer limited to 1d2h1m. You can now enter
|
||||
"1day 2 hours 1 minute" for example. See doc/conf.doc for more information.</font></p>
|
||||
<p><font size="-1">* The oper override code has been rewritten to be less intrusive.
|
||||
You can now no longer automatically join a channel for which you must override
|
||||
a mode. You must /invite yourself to the channel. The idea behind this is it
|
||||
prevents the accidental "rejoin on kick" ban override and joining
|
||||
a +s channel without realizing it is +s and therefore you shouldn't know it
|
||||
exists.</font></p>
|
||||
<p><font size="-1">* If you use the SSL features of Unreal, you should use OpenSSL
|
||||
0.9.6e or later. This is important as the older versions may make the program
|
||||
exploitable. See http://www.openssl.org for more information</font></p>
|
||||
<p><font size="-1">* We have made a lot of changes to deal with SSL, and if you
|
||||
find any flaws or problems, please contact the coder team. We however think
|
||||
that the changes will make SSL more transparent and make it work more efficiently.</font></p>
|
||||
<p><font size="-1">* Added technical documentation in doc/technical. This directory
|
||||
will contain information about the protocol used by Unreal.</font></p>
|
||||
<p><font size="-1">* Added EGD support for SSL. EGD allows entropy to be gathered
|
||||
on systems that do not have a random device (/dev/random or /dev/urandom) or
|
||||
have an unreliable random device. Unreal has been tested using EGADS (http://www.securesoftware.com/egads.php)
|
||||
[With EGD support enabled], PRNGD (http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html),
|
||||
and EGD (http://egd.sourceforge.net). Other EGD compatible programs should work
|
||||
as well.</font></p>
|
||||
<p><font size="-1">* We have created a new complete set of docs! doc/unreal32docs.html
|
||||
is now a complete<br>
|
||||
set of docs! It is still not finished, however it contains atleast what was
|
||||
already<br>
|
||||
avail. in the other doc files. <br>
|
||||
It can also be view online @ http://www.unrealircd.com/unreal32docs.html</font></p>
|
||||
<p><font size="-1">* We have removed ./Setup - Please read the new docs for information
|
||||
on configuring &<br>
|
||||
setting up Unreal3.2</font></p>
|
||||
<p><font size="-1">* Removed makeconf - Read the docs to make a config file</font></p>
|
||||
<p><font size="-1">* Added set::ssl::options with the following options:<br>
|
||||
fail-if-no-clientcert - If SSL client connects and doesn't provide a client<br>
|
||||
certificate, abort connection immediately<br>
|
||||
verify-certificate - Check the certificate's validity using X509 methods, check if<br>
|
||||
we trust CA's, etc. <br>
|
||||
It however does slip self signed certificates through UNLESS<br>
|
||||
no-self-signed - Don't allow self-signed certificates through (requires<br>
|
||||
verify-certificate)</font></p>
|
||||
|
||||
<p><font size="-1">* Added the ability specify which CA's are trusted using set::ssl::trusted-ca-file</font></p>
|
||||
|
||||
<p><font size="-1">* A new configuration system has been added. The system is a bit more strict (meaning it
|
||||
will complain more often) but it will never crash due to configuration errors, just
|
||||
display a message saying errors exist.</font></p>
|
||||
|
||||
<p><font size="-1">* SVSLUSERS was added to all U:lines to change local and global max user counts (this is
|
||||
NOT meant so you can make the max count higher than it really should be.)</font></p>
|
||||
|
||||
<p><font size="-1">* A new oper flag, can_override/v has been added. This is an attempt to stop oper abuse.
|
||||
All opers can no longer use oper-override, this oflag MUST be in place for oper-override
|
||||
to be allowed. Can_override is NOT assumed to be present no matter what your flags,
|
||||
meaning you could be +N but still not be allowed to use oper-override.</font></p>
|
||||
|
||||
<p><font size="-1">* UNKLINE and UNZLINE have been removed in favor of a system like G:lines, to remove you
|
||||
now /kline -user@host or /zline -user@host</font></p>
|
||||
<p><font size="-1">* MAKE SURE YOU RERUN ./Config AND RUN make clean BEFORE USING
|
||||
THIS VERSION!!!</font></p>
|
||||
<p> </p>
|
||||
<p> </p>
|
||||
<p><font size="+2"><strong>Notes on compatibility</strong><a name="notesoncompatibility" id="notesoncompatibility"></a></font><br>
|
||||
</p>
|
||||
<p>Unreal 3.2 is ONLY compatible with Unreal3.1.4 and Unreal3.2 servers. DO NOT
|
||||
ATTEMPT to link to servers that it is NOT compatible with.</p>
|
||||
<p>
|
||||
</body>
|
||||
</html>
|
||||
+41
-143
@@ -1,143 +1,41 @@
|
||||
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.
|
||||
|
||||
Some minor rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers,
|
||||
and a $Id$ somewhere.
|
||||
|
||||
3. /*
|
||||
* These kind of comments
|
||||
*/
|
||||
|
||||
NOT
|
||||
|
||||
// These kind of comments
|
||||
|
||||
4. if (something == 1)
|
||||
{
|
||||
moo; /* comment */
|
||||
/* This does what what what */
|
||||
cow(go(moo));
|
||||
}
|
||||
|
||||
NOT
|
||||
|
||||
if (something == 1) {
|
||||
}
|
||||
|
||||
5. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||
if you need a credit in, contact us
|
||||
|
||||
6. Patches are submitted to coders@lists.unrealircd.org,
|
||||
using "cvs diff -u > patchname". A submision must contain description of
|
||||
what it does, etc.
|
||||
|
||||
7. Protocol changes must be discussed before making patches for it.
|
||||
|
||||
8. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
|
||||
+43
-2
@@ -1,2 +1,43 @@
|
||||
For information on how to compile UnrealIRCd (modules) on Windows, see:
|
||||
https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
|
||||
==[ IMPORTANT MESSAGE ABOUT DISABLING NOSPOOF ]==
|
||||
Disabling NOSPOOF at windows (w9x, nt, w2k, xp) is NOT recommended since this
|
||||
will allow users to use "spoofed hosts" (like the IP of someone you trust).
|
||||
|
||||
If you got problems with NOSPOOF fix your client (bot?) instead (you should
|
||||
PONG back to the initial PING at connect).
|
||||
|
||||
==[ HOW TO COMPILE UNREALIRCD WITHOUT SSL AT WINDOWS ]==
|
||||
First of all you need Microsoft Visual C++, compiling with cygwin
|
||||
is not supported.
|
||||
|
||||
== "old" VC++ 6.0 ==
|
||||
1. You need the Platform SDK (PSDK)
|
||||
Grab it at: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ ->
|
||||
core sdk -> install this sdk.
|
||||
Note that this can take some time to download because it's >200Mb
|
||||
(450mb installed) [!].
|
||||
2. To compile:
|
||||
start -> programs -> platform sdk blabla -> open build env. -> (choose os) ->
|
||||
set blabla build env (debug). This will launch a DOS window.
|
||||
3. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||
nmake -f makefile.win32
|
||||
This will generate a wircd.exe and unreal.exe
|
||||
4. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
|
||||
5. Done!
|
||||
|
||||
== VC++ 7.x (.NET) ==
|
||||
1. Start the Visual Studio .NET Command Prompt
|
||||
2. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||
nmake -f makefile.win32
|
||||
This will generate a wircd.exe and unreal.exe
|
||||
3. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
|
||||
4. Done!
|
||||
|
||||
==[ HOW TO COMPILE UNREALIRCD WITH SSL AT WINDOWS ]==
|
||||
Ouch, that's much work ;).
|
||||
You need to compile openssl yourself.
|
||||
Then have a look at makefile.win32 for instruction on how
|
||||
to enable / specify path / etc...
|
||||
DO NOT ask us for help with compiling openssl!
|
||||
|
||||
==[ AND ZIP LINKS SUPPORT? ]==
|
||||
See makefile.win32 for instructions.
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
/* 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 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";
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
/* Uncomment this, if you have enabled "WebServ" in auspice */
|
||||
# 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,12 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,16 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,14 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,17 +0,0 @@
|
||||
/* 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; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
@@ -1,51 +0,0 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
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"; };
|
||||
@@ -1,42 +0,0 @@
|
||||
/* Example of a possible semi-secure /DCCALLOW configuration written by Syzop.
|
||||
* $Id$
|
||||
*
|
||||
* Actually nothing is *100% secure*... there could still be
|
||||
* bugs in the software itself (think: a winamp bug that can
|
||||
* be exploited via an mp3, or: a wmplayer bug that can be
|
||||
* exploited via a specially crafted .wmv, etc..).
|
||||
* If you are really that paranoid you could just remove
|
||||
* all 'allow dcc'-blocks and prompt the user for EVERY file ;).
|
||||
*
|
||||
* Still, I think this file is a good tradeoff between userfriendlyness
|
||||
* and security. Note that when you try to only DENY specific
|
||||
* file type (exe, com, etc) you are *guaranteed* to miss ones
|
||||
* (like: did you know .r17 gets treated as a rar archive?
|
||||
* and that an exe can be disguished as .cmd which is executable
|
||||
* on nt/w2k/xp?)
|
||||
*/
|
||||
|
||||
/* first.. deny everything, then allow known-good stuff... */
|
||||
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; };
|
||||
/* 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; };
|
||||
/* 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; };
|
||||
@@ -1,509 +0,0 @@
|
||||
/* 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 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 4 documentation (very extensive!):
|
||||
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
*
|
||||
* Frequently Asked Questions:
|
||||
* https://www.unrealircd.org/docs/FAQ
|
||||
*
|
||||
*/
|
||||
|
||||
/* This is a comment, all text here is ignored (comment type #1) */
|
||||
// This is also a comment, this line is ignored (comment type #2)
|
||||
# This is also a comment, again this line is ignored (comment type #3)
|
||||
|
||||
/* UnrealIRCd makes heavy use of modules. Modules allow you to completely
|
||||
* customize the featureset you wish to enable in UnrealIRCd.
|
||||
* See: https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* By using the include below we instruct the IRCd to read the file
|
||||
* 'modules.default.conf' which will load more than 150 modules
|
||||
* shipped with UnrealIRCd. In other words: this will simply load
|
||||
* all the available features in UnrealIRCd.
|
||||
* If you are setting up UnrealIRCd for the first time we suggest you
|
||||
* use this. Then, when everything is up and running you can come
|
||||
* back later to customize the list (if you wish).
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Now let's include some other files as well:
|
||||
* - help/help.conf for our on-IRC /HELPOP system
|
||||
* - badwords.conf for channel and user mode +G
|
||||
* - spamfilter.conf as an example for spamfilter usage
|
||||
* (commented out)
|
||||
* - operclass.default.conf contains some good operclasses which
|
||||
* you can use in your oper blocks.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* This is the me { } block which basically says who we are.
|
||||
* It defines our server name, some information line and an unique "sid".
|
||||
* The server id (sid) must start with a digit followed by two digits or
|
||||
* letters. The sid must be unique for your IRC network (each server should
|
||||
* have it's own sid).
|
||||
*/
|
||||
me {
|
||||
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.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/* Clients and servers are put in class { } blocks, we define them here.
|
||||
* Class blocks consist of the following items:
|
||||
* - pingfreq: how often to ping a user / server (in seconds)
|
||||
* - connfreq: how often we try to connect to this server (in seconds)
|
||||
* - sendq: the maximum queue size for a connection
|
||||
* - recvq: maximum receive queue from a connection (flood control)
|
||||
*/
|
||||
|
||||
/* Client class with good defaults */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Special class for IRCOps with higher limits */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Server class with good defaults */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
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
|
||||
* specific IP's only. You also configure the maximum connections
|
||||
* allowed per IP here.
|
||||
* See also: https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* Allow everyone in, but only 3 connections per IP */
|
||||
allow {
|
||||
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 {
|
||||
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,
|
||||
* for example they may /KILL other people, initiate server linking,
|
||||
* /JOIN channels even though they are banned, etc.
|
||||
*
|
||||
* For more information about becoming an IRCOp and how to do admin
|
||||
* tasks, see: https://www.unrealircd.org/docs/IRCOp_guide
|
||||
*
|
||||
* For details regarding the oper { } block itself, see
|
||||
* https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Here is an example oper block for 'bobsmith' with password 'test'.
|
||||
* You MUST change this!!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Oper permissions are defined in an 'operclass' block.
|
||||
* See https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd ships with a number of default blocks, see
|
||||
* the article for a full list. We choose 'netadmin' here.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "is a Network Administrator";
|
||||
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
|
||||
* connect to this server.
|
||||
*
|
||||
* Syntax:
|
||||
* listen {
|
||||
* {
|
||||
* ip <ip>;
|
||||
* port <port>;
|
||||
* options {
|
||||
* <options....>;
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Standard IRC port 6667 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6667;
|
||||
};
|
||||
|
||||
/* Standard IRC SSL/TLS port 6697 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6697;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* Special SSL/TLS servers-only port for linking */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
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; };
|
||||
* Of course, replace the IP with the IP that was assigned to you.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Link blocks allow you to link multiple servers together to form a network.
|
||||
* See https://www.unrealircd.org/docs/Tutorial:_Linking_servers
|
||||
*/
|
||||
link hub.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* or explicitly an IP */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
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; };
|
||||
|
||||
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.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.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
|
||||
* restarts and server kills.
|
||||
*/
|
||||
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 almost everything */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
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.
|
||||
*
|
||||
* We have a number of pre-set alias files, check out the alias/ directory.
|
||||
* As an example, here we include all aliases used for anope services.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Ban nick names so they cannot be used by regular users */
|
||||
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.
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
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.
|
||||
* If you are an IRCOp with a static IP (and no untrusted persons on that IP)
|
||||
* then we suggest you add yourself here. That way you can always get in
|
||||
* even if you accidentally place a *LINE ban on yourself.
|
||||
*/
|
||||
|
||||
/* except ban protects you from KLINE and ZLINE */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// you may add more mask entries here..
|
||||
};
|
||||
|
||||
/* 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
|
||||
*/
|
||||
|
||||
/* Example vhost which you can use. On IRC type: /VHOST test test
|
||||
* NOTE: only people with an 'unrealircd.com' host may use it so
|
||||
* be sure to change the vhost::mask before you test.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
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
|
||||
* to cause drone attacks, is a known hacked machine, etc.
|
||||
* Documentation: https://www.unrealircd.org/docs/Blacklist_block
|
||||
* Or just have a look at the blocks below.
|
||||
*/
|
||||
|
||||
/* DroneBL, probably the most popular blacklist used by IRC Servers.
|
||||
* See https://dronebl.org/ for their documentation and the
|
||||
* meaning of the reply types. At time of writing we use types:
|
||||
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
|
||||
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
|
||||
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
|
||||
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
|
||||
* 16: Autorooting worms.
|
||||
*/
|
||||
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 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.
|
||||
* At time of writing: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
|
||||
*
|
||||
* NOTE: If you want to permit TOR proxies on your server, then
|
||||
* you need to remove the '4;' below in the reply section.
|
||||
*/
|
||||
blacklist efnetrbl {
|
||||
dns {
|
||||
name rbl.efnetrbl.org;
|
||||
type record;
|
||||
reply { 1; 4; 5; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
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 "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";
|
||||
|
||||
/* Cloak keys should be the same at all servers on the network.
|
||||
* They are used for generating masked hosts and should be kept secret.
|
||||
* The keys should be 3 random strings of 50-100 characters
|
||||
* and must consist of lowcase (a-z), upcase (A-Z) and digits (0-9).
|
||||
* HINT: On *NIX, you can run './unrealircd gencloak' in your shell to let
|
||||
* UnrealIRCd generate 3 random strings for you.
|
||||
*/
|
||||
cloak-keys {
|
||||
"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 "+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 */
|
||||
|
||||
/* The minimum time a user must be connected before being allowed to
|
||||
* use a QUIT message. This will hopefully help stop spam.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Or simply set a static quit, meaning any /QUIT reason is ignored */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* static-part does the same for /PART */
|
||||
/* static-part yes; */
|
||||
|
||||
/* 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 {
|
||||
ban-time 1d; /* default duration of a *LINE ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default reason */
|
||||
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
|
||||
/* except "#help"; channel to exempt from Spamfilter */
|
||||
};
|
||||
};
|
||||
|
||||
/* 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.
|
||||
* This file will be shown to your users on connect.
|
||||
* For more information see https://www.unrealircd.org/docs/MOTD_and_Rules
|
||||
*/
|
||||
|
||||
/*
|
||||
* Problems or need more help?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- answers 80% of your questions!
|
||||
* 3) If you are still having problems then you can get support:
|
||||
* - Forums: https://forums.unrealircd.org/
|
||||
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
|
||||
* Note that we require you to read the documentation and FAQ first!
|
||||
*/
|
||||
@@ -1,461 +0,0 @@
|
||||
/* 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 !)
|
||||
*
|
||||
* Important : Toutes les lignes, sauf celles ne comportant qu'un {
|
||||
* ouvrant, doivent finir par un ; y compris };. C'est très important,
|
||||
* car si vous oubliez un ; quelque part, alors le parser du fichier de
|
||||
* configuration se plaindra et votre fichier ne sera pas lu correctement !
|
||||
* S'il s'agit de votre première expérience avec le fichier de configuration
|
||||
* d'UnrealIRCd, nous vous recommandons de vous documenter un peu Ă propos
|
||||
* de la syntaxe. Ça ne vous prendra que quelques minutes et vous aidera
|
||||
* beaucoup :
|
||||
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
||||
*
|
||||
* 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
|
||||
*
|
||||
*/
|
||||
|
||||
/* Ceci est un commentaire, ici, tout le texte est ignoré (type #1) */
|
||||
// Ceci est aussi un commentaire, cette ligne est ignorée (type #2)
|
||||
# Ceci est aussi un commentaire, cette ligne est ignorée (type #3)
|
||||
|
||||
/* UnrealIRCd utilise beaucoup les modules. Ceux-ci vous permettent
|
||||
* de personnaliser complètement les fonctionnalités que vous voulez
|
||||
* activer sur UnrealIRCd.
|
||||
* Voir : https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* En utilisant la ligne include ci-dessous, nous indiquons Ă l'IRCd de
|
||||
* lire le fichier 'modules.default.conf' ce qui activera plus de 150
|
||||
* modules fournis avec UnrealIRCd. En d'autres termes, ceci activera
|
||||
* toutes les fonctionnalités disponibles d'UnrealIRCd.
|
||||
* Si vous configurez UnrealIRCd pour la première fois, nous vous
|
||||
* conseillons d'utiliser cette ligne. Après, lorsque tout fonctionnera
|
||||
* vous pourrez revenir personnaliser la liste (si vous le souhaitez).
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Incluons aussi d'autres fichiers :
|
||||
* - help/help.conf pour le système d'aide sur IRC via /HELPOP
|
||||
* - badwords.conf pour le mode utilisateur et de salon +G
|
||||
* - spamfilter.conf comme exemple d'utilisation de spamfilter
|
||||
* - operclass.default.conf qui contient les classes d'opérateurs
|
||||
* par défaut à utiliser dans vos blocs oper.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* Le bloc me { } indique qui est le serveur.
|
||||
* Il définit le nom du serveur, une ligne d'informations et un identifiant
|
||||
* "sid" unique. L'id du serveur (sid) doit commencer par un chiffre suivit
|
||||
* de deux chiffres ou lettres. Le sid doit être unique sur votre réseau IRC
|
||||
* (chaque serveur doit avoir un sid différent).
|
||||
*/
|
||||
me {
|
||||
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.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"adresse.email@foonet.com";
|
||||
};
|
||||
|
||||
/* Les clients et serveurs sont placés dans des classes, que nous
|
||||
* définissons dans ces blocs class { }.
|
||||
* Les blocs de classe comportent les éléments suivants :
|
||||
* - pingfreq: à quelle fréquence envoyer un ping à l'utilisateur ou au
|
||||
* serveur (en secondes)
|
||||
* - connfreq: à quelle fréquence on essaye de se connecter à ce serveur
|
||||
* (en secondes)
|
||||
* - sendq: la taille maximale de la queue d'émission pour une connexion
|
||||
* - recvq: la taille maximale de la queue de réception pour une connexion
|
||||
* (contrĂ´le du flood)
|
||||
*/
|
||||
|
||||
/* Classe pour des clients */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Classe spéciale pour des IRCOps avec des limites plus hautes */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Classe pour des serveurs */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
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
|
||||
* le serveur Ă certaines IP seulement. C'est aussi lĂ que vous configurez
|
||||
* le nombre maximum de connexions par IP.
|
||||
* Voir : https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* Accepter tout le monde, mais seulement 5 connexions par IP */
|
||||
allow {
|
||||
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 {
|
||||
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"
|
||||
* par rapport aux autres, par exemple, ils peuvent /KILL (déconnecter)
|
||||
* d'autres utilisateurs, faire se connecter des serveurs entre eux,
|
||||
* /JOIN des salons mĂŞme s'ils sont bannis, etc ...
|
||||
* Voir aussi : https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Voici un exemple de bloc oper pour 'bobsmith' avec le mot de
|
||||
* passe 'test'.
|
||||
* Vous DEVEZ le modifier !!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Les permissions Oper sont définies dans un bloc 'operclass'.
|
||||
* Voir https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd est fourni avec des classes par défaut, voir la doc
|
||||
* pour une liste complète. Nous avons choisi 'netadmin' ici.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "est un Administrateur du Réseau";
|
||||
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
|
||||
* se connecter Ă ce serveur.
|
||||
*
|
||||
* Syntaxe :
|
||||
* listen
|
||||
* {
|
||||
* ip <adresse ip>;
|
||||
* 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 { ssl; };
|
||||
};
|
||||
|
||||
/* Port SSL/TLS spécial pour la connexion entre serveurs */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
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
|
||||
* erreur 'Address already in use' et l'IRCd ne démarrera pas.
|
||||
* Celle-ci indique que vous devez préciser une IP spécifique
|
||||
* au lieu de '*'. Exemple :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Bien sûr, remplacez 1.2.3.4 par l'IP qui vous est assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Les blocs link vous permettent de connecter plusieurs serveurs ensemble
|
||||
* pour former un réseau IRC.
|
||||
* Voir https://www.unrealircd.org/docs/Tutorial:_Linking_servers
|
||||
*/
|
||||
link hub.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* ou une IP précise */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
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.
|
||||
* NE JAMAIS indiquer le nom d'un serveur UnrealIRCd normal ici !!!
|
||||
* (Si vous ne savez pas ce que sont les Services, voir :
|
||||
* https://www.unrealircd.org/docs/Services )
|
||||
*/
|
||||
ulines {
|
||||
services.mynet.org;
|
||||
};
|
||||
|
||||
/* Ici vous pouvez indiquer un mot de passe pour les commandes /DIE et
|
||||
* /RESTART, qui sont restreintes aux IRCops.
|
||||
* Il s'agit surtout d'une petite protection contre les redémarrages et
|
||||
* les coupures de serveur accidentels.
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
||||
/* Ceci est une bonne valeur par défaut, elle journalise presque tout */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
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
|
||||
* les services.
|
||||
*
|
||||
* Nous fournissons un certain nombre d'alias par défaut, voir les fichiers
|
||||
* du répertoire aliases/.
|
||||
* Pour exemple, ici nous ajoutons les alias pour les Services Anope.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Bannir des nicks pour qu'ils ne soient pas utilisables par des
|
||||
* utilisateurs normaux
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
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 ...
|
||||
* Si vous ĂŞtes un IRCOp avec une IP statique (et qu'il n'y a que des
|
||||
* personnes de confiance sur cette IP), alors vous pouvez vous ajouter ici.
|
||||
* Ainsi, vous pourrez toujours vous connecter mĂŞme si vous vous bannissez
|
||||
* accidentellement.
|
||||
*/
|
||||
|
||||
/* except ban vous protège des KLINE et ZLINE */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// vous pouvez ajouter d'autres lignes mask Ă la suite
|
||||
};
|
||||
|
||||
/* 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
|
||||
*/
|
||||
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.
|
||||
* Voir https://www.unrealircd.org/docs/Vhost_block
|
||||
*/
|
||||
|
||||
/* Vhost d'exemple. Sur IRC, entrez /VHOST test test
|
||||
* NOTE : seuls les utilisateurs avec un nom d'hĂ´te 'unrealircd.com'
|
||||
* peuvent l'utiliser, donc modifiez vhost::mask avant de tester.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
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 "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";
|
||||
|
||||
/* Les clés de cloaking doivent être identiques sur tous les serveurs
|
||||
* d'un réseau. Elles sont utilisées pour générer les noms d'hôtes
|
||||
* masqués et doivent être gardées secrètes. Les clés doivent être
|
||||
* 3 chaînes de 5 à 100 caractères aléatoires (entre 10 et 20 suffisent)
|
||||
* et ne comporter que des minuscules (a-z), des majuscules (A-Z) et des
|
||||
* chiffres (0-9). (voir l'exemple)
|
||||
* NB : sur *NIX, vous pouvez exécuter './unreal gencloak' sur votre
|
||||
* serveur pour que Unreal génère 3 clés aléatoires pour vous.
|
||||
*/
|
||||
cloak-keys {
|
||||
"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 "+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 */
|
||||
|
||||
/* Temps minimum qu'un utilisateur doit rester connecter avant de pouvoir
|
||||
* utiliser un message de QUIT. Le but est pour réduire le spam.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Ou indiquez un message de QUIT constant, ce qui fait que les raisons
|
||||
* de /QUIT sont ignorées.
|
||||
*/
|
||||
/* static-quit "Le client a quitté"; */
|
||||
|
||||
/* static-part fait la mĂŞme chose pour /PART */
|
||||
/* static-part yes; */
|
||||
|
||||
/* 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 {
|
||||
ban-time 1d; /* durée par défaut des bans *LINE ajoutés par spamfilter */
|
||||
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 ?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- répond à 80% des questions !
|
||||
* 3) Si vous avez toujours des problèmes, vous pouvez aller sur
|
||||
* irc.unrealircd.org #unreal-support,
|
||||
* mais nous exigeons que vous lisiez LA DOCUMENTATION et la FAQ d'abord !
|
||||
*/
|
||||
@@ -1,509 +0,0 @@
|
||||
/* 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
|
||||
*
|
||||
* Biz buna basit bir 'unrealircd.conf' dosyası diyoruz.
|
||||
* Bu dosyası satır satır editleyip conf/ dizinine kopyalayınız. (düzenleyin!)
|
||||
*
|
||||
* Önemli: Satırların hepsi, açılış başına { satır sonuna ;
|
||||
* }; dahil edin. Bu çok önemli, eğer siz ayrıştırıcıyı ;
|
||||
* eksik koyarsanız yapılandırma dosyası hata verecek
|
||||
* ve dosya doğru işlemde olmayacaktır!
|
||||
* Bu sizin UnrealIRCd yapılandırması ile ilk deneyiminiz ise
|
||||
* dosyayı okumanız için birkaç dakika ayırmanızı öneniriz,
|
||||
* bu size bilgi edinmeniz açısından yardımcı olacaktır:
|
||||
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
||||
*
|
||||
* UnrealIRCd 4 belgeleme (çok geniş!):
|
||||
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
*
|
||||
* Sıkça Sorulan Sorular:
|
||||
* https://www.unrealircd.org/docs/FAQ
|
||||
*
|
||||
*/
|
||||
|
||||
/* Bu bir açıklamadır, burada tüm metin göz ardı edilir (açıklama tipi #1) */
|
||||
// Bu da bir açıklamadır, bu satır göz ardı edilir (açıklama tipi #2)
|
||||
# Bu da bir açıklamadır, bu satır yine göz ardı edilir (açıklama tipi #3)
|
||||
|
||||
/* UnrealIRCd yoğun modul kullanımını kolaylaştırır. UnrealIRCd'de
|
||||
* etkinleştirmek istediğiniz özellikleri tamamen moduller ile aktif edebilirsiniz.
|
||||
* Görmek için; https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* Biz 'modules.default.conf' dosyasını okumak için IRCd talimatı altında kullanarak
|
||||
* UnrealIRCd ile birlikte gelen 150'den fazla modĂĽlleri yĂĽkleyecektir.
|
||||
* Başka bir deyişle: Bu sadece UnrealIRCd'de mevcut tüm özelliklerini yükleyecektir.
|
||||
* İlk kez UnrealIRCd kuruyorsanız size bunu kullanmanızı öneririz.
|
||||
* UnrealIRCd'yi ilk kez kuruyorsanız bunu kullanmanızı öneririz.
|
||||
* Daha sonra her şey hazır olduğunda ve çalışıyorsa (eğer isterseniz)
|
||||
* listeyi özelleştirmek için geri dönebilirsiniz.
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Şimdi de diğer bazı dosyaları dahil edelim:
|
||||
* - help/help.conf /HELPOP sistemi
|
||||
* - badwords.conf kanal ve kullanıcı modu için +G
|
||||
* - spamfilter.conf için örnek olarak spamfilter kullanımı
|
||||
* - operclass.default.conf oper bloklarında kullanabileceğiniz
|
||||
* oper sınıflarını görüntüler.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* me { } bloÄźu genelde kim olduÄźumuzu belirtir.
|
||||
* Sunucumuz için isim, birkaç satır bazı bilgileri belirler "sid".
|
||||
* Sunucu kimliği (sid) iki basamağı veya harf tarafından izlenen bir rakam ile
|
||||
* başlamalıdır. Sid IRC ağı için benzersiz olmalıdır (her sunucu için
|
||||
* kendi sid olmalıdır).
|
||||
*/
|
||||
me {
|
||||
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.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/* Kullanıcılar ve sunucular için class { } bloğu belirtilir.
|
||||
* Class blokları aşağıdaki işlemlerden oluşur:
|
||||
* - pingfreq: kullanıcı/sunucu için ping'ler arası zaman belirtir (saniyede)
|
||||
* - connfreq: sunucuya bağlanmaya çalıştığınızda tekrar için zaman belirtir (saniyede)
|
||||
* - sendq: bir bağlantı için maksimum veri boyutu
|
||||
* - recvq: bir bağlantı için maksimum alınan veri boyutu (flood kontrol)
|
||||
*/
|
||||
|
||||
/* Kullanıcılar için varsayılan class ayarları */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* IRCOp'lar için varsaylan yüksek limitli özel class ayarları */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Sunucular için varsayılan class ayarları */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
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
|
||||
* giriş izini verilebilir. Ayrıca IP başına ne kadar bağlantıya izin
|
||||
* verileceÄźini belirtir.
|
||||
* Görmeniz için: https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* IP başına sadece 5 bağlantı izini verir */
|
||||
allow {
|
||||
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 {
|
||||
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.
|
||||
* örneğin diğer kullanıcılara /KILL uygulayabilmesi, sunucu birleştirmesinin başlatılması,
|
||||
* /JOIN yaptığı odalardan banlansa bile tekrar giriş yapabilmesi, vs.
|
||||
*
|
||||
* IRCOp olmak ve nasıl Admin olunacağı hakkında daha fazla bilgi için
|
||||
* https://www.unrealircd.org/docs/IRCOp_guide
|
||||
*
|
||||
* Oper {} bloğunun kendisi ile ilgili ayrıntıları görmeniz için
|
||||
* https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Örnek bir oper bloğu için 'bobsmith' ile şifresi 'test'.
|
||||
* Bunu değiştirmeniz GEREKİR!!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Oper izinleri bir "operclass 'bloğunda tanımlanır.
|
||||
* Görmeniz için: https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd varsayılan bloklar makalesi için,
|
||||
* tam listesine bakınız. Buradan 'netadmin' seçiyoruz.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "is a Network Administrator";
|
||||
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
|
||||
* sunucuya bağlantı kurmasını sağlar.
|
||||
*
|
||||
* Kullanımı:
|
||||
* listen
|
||||
* {
|
||||
* ip <ip numarası>;
|
||||
* 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 { ssl; };
|
||||
};
|
||||
|
||||
/* Özel SSL/TLS sadece sunucuları bağlamak için port */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
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
|
||||
* ve ircd başlamayacaktır.
|
||||
* Bunun anlamı '*' yerine belirli bir IP yazmanız GEREKİR anlamına gelir:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Açıkçası, IP yi önceden koyduğunuz IP ile değiştirin.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* veya açıkça bir IP */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
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; };
|
||||
|
||||
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.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.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
|
||||
* koruma sağlamak içindir.
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
||||
/* Varsayılan ayarlar, neredeyse her şeyi kaydedecektir */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
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.
|
||||
*
|
||||
* Biz önceden ayarlanmış bir takma adı dosyaları dizini oluşturduk, alias/ dizini kontrol ediniz.
|
||||
* Örnek olarak, burada anope servisler ve kullanılan tüm diğer servisler adları bulunmaktadır.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Ban nick bloğu bir nickin sunucuda kullanımını yasaklamanıza olanak sağlar */
|
||||
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.
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
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.
|
||||
* EÄźer statik IP (ve bu IP ĂĽzerinde gĂĽvenilmeyen kiĹźiler) ile bir IRCOp
|
||||
* iseniz o zaman kendinizi burada eklemenizi öneririz. Yanlışlıkla kendinize
|
||||
* bir *LINE ban koyarsanız bile yinede muaf tutulacaksınız.
|
||||
*/
|
||||
|
||||
/* except ban bloğu, sizi KLINE ve ZLINE gibi banlardan koruyacaktır */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// burada daha fazla mask girdileri ekleyebilirsiniz..
|
||||
};
|
||||
|
||||
/* 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
|
||||
*/
|
||||
|
||||
/* Kullanabileceğiniz örnek vhost. IRC tipi: /VHOST test test
|
||||
* DiKKAT: Güvenlik açısından aşağıdaki vhost::mask yönergesinde
|
||||
* maske 'unrealircd.com' olarak belirlenmiĹźtir.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
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
|
||||
* için harici bir DNS Kara Liste hizmetinden sorgulayacaktır.
|
||||
* Belgeleme: https://www.unrealircd.org/docs/Blacklist_block
|
||||
* veya aşağıdaki bloklar satırına bakınız.
|
||||
*/
|
||||
|
||||
/* DroneBL, muhtemelen IRC Sunucuları tarafından kullanılan en popüler kara liste.
|
||||
* Belgeler ve cevap (reply) tiplerin anlamlarını görmek için https://dronebl.org/
|
||||
* adresine bakınız. Bu zamanda aşağıdaki cevap (reply) tiplerini kullanıyoruz:
|
||||
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
|
||||
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
|
||||
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
|
||||
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
|
||||
* 16: Autorooting worms.
|
||||
*/
|
||||
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 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.
|
||||
* Yazma sırasında: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
|
||||
*
|
||||
* NOT: Sunucunuzda TOR proxy'lerine izin vermek istiyorsanız,
|
||||
* cevap (reply) tiplerinden '4;' öğesini kaldırmanız gerekiyor.
|
||||
*/
|
||||
blacklist efnetrbl {
|
||||
dns {
|
||||
name rbl.efnetrbl.org;
|
||||
type record;
|
||||
reply { 1; 4; 5; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
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 "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";
|
||||
|
||||
/* Gizleme anahtarları ağ üzerindeki bütün sunucularda aynı olmalı.
|
||||
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
|
||||
* Anahtarlar 5-100 karakterlik (10-20 karakter yeterli) 3 rastgele diziden oluşmalı ve
|
||||
* küçük harf (a-z), büyük harf (A-Z) ve rakamlardan (0-9) meydana gelmelidirler.. [ilk örneğe bakınız].
|
||||
* IPUCU: './unreal gencloak' Unreal sizin için rastgele 3 adet dizin oluşturur.
|
||||
* Bunu NIX üzerinde çalıştırabilirsiniz.
|
||||
*/
|
||||
cloak-keys {
|
||||
"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 "+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ı */
|
||||
|
||||
/* QUIT mesajının görüntülenebilmesi için, bir kullanıcının sunucuya bağlı kalması
|
||||
* gereken süre. Bu durum umarım spamları durdurmak için yardımcı olacaktır.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Kullanıcı sunucudan ayrılırken çıkış sebebini sabitler. /QUIT sebeb gözardı edilecektir. */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* static-part /PART komutu ile aynı işi görür */
|
||||
/* static-part yes; */
|
||||
|
||||
/* /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 {
|
||||
ban-time 1d; /* varsayılan spamfilter tarafından ban süresini belirtir */
|
||||
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.
|
||||
* Daha fazla bilgi için https://www.unrealircd.org/docs/MOTD_and_Rules bölümünü inceleyiniz.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Sorununuza veya daha fazla yardımamı ihtiyacınız var?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- sorularınızın %80 ini kapsamakta!
|
||||
* 3) EÄźer probleminiz hala devam ediyorsa:
|
||||
* - Forums: https://forums.unrealircd.org/
|
||||
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
|
||||
* İlk önce Dökümantasyon ve FAQ kısmını okumanızı gerektirdiğini unutmayın!
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,211 +0,0 @@
|
||||
/* This file will load (nearly) all modules available on UnrealIRCd.
|
||||
* So all commands, channel modes, user modes, etc..
|
||||
*
|
||||
* If you want to have all UnrealIRCd functionality, then include this
|
||||
* file from your unrealircd.conf by using:
|
||||
* include "modules.default.conf";
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* If you want to customize the modules to load you have two options:
|
||||
* 1) Keep the include for modules.default.conf as usual and make use
|
||||
* of blacklist-module "xyz"; to selectively disable modules.
|
||||
* See https://www.unrealircd.org/docs/Blacklist-module_directive
|
||||
* 2) OR, make a copy of this file (eg: name it modules.custom.conf)
|
||||
* and edit it. Then include that file from your unrealircd.conf
|
||||
* instead of this one.
|
||||
* The downside of option #2 is that you will need to track changes
|
||||
* in the original modules.default.conf with each new UnrealIRCd
|
||||
* release to make sure you don't miss any new functionality (as new
|
||||
* important modules may be added you need to add them to your conf).
|
||||
* You don't have this problem with option #1.
|
||||
*/
|
||||
|
||||
/*** Cloaking (for user mode +x) ***/
|
||||
loadmodule "cloak";
|
||||
|
||||
|
||||
/*** Commands ***/
|
||||
|
||||
// User commands (MINIMAL)
|
||||
// These provide just the minimal set of IRC commands that are
|
||||
// required by RFC1459 along with WATCH and MAP.
|
||||
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 "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 m_kill are also server-to-server commands
|
||||
// which are required if you link to other servers.
|
||||
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 "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 "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 ***/
|
||||
loadmodule "chanmodes/floodprot"; /* +f */
|
||||
loadmodule "chanmodes/nocolor"; /* +c */
|
||||
loadmodule "chanmodes/noctcp"; /* +C */
|
||||
loadmodule "chanmodes/stripcolor"; /* +S */
|
||||
loadmodule "chanmodes/issecure"; /* +Z */
|
||||
loadmodule "chanmodes/permanent"; /* +P */
|
||||
loadmodule "chanmodes/link"; /* +L */
|
||||
loadmodule "chanmodes/censor"; /* +G */
|
||||
loadmodule "chanmodes/delayjoin"; /* +D */
|
||||
loadmodule "chanmodes/noknock"; /* +K */
|
||||
loadmodule "chanmodes/noinvite"; /* +V */
|
||||
loadmodule "chanmodes/operonly"; /* +O */
|
||||
loadmodule "chanmodes/nonotice"; /* +T */
|
||||
loadmodule "chanmodes/regonly"; /* +R */
|
||||
loadmodule "chanmodes/nonickchange"; /* +N */
|
||||
loadmodule "chanmodes/nokick"; /* +Q */
|
||||
loadmodule "chanmodes/regonlyspeak"; /* +M */
|
||||
loadmodule "chanmodes/secureonly"; /* +z */
|
||||
|
||||
|
||||
/*** User modes ***/
|
||||
loadmodule "usermodes/bot"; /* +B (mark yourself as a bot) */
|
||||
loadmodule "usermodes/servicebot"; /* +S (service bot) */
|
||||
loadmodule "usermodes/noctcp"; /* +T (block CTCP's) */
|
||||
loadmodule "usermodes/censor"; /* +G (censor bad words) */
|
||||
loadmodule "usermodes/showwhois"; /* +W (show if someone does /WHOIS) */
|
||||
loadmodule "usermodes/privacy"; /* +p (privacy, hide channels in /WHOIS) */
|
||||
loadmodule "usermodes/nokick"; /* +q (unkickable oper) */
|
||||
loadmodule "usermodes/regonlymsg"; /* +R (only registered users may private message you) */
|
||||
loadmodule "usermodes/secureonlymsg"; /* +Z (only SSL/TLS users may private message you) */
|
||||
loadmodule "usermodes/privdeaf"; /* +D (don't let other user PM you) */
|
||||
|
||||
|
||||
/*** Server notice masks */
|
||||
loadmodule "snomasks/dccreject"; /* +D (rejected DCC's) */
|
||||
|
||||
|
||||
/*** Extended Bans ***/
|
||||
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) */
|
||||
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) */
|
||||
|
||||
|
||||
/*** 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 "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!) */
|
||||
@@ -1,259 +0,0 @@
|
||||
/* This file will load all optional modules. These are features that
|
||||
* not everyone will use or are considered experimental.
|
||||
* You can include this file from your unrealircd.conf like this:
|
||||
* include "modules.optional.conf";
|
||||
* OR... and this is probably a better idea... you can copy-paste it
|
||||
* to another file where you do your own customizations.
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* If you want to customize, make a copy of this file (for example
|
||||
* name it modules.custom.conf) and edit it.
|
||||
* Then include that file from your unrealircd.conf instead of this one.
|
||||
*/
|
||||
|
||||
/*** Commands ***/
|
||||
|
||||
// This add the /IRCOPS command: A more visual way for users
|
||||
// to see which IRCOps are online.
|
||||
loadmodule "m_ircops";
|
||||
|
||||
// This adds the /STAFF command: This command simply displays
|
||||
// a text file that you can configure here:
|
||||
loadmodule "m_staff";
|
||||
set { staff-file "network.staff"; };
|
||||
|
||||
|
||||
/*** Channel modes ***/
|
||||
|
||||
// The following module ('nocodes') is not a true channel mode.
|
||||
// It simply enhances the existing channel mode +S/+c to include
|
||||
// stripping/blocking of bold, underline and italic text.
|
||||
loadmodule "nocodes";
|
||||
|
||||
|
||||
/*** Other ***/
|
||||
|
||||
// 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.
|
||||
loadmodule "hideserver";
|
||||
|
||||
// The antirandom module will kill or *line users that have a nick,
|
||||
// ident and/or realname that is considered "random".
|
||||
// This helps to combat simple botnets/drones.
|
||||
// Note that failure to set the right settings may ban innocent users.
|
||||
// This is especially true if you are on a non-English network where
|
||||
// the module may consider a sequence of characters "random" even though
|
||||
// it is a perfectly pronounceable word in your language.
|
||||
loadmodule "antirandom";
|
||||
set {
|
||||
antirandom {
|
||||
/* THRESHOLD:
|
||||
* This is pretty much the most important setting of all.
|
||||
* For every randomly looking ident the user gets a certain amount of
|
||||
* 'points', if this value reaches 'threshold' then the appropriate
|
||||
* action is taken (killed, *lined, see later on).
|
||||
* lower = more randomly looking users will be catched (but also more
|
||||
* innocent users)
|
||||
* higher = less chance of innocent users getting killed, but also less
|
||||
* chance on bots getting catched.
|
||||
* <2: DON'T!!
|
||||
* 4: Works good, probably a few more innocent kills but if you got
|
||||
* quite a bot problem then this might be a useful setting.
|
||||
* 5: Works well with few innocent kills, probably good to begin with.
|
||||
* 6: If you want to be a tad more careful
|
||||
* >6: For the paranoid. Module can still be quite effective, though :)
|
||||
*/
|
||||
threshold 7;
|
||||
|
||||
/* BAN-ACTION:
|
||||
* Action to take whenever the user is catched as random, options:
|
||||
* warn, kill, gline, gzline, kline, zline, shun, tempshun
|
||||
*/
|
||||
ban-action kill;
|
||||
|
||||
/* BAN-TIME:
|
||||
* Time to ban the user (irrelevant for tempshun/kill).
|
||||
* Something between 1 hour and 2 days is recommended.
|
||||
* If you set it higher than 3 or 4 days then you get quite a risk
|
||||
* of catching innocent users due to dynamic IP, not to mention
|
||||
* your *line list gets filled up... so choose it wisely.
|
||||
*/
|
||||
ban-time 4h;
|
||||
|
||||
/* BAN-REASON:
|
||||
* The ban (or kill) reason to use.
|
||||
* You might want to put in an entry to a FAQ or an email address
|
||||
* where users can mail if they have been catched and don't know what to do.
|
||||
* NOTE: One of the various reasons that ""innocent users"" are catched is
|
||||
* if they just randomly type in info for their nick, ident, or realname.
|
||||
*/
|
||||
ban-reason "You look like a bot. Be sure to fill in your nick/ident/realname properly.";
|
||||
|
||||
/* CONVERT-TO-LOWERCASE:
|
||||
* Convert nicks, idents, and realnames to lowercase before doing random checks?
|
||||
* This has not been tested extensively for false positives, but might be (very)
|
||||
* helpful to catch GnStA5FYhiTH51TUkf style random nicks as random.
|
||||
* Enabled by default.
|
||||
*/
|
||||
convert-to-lowercase yes;
|
||||
|
||||
/* FULLSTATUS-ON-LOAD:
|
||||
* If enabled, then upon loading it will check all users that are currently
|
||||
* connected and give a status report about who it would have killed.
|
||||
* Note that it doesn't actually kill any currently connected users, it is for
|
||||
* informative purposes only.
|
||||
* This can be (very) useful if you use the module for the first time.
|
||||
* But you probably want to disable it after a while, since once the module
|
||||
* is actively dealing with randomly looking persons, it shouldn't report any
|
||||
* users anymore on load and then this check only eats useless CPU on /REHASH.
|
||||
* Enabled by default.
|
||||
*/
|
||||
fullstatus-on-load yes;
|
||||
|
||||
/* SHOW-FAILEDCONNECTS:
|
||||
* This will send out a notice whenever a randomly looking user has been catched
|
||||
* during connecting. Obviously this can be pretty noisy.
|
||||
* Especially recommended to enable during the first few days you use this module.
|
||||
*/
|
||||
show-failedconnects yes;
|
||||
|
||||
/* EXCEPT-HOSTS:
|
||||
* Hostmasks on this list are matched against the IP and hostname of the connecting
|
||||
* user. If it matches then we do not check if the nick/ident/realname is random.
|
||||
* NOTE: Use the REAL host or IP here, not any cloaked hosts!
|
||||
*/
|
||||
except-hosts {
|
||||
mask 192.168.*;
|
||||
mask 127.*;
|
||||
};
|
||||
|
||||
/* EXCEPT-WEBIRC:
|
||||
* This will make antirandom not check connections from WEBIRC gateways.
|
||||
* ( see https://www.unrealircd.org/docs/WebIRC_block )
|
||||
* It seems WEBIRC connections frequently cause false positives so the
|
||||
* default is 'yes'.
|
||||
*/
|
||||
except-webirc yes;
|
||||
};
|
||||
};
|
||||
|
||||
// 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'.
|
||||
* 10 is a good and safe default.
|
||||
*/
|
||||
score 10;
|
||||
|
||||
/* Action to take, see:
|
||||
* https://www.unrealircd.org/docs/Actions
|
||||
*/
|
||||
ban-action block;
|
||||
|
||||
/* Block/kill/ban reason (sent to user) */
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,140 +0,0 @@
|
||||
/* This file defines a number of default operclass blocks which you can
|
||||
* use in your oper blocks (via oper::operclass).
|
||||
*
|
||||
* This file is normally included from your unrealircd.conf through:
|
||||
* include "operclass.default.conf";
|
||||
*
|
||||
* The operclass block is extensively documented at:
|
||||
* https://www.unrealircd.org/docs/Operclass_block
|
||||
* And the permissions itself (operclass::permissions) at:
|
||||
* https://www.unrealircd.org/docs/Operclass_permissions
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* Instead, if you want to change the permissions in an operclass block,
|
||||
* you should copy the definition, or this entire file, to either your
|
||||
* unrealircd.conf or some other file (eg: operclass.conf) that you
|
||||
* you will include from your unrealircd.conf.
|
||||
* Then edit it, and while doing so don't forget to change the name
|
||||
* of your custom operclass block(s), so operclass <name>.
|
||||
*/
|
||||
|
||||
/* Local IRC Operator */
|
||||
operclass locop {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; override { flood; }; };
|
||||
client { see; };
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash; };
|
||||
route { local; };
|
||||
kill { local; };
|
||||
server-ban {
|
||||
kline;
|
||||
zline { local; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Global IRC Operator */
|
||||
operclass globop {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban { dccdeny; shun; zline; kline; gline; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Server administrator */
|
||||
operclass admin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
addomotd; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban;
|
||||
};
|
||||
};
|
||||
|
||||
/* Services Admin */
|
||||
operclass services-admin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
addomotd; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban;
|
||||
sacmd;
|
||||
services;
|
||||
};
|
||||
};
|
||||
|
||||
/* Network Administrator */
|
||||
operclass netadmin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
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; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'admin' operclass, but with OperOverride capabilities added */
|
||||
operclass admin-with-override {
|
||||
parent admin;
|
||||
permissions {
|
||||
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; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'netadmin' operclass, but with OperOverride capabilities added */
|
||||
operclass netadmin-with-override {
|
||||
parent netadmin;
|
||||
permissions {
|
||||
channel { operonly; see; override; };
|
||||
};
|
||||
};
|
||||
@@ -1,154 +0,0 @@
|
||||
/*
|
||||
* This configuration file contains example spamfilter rules.
|
||||
* They are real rules that were useful a long time ago.
|
||||
* Since 2005 these rules are no longer maintained.
|
||||
* The main purpose nowadays is to serve as an example
|
||||
* to give you an idea of how powerful spamfilters can
|
||||
* be in real-life situations.
|
||||
*
|
||||
* Documentation on spamfilter is available at:
|
||||
* https://www.unrealircd.org/docs/Spamfilter
|
||||
*/
|
||||
|
||||
/* General note:
|
||||
* If you want to use a \ in a spamfilter, or in fact
|
||||
* anywhere in the configuration file, then you need
|
||||
* to escape this to \\ instead.
|
||||
*/
|
||||
|
||||
|
||||
/* First some spamfilters with match-type 'simple'.
|
||||
* The only matchers available are * and ?
|
||||
* PRO's: very fast, easy matching: everyone can do this.
|
||||
* CON's: limited ability to fine-tune spamfilters
|
||||
*/
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "Come watch me on my webcam and chat /w me :-) http://*:*/me.mpg";
|
||||
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 {
|
||||
match-type simple;
|
||||
match "C:\\WINNT\\system32\\*.zip";
|
||||
target dcc;
|
||||
action block;
|
||||
reason "Infected by Gaggle worm?";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "Speed up your mIRC DCC Transfer by up to 75%*www.freewebs.com/mircupdate/mircspeedup.exe";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "STOP SPAM, USE THIS COMMAND: //write nospam $decode(*) | .load -rs nospam | //mode $me +R";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm";
|
||||
};
|
||||
|
||||
|
||||
/* Now spamfilters of type 'regex'.
|
||||
* These use powerful regular expressions (Perl/PCRE style)
|
||||
* You may have to learn more about "regex" first before you
|
||||
* can use them. For example the dot ('.') has special meaning.
|
||||
*/
|
||||
|
||||
/* This regex shows a pattern which requires 20 paramaters,
|
||||
* such as "x x x x x x x x x x x x x x x x x x x x"
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}";
|
||||
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.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "\x01DCC (SEND|RESUME).{225}";
|
||||
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.
|
||||
* The following uses a regex with a similar example.
|
||||
* Regular expressions are very powerful but here you can see
|
||||
* that it actually complicates writing a filter quite a bit.
|
||||
* With regex in this filter we need to escape the ( and all
|
||||
* the dots, question marks, etc. if we want to match these
|
||||
* characters in literal text.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$";
|
||||
target private;
|
||||
action block;
|
||||
reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan.";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^http://www\.angelfire\.com/[a-z0-9]+/[a-z0-9]+/[a-z_]+\.jpg <- .*!";
|
||||
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 $
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^!login Wasszup!$";
|
||||
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 {
|
||||
match-type regex;
|
||||
match "^!packet ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15}";
|
||||
target channel;
|
||||
action gline;
|
||||
reason "Attempting to use a GTBot";
|
||||
};
|
||||
|
||||
/* A slightly more complex example with a partial OR matcher (|) */
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "(^wait a minute plz\. i am updating my site|.*my erotic video).*http://.+/erotic(a)?/myvideo\.exe$";
|
||||
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
|
||||
* needs to be escaped to \\ as well.
|
||||
* The result is that we need double escaping:
|
||||
* To match a \ you need to write \\\\ in the configuration file.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "C:\\\\WINNT\\\\system32\\\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip";
|
||||
target dcc;
|
||||
action dccblock;
|
||||
reason "Infected by Gaggle worm";
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,784 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Works for Unreal3.2 and up
|
||||
*
|
||||
* Okay guys. This is the new example.conf. Its look is much like C++, kinda.
|
||||
* Anyway it is time to go over this. It's hard to pick up at first, but
|
||||
* with some pratice and reading you'll understand.
|
||||
*
|
||||
* Just copy this file to your main unrealircd dir and call it 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: All lines, except the opening { line, end in an ;, including the
|
||||
* closing } line. The IRCd will ignore commented lines.
|
||||
*
|
||||
* PLEASE READ doc/unreal32docs.html! The online version is also available at:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* It contains a lot information about the configfile: gives information about
|
||||
* every block, variable, etc..
|
||||
*/
|
||||
|
||||
/* Type of comments */
|
||||
#Comment type 1 (Shell type)
|
||||
// Comment type 2(C++ style)
|
||||
/* Comment type 3 (C Style) */
|
||||
#those lines are ignored by the ircd.
|
||||
|
||||
/*
|
||||
* At *NIX UnrealIrcd supports modules.
|
||||
* Loading the commands module is required:
|
||||
*/
|
||||
loadmodule "src/modules/commands.so";
|
||||
|
||||
/*
|
||||
* You can also include other configuration files.
|
||||
* help.conf contains all the /helpop text. The badwords.*.conf
|
||||
* files contain all the badword entries for mode +G...
|
||||
* spamfilter.conf contains some good rules for current trojans.
|
||||
* You probably want to include them:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEW: me {}
|
||||
* OLD: M:Line
|
||||
* me {} defines the name, description and unreal server numeric for
|
||||
* this server. Syntax is as follows:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Description";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* If linking, this numeric may not be used by any other server on the network.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: admin {}
|
||||
* OLD: A:Line Admin gives information on the server admin. you
|
||||
* may put as many lines under admin { as you wish.
|
||||
* Syntax is as follows:
|
||||
* admin {
|
||||
* "first line";
|
||||
* "second line";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: class {}
|
||||
* OLD: Y:line (old was confusing)
|
||||
* These define settings for classes. A class is a group setting for
|
||||
* connections. Example, server connections, instead of going to a client's
|
||||
* class, you direct it to the server class. Syntax is as follows
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (how often to ping a user/server in seconds);
|
||||
* maxclients (how many connections for this class);
|
||||
* sendq (maximum send queue from a connection);
|
||||
* recvq (maximum receive queue from a connection [flood control]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Max servers we can have linked at a time */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* How many seconds between each connection attempt */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow {}
|
||||
* OLD: I:Line
|
||||
* This defines allowing of connections...
|
||||
* Basically for clients, it allows them to connect so you can have some
|
||||
* control and/or set a password.
|
||||
* Syntax is as follows:
|
||||
* allow {
|
||||
* ip (ip mask to allow);
|
||||
* hostname (host mask);
|
||||
* class (class to send them to [see class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (how many connections per ip); (optional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Passworded allow line */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow channel {}
|
||||
* OLD: chrestrict
|
||||
* Allows a user to join a channel...
|
||||
* like an except from deny channel.
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: oper {}
|
||||
* OLD: O:Line
|
||||
* Defines an IRC Operator
|
||||
* IRC operators are there to keep sanity to the server and usually keep it
|
||||
* maintained and connected to the network.
|
||||
* The syntax is as follows:
|
||||
* oper (login) {
|
||||
* class (class to put them in, if different from I, moves them to new
|
||||
* class);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags here*);
|
||||
* };
|
||||
* OR
|
||||
* flags "old type flags, like OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
/* OLD OPER FLAG | NEW FLAG NAME
|
||||
O global
|
||||
o local
|
||||
a services-admin
|
||||
A admin
|
||||
r can_rehash
|
||||
D can_die
|
||||
R can_restart
|
||||
h helpop
|
||||
w can_wallops
|
||||
g can_globops
|
||||
c can_localroute
|
||||
L can_globalroute
|
||||
k can_localkill
|
||||
K can_globalkill
|
||||
b can_kline
|
||||
Z can_gzline
|
||||
t can_gkline
|
||||
B can_unkline
|
||||
n can_localnotice
|
||||
G can_globalnotice
|
||||
N netadmin
|
||||
C coadmin
|
||||
z can_zline
|
||||
W get_umodew
|
||||
H get_host
|
||||
v can_override
|
||||
*/
|
||||
|
||||
/*
|
||||
Note: netadmin gives you OaAN
|
||||
admin and services-admin give you o as well
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
global;
|
||||
};
|
||||
};
|
||||
/*
|
||||
* NEW: listen {}
|
||||
* OLD: P:Line
|
||||
* This defines a port for the ircd to bind to, to
|
||||
* allow users/servers to connect to the server.
|
||||
* Syntax is as follows:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* or for a plain
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port;
|
||||
*
|
||||
* That works also.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* NOTE ON SSL PORTS: SSL ports are pretty non-standardized,
|
||||
* besides numerous high-SSL ports, some people say you should run
|
||||
* it at 994 because that's the official SSL port.. but that
|
||||
* requires root! Besides, port 194 is the official irc port and
|
||||
* have you ever seen an ircd running on that?
|
||||
* So, our suggestion is to use port 6697 for SSL, this is used by
|
||||
* quite some networks and is recognized by for example StunTour.
|
||||
* You are free to open up as many SSL ports as you want, but
|
||||
* by (also) using 6697 you help the world standardize a bit ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/*
|
||||
* NEW: link {}
|
||||
* OLD: C/N:Lines
|
||||
* This defines an okay for a server connection.
|
||||
* NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY!
|
||||
* Syntax is as follows:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * works too);
|
||||
* hostname (ip number/hostmask);
|
||||
* bind-ip (What IP to bind to when connecting, or *);
|
||||
* port (port to connect to, if any);
|
||||
* hub (If this is a hub, * works, or servermasks it may bring in);
|
||||
* [or leaf *;]
|
||||
* password-connect "(pass to send)";
|
||||
* password-receive "(pass we should receive)";
|
||||
* class (class to direct servers into);
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* If we use SSL, we can choose what cipher to use in SSL mode
|
||||
* * Retrieve a list by "openssl ciphers", seperate ciphers with :'s
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Note: You should not use autoconnect when linking
|
||||
* services
|
||||
*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEW: ulines {}
|
||||
* OLD: U:Line
|
||||
* U-lines give servers more power/commands, this should ONLY be set
|
||||
* for services/stats servers and NEVER for normal UnrealIRCd servers!
|
||||
* Syntax is as follows:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: drpass {}
|
||||
* OLD: X:Line
|
||||
* This defines the passwords for /die and /restart.
|
||||
* Syntax is as follows:
|
||||
* drpass {
|
||||
* restart "(password for restarting)";
|
||||
* die "(password for die)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
|
||||
* as many as you wish.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* NOTICE: Right now, SEGV messages are *always* sent to ircd.log. codemastr is
|
||||
* working on a way to redirect the messages to this log file. *
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the
|
||||
same log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* This allows you to set command aliases such as /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* nick "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOTE: You could also include a pre-defined alias file here, see doc/unreal32docs.html section 2.9]
|
||||
*/
|
||||
|
||||
// This points the command /nickserv to the user NickServ who is connected to the set::services-server server
|
||||
/*alias NickServ {
|
||||
nick "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// If you want the command to point to the same nick as the command, you can leave the nick entry out
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Points the /statserv command to the user StatServ on the set::stats-name server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Points the /superbot command to the user SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* This allows you to set command aliases such as /identify, /services, etc
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* nick "points to";
|
||||
* type aliastype;
|
||||
* parameters "parameters to send";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* This is shown seperately because even though it has teh same name as the previous directive, it is very
|
||||
* different in syntax, although it provides a similar function and relys on the standard aliases to work.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
nick "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
nick "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* The alias::format directive is a regular expression. The first format matches the /identify command when
|
||||
* the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY
|
||||
* %1-. The second format matches then /identify command when the first character is not a #. It then
|
||||
* passes the command to the nickserv alias with parameters IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
|
||||
* parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
|
||||
* N until the last parameter in the string.
|
||||
*/
|
||||
|
||||
/* Standard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
nick "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
nick "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
nick "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
nick "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
* OLD: T:Line
|
||||
* This sets a different motd and rules files
|
||||
* depending on the clients hostmask.
|
||||
* Syntax is as follows:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: ban nick {}
|
||||
* OLD: Q:Line
|
||||
* Bans a nickname, so it can't be used.
|
||||
* Syntax is as follows:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserved for Services";
|
||||
};
|
||||
/*
|
||||
* NEW: ban ip {}
|
||||
* OLD: Z:Line
|
||||
* Bans an ip from connecting to the network.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip number/hostmask); reason "(reason)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Delinked server";
|
||||
};
|
||||
/*
|
||||
* NEW: ban server {}
|
||||
* OLD: Server Q:Line
|
||||
* Disables a server from connecting to the network.
|
||||
* if the server links to a remote server, local server
|
||||
* will disconnect from the network.
|
||||
* Syntax is as follows:
|
||||
* ban server {
|
||||
* mask "(server name)";
|
||||
* reason "(reason to give)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Get out of here.";
|
||||
};
|
||||
/*
|
||||
* NEW: ban user {}
|
||||
* OLD: K:Line
|
||||
* This makes it so a user from a certain mask can't connect
|
||||
* to your server.
|
||||
* Syntax:
|
||||
* ban user { mask (hostmask/ip number); reason "(reason)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: ban realname {}
|
||||
* OLD: n:Line
|
||||
* This bans a certain realname from being used.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE FOR ALL BANS, they may be repeated for addition entries!
|
||||
*
|
||||
* NEW: except ban {}
|
||||
* OLD: E:Line
|
||||
* This makes it so you can't get banned.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* Repeat the except ban {} as many times
|
||||
* as you want for different hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny dcc {}
|
||||
* OLD: dccdeny.conf
|
||||
* Use this to block dcc send's... stops
|
||||
* viruses better.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "file to block (ie, *exe)";
|
||||
* reason "reason";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny channel {}
|
||||
* OLD: N/A (NEW)
|
||||
* This blocks channels from being joined.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "reason";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* This sets a fake ip for non-opers, or
|
||||
* opers too lazy to /sethost :P
|
||||
* Syntax:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host to allow to use it);
|
||||
* };
|
||||
* login (login name);
|
||||
* password (password);
|
||||
* };
|
||||
* then to use this vhost, do /vhost (login) (password) in IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* You can include other configuration files */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Your cloak keys should be 3 random numbers between 10000 and 2147483646
|
||||
* and should be the same at all servers on the network.
|
||||
* They are used for generating masked hosts and should be kept secret.
|
||||
*/
|
||||
cloak-keys {
|
||||
9666;
|
||||
3333;
|
||||
3330;
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "set.this.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* You can enable ident checking here if you want */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* The minimum time a user must be connected before being allowed to use a QUIT message,
|
||||
* This will hopefully help stop spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Make the message in static-quit show in all quits - meaning no
|
||||
custom quits are allowed on local server */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* You can also block all part reasons by uncommenting this and say 'yes',
|
||||
* or specify some other text (eg: "Bye bye!") to always use as a comment.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* This allows you to make certain stats oper only, use * for all stats,
|
||||
* leave it out to allow users to see all stats. Type '/stats' for a full list.
|
||||
* Some admins might want to remove the 'kGs' to allow normal users to list
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: this example sets a limit of 3 connections per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nickchanges per 60 seconds (the default) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* default duration of a *line ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default reason */
|
||||
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
|
||||
/* except "#help"; channel to exempt from filtering */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problems or need more help?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contains 80% of your questions!
|
||||
* 3) If you still have problems you can go irc.ircsystems.net #unreal-support,
|
||||
* note that we require you to READ THE DOCUMENTATION and FAQ first!
|
||||
*/
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Example set {} block
|
||||
*/
|
||||
|
||||
set {
|
||||
/*
|
||||
* This is the mail users will get shown when k-lined
|
||||
*/
|
||||
kline-address "mail.to.mail.to";
|
||||
/*
|
||||
* What modes will users get when connecting to this server
|
||||
*/
|
||||
modes-on-connect "+ix";
|
||||
/* What channels users will autojoin */
|
||||
auto-join "0";
|
||||
/* What channels opers will autojoin on connect*/
|
||||
oper-auto-join "0";
|
||||
dns {
|
||||
/* What IP has our DNS server got? */
|
||||
nameserver 127.0.0.1;
|
||||
/* How long time will we wait for each attempt? */
|
||||
timeout 2s;
|
||||
/* How many attempts will we do */
|
||||
retries 2s;
|
||||
};
|
||||
options {
|
||||
enable-opermotd;
|
||||
enable-chatops;
|
||||
hide-ulines;
|
||||
// webtv-support;
|
||||
identd-check;
|
||||
};
|
||||
|
||||
/*
|
||||
* How many channels each user can join
|
||||
*/
|
||||
maxchannelsperuser 10;
|
||||
/*
|
||||
* This is a new thing in Unreal3.2.
|
||||
* You _need_ to make three numbers up, bigger than 100000
|
||||
* These MUST be the SAME on EVERY server in your NETWORK
|
||||
* If people discover these keys, it is easier for them to crack
|
||||
* the +x algoritm.
|
||||
*/
|
||||
cloak-keys
|
||||
{
|
||||
0;
|
||||
0;
|
||||
0;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
+8
-86
@@ -1,6 +1,5 @@
|
||||
Numeric 005 Documentation
|
||||
(c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(c) 2005-2009 syzop (Bram Matthys) [syzop@vulnscan.org]
|
||||
Numeric 005 Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Numeric 005 allows the server to inform the client of any protocol specific features in the
|
||||
IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally
|
||||
@@ -18,23 +17,13 @@ by this server"
|
||||
Currently UnrealIRCd supports several tokens that are included in numeric 005. A list of
|
||||
all tokens, their respective value and a brief description are listed below.
|
||||
|
||||
Unreal attempts to follow the proposed ISupport standard as much as possible. Unreal only
|
||||
ignores the standard in one regard, the TARGMAX token. This token is believed to be
|
||||
impractical and technically impossible to correctly implement due to existing limitations
|
||||
in the standard. Therefore, this token is not currently supported.
|
||||
|
||||
Unreal does additionally provide a few tokens which are not specified in the standard, these
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, CMDS, NAMESX, UHNAMES, and WATCHOPTS.
|
||||
Unreal also maintains a few legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure
|
||||
compatibility until the ISupport standard is more widely accepted by clients.
|
||||
|
||||
Token Value Default Value Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
MAP none none Informs the client that the /map
|
||||
command is present. [Obsolete]
|
||||
command is present.
|
||||
|
||||
KNOCK none none Informs the client that the /knock
|
||||
command is present. [Obsolete]
|
||||
command is present.
|
||||
|
||||
SAFELIST none none The LIST command is sent in
|
||||
multiple iterations so that the
|
||||
@@ -45,11 +34,10 @@ HCN none none The server supports t
|
||||
(Hybrid Connect Notice) protocol.
|
||||
|
||||
MAXCHANNELS number 10 The maximum number of channels a
|
||||
user may join. [Deprecated]
|
||||
user may join.
|
||||
|
||||
MAXBANS number 60 The maximum number of bans that
|
||||
may be placed for a channel.
|
||||
[Obsolete]
|
||||
|
||||
NICKLEN number 30 Maximum length of a user's
|
||||
nickname.
|
||||
@@ -67,7 +55,6 @@ AWAYLEN number 307 Maximum length of an
|
||||
WALLCHOPS none none Indicates that you may use
|
||||
NOTICE/PRIVMSG to send to +ohv by
|
||||
using PRIVMSG/NOTICE [@|%|+]#channel.
|
||||
[Deprecated]
|
||||
|
||||
WATCH number 128 Indicates the presence of the
|
||||
WATCH command and specifies the
|
||||
@@ -87,8 +74,8 @@ PREFIX (modes)prefixes (qaohv)~&@%+ Indicates the modes o
|
||||
that corespond to the given
|
||||
nickname prefixes.
|
||||
|
||||
CHANMODES A,B,C,D be,kfL,lj, Specifies how each channel mode is
|
||||
psmntirRcOAQKVHGCuzNSMT set/unset. The A section specifies
|
||||
CHANMODES A,B,C,D be,k,lfL, Specifies how each channel mode is
|
||||
psmntirRcOAQKVHGCuzN set/unset. The A section specifies
|
||||
modes that add a nick/mask to a
|
||||
list. The B section specifies
|
||||
modes that require a parameter
|
||||
@@ -108,73 +95,8 @@ CASEMAPPING string ascii Specifies what defini
|
||||
characters are upper/lowercase
|
||||
of eachother.
|
||||
|
||||
EXTBAN prefix,types ~,cqnr Specifies what extbans are
|
||||
EXTBAN prefix,types ~,cqr Specifies what extbans are
|
||||
supported by the server. The prefix
|
||||
defines which character indicates
|
||||
an extban and the types defines
|
||||
which extbans the server supports.
|
||||
|
||||
ELIST flags MNUCT Specifies the set of extended LIST
|
||||
options supported. The M flag
|
||||
indicates mask based searching,
|
||||
the N flag indicates negative
|
||||
mask based searching. The U flag
|
||||
means support for user count
|
||||
searching. The C flag allows channel
|
||||
creation time searching, and the T
|
||||
flag allows topic set time
|
||||
searching.
|
||||
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
can be useful for the client to know
|
||||
exist as they may provide a more
|
||||
efficient means for the client to
|
||||
accomplish a specific task. This
|
||||
token replaces the MAP and KNOCK
|
||||
tokens.
|
||||
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
prefix a channel name in a PRIVMSG
|
||||
or NOTICE to limit who receives the
|
||||
message to only those with a certain
|
||||
level of access. This token will
|
||||
replace the WALLCHOPS token.
|
||||
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
(+e) are supported by the server.
|
||||
|
||||
INVEX none none Indicates that channel invite
|
||||
exceptions (+I) are supported by
|
||||
the server.
|
||||
|
||||
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
|
||||
entries that may be added to a
|
||||
particular mode list (type A modes).
|
||||
This token replaces MAXBANS.
|
||||
|
||||
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
|
||||
channels with the specified prefix
|
||||
that a user may join at one time.
|
||||
This token will replace MAXCHANNELS.
|
||||
|
||||
CHANNELLEN number 32 Provides the maximum length of a
|
||||
channel name that a user can create.
|
||||
|
||||
NAMESX none none Indicates that extended /NAMES info
|
||||
is available on this server. If the
|
||||
client sends "PROTOCTL NAMESX" then
|
||||
the server will, from then on, send
|
||||
all channel rights in a NAMES reply
|
||||
instead of only the highest right
|
||||
(eg: @+Person instead of @Person).
|
||||
|
||||
UHNAMES none none Indicates that (other) extended
|
||||
/NAMES info is available on the
|
||||
server. If the client sends
|
||||
"PROTOCTL UHNAMES" then the server
|
||||
will, from then on, send user@host
|
||||
information in a NAMES reply
|
||||
(eg: @nick!ident@hostname).
|
||||
|
||||
WATCHOPTS flags A WATCH options supported. 'A' means
|
||||
Away Notification is available.
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
PROTOCTL Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
The PROTOCTL command allows servers to negotiate protocol specific features when a link
|
||||
occurs. The PROTOCTL command is sent during a link before the SERVER and PASS commands. The
|
||||
command contains tokens that list what protocols the server supports.
|
||||
|
||||
PROTOCTL SPACE <token> SPACE ...
|
||||
|
||||
UnrealIRCd supports several tokens that add additional protocol support to the server. A
|
||||
list of all supported tokens and their function listed below.
|
||||
|
||||
Token Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
NOQUIT Informs the server it need not send out a QUIT for each user on the server
|
||||
when an SQUIT occurs. Instead an SQUIT is sent out for each server that has
|
||||
been disconnected from the network and the server can then assume all users
|
||||
that were on those servers have left as well.
|
||||
|
||||
TOKEN Informs the server that it may send "tokenized commands", that is a shortened
|
||||
name for the commands. This allows the server to save bandwidth by sending
|
||||
less information to other servers. See doc/technical/token.txt for a list of
|
||||
all commands and their respective token.
|
||||
|
||||
NICKv2 Notifies the server that it supports the extended NICK command (version 2),
|
||||
this command allows the server to specify more information in the NICK
|
||||
command rather than having to send out a NICK, MODE, and CHGHOST
|
||||
command. This token only affects a NICK command introducing a client, not one
|
||||
in which a client is changing his/her nickname. The format for a NICKv2 NICK
|
||||
command is:
|
||||
|
||||
:<sender> NICK <nickname> <hops> <TS> <username> <host> <server>
|
||||
<servicestamp> <umodes> <vhost> :<info>
|
||||
|
||||
If the user has no modes set the umodes parameter is a +, if the user has no
|
||||
vhost set the vhost parameter is an *.
|
||||
|
||||
SJOIN SJOIN is an obsolete token that is only supported for backwards
|
||||
compatibility. It should not be used.
|
||||
|
||||
SJOIN2 SJOIN2 is an obsolete token that is only supported for backwards
|
||||
compatibility. It should not be used.
|
||||
|
||||
UMODE2 Informs the server that support for the UMODE2 command exists. The UMODE2
|
||||
command is a shortened form of the MODE command but only applys to
|
||||
usermodes. In a normal MODE command, when applied to usermodes, the nickname
|
||||
is specified two times. Both as the sender prefix and as the first parameter,
|
||||
UMODE2 solves this problem in order to save bandwidth, the format for UMODE2
|
||||
is as follows:
|
||||
|
||||
:<sender> UMODE2 <modes>
|
||||
|
||||
VL Notifies the server that Vline information is included in the info field of
|
||||
the SERVER command. Vline information consists of the protocol number of the
|
||||
server and compiletime options supported. This allows denial of a server
|
||||
based on version and/or features supported. The VL information is passed only
|
||||
during connection, it is not filtered to other servers on the network, only
|
||||
the uplink. The syntax for a VL supporting SERVER command is:
|
||||
|
||||
SERVER <servername> <hops> :U<protocol>-<versionflags> <info>
|
||||
|
||||
If an * appears for either protocol and/or versionflags no Vline checking is
|
||||
done, this is often used by services programs where support for all versions
|
||||
is desired. See doc/technical/vl.txt for a list of version flags and protocol
|
||||
numbers.
|
||||
|
||||
SJ3 Notifies the server that the SJOIN command with SJ3 syntax is
|
||||
supported. SJOIN is used at link time to inform servers about the channels on
|
||||
the server. It is a combination of the JOIN commands, and MODE commands
|
||||
associated with distribution of channel information. The syntax for the SJOIN
|
||||
command with SJ3 syntax is:
|
||||
|
||||
:<sender> SJOIN <ts> <chname> [<modes>] [<mode para> ...] :<[[*~@%+]member] ...
|
||||
[&"ban/except] ...>
|
||||
|
||||
The ts parameter is the time at which the channel, chname, was created. The
|
||||
modes parameter is only included if modes are set, if not modes and mode para
|
||||
are excluded. If modes exists and modes requiring parameters (+klLf) are set,
|
||||
one mode para parameter is included for each value. The last parameter
|
||||
specifies a list of channel members and the channel ban and except list. The
|
||||
members are listed with the prefixes they have. * = +q, ~ = +a, @ = +o, % =
|
||||
+h, + = +v. If no prefix is specified for the member then the user is a
|
||||
normal user. The & prefix is used to denote a +b, and the " prefix denotes a
|
||||
+e. It is important that if a & or " is encountered that you do not continue
|
||||
to check that entry for other prefixes as a ban/except may contain *~@
|
||||
characters which will intefere with prefixes.
|
||||
|
||||
When synching, if ts lower than the local value, the information supplied by
|
||||
the remote server replaces the local (ie remove local +ohv that are not
|
||||
recorded on the remote server). The opposite is true when the ts is
|
||||
higher. Bans/excepts do not apply to the previous rule. If the ts is the
|
||||
same, information is merged therefore the modes from both servers are added
|
||||
together. If +l is set and both servers have different values, the highest is
|
||||
choosen, for +f the highest of each param, N:M is chosen, and if one server
|
||||
has * set, then it is included. For +k and +L the "highest" in a string
|
||||
comparison is used.
|
||||
|
||||
NS When specified informs the server that numeric server names are
|
||||
supported. Numeric server names are a base64 number that is associated with
|
||||
each server. This number is used as a shorthand name for the server. It is
|
||||
used in the server parameter of the NICK command and can also be used in the
|
||||
prefix for a message. In the event that the prefix is an NS, rather than
|
||||
using :<sender>, the format is @<ns> the ns should be translated into the
|
||||
server name so that the message can be processed. The format for a SERVER
|
||||
message (at sync time) that supports NS is:
|
||||
|
||||
SERVER <servername> <hops> :U<protocol>-<versionflags>-<numeric> <info>
|
||||
|
||||
The VL protocol must also be supported. The numeric is passed to all servers
|
||||
on the network through the SERVER command using the syntax:
|
||||
|
||||
:<sender> SERVER <servername> <hops> <numeric> :<info>
|
||||
|
||||
Note: anywhere a :<sender> is expected an @<ns> may be received if the source
|
||||
is a server. See doc/technical/base64.txt for information on the base64
|
||||
system used.
|
||||
|
||||
SJB64 This token allows timestamps to be specified in base64 notation to conserve
|
||||
bandwidth. When SJB64 is supported, anywhere a timestamp can appear may be in
|
||||
base64 notation. A base64 timestamp is preceeded by a ! to identify that it
|
||||
is an sjb64 rather than a regular timestamp, if this is the case the
|
||||
characters following the ! represent the timestamp in base64. See
|
||||
doc/technical/base64.txt for information on the base64 system used.
|
||||
|
||||
ZIP If both servers have this set then the link will be (zlib) compressed after
|
||||
the SERVER message. If one of the servers does not have ZIP in his PROTOCTL
|
||||
message then the link stays uncompressed.
|
||||
|
||||
TKLEXT This allows 10 instead of 8 parameters in TKL's for spamfilter, see s_kline.c
|
||||
function m_tkl for more info on this (added in 3.2RC2).
|
||||
@@ -1,2 +0,0 @@
|
||||
All server protocol documentation has been moved to the wiki:
|
||||
https://www.unrealircd.org/docs/Server_protocol
|
||||
@@ -0,0 +1,122 @@
|
||||
Token List (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Command Token
|
||||
------------------------------------------------------------------------------------------------
|
||||
PRIVMSG !
|
||||
WHO \
|
||||
WHOIS #
|
||||
WHOWAS $
|
||||
USER %
|
||||
NICK &
|
||||
SERVER '
|
||||
LIST (
|
||||
TOPIC )
|
||||
INVITE *
|
||||
VERSION +
|
||||
QUIT ,
|
||||
SQUIT -
|
||||
KILL .
|
||||
INFO /
|
||||
LINKS 0
|
||||
SUMMON 1
|
||||
STATS 2
|
||||
USERS 3
|
||||
HELP 4
|
||||
HELPOP 4
|
||||
ERROR 5
|
||||
AWAY 6
|
||||
CONNECT 7
|
||||
PING 8
|
||||
PONG 9
|
||||
OPER ;
|
||||
PASS <
|
||||
WALLOPS =
|
||||
TIME >
|
||||
NAMES ?
|
||||
ADMIN @
|
||||
NOTICE B
|
||||
JOIN C
|
||||
PART D
|
||||
LUSERS E
|
||||
MOTD F
|
||||
MODE G
|
||||
KICK H
|
||||
USERHOST J
|
||||
ISON K
|
||||
REHASH O
|
||||
RESTART P
|
||||
CLOSE Q
|
||||
DIE R
|
||||
HASH S
|
||||
DNS T
|
||||
SILENCE U
|
||||
AKILL V
|
||||
KLINE W
|
||||
UNKLINE X
|
||||
RAKILL Y
|
||||
GNOTICE Z
|
||||
GOPER [
|
||||
GLOBOPS ]
|
||||
LOCOPS ^
|
||||
PROTOCTL _
|
||||
WATCH `
|
||||
TRACE b
|
||||
SQLINE c
|
||||
UNSQLINE d
|
||||
SVSNICK e
|
||||
SVSNOOP f
|
||||
SVSKILL h
|
||||
SVSMODE n
|
||||
SAMODE o
|
||||
CHATOPS p
|
||||
ZLINE q
|
||||
UNZLINE r
|
||||
RULES t
|
||||
MAP u
|
||||
SVS2MODE v
|
||||
DALINFO w
|
||||
ADCHAT x
|
||||
MKPASSWD y
|
||||
ADDLINE z
|
||||
GLINE }
|
||||
SETHOST AA
|
||||
NACHAT AC
|
||||
SETIDENT AD
|
||||
SETNAME AE
|
||||
LAG AF
|
||||
SDESC AG
|
||||
KNOCK AI
|
||||
CREDITS AJ
|
||||
LICENSE AK
|
||||
CHGHOST AL
|
||||
RPING AM
|
||||
RPONG AN
|
||||
NETINFO AO
|
||||
SENDUMODE AP
|
||||
ADDMODE AQ
|
||||
ADDOMODE AR
|
||||
SVSMODE AS
|
||||
SMO AU
|
||||
OPERMOTD AV
|
||||
TSCTL AW
|
||||
SAJOIN AX
|
||||
SAPART AY
|
||||
CHGIDENT AZ
|
||||
SWHOIS BA
|
||||
SVSO BB
|
||||
SVSFLINE BC
|
||||
TKL BD
|
||||
VHOST BE
|
||||
BOTMOTD BF
|
||||
HTM BH
|
||||
SHUN BL
|
||||
SVSJOIN BR
|
||||
SVSPART BT
|
||||
SJOIN ~
|
||||
UMODE2 |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2303 3.2-Selene
|
||||
2302 3.1.1-Darkshades, 3.1.2-Darkshades, 3.1.3-Komara, 3.1.4-Meadows
|
||||
2301 3.1-Silverheart
|
||||
2300 3.0-Morrigana
|
||||
|
||||
Flag Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
c Server is chrooted
|
||||
C command line config enabled
|
||||
D Server is in debugmode
|
||||
F Using file descriptor lists
|
||||
h Compiled as a hub
|
||||
i Shows invisible users in /trace
|
||||
n NOSPOOF enabled
|
||||
V Uses valloc()
|
||||
W Windows version
|
||||
Y Syslog logging enabled
|
||||
K No ident checking (?)
|
||||
6 IPv6 supported
|
||||
X STRIPBADWORDS enabled (chmode/umode +G)
|
||||
P Uses poll()
|
||||
e SSL supported
|
||||
O OperOverride enabled
|
||||
o OperOverride without verify
|
||||
Z Zip links supported
|
||||
3 3rd party modules (were) loaded
|
||||
E Extended channel modes supported
|
||||
@@ -1,26 +0,0 @@
|
||||
==[ Translations ]===========================================================
|
||||
|
||||
In UnrealIRCd 4 we support the following translations:
|
||||
* on-line documentation at https://www.unrealircd.org/docs/ (wiki!)
|
||||
* help.conf
|
||||
* example.conf
|
||||
|
||||
For translating the wiki documentation see this article:
|
||||
https://www.unrealircd.org/docs/Translating_UnrealIRCd_wiki_pages
|
||||
|
||||
For the .conf files the following rules apply:
|
||||
* You must translate the very latest (English) version of the document(s)
|
||||
* The translation must be correct. Not just the spelling and grammar,
|
||||
but also 'technically'. You should therefore have some real experience
|
||||
with UnrealIRCd.
|
||||
* Someone, usually the person who translated it, needs to be willing
|
||||
to actively maintain the docs. This is very important! If docs are
|
||||
out of date (out-of-synch) there will be confusion among users.
|
||||
We will remove documents that have been out of date too long (months)
|
||||
|
||||
If you want to start translating a document, please send an email to
|
||||
syzop@unrealircd.org and mention the language you are willing to translate
|
||||
to.. You will then receive an email back saying you can go ahead (or not).
|
||||
This is mainly to avoid multiple persons working on the same translation.
|
||||
|
||||
=============================================================================
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,58 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit on any failure:
|
||||
set -e
|
||||
|
||||
# Verbose:
|
||||
set -x
|
||||
|
||||
if [ "$1" != "" ]; then
|
||||
BUILDCONFIG="$*"
|
||||
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; 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 install
|
||||
|
||||
set +x
|
||||
echo ""
|
||||
echo "***********************************************"
|
||||
echo "UnrealIRCd build & install successful."
|
||||
echo "***********************************************"
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
otool -L ~/unrealircd/bin/unrealircd
|
||||
else
|
||||
ldd ~/unrealircd/bin/unrealircd
|
||||
fi
|
||||
|
||||
if [ "$BUILDCONFIG" = "local-curl" ]; then
|
||||
# We broke the system significantly earlier that build tests
|
||||
# won't work (eg: 'git' is uninstallable). Don't bother
|
||||
# running the tests. I don't expect a 'local-curl' specific
|
||||
# bug anyway.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# 'rake' doesn't work. have to figure that one out..
|
||||
echo "Not running test on OS X for now"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
#echo "Now running UnrealIRCd test framework..."
|
||||
#set -x
|
||||
#extras/build-tests/nix/run-tests
|
||||
@@ -1,29 +0,0 @@
|
||||
#
|
||||
BASEPATH=$HOME/unrealircd
|
||||
BINDIR=$HOME/unrealircd/bin
|
||||
DATADIR=$HOME/unrealircd/data
|
||||
CONFDIR=$HOME/unrealircd/conf
|
||||
MODULESDIR=$HOME/unrealircd/modules
|
||||
LOGDIR=$HOME/unrealircd/logs
|
||||
CACHEDIR=$HOME/unrealircd/cache
|
||||
DOCDIR=$HOME/unrealircd/doc
|
||||
TMPDIR=$HOME/unrealircd/tmp
|
||||
LIBDIR=$HOME/unrealircd/lib
|
||||
PREFIXAQ="1"
|
||||
MAXSENDQLENGTH="3000000"
|
||||
MAXCONNECTIONS="1024"
|
||||
NICKNAMEHISTORYLENGTH="2000"
|
||||
DEFPERM="0600"
|
||||
SSLDIR=""
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
SHOWLISTMODES="1"
|
||||
TOPICNICKISNUH=""
|
||||
SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
GENCERTIFICATE="0"
|
||||
#EXTRAPARA="--enable-werror"
|
||||
ADVANCED=""
|
||||
@@ -1,64 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script fires up a two-server IRC network and runs the test framework
|
||||
#
|
||||
|
||||
# Exit on error:
|
||||
set -e
|
||||
|
||||
# Verbose:
|
||||
set -x
|
||||
|
||||
# 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
|
||||
sudo apt-get install git python rake -y
|
||||
gem install bundler -v "~>1.0"
|
||||
fi
|
||||
|
||||
# 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 ..
|
||||
|
||||
# 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,114 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This is a helper script for travis-ci builds and our own FreeBSD test machine.
|
||||
# It is not meant to be used by end-users
|
||||
#
|
||||
|
||||
function fail()
|
||||
{
|
||||
echo "select-config failed: $*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function build_ssl {
|
||||
DIR="$2"
|
||||
URL="$1/$2.tar.gz"
|
||||
savewd="$PWD"
|
||||
cd ~
|
||||
wget "$URL" || exit 1
|
||||
tar xzf $DIR.tar.gz
|
||||
cd "$DIR"
|
||||
(./configure --prefix=$HOME/ssl 1>/dev/null 2>&1 || ./config --prefix=$HOME/ssl -fPIC 1>/dev/null 2>&1 ) || fail "build_ssl: configure/config failed"
|
||||
(make -j2 1>/dev/null 2>&1 && make install 1>/dev/null 2>&1) || fail "build_ssl: make failed"
|
||||
cd "$savewd"
|
||||
echo "SSLDIR=$HOME/ssl" >>config.settings
|
||||
}
|
||||
|
||||
if [ ! -d extras ]; then
|
||||
echo "This tool is supposed to be run from the source root, so ~/unrealircd-4.2.x or similar"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
# Take default settings as a starter..
|
||||
cp extras/build-tests/nix/configs/default ./config.settings
|
||||
|
||||
# Libtool is required for the other options..
|
||||
# Also for our FreeBSD machine we have to uninstall some stuff since a clean
|
||||
# environment is not guaranteed...
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get install libtool -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y libtool
|
||||
sudo pkg remove -y c-ares
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew update
|
||||
brew install openssl
|
||||
else
|
||||
echo "OS not correctly detected ($OSTYPE). Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "*****************************************************************"
|
||||
echo "SELECTED BUILD OPTIONS: $*"
|
||||
echo "*****************************************************************"
|
||||
|
||||
while [ "$1" ]
|
||||
do
|
||||
echo "Processing option $1..."
|
||||
if [ "$1" = "system-cares" ]; then
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get install libc-ares-dev -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y c-ares
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install c-ares
|
||||
fi
|
||||
elif [ "$1" = "system-curl" ]; then
|
||||
echo 'REMOTEINC=1' >>config.settings
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get install libcurl4-openssl-dev -qq
|
||||
echo 'CURLDIR=/usr' >>config.settings
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y curl
|
||||
echo 'CURLDIR=/usr/local' >>config.settings
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install c-ares curl
|
||||
echo 'CURLDIR=/usr/local/opt/curl' >>config.settings
|
||||
fi
|
||||
elif [ "$1" = "local-curl" ]; then
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get remove libcurl4-openssl-dev libcurl3-gnutls libcurl3 -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg remove -y curl #NOTE: unfortunately this also removes 'git' :D
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "No need to remove curl since it's not installed. Or at least I hope so..."
|
||||
fi
|
||||
echo 'REMOTEINC=1' >>config.settings
|
||||
echo "CURLDIR=`pwd`/extras/curl" >>config.settings
|
||||
elif [ "$1" = "libressl-27" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.7.5
|
||||
elif [ "$1" = "libressl-28" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.8.3
|
||||
elif [ "$1" = "libressl-29" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.9.0
|
||||
elif [ "$1" = "openssl-102" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.0.2q
|
||||
elif [ "$1" = "openssl-110" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.1.0j
|
||||
elif [ "$1" = "openssl-111" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.1.1a
|
||||
else
|
||||
echo "Unknown option $1"
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "NOTE: Not building with -Werror for now on macOS..."
|
||||
else
|
||||
echo 'EXTRAPARA="--enable-werror"' >>config.settings
|
||||
fi
|
||||
@@ -1,49 +0,0 @@
|
||||
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\vcvars32.bat"
|
||||
|
||||
rem Installing tools
|
||||
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-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
|
||||
|
||||
cd \projects\unrealircd
|
||||
|
||||
rem Now the actual build
|
||||
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.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 Convert c:\dev to c:\projects\unrealircd-deps
|
||||
rem TODO: should use environment variable in innosetup script?
|
||||
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\win32\unrealinst.iss
|
||||
if %ERRORLEVEL% NEQ 0 EXIT /B 1
|
||||
|
||||
rem Show some proof
|
||||
ren mysetup.exe unrealircd-dev-build.exe
|
||||
dir unrealircd-dev-build.exe
|
||||
sha256sum unrealircd-dev-build.exe
|
||||
|
||||
rem Upload artifact
|
||||
appveyor PushArtifact unrealircd-dev-build.exe
|
||||
if %ERRORLEVEL% NEQ 0 EXIT /B 1
|
||||
@@ -1,21 +0,0 @@
|
||||
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" %*
|
||||
+311
@@ -0,0 +1,311 @@
|
||||
/*
|
||||
** burst.c
|
||||
**
|
||||
** Nicolas Pioch, Dec 93
|
||||
** <Nicolas.Pioch@enst.fr>
|
||||
** Carsten V. Munk Nov 2000
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/signal.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/un.h>
|
||||
#include <netdb.h>
|
||||
#include <errno.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef POSIX
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#define MYBUFSIZE 2048
|
||||
|
||||
char *jupedservername, *uplinkservername, *jupereason;
|
||||
int options;
|
||||
char *password;
|
||||
typedef struct aClient {
|
||||
int socket;
|
||||
char buffer[MYBUFSIZE+1];
|
||||
int read;
|
||||
int write;
|
||||
} aClient;
|
||||
|
||||
void fatalrestart(aClient *robotptr, const char *s);
|
||||
|
||||
void fatal(const char *s) {
|
||||
perror(s);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
typedef void (*signalhandler)(int);
|
||||
static void signal_catcher(int sig, int code, struct sigcontext *scp) {
|
||||
fprintf(stderr, "Caught signal %d with code %d\n", sig, code);
|
||||
|
||||
switch(sig) {
|
||||
case SIGFPE: /* Floating point exception */
|
||||
case SIGILL: /* Illegal instruction */
|
||||
case SIGSEGV: /* Segmentation violation */
|
||||
case SIGBUS: /* Bus error */
|
||||
case SIGSYS: /* Bad argument to system call */
|
||||
fatal("Fatal signal received, aborting...");
|
||||
break;
|
||||
|
||||
case SIGQUIT:
|
||||
case SIGINT:
|
||||
case SIGTERM: /* On se barre */
|
||||
fatal("AAAAAAAAArrrrrrrrgh!");
|
||||
break;
|
||||
}
|
||||
|
||||
signal(sig, (signalhandler)signal_catcher);
|
||||
}
|
||||
|
||||
|
||||
typedef union socket_address {
|
||||
struct sockaddr_un unixx;
|
||||
struct sockaddr_in inet;
|
||||
} socket_address;
|
||||
|
||||
void name_to_number(int address_family, const char *hostname, int port,
|
||||
socket_address *addr, int *len2) {
|
||||
u_long iaddr;
|
||||
int len;
|
||||
struct hostent *host;
|
||||
char *inaddr;
|
||||
bzero ((char *) addr, sizeof (socket_address) );
|
||||
|
||||
if ( address_family == AF_UNIX ) {
|
||||
strcpy(addr->unixx.sun_path,hostname);
|
||||
*len2=sizeof( struct sockaddr_un );
|
||||
} else {
|
||||
if ((hostname) && (hostname[0])) {
|
||||
if (hostname[0] >= '0' && hostname[0] <= '9') {
|
||||
iaddr = inet_addr(hostname);
|
||||
inaddr = (char *) &iaddr;
|
||||
len=sizeof(iaddr);
|
||||
} else {
|
||||
host=gethostbyname (hostname);
|
||||
if (!host)
|
||||
fatal("Unknown host");
|
||||
inaddr=host->h_addr_list[0];
|
||||
len=host->h_length;
|
||||
}
|
||||
bcopy(inaddr, (char *)&addr->inet.sin_addr, len);
|
||||
}
|
||||
addr->inet.sin_port=htons((u_short) port);
|
||||
*len2=sizeof(struct sockaddr_in);
|
||||
}
|
||||
addr->inet.sin_family = address_family;
|
||||
}
|
||||
|
||||
int read_data(aClient *robotptr) {
|
||||
int nbytes;
|
||||
|
||||
if ((nbytes=read(robotptr->socket, &(robotptr->buffer[robotptr->write]),
|
||||
(sizeof(robotptr->buffer) - robotptr->write - 1))) < 0)
|
||||
fatalrestart(robotptr, "read on socket");
|
||||
|
||||
if (nbytes == 0) {
|
||||
close(robotptr->socket);
|
||||
fatalrestart(robotptr, "Connection Closed");
|
||||
}
|
||||
|
||||
robotptr->write+=nbytes;
|
||||
robotptr->buffer[robotptr->write]=0;
|
||||
|
||||
return(nbytes);
|
||||
}
|
||||
|
||||
void send_data(int socketfd, const char *data, int length) {
|
||||
int length2;
|
||||
length2=write(socketfd, data, length);
|
||||
if (length2 != length)
|
||||
fprintf(stderr, "*** write truncated to %d chars...\n", length2);
|
||||
}
|
||||
|
||||
int create_client(const char *hostname, const int hostport) {
|
||||
int descript;
|
||||
socket_address hostaddr;
|
||||
int adlen;
|
||||
|
||||
/* winlocal
|
||||
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) < 0)
|
||||
*/
|
||||
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) == -1) // winlocal
|
||||
fatal("socket");
|
||||
|
||||
name_to_number(AF_INET, hostname, hostport, &hostaddr, &adlen);
|
||||
|
||||
if (connect(descript, &hostaddr.inet, adlen) < 0)
|
||||
fatal("connect");
|
||||
|
||||
return(descript);
|
||||
}
|
||||
|
||||
void parse_line(aClient *robotptr) {
|
||||
char *toparse;
|
||||
|
||||
toparse=(robotptr->buffer + robotptr->read);
|
||||
|
||||
printf("%s\n",toparse);
|
||||
/* Special handling for PING messages */
|
||||
if (!strncasecmp(toparse, "PING ", 5) || !strncasecmp(toparse, "8 ", 2)){
|
||||
toparse=strtok(toparse, "\r\n");
|
||||
toparse[1]='\0';
|
||||
send_data(robotptr->socket, toparse, strlen(toparse));
|
||||
return;
|
||||
}
|
||||
if (!strncasecmp(toparse, "AO", 2) || !strncasecmp(toparse, "NETINFO", 7))
|
||||
{
|
||||
if (!(options & 0x80))
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void parse_data(aClient *robotptr) {
|
||||
int next;
|
||||
|
||||
while((robotptr->read < robotptr->write)
|
||||
&& ((robotptr->buffer[robotptr->read] == '\r')
|
||||
|| (robotptr->buffer[robotptr->read] == '\n')))
|
||||
robotptr->read++;
|
||||
|
||||
for(next=robotptr->read; next<=robotptr->write; next++) {
|
||||
if ((robotptr->buffer[next] == '\r')
|
||||
|| (robotptr->buffer[next] == '\n'))
|
||||
break;
|
||||
}
|
||||
|
||||
if (next<robotptr->write) {
|
||||
robotptr->buffer[next]=0;
|
||||
next++;
|
||||
parse_line(robotptr);
|
||||
robotptr->read=next;
|
||||
parse_data(robotptr);
|
||||
}
|
||||
|
||||
if (robotptr->read == robotptr->write) {
|
||||
robotptr->read=robotptr->write=0;
|
||||
} else {
|
||||
bcopy((robotptr->buffer + robotptr->read),
|
||||
(robotptr->buffer), (robotptr->write-robotptr->read));
|
||||
robotptr->write-=robotptr->read;
|
||||
robotptr->read=0;
|
||||
}
|
||||
}
|
||||
|
||||
void run_client(aClient *robotptr) {
|
||||
fd_set mask, returnmask[3];
|
||||
int selectval;
|
||||
|
||||
FD_ZERO(&mask);
|
||||
FD_SET(robotptr->socket, &mask);
|
||||
|
||||
while (1) {
|
||||
bcopy((char *)&mask,(char *)returnmask,sizeof(fd_set));
|
||||
FD_ZERO(returnmask+1);
|
||||
bcopy((char *)&mask,(char *)(returnmask+2),sizeof(fd_set));
|
||||
|
||||
selectval=select(FD_SETSIZE,
|
||||
returnmask, returnmask+1, returnmask+2, NULL);
|
||||
|
||||
if (selectval) {
|
||||
read_data(robotptr);
|
||||
parse_data(robotptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void initialize(aClient *robotptr) {
|
||||
char passphrase[MYBUFSIZE];
|
||||
robotptr->socket=create_client(uplinkservername, atol(jupereason));
|
||||
sprintf(passphrase,
|
||||
"PROTOCTL %s %s %s %s %s %s %s %s %s\r\n",
|
||||
(options & 0x1) ? "NOQUIT" : "",
|
||||
(options & 0x2) ? "TOKEN" : "",
|
||||
(options & 0x4) ? "NICKv2" : "",
|
||||
(options & 0x8) ? "SJOIN" : "",
|
||||
(options & 0x10) ? "SJOIN2" : "",
|
||||
(options & 0x20) ? "UMODE2" : "",
|
||||
(options & 0x40) ? "NS" : "",
|
||||
(options & 0x100) ? "SJ3" : "",
|
||||
(options & 0x200) ? "SJB64" : "");
|
||||
write(robotptr->socket, passphrase, strlen(passphrase));
|
||||
sprintf(passphrase, "PASS %s\r\nSERVER %s 1 :[Burst analysis].\r\n",
|
||||
password,jupedservername);
|
||||
write(robotptr->socket, passphrase, strlen(passphrase));
|
||||
}
|
||||
|
||||
void fatalrestart(aClient *robotptr, const char *s) {
|
||||
perror(s);
|
||||
close(robotptr->socket);
|
||||
sleep(10);
|
||||
initialize(robotptr);
|
||||
run_client(robotptr);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
aClient robot;
|
||||
char *p;
|
||||
|
||||
if (argc != 6) {
|
||||
fprintf(stderr, "IRCd burst generator, by Carsten V. Munk 2000, based off jupe.c by Nicolas Pioch\n");
|
||||
fprintf(stderr,
|
||||
"Usage: %s <burstservername> <uplink> <port> <options> <password>\n", argv[0]);
|
||||
fprintf(stderr, "Options can be a combination of these:\n");
|
||||
fprintf(stderr, "1 = Enable NOQUIT 2 = Enable TOKEN\n");
|
||||
fprintf(stderr, "3 = Enable NICKv2 4 = Enable SJOIN\n");
|
||||
fprintf(stderr, "5 = Enable SJOIN2 6 = Enable UMODE2\n");
|
||||
fprintf(stderr, "7 = Enable NS 8 = Ignore end of burst\n");
|
||||
fprintf(stderr, "9 = Enable SJ3 a = Enable SJB64\n");
|
||||
fatal("incorrect argument count");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
jupedservername=argv[1];
|
||||
uplinkservername=argv[2];
|
||||
jupereason=argv[3];
|
||||
password = argv[5];
|
||||
p = argv[4];
|
||||
for (; *p; p++)
|
||||
{
|
||||
if (*p == '1')
|
||||
options |= 0x1;
|
||||
if (*p == '2')
|
||||
options |= 0x2;
|
||||
if (*p == '3')
|
||||
options |= 0x4;
|
||||
if (*p == '4')
|
||||
options |= 0x8;
|
||||
if (*p == '5')
|
||||
options |= 0x10;
|
||||
if (*p == '6')
|
||||
options |= 0x20;
|
||||
if (*p == '7')
|
||||
options |= 0x40;
|
||||
if (*p == '8')
|
||||
options |= 0x80;
|
||||
if (*p == '9')
|
||||
options |= 0x100;
|
||||
if (*p == 'a')
|
||||
options |= 0x200;
|
||||
}
|
||||
/* installe le signal_catcher */
|
||||
signal(SIGTERM,(signalhandler)signal_catcher);
|
||||
|
||||
robot.read=robot.write=0;
|
||||
|
||||
initialize(&robot);
|
||||
run_client(&robot);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
* IRC - Internet Relay Chat, src/modules/channeldumper.c
|
||||
* (C) 2002 Carsten V. Munk <stskeeps@tspre.org>
|
||||
*
|
||||
*
|
||||
* See file AUTHORS in IRC package for additional names of
|
||||
* the programmers.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "channel.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
#include "proto.h"
|
||||
#ifdef STRIPBADWORDS
|
||||
#include "badwords.h"
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
|
||||
#ifndef DYNAMIC_LINKING
|
||||
ModuleHeader channeldumper_Header
|
||||
#else
|
||||
#define channeldumper_Header Mod_Header
|
||||
ModuleHeader Mod_Header
|
||||
#endif
|
||||
= {
|
||||
"channeldumper",
|
||||
"$Id$",
|
||||
"Channel dump to text timed",
|
||||
"3.2-b8-1",
|
||||
NULL
|
||||
};
|
||||
|
||||
static ModuleInfo ChannelDumperModInfo;
|
||||
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
|
||||
#else
|
||||
int channeldumper_Init(ModuleInfo *modinfo)
|
||||
#endif
|
||||
{
|
||||
tainted++;
|
||||
bcopy(modinfo,&ChannelDumperModInfo, modinfo->size);
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
EVENT(e_channeldump);
|
||||
static Event *ChannelDumpEvent = NULL;
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Load(int module_load)
|
||||
#else
|
||||
int channeldumper_Load(int module_load)
|
||||
#endif
|
||||
{
|
||||
LockEventSystem();
|
||||
ChannelDumpEvent = EventAddEx(ChannelDumperModInfo.handle, "e_channeldump", 5, 0, e_channeldump, NULL);
|
||||
UnlockEventSystem();
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Unload(int module_unload)
|
||||
#else
|
||||
int channeldumper_Unload(int module_unload)
|
||||
#endif
|
||||
{
|
||||
tainted--;
|
||||
LockEventSystem();
|
||||
EventDel(ChannelDumpEvent);
|
||||
UnlockEventSystem();
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
EVENT(e_channeldump)
|
||||
{
|
||||
aChannel *chptr;
|
||||
unsigned int hashnum;
|
||||
Member *m;
|
||||
FILE *f;
|
||||
|
||||
f = fopen("ircd.channeldump", "w");
|
||||
if (!f)
|
||||
return;
|
||||
for (hashnum = 0; hashnum < CH_MAX; hashnum++)
|
||||
{
|
||||
for (chptr = (aChannel *)hash_get_chan_bucket(hashnum); chptr; chptr
|
||||
= chptr->hnextch)
|
||||
{
|
||||
if (SecretChannel(chptr))
|
||||
continue;
|
||||
fprintf(f, "C %s %s\r\n",
|
||||
chptr->chname, chptr->topic ? chptr->topic : "");
|
||||
for (m = chptr->members; m; m = m->next)
|
||||
fprintf(f, "M %s\r\n",
|
||||
m->cptr->name);
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
return;
|
||||
}
|
||||
@@ -1,98 +0,0 @@
|
||||
#!/bin/sh
|
||||
URL="https://www.unrealircd.org/files/curl-latest.tar.gz"
|
||||
OUTF="curl-latest.tar.gz"
|
||||
OUTD="curl-latest"
|
||||
ARESPATH="`pwd`/extras/c-ares"
|
||||
UNREALDIR="`pwd`"
|
||||
CARESVERSION="1.15.0"
|
||||
LIBDIR="$1"
|
||||
|
||||
if [ "x$1" = "x" ]; then
|
||||
echo "You should (no longer) run this program directly."
|
||||
echo "It will be invoked by ./Config"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f src/parse.c ]; then
|
||||
if [ -f ../src/parse.c ]; then
|
||||
cd ..
|
||||
else
|
||||
echo "Please run this program from your UnrealIRCd directory"
|
||||
echo "(usually $HOME/unrealircd-4.2.X or something like that)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
wget --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="wget"
|
||||
else
|
||||
fetch --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="fetch"
|
||||
else
|
||||
lynx --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="lynx"
|
||||
else
|
||||
echo "ERROR: unable to find wget/fetch/lynx, please install at least one of these programs"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d tmp ]; then
|
||||
mkdir tmp || exit 1
|
||||
fi
|
||||
|
||||
cd tmp || exit 1
|
||||
|
||||
rm -f "$OUTF"
|
||||
|
||||
if [ "$FETCHER" = "wget" ]; then
|
||||
wget -O "$OUTF" "$URL"
|
||||
elif [ "$FETCHER" = "lynx" ]; then
|
||||
lynx -dump "$URL" >"$OUTF"
|
||||
elif [ "$FETCHER" = "fetch" ]; then
|
||||
cd tmp #todo: find out the cmd line parameter ;)
|
||||
fetch "$URL"
|
||||
fi
|
||||
|
||||
if [ "$?" != 0 ]; then
|
||||
echo "ERROR: Something went wrong while trying to download $URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "$OUTD" # remove old directory prior to extracting
|
||||
tar xzf "$OUTF" || exit 1
|
||||
|
||||
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
if [ ! -d "$ARESPATH/lib" ]; then
|
||||
echo "c-ares has not been build yet, let's do that now..."
|
||||
cd ../extras/
|
||||
tar xzf c-ares.tar.gz || exit 1
|
||||
cd c-ares-$CARESVERSION || exit 1
|
||||
./configure --prefix=$ARESPATH || exit 1
|
||||
(make && make install) || exit 1
|
||||
cd ../../tmp/
|
||||
echo "c-ares built."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# We assume curl has been packaged in a way it will extract to "$OUTD"/
|
||||
cd "$OUTD" || exit 1
|
||||
|
||||
echo "Building and installing libcurl"
|
||||
CPPFLAGS="-I$ARESPATH/include" ./configure --prefix=$UNREALDIR/extras/curl --libdir=$LIBDIR --enable-shared \
|
||||
--disable-thread --enable-ares=$ARESPATH --disable-ipv6
|
||||
cp -R $ARESPATH/lib ares
|
||||
make && make install
|
||||
|
||||
#cp $ARESPATH/lib/libcares.a $HOME/curl/lib
|
||||
# that isn't needed anymore as the lib is already in unreal...
|
||||
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
* Defizzer, 3rd party module for Unreal3.2-beta15 and up
|
||||
* (C) Carsten V. Munk 2003 <stskeeps@tspre.org>
|
||||
* You can do everything you desire with this module, under the condition that if you
|
||||
* meet the author, you must buy him a drink of his choice.
|
||||
* Copyright notice must ALWAYS stay in place.
|
||||
*
|
||||
* Removes unidented fizzer clients from the network pre-local-connect
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "channel.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
#ifdef STRIPBADWORDS
|
||||
#include "badwords.h"
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
DLLFUNC int h_defizzer_connect(aClient *sptr);
|
||||
|
||||
static Hook *LocConnect = NULL;
|
||||
ModuleInfo DefizzerModInfo;
|
||||
|
||||
#ifndef DYNAMIC_LINKING
|
||||
ModuleHeader defizzer_Header
|
||||
#else
|
||||
#define defizzer_Header Mod_Header
|
||||
ModuleHeader Mod_Header
|
||||
#endif
|
||||
= {
|
||||
"defizzer", /* Name of module */
|
||||
"$Id$", /* Version */
|
||||
"de-Fizzer", /* Short description of module */
|
||||
"3.2-b8-1",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
/* The purpose of these ifdefs, are that we can "static" link the ircd if we
|
||||
* want to
|
||||
*/
|
||||
|
||||
/* This is called on module init, before Server Ready */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Init(ModuleInfo *modinfo)
|
||||
#else
|
||||
int defizzer_Init(ModuleInfo *modinfo)
|
||||
#endif
|
||||
{
|
||||
bcopy(modinfo,&DefizzerModInfo,modinfo->size);
|
||||
LocConnect = HookAddEx(DefizzerModInfo.handle, HOOKTYPE_PRE_LOCAL_CONNECT, h_defizzer_connect);
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
/* Is first run when server is 100% ready */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Load(int module_load)
|
||||
#else
|
||||
int defizzer_Load(int module_load)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/* Called when module is unloaded */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Unload(int module_unload)
|
||||
#else
|
||||
int defizzer_Unload(int module_unload)
|
||||
#endif
|
||||
{
|
||||
HookDel(LocConnect);
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
static void ban_fizzer(aClient *cptr)
|
||||
{
|
||||
int i;
|
||||
aClient *acptr;
|
||||
char hostip[128], mo[100], mo2[100];
|
||||
char *tkllayer[9] = {
|
||||
me.name, /*0 server.name */
|
||||
"+", /*1 +|- */
|
||||
"z", /*2 G */
|
||||
"*", /*3 user */
|
||||
NULL, /*4 host */
|
||||
NULL,
|
||||
NULL, /*6 expire_at */
|
||||
NULL, /*7 set_at */
|
||||
NULL /*8 reason */
|
||||
};
|
||||
|
||||
strlcpy(hostip, Inet_ia2p(&cptr->ip), sizeof(hostip));
|
||||
|
||||
tkllayer[4] = hostip;
|
||||
tkllayer[5] = me.name;
|
||||
ircsprintf(mo, "%li", 86400 + TStime());
|
||||
ircsprintf(mo2, "%li", TStime());
|
||||
tkllayer[6] = mo;
|
||||
tkllayer[7] = mo2;
|
||||
tkllayer[8] = "Fizzer";
|
||||
m_tkl(&me, &me, 9, tkllayer);
|
||||
return;
|
||||
}
|
||||
|
||||
DLLFUNC int h_defizzer_connect(aClient *sptr)
|
||||
{
|
||||
char user[USERLEN + 1];
|
||||
char *infobackup;
|
||||
char *s1, *s2;
|
||||
|
||||
/*
|
||||
* Algorithm is basically like this, inspired by Zaphod:
|
||||
* Exchange first word with second in realname, prepend with
|
||||
* ~, then add in second word and first word upto limit of username.
|
||||
* sounds fun?
|
||||
*/
|
||||
infobackup = strdup(sptr->info);
|
||||
if (!(s1 = strtok(infobackup, " ")))
|
||||
{
|
||||
free(infobackup);
|
||||
return 0;
|
||||
}
|
||||
if (!(s2 = strtok(NULL, " ")))
|
||||
{
|
||||
free(infobackup);
|
||||
return 0;
|
||||
}
|
||||
snprintf(user, sizeof(user), "%s%s%s", (IDENT_CHECK ? "~" : ""), s2, s1);
|
||||
free(infobackup);
|
||||
if (!strcmp(user, sptr->user->username))
|
||||
{
|
||||
ircstp->is_ref++;
|
||||
ban_fizzer(sptr);
|
||||
return exit_client(sptr, sptr, &me, "Fizzer client");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
These are 3rd party programs modules, or unsupported modules.
|
||||
|
||||
Custom modules are compiled by copying them to src/modules
|
||||
and running from the root directory
|
||||
|
||||
$ make custommodule MODULEFILE=modulename
|
||||
|
||||
This will produce a .so you can load. Upon load, this will show a "3" in the
|
||||
/version flags, as it contains third party modules (we do not support if it
|
||||
crashes because of the tainted module)
|
||||
|
||||
======================
|
||||
Name: burst.c
|
||||
Description:
|
||||
Little program to test out the different aspects of the unreal protocol and
|
||||
produce net.burst dumps
|
||||
|
||||
=======================
|
||||
Name: m_rawto.c
|
||||
Is a 3rd party module
|
||||
Description:
|
||||
|
||||
Implements the RAWTO command, will allow U:lines to send raw data to
|
||||
anywhere it pleases.
|
||||
|
||||
:uline.server RAWTO towho :what to send
|
||||
|
||||
=========================
|
||||
|
||||
Name: channeldumper.c
|
||||
Is a 3rd party module
|
||||
Description:
|
||||
|
||||
Dumps a list of non secret channels to ircd.channels or something every 5 seconds,
|
||||
|
||||
C #channel topic
|
||||
M member1
|
||||
M member2
|
||||
C #channel2 topic
|
||||
M member3
|
||||
|
||||
You can't rely on topic being there
|
||||
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Unreal Internet Relay Chat Daemon, m_rawto.c
|
||||
* (C) 2002 Carsten V. Munk
|
||||
* RAWTO Module - 3rd party
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Use of this module will make it a 3rd party module, and will
|
||||
* add to your /version thing. We DO NOT SUPPORT THIS.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "channel.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
#include "proto.h"
|
||||
#ifdef STRIPBADWORDS
|
||||
#include "badwords.h"
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
|
||||
DLLFUNC int m_rawto(aClient *cptr, aClient *sptr, int parc, char *parv[]);
|
||||
|
||||
/* Place includes here */
|
||||
#define MSG_RAWTO "RAWTO" /* */
|
||||
#define TOK_RAWTO "3A" /* 112 */
|
||||
|
||||
|
||||
#ifndef DYNAMIC_LINKING
|
||||
ModuleHeader m_rawto_Header
|
||||
#else
|
||||
#define m_rawto_Header Mod_Header
|
||||
ModuleHeader Mod_Header
|
||||
#endif
|
||||
= {
|
||||
"rawto", /* Name of module */
|
||||
"$Id$", /* Version */
|
||||
"command /rawto", /* Short description of module */
|
||||
"3.2-b5",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
/* The purpose of these ifdefs, are that we can "static" link the ircd if we
|
||||
* want to
|
||||
*/
|
||||
|
||||
/* This is called on module init, before Server Ready */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Init(int module_load)
|
||||
#else
|
||||
int m_rawto_Init(int module_load)
|
||||
#endif
|
||||
{
|
||||
/*
|
||||
* We call our add_Command crap here
|
||||
*/
|
||||
add_Command(MSG_RAWTO, TOK_RAWTO, m_rawto, 2);
|
||||
tainted++;
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
/* Is first run when server is 100% ready */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Load(int module_load)
|
||||
#else
|
||||
int m_rawto_Load(int module_load)
|
||||
#endif
|
||||
{
|
||||
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/* Called when module is unloaded */
|
||||
#ifdef DYNAMIC_LINKING
|
||||
DLLFUNC int Mod_Unload(int module_unload)
|
||||
#else
|
||||
int m_rawto_Unload(int module_unload)
|
||||
#endif
|
||||
{
|
||||
if (del_Command(MSG_RAWTO, TOK_RAWTO, m_rawto) < 0)
|
||||
{
|
||||
sendto_realops("Failed to delete commands when unloading %s",
|
||||
m_rawto_Header.name);
|
||||
}
|
||||
tainted--;
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* m_rawto Send a raw string to anywhere
|
||||
* if you are U:line
|
||||
* parv[0] = sender prefix
|
||||
* parv[1] = whoto
|
||||
* parv[2] = string
|
||||
*/
|
||||
|
||||
DLLFUNC int m_rawto(aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
{
|
||||
aClient *acptr = NULL;
|
||||
if (!IsULine(sptr))
|
||||
{
|
||||
sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]);
|
||||
return -1;
|
||||
}
|
||||
if (parc < 3)
|
||||
{
|
||||
sendto_one(sptr, err_str(ERR_NEEDMOREPARAMS),
|
||||
me.name, parv[0], "RAWTO");
|
||||
return -1;
|
||||
}
|
||||
if ((acptr = find_client(parv[1], NULL)))
|
||||
{
|
||||
if (MyConnect(acptr))
|
||||
{
|
||||
sendto_one(acptr, "%s", parv[2]);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
sendto_one(acptr, ":%s %s %s :%s",
|
||||
parv[0], IsToken(acptr->from) ? TOK_RAWTO : MSG_RAWTO,
|
||||
parv[1], parv[2]);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
+5563
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user