mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-25 05:36:37 +02:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| af1c845d09 | |||
| 59e09d1672 | |||
| aee36057b6 | |||
| 8eb85bc81c | |||
| 3510bad641 | |||
| a26180b5d1 | |||
| 8f6b70b260 | |||
| 342eb1bf7e | |||
| 2f876f353f | |||
| 780655c886 | |||
| 6a81fc54aa | |||
| 5ff71d369d | |||
| 0234dfeae6 | |||
| fed77b386d | |||
| ec1fa23dad | |||
| 0f4443efd0 | |||
| f31b959ff5 | |||
| 97bd2d7a48 | |||
| 329639f9f1 |
+5
-5
@@ -7,14 +7,14 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for UnrealIRCd 4.2.4.1
|
||||
for Unreal3.2.3
|
||||
|
||||
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
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
|
||||
Unreal3.2.3 Release Notes
|
||||
==========================
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||
first 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/
|
||||
- When upgrading a network, we assume you are upgrading from the previous
|
||||
version (3.2.2). If you got a net running with servers that are several
|
||||
versions behind (eg: 3.2.1) then you might experience (desynch) problems.
|
||||
Also, if you try to use the new features, some might not work properly
|
||||
until all your servers are upgraded. It is therefore recommended to
|
||||
upgrade all servers in a 'short' time span (x day[s], not weeks).
|
||||
|
||||
==[ NEW ]==
|
||||
- Channel mode +I (invex, invite exceptions). Users on this list can join +i channels
|
||||
without needing an /invite.
|
||||
- Channel mode +j (jointhrottle). If you set +j X:Y you limit each user (individually)
|
||||
to X joins per Y seconds to the channel.
|
||||
- Nick Character System: this allows you to choose which additional characters to
|
||||
allow in nicknames by language (and codepage). Currently available are:
|
||||
catalan, dutch, french, german, swiss-german, icelandic, italian, spanish,
|
||||
swedish, hungarian, polish, romanian, slovak, czech, greek, turkish, russian,
|
||||
hebrew and chinese. There are also several 'groups' available, for more info see:
|
||||
http://www.vulnscan.org/UnrealIrcd/unreal32docs.html#feature_nickchars
|
||||
- *NIX: ./Config -advanced, allows you to choose more options
|
||||
- tld::botmotd and tld::opermotd
|
||||
- Using /INVITE with no parameters will a list of channels you are invited to
|
||||
but have not yet joined.
|
||||
- set::gline-address, works just like set::kline-address but then for glines.
|
||||
- Added a basic regex tutorial in unreal32docs.html
|
||||
- /SAJOIN now supports multiple channels (and '0') again.
|
||||
- Spamfilter topic support ('t' in spamfilter, 'topic' in conf).
|
||||
- Added a feature to +b/+e ~c: ~c:[prefix]<#channel>. This can be used if you for
|
||||
example trust all ops of #leet: mode #x +e ~c:@#leet.
|
||||
- Various translated documents in doc/: unreal32docs.gr.html (Greek), help.fr.conf
|
||||
and example.fr.conf (French), help.de.conf & example.de.conf (German), and
|
||||
example.hu.conf (Hungarian).
|
||||
|
||||
==[ CHANGED ]==
|
||||
- Updated auspice.conf
|
||||
- The usual doc updates, help.conf, spamfilter.conf, dccallow.conf, etc.
|
||||
- The config parser got (mostly) recoded. This makes it rehash much faster,
|
||||
additionally "duplicate item" checking is now available.
|
||||
- Added a 'B' flag to /who output for bots. Also normal users can now /who +m B.
|
||||
- Support in configfiles for \\ (= a \)
|
||||
- set::dns::bind::ip, hardly useful for anyone
|
||||
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is
|
||||
in use, then a part/join is not sent in order to prevent flooding.
|
||||
- OperOverride INVITE notices are now sent out globally to all +s +e users.
|
||||
- User mode 'g' is now operonly, it hardly did anything for non-opers.
|
||||
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands.
|
||||
- Modulized a lot of commands (~5000 lines of code).
|
||||
- Made channel modes +c/+S deal with RGB color codes.
|
||||
- If no log { } block is present, then a warning will be printed and we will log
|
||||
by default to ircd.log (errors only).
|
||||
- If an invalid character is found in a nick then the whole nick is rejected now.
|
||||
- Changed numeric&text of 'is a Secure Connection' to 'is using a Secure Connection',
|
||||
client coders are encouraged to add support for this new numeric 671. Until then,
|
||||
in-window-/whois's will probably be broken.
|
||||
- A locops with can_override/can_gkline/can_gzline is now automatically converted
|
||||
to a globop, just like we do with can_globalroute/can_gkline. These privileges
|
||||
are GLOBAL and therefore are not meant to be granted to locops.
|
||||
- A warning is now sent to an oper if (s)he tries to use /(G)ZLINE on a host.
|
||||
(G)ZLINES should be placed on *@ipmasks because they are processed before any
|
||||
ident and host lookups.
|
||||
- Made (fast) badwords work better with word boundaries, in practice this means
|
||||
blocking of words with accents/umlauts/es-zett/etc now works properly.
|
||||
- Made it so halfops can now -h themselves and chanadmins can -a themselves.
|
||||
- Made spamfilter 'u' also check nickchanges.
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- Serious crashbug [this is the same fix that was fixed by the hotfix/3.2.2b]
|
||||
- TRE mem corruption- & crash-bugs (eg: in backreferences).
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- Made kline/shun/zline/gzline without parameters report the correct stats(flag).
|
||||
- Made a few more errors send out to all opers, such as link::bind-ip problems.
|
||||
- A few missing operflags in /STATS O (and SVSO)
|
||||
- DCC Spamfilter was not always working correctly
|
||||
- OperOverriding to, for example, a +zi channel did not print the special join notice.
|
||||
- Servers behind ulines were not properly ulined, one effect that had was causing
|
||||
an odd view in /MAP if you had flat-map + hide ulines + a juped server in services.
|
||||
- Made SVSMODE -b/-e remove bans/excepts placed on IPs
|
||||
- The set::htm::incoming-rate config item was not working correctly
|
||||
- If a user was +R then remote server notices were accidently also filtered.
|
||||
- A locop setting MODE #CHAN +O caused a desynch
|
||||
- Resolver sometimes incorrectly aliased names, causing incorect TTLs etc.
|
||||
- Fixed SVSNOOP not removing ALL oper status properly.
|
||||
- 'shun' target was not working for spamfilter and ban version { }
|
||||
- Removing of shuns placed on IP's did not take effect immediately (had to reconnect).
|
||||
- Fixed a bug in mode skipping (eg: '+qk a b' if not +q) and error msgs.
|
||||
- Chanmode +f #t (per-user text limit) now no longer affects halfops.
|
||||
- Opers w/can_override can now +qa/-qa if they are not netadmins, also affected +L/+u.
|
||||
Be sure you upgrade all servers to 3.2.3 if using these new abilities, or else you
|
||||
will get desynch issues.
|
||||
- Fixed several /SAMODE bugs as well, regarding non-netadmins, being halfop'ed, etc.
|
||||
- /GZLINE [nick] was placing a *line on *@host instead of *@IP, fixed.
|
||||
- alias::format in combination with ::type 'command' caused a crash
|
||||
- zlib upgraded to 1.2.2, curl upgraded to 7.13.1, both fix various issues.
|
||||
- Win32 installer now also installs doc\technical\*.*
|
||||
- Desynch issues regarding +s/+p and +c/+S
|
||||
- /SAMODE causing a 'fishy timestamp' if a cmode with a digit parameter was used.
|
||||
|
||||
==[ REMOVED ]==
|
||||
- NAZIISH_CHBAN_HANDLING (did not work at all)
|
||||
- The 'oldcloak' cloaking module is now removed, since this old algorithm got broken
|
||||
8 months ago, nobody should be using it anymore.
|
||||
|
||||
==[ ADDITIONAL INFO ]==
|
||||
* See Changelog for more details
|
||||
@@ -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"
|
||||
@@ -0,0 +1,861 @@
|
||||
/*
|
||||
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2005 &
|
||||
* The UnrealIRCd Team
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
[Unreal 3.2.1]
|
||||
- Replaced tre.dll/tre.lib, previous versions caused a crash (eg: if you included
|
||||
spamfilter.conf).
|
||||
- Fixed a problem when compiling with GUEST enabled. Reported by dvzion (#0001758)
|
||||
- Fixed a documentation typo reported by Konc
|
||||
- Fixed a little problem in ./unreal to move ircd.pid.bak to ircd.pid of starting failed.
|
||||
Fixed by fez (#0001739)
|
||||
- Made it so chg* command usage is not logged from U:lines. Reported by diskman1 (#0001718)
|
||||
- Changed int_to_base64() warning so it has less false positives (#0001797).
|
||||
- Fixed a bug where if set::ssl::options was empty, a crash could occur. Reported by
|
||||
spider312 (#0001799)
|
||||
- Include openssl/md5.h and openssl/ripemd.h if compiled w/SSL, this seems how it
|
||||
should be done and also makes unreal w/SSL able to compile on OpenBSD (3.5).
|
||||
- Added module support for Windows!
|
||||
To module coders:
|
||||
-Building your module on Windows is almost exactly the same as on *nix
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=thefile
|
||||
|
||||
-Also, as I'm sure most module developers will begin distributing .dll files for their
|
||||
modules, it is important to note that just like the modules on *nix, the dlls will need
|
||||
to be recompiled each time a new version of Unreal is released. This is simply due to
|
||||
the potential for binary incompatibility which at this point can not be avoided.
|
||||
|
||||
-Most modules already do this, but it is now a requirement for Windows support. At the
|
||||
very minimum, the Mod_Test function must have the DLLFUNC specifier in order to work
|
||||
Unreal will automatically add DLLFUNC to the other functions, but it does not hurt if
|
||||
you use it for all of them.
|
||||
|
||||
NOTE: It is expected that there will probably be a few bugs to work out with this, so
|
||||
please consider testing it! And module coders, please report any problems you experience!
|
||||
- Modulized cloaking:
|
||||
- Currently there are 2 cloaking modules: 'cloak' and 'oldcloak'.
|
||||
- You MUST load at least 1 of them (like: loadmodule "src/modules/cloak.so";).
|
||||
- 'oldcloak' is just the <=3.2 cloaking algorithm.
|
||||
- 'cloak' is the new, recommended, and much more secure cloaking algorithm that uses
|
||||
md5 internally and requires 3 keys of 5-100 characters (10-20 is fine) consisting of
|
||||
mixed lowcase (a-z), upcase (A-Z) and digits (0-9) [eg: "AopAS6WQH2Os6hfosh4SFJHs"].
|
||||
- Note that 'oldcloak' is only ment for use during the upgrade process (it will give
|
||||
a warning if you use it), you should switch to the much more secure 'cloak' module
|
||||
as soon as all your servers are upgraded.
|
||||
- Module coders can code 3rd party cloak modules that use other algorithms or cloak
|
||||
in a different way (have a look at src/modules/cloak.c).
|
||||
- spamfilter: Added Bloodhound.Exploit.6 sig
|
||||
- Compile fixes for win32 modules with ssl/zip/curl
|
||||
- Changed 'Services operator' in /whois (back) to 'Services administrator', this was
|
||||
requested by many people and seems to be the best after all (#0001634).
|
||||
- Local opers can now also join +O (operonly) channels (#0001694).
|
||||
- Changed the way MSG/NOTICE <prefix>#chan works:
|
||||
- It now goes to <prefix> and higher, so '/notice +#chan hi!' goes to +vhoaq
|
||||
- You need at least voice in order to be able to msg/notice +#chan, %#chan or @#chan
|
||||
- You need at least ops in order to be able to msg/notice &#chan or ~#chan
|
||||
- Any multi-prefix targets will be converted automatically (eg: ~&@#chan to @#chan).
|
||||
- internal: use of the CHANOPPFX macro is now deprecated.
|
||||
All of this was done to make it a bit more 'safe' and userfriendly (#0001812).
|
||||
- Fixed a remote include bug that would cause unnecessary blocking
|
||||
- Fixed a /credits typo
|
||||
- Imported TRE 0.6.7 for win32
|
||||
- Imported TRE 0.6.7 for *nix and made use of tre_version to report the version of TRE
|
||||
in use at startup
|
||||
- Fixed a Win32 module bug
|
||||
- Added set::spamfilter::virus-help-channel-deny. This allows you to block any
|
||||
normal joins to the virus-help-channel. This way you could prevent users into
|
||||
accidental (or tricked) joining of the virus-help-channel and becomming infected.
|
||||
This feature is disabled by default. Requested by bleepy (#0001811).
|
||||
- German doc updates (week 20).
|
||||
- Added optional parameter to SVSJOIN to deal with channel keys. Reported by
|
||||
DukePyrolator (#0001822).
|
||||
- Added zlib+SSL version check on boot to make sure the runtime version is the same
|
||||
as the 'compiled for' (header) version. If they mismatch, UnrealIRCd could crash,
|
||||
so a big warning is posted if it happends.
|
||||
- Improved the above: made it work on windows and also added a check for curl.
|
||||
- spamfilter.conf: Added yet another sig for a site that causes Backdoor.Delf.lq
|
||||
infection (reported by nexus), also changed LOI trojan and Bloodhound.Exploit.6
|
||||
action to gline.
|
||||
- Fixed a win32 module bug that broke strcasecmp/stricmp
|
||||
- German doc updates (week 21)
|
||||
- Fixed a permanent modules bug: custom allow/except/ban/deny types were lost
|
||||
after /rehash. Reported by AngryWolf (#0001837).
|
||||
- Fixed a problem with NICK collisions not using NICKv2 (#0001773) reported by thilo
|
||||
- Added NICKIP (#0000605 & #0001376)
|
||||
- Compile warning cleanups
|
||||
- Added release notes (no, we won't release 3.2.1 anytime soon.. just updating ;p).
|
||||
- Added various extra messages to make it a bit more easier for people who are
|
||||
upgrading (win32 commands.dll, cloaking mod).
|
||||
- Made win32 ssl<->non-ssl modules binary compatible.
|
||||
- Added ssl/non-ssl check in Mod_Version on *NIX.
|
||||
- Added set::options::flat-map: This makes all servers look like they are linked
|
||||
directly to the server you are on (/map, /links), thus you cannot see which server
|
||||
is linked to which ("hopcount"). This can make it a bit harder for kiddies to find
|
||||
any 'weak spots' (which server to attack/[D]DoS). Obviously opers will always
|
||||
see the real map.
|
||||
- unreal32docs.html: added flat-map and set::restrict-usermodes "s"; security tips.
|
||||
- Fixed a compile error regarding AF_MAX (#0001839) reported by Rocko
|
||||
- Imported TRE 0.6.8 for *nix
|
||||
- Added NICKIP to doc/technical/protoctl.txt
|
||||
- Imported TRE 0.6.8 for windows
|
||||
- Redid the win32 version to use a dynamically linked libc. This solves memory issues
|
||||
arising from the fact that dlls do not share the same heap as the exe. As a side effect,
|
||||
however, there is now a dependency on msvcr70d.dll. This DLL does not come with any
|
||||
versions of Windows except 2003. It also comes with any .NET application and the .NET
|
||||
framework. Unreal will automatically download th DLL if it is needed. Reported by Bugz
|
||||
(#0001833)
|
||||
- Fixed some other win32 crashes due to modulizing: WHOWAS, STATS [some], SVSMOTD.
|
||||
All caused by missing "MODVAR"s. Reported by Troco (#0001841).
|
||||
- Fixed SSL problem caused by a fix of 2 days ago. Reported by Fury (#0001842).
|
||||
- And one more.
|
||||
- Made socket errors correctly reported under Win32. Thanks to Microsoft for deciding
|
||||
that having a way to get a socket error string was unnecessary.
|
||||
- Fixed a NICKIP bug regarding passing along IPs (#0001846) reported by Troco
|
||||
- And another one, should be fixed now.
|
||||
- Added snomask +S to the documentation (#0001835) reported by medice.
|
||||
- Made a bunch of TKL parameters case insensitive (#0001766) reported by medice.
|
||||
- Made Unreal create the tmp/ dir at startup, rather than configure (#0001824) suggested by
|
||||
LinDevel
|
||||
- Added /dns c to clear the DNS cache (#0001852) suggested by samson.
|
||||
- Seems I forgot to del_Command() SPAMFILTER and TEMPSHUN.
|
||||
- Made the win32 socket error reporting also handle regular system errors (#0001851)
|
||||
reported by Troco
|
||||
- Added a doc/translations.txt which describes the (current) translation process
|
||||
and requirements a bit.
|
||||
- Fixed a synch bug, reported by Troco (#0001857).
|
||||
- Split up the /who oper and user help messages
|
||||
- Added /who +i (search by IP) and /who +I (show IP), oper only.
|
||||
- Made it so /who +m doesn't default to /who if a user uses modes they aren't allowed to
|
||||
use (#0001858) reported by Bugz
|
||||
- Added a couple donators to /credits
|
||||
- Module coders: if CmdoverrideAdd() is called for an override that is already in place, it
|
||||
now sets MODERR_EXISTS as errorcode and returns NULL (previously it added duplicates).
|
||||
In the past module coders had many issues with PERM mods... you had to use weird tricks,
|
||||
but now you can (and should!) just override on INIT and on HOOKTYPE_REHASH_COMPLETE.
|
||||
- Moved register_user declaration to h.h, updated call in m_pingpong.c (due new 'ip' field).
|
||||
- Usermode +v ('receive dcc send rejection notices') is oper-only now for privacy reasons.
|
||||
- Added dcc allow { }, which allows one to make exceptions over deny dcc { }.
|
||||
- Added deny dcc::soft and allow dcc::soft item, if set to 'yes' it allows someone
|
||||
to explicitly override it per-person via /DCCALLOW (see next).
|
||||
- Added DCCALLOW system, taken directly from bahamut.
|
||||
With this system you can block certain (or all) DCC SENDs and then allow the user to
|
||||
'override' this limit for every user he/she trusts via '/DCCALLOW +User'.
|
||||
This is an attempt to stop (or at least limit) the spreading of viruses/etc.
|
||||
See '/DCCALLOW HELP' for more info.
|
||||
- Added example dccallow.conf which filters everything except some known
|
||||
'safe types' (jpg, jpeg, png, gif, etc). Note that the purpose of this file
|
||||
is NOT to get a complete list, rather to limit it to a few 'known safe' entries.
|
||||
- Added set::maxdccallow: max number of entries of the DCCALLOW list (default: 10).
|
||||
- Various (non-critical) fixes for dccallow reported by Rocko (incorrect nick in deny msg,
|
||||
added set::maxdccallow in docs, added bmp/vob/log/ to dccallow.conf).
|
||||
- Made extbans desynchs a bit more friendly: if a bantype is unknown for the server
|
||||
it will just accept it if it's from a remote server, and also ops/etc will be allowed
|
||||
to REMOVE any unknown extbans (but not add new unknown ones).
|
||||
- Added extended ban type ~n (nickchange ban), if a user matches this (s)he can not
|
||||
change nicks (eg: +b ~n:*!*@*.aol.com) unless (s)he has voice or higher.
|
||||
This can be useful as an overall measure for some +m chans (+b ~n:!*@*) or against
|
||||
specific 'good' people that are just nickflooding due to a wrongly configured script.
|
||||
- Added set::restrict-extendedbans by which you can disallow normal users to use
|
||||
any extendedbans ("*") or disallow only certain ones (eg: "qc").
|
||||
- Made the negative TS message a bit more annoying if time is off more than 10 seconds.
|
||||
- Minor doc tweakers, reported by AngryWolf (#0001871).
|
||||
- Win32: Readded /J compiler flag (was accidentally lost in December). This could cause
|
||||
some weird issues. Reported by Troco (#0001877).
|
||||
- Fixed compile problem with debugmode + ipv6
|
||||
- Added CIDR support (#0001296) suggested by many people.
|
||||
- Imported the latest CIDR functions from Hybrid 7.0.1 (and fixed numerous bugs)
|
||||
- Implemented CIDR support for ban ip, ban user, allow, except ban/tkl/throttle, and TKL
|
||||
- Note: This needs testing
|
||||
- To be able to use /ADDLINE you now need the (new) 'can_addline' operflag (oper::flags),
|
||||
reason for this is that it's such a powerful/dangerous command.
|
||||
- Fixed find_qline crashes regarding except tkl 'type qline', reported by Gilou (#0001882).
|
||||
- Fixed some CIDR bugs causing things not to match.
|
||||
- Fixed a CIDR bug when compiled without IPv6 support
|
||||
- Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances
|
||||
(#0001874) reported by Jiuka.
|
||||
- internal: Added GetIP() which we will now use instead of all the Inet_ia2p() stuff
|
||||
because it's slightly faster (already replaced all of them in src/s_kline.c).
|
||||
GetIP(acptr) will return the ip for local users and remote users that support NICKIP,
|
||||
it returns NULL for remote users that are on non-NICKIP servers (or have non-NICKIP
|
||||
servers along their path).
|
||||
- internal: tkl_add_line now returns aTKline *
|
||||
- Added some more hooks:
|
||||
- HOOKTYPE_TKL_ADD [aClient *cptr, aClient *sptr, aTKline *tk]
|
||||
- HOOKTYPE_TKL_DEL [aClient *cptr, aClient *sptr, aTKline *tk]
|
||||
NOTE: 'NULL, NULL, tk' is used for *lines that are removed due to expiring
|
||||
- HOOKTYPE_LOCAL_KILL [aClient *sptr, aClient *target, char *comment]
|
||||
- Added support for the ELIST 005 token with MNUCT options
|
||||
- Made Mod_Version required (this should be no problem since it's done automatically).
|
||||
- Added HOOKTYPE_LOG [int type, char *timebuf, char *logbuf]
|
||||
- Updated the release notes.
|
||||
- Fixed a CIDR bug reported by poisoner (#0001892)
|
||||
- Documented numerics in use by other IRCds
|
||||
- Converted several notices to numerics (#0001599) suggested by olene
|
||||
- Added a donator to /credits
|
||||
- Fixed '/stats P' negative usercount bug (#0001691).
|
||||
- Made IPv6 bans work the way they should again, reported by al5001 (#0001876).
|
||||
- Added new logtype 'spamfilter' to log spamfilter matches
|
||||
- Updated example.conf: added all new flags we added in the example block, removed
|
||||
old confusing comment on SEGV logging, config.h: ripped out lPATH since that define
|
||||
isn't anywhere used and is only confusing.
|
||||
- Made the new numerics use nicknames (#0001896) suggested by Dukat.
|
||||
- Fixed a problem where the tmp directory was created in the current directory rather than
|
||||
the correct path (#0001898) reported by AngryWolf
|
||||
- Updated HOOKTYPE_TKL_ADD/HOOKTYPE_TKL_DEL to cptr, sptr, tk, parc, parv, else it was
|
||||
impossible to tell *who* removed a *line. Again, parc/parv are 0/NULL for expires.
|
||||
- Fixed "quickly-rehashing + autoconnect linkblocks = crash"-bug. This involved fixing
|
||||
multiple reference count bugs, one related to sptr->serv->conf, and another one related
|
||||
to sptr->serv->class. Both caused problems when someone did a /rehash when a server
|
||||
was in the process of connecting (so it might also happen when connfreq was hit and you
|
||||
did a /rehash). Original bug was reported by sh0 (#0001872).
|
||||
- spamfilter.conf: Added sig for a mIRC decode worm, submitted by nexus.
|
||||
- Some release notes updates.
|
||||
- Changed version to 3.2.1-pre1 and updated protocol # to 2304.
|
||||
- Updated wircd.def
|
||||
** internal 3.2.1-pre1 release **
|
||||
- Various (>15) small fixes for unreal32docs.html, reported by AngryWolf (#0001906).
|
||||
- Added spanish docs, translated by Trocotronic.
|
||||
- Fixed serious crashbug due to quick-rehashing bugfix! Basically if you did a /REHASH and
|
||||
the clientcount for a class reached 0 (due to quits) it would crash.
|
||||
** internal 3.2.1-pre2 release **
|
||||
- Added hungarian docs, translated by AngryWolf.
|
||||
- Fixed a problem with the win32 installer as a result of MSVCR70D.DLL, reported by
|
||||
aquanight
|
||||
- Updated /Credits and added a donator.
|
||||
- Made release notes a bit more scary + some minor english-only doc updates
|
||||
- Changed version to 3.2.1
|
||||
- Moved the 3.2 changes to Changes.old
|
||||
** 3.2.1 release **
|
||||
- Fixed a win32 module problem where file not found errors would display random characters,
|
||||
reported by STING
|
||||
- Fixed a bug where the allow-userhost-change force-rejoin setting was not applied to users
|
||||
who /oper and receive an oper-host (#0001901) reported by hypnetric.
|
||||
- Removed the /hs alias pointing to HelpServ for Anope since this conflicts with HostServ
|
||||
(#0001709) reported by DukePyrolator
|
||||
- Fixed ban bug: halfops were also prevented from doing nickchanges if banned, plus..
|
||||
+b ~n:*!*@* also made nickchanges impossible for voiced(&halfop'ed) people (so like half
|
||||
of the purpose of it was defeated @$#&@#). Reported by Rocko.
|
||||
- Fixed a bug where an ident in a vhost {} was never sent out to other servers and added
|
||||
user@host support for set::hosts (#0001834) reported/suggested by bleepy.
|
||||
- Fixed defizzer module. Reported by Rocko and netrixtardis.
|
||||
- Removed the * and ^ flags from /whois if PREFIX_AQ is not enabled (requested by many people)
|
||||
- Updated the /who docs to use correct English
|
||||
- Added documentation for the /who and /whois flags (#0001881) reported by AngryWolf and Bugz.
|
||||
- Added src/win32/win32.c for generic win32 helper functions
|
||||
- Renamed src/win32/win32gui.c to src/win32/gui.c
|
||||
- Reorganized much of the Windows code
|
||||
- Fixed a whois bug when PREFIX_AQ is undefined, reported by Shaun
|
||||
- Moved the RTF win32 code to a seperate file
|
||||
- More win32 code cleanups
|
||||
- Added src/win32/editor.c (woops), (#0001932) reported by Troco
|
||||
- Fixed a problem with /who incorrectly showing the ? flag to opers even when the user should
|
||||
be visible (#0001888) reported by Bugz and aquanight
|
||||
- Added SAPART and SVSPART reasons. Note, to fully work it requires all servers to upgrade,
|
||||
and due to a bug in older versions, it could cause problems if linked to 3.2 or earlier
|
||||
(#0001859) suggested by Bugz
|
||||
- Fixed a minor issue where Unreal registered itself as an NT service incorrectly
|
||||
(#0001950) reported by rocafella
|
||||
- Possibly fixed a bug that could cause Unreal to eat 100% CPU at startup on Windows.
|
||||
(#0001635) reported by eggburt. Thanks to STING for helping to debug this.
|
||||
- Implemented a new modules Makefile written by fez (#0001930).
|
||||
- Added oper::modes to specify modes to be set for a particular oper (overrides
|
||||
set::modes-on-oper), suggested by parker182 (#0001899).
|
||||
- doc/example.conf now simply refers to unreal32docs.html for oper flags (#0001973)
|
||||
reported by vonitsanet and AngryWolf.
|
||||
- Fixed crash-on-first-connect if SSL was enabled. This seemed to happen on Mac OS X,
|
||||
Sun Solaris, Opteron@Linux and perhaps others (#1982, #1984, #2110), reported by bit,
|
||||
lion and liverbugg.
|
||||
- Fixed a bug if me::info was set to "".
|
||||
- Added a missing error message for ModuleGetErrorStr. Additionally added error checking to
|
||||
ensure NULL is returned when an invalid error code is specified (#0001986) reported by
|
||||
AngryWolf.
|
||||
- Applied patch from slePP for bug #0001252: if IPv6 was enabled then in some cases names
|
||||
were not properly resolved. Original bug reported by kormat.
|
||||
- Fixed bugs regarding HOOKTYPE_SERVER_QUIT: was sometimes called twice and could cause
|
||||
crashes due read-after-free. Reported by SET (#0001988).
|
||||
- Fixed possible crash if /rehash'ing and a servername was just resolving (due to
|
||||
/connect or autoconnect) and was not present in the cache. Reported and traced by sh0
|
||||
(#0001976).
|
||||
- Fixed compile bug at *NIX caused by ModuleGetErrorStr fix.
|
||||
- Improved doc/compiling_win32.txt a lot: now VC7 only, and has instructions on:
|
||||
compiling modules and their (binary) compatability, zip links (zlib), ssl (OpenSSL)...
|
||||
Remote includes (curl and c-ares) instructions still need to be added.
|
||||
- Made 'Install as a service' unchecked by default, this should help beginners a lot.
|
||||
- Updated doc/compiling_win32.txt again with curl build instructions.
|
||||
Also linked to a page with an unreal dev package which contains zlib+ssl+curl
|
||||
precompiled. This basically means many people no longer need to compile zlib/ssl/curl
|
||||
anymore themselves (which is a pain to do and takes a lot of time).
|
||||
- Windows: the 'notice' parameter in the usermsg callback was always 0 due some windows/vc
|
||||
weirdness, this also affected spamfilter (so any spamfilters added only at notice
|
||||
and not at msg on windows would not work). Now using the real 'notice' parameter.
|
||||
- unbroke spamfilter not working for msgs/notices (oops..).
|
||||
- Made zip/non-zip modules on win32 binary compatible. Since it was nowhere documented
|
||||
that you should pass the ZIP_LINKS etc options to 'nmake -f makefile.win32 custommodule'
|
||||
many people didn't do this which caused odd problems when reading certain clientstructs.
|
||||
Module coders: in the meantime, for 3.2.1 mods, use something like:
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
|
||||
ZLIB_LIB_DIR="c:\dev\zlib\dll32" custommodule MODULEFILE=m_mymodule
|
||||
For 3.2.2+ these additional parameters will no longer be needed (but wouldn't harm either).
|
||||
- Some doc/example.conf clarifications, mainly for modules @ win32.
|
||||
- Made /whois show the user's modes to opers regardless of +e
|
||||
- Added snomask to the /whois umode output
|
||||
- Added a patch by rocafella to fix a crash when installing Unreal on Win2003 (#0001949).
|
||||
- Moved the Command API functions to a separate file.
|
||||
- Redesigned the 005 token:
|
||||
- Now renamed to RPL_ISUPPORT.
|
||||
- Replaced KNOCK and MAP tokens with new CMDS token (see doc/technical/005.txt)
|
||||
- Implemented most tokens from the isupport draft (STATUSMSG, EXCEPTS, CHANLIMIT,
|
||||
CHANNELLEN, MAXLIST).
|
||||
- Removed MAXBANS.
|
||||
- Made the isupport system dynamic and provide an API for modules to add tokens, may need
|
||||
testing.
|
||||
- Added an M_ANNOUNCE flag for CommandAdd to add the command to the CMDS token, may need
|
||||
testing.
|
||||
- Fixed some compile warnings.
|
||||
- Fixed a bug where bans were not matched against IPs in all circumstances (#0002045)
|
||||
reported by heper.
|
||||
- Fixed a bug with IP based except tkl {} lines did not validate the ident portion of the mask
|
||||
(#0002049) reported by Rocko.
|
||||
- Fixed a problem where a local TKL could be sent to remote servers when it is being changed
|
||||
(#0002048) reported by AngryWolf.
|
||||
- Added documentation for link::ciphers to unreal32docs.html (#0002019) reported by Bugz.
|
||||
- Updated documentation to reflect that cmode +M allows voiced users to talk, not just
|
||||
registered users (#0002020) reported by crazy.
|
||||
- Made it so WATCH will not respond with an erroneous reply if the parameter was simply + or -
|
||||
(#0002017) reported by GouraudShading.
|
||||
- SVSO now removes +v (#0002023) reported by w00t and aquanight.
|
||||
- Exported the isupport functions for use in Windows modules.
|
||||
- Added a new snomask, +o to show oper-up notices (oper only), (#0001965) suggested by
|
||||
vonitsanet.
|
||||
- Added a /userip command that works just like ircu's.
|
||||
- Fixed a typo in the *nix Makefile reported by Troco (#0002059)
|
||||
- Added french docs, translated by Kolibot & Babass.
|
||||
- Changed some stuff to use the release version of MS libraries.
|
||||
- Updated installer for msvcr70.dll
|
||||
- Fixed prefix bug caused by previous 'fix'/behavior change. Reported by aquanight (#0002067).
|
||||
- Updated doc/technical/token.txt and resolved 2 token conflicts. SVSWATCH is now Sw and
|
||||
SVSJOIN is now BX (#0002073) reported by trystanscott.
|
||||
- Fixed a bug regarding chanmode +mu where the <IRC> messages were not properly relayed
|
||||
to all servers. Reported by Aenox (#0002079).
|
||||
- Added salted passwords. Salts are useful because it "protects" against stored-plaintext
|
||||
attacks (eg: rainbow) and prevents cracking of several passwords at once.
|
||||
This change means /MKPASSWD will now just generate a different string than before.
|
||||
Do note however, that the old syntax/encrypted passwords will still work and _will continue
|
||||
to work_ in the future, for at least the whole 3.2* series.
|
||||
If you are concerned with security and have some time, then converting your passwords
|
||||
is probably a good idea... Just in case your configuration file gets stolen one day ;).
|
||||
- MD5 password encryption is now always available on *NIX, even if SSL is disabled.
|
||||
- Temporary fix for ircsprintf %lu 1..6 issue.
|
||||
- Fixed a problem with +u for some clients that have a strict interpretation of the RFC.
|
||||
- Added TRE 0.7.0, fixes #0001952 reported by Praetorian
|
||||
- Fixed an (unimportant) cloak typo / made it a few nanosec faster. Reported by Martin Brulisauer.
|
||||
- Fixed resolver not working in FreeBSD jail, reported & patch provided by urkel (#0002097).
|
||||
- Added a %n specifier to command aliases that is replaced by the user's nickname,
|
||||
requested by many people.
|
||||
- Added the ability for an alias {} to send to a channel (#0001686) requested by JasonTik
|
||||
- As a result, alias[::format]::nick is now called alias[::format]::target to avoid
|
||||
confusion. ::nick is maintained for backwards compatibility.
|
||||
- Fixed a problem where IsupportAdd did not return a value.
|
||||
- Module coders: Added HOOKTYPE_REMOTE_JOIN, HOOKTYPE_REMOTE_PART, HOOKTYPE_REMOTE_KICK (all
|
||||
work just the same as the HOOKTYPE_LOCAL_* variants).
|
||||
- Module coders: HOOKTYPE_REMOTE_CONNECT is now also called during net-merge. You can use
|
||||
IsSynched(sptr->srvptr) to find out if it's called due to a net merge (0) or a connect (1).
|
||||
- Added spamfiler 'user' (u) target. This regex is checked against nick!user@host:realname
|
||||
when a user connects. This makes it easy to ban drones with simple patterns.
|
||||
For example: '/spamfilter add u gzline 86400 Drone[0-9]+!.+@.+:Drone[0-9]'
|
||||
would kill any drones that have both a nick and realname with 'Drone' followed by digits.
|
||||
- If a nick is qlined, the user is now lagged up to limit qline floods a bit (#0001335).
|
||||
- Made docs a bit more clear on spamfilter targettypes.
|
||||
- Fix for too broad regex in badword::word causing the IRCd to hang, reported by Flop
|
||||
(#0002101).
|
||||
- IPv6: Fixed hostnames in link::hostname not working, reported by Jasmin (#0001990).
|
||||
- Fixed OOB read/write on user quit (did no harm on Linux&FreeBSD).
|
||||
- Fixed some tiny memory leaks (~100 bytes) on rehash.
|
||||
- Updated chinese&japanese GBK nick code, fix supplied by Xuefer (#0002051).
|
||||
- Added release notes (unfinished).
|
||||
- Added file: include/macros.h and a new macro, ARRAY_SIZEOF.
|
||||
- Added the ability to specify multiple types in a tkl except, suggested by Bugz (#0002085).
|
||||
- Added spamfilter 'away' ('a') target (#0002057).
|
||||
- Fixed a qline duplicate msg bug I think
|
||||
- Windows version can now hold ~4096 connections instead of ~1024
|
||||
- help.conf: clarified MKPASSWD documentation, reported by hypnetric (#0001926).
|
||||
- Some modeskip handling for future versions
|
||||
- Fixed serious heap corruption bug if remote users were using qlined nicks, thanks to
|
||||
Gilou and Trankill for making me able to trace this issue down (#0002032).
|
||||
- Fixed qline notices again: now gives msg #1 for local qlined-nick attempts, and
|
||||
another msg in case of a remote client (eg: oper) using a qlined nick.
|
||||
- Added some future SJOIN skip stuff.
|
||||
- Updated version to 3.2.2-pre1 already.
|
||||
** internal 3.2.2-pre1 release **
|
||||
- Fixed some doc & release notes typos. Reported by Rocko, HiT.
|
||||
- French doc updates, hopefully synched now.
|
||||
- (revert of badsyntax fix)
|
||||
- Forgot to mention away spamfilter target in helpop, reported by Rocko.
|
||||
- Changed version to 3.2.2
|
||||
** 3.2.2 release **
|
||||
- Fixed a typo in the makefile for USERIP
|
||||
- Made the WATCH command work for WebTV users (#0002121) suggested by White_Magic.
|
||||
- Some text updates... docs: now 3.2.2-CVS, also got rid of double version to avoid
|
||||
confusion. credits: fixed typo.
|
||||
- Added updated auspice.conf from Rocko since previous one was outdated (#0002147).
|
||||
- Recoded the config parsing code
|
||||
- The new system is much faster, for the programmers out there, the
|
||||
old system averaged O(MN) where N was the number of sub-directives for a block, and
|
||||
M was the number of sub-directives actually contained in the block in the config file.
|
||||
The new system averages O(N), so the number of sub-directives no longer has a significant
|
||||
impact on performance.
|
||||
- Added duplicate config entry detection (#0002126) suggested by brain2
|
||||
- May have a few bugs (easily fixed)
|
||||
- Corrected numerous -Wall warnings
|
||||
- Fixed a bug with /rehash and classes due to the config parser rewrite
|
||||
- Modified the module symbol dependency code to do more accurate searching for the module
|
||||
that contains the necessary symbol (#0002123) suggested by Xuefer.
|
||||
- Unreal will now prepend the pathname to the module and append the appropriate extension
|
||||
(.so or .dll) to the end)
|
||||
- The new module system version is "3.2.3" to allow for backwards compatibility
|
||||
- Documented the default behavior of snomasks when /mode nick +s is used (#0002141) suggested
|
||||
by Bugz.
|
||||
- Added "const" to the functions in match.c, (#0002116) suggested by Xuefer.
|
||||
- Made ./Config better handle command line arguments
|
||||
- Removed NAZIISH_CHBAN_HANDLING as it didn't do anything
|
||||
- Added -advanced flag to ./Config to configure advanced options (#0002145) suggested by
|
||||
Bugz. As a result, some config.h options are now in ./Config -advanced.
|
||||
- Small fix for above
|
||||
- Added the ability to specify a botmotd and opermotd in a tld {} (#0000176) suggested by
|
||||
swissSolaris.
|
||||
- Fixed crashbug on /rehash due to config rewrite, also made DEBUGMODE working again.
|
||||
- Removed an excess space from the SAMODE notice when a mode without a parameter was set
|
||||
(#0002134) reported by Bugz.
|
||||
- Fixed small memory leak on /rehash (post-3.2.2).
|
||||
- Fixed botmotd crash due to last change (post-3.2.2).
|
||||
- Updated the Donation file
|
||||
- Added a 'B' flag to /who output for bots, and allowed normal users to /who +m B
|
||||
(#0002096) suggested by White_Magic
|
||||
- Added support for using \\ in the config file to indicate a \ (#0002178) reported by
|
||||
TimeFX
|
||||
- Added documentation for set::options::fail-oper-warn (#0002166) reported by Snake
|
||||
- Removed an extra ) in the Throttle disconnect message (#0002165) reported by Snake
|
||||
- Fixed a bug where the "looking up your hostname" message could still be displayed even
|
||||
if hostname resolving was disabled (#0002161) reported by Xuefer
|
||||
- Made typing /kline, /shun, /zline, and /gzline correctly report the correct /stats flag,
|
||||
and these commands now produce the same output as the respective /stats flag they emulate
|
||||
(#0002149) reported by Snake
|
||||
- Renamed some calls from report_error() to report_baderror() since otherwise the errors are
|
||||
hardly ever seen (unless you have +s +j set). For example a bad link::bind-ip only caused
|
||||
"Couldn't connect to xxxxxx" without any meaningful error message. Additionally, errors
|
||||
sent to report_baderror() are now logged.
|
||||
- Win32 installer: Apparently 'install as a service' was still not the default, reported
|
||||
by fez (#0002191, #0002189).
|
||||
- Fixed the crule parser to treat - and : as valid 'word' characters rather than separators
|
||||
(#0002188) reported by diskman1.
|
||||
- Fixed bug in remote version reply, reported by DukePyrolator (#0002180).
|
||||
- Added set::dns::bind-ip (rarely ever needed, but might be useful for paranoid people).
|
||||
- Some unreal32docs->security section improvements.
|
||||
- Fixed a minor bug in the new config system when displaying link {} and set::hosts errors
|
||||
(#0002194) reported by AngryWolf.
|
||||
- Renamed RPL_INVITELIST/RPL_ENDOFINVITELIST to RPL_INVEXLIST/RPL_ENDOFINVEXLIST
|
||||
- Using /invite with no parameters now lists the channels you are invited to but have not
|
||||
yet joined (#0002190) suggested by sac.
|
||||
- Added some missing operflags to /stats O and SVSO (#0002193) reported by Bugz.
|
||||
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is used, a
|
||||
part/join is not sent in order to prevent flooding (#0001933) suggested by Z3l3zT.
|
||||
- Rewrote some of the previous change to deal with some strange issues found by aquanight
|
||||
- Introduced two new macros DYN_LOCAL and DYN_FREE to allow creation/deletion of dynamically
|
||||
sized arrays in the most efficient manner (C99 variable length, alloca, or malloc)
|
||||
- Changed the +z cannot join message to be a bit more descriptive (#0002148) suggested by cust.
|
||||
- Added a config.h options, IPV6_COMPRESSED to make Unreal use compressed IPv6 addresses where
|
||||
possible (#0002107) suggested by Neo-Vortex.
|
||||
- Fixed alloca warning @ Linux (post-3.2.2)
|
||||
- Numeric audit: 15 small changes (int/long mismatches etc). This might have fixed some
|
||||
bugs on architectures where 'long' and 'int' have different sizes (eg: opteron).
|
||||
- Added a set::gline-address which works like set::kline-address (#0001298) suggested by
|
||||
Bugz.
|
||||
- Added missing documentation for spamfilter away target (#0002205) reported by Dukat.
|
||||
- Fixed dcc spamfilter problem reported by TimeFX and Deadalus (#2177, #2204).
|
||||
- Fixed Oper Override not giving a 'special join notice' if +z is set along with another mode
|
||||
(eg: +i/+k), reported by tabrisnet (#0001487).
|
||||
- help.conf: Fixed a typo, updated *CMDS indexes a bit, reported crazy (#0002208),
|
||||
added long flags to OFLAGS.
|
||||
- OperOverride INVITE notices are now also global (if you have the eyes snomask set) (#2212).
|
||||
- Module coders: New function: sendto_snomask_global().
|
||||
- Speedup sendto_snomask/sendto_connectnotice/sendto_fconnectnotice code.
|
||||
- spamfilter.conf: fixed mIRC exploit sigs
|
||||
- Fixed all spamfilters in configfile not working due to configrewrite (post-3.2.2).
|
||||
- Module coders: sendto_snomask* now only sends to opers, sendto_snomask_normal* can be used
|
||||
to send to normal users w/the snomask set.
|
||||
- Fixed dcc filtering a bit more.
|
||||
- Made usermode 'g' operonly since it didn't do much, reported by DukePyrolator (#0002024).
|
||||
- Fixed tkl except { } not working (post-3.2.2).
|
||||
- Fixed bug where servers behind ulines were not ulined, causing for example juped servers to
|
||||
show up if flat-map was enabled, reported by GSF19 (#0002230).
|
||||
- Some doc/ updates: removed: Unreal31_to_32.html & example.settings, updated: Authors &
|
||||
translations.txt.
|
||||
- Added a basic regex tutorial to unreal32docs.html (#0000920)
|
||||
- Updated wircd.def
|
||||
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands (#0002240)
|
||||
reported by aquanight.
|
||||
- Made the (?) kill message not show IP addresses (#0002227) reported by neothematrix.
|
||||
- Added some error checking to /sapart (#0002253) suggested by Troco.
|
||||
- Imported TRE 0.7.2 for Windows
|
||||
- Imported TRE 0.7.2 for *nix
|
||||
- Got rid of wma/wmv in dccallow.conf, better to require an explicit select here due to
|
||||
recent DRM exploits (spyware etc).
|
||||
- Fixed /restart reasons, reported by SouL-FoRTuNe.
|
||||
- Partial (incomplete!) fix for alloca warnings during compile (especially w/SSL).
|
||||
- Fixed serious crashbug that can be triggered by users, released a hotfix and a seperate
|
||||
version called 3.2.2b (which is just 3.2.2+patch+version change to '3.2.2b',
|
||||
nothing else).
|
||||
- Fixed 'make install' error due to example.settings remove.
|
||||
- Fixed a minor typo in the "now an oper" announcement (#0002284) reported by Rocko.
|
||||
- Made SVSMODE -b and -e remove bans/excepts placed on IPs (#0002270) reported by Snake.
|
||||
- Fixed a couple of problems introduced with the ./Config -advanced changed (#0002239).
|
||||
- Made the win32 installer include the dccallow.conf (#0002269) reported by Ron2K.
|
||||
- Made the win32 installer work with the latest version of Inno Setup (5.0.6).
|
||||
- Made /sajoin support multiple channels and using 0 (#0002231) suggested by acemi.
|
||||
- Fixed a problem where doing ./unreal restart multiple times would not actually restart
|
||||
the ircd (#0002120) reported by SineSwiper.
|
||||
- Made it so +f notices are sent to %#chan, not @%#chan (#0002248) reported by aquanight.
|
||||
- Hopefully fixed the last of the alloca warnings (#0002202) reported by Stoebi.
|
||||
- Fixed a problem with set::htm::incoming-rate being interpreted incorrectly (#0002266)
|
||||
reported by tabrisnet.
|
||||
- Fixed a resolver cache bug regarding CNAME's. Thanks to insiderZ.DE for tracing down
|
||||
this issue.
|
||||
- Fixed a bug related to the sajoin recode regarding notices displayed (#0002293) reported
|
||||
by Troco.
|
||||
- Reworded a cloak-key error message to make it clearer (#0002297) reported by Bugz.
|
||||
- Fixed a bug where /whois notices were not sent to users who are +R if the sender is -r
|
||||
and on a remote server (#0002288) reported by Freadon.
|
||||
- Made /stats E include tkl except stats as well (#0001524) suggested by Cnils.
|
||||
- Added an options member to the ExtbanInfo structure. This currently supports one flag,
|
||||
EXTBOPT_CHSVSMODE. When set, this extban will be removed when an SVSMODE -b [nick] is
|
||||
executed (#0002222) suggested by Snake.
|
||||
- Fixed a bug where specifying a reason to SVSPART would cause it to fail (#0002210) reported
|
||||
by tabrisnet.
|
||||
- Moved channel mode +G to extcmode to make room for invex.
|
||||
- Added debug code to trace proto-check bugs in DEBUGMODE [IsToken() etc]
|
||||
- [Module coders] Added new function: do_cmd(cptr, sptr, cmd, parc, parv) which is an
|
||||
uniform method to call any other commands. For more info, see description in src/packet.c.
|
||||
This will be used for any further modulization of commands that need to call other
|
||||
commands, like NICK (will be done soon).
|
||||
- Added invite exceptions (+I). This prevents users from needing a /invite in for a +i
|
||||
channel (#0002044) suggested by medice.
|
||||
- Updated help.conf's +f documentation for the new syntax
|
||||
- Fixed some problems with the /stats help and documentation (#0002299) reported by Rocko.
|
||||
- Corrected the help.conf documentation for /invite (#0002306) reported by White_Magic.
|
||||
- Fixed a documentation inconsistency with me::numeric (#0002290) reported by Bugz.
|
||||
- Fixed a problem when compiling Unreal with GUEST support (#0001758) dvzion.
|
||||
- Fixed a win32 GUI problem where the tray menu's config submenu was not updated when new
|
||||
files were loaded or files were unloaded (#0002084) reported by Troco.
|
||||
- Made m_template.c use CommandAdd() and CMD_FUNC()
|
||||
- Modulized a lot of commands and related subfunctions: NICK (750 lines), USER (200),
|
||||
MODE (2300), WATCH (250), JOIN (600), PART (250), MOTD (100), OPERMOTD (100),
|
||||
BOTMOTD (100), LUSERS (100). More will follow soon (probably including more subfunctions
|
||||
related to existing commands).
|
||||
- Various (important) fixes to above, also made win32 compile work again.
|
||||
- And some more.
|
||||
- Made unreal_copyfile try hardlinking first, if that fails.. it will try to copy
|
||||
(perhaps this should be a different function?). Anyway, this means less diskspace
|
||||
is needed (~1.5mb or more), and it also makes it a bit easier for RBAC (#2300).
|
||||
- Made a new function DoMD5() which is ssl/non-ssl independent. Also made the cloaking
|
||||
module and the auth functions use it. Hopefully I didn't break anything ;). Suggested
|
||||
by Bugz (#2298).
|
||||
- Fixed mode #chan +O set by locop causing a desynch, reported by Unim4trix0 (#0001946).
|
||||
- Added spamfilter topic support ('t' in /spamfilter, or 'topic' in conf), suggested
|
||||
by Z3l3zT (#0001929).
|
||||
- Updated makefile to fix compile problem, reported by vonitsanet (#0002317) [?].
|
||||
Also made loading m_*.so work again.
|
||||
- Added unreal_copyfileex() which works just like unreal_copyfile() but has an additional
|
||||
param to try hardlinks first.
|
||||
- Win32 crash fixes due to modulizing
|
||||
- Made channel mode +c block RGB color codes.
|
||||
- Fixed a bug with channel alias{}'s where using the format syntax caused a crash (#0002323)
|
||||
reported by Snake.
|
||||
- Made channel mode +S strip RGB color codes.
|
||||
- Added channelmode +j (jointhrottle), syntax: /mode #chan +j X:Y, and then it will
|
||||
throttle the number of joins per-user to X in Y seconds. Idea from Angrywolf (who
|
||||
wrote a module that did this before). This needs testing :).
|
||||
It's enabled by default but can be #undef'ed in include/config.h (line 449).
|
||||
- Added a feature to +b ~c, ~c:[prefix]<#channel>, prefix can be +/%/@/&/~ and will
|
||||
check if the user is voiced/halfoped/etc.. Especially useful for +e ~c. Idea from
|
||||
Bugz (#0002198). Obviously all servers need to be upgraded to make this work.
|
||||
- Fixed SVSNOOP bug where remote servers still thought the opers had privileges, reported
|
||||
by Zell (#0002185)
|
||||
- Docs: log { } from 'optional' -> 'recomended'
|
||||
- If no log { } block is present a warning will be printed out and we will fallback
|
||||
to a default of logging errors to ircd.log. Suggested by w00t (#0002327).
|
||||
- Fixed shuns not working as target in spamfilter and ban version { }, reported by Bugz
|
||||
(#0002223).
|
||||
- Fixed a bug where shuns placed on IP's did not take effect to currently connected users.
|
||||
- Fixed a small doc bug regarding shun in spamfilter, reported by KnuX (#0002338).
|
||||
- Added greek docs, translator: GSF.
|
||||
- Some help.conf/005.txt updates, reported by Ron2K (#0002354).
|
||||
- No longer cutoff nick upon illegal character -- just reject the whole nick. The nick is
|
||||
still cutoff if the nick is too long. Basically this is the same way as Hybrid does it
|
||||
so it should work ok :).
|
||||
- Added nick character system. This allows you to choose which (additional) characters
|
||||
to allow in nicks via set::allowed-nickchars. See unreal32docs.html -> section 3.16
|
||||
for a list of available languages and more info on how to use it.
|
||||
Current list: dutch, french, german, italian, spanish, euro-west, chinese-trad,
|
||||
chinese-simp, chinese-ja, chinese.
|
||||
If you wonder why your language is not yet included or why a certain mistake is present,
|
||||
then please understand that we are most likely not experienced (at all) in your language.
|
||||
If you are a native of your language (or know the language well), and your language
|
||||
is not included yet or you have some corrections, then contact syzop@vulnscan.org or
|
||||
report it as a bug on http://bugs.unrealircd.org/
|
||||
- Added swedish support for nicks, supplied by Tank.
|
||||
- Various updates to unreal32docs from Ron2K (#0002354).
|
||||
- set::allowed-nickchars:
|
||||
- Renamed 'euro-west' to 'latin1' since that's more descriptive/fair ;)
|
||||
- Added 'hungarian' [supplied by AngryWolf]
|
||||
- Added category 'latin2': just Hungarian for now
|
||||
- Added 'catalan' [supplied by Trocotronic]
|
||||
- Added 'greek' [supplied by GSF]
|
||||
- Added category 'latin7': alias for 'greek'
|
||||
- Added category 'gbk': alias for 'chinese'
|
||||
- Removed 2 unneeded characters from 'catalan'.
|
||||
- Added NICKCHARS= in PROTOCTL. This indicates which languages are accepted in nicks.
|
||||
If 2 servers try to link and the allowed nick characters do not fully match, then
|
||||
the link will be rejected. Note that this will not prevent you from 3.2.2<->3.2.3/CVS
|
||||
charsets mistakes, but only with linking CVS/3.2.3+ servers. Suggested by Troco (#0002360)
|
||||
This might need some additional testing, but initial results are positive :).
|
||||
- NickChars:
|
||||
- Got rid of 'latin7', tiny mistake ;)
|
||||
- Removed e' accent from German (used in borrow-words only), reported by Dukat.
|
||||
- Added 'swiss-german', which is just German without es-zett, reported by Dukat.
|
||||
- Added 'turkish', supplied by Ayberk Yancatoral.
|
||||
- Build in some additional checks (especially for Chinese).
|
||||
- Fixed a bug in chinese character range (affecting 3.2*)
|
||||
- Relaxed nick character checking from remote servers (rely on NICKCHARS= PROTOCTL
|
||||
to deal with problems). This is useful to prevent any kills in case we slightly
|
||||
change the characters that are allowed in a language.
|
||||
- Added 'polish' (latin2), supplied by k4be.
|
||||
- Added 'hebrew' (iso8859-8I / windows-1255), supplied by PHANTOm.
|
||||
- Added French example.fr.conf and help.fr.conf, translated/maintained by Babass.
|
||||
- Fixed a doc typo, reported by SDF_of_BC.
|
||||
- NickChars: Updated polish a bit, and added polish-w1250 which is unfortunately more
|
||||
common than real latin2 (iso-8859-2), supplied by k4be as well.
|
||||
- NickChars: Added 'icelandic', supplied by Saevar.
|
||||
- Updated wircd.def
|
||||
- Fixed a bug where USERIP would say USERHOST in the not-enough-parameters numeric
|
||||
(#0002366) reported by vonitsanet.
|
||||
- Fixed a bug causing SVSNICK not to send out a snomask +n notice (#0002359) reported by
|
||||
Rob_.
|
||||
- Fixed a bug where SAJOIN would list channels multiple times in the notices (#0002325)
|
||||
reported by vonitsanet.
|
||||
- Fixed a bug in mode-skipping (eg '+qk a b' if not +q) and error msgs, reported by brain2
|
||||
(#0002372).
|
||||
- Fixed bug where chanmode +f #t (per-user text kick[ban]) was also affecting halfops,
|
||||
reported by seneces (#0002333).
|
||||
- Fixed doc bug reported by Dukat (#0002374). Also fixed 2 error msgs related to
|
||||
the nickchars system printing out incorrect set:: directives.
|
||||
- spamfilter.conf and dccallow.conf are now also copied upon make install, reported by
|
||||
TommyTheKid (#0002313).
|
||||
- Made CHGIDENT, CHGHOST and CHGNAME use more numerics (where possible) (#0002358).
|
||||
- Fixed halfop trying to set chanmode +G/+T/+j not getting an error message, reported
|
||||
by Ron2K (#Ron2K).
|
||||
- Module coders: using extcmode_default_requirechop is now depricated, check src/extcmodes.c
|
||||
ctrl+f extcmode_default_requirechop for more details (solution: copy+paste & fill in modechar).
|
||||
- Nicks with ~ are now also not cutoff anymore but rejected like any other illegal char (#0002074).
|
||||
- Fixed bug in +G where with not-really-matching-words color was needlessly stripped,
|
||||
reported by SpeedFire (#0002375).
|
||||
- Changed the 'is a Secure Connection' msg/numeric in /whois from RPL_WHOISSPECIAL to
|
||||
a slightly changed RPL_WHOISSECURE, namely: ':%s 671 %s %s :is using a Secure connection',
|
||||
I'm sure some client coders will bitch at this, but the current way is brok in 2 ways:
|
||||
- RPL_WHOISSPECIAL is meant for 1 line of additional whois info, usually an IRCOp title or
|
||||
description. Having a dedicated numeric for it allows for client-side interpretations
|
||||
and/or translations.
|
||||
- The 'is a Secure Connection' was incorrect English, this has been reported numerous times.
|
||||
The PRO's of this change are clear, the only CON is that in-window-/whois's are now
|
||||
likely not to show this line properly in-window but rather in the status window, until client
|
||||
coders implement this numeric.
|
||||
If you wonder why we didn't use RPL_USINGSSL, that's because this numeric collides with
|
||||
RPL_STATSDLINE (which we are already using for >5 years).
|
||||
If you wonder why we didn't use the RPL_WHOISSECURE numeric as-is (even though I haven't
|
||||
seen it in use anywhere), then that's because we wanted to minimize display problems in
|
||||
the transition period and the extra parameter would not be used by us anyway.
|
||||
- If a locop now has can_override/can_gkline/can_gzline we will print out a warning and
|
||||
convert it to globops. This is also what we always did for can_globalroute/can_gkill
|
||||
(well, except the warning). Giving such NETWORK (GLOBAL) privileges to a LOCAL operator
|
||||
does not make any sense and is therefore no longer allowed.
|
||||
- NickChars:
|
||||
- Added 'russian-w1251', supplied by Roman Parkin. There are like 7 standards
|
||||
in Russia (and like 2-3 main ones), so I didn't dare to call this one 'russian' ;).
|
||||
- Added 'czech-w1250' and 'slovak-w1250' (both might miss a few characters).
|
||||
- Added 'windows-1250' group which contains czech-w1250, slovak-w1250, polish-w1250
|
||||
and hungarian.
|
||||
- Hungarian characters show both fine in w1250 and latin2, hence hungarian is included
|
||||
both in 'windows-1250' and 'latin2'.
|
||||
- Fixed bug: polish was not included in latin2
|
||||
- Fixed various OperOverride issues:
|
||||
- Opers with can_override can now +qa/-qa even if they are not netadmins,
|
||||
and they can also (un)set L/u.
|
||||
- Fixed several SAMODE bugs, such as not completely working for non-netadmins and
|
||||
not working if you were halfop'ed, etc.
|
||||
Bugs reported by pak, aquanight, niphler, Bugz, and more.
|
||||
If there are still any bugs left, please report them on http://bugs.unrealircd.org/
|
||||
NOTE: some of these enhancements will produce desynchs if your net is not 100%
|
||||
on current CVS / Unreal3.2.3 and an oper tries to use these 'new features'.
|
||||
So use with care on mixed-version nets.
|
||||
- Fixed /(G)ZLINE [nick] placing the *line on *@host instead of *@IP, reported by
|
||||
Snake (#0002246).
|
||||
- A warning is now sent to the oper if (s)he tries to add a (G)ZLINE on *@host.
|
||||
(G)ZLINES should have an ipmask, not a hostmask, because they are processed BEFORE
|
||||
any dns lookups are done. Therefore any (g)zlines placed will probably work
|
||||
(but not necessarily) for like an hour (or whatever TTL), but after that the
|
||||
(ab)user can get in again so this is usually not what you want ;).
|
||||
I suppose I'll add a FAQ entry about this.
|
||||
- Made badwords (+G) now work with hardcoded word boundaries. Also made the fastbadwords
|
||||
system accept more characters. Basically what this means is that the (fast) badwords
|
||||
system can now be used to properly block words with accents and things like that, just
|
||||
the way you block English words. Bug reported by MJ12Helios (#0002311).
|
||||
- Fixed 'russian-w1251', was not working ok at all.
|
||||
- Made it so halfops can -h themselves, and chanadmins can -a themselves, reported
|
||||
by fez (#0001503).
|
||||
- Made spamfilter 'u' also check nickchanges, reported by Gilou (#0002251).
|
||||
- Updated doc/technical/token.txt, reported by webfox (#0002373).
|
||||
- NickChars: Added 'romanian', supplied by crazytoon.
|
||||
- Added 3.2.3 release notes (expected to be changed later on).
|
||||
- Updated russian-w1251 (added 2 chars).
|
||||
- Made the (G)ZLINE warning only happen on add, as it should. Reported by crazy.
|
||||
- Made some (incorrect) -Wall warnings dissapear.
|
||||
- Renamed version to 3.2.3-pre1, for Thursday. I'll keep the doc version numbers
|
||||
at 3.2.2-CVS to avoid confusion with the online semi-realtime docs ;).
|
||||
** internal 3.2.3-pre1 release **
|
||||
- Fixed a bug with /invite with no parameters (accidentily broken when +I was added)
|
||||
(#0002383) reported by trystanscott.
|
||||
- Fixed a bug where /SAJOIN user 0 caused a desynch, reported by trystanscott (#0002384).
|
||||
- Merged NICKCHARS= in PROTOCTL for now, since a seperate one is not (yet!) needed,
|
||||
reported by SolutechUK and psadi (#0002386).
|
||||
- Fixed various (major) problems that the '-h yourself' caused, reported by Trocotronic
|
||||
(#0002387).
|
||||
- Fix for above, also reported by Trocotronic.
|
||||
** internal 3.2.3-pre2 release **
|
||||
- Fixed a couple of typos in doc/example.conf (#0002393) reported by AngryWolf.
|
||||
- Added documentation about channel mode +j (#0002392) suggested by Dukat.
|
||||
- Added doc/help.de.conf and doc/example.hu.conf
|
||||
- Fixed +s/+p and +c/+S desynch issue during netmerge, reported by Ron2K (#0002391).
|
||||
- Fixed a bug where an unknown operflag would cause a crash.
|
||||
- Windows versions will now be compiled with zlib 1.2.2 and curl 7.13.1.
|
||||
- Made windows installer also install doc\technical\*
|
||||
- Removed oldcloak cloaking module, everyone should be using the new cloak one by now.
|
||||
- Updated release notes (translated docs, zlib, doc\technical, sp/cS desynch).
|
||||
- Made +g get removed when an oper sets -o (#0002399) reported by Ron2K.
|
||||
- Made it so the win32 version shows channel modes in /list (#0002397) reported by Ron2K.
|
||||
- Fixed /SAMODE with no can_override not always working with +G/+j/+T (extcmodes), reported
|
||||
by Ron2K (#0002398).
|
||||
- Added doc/example.de.conf
|
||||
** internal 3.2.3-pre3 release **
|
||||
- Some spelling fixes in unreal32docs.html, reported by alex323 (#2412).
|
||||
- Updated the list of donators
|
||||
- /SAMODE could cause 'fishy timestamp' if digit parameters were used (eg: SAMODE #chan +l 5),
|
||||
this has now be fixed by sending an explicit TS 0.
|
||||
- Fixed an important channelmode +j memory corruption bug that would cause crashes, reported
|
||||
by Bergee (#0002416).
|
||||
- Some clarifications on /RESTART, remote restarts were well never supported, so the docs
|
||||
are now updated on that (no code changes).
|
||||
** internal 3.2.3-pre4 release **
|
||||
- Corrected small doc typo in unreal32docs, reported by arbiter.
|
||||
** 3.2.3 release **
|
||||
- Fixed incorrect badword { } in conf causing a crash (should give an error).
|
||||
- spamfilter.conf Gaggle worm sigs were broken causing odd things to match, this is because
|
||||
\\ now needs to be escaped as \\\\ due to the 3.2.3 conf change... didn't think of updating sigs.
|
||||
- Clarified some nickchar stuff in the docs
|
||||
- Added 'danish' nickchars, supplied by klaus (#0002436).
|
||||
- Module coders: Added HOOKTYPE_LOCAL_SPAMFILTER: catches (local) spamfilter matches.
|
||||
- Fixed chanmode G showing up twice in 005, reported by Snake (#0002466).
|
||||
- Fixed a TKL crash on incorrect *line, reported by nanookles1234 (#0002524).
|
||||
- Redid include dependencies in Makefile, this makes things safer because on any .h change it
|
||||
would force a recompile of all files, but it could mean things will be a bit slower for us
|
||||
coders unless we tweak it later on.
|
||||
- Changed whois a bit to print less useless results.
|
||||
- Added several indicators to the "detect binary incompatible modules"-system such as detecting
|
||||
of a ziplinks module on non-ziplinks (on windows this is ok however), nospoof module on a
|
||||
a server without nospoof server, etc. Hopefully this will help some people preventing odd
|
||||
crashes because they did not recompile or (re)install modules properly.
|
||||
- Added './unreal backtrace', so far this has only been tested on Linux and FreeBSD.
|
||||
- Fixed a bug making ./Config not load the previously stored settings on Solaris 10 and
|
||||
probably other Unixes, reported by lion-o (#0002474).
|
||||
- Cosmetic bug in set::modes-on-join: now rejecting +I in it. Reported by Ron2K (#0002508).
|
||||
- Moved all TKL code and register_user to modules (using efuncs), that means 20 functions
|
||||
and 2000 lines total that can be hotfixed if needed ;). The effort involved in moving all
|
||||
this sucks a lot though :/. This might need some more testing to make sure it doesn't break
|
||||
anything.
|
||||
- Updated support OS list in documentation.
|
||||
- Fixed various major bugs due to TKL move from 13h ago.
|
||||
- Fixed 2 problems caused by TKL move: 1 windows crash, 1 problem with loading m_*.so,
|
||||
reported by Trocotronic (#0002553, #0002554).
|
||||
- Added some TSCTL logging (this reminds me we need to add new log levels for 3.3 ;p).
|
||||
- Attempt to fix bug #2431: 3.2.3 broke CNAME delegation for reverse dns. I'm sorry it took
|
||||
so long, but this stuff just plain sucks...
|
||||
- Made '?*' work correctly in wildcard matches ('1 or more characters'), reported by
|
||||
Bugz (#2585).
|
||||
- Added -fno-strict-aliasing.. this might well be temporary, but we get tons of strict-
|
||||
aliasing warnings, so it sounds good to disable this type of optimization for now.
|
||||
- Fixed problem with crash-on-link if compiled with GCC 4, reported by jonneyboy (#2573)
|
||||
and PHANTOm (#2590).
|
||||
- IPv6: Added configure check for in6addr_any to fix Fedora Core 4 compile problem,
|
||||
reported by wheatie80 (#2594).
|
||||
- Added -Wno-pointer-sign (if available) to get rid of those stupid warnings that are
|
||||
enabled by default even without -Wall (!?) on GCC4.
|
||||
- Fixed a bug where allow channel::channel generated a warning when specified multiple times
|
||||
(#0002427) reported by matridom.
|
||||
- Fixed ~c not working properly with * and ?'s in channel names.. Now you just need to
|
||||
escape them like in all bans (eg: to ban #* you need to +b ~c:#\*). As an additional
|
||||
bonus, real wildcards are now accepted and processed (eg: +b ~c:#*sex*, just don't
|
||||
forget to specify the #). Reported by PhantasyX (#2605).
|
||||
- Sidenote on above: ~c:*chan* is not supported (use ~c:#*chan* instead) because it would
|
||||
cause "hidden bans", therefore it now prints a message (which is useful anyway), but
|
||||
does accept such remote bans. In 3.2.5 or so we could enable support for it, it's
|
||||
not that important though... ;)
|
||||
- Added ifdefs for mass closing of file descriptors on start, can now be disabled by
|
||||
adding -DNOCLOSEFD as a compile option. Useful for valgrind w/--db-attach=yes, mpatrol,
|
||||
and some other debugging tools (not useful for anyone normally running a server).
|
||||
- Fixed a read-after-free: sptr->serv->aconf was freed but not NULL'ed in exit_client,
|
||||
causing close_connection to read from it (when deciding on doing a quick reconnect).
|
||||
Could have caused a crash, although nobody ever reported one...
|
||||
- Removed useless strncpyzt with dest==src.
|
||||
- Temporary workaround for spamfilter bug: action 'viruschan' in combination with the
|
||||
'u' (user) target can cause severe problems (crashes, etc). For now, we have disabled
|
||||
'viruschan' in combination with 'u'. A real fix will require quite some work, sorry.
|
||||
- Fixed crash with invalid set::network-name (eg: high ascii), reported by galahad
|
||||
(#0002584), now printing an error instead (the network name is limited by the 005 spec).
|
||||
- Added Bulgarian example.bg.conf, translated by Peace.
|
||||
- Spamfilter: regexes (and reasons) are now more limited in size, this is to combat "I set
|
||||
a spamfilter, but cannot remove it" problems. In practice this means - depending on the
|
||||
length of your spamfilter reason - regexes will be max ~300 characters.
|
||||
Spamfilters set in the .conf can be slightly longer (which still causes them to be
|
||||
truncated in '/stats f', but they don't have to be removed anyway so it's kinda
|
||||
acceptable if it's really needed). This should fix bug #2083, reported by White_Magic.
|
||||
- Fixed a bug where an invalid /*line could cause a crash, reported by Gilou (#2629).
|
||||
- (5 minutes later..) Small update for above, fix was incorrect for ipv6.
|
||||
- CMDLINE_CONFIG behavior change: command line configuration is now still permitted
|
||||
if #undef'ed (which is the default) if uid==euid && gid==egid, since it doesn't make
|
||||
any sense to disable it then and is in fact just plain annoying.
|
||||
- Added FAKELAG_CONFIGURABLE option in include/config.h, this enables an option called
|
||||
class::options::nofakelag, which disables "fake lag" for a certain class (that is:
|
||||
the artificial delay introduced by the ircd to prevent flooding is turned off,
|
||||
allowing the user to flood at full speed).
|
||||
IT'S USE IS DISCOURAGED UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.
|
||||
Sorry, option is not in ./Config -advanced since I don't get autoconf working, but it's
|
||||
such a scary option that this might as well be a good idea to keep in config.h anyway.
|
||||
This feature has been suggested for several years (and refused), but the final
|
||||
suggestion (with implementation specific hints) came from Gilou in bug #0002207.
|
||||
- Fixed win32 makefile, now compiles fine.
|
||||
+4844
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Config script for UnrealIRCd
|
||||
# (C) 2001-2019 The UnrealIRCd Team
|
||||
# (C) 2001 The UnrealIRCd Team
|
||||
#
|
||||
# This configure script is free software; the UnrealIRCd Team gives
|
||||
# unlimited permission to copy, distribute and modify as long as the
|
||||
@@ -20,21 +20,7 @@
|
||||
|
||||
|
||||
RUN_CONFIGURE () {
|
||||
ARG=" "
|
||||
|
||||
if [ -z "$BINDIR" -o -z "$DATADIR" -o -z "$CONFDIR" -o -z "$MODULESDIR" -o -z "$LOGDIR" -o -z "$CACHEDIR" -o -z "$DOCDIR" -o -z "$TMPDIR" -o -z "$LIBDIR" ]; then
|
||||
echo "Sorry './Config -quick' cannot be used because your 'config.settings'"
|
||||
echo "file either does not exist or is from an old UnrealIRCd version"
|
||||
echo "(older than version 4.0.8)."
|
||||
echo ""
|
||||
echo "Please run './Config' without -quick and answer all questions."
|
||||
echo ""
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
mkdir -p $TMPDIR
|
||||
|
||||
ARG=""
|
||||
# Do this even if we're not in advanced mode
|
||||
if [ "$SHOWLISTMODES" = "1" ] ; then
|
||||
ARG="$ARG--with-showlistmodes "
|
||||
@@ -55,103 +41,60 @@ fi
|
||||
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
||||
ARG="$ARG--with-operoverride-verify "
|
||||
fi
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
ARG="$ARG--enable-nospoof "
|
||||
fi
|
||||
if [ -n "$HUB" ] ; then
|
||||
ARG="$ARG--enable-hub "
|
||||
fi
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if test x"$SSLDIR" = "x" ; then
|
||||
ARG="$ARG--enable-ssl "
|
||||
else
|
||||
ARG="$ARG--enable-ssl=$SSLDIR "
|
||||
fi
|
||||
fi
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
if test x"$ZIPLINKSDIR" = "x" ; then
|
||||
ARG="$ARG--enable-ziplinks "
|
||||
else
|
||||
ARG="$ARG--enable-ziplinks=$ZIPLINKSDIR "
|
||||
fi
|
||||
fi
|
||||
if [ "$REMOTEINC" = "1" ] ; then
|
||||
ARG="$ARG--enable-libcurl=$CURLDIR "
|
||||
fi
|
||||
if [ "$PREFIXAQ" != "1" ]; then
|
||||
ARG="$ARG--disable-prefixaq "
|
||||
if [ "$INET6" = "1" ] ; then
|
||||
ARG="$ARG--enable-inet6 "
|
||||
fi
|
||||
if [ "$MAXCONNECTIONS_REQUEST" != "auto" ]; then
|
||||
ARG="$ARG--with-maxconnections=$MAXCONNECTIONS_REQUEST "
|
||||
if [ "$PREFIXAQ" = "1" ]; then
|
||||
ARG="$ARG--enable-prefixaq "
|
||||
fi
|
||||
|
||||
ARG="$ARG--with-bindir=$BINDIR "
|
||||
ARG="$ARG--with-datadir=$DATADIR "
|
||||
ARG="$ARG--with-pidfile=$DATADIR/unrealircd.pid "
|
||||
ARG="$ARG--with-confdir=$CONFDIR "
|
||||
ARG="$ARG--with-modulesdir=$MODULESDIR "
|
||||
ARG="$ARG--with-logdir=$LOGDIR "
|
||||
ARG="$ARG--with-cachedir=$CACHEDIR "
|
||||
ARG="$ARG--with-docdir=$DOCDIR "
|
||||
ARG="$ARG--with-tmpdir=$TMPDIR "
|
||||
ARG="$ARG--with-privatelibdir=$LIBDIR "
|
||||
ARG="$ARG--with-scriptdir=$BASEPATH "
|
||||
ARG="$ARG--with-listen=$LISTEN_SIZE "
|
||||
ARG="$ARG--with-dpath=$DPATH "
|
||||
ARG="$ARG--with-spath=$SPATH "
|
||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||
ARG="$ARG--with-hostname=$DOMAINNAME "
|
||||
ARG="$ARG--with-permissions=$DEFPERM "
|
||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||
ARG="$ARG--enable-dynamic-linking "
|
||||
ARG="$ARG $EXTRAPARA "
|
||||
CONF="./configure $ARG"
|
||||
# remove possibly old instances of curl in ~/unrealircd/lib/
|
||||
rm -f $LIBDIR/*curl* 1>/dev/null 2>&1
|
||||
# Ensure we install curl even if someone does ./Config -quick...
|
||||
if [ "x$CURLDIR" = "x$UNREALCWD/extras/curl" ]; then
|
||||
INSTALLCURL=1
|
||||
fi
|
||||
if [ "x$INSTALLCURL" = "x1" ]; then
|
||||
extras/curlinstall "$LIBDIR" || exit 1
|
||||
fi
|
||||
echo $CONF
|
||||
$CONF || exit 1
|
||||
cd "$UNREALCWD"
|
||||
if [ "$QUICK" != "1" ] ; then
|
||||
if [ ! -f $CONFDIR/ssl/server.cert.pem ]; then
|
||||
$CONF
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if [ ! -f server.req.pem ]; then
|
||||
export OPENSSLPATH
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$GENCERTIFICATE" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to generate an SSL certificate for the IRCd?"
|
||||
echo "Only answer No if you already have one."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
GENCERTIFICATE="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
GENCERTIFICATE=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "$GENCERTIFICATE" = 1 ]; then
|
||||
make pem
|
||||
echo "Certificate created successfully."
|
||||
sleep 1
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
else
|
||||
echo "Ok, not generating SSL certificate. Make sure that the certificate and key"
|
||||
echo "are installed in conf/ssl/server.crt.pem and conf/ssl/server.key.pem prior to starting the IRCd."
|
||||
fi
|
||||
else
|
||||
echo "SSL certificate exists in $CONFDIR/ssl/server.cert.pem, no need to regenerate."
|
||||
echo "SSL certificate already existing, no need to regenerate"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Silently force a 'make clean' as otherwise part (or whole) of the
|
||||
# compiled source could be using different settings than the user
|
||||
# just requested when re-running ./Config.
|
||||
make clean 1>/dev/null 2>&1
|
||||
}
|
||||
|
||||
RUN_ADVANCED () {
|
||||
@@ -222,7 +165,7 @@ while [ -z "$TEST" ] ; do
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Should UnrealIRCd notify a user when they are no longer shunned?"
|
||||
echo "Should Unreal notify a user when they are no longer shunned?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -331,56 +274,34 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to disable extended ban stacking (~q:~c:#test, etc) support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
DISABLEEXTBANSTACKING="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
DISABLEEXTBANSTACKING="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
}
|
||||
c=""
|
||||
n=""
|
||||
UNREALCWD="`pwd`"
|
||||
BASEPATH="$HOME/unrealircd"
|
||||
NOSPOOF=""
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
HUB="1"
|
||||
DOMAINNAME=`hostname`
|
||||
DEFPERM="0600"
|
||||
CRYPTOIRCD=""
|
||||
SSLDIR=""
|
||||
ZIPLINKS=""
|
||||
ZIPLINKSDIR=""
|
||||
LISTEN_SIZE="5"
|
||||
NICKNAMEHISTORYLENGTH="2000"
|
||||
MAXSENDQLENGTH="3000000"
|
||||
MAXCONNECTIONS_REQUEST="auto"
|
||||
BUFFERPOOL="18"
|
||||
MAXCONNECTIONS="1024"
|
||||
INET6=""
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
PREFIXAQ="1"
|
||||
PREFIXAQ=""
|
||||
SHOWLISTMODES="1"
|
||||
TOPICNICKISNUH=""
|
||||
SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
GENCERTIFICATE="1"
|
||||
EXTRAPARA=""
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
@@ -388,28 +309,10 @@ else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
date|grep 2019 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "*** WARNING ***"
|
||||
echo "UnrealIRCd 4.x will no longer be supported after December 31, 2020."
|
||||
echo "You should upgrade to UnrealIRCd 5 before that date."
|
||||
echo "See https://www.unrealircd.org/docs/UnrealIRCd_4_EOL"
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
echo ""
|
||||
sleep 1
|
||||
echo "Press ENTER to continue"
|
||||
read xyz
|
||||
fi
|
||||
|
||||
#parse arguments
|
||||
NOCACHE=""
|
||||
IMPORTEDSETTINGS=""
|
||||
NOINTRO=""
|
||||
QUICK=""
|
||||
CLEAN=""
|
||||
ADVANCED=""
|
||||
while [ $# -ge 1 ] ; do
|
||||
@@ -428,13 +331,11 @@ while [ $# -ge 1 ] ; do
|
||||
elif [ $1 = "-nointro" ] ; then
|
||||
NOINTRO="1"
|
||||
elif [ $1 = "-quick" -o $1 = "-q" ] ; then
|
||||
QUICK="1"
|
||||
echo "running quick config"
|
||||
if [ -f "config.settings" ] ; then
|
||||
. ./config.settings
|
||||
fi
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
exit 0
|
||||
elif [ $1 = "-clean" -o $1 = "-C" ] ; then
|
||||
CLEAN="1"
|
||||
@@ -444,6 +345,10 @@ while [ $# -ge 1 ] ; do
|
||||
shift 1
|
||||
done
|
||||
|
||||
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
||||
. ./config.settings
|
||||
fi
|
||||
|
||||
if [ "$PREADVANCED" = "1" ] ; then
|
||||
ADVANCED="1"
|
||||
elif [ "$ADVANCED" = "1" ]; then
|
||||
@@ -462,109 +367,110 @@ clear
|
||||
read cc
|
||||
clear
|
||||
fi
|
||||
if [ -f "doc/RELEASE-NOTES" -a -z "$NOINTRO" ] ; then
|
||||
more doc/RELEASE-NOTES
|
||||
if [ -f ".RELEASE.NOTES" -a -z "$NOINTRO" ] ; then
|
||||
more .RELEASE.NOTES
|
||||
echo $n "[Enter to continue]"
|
||||
read cc
|
||||
clear
|
||||
fi
|
||||
|
||||
echo "We will now ask you a number of questions."
|
||||
echo "You can just press ENTER to accept the defaults!"
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Many older operating systems have an insecure TCP/IP stack"
|
||||
echo "which may be vulnerable to IP spoofing attacks, if you run"
|
||||
echo "an operating system that is vulnerable to such attacks"
|
||||
echo "enable this option. This option can also be useful to prevent"
|
||||
echo "blind proxies from connecting (eg: HTTP POST proxies)."
|
||||
echo ""
|
||||
echo "Do you want to enable the server anti-spoof protection?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
NOSPOOF="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
NOSPOOF=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DPATH"
|
||||
echo ""
|
||||
|
||||
if [ -z "$NOCACHE" ] ; then
|
||||
# This needs to be updated each release so auto-upgrading works for settings, modules, etc!!:
|
||||
UNREALRELEASES="unrealircd-4.2.3-rc1 unrealircd-4.2.2 unrealircd-4.2.2-rc2 unrealircd-4.2.2-rc1 unrealircd-4.2.1.1 unrealircd-4.2.1 unrealircd-4.2.1-rc1 unrealircd-4.2.0 unrealircd-4.0.19-rc2 unrealircd-4.0.19-rc1 unrealircd-4.0.18 unrealircd-4.0.18-rc2 unrealircd-4.0.18-rc1 unrealircd-4.0.17 unrealircd-4.0.17-rc1 unrealircd-4.0.16.1 unrealircd-4.0.16 unrealircd-4.0.15 unrealircd-4.0.14 unrealircd-4.0.14-rc1 unrealircd-4.0.13 unrealircd-4.0.13-rc1 unrealircd-4.0.12.1 unrealircd-4.0.12"
|
||||
if [ -f "config.settings" ]; then
|
||||
. ./config.settings
|
||||
else
|
||||
# Try to load a previous config.settings
|
||||
for x in $UNREALRELEASES
|
||||
do
|
||||
if [ -f ../$x/config.settings ]; then
|
||||
IMPORTEDSETTINGS="../$x"
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "If you have previously installed UnrealIRCd on this shell then you can specify a"
|
||||
echo "directory here so I can import the build settings and third party modules"
|
||||
echo "to make your life a little easier."
|
||||
if [ ! -z "$IMPORTEDSETTINGS" ]; then
|
||||
echo "Found previous installation in: $IMPORTEDSETTINGS."
|
||||
echo "You can enter a different path or type 'none' if you don't want to use it."
|
||||
echo "Just press Enter to accept the default settings."
|
||||
else
|
||||
echo "If you install UnrealIRCd for the first time on this shell, then just hit Enter";
|
||||
fi
|
||||
|
||||
TEST="$IMPORTEDSETTINGS"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ]; then
|
||||
IMPORTEDSETTINGS="$TEST"
|
||||
else
|
||||
IMPORTEDSETTINGS="$cc"
|
||||
fi
|
||||
if [ "$IMPORTEDSETTINGS" = "none" ]; then
|
||||
IMPORTEDSETTINGS=""
|
||||
fi
|
||||
if [ "$IMPORTEDSETTINGS" != "" ]; then
|
||||
if [ ! -f $IMPORTEDSETTINGS/config.settings ]; then
|
||||
echo "Directory $IMPORTEDSETTINGS does not exist or does not contain a config.settings file"
|
||||
exit
|
||||
fi
|
||||
# Actually load the settings
|
||||
. $IMPORTEDSETTINGS/config.settings
|
||||
# Copy over 3rd party modules (also deals with 0 file cases, hence the silly looking code)
|
||||
for f in $IMPORTEDSETTINGS/src/modules/third/*.c
|
||||
do
|
||||
[ -e "$f" ] && cp $f src/modules/third/
|
||||
done
|
||||
fi
|
||||
fi
|
||||
# If we just imported settings and the curl dir is set to
|
||||
# something like /home/xxx/unrealircd-4.x.y/extras/curl/
|
||||
# (what we call 'local-curl') then remove this setting as
|
||||
# it would refer to the old UnrealIRCd installation.
|
||||
if [ ! -z "$IMPORTEDSETTINGS" ]; then
|
||||
if echo "$CURLDIR"|grep -qi unrealircd; then
|
||||
CURLDIR=""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST="$BASEPATH"
|
||||
echo ""
|
||||
echo "In what directory do you want to install UnrealIRCd?"
|
||||
echo "(Note: UnrealIRCd 4 will need to be installed somewhere."
|
||||
echo " If this directory does not exist it will be created.)"
|
||||
echo "What directory are all the server configuration files in?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
BASEPATH=$TEST
|
||||
DPATH=$TEST
|
||||
else
|
||||
BASEPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
if [ "$BASEPATH" = "$UNREALCWD" ]; then
|
||||
echo ""
|
||||
echo "ERROR: The installation directory cannot be the same as the directory"
|
||||
echo " containing the source code ($UNREALCWD)."
|
||||
echo " HINT: Usually the directory containing the source is $HOME/unrealircd-4.x.y"
|
||||
echo " and the installation directory you would need to enter is $HOME/unrealircd"
|
||||
exit 1
|
||||
DPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
# TODO: For -advanced we could prompt the user.
|
||||
BINDIR="$BASEPATH/bin"
|
||||
DATADIR="$BASEPATH/data"
|
||||
CONFDIR="$BASEPATH/conf"
|
||||
MODULESDIR="$BASEPATH/modules"
|
||||
LOGDIR="$BASEPATH/logs"
|
||||
CACHEDIR="$BASEPATH/cache"
|
||||
DOCDIR="$BASEPATH/doc"
|
||||
TMPDIR="$BASEPATH/tmp"
|
||||
LIBDIR="$BASEPATH/lib"
|
||||
TEST="$SPATH"
|
||||
echo ""
|
||||
echo "What is the path to the ircd binary including the name of the binary?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
SPATH=$TEST
|
||||
else
|
||||
SPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$HUB" = "1" ] ; then
|
||||
TEST="Hub"
|
||||
else
|
||||
TEST="Leaf"
|
||||
fi
|
||||
echo ""
|
||||
echo "Would you like to compile as a hub or as a leaf?"
|
||||
echo "Type Hub to select hub and Leaf to select leaf."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Hh]*)
|
||||
HUB="1"
|
||||
;;
|
||||
[Ll]*)
|
||||
HUB=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Hub or Leaf"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DOMAINNAME"
|
||||
echo ""
|
||||
echo "What is the hostname of the server running your IRCd?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
DOMAINNAME=$TEST
|
||||
else
|
||||
DOMAINNAME=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
@@ -591,33 +497,120 @@ while [ -z "$TEST" ] ; do
|
||||
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to support SSL (Secure Sockets Layer) connections?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
CRYPTOIRCD="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
CRYPTOIRCD=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST=""
|
||||
echo ""
|
||||
echo "If you want, you can manually enter the path to OpenSSL/LibreSSL here."
|
||||
echo "In most cases you can leave this blank and it will be detected automatically."
|
||||
|
||||
if [ -z "$SSLDIR" ]; then
|
||||
uname|grep -q Darwin
|
||||
if [ "$?" = 0 ]; then
|
||||
echo "Looks like you're on a Mac - El Capitan and higher require"
|
||||
echo "a 3rd party OpenSSL installation. We recommend using homebrew"
|
||||
echo "to install OpenSSL, but you may install it any other way as well."
|
||||
echo "We are selecting the default homebrew OpenSSL path - but you can"
|
||||
echo "change it to another path if you have installed OpenSSL another way"
|
||||
SSLDIR="/usr/local/opt/openssl/"
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST="$SSLDIR"
|
||||
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
SSLDIR="$TEST"
|
||||
SSLDIR=""
|
||||
else
|
||||
SSLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$INET6" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable IPv6 support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
INET6="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
INET6=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable ziplinks support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
ZIPLINKS="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
ZIPLINKS=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
TEST=""
|
||||
echo ""
|
||||
echo "If you know the path to zlib on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
ZIPLINKSDIR=""
|
||||
else
|
||||
ZIPLINKSDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
@@ -628,8 +621,6 @@ while [ -z "$TEST" ] ; do
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable remote includes?"
|
||||
echo "This allows stuff like this in your configuration file:"
|
||||
echo "include \"http://www.somesite.org/files/opers.conf\";"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -652,125 +643,20 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$REMOTEINC" = "1" ] ; then
|
||||
if [ ! -d "$CURLDIR" ]; then
|
||||
# Reset any previous CURLDIR if it doesn't exist (anymore)
|
||||
CURLDIR=""
|
||||
fi
|
||||
|
||||
INSTALLCURL="0"
|
||||
SUGGESTCURLDIR=""
|
||||
|
||||
if [ -d "/usr/local/include/curl" ]; then
|
||||
SUGGESTCURLDIR="/usr/local"
|
||||
fi
|
||||
if [ -d "/usr/include/curl" ]; then
|
||||
SUGGESTCURLDIR="/usr"
|
||||
fi
|
||||
# This one also works for /usr/include/x86_64-linux-gnu and friends:
|
||||
if [ -f "/usr/bin/curl-config" ]; then
|
||||
SUGGESTCURLDIR="/usr"
|
||||
fi
|
||||
|
||||
GOTASYNC=0
|
||||
if [ "x$SUGGESTCURLDIR" != "x" ]; then
|
||||
# Check if it's of any use: a curl without async dns (cares) hangs the entire ircd..
|
||||
# normally this is done in ./configure but now we're forced to do it also here..
|
||||
if "$SUGGESTCURLDIR"/bin/curl-config --features | grep -q -e AsynchDNS; then
|
||||
GOTASYNC="1"
|
||||
fi
|
||||
if [ "$GOTASYNC" != "1" ]; then
|
||||
SUGGESTCURLDIRBAD="$CURLDIR"
|
||||
SUGGESTCURLDIR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CURLDIR" = "x$HOME/curl" ]; then
|
||||
if [ "x$SUGGESTCURLDIR" != "x" ]; then
|
||||
# I guess some people will complain about this, but if system wide cURL is available
|
||||
# and many people have old defaults then this is much preferred:
|
||||
echo ""
|
||||
echo "WARNING: Your previous (potentially old) setting is to use cURL from $HOME/curl."
|
||||
echo "However, your operating system also provides a working cURL."
|
||||
echo "I am therefore changing the setting to: $SUGGESTCURLDIR"
|
||||
CURLDIR="$SUGGESTCURLDIR"
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$CURLDIR"
|
||||
echo ""
|
||||
echo "Specify the directory you installed libcurl to"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
else
|
||||
echo ""
|
||||
echo "WARNING: We no longer use $HOME/curl nowadays."
|
||||
echo "Use the automatic download and install feature below."
|
||||
CURLDIR=""
|
||||
TEST=$cc
|
||||
CURLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CURLDIR" = "x" ]; then
|
||||
CURLDIR="$SUGGESTCURLDIR"
|
||||
# NOTE: CURLDIR may still be empty after this
|
||||
|
||||
# System curl has no asyncdns, so install our own.
|
||||
if [ "$GOTASYNC" != "1" ]; then
|
||||
CURLDIR=""
|
||||
fi
|
||||
|
||||
# Need to output it here, as the HOME check from above may cause this to be no longer relevant.
|
||||
if [ "x$CURLDIR" = "x" -a "x$SUGGESTCURLDIRBAD" != "x" ]; then
|
||||
echo "Curl library was found in $SUGGESTCURLDIRBAD, but it does not support Asynchronous DNS (not compiled with c-ares)"
|
||||
echo "so it's of no use to us as it would stall the IRCd on REHASH."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Final check
|
||||
if [ "x$CURLDIR" != "x" ]; then
|
||||
"$CURLDIR/bin/curl-config" --features 2>/dev/null | grep -q -e AsynchDNS
|
||||
if [ "$?" != 0 ]; then
|
||||
echo "Curl from $CURLDIR seems unusable ($CURLDIR/bin/curl-config does not exist)"
|
||||
CURLDIR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CURLDIR" = "x" ]; then
|
||||
# Still empty?
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="Yes"
|
||||
echo ""
|
||||
echo "Do you want me to automatically download and install curl for you?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
INSTALLCURL="1"
|
||||
CURLDIR="$UNREALCWD/extras/curl"
|
||||
;;
|
||||
[Nn]*)
|
||||
INSTALLCURL="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$INSTALLCURL" != "1" ]; then
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$CURLDIR"
|
||||
echo ""
|
||||
echo "Specify the directory you installed libcurl to"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
else
|
||||
TEST=$cc
|
||||
CURLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
@@ -784,8 +670,8 @@ while [ -z "$TEST" ] ; do
|
||||
echo ""
|
||||
echo "Do you want to enable prefixes for chanadmin and chanowner?"
|
||||
echo "This will give +a the & prefix and ~ for +q (just like +o is @)"
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,"
|
||||
echo "PJIRC, irssi, CGI:IRC, etc.)"
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient, PJIRC, etc.)"
|
||||
echo "with the notable exceptions of irssi, KVIrc and CGI:IRC."
|
||||
echo "This feature should be enabled/disabled network-wide."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
@@ -807,6 +693,31 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$LISTEN_SIZE"
|
||||
echo ""
|
||||
echo "What listen() backlog value do you wish to use? Some older servers"
|
||||
echo "have problems with more than 5, others work fine with many more."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
LISTEN_SIZE=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9]*)
|
||||
LISTEN_SIZE="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter a number"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$NICKNAMEHISTORYLENGTH"
|
||||
@@ -853,71 +764,83 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$BUFFERPOOL"
|
||||
echo ""
|
||||
echo "How many buffer pools would you like?"
|
||||
echo "This number will be multiplied by MAXSENDQLENGTH."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
BUFFERPOOL=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9]*)
|
||||
BUFFERPOOL="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter a number"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
echo ""
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$MAXCONNECTIONS_REQUEST"
|
||||
echo ""
|
||||
echo "What is the maximum number of sockets (and file descriptors) that"
|
||||
echo "UnrealIRCd may use?"
|
||||
echo "It is recommended to leave this at the default setting 'auto',"
|
||||
echo "which at present results in a limit of up to 8192, depending on"
|
||||
echo "the system. When you boot UnrealIRCd later you will always see"
|
||||
echo "the effective limit."
|
||||
echo $n "[$TEST] -> $c"
|
||||
TEST="$MAXCONNECTIONS"
|
||||
echo ""
|
||||
echo "How many file descriptors (or sockets) can the IRCd use?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
MAXCONNECTIONS_REQUEST=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
auto)
|
||||
MAXCONNECTIONS_REQUEST="$cc"
|
||||
;;
|
||||
[1-9][0-9][0-9]*)
|
||||
MAXCONNECTIONS_REQUEST="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must to enter a number greater than or equal to 100."
|
||||
echo "Or enter 'auto' to leave it at automatic, which is recommended."
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
if [ -z "$cc" ] ; then
|
||||
MAXCONNECTIONS=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9][0-9][0-9]*)
|
||||
MAXCONNECTIONS="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must to enter a number greater than or equal to 100"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -n "$ADVANCED" ] ; then
|
||||
RUN_ADVANCED
|
||||
fi
|
||||
|
||||
TEST="$EXTRAPARA"
|
||||
echo ""
|
||||
echo "Would you like to pass any custom parameters to configure?"
|
||||
echo "See \`./configure --help' and write them here:"
|
||||
echo $n "[$TEST] -> $c"
|
||||
echo "Would you like any more parameters to configure?"
|
||||
echo "Write them here:"
|
||||
echo $n "[]-> $c"
|
||||
read EXTRAPARA
|
||||
if [ -z "$EXTRAPARA" ]; then
|
||||
EXTRAPARA="$TEST"
|
||||
fi
|
||||
|
||||
rm -f config.settings
|
||||
cat > config.settings << __EOF__
|
||||
#
|
||||
BASEPATH="$BASEPATH"
|
||||
BINDIR="$BINDIR"
|
||||
DATADIR="$DATADIR"
|
||||
CONFDIR="$CONFDIR"
|
||||
MODULESDIR="$MODULESDIR"
|
||||
LOGDIR="$LOGDIR"
|
||||
CACHEDIR="$CACHEDIR"
|
||||
DOCDIR="$DOCDIR"
|
||||
TMPDIR="$TMPDIR"
|
||||
LIBDIR="$LIBDIR"
|
||||
NOSPOOF="$NOSPOOF"
|
||||
DPATH="$DPATH"
|
||||
SPATH="$SPATH"
|
||||
INET6="$INET6"
|
||||
PREFIXAQ="$PREFIXAQ"
|
||||
LISTEN_SIZE="$LISTEN_SIZE"
|
||||
MAXSENDQLENGTH="$MAXSENDQLENGTH"
|
||||
MAXCONNECTIONS_REQUEST="$MAXCONNECTIONS_REQUEST"
|
||||
BUFFERPOOL="$BUFFERPOOL"
|
||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||
HUB="$HUB"
|
||||
DOMAINNAME="$DOMAINNAME"
|
||||
DEFPERM="$DEFPERM"
|
||||
CRYPTOIRCD="$CRYPTOIRCD"
|
||||
SSLDIR="$SSLDIR"
|
||||
ZIPLINKS="$ZIPLINKS"
|
||||
ZIPLINKSDIR="$ZIPLINKSDIR"
|
||||
REMOTEINC="$REMOTEINC"
|
||||
CURLDIR="$CURLDIR"
|
||||
SHOWLISTMODES="$SHOWLISTMODES"
|
||||
@@ -926,13 +849,10 @@ SHUNNOTICES="$SHUNNOTICES"
|
||||
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
||||
GENCERTIFICATE="$GENCERTIFICATE"
|
||||
EXTRAPARA="$EXTRAPARA"
|
||||
ADVANCED="$ADVANCED"
|
||||
__EOF__
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
cat << __EOF__
|
||||
|
||||
_______________________________________________________________________
|
||||
@@ -948,8 +868,9 @@ cat << __EOF__
|
||||
|_______________________________________________________________________|
|
||||
| - The UnrealIRCd Team - |
|
||||
| |
|
||||
| * Bram Matthys (Syzop) syzop@unrealircd.org |
|
||||
| * Travis McArthur (Heero) heero@unrealircd.org |
|
||||
| * Stskeeps stskeeps@unrealircd.com |
|
||||
| * codemastr codemastr@unrealircd.com |
|
||||
| * Syzop syzop@unrealircd.com |
|
||||
|_______________________________________________________________________|
|
||||
__EOF__
|
||||
|
||||
|
||||
@@ -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.org&
|
||||
item_name=UnrealIRCd+Donation&no_shipping=1&cn=Comments&tax=0¤cy_code=USD>
|
||||
|
||||
Or simply send a payment through PayPal to:
|
||||
donation@unrealircd.org
|
||||
|
||||
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.
|
||||
+75
-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@ @CARESLIBS@
|
||||
CRYPTOLIB=@CRYPTOLIB@
|
||||
OPENSSLINCLUDES=
|
||||
|
||||
XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
|
||||
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @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,63 @@ 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/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 spamfilter.conf dccallow.conf $(IRCDDIR)
|
||||
$(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 +245,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.3 =
|
||||
===============================================
|
||||
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
|
||||
@@ -4,8 +4,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
@@ -21,8 +21,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias operserv { type services; };
|
||||
@@ -4,8 +4,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias rootserv { type services; };
|
||||
alias rs { target rootserv; type services; };
|
||||
|
||||
@@ -4,8 +4,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
@@ -4,8 +4,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
@@ -4,8 +4,8 @@ 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 memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
@@ -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,492 @@
|
||||
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
|
||||
|
||||
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
|
||||
|
||||
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
|
||||
esac
|
||||
|
||||
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
||||
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
||||
dnl to enable this without -Wall should be shot on sight.
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
|
||||
esac
|
||||
|
||||
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"
|
||||
;;
|
||||
HP-UX*[)]
|
||||
ac_cv_pic="-fPIC"
|
||||
;;
|
||||
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)
|
||||
dnl in6addr_any detection code taken from ratbox
|
||||
AC_MSG_CHECKING([for struct in6addr_any])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#define IN_AUTOCONF
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>]],
|
||||
[[struct in6_addr a = in6addr_any;]]
|
||||
)],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
AC_DEFINE(NO_IN6ADDR_ANY)
|
||||
]
|
||||
)
|
||||
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_FUNC_ALLOCA
|
||||
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_CHECK_FUNCS(inet_pton, AC_DEFINE(HAVE_INET_PTON))
|
||||
AC_CHECK_FUNCS(inet_ntop, AC_DEFINE(HAVE_INET_NTOP))
|
||||
dnl Check if it supports C99 style variable length arrays
|
||||
AC_CACHE_CHECK(if C99 variable length arrays are supported, ac_cv_varlen_arrays, [
|
||||
AC_TRY_COMPILE(,[
|
||||
int main() {
|
||||
int i = 5;
|
||||
int a[i];
|
||||
a[0] = 1;
|
||||
return 0;
|
||||
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
|
||||
])
|
||||
if test "$ac_cv_varlen_arrays" = "yes" ; then
|
||||
AC_DEFINE(HAVE_C99_VARLEN_ARRAY)
|
||||
fi
|
||||
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", AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`")
|
||||
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))
|
||||
AC_ARG_WITH(showlistmodes, [AC_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
|
||||
AC_DEFINE(LIST_SHOW_MODES))
|
||||
AC_ARG_WITH(topicisnuhost, [AC_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
|
||||
AC_DEFINE(TOPIC_NICK_IS_NUHOST))
|
||||
AC_ARG_WITH(shunnotices, [AC_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
|
||||
AC_DEFINE(SHUN_NOTICES))
|
||||
AC_ARG_WITH(no-operoverride, [AC_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
|
||||
AC_DEFINE(NO_OPEROVERRIDE))
|
||||
AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
|
||||
AC_DEFINE(DISABLE_USERMOD))
|
||||
AC_ARG_WITH(operoverride-verify, [AC_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
||||
AC_DEFINE(OPEROVERRIDE_VERIFY))
|
||||
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 TRE RELEASE!
|
||||
tre_version="0.7.2"
|
||||
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 || exit 1
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
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
|
||||
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
||||
cares_version="1.3.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old c-ares directory to force a recompile...
|
||||
rm -rf c-ares-$cares_version
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz c-ares.tar.gz
|
||||
else
|
||||
cp c-ares.tar.gz c-ares.tar.gz.bak
|
||||
gunzip -f c-ares.tar.gz
|
||||
cp c-ares.tar.gz.bak c-ares.tar.gz
|
||||
tar xf c-ares.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring c-ares library)
|
||||
cd c-ares-$cares_version
|
||||
./configure --prefix=$cur_dir/extras/c-ares || exit 1
|
||||
AC_MSG_RESULT(compiling c-ares resolver library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing c-ares resolver library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
CARESINCDIR="$cur_dir/extras/c-ares/include"
|
||||
AC_SUBST(CARESINCDIR)
|
||||
CARESLIBS="-L../extras/c-ares/lib -lcares"
|
||||
AC_SUBST(CARESLIBS)
|
||||
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
-7
@@ -119,13 +119,12 @@ 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, December 2002
|
||||
Bram Matthys <syzop@unrealircd.com> / January 2002, date
|
||||
|
||||
Thanks go to those persons not mentioned here who have added their advice,
|
||||
opinions, and code to IRC.
|
||||
|
||||
@@ -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
+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.
|
||||
|
||||
|
||||
+153
-2
@@ -1,2 +1,153 @@
|
||||
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).
|
||||
|
||||
==[ GENERAL GUIDELINES ]==
|
||||
First of all you need Microsoft Visual C++, compiling with cygwin
|
||||
is not supported.
|
||||
|
||||
VC++ 7.x (.NET) is highly recommended. VC 6 might work but it requires
|
||||
the Platform SDK (PSDK), it also has quite some bugs (there are 5 servicepacks!).
|
||||
Basically VC7 is just much easier and known to work, therefore we'll assume
|
||||
in this text that you are using it.
|
||||
|
||||
== Simple compile (no SSL/ZIP/Remote includes) ==
|
||||
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!
|
||||
|
||||
== Compiling modules ==
|
||||
1. Put your module (the .c file) in src\modules (eg: c:\dev\unreal3.2\src\modules).
|
||||
2. Start the Visual Studio .NET Command Prompt
|
||||
3. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2).
|
||||
4. Compile the module with:
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=<name>
|
||||
<name> is the name of the module WITHOUT the .c suffix, so if your
|
||||
module has the filename 'm_crappymod.c', then you use:
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=m_crappymod
|
||||
5. Done. A .dll file should have been created.
|
||||
|
||||
If you compiled with VC7 and used the official source (not a CVS version,
|
||||
but for example 3.2.1 source) then the module should work on all these
|
||||
versions (binary compatible) and you could for example put them on
|
||||
your website so users can download them.
|
||||
Such a module will work on both SSL and non-SSL, there should be no need
|
||||
for separate versions... unless, of course, you use SSL-specific code in your mod.
|
||||
DO NOT download a CVS version & compile your mod and then start
|
||||
distributing the .dll for use at another (non-CVS) version!!
|
||||
Every time we change a struct (and in some other cases) it makes the
|
||||
binary/module binary incompatible which practically means your module
|
||||
will CRASH or cause memory corruption and other subtle errors.
|
||||
|
||||
== COMPILING WITH ZIP LINKS / SSL / REMOTE INCLUDES SUPPORT ==
|
||||
First of all, DO NOT use any precompiled libs from the official
|
||||
zlib/openssl/curl sites. We require certain compile parameters.
|
||||
Versions downloaded from such sites will often CRASH.
|
||||
|
||||
The easiest is to download the UnrealIRCd development package
|
||||
which contains zlib, openssl and curl precompiled for you.
|
||||
See: www.vulnscan.org/unrealwin32dev/
|
||||
|
||||
Just extract it somewhere (eg: to c:\dev).
|
||||
Then, use compile flags to enable the features + specify where to look.
|
||||
Here are examples if you used c:\dev:
|
||||
ZIP: nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
|
||||
SSL: nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib"
|
||||
CURL: nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
|
||||
|
||||
Obviously you can (and probably will) combine all these options, like
|
||||
to build a zip+ssl+curl version (all in 1 line):
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
|
||||
USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib" USE_REMOTEINC=1
|
||||
LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
|
||||
|
||||
== COMPILING ZLIB/SSL/CURL YOURSELF ==
|
||||
This is quite some work.. With the precomiled method shown above it
|
||||
just takes like 5-10 minutes to have a zlib+ssl+curl Unreal version.
|
||||
But if you want to compile each of these libs manually then it will
|
||||
probably take an hour or so.
|
||||
|
||||
** THE INFORMATION BELOW IS OUTDATED, WE GOT RID OF MDd, USE MD INSTEAD
|
||||
AND DONT COMPILE OPENSSL W/DEBUG ***
|
||||
|
||||
== ZIP LINKS (zlib) ==
|
||||
[NOTE: precompiled dlls should NOT be used because they will cause a crash
|
||||
(this is due to different compile parameters / api call systems]
|
||||
To compile with ziplinks support you need to do the following:
|
||||
Download the SOURCE from http://www.winimage.com/zLibDll/
|
||||
(at the time of writing, http://www.winimage.com/zLibDll/zlib121.zip)
|
||||
and extract it to somewhere, for example c:\dev\zlib-1.2.1
|
||||
|
||||
Then, edit win32\makefile.msc:
|
||||
- Change -MD to -MDd
|
||||
- Add -D ZLIB_WINAPI to CFLAGS
|
||||
- so the result will be like:
|
||||
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
|
||||
- Then compile: nmake -f win32\Makefile.msc
|
||||
- Assuming the above step went fine, your zlib is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib-1.2.1" ZLIB_LIB_DIR="c:\dev\zlib-1.2.1"
|
||||
Obviously, change the paths if needed [1st = *.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== SSL (OpenSSL) ==
|
||||
[note: openssl requires perl to configure/compile!]
|
||||
- Download latest openssl (eg: openssl-0.9.7d.tar.gz) and extract it somewhere
|
||||
(we'll use c:\dev\openssl-0.9.7d in this example)
|
||||
- Open util\do_masm.bat, add 'debug' to the lines with 'mk1mf.pl' BUT be careful
|
||||
since it should NOT be the last word, so add it somewhere before that.
|
||||
For example: perl util\mk1mf.pl dll debug VC-W31-32 >ms\w31dll.mak
|
||||
- Start the
|
||||
- Now we go build openssl, run:
|
||||
ms\do_masm
|
||||
nmake -f ms\ntdll.mak
|
||||
- Assuming the above step went fine, your OpenSSL is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\openssl\inc32\openssl" OPENSSL_LIB_DIR="C:\Dev\openssl\out32dll.dbg"
|
||||
Obviously, change the paths if needed [1st=*.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== REMOTE INCLUDES (curl, c-ares) ==
|
||||
- Download latest c-ares source from http://daniel.haxx.se/projects/c-ares/
|
||||
Download latest curl source from http://curl.haxx.se/download.html
|
||||
Extract both somewhere (eg: c:\dev\c-ares-1.2.0 and c:\dev\curl-7.12.0)
|
||||
- Open vc\vc.dsw from your ares directory. Assuming you have VC7 it will ask
|
||||
whether it should convert the project, choose 'Yes to all'.
|
||||
- (solution explorer) areslib -> properties
|
||||
C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- at the time of writing 'ares_free_errmem.c' should be removed from the
|
||||
project file (solution explorer -> source files -> find the file + press
|
||||
delete). Also 'ares_version.c' and 'ares_cancel.c' should be added
|
||||
(solution explorer -> source files -> rightclick -> add -> add existing ->
|
||||
go down a few directories if needed and choose the file).
|
||||
- right click at 'areslib' in the solution explorer and select 'Build'.
|
||||
Assuming it compiled fine, we are done with c-ares.
|
||||
- Now go to the curl directory and open lib\curllib.dsw. Choose 'Yes to all'
|
||||
again when asked about converting.
|
||||
- Open config-win32.h (@header files in solution explorer) and add:
|
||||
#define USE_ARES 1
|
||||
- Open include\curl\multi.h and change the line with:
|
||||
#include <winsock2.h>
|
||||
to:
|
||||
#include <winsock.h>
|
||||
- (solution explorer) curllib -> properties
|
||||
- C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- C/C++ -> general -> additional include directories:
|
||||
add the path to your <c-ares-directory> (eg: C:\Dev\c-ares-1.2.0).
|
||||
- linker -> general -> additional library directories:
|
||||
add the path to your <c-ares-directory>\vc\areslib\Debug,
|
||||
for example C:\Dev\c-ares-1.2.0\vc\areslib\Debug.
|
||||
- linker -> input -> additional dependencies:
|
||||
add: areslib.lib
|
||||
- linker -> input -> Module defenition file:
|
||||
set to: libcurl.def
|
||||
Done with editting properties.
|
||||
- Now: Build -> rebuild solution, everything should compile fine.
|
||||
- Now, to compile UnrealIRCd with remote includes you do something like this:
|
||||
nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="C:\Dev\curl-7.12.0\include" LIBCURL_LIB_DIR="C:\Dev\curl-7.12.0\lib\Debug"
|
||||
|
||||
@@ -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,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,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
@@ -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,764 @@
|
||||
/*
|
||||
* example.conf by Alexander Ganchev AKA Peace (unrealirc@gmail.com).
|
||||
* $Id$
|
||||
*
|
||||
* Prednaznachen e za Unreal3.2 i versii sled nego
|
||||
* Dobre priqteli. Tova e noviqt example.conf.Izglejda kato nqkoi fail C++ (shega).
|
||||
* Kakto i da e..vreme e da go configurirame. Trudnichko e kato za purvi put, no
|
||||
* sus malko praktikuvane i chetene shte mu sviknete.
|
||||
*
|
||||
* Kopiraite tozi fail vuv vashata glavna direktoriq i go prekrustete na 'unrealircd.conf'.
|
||||
* VAJNO: Vsichki linii (tova sa zavurshvashtite na vseki red),
|
||||
* {trqbwa da zavurshvat sus ; a kraq na samata liniqta slagate i } - demek nakraq stava };
|
||||
* MOLQ PROCHETETE doc/unreal32docs.html!Online versiqta shte namerite tuk -
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Sudurja dosta informaciq za config faila: dava vi informaciq za vseki blok,stoinost, i taka natatuka..
|
||||
*/
|
||||
|
||||
/* Tipove Komentari */
|
||||
#Comment type 1 (Shell type)
|
||||
// Comment type 2(C++ style)
|
||||
/* Comment type 3 (C Style) */
|
||||
#tezi linii shte budat ignorirani ot ircd-to.
|
||||
|
||||
/*
|
||||
* UnrealIRCd poddurja modulite,clock.dll & commands.dll
|
||||
* zavisimost ot vashata operacionna sistema izberete za Windows ili za *NIX shte izpolzvate
|
||||
* Nezavisimo ot Operacionnata vi sistema trqbva da mahnete //- predi loadmodule i na 2-ta reda.
|
||||
*/
|
||||
|
||||
/* FOR *NIX, uncomment the following 2lines: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FOR Windows, uncomment the following 2 lines: */
|
||||
loadmodule "modules/commands.dll";
|
||||
loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Sushto taka moje da vkliuchite i drugi configuracionni failove.
|
||||
* help.conf vi se qvqva komadata /helpop text. The badwords.*.conf
|
||||
* falovete sudurjat vsichki "badword kato slojite mod +G v kanal
|
||||
* spamfilter.conf sudurja nqkoi dobri pravila za zabrani za puskane na troianski kone.
|
||||
* Ako iskate mojete da gi vkliuchite tqh :
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/* NEW: me {}
|
||||
* OLD: M:Line
|
||||
* me {} opredelq imeto,opisanie i cifrata na vashiqt unrealircd server.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Description";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Ako linkvate Servera si,Cifrata moje bi nqma da bude izpolzvaema ot drugite serveri vuv mrejata
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "Imeto Na Servera vi";
|
||||
info "Opisanie Na Servera";
|
||||
numeric Cifra po izbor(po malka e po dobre);
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: admin {}
|
||||
* OLD: A:Line
|
||||
* Admin dava informaciq za server admin-a na mrejata.
|
||||
* Mojete da slojite mnogo linii pod grafata 'admin {' ako iskate.
|
||||
* Sintaksisa kakto sledva:
|
||||
* admin {
|
||||
* "Purva liniq";
|
||||
* "Vtora liniq";
|
||||
* [drugi]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"TUk Slojete informaciq za admina";
|
||||
"Tuk mojete da slojite i ime ili email";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: class {}
|
||||
* OLD: Y:line (old was confusing)
|
||||
* Class e grupa nastroiki za vashata vruzka.Primer,Server connect-vane,max clienti i drugi.
|
||||
* delqt se na 2 Class-a. Class Cliends & Servers.
|
||||
* {
|
||||
* pingfreq ((kolko chesto da pignesh user/server v sekundi);
|
||||
* maxclients (vuzmojnite connekcii za opredelen 'Class');
|
||||
* sendq (maksimuma ot hora v edna opashka);
|
||||
* 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; /* Maksimum serveri koito moje da se link-nat */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Sekundite mejdu vseki opit za connect-vane */
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow {}
|
||||
* OLD: I:Line
|
||||
* Tazi Opciq opredelq koi shte ima pravo da vliza na servera vi...
|
||||
* Mojete da kontrolirate vashite klienti,da im slagate paroli i drugi.
|
||||
* control and/or set a password.
|
||||
* Syntax is as follows:
|
||||
* allow {
|
||||
* ip (razresheno ip za izpolzvane);
|
||||
* hostname (host mask);
|
||||
* class (class to send them to [see class {}]);
|
||||
* password "(parola)"; (po izbor)
|
||||
* maxperip (pozvoleni vruzki ot edno 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 "Test";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow channel {}
|
||||
* OLD: chrestrict
|
||||
* Razreshenie na userite da vlizat v opredelen kanal...
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "imeto na kanala";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#Free";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: oper {}
|
||||
* OLD: O:Line
|
||||
* Opredelete koi da bude IRC Operator na servera vi
|
||||
* IRC operators tova sa tochno tezi hora koito da se grijat za servera,
|
||||
* da go poddurjat i da se connect-vat redovno.
|
||||
* Sinktaksisut e kakto sledva :
|
||||
* 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
|
||||
* {
|
||||
* (tuk shte slagate flagovete*);
|
||||
* };
|
||||
* OR
|
||||
* flags "old type flags, like OAaRD"; (sushto moje da slagate i samo bukvite)
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Za lista s oper flagovete, poglednete doc/unreal32docs.html#operblock
|
||||
*[Zaduljitelno da se prochete]
|
||||
*/
|
||||
|
||||
oper admin {
|
||||
class clients;
|
||||
from {
|
||||
userhost *@*;
|
||||
};
|
||||
password "Test";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
coadmin;
|
||||
can_globalkill;
|
||||
can_ungline;
|
||||
can_gline;
|
||||
can_kline;
|
||||
can_unkline;
|
||||
can_rehash;
|
||||
can_globops;
|
||||
can_localroute;
|
||||
can_wallops;
|
||||
can_localkill;
|
||||
can_localnotice;
|
||||
can_globalroute;
|
||||
can_globalnotice;
|
||||
can_dccdeny;
|
||||
can_setq;
|
||||
services-admin;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: listen {}
|
||||
* OLD: P:Line
|
||||
* Tuk shte opredelite porta na vasheto ircd prez koito
|
||||
* da vlizat useri/serveri.
|
||||
* Siktaksisut e kakto sledva :
|
||||
* listen (ip):(nomera na porta)
|
||||
* {
|
||||
* 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
|
||||
*/
|
||||
|
||||
/* BELEJKI ZA SSL PORTOVE : SSL portovete sa dosta nestandartni,
|
||||
* osven nomera na 'high-SSL portovete', nqkoi hora kazvat che mojej da gi startirash
|
||||
* na 994 port, zashtoto tova e oficialniqt SSL port..no tova izskva root!Osven tova port 194
|
||||
* e oficialniqt irc port i mojete nqkoi put da probvate da vidite dali ircd-to e startirano
|
||||
* na tozi port.
|
||||
* Nashiqt suvet e da izpolzvate port 6697 za SSL, toi se izpolzva vuv nqkoi mreji i
|
||||
* mojete da otvorite mnogo SSL portove ako iskate, no izpolzvaite i 6697 po standart.
|
||||
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/*
|
||||
* NEW: link {}
|
||||
* OLD: C/N:Lines
|
||||
* Tezi opcii sa za link-vane na serveri
|
||||
* BELEJKA: Dva servera se nujdaqt ot LINK {} za da budat linknati bez problemi!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, moshete da slojite sushto i * );
|
||||
* hostname (ip nomer/hostmask);
|
||||
* bind-ip (kum koe ip da bude svurzano sled kato se connect-ne, ili slojete * );
|
||||
* port (port za svurzvane (moje da slojite vseki);
|
||||
* hub (ako servera vi e hub,slojete * , ili servermask-a);
|
||||
* [ili leaf *;]
|
||||
* password-connect "(parola za svurzvane)";
|
||||
* password-receive "(povtorete parolata)";
|
||||
* class (class);
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* Ako izpolzvate SSL,vie mojete da izberete shifur za da izpolzvate SSL mode
|
||||
* * Lista shte namerite vuv "openssl ciphers",samostoqtelen shifur sus :'s
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link services.Test.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Belejka: vie ne mojete da izpolzvate autoconnect kogato linkvate serveri
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEW: ulines {}
|
||||
* OLD: U:Line
|
||||
* U-liniite davat poveche komandi na serverut vi,Uliniite se slagat samo za services/stats
|
||||
* serveri i NIKOGA za normalnite UnrealIRCd serveri!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.Test.org;
|
||||
stats.Test.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: drpass {}
|
||||
* OLD: X:Line
|
||||
* Tuk shte slagate parolite za /die i /restart na servera.
|
||||
* Sintaksusut e kakto sledva:
|
||||
* drpass {
|
||||
* restart "(parola za restart na servera)";
|
||||
* die "(parola za die na servera)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: log {} OLD: nishto ne se kazva otnosno tova kude i kakvo da logva.Mojete
|
||||
* gi slagate ako iskate
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Iztriite log faila i napravete nov koito da stiga do 2MB.
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* Chrez tezi nastroiki moje da napravite prehod ot /nickserv,/chanserv i drugi kum drugi nickove.
|
||||
* FLAGS: services,stats,normal
|
||||
*
|
||||
** Syntax:
|
||||
* alias "Ime" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
* [BELEJKA: Mojete da vkliuchite i opredeleniq,za celta poglednete doc/unreal32docs.html section 2.9]
|
||||
*/
|
||||
|
||||
// Tova posochva komandata /nickserv-a na user-a NickServ koito e svurzan s set::services-server server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ako iskate komandite da sa na drug nick mojete da promenite nick-a
|
||||
//alias ChanServ {type services; };
|
||||
|
||||
// Posochva /StatServ na user-a StatServ koqto svurzva set::stats-server server
|
||||
//alias StatServ {type stats; };
|
||||
|
||||
// Posochva /superbot na user-a SuperBot
|
||||
//alias SuperBot {type normal; };
|
||||
|
||||
/* Standart 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
|
||||
* Tezi moje da posochite zamestiteli na /identify,/services, i drugi...
|
||||
* Syntax:
|
||||
* alias "Ime" {
|
||||
* format "format string" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* parameters "parameters to send";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Tova se pokazva otdelno, zashtoto vypreki che ima syshtoto ime kato predishnata direktiva
|
||||
*e dosta razlichno po otnoshenie na sintaksis, vypreki che osigurqva prosta funkciq i raz4ita na standartni alias-i za da raboti.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* alias::format ditektivata e obichaen izraz.Pyrviq format se svyrzva s
|
||||
* komandata /identify kogato pyrviq simvol e "#". Sled tova se izprashta do chanserv
|
||||
* alias-a s parametri identify. %1-. Togava vtoriq ormat se svyrzva s komandata /identify
|
||||
* kogato pyrviq simvol ne e "#".
|
||||
* Togava se izprashta do nickserv alias-a s parametri identify %1-.
|
||||
|
||||
/* Standard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
* OLD: T:Line
|
||||
* Tezi nastroki sa za razlichni 'motd' i 'rules' failove
|
||||
* v zavisimost ot klientskata hostmask-a.
|
||||
* Sintaksisut e kakto sledva:
|
||||
* tld {
|
||||
* * mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*;
|
||||
motd "ircd.motd";
|
||||
rules "ircd.rules";
|
||||
};
|
||||
|
||||
/* BELEJKA: vzemete nqkoi fail primer - vzemete tao.of.irc.doc..sled tova go kopiraite v
|
||||
* glavnata direktoriq na Unrealircd-to vi.Prekrustete go na irc.motd..Napravete po sushtiq
|
||||
* nachin i ircd.rules (FAILOVETE SA ZADULJITELNI)
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEW: ban nick {}
|
||||
* OLD: Q:Line
|
||||
* Ako slojite ban na nickname to veche tozi nick stava neizpolzvaem.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* ban nick {
|
||||
* mask "(nick koito jelaete da zabranite)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "Test";
|
||||
reason "Test Nickname";
|
||||
};
|
||||
/*
|
||||
* NEW: ban ip {}
|
||||
* OLD: Z:Line
|
||||
* Ban na ip.
|
||||
* Sintaksis:
|
||||
* ban ip { mask (ip nomer/hostmask); reason "(prichina)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 100.100.200.300;
|
||||
reason "Wrong Ip";
|
||||
};
|
||||
/*
|
||||
* NEW: ban server {}
|
||||
* OLD: Server Q:Line
|
||||
* Slagane na ban na server.Ako servera e link-nat kum otdalecheniq server
|
||||
* (toest tozi) localniqt server shte se diskonect-ne avtormatichno.
|
||||
* Syntax is as follows:
|
||||
* ban server {
|
||||
* mask "(Imeto na servera)";
|
||||
* reason "(Prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask irc.microsoft.com;
|
||||
reason "Get out of here";
|
||||
};
|
||||
/*
|
||||
* NEW: ban user {}
|
||||
* OLD: K:Line
|
||||
* Tazi opciq pozvolqva da zabranite dostupa na user do vashiqt server
|
||||
* Sintaksis:
|
||||
* ban user { mask (hostmask/ip nomer); reason "(Prichina)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.microsoft.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
/*
|
||||
* NEW: ban realname {}
|
||||
* OLD: n:Line
|
||||
* Tazi opciq vi dava pravo da zabranite dostupa na user ot opredeleno 'realname'.
|
||||
* Sintaksis:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "test";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7";
|
||||
reason "virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* BELEJKA ZA VSICHKI BANOVE, mojete da povtarqte procedurata sus razlichni nickove!
|
||||
*
|
||||
* NEW: except ban {}
|
||||
* OLD: E:Line
|
||||
* Nick koito ne moje da bude bannat.
|
||||
* Sintaksis:
|
||||
* except ban { mask (ident@host); }
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
/*
|
||||
* NEW: deny dcc {}
|
||||
* OLD: dccdeny.conf
|
||||
* Izpolzvaite go za da zabranite dcc.Predpazva vi ot virusi
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "Fail koito shte blokirate (ie, *exe)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "Sub7";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny channel {}
|
||||
* OLD: N/A (NEW)
|
||||
* Zabranqva kanali po vash izbor.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(kanal)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "hackers";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* Tazi nastroika vi slaga Falshivo ip.Slaga se za hora koito ne sa operatori
|
||||
* ili puk za operatori (za po murzelivite /sethost :P
|
||||
* Sintaksis:
|
||||
* 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 *@*;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Mojete da vkliuchite i drugi konfiguracionni failove */
|
||||
/* vkliuchete "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "Imeto na Mrejata vi";
|
||||
default-server "Imeto na Servera";
|
||||
services-server "Services.servera";
|
||||
stats-server "Stats.Servera";
|
||||
help-channel "#Kanal za pomosht";
|
||||
hiddenhost-prefix "skrithost";
|
||||
/* prefix-quit "quit na userite"; */
|
||||
/* Cloak Keys se slagat na vsichki serveri ot mrejata.
|
||||
* Te se izpolzvat za po golqma sigurnost.Trqbva da budat izbrani 3 reda
|
||||
* ot 5-100 simvola i da sudurjat SMESENI golemi,malki bukvi i cifri...
|
||||
* V primera e posocheno edin takuv 'Cloak Key'..napishete oshte 2
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "Host za localen operator";
|
||||
global "Host za globalen operator";
|
||||
coadmin "Host za coadmin";
|
||||
admin "Host za admin";
|
||||
servicesadmin "Host za services-admin";
|
||||
netadmin "Host za netadmin";
|
||||
host-on-oper-up "yes\no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "slojete adres za kline";
|
||||
auto-join "#kanal za auto-join";
|
||||
modes-on-connect "+iw";
|
||||
modes-on-oper "+wgs";
|
||||
oper-auto-join "#Kanal za auto-join na operatorite";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Ako jelaete da proverqva identa mahnete */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Tova e minimalnoto vreme v koeto user moje da se svurje sled kato izleze ot servera.
|
||||
* Tova shte pomogne da se spre spam-a */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Napravete statichen quit koito da zamestva drugite quit-ove na userite.
|
||||
custom quits are allowed on local server */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Mojete da blokirate 'Part-reason-ite' kato slojite nqkakuv text po vash izbor */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Mojete da slagate 'stats' ili inache kazano nqkoi flagove da budat razresheni i
|
||||
* izpolzvaemi samo ot operite. Primer za tova sa - klines,glines i shuns
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dolniqt primer pokazva che mojete da slojite limit 3 svurzvaniq
|
||||
za 60 sec (na host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 smenqniq na nicka za 60 seconds (po default) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* vremetraeneto e po default *line ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default prichina */
|
||||
virus-help-channel "#help"; /* Kanal za skanirane na virusi */
|
||||
/* s izkliuchenie "#help"; drugite kanali se osvobojdavat ot filtrirane */
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Ako imate problem ili nujda ot pomosht?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- sudurja 80% ot vuprosite vi!
|
||||
* 3) Ako imate problem moje da se oburnete i kum irc.ircsystems.net #unreal-support,
|
||||
* no purvo PROCHETETE HELP FAILA i 'FAQ'.
|
||||
*/
|
||||
@@ -0,0 +1,783 @@
|
||||
/*
|
||||
* 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.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supports modules, loading some of them is required.
|
||||
* You need at least the commands module and a cloaking module.
|
||||
*/
|
||||
|
||||
/* FOR *NIX, uncomment the following 2lines: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FOR Windows, uncomment the following 2 lines: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* 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";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* For a list of oper flags, see doc/unreal32docs.html#operblock
|
||||
* [HIGHLY recommended to read]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
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;
|
||||
|
||||
/* NOTE: If you are on an IRCd shell with multiple IP's you are
|
||||
* likely to get 'Address already in use' errors in your log
|
||||
* and the ircd won't start. This means you MUST bind
|
||||
* to a specific IP instead of '*', so for example:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Obviously, replace the IP with the IP that was assigned to you.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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
|
||||
*
|
||||
* 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;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* This allows you to set command aliases such as /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "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 {
|
||||
target "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-server 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" {
|
||||
* target "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 "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "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. You may also specify %n which is replaced by
|
||||
* the user's nickname.
|
||||
*/
|
||||
|
||||
/* Standard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "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";
|
||||
};
|
||||
|
||||
/* note: you can just delete the example block above,
|
||||
* in which case the defaults motd/rules files (ircd.motd, ircd.rules)
|
||||
* will be used for everyone.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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"; */
|
||||
/* 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 5-100 characters
|
||||
* (10-20 chars is just fine) and must consist of lowcase (a-z),
|
||||
* upcase (A-Z) and digits (0-9) [see first key example].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
/* 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,789 @@
|
||||
/*
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
*
|
||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
||||
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||
* damit umzugehen, aber mit ein Wenig Übung und sorgfältigem Lesen sollte das zu
|
||||
* verstehen sein.
|
||||
*
|
||||
* Diese Datei ist einfach in das Hauptverzeichnis des UnrealIRCD zu kopieren und in
|
||||
* 'unrealircd.conf' umzubenennen.
|
||||
*
|
||||
* ZU BEACHTEN: Sämtliche Zeilen außer der mit einer '{' zu Beginn werden mit dem Zeichen
|
||||
* ';' beendet, auch die Zeile mit '}'. (Beliebter Syntaxfehler!)
|
||||
* Kommentar Zeilen werden vom IRCd ignoriert.
|
||||
*
|
||||
* BITTE LESE die doc/unreal32docs.html! Sie ist auch online erhältlich bei:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Diese Datei enthält zahlreiche ergänzende Informationen über jeden Block, Variablen usw.
|
||||
* Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net)/
|
||||
|
||||
/* Kommentar Typen */
|
||||
#Kommentar Typ 1 (Shell Typ)
|
||||
// Kommentar Typ 2(C++ Stil)
|
||||
/* Kommentar Typ 3 (C Stil) */
|
||||
#Solche Zeilen vom Typ 1, 2 oder 3 werden vom ircd ignoriert.
|
||||
|
||||
/*
|
||||
* UnrealIRCd arbeitet mit Modulen, die geladen werden, wenn sie benötigt werden.
|
||||
* Man benötigt mindestens das commands Modul und ein cloaking Modul.
|
||||
*/
|
||||
|
||||
/* FÜR *NIX (Unix, Linux, Xenix etc.), sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FÜR Windows sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Man kann über eine 'include' Anweisung auch weitere Konfigurationsdateien einfügen.
|
||||
* help.conf enthält sämtliche /helpop Texte. Die badwords.*.conf filtert alle badword
|
||||
* Einträge für den Modus +G...
|
||||
* Die spamfilter.conf enthält einige wirksame Regeln für aktuelle Trojaner.
|
||||
* Falls man diese Dateien mit einfügen möchte:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEU: me {}
|
||||
* ALT: M:Line
|
||||
* me {} legt Name, Beschreibung und eindeutige Nummer ('numeric') für diesen Server fest.
|
||||
* Syntax ist wie folgt:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Beschreibung";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Falls der Server mit anderen gelinkt wird, darf muss die Nummer bei 'numeric' eindeutig
|
||||
* sein, darf also von keinem anderen Server im Netzwerk verwendet werden.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: admin {}
|
||||
* ALT: A:Line
|
||||
* Admin liefert Informationen über den Server Administrator. Man kann
|
||||
* so viele Zeilen unter 'admin {' angeben, wie man will.
|
||||
* Syntax ist wie folgt:
|
||||
* admin {
|
||||
* "erste Zeile";
|
||||
* "zweite Zeile";
|
||||
* [usw]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: class {}
|
||||
* ALT: Y:line (alte Form war verwirrend)
|
||||
* Hiermit werden Klassen und ihre Einstellungen festgelegt. Eine Klasse ist eine Gruppen
|
||||
* Einstellung für Verbindungen. So kann man beispielsweise Server Verbindungen in einer
|
||||
* eigenen Klasse behandeln, statt zusammen mit Clients.
|
||||
* Syntax ist wie folgt:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (wie oft in Sekunden wird ein user/server angepingt);
|
||||
* maxclients (wie viele Verbindungen sind in dieser Klasse möglich);
|
||||
* sendq (maximale send Queue einer Verbindung);
|
||||
* recvq (maximale Empfangs Queue einer Verbindung [Flood Kontrolle!]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Wieviele Servers können gleichzeitig gelinkt sein */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Wieviele Sekunden zwischen jedem Verbindungsversuch */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow {}
|
||||
* ALT: I:Line
|
||||
* Hier wird festgelegt, welche Verbindungen erlaubt sind...
|
||||
* Grundlegend kann man damit Clienten erlauben, zu verbinden und hat etwas Kontrolle
|
||||
* Syntax ist wie folgt:
|
||||
* allow {
|
||||
* ip (ip Maske für allow);
|
||||
* hostname (host Maske);
|
||||
* class (Klasse, die zugewiesen wird [siehe class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (wie viele Verbindungen je 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;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow channel {}
|
||||
* ALT: chrestrict
|
||||
* Erlaubt es Usern, einen Channel zu betreten...
|
||||
* Ist wie eine Ausnahme von 'deny channel'.
|
||||
* Syntax ist wie folgt:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: oper {}
|
||||
* ALT: O:Line
|
||||
* Legt einen IRC Operator fest
|
||||
* IRC Operatoren halten den Server in Ordnung, warten ihn und halten die Verbindung
|
||||
* zum Netzwerk.
|
||||
* Syntax ist wie folgt:
|
||||
* oper (login) {
|
||||
* class (Klasse, die zugewiesen wird, falls anders als meine, wird eine neuee Klasse
|
||||
* zugewiesen);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (Flags hier*);
|
||||
* };
|
||||
* ODER
|
||||
* flags "alte Form von Flags, wie OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Die Liste möglicher Oper Flags kann in doc/unreal32docs.html#operblock nachgelesen werden
|
||||
* [WIRKLICH empfehlenswert, zu lesen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: listen {}
|
||||
* ALT: P:Line
|
||||
* Legt den Port fest, an dem der ircd 'lauscht', um Usern/Servern zu erlauben, eine
|
||||
* Verbindung zum Server aufzunehmen.
|
||||
* Syntax ist wie folgt:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* oder für ein einfaches listen:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* ACHTUNG: für ipv6 ips (3ffe:b80:2:51d::2 etc), benutze listen [ip]:port;
|
||||
*
|
||||
* Das funktioniert ebenfalls.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ZU BEACHTEN BEI SSL PORTS: SSL Ports sind nicht standardisiert.
|
||||
* Es wird oft gesagt, man solle den Port 994 benutzen, weil dies der
|
||||
* offizielle SSL Port sei. Aber das erfordert root Rechte! Andererseits
|
||||
* ist der Port 194 der offizielle Port und wann hat man je einen Ircd
|
||||
* auf diesem Port laufen gesehen?
|
||||
* Unsere Empfehlung ist, den Port 6697 für SSL zu benutzen, wie es auch
|
||||
* bei vielen anderen Netzwerken gemacht wird und für z.B. StunTour benutzt wird.
|
||||
* Man kann so viele SSL Ports öffnen, wie man will, aber wenn man (auch) den Port
|
||||
* 6697 benutzt, hilft man mit, die Welt ein klein wenig zu standardisieren ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ACHTUNG: Wird der IRCd auf einer Shell mit verschiedenen IP's ausgeführt, kann
|
||||
* die Fehlermeldung 'Address already in use' ('Adresse wird schon benutzt')
|
||||
* in den Logfiles auftauchen und der IRCd startet nicht.
|
||||
* Das bedeutet, dass man eine spezifische Adresse anstelle von '*' definieren
|
||||
* MUSS, wie z.B.:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Es sollte klar sein, dass die IP durch die zu ersetzen ist, die einem
|
||||
* zugewiesen ist.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: link {}
|
||||
* ALT: C/N:Lines
|
||||
* Hiermit wird ein okay für eine Server Verbindung festgelegt.
|
||||
* ACHTUNG: BEIDE SERVER MÜSSEN EINE LINK {} EINSTELLUNG HABEN, UM KORREKT ZU VERBINDEN!
|
||||
* Syntax ist wie folgt:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * funktioniert auch);
|
||||
* hostname (ip Nummer/Hostmaske);
|
||||
* bind-ip (Welche IP soll zum Verbinden benutzt werden, oder *);
|
||||
* port (Port, zu dem verbunden werden soll);
|
||||
* hub (Wenn dies ein Hub ist, funktioniert * , oder Servermasken);
|
||||
* [oder leaf *;]
|
||||
* password-connect "(Passwort zu senden)";
|
||||
* password-receive "(Passwort, welches wir emfangen sollten)";
|
||||
* class (Klasse, in die Server sollen);
|
||||
* options {
|
||||
* (options hier*);
|
||||
* };
|
||||
* /* Wird SSL benutzt, kann bestimmt werden, welche Verschlüsselung im SSL
|
||||
* * Modus zu benutzen ist
|
||||
* * Bei mehreren "openssl ciphers" sind die einzelnen Verschlüsselungen
|
||||
* * durch ':' zu trennen
|
||||
* */
|
||||
* 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 {
|
||||
/* Achtung: autoconnect sollte nicht benutzt werden, wenn man Services linkt */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEU: ulines {}
|
||||
* ALT: U:Line
|
||||
* U-lines geben Servern mehr Möglichkeiten/Befehle, sie sollten NUR für Services/Stats
|
||||
* gesetzt werden und NIEMALS für normale UnrealIRCd Server!
|
||||
* Syntax ist wie folgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: drpass {}
|
||||
* ALT: X:Line
|
||||
* Hiermit werden die Passworte für /die und /restart festgelegt.
|
||||
* Syntax ist wie folgt:
|
||||
* drpass {
|
||||
* restart "(Passwort für Restart)";
|
||||
* die "(Passwort für die (die = 'sterben' = Abschaltung))";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||
* beliebig viele festlegen.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Lösche das Logfile und starte ein neues, wenn 2MB erreicht wurden,
|
||||
nichts festlegen, wenn man immer das gleiche Log will */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier kann man Befels Aliasse festlegen, wie z.B. /nickserv, /chanserv usw.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ACHTUNG: Mann kann hier auch eine Datei mit vordefinierten Aliassen per include
|
||||
* einfügen. Siehe auch: doc/unreal32docs.html Abschnitt 2.9]
|
||||
*/
|
||||
|
||||
// Hiermit wird der Befehl /nickserv an den User NickServ geleitet, welcher zur Einstellung set::services-server server verbunden ist
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Soll der Befehl auf denselben Nick wie das der Befehl leiten, kann man den Nick auslassen
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// leitet den /statserv Befehl an den User StatServ aus set::stats-server server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// leitet den /superbot Befehl an den User SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier können Befehls Aliase, wie z.B.: /identify, /services, usw festgelegt werden.
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* target "zeigt auf";
|
||||
* type aliastype;
|
||||
* parameters "zu sendende Parameter";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Die nachfolgenden Zeilen eigens deshalb, um zu zeigen, dass trotz gleichem Namens die vorherige Anweisung
|
||||
* völlig unterschiedlich in der Syntax ist, obwohl eine ähnliche Funktion unterstützt wird.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Die alias::format Anweisung ist ein regulärer Ausdruck. Das erste Format passt auf den /identify Befehl,
|
||||
* wenn das erste Zeichen ein # ist. Dann wird dies an den chanserv alias mit dem Parameters IDENTIFY
|
||||
* %1- übergeben. Das zweite Format passt auf den /identify Befehl, wenn das erste Zeichen kein # ist. Danach
|
||||
* wird der Befehl an den nickserv alias mit den Parameters IDENTIFY %1- geleitet.
|
||||
*/
|
||||
|
||||
/* Die alias::format::parameters Scripting Sprachen ähnlich. %N (wobei N einen Nummer ist) repräsentiert einen
|
||||
* Parameter, der an den Befehl (in diesem Fall /identify) zu senden ist. Wird %N- angegeben, bedeutet dies
|
||||
* alle Parameter vom N bis zum letzten Parameter des Strings. Man kann ebenso %n angeben, welches durch den
|
||||
* Nicknamen des users ersetzt wird.
|
||||
*/
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* NEU: tld {}
|
||||
* ALT: T:Line
|
||||
* Hiermit werden unterschiedliche motd und rules Dateien in Abhängigkeit
|
||||
* von der Hostmaske des Clients eingestellt.
|
||||
* Syntax ist wie folgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* zu beachten: Will man nur die default motd/rules Dateien (ircd.motd, ircd.rules)
|
||||
* für jedermann benutzen, genügt es, den obigen Beispiel Block einfach zu löschen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: ban nick {}
|
||||
* ALT: Q:Line
|
||||
* Bannt einen Nicknamen, so dass dieser nicht benutzt werden kann.
|
||||
* Syntax ist wie folgt:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserviert für Services";
|
||||
};
|
||||
/*
|
||||
* NEU: ban ip {}
|
||||
* ALT: Z:Line
|
||||
* Bannt eine IP, so dass diese nicht mehr zum Netzwerk verbinden kann.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip Nummer/Hostmaske); reason "(Grund)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Server nicht mehr gelinkt";
|
||||
};
|
||||
/*
|
||||
* NEU: ban server {}
|
||||
* ALT: Server Q:Line
|
||||
* Nimmt einem Server die Möglichkeit, zum Neztwerk zu verbinden.
|
||||
* Wenn der Server zu einem anderen Server des Netzwerkes linkt, wird der
|
||||
* lokale server die Verbindung zum Netzwerk trennen.
|
||||
* Syntax ist wie folgt:
|
||||
* ban server {
|
||||
* mask "(Server Name)";
|
||||
* reason "(angegebener Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Hau ab hier.";
|
||||
};
|
||||
/*
|
||||
* NEU: ban user {}
|
||||
* ALT: K:Line
|
||||
* Bewirkt, dass ein User mit einer bestimmten Maske nicht mehr zum Server verbinden kann.
|
||||
* Syntax:
|
||||
* ban user { mask (Hostmaske/ip Nummer); reason "(Grund)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: ban realname {}
|
||||
* ALT: n:Line
|
||||
* Verhindert, dass ein bestimmter Realname benutzt werden kann.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(Realname)";
|
||||
* reason "(Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* Sämtliche Banns dürfen durch zusätzliche Einträge wiederholt werden!
|
||||
*
|
||||
* NEU: except ban {}
|
||||
* ALT: E:Line
|
||||
* Diese Maske ist von Banns ausgenommen.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* except ban {} kann so oft angegeben werden, wie man für verschiedene Hosts will.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny dcc {}
|
||||
* ALT: dccdeny.conf
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Virten aufzuhalten.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "zu sperrende Datei(ie, *exe)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Möglicherweise Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny channel {}
|
||||
* ALT: N/A (NEW)
|
||||
* Verhindert, dass angegebene Channels benutzt werden können.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez sind illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: vhost {}
|
||||
* ALT: Vhost.conf file
|
||||
* Setzt eine Fake IP für Nicht-Opers, oder opers, die zu bequem für /sethost sind.... :P
|
||||
* Syntax:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host um die Nutzung zu gestatten);
|
||||
* };
|
||||
* login (Loginname);
|
||||
* password (Passwort);
|
||||
* };
|
||||
* um den vhost zu nutzen, mache /vhost (login) (password) im IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Man kann hier weitere Config Dateien einfügen */
|
||||
/* 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"; */
|
||||
/* Cloak keys müssen angegeben sein und sie müssen die selben auf allen Servern
|
||||
* im Netzwerk sein. Sie werden zur Generierung der maskierten Hosts verwendet
|
||||
* und sie sollten geheim gehalten werden.
|
||||
* Die Keys sollten 3 zufällige Strings von 5-100 Zeichen Länge sein (10-20 Zeichen
|
||||
* (sind ganz ok) und müssen aus Kleinbuchstaben(a-z), Großbuchstaben (A-Z) und
|
||||
* Ziffern (0-9) bestehen [wie im ersten Key Beispiel].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"und noch einer";
|
||||
"und noch einer";
|
||||
};
|
||||
/* 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 spezifische Configuration */
|
||||
|
||||
set {
|
||||
kline-address "setze.diese.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;
|
||||
/* Man kann hier ident checking aktivieren, wenn man will */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung
|
||||
* senden darf (Das wird offentlich helfen, Spam zu verhindern */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Macht die Meldung statisch, die in allen Quit Meldungen angezeigt wird.
|
||||
Somit sind keine individuellen Quts auf dem lokalen Server mehr erlaubt */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Man kann auch sämtliche Part Meldungen blocken, indem man dies auskommentiert
|
||||
* und 'yes' sagt oder einen anderen Text angibt (z.B. "Bye bye!")
|
||||
/* static-part yes; */
|
||||
|
||||
/* Hiermit kann man bestimmte stats auf ausschliesslich Opers beschränken. Für
|
||||
* alle Stats kann man * benutzen. Wenn man es weglässt, können alle User alle
|
||||
* Stats abfragen. Eine vollständige Liste erhält man mit dem Befehl '/stats'.
|
||||
* Manche Admins entfernen 'kGs' und erlauben so normalen Usern die Anzeige von
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dieses Beispiel setzte ein Limit von 3 Verbindungen je 60s (pro Host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti Flood Schutz */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 Nickänderungen pro 60 Sekunden (Default) */
|
||||
};
|
||||
|
||||
/* Spam Filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* Default Dauer eines *line Banns durch Spamfilter */
|
||||
ban-reason "Spam/Belästigung"; /* default Grund */
|
||||
virus-help-channel "#help"; /* Channel, der für die 'viruschan' action benutzt wird*/
|
||||
/* except "#help"; Channel, der von Filtern ausgenommen wird */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Probleme? Weitere Hilfe nötig?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- enthält 80% deiner Fragen - Wetten Dass?
|
||||
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.ircsystems.net
|
||||
* #unreal-support aufsuchen. Dabei ist zu beachten, dass wir voraussetzen,
|
||||
* dass zuvor DIE DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
*/
|
||||
@@ -0,0 +1,793 @@
|
||||
/*
|
||||
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Traduction française par babass (babass@unrealircd.org).
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
* Okay les mecs. Voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
* Peu importe, il est temps de se lancer. Il est difficile de l'attaquer pour la première fois, mais
|
||||
* avec un peu d'expérience et en lisant vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: Toutes les lignes, excepté la ligne d'ouverture { , les lignes finissant par un ;,
|
||||
* et celle de fermeture } incluses.
|
||||
* L'IRCd ignorera les lignes commentées.
|
||||
*
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html! La version en ligne est aussi disponible à :
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournis des informations
|
||||
* à propos de chaque blocs, variable, etc..
|
||||
*/
|
||||
|
||||
/* Type de commentaires */
|
||||
#Commentaire type 1 (type Shell)
|
||||
// Commentaire type 2 (style C++)
|
||||
/* Commentaire type 3 (style C) */
|
||||
#Ces lignes sont ignorées par l'ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supportes des modules, en charger certains est requis.
|
||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||
*/
|
||||
|
||||
/* POUR *NIX, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* POUR Windows, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||
* help.conf contient tous le texte de /helpop. Les fichiers badwords.*.conf
|
||||
* contiennent tous les badwords pour le mode +G...
|
||||
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
||||
* Vous voudrez probablement les inclure:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et le numeric du serveur unreal
|
||||
* pour ce serveur. La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* info "Description du Serveur";
|
||||
* numeric (numeric* serveur);
|
||||
* };
|
||||
* En cas de link, ce numeric ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* Admin donne des informations sur les server admins.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Défini les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, les connexions serveurs, au lieu de passer par une classe
|
||||
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||
* class (nom de la classe)
|
||||
* {
|
||||
* pingfreq (fréquence des pings utilisateurs/serveurs en secondes);
|
||||
* maxclients (combien de connexions pour cette classe);
|
||||
* sendq (file d'attente maximum pour l'envoie depuis une connexion);
|
||||
* recvq (file d'attente maximum pour la réception depuis une connexion [contrôle du flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* Défini les autorisations de connexions...
|
||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* allow {
|
||||
* ip (ip mask à autoriser);
|
||||
* hostname (host mask);
|
||||
* class (classe à laquelle les renvoyer [voir class {}]);
|
||||
* password "(mot de passe)"; (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* connexion autorisée avec mot de passe */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Défini un IRC Operateur
|
||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent de moi, déplacez les vers une
|
||||
* nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
* flags "ancien type de flags, comme OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Pour avoir la liste des flags oper, voir doc/unreal32docs.fr.html#operblock
|
||||
* [lecture HAUTEMENT recommendée]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Défini un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* options {
|
||||
* (options ici);
|
||||
* };
|
||||
* };
|
||||
* ou pour une écoute
|
||||
* indifférente : listen (ip):(port);
|
||||
*
|
||||
* NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
|
||||
*
|
||||
* Cela fonctionne également.
|
||||
*/
|
||||
|
||||
/* Options de listen:
|
||||
ANCIEN | ACTUEL
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
|
||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
||||
* avez vous déjà vu un ircd fonctionner sur celui-ci ?
|
||||
* Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
|
||||
* assez bien de réseaux et est reconnu par exemple par StunTour.
|
||||
* Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
|
||||
* en utilisant (au moins) 6697 vous aidez le monde à standardiser un peu a bit ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: Si vous êtes sur un shell shell avec de multiples IP's vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
* dans vos logs et l'ircd refusera de démarer.
|
||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||
* Donc par exemple :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Evidemment, remplacez l'IP par celle qui vous a été assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : link {}
|
||||
* ANCIEN : C/N:Lines
|
||||
* Défini un accord pour la connexion d'un serveur.
|
||||
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
||||
* La syntaxe est la suivante :
|
||||
* link (nom du serveur)
|
||||
* {
|
||||
* username (username, * fonctionne aussi);
|
||||
* hostname (ip/hostmask);
|
||||
* bind-ip (Quelle IP à laquelle se relier lors de la connexion, ou *);
|
||||
* port (port auquel se connecter, si il y en a un);
|
||||
* hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
|
||||
* [ou leaf *;]
|
||||
* password-connect "(mot de passe à envoyer)";
|
||||
* password-receive "(mot de passe que l'on doit recevoir)";
|
||||
* class (classe à affecter aux serveurs);
|
||||
* options {
|
||||
* (options ici*);
|
||||
* };
|
||||
* /* Si vous utilisez le SSL, vous pouvez choisir quel cryptage (cipher) utiliser dans le mode SSL
|
||||
* * Retrouvez une liste "crytages openssl", séparez les cryptages par des :
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
ANCIEN | ACTUEL
|
||||
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 : Vous ne devriez pas utiliser autoconnect lorsque vous linkez des services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ACTUEL : ulines {}
|
||||
* ANCIEN : U:Line
|
||||
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
||||
* aux serveurs de services/stats et JAMAIS pour des servuers UnrealIRCd normaux !
|
||||
* La syntaxe est la suivante :
|
||||
* ulines {
|
||||
* (serveur auquel appliquer la uline);
|
||||
* (serveur auquel appliquer la uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : drpass {}
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||
* autant que vous le souhaitez.
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
retirez ceci pour toujour utiliser le même fichier de log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* target "pointe vers";
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
// Ceci fait pointer la commande /nickserv vers l'utilisateur NickServ qui est connecté au serveur set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si vous voulez que la commande pointe vers le même nom que la commande, vous pouvez ignorez l'entré du nom
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Faire pointer la commande /statserv vers l'utilisateur StatServ sur le serveur set::stats-name
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Faire pointer la commande /superbot vers l'utilisateur SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Alias Standards */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /identify, /services, etc
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* format "format string" {
|
||||
* target "pointer vers";
|
||||
* type typedalias;
|
||||
* parameters "paramètres à envoyer";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
|
||||
* différente dans sa syntaxe, bien que elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La direcitive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvois donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commanden /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoies alors la commande à l'alias nickserv avec les paramètres
|
||||
* IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* L'alias::format::parameters est similaire aux languages de programmation. %N (où N est un nombre)
|
||||
* représente un paramètre envoyé à la commande (dans ce cas /identify). Si vous spécifiez %N- cela
|
||||
* signifie que tous les paramètres depuis N jusqu'au dernier paramètre dans la chaîne de caractères.
|
||||
* Vous pouvez également spécifier %n qui est remplacé par le pseudo de l'utilisateur.
|
||||
*/
|
||||
|
||||
/* Alias Standards */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : tld {}
|
||||
* ANCIEN : T:Line
|
||||
* Ceci applique une motd et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||
* en quel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||
* seront utilisés pour tout le monde.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : ban nick {}
|
||||
* ANCIEN : Q:Line
|
||||
* Banni un pseudo, il ne peut donc être utilisé.
|
||||
* La syntaxe est la suivante :
|
||||
* ban nick {
|
||||
* mask "(pseudo à bannir)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservé aux Services";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban ip {}
|
||||
* ANCIEN : Z:Line
|
||||
* Empêche une ip de se connecter au réseau.
|
||||
* Syntaxe :
|
||||
* ban ip { mask (ip/hostmask); reason "(raison)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Serveur délinké";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban server {}
|
||||
* ANCIEN : Server Q:Line
|
||||
* Empêche un serveur de se connecter au réseau.
|
||||
* Si le serveur est linké à un serveur distant, le serveur local
|
||||
* sera déconnecté du réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* ban server {
|
||||
* mask "(nom du serveur)";
|
||||
* reason "(raison à donner)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Va-t-en d'ici.";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban user {}
|
||||
* ANCIEN : K:Line
|
||||
* Fait qu'un utilisateur avec un certain masque ne peut se connecter
|
||||
* à votre serveur.
|
||||
* Syntaxe :
|
||||
* ban user { mask (hostmask/ip); reason "(raison)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : ban realname {}
|
||||
* ANCIEN : n:Line
|
||||
* Ceci empêche un certain realname d'être utilisé.
|
||||
* Syntaxe :
|
||||
* ban realname {
|
||||
* mask "(realname)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
* que vous voulez pour différents hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne banni pas stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoie de dcc... stope
|
||||
* mieux les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny channel {}
|
||||
* ANCIEN : N/A (NEW)
|
||||
* Ceci empêche des salons d'être joins.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(salon)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : vhost {}
|
||||
* ANCIEN : Vhost.conf file
|
||||
* Applique une ip factice aux non-opers, ou aux
|
||||
* opers trop flemmards pour utiliser /sethost :P
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
* login (login);
|
||||
* password (mot de passe);
|
||||
* };
|
||||
* ensuite pour utiliser ce vhost, tapez /vhost (login) (mot de passe) sur l'IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Vous pouvez utiliser d'autres fichiers de configuration */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuration du réseau */
|
||||
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"; */
|
||||
/* Les Cloak keys doivent être les mêmes sur tous les serveurs du réseau.
|
||||
* Ils sont utilisés pour générer des hosts masqués et doivent être gardés secrets.
|
||||
* Les clés doivent être 3 chaînes de 5-100 caractères melangés.
|
||||
* (10-20 caractères est parfait) et elles doivent être constituées de minuscules (a-z),
|
||||
* majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"et une autre";
|
||||
"et un autre";
|
||||
};
|
||||
/* host à l'identification oper */
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuration spécifique d'un serveur */
|
||||
|
||||
set {
|
||||
kline-address "mettre.cet.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;
|
||||
/* Vous pouvez enclencher la vérification des idents si vous voulez */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Durée maximum pendant laquelle un utilisateur doit rester connecté avant de pouvoir utiliser
|
||||
* un message de QUIT.
|
||||
* Ceci devrait aider à stoper le spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Applique le message de static-quit à tous les quits - cela signifie qu'aucun
|
||||
message de quit personalisé ne sera autorisé sur le serveur local */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Vous pouvez également bloquer toutes les raisons de part en décommentant ceci et en disant
|
||||
* 'yes', ou spécifiez un autre texte (ex: "Bye bye!") pour qu'il soit toujours utilisé.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Vous permet de restreindre certaines stats aux opers, utilisez * pour toutes les stats,
|
||||
* enlevez le pour autoriser les utilisateurs à voir toutes les stats. Tapez '/stats' pour
|
||||
* une liste complète.
|
||||
* Certains admins pourront vouloir bloquer 'kGs' pour que les utilisateurs normaux ne puissent
|
||||
* lister les klines, glines et shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: cet exemple applique une limite de 3 connexions en 60s (par host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protection Anti flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 changements de pseudo en 60 secondes (la valeur par défaut) */
|
||||
};
|
||||
|
||||
/* Filtre anti-spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* durée par défaut d'un ban *line appliqué par le spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* raison par défaut */
|
||||
virus-help-channel "#help"; /* salon à utiliser pour l'action 'viruschan' */
|
||||
/* excepté "#help"; salon à exempter de filtrage */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problèmes ou besoin de plus d'aide ?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contient 80% de vos questions !
|
||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.ircsystems.net #unreal-support,
|
||||
* notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
|
||||
*/
|
||||
@@ -0,0 +1,812 @@
|
||||
/*
|
||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||
* A magyar fordítást AngryWolf <angrywolf@flashmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
*
|
||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
||||
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||
* nehéz nekilendülni, de kis gyakorlással és olvasgatással meg fogjuk érteni.
|
||||
*
|
||||
* Csak másoljuk be ezt a fájlt a fő unrealircd könyvtárunkba, és nevezzük
|
||||
* 'unrealircd.conf'-nak.
|
||||
*
|
||||
* MEGJEGYZÉS: Minden sor, kivéve a nyitó { sort, ;-vel végződik, beleértve
|
||||
* a záró } sort is. Az IRCd figyelmen kívül hagyja a megjegyzéssorokat.
|
||||
*
|
||||
* KÉRLEK, OLVASD EL A doc/unreal32docs.html-T! Az online verzió is elérhető
|
||||
* a www.vulnscan.org/UnrealIrcd/unreal32docs.html címen.
|
||||
* Rengeteg információt tartalmaz a konfigurációs fájlról: tájékoztatást ad
|
||||
* minden blokkról, változóról stb.
|
||||
*/
|
||||
|
||||
/* Megjegyzések típusai */
|
||||
#1. Megjegyzéstípus (Shell típusú)
|
||||
// 2. Megjegyzéstípus (C++ stílusú)
|
||||
/* 3. Megjegyzéstípus (C stílusú) */
|
||||
#ezeket a sorokat az ircd figyelmen kívül hagyja.
|
||||
|
||||
/*
|
||||
* Az UnrealIRCd támogat modulokat, néhányuk betöltése kötelező is.
|
||||
* Legalább a parancsokat biztosító és egy álcázó modulra lesz szükségünk.
|
||||
*/
|
||||
|
||||
/* *NIX-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Azt is megtehetjük, hogy befűzünk más konfigurációs fájlokat.
|
||||
* A help.conf tartalmazza az összes /helpop szöveget. A badwords.*.conf
|
||||
* fájlok tartalmazzák az összes csúnyaszó bejegyzést a +G módhoz...
|
||||
* A spamfilter.conf néhány jó szabályt a jelenlegi trójai vírusokra.
|
||||
* Valószínűleg be akarjuk tölteni őket:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ÚJ: me {}
|
||||
* RÉGI: M:Line
|
||||
* A me {} határozza meg ennek a szervernek a nevét, a leírását és az unrealbeli
|
||||
* szerverazonosító-számát. A szintaktikája a következő:
|
||||
* me {
|
||||
* name "szerver.név";
|
||||
* info "A szerver leírása";
|
||||
* numeric (szerverazonosító*);
|
||||
* };
|
||||
* Ha linkelünk, ezt az azonosítószámot nem használhatja semmilyen más szerver
|
||||
* a hálózaton.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.valaminet.com";
|
||||
info "ValamiNet Szerver";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: admin {}
|
||||
* RÉGI: A:Line
|
||||
* Ez a blokk információt ad a szerver adminisztrátorairól. Annyi sort tehetünk
|
||||
* az admin { alá, amennyit kívánunk.
|
||||
* A szintaktikája a következő:
|
||||
* admin {
|
||||
* "első sor";
|
||||
* "második sor";
|
||||
* [stb]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"szeleskorben@hasznalt.nev";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: class {}
|
||||
* RÉGI: Y:line (a régi zavarbaejtő volt)
|
||||
* Ezek az osztályokat állítják be. Az osztályok a kapcsolatok egy csoportjának
|
||||
* beállításai. Például a szerver kapcsolatokat, ahelyett, hogy egy kliens
|
||||
* osztályába kerülnének, beleirányítjuk a szerverek osztályába. Szintaktika:
|
||||
* class (osztálynév)
|
||||
* {
|
||||
* pingfreq (hány másodpercenként pingeljünk egy felhasználót/szervert);
|
||||
* maxclients (mennyi kapcsolat lehet ebben az osztályban);
|
||||
* sendq (egy kapcsolat küldési sorának maximális mérete);
|
||||
* recvq (egy kapcsolat fogadási sorának maximális mérete [árvízvédelem]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Legfeljebb ennyi szervert linkelhetünk egyszerre */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Ennyi másodpercet várjon, mielőtt újra kapcsolódik */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow {}
|
||||
* RÉGI: I:Line
|
||||
* Ez a kapcsolatok engedélyezését határozza meg...
|
||||
* Alapvetően kliensekre használjuk; megengedi nekik, hogy kapcsolódjanak, így
|
||||
* némileg van lehetőség a szabályozásra, valamint jelszót is beállíthatunk.
|
||||
* A szintaktika a következő:
|
||||
* allow {
|
||||
* ip (ip maszk az engedélyezéshez);
|
||||
* hostname (gazdanév maszk);
|
||||
* class (osztály, ahová küldjük őket [lásd: class {}]);
|
||||
* password "(jelszó)"; (nem kötelező)
|
||||
* maxperip (mennyi kapcsolatot engedjünk ip címenként); (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Jelszavas allow blokk */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.jelszavas.csunya.emberkek;
|
||||
class clients;
|
||||
password "V4lami";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow channel {}
|
||||
* RÉGI: chrestrict
|
||||
* Megengedi egy felhasználónak, hogy belépjen egy csatornára...
|
||||
* mint egy csatornáról letiltás alóli kivétel.
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: oper {}
|
||||
* RÉGI: O:Line
|
||||
* Definiál egy IRC operátort
|
||||
* Az IRC operátorok feladata, hogy épségben tartsák a szervert; rendszerint
|
||||
* ügyelnek a karbantartottságára és arra, hogy kapcsolatban maradjon
|
||||
* a hálózattal. A szintaktika a következő:
|
||||
* oper (bejelentkezőnév) {
|
||||
* class (osztály, ahová berakjuk őket; ha eddig más osztályban voltak,
|
||||
* átteszi őket ebbe az új osztályba);
|
||||
* from {
|
||||
* userhost (azonosító@gazdanév);
|
||||
* userhost (azonosító@gazdanév);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flagek ide*);
|
||||
* };
|
||||
* VAGY
|
||||
* flags "régi típusú flagek, mint pl. OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Az oper flagek listáját lásd a doc/unreal32docs.hu.html#operblock szekcióban
|
||||
* [ERŐSEN ajánlott elolvasni]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: listen {}
|
||||
* RÉGI: P:Line
|
||||
* Meghatároz egy olyan portot, amelyet az ircd megnyit, és engedélyt ad
|
||||
* a felhasználóknak/szervereknek, hogy kapcsolódjanak a szerverre.
|
||||
* A szintaktika a következő:
|
||||
* listen (ip cím):(portszám)
|
||||
* {
|
||||
* options {
|
||||
* (opciók ide);
|
||||
* };
|
||||
* };
|
||||
* vagy egy síma portnyitáshoz:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* MEGJEGYZÉS: ipv6-os ip-kre (3ffe:b80:2:51d::2 stb.) használjuk a
|
||||
* listen [ip]:port;
|
||||
* szintaktikát. Az is működik.
|
||||
*/
|
||||
|
||||
/* Opciók a listenhez:
|
||||
RÉGI | ÚJ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* MEGJEGYZÉS SSL PORTOKRA: az SSL portok eléggé szabványosítatlanok, emellett
|
||||
* sok a magas SSL port. Néhányan azt mondják, a 994-en célszerű futtatni,
|
||||
* mert az a hivatalos SSL port... de a rendszergazdát igényel! Ezenkívül,
|
||||
* a 194 a hivatalos irc port, de láttunk valaha egy ircd-t azon futni?
|
||||
* Így mi a javaslatunk az, hogy használjuk a 6697-et SSL-hez, ezt használja
|
||||
* jónéhány hálózat, és ezt ismeri fel például a StunTour is.
|
||||
* Szabadon megnyithatunk annyi SSL portot, amennyit akarunk, de ha a 6697-et
|
||||
* (is) használjuk, kicsit segítjük a világot szabványosodni ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* MEGJEGYZÉS: Ha egy több IP címes IRCd shellen vagyunk, előfordulhat, hogy
|
||||
* "Address already in use" ("A cím már használatban van") hibaüzeneteket
|
||||
* találunk a naplóban, és az ircd nem indul el. Ez azt jelenti, hogy
|
||||
* az ircd-nek egy meghatározott IP címre KELL bindelnie a "*" helyett
|
||||
* vagyis például így:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Természetesen cseréljük ki az IP címet arra az IP-re, amelyet nekünk
|
||||
* osztottak ki.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: link {}
|
||||
* RÉGI: C/N:Line-ok
|
||||
* Ez a blokk "igen"-t mond egy szerver kapcsolódására.
|
||||
* MEGJEGYZÉS: MINDKÉRT SZERVEREN KELL EGY LINK {} BEÁLLÍTÁS A HELYES
|
||||
* KAPCSOLÓDÁSHOZ!
|
||||
* A szintaktika a következő:
|
||||
* link (szervernév)
|
||||
* {
|
||||
* username (felhasználónév, * is működik);
|
||||
* hostname (ip cím/gazdanév maszk);
|
||||
* bind-ip (amilyen IP címre bindeljen kapcsolódáskor, vagy *);
|
||||
* port (port, ahová kapcsolódjon, ha van);
|
||||
* hub (Ha ez egy hub; * működik, vagy szervermaszkokat is beírhatunk);
|
||||
* [vagy leaf *;]
|
||||
* password-connect "(elküldendő jelszó)";
|
||||
* password-receive "(fogadandó jelszó)";
|
||||
* class (osztály, ahová betesszük a szervereket);
|
||||
* options {
|
||||
* (opciók ide*);
|
||||
* };
|
||||
* /* Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok
|
||||
* * legyenek használatban SSL módban. Listát kapunk az "openssl ciphers"
|
||||
* * paranccsal. Az egyes rejtjeleket :-tal válasszuk el.
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciók:
|
||||
RÉGI | ÚJ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.sajatnet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Megjegyzés: szolgáltatások linkelésekor célszerű nem
|
||||
* használni az autoconnect opciót.
|
||||
*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ÚJ: ulines {}
|
||||
* RÉGI: U:Line
|
||||
* Az U-line-ok több hatalmat/parancsot adnak a szervereknek. CSAK
|
||||
* szolgáltatásokat és statisztikákat nyújtó szerverekre érdemes beállítani,
|
||||
* és SOHA rendes UnrealIRCd szerverekre!
|
||||
* A szintaktika a következő:
|
||||
* ulines {
|
||||
* (uline-ra teendő szerver);
|
||||
* (uline-ra teendő szerver);
|
||||
* [stb.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: drpass {}
|
||||
* RÉGI: X:Line
|
||||
* Meghatározza a jelszavakat a /die és /restart parancsokhoz.
|
||||
* A szintaktika a következő:
|
||||
* drpass {
|
||||
* restart "(újraindítás jelszava)";
|
||||
* die "(leállítás jelszava)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Imádok-újraindítani";
|
||||
die "Halj-te-buta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: log {}
|
||||
* RÉGI: N/A
|
||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||
* amennyit szeretnénk.
|
||||
*
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Szintaktika:
|
||||
* log "naplófájl"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* (flag);
|
||||
* (flag);
|
||||
* [stb.]
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Törölje a naplófájlt, és kezdjen egy újat, ha eléri a 2 MB-ot;
|
||||
* hagyjuk ki ezt a beállításból, ha mindig ugyanazt a naplót
|
||||
* szeretnénk használni
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint a /nickserv, /chanserv stb.
|
||||
* FLAGEK: services (szolgáltatás), stats (statisztika), normal (közönséges
|
||||
* felhasználó)
|
||||
*
|
||||
* Szintaxis:
|
||||
* alias "név" {
|
||||
* target "ahová mutasson";
|
||||
* type álparancstípus;
|
||||
* };
|
||||
*
|
||||
* [MEGJEGYZÉS: Beilleszthetünk ide egy előre beállított álparancsfájlt is,
|
||||
* lásd: doc/unreal32docs.html, 2.9-es szekció]
|
||||
*/
|
||||
|
||||
// Ez a /nickserv parancsot a NickServ felhasználóra irányítja, aki a set::services-server szerverre kapcsolódott.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ha a parancsot ugyanarra a nicknévre szeretnénk irányítani, ami a parancs neve, kihagyhatjuk a nick bejegyzést.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// A /statserv parancsot a set::stats-server szerveren lévő StatServ felhasználóra irányítja
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// A /superbot parancsot a SuperBot felhasználóra irányítja.
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint az /identify, /services stb.
|
||||
*
|
||||
* Szintaktika:
|
||||
* alias "név" {
|
||||
* format "formátumsztring" {
|
||||
* target "ahova mutasson";
|
||||
* type álparancstípus;
|
||||
* parameters "küldendő paraméterek";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ezt azért mutatjuk külön, mert még ha ugyanaz is a neve, mint az előző direktívának, a szintaktikája nagyon
|
||||
* más, habár hasonló feladatot lát el, és a szabványosok álparancsokra van szüksége, hogy működjön.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Az alias::format direktíva egy reguláris kifejezés. Az első formátum akkor illeszkedik az /identify parancsra,
|
||||
* ha az első karakter egy #. Azután elküldi ezt a chanserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
* A második formátum akkor illeszkedik az /identify parancsra, ha az első karakter nem egy #. Azután
|
||||
* elküldi a parancsot a nickserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
*/
|
||||
|
||||
/* Az alias::format::parameters hasonló a scriptnyelvekhez. Az %N (ahol N egy szám) a parancshoz küldött egyik
|
||||
* paramétert ábrázolja (ebben az esetben az /identify-ét). Ha azt írjuk, hogy %N-, a sztring N-edik
|
||||
* paraméterétől az utolsóig minden paramétert fog jelenteni. Megadhatunk egy %n-et is, amely ki lesz cserélve
|
||||
* a felhasználó nicknevével.
|
||||
*/
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ÚJ: tld {}
|
||||
* RÉGI: T:Line
|
||||
* Beállít más motd és rules fájlt
|
||||
* a kliens hostmaszkjára.
|
||||
* A szintaktikája a következő:
|
||||
* tld {
|
||||
* mask (azonosító@gazda);
|
||||
* motd "(motd fájl)";
|
||||
* rules "(rules fájl)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* megjegyzés: a fenti példa blokkot akár le is törölhetjük; ebben az esetben
|
||||
* mindenkire az alapértelmezett motd/rules fájlok (ircd.motd, ircd.rules)
|
||||
* lesznek használatban.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: ban nick {}
|
||||
* RÉGI: Q:Line
|
||||
* Kitilt egy nicknevet, így az nem használható.
|
||||
* A szintaktikája a következő:
|
||||
* ban nick {
|
||||
* mask "(kitiltandó nick)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Fenntartva a szolgáltatásoknak";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban ip {}
|
||||
* RÉGI: Z:Line
|
||||
* Megtiltja egy ip-nek, hogy a hálózatra kapcsolódjon.
|
||||
* Szintaktika:
|
||||
* ban ip { mask (ip cím/gazdanévmaszk); reason "(indoklás)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Lecsatolt szerver";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban server {}
|
||||
* RÉGI: Q:Line szerverekre
|
||||
* Megtiltja egy szervernek, hogy a hálózatra kapcsolódjon.
|
||||
* Ha egy szerver távoli szerverre linkel, a helyi szerver
|
||||
* szétkapcsolja a hálózatról.
|
||||
* A szintaktikája a következő:
|
||||
* ban server {
|
||||
* mask "(szervernév)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Mars ki innen!";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban user {}
|
||||
* RÉGI: K:Line
|
||||
* Elintézi, hogy egy felhasználó egy bizonyos maszkról ne tudjon kapcsolódni
|
||||
* a szerverünkre.
|
||||
* Szintaktika:
|
||||
* ban user { mask (gazdanévmaszk/ip cím); reason "(indok)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idióta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: ban realname {}
|
||||
* RÉGI: n:Line
|
||||
* Letiltja egy bizonyos valós név használatát.
|
||||
* Szintaktikája:
|
||||
* ban realname {
|
||||
* mask "(valós név)";
|
||||
* reason "(indok)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* MEGJEGYZÉS MINDEN BANRA: ezek ismételhetőek további bejegyzésekhez!
|
||||
*
|
||||
* ÚJ: except ban {}
|
||||
* RÉGI: E:Line
|
||||
* Elintézi, hogy ne lehessen minket kibannolni.
|
||||
* Szintaktika:
|
||||
* except ban { mask (azonosító@gazda); };
|
||||
* További gazdákhoz annyiszor ismételjük az except ban {}-t,
|
||||
* amennyiszer szükséges.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne tiltsuk ki stskeeps-t */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny dcc {}
|
||||
* RÉGI: dccdeny.conf
|
||||
* Használjuk dcc küldések blokkolására... Jobban
|
||||
* megállítja a vírusokat.
|
||||
* Szintaktika:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "blokkolandó fájl (pl. *exe)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Valószínűleg Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny channel {}
|
||||
* RÉGI: N/A (ÚJ)
|
||||
* Letiltja bizonyos csatornákon a belépést.
|
||||
* Szintaktika:
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: vhost {}
|
||||
* RÉGI: Vhost.conf fájl
|
||||
* Beállít egy hamis ip címet közönséges felhasználókon, vagy
|
||||
* olyan operátorokon, akik lusták a /sethost-ot használni :P
|
||||
* Szintaktika:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (azonosító@gazda, aki használhatja);
|
||||
* };
|
||||
* login (bejelentkezőnév);
|
||||
* password (jelszó);
|
||||
* };
|
||||
* azután e vhost használatához adjuk ki
|
||||
* a /vhost (bejelentkezőnév) (jelszó) parancsot IRC-n
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Befűzhetünk más konfigurációs fájlokat */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Hálózati beállítások */
|
||||
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"; */
|
||||
/* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell
|
||||
* lenniük. Álcázott gazdanevek előállításában van szerepük, ezért
|
||||
* legyenek titokban tartva! Mind 3 kulcs legyen egy-egy véletlenszerű
|
||||
* sztring 5-100 karakterből (10-20 karakter kitűnő), valamint
|
||||
* tartalmazniuk kell kisbetűket (a-z), nagybetűket (A-Z) és számokat
|
||||
* (0-9) [ahogy az első kulcsos példában látható].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"írjunk hozzá még egyet";
|
||||
"írjunk hozzá még egyet";
|
||||
};
|
||||
/* gazdanevek opereléskor */
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
/* Szerverszintű beállítások */
|
||||
|
||||
set {
|
||||
kline-address "állítsuk.be.ezt.az.emailt";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#operek";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Legkevesebb ennyi ideig kell a felhasználónak kapcsolatban lennie,
|
||||
* mielőtt engedélyt kap a QUIT üzenetek használatára. Remélhetőleg
|
||||
* ez leállítja a spamot. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* A static-quit a neki megadott üzenetet megjeleníti minden
|
||||
* kilépésben - avagy egyéni kilépési szövegek nem engedélyezettek
|
||||
* a helyi szerveren */
|
||||
/* static-quit "Kliens kilépés"; */
|
||||
|
||||
/* Hasonlóan blokkolható minden lelépési indok, úgy, hogy kivesszük
|
||||
* a megjegyzésből ezt, és "yes"-t írunk vagy megadunk valamilyen
|
||||
* más szöveget (pl. "Bye bye!"), hogy mindig az legyen a lelépés
|
||||
* indoklószövege. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Ezzel megmondhatjuk, mely statisztikákat szeretnénk csak operátorok
|
||||
* számára engedélyezni. Használjunk *-ot, ha az összeset kívánjuk,
|
||||
* és hagyjuk el a direktívát, ha a felhasználók mindet láthatják. Írjuk
|
||||
* be a "/stats" parancsot a teljes listáért.
|
||||
* Lehet, hogy néhány adminisztrátor törölni fogja a "kGs"-t, hogy
|
||||
a közönséges felhasználók láthassák a kline-okat, gline-okat és
|
||||
* shunokat.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Elfojtás: ez a példa 60 másodpercenként (gazdánként) legfeljebb
|
||||
* 3 kapcsolatot engedélyező korlátozást állít be. */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Árasztásellenes védelem */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nicknévváltás 60 másodpercenként
|
||||
(az alapértelmezés) */
|
||||
};
|
||||
|
||||
/* Spamszűrő */
|
||||
spamfilter {
|
||||
ban-time 1d; /* a spamszűrő által beállított *line-ok
|
||||
alapértelmezett kitiltási ideje */
|
||||
ban-reason "Spam/Reklámozás"; /* alapértelmezett indok */
|
||||
virus-help-channel "#help"; /* a "viruschan" tevékenységhez
|
||||
használt csatorna */
|
||||
/* except "#help"; kivesszük a szűrés alól ezt a csatornát */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problémák akadtak, vagy szükség van további segítségre?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||
* 3) Ha még mindig gondod van, felmehetsz az irc.ircsystems.net #unreal-support
|
||||
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||
* a GYIK-ot!
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
+1333
File diff suppressed because it is too large
Load Diff
+13
-33
@@ -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-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
|
||||
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
|
||||
@@ -24,9 +23,9 @@ impractical and technically impossible to correctly implement due to existing li
|
||||
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.
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, and CMDS. 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
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -108,7 +107,7 @@ 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
|
||||
@@ -125,7 +124,7 @@ ELIST flags MNUCT Specifies the set of
|
||||
flag allows topic set time
|
||||
searching.
|
||||
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
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
|
||||
@@ -133,48 +132,29 @@ CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of
|
||||
token replaces the MAP and KNOCK
|
||||
tokens.
|
||||
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
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
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
(+e) are supported by the server.
|
||||
|
||||
INVEX none none Indicates that channel invite
|
||||
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
|
||||
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
|
||||
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
|
||||
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,141 @@
|
||||
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).
|
||||
|
||||
NICKIP This token indicates that a (standard) base64 encoded IP address is included
|
||||
in the NICK command. The IP is in binary network byte order formated and
|
||||
encoded using the standard base64 algorithm. '*' is used if no IP is available.
|
||||
|
||||
NICKCHARS This specifies a list of language characters that are allowed in nicks.
|
||||
USMARC codes are used, with a suffix if needed. See src/charsys.c for the full
|
||||
list (ctrl+f, static LangList) of possible languages (2nd column).
|
||||
The items in the list sent as NICKCHARS=.. must always be sorted.
|
||||
If a server sends NICKCHARS= and if the remote parameters do not match the
|
||||
charsets in use locally, then the server link is rejected.
|
||||
@@ -1,2 +0,0 @@
|
||||
All server protocol documentation has been moved to the wiki:
|
||||
https://www.unrealircd.org/docs/Server_protocol
|
||||
@@ -0,0 +1,110 @@
|
||||
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
|
||||
Command Token
|
||||
------------------------------------------------------------------------------------------------
|
||||
PRIVATE !
|
||||
WHOIS #
|
||||
NICK &
|
||||
SERVER '
|
||||
TOPIC )
|
||||
INVITE *
|
||||
VERSION +
|
||||
QUIT ,
|
||||
SQUIT -
|
||||
KILL .
|
||||
INFO /
|
||||
LINKS 0
|
||||
STATS 2
|
||||
HELP 4
|
||||
ERROR 5
|
||||
AWAY 6
|
||||
CONNECT 7
|
||||
PING 8
|
||||
PONG 9
|
||||
PASS <
|
||||
TIME >
|
||||
ADMIN @
|
||||
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
|
||||
ADDMOTD AQ
|
||||
ADDOMOTD AR
|
||||
SVSMOTD AS
|
||||
SMO AU
|
||||
OPERMOTD AV
|
||||
TSCTL AW
|
||||
SAJOIN AX
|
||||
SAPART AY
|
||||
CHGIDENT AZ
|
||||
NOTICE B
|
||||
SWHOIS BA
|
||||
SVSO BB
|
||||
SVSFLINE BC
|
||||
TKL BD
|
||||
VHOST BE
|
||||
BOTMOTD BF
|
||||
HTM BH
|
||||
DCCDENY BI
|
||||
UNDCCDENY BJ
|
||||
CHGNAME BK
|
||||
SHUN BL
|
||||
CYCLE BP
|
||||
MODULE BQ
|
||||
SVSNLINE BR
|
||||
SVSPART BT
|
||||
SVSLUSERS BU
|
||||
SVSSNO BV
|
||||
SVS2SNO BW
|
||||
SVSJOIN BX
|
||||
SVSSILENCE Bs
|
||||
SVSWATCH Bw
|
||||
JOIN C
|
||||
PART D
|
||||
LUSERS E
|
||||
EOS ES
|
||||
MOTD F
|
||||
MODE G
|
||||
KICK H
|
||||
REHASH O
|
||||
RESTART P
|
||||
CLOSE Q
|
||||
SENDSNO Ss
|
||||
DNS T
|
||||
TEMPSHUN Tz
|
||||
SILENCE U
|
||||
AKILL V
|
||||
UNKLINE X
|
||||
RAKILL Y
|
||||
GLOBOPS ]
|
||||
LOCOPS ^
|
||||
PROTOCTL _
|
||||
WATCH `
|
||||
TRACE b
|
||||
SQLINE c
|
||||
UNSQLINE d
|
||||
SVSNICK e
|
||||
SVSNOOP f
|
||||
SVSKILL h
|
||||
SVSMODE n
|
||||
SAMODE o
|
||||
CHATOPS p
|
||||
UNZLINE r
|
||||
RULES t
|
||||
MAP u
|
||||
SVS2MODE v
|
||||
DALINFO w
|
||||
ADMINCHAT x
|
||||
UMODE2 |
|
||||
SJOIN ~
|
||||
@@ -0,0 +1,35 @@
|
||||
VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2306 3.2.3
|
||||
2305 3.2.2
|
||||
2304 3.2.1
|
||||
2303 3.2-beta*, 3.2-RC*, 3.2
|
||||
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 or unreal is any other way 'tainted' (eg: bad libs)
|
||||
E Extended channel modes supported
|
||||
+38
-19
@@ -1,26 +1,45 @@
|
||||
==[ Translations ]===========================================================
|
||||
==[ Translations ]============================================================
|
||||
|
||||
In UnrealIRCd 4 we support the following translations:
|
||||
* on-line documentation at https://www.unrealircd.org/docs/ (wiki!)
|
||||
* help.conf
|
||||
* example.conf
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
documentation files. For now, only translations of unreal32docs.html and
|
||||
example.conf are accepted. Other stuff might be translated later, but
|
||||
this will probably be postponed to 3.3 (numerics/ircd text/help.conf/etc).
|
||||
|
||||
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
|
||||
There a few requirements however:
|
||||
- When you submit your translation it should be a translation of the
|
||||
very latest doc... So be sure to translate the cvs version of
|
||||
unreal32docs.html (www.vulnscan.org/UnrealIrcd/unreal32docs.html).
|
||||
- Of course the translation should be correct.. So also 'technically',
|
||||
it's therefore recommended that have some real experience with Unreal ;)
|
||||
- If you are accepted and start working on it, it would be nice if you
|
||||
could put your docs-in-progress online somewhere so we can see how
|
||||
progress is going a bit.
|
||||
- You should use a proper HTML editor, this especially excludes Microsoft
|
||||
Word and Frontpage since it enlarges the .html file by (at least) 30%.
|
||||
Don't worry, there are enough free&simple html editors out there that
|
||||
work perfectly fine, you won't need to be an HTML expert at all!
|
||||
- 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)
|
||||
Translators will receive once a week (and right before every release)
|
||||
all changes that were made in unreal32docs.html. Then the translator
|
||||
should update his/her doc and send it in (or commit it via cvs).
|
||||
Count on an average of 15 minutes a week (it varies).
|
||||
|
||||
Now, we should tell you that the first-time translation of unreal32docs.html
|
||||
is a LOT of work.. probably 20 hours or so. After that, the weekly updates
|
||||
take really just 5, 10, 15 minutes a week, which is pretty much "no time".
|
||||
Now why would you translate at all? Well, by translating UnrealIRCd
|
||||
documentation you will help out your fellow citizens and/or other people
|
||||
of that language, you will make Unreal a bit more 'internationalized',
|
||||
and it's a worthwile contribution to the UnrealIRCd project.
|
||||
Upon successful completion you will also receive an @unrealircd.org
|
||||
forwarder email address, and of course your name will be in the docs.
|
||||
|
||||
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.
|
||||
coders@lists.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
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
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,128 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
ModuleHeader MOD_HEADER(defizzer)
|
||||
= {
|
||||
"defizzer", /* Name of module */
|
||||
"$Id$", /* Version */
|
||||
"de-Fizzer", /* Short description of module */
|
||||
"3.2-b8-1",
|
||||
NULL
|
||||
};
|
||||
|
||||
DLLFUNC int MOD_INIT(defizzer)(ModuleInfo *modinfo)
|
||||
{
|
||||
bcopy(modinfo,&DefizzerModInfo,modinfo->size);
|
||||
LocConnect = HookAddEx(DefizzerModInfo.handle, HOOKTYPE_PRE_LOCAL_CONNECT, h_defizzer_connect);
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
DLLFUNC int MOD_LOAD(defizzer)(int module_load)
|
||||
{
|
||||
return MOD_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
DLLFUNC int MOD_UNLOAD(defizzer)(int module_unload)
|
||||
{
|
||||
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;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user