mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-30 16:26:38 +02:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e2c54d4b1e | |||
| 7949ef2550 | |||
| c625c3574c | |||
| 648d0c6465 | |||
| 9d9c699b71 | |||
| 05f74f405f | |||
| 58c2a0ec5a | |||
| 5c4a58b2aa | |||
| 0d6cd21fde | |||
| 7c1de2fbc8 | |||
| 40ecbe946d | |||
| 013da5b350 | |||
| f7514a3124 | |||
| 39b67b0258 | |||
| d13c52ea67 | |||
| 23919ffb6e | |||
| 8833b59594 | |||
| c4de0d3718 | |||
| c274501c9f | |||
| a808ef8104 | |||
| 283dfcfe0f | |||
| 41eb4cea2f | |||
| 12593314da | |||
| 23366dfb8b | |||
| 2e969a14c7 | |||
| e5191d37e4 | |||
| 2144a83c89 |
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||||
|
|
||||||
Configuration Program
|
Configuration Program
|
||||||
for Unreal3.2.10.7
|
for Unreal3.2.8.1
|
||||||
|
|
||||||
This program will help you to compile your IRC server, and ask you
|
This program will help you to compile your IRC server, and ask you
|
||||||
questions regarding the compile-time settings of it during the process.
|
questions regarding the compile-time settings of it during the process.
|
||||||
|
|||||||
+78
-147
@@ -1,164 +1,95 @@
|
|||||||
Unreal3.2.10.7 Release Notes
|
Unreal3.2.8.1 Release Notes
|
||||||
=============================
|
============================
|
||||||
|
|
||||||
==[ UNREALIRCD 3.2.X IS DEPRECATED ]==
|
==[ ABOUT 3.2.8.1 RELEASE ]==
|
||||||
You are currently viewing the release notes of UnrealIRCd 3.2.10.7.
|
This Unreal3.2.8.1 release fixes a (serious) security issue regarding
|
||||||
UnrealIRCd 3.2.* will no longer be supported after December 31, 2016.
|
allow::options::noident. The original release notes for 3.2.8 are below.
|
||||||
You should upgrade to UnrealIRCd 4 before that date.
|
|
||||||
See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated
|
|
||||||
|
|
||||||
==[ GENERAL INFORMATION ]==
|
==[ GENERAL INFORMATION ]==
|
||||||
- If you are upgrading on *NIX, then make sure you run 'make clean' and
|
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||||
'./Config' first, before running 'make'.
|
first, before doing 'make'
|
||||||
- The official UnrealIRCd 3.2.x documentation is available online at
|
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||||
https://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||||
FAQ: https://www.vulnscan.org/UnrealIRCd/faq/
|
FAQ: http://www.vulnscan.org/UnrealIRCd/faq/
|
||||||
Read them before asking for help.
|
Read them before asking for help.
|
||||||
- Report bugs at https://bugs.unrealircd.org/
|
- Report bugs at http://bugs.unrealircd.org/
|
||||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a
|
- When upgrading a network, we assume you are upgrading from the previous
|
||||||
SUMMARY of the changes in this release. See the file 'Changes' for a
|
version (3.2.7). Upgrading from 3.2.6 or 3.2.5 should also be no problem.
|
||||||
complete list of all changes.
|
However, if you have a network running with servers that are several versions behind
|
||||||
|
(eg: 3.2.1) then you might experience small (desynch) problems.
|
||||||
==[ .7 RELEASE ]==
|
Please also minimize the time you have multiple versions running, a few days or
|
||||||
The following issue was fixed in 3.2.10.7:
|
one week is generally not a problem, but having mixed versions on a network for several
|
||||||
- Fix SASL EXTERNAL security issue
|
weeks or months is not recommended.
|
||||||
|
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a SUMMARY of
|
||||||
==[ .6 RELEASE ]==
|
the changes in this release. There have been 70+ changes, and trying to mention them
|
||||||
The following has been addressed in 3.2.10.6:
|
all would be useless, see the Changelog for the full list of changes.
|
||||||
- Add notes regarding deprecation of 3.2.x series
|
|
||||||
- Build with latest OpenSSL to fix crash issue (Windows)
|
|
||||||
- Don't show vcredist dialog if installed (Windows installer)
|
|
||||||
|
|
||||||
==[ .5 RELEASE ]==
|
|
||||||
The following issues have been fixed in 3.2.10.5:
|
|
||||||
- Crash when SASL is enabled (set::sasl-server)
|
|
||||||
- A compile problem with LibreSSL
|
|
||||||
|
|
||||||
==[ .4 RELEASE ]==
|
|
||||||
Two major issues were fixed:
|
|
||||||
- Compile problems when using clang instead of gcc (such as on FreeBSD & OS X)
|
|
||||||
- For services who allow you to log in by account name but still allow you to
|
|
||||||
use a different nick: when you're logged in you are now considered
|
|
||||||
registered as far as mode +M and +R are concerned.
|
|
||||||
Tech: whenever services set SVID and it's not * and does not start with a
|
|
||||||
number, then we consider this user to be 'logged in'.
|
|
||||||
Whenever a user is set +r (s)he is also considered 'logged in'.
|
|
||||||
This way it's compatible with both older and new services and doesn't
|
|
||||||
(or shouldn't) introduce security issues with older services using
|
|
||||||
servicetimestamp for nick tracking or other means.
|
|
||||||
Additionally:
|
|
||||||
- curl-ca-bundle.crt has been updated to use latest certificates
|
|
||||||
- The Windows libraries (OpenSSL, curl, ..) have been updated.
|
|
||||||
|
|
||||||
==[ .3 RELEASE ]==
|
|
||||||
The following issues have been fixed in 3.2.10.3:
|
|
||||||
- Crash when SASL is enabled and ping-cookie is disabled
|
|
||||||
- Compile issue with remote include
|
|
||||||
- OS X compile problems
|
|
||||||
- ./unreal backtrace not always working well
|
|
||||||
Changes:
|
|
||||||
- For silenced users we now only check the current nick!user@host
|
|
||||||
- Server to server links now use latest TLS (eg: v1.2) instead of SSLv3
|
|
||||||
New:
|
|
||||||
- Added set::spamfilter::stop-on-first-match (default yes). You can change
|
|
||||||
this to 'no' to have UnrealIRCd continue processing all spamfilters even
|
|
||||||
after the first match. The spamfilter with the 'gravest action' wins
|
|
||||||
(eg: gzline wins from block).
|
|
||||||
|
|
||||||
==[ .2 RELEASE ]==
|
|
||||||
The following major issues were present in 3.2.10 & 3.2.10.1 and have
|
|
||||||
been fixed in this version:
|
|
||||||
- A remote crash issue when compiled with SSL (NULL pointer dereference)
|
|
||||||
- A second issue that can potentially lead to a crash (read-after-free)
|
|
||||||
|
|
||||||
In addition to these 3.2.10.x fixes there were also some other bugs fixed,
|
|
||||||
mostly in the area of server linking and flood hardening.
|
|
||||||
|
|
||||||
The external libraries of the Windows version have been updated (openssl,
|
|
||||||
c-ares, zlib). The bundled c-ares source (for *NIX) has been updated too.
|
|
||||||
|
|
||||||
==[ .1 RELEASE ]==
|
|
||||||
The following bugs in version 3.2.10 were fixed in this 3.2.10.1 release:
|
|
||||||
- Windows only: outgoing connects from Windows caused severe linking issues,
|
|
||||||
including killing of (ghost) users on the Windows server.
|
|
||||||
- An issue where user modes were stripped from remote clients, this caused
|
|
||||||
a problem for Anope BotServ bots.
|
|
||||||
- A compile problem on OpenBSD.
|
|
||||||
- '/REHASH -global' did not rehash all servers.
|
|
||||||
- Some documentation updates.
|
|
||||||
|
|
||||||
==[ 3.2.10 RELEASE ]==
|
|
||||||
Below is a summary of all changes with respect to 3.2.9:
|
|
||||||
|
|
||||||
==[ NEW ]==
|
==[ NEW ]==
|
||||||
- Improved socket engine. This brings some performance improvements and
|
- set::level-on-join: this defines which privileges a user receives when creating a
|
||||||
also makes it easier to configure a system to hold more than 1024
|
channel, default is 'chanop', the only other available setting is 'none' (opless).
|
||||||
clients (no more editing of header files on Linux!).
|
- Away notification through WATCH: This allows clients to receive a notification
|
||||||
- ESVID support: services can communicate the account name of the user
|
when someone goes away or comes back, along with a reason, a bit like IM's.
|
||||||
back to the IRCd. This only works on ESVID-capable services:
|
There's probably no current client supporting this but it would be a nice feature
|
||||||
- Extban ~a:<accountname>: matches users who are logged in to services
|
in notify lists. Client developers: see Changes file for full protocol details.
|
||||||
with that account name.
|
This feature can be disabled by setting set::watch-away-notification to 'no'.
|
||||||
- Show account name in /WHOIS
|
- Spamfilter: Slow spamfilter detection: For each spamfilter, Unreal will check,
|
||||||
- CAP support: this enables clients to enable certain features more easily.
|
each time it executes, how long it takes to execute. When a certain threshold is
|
||||||
Can be disabled through set::options::disable-cap.
|
reached the IRCd will warn or even remove the spamfilter. This could prevent a
|
||||||
- Now that STARTTLS is advertised in CAP it is likely to be used more often.
|
spamfilter from completely stalling the IRCd. Warning is configured through
|
||||||
- away-notify: informs clients of AWAY state changes of users on the same
|
set::spamfilter::slowdetect-warn (default: 250ms) and automatic deletion is
|
||||||
channels, for clients that support this.
|
configured by set::spamfilter::slowdetect-fatal (default: 500ms).
|
||||||
- account-notify: similar to away-notify, inform clients of changes in the
|
You can set both settings to 0 (zero) to disable slow spamfilter detection.
|
||||||
login status and account name used by other clients on the same channels.
|
This feature is currently not available on Windows.
|
||||||
- SASL support. To use this, and if your services support this, you point
|
- SSL: set::ssl::server-cipher-list can be used to limit the allowed ciphers
|
||||||
set::sasl-server to your services server.
|
- SSL: To specify when an SSL session key should be renegotiated you can use
|
||||||
- Server-side MLOCK support: the IRCd will prevent channel mode changes
|
set::ssl::renegotiate-bytes <bytes> and set::ssl::renegotiate-timeout <seconds>.
|
||||||
depending on the MLOCK setting in services. Requires special support
|
- UHNAMES support: This sends the full nick!ident@host in NAMES which can be
|
||||||
from services for this feature.
|
used by clients for their IAL. mIRC, Klient, etc support this.
|
||||||
- User Mode +I (IRCOp only): hide idle time
|
- There have also been some behavior changes, which can be considered NEW, see
|
||||||
- auth-method 'sslclientcertfp': authenticate users using an SSL client
|
next section (CHANGED).
|
||||||
certificate by the SHA256 fingerprint of that certificate.
|
|
||||||
The documentation has a new section (3.19) called 'Authentication Types'
|
|
||||||
which contains an (improved) example of how to use SSL client certificate
|
|
||||||
authentication instead of regular passwords.
|
|
||||||
- oper::require-modes: an optional setting, which can be used to require
|
|
||||||
users to have certain user modes (such as 'z') before they can /OPER up.
|
|
||||||
- allow/deny channel: you can now optionally specify a class here as an
|
|
||||||
extra filter.
|
|
||||||
- doc/example.es.conf: Spanish translation of example configuration file.
|
|
||||||
- There have also been some behavior changes, which can be considered NEW,
|
|
||||||
see next section (CHANGED).
|
|
||||||
|
|
||||||
==[ CHANGED ]==
|
==[ CHANGED ]==
|
||||||
- Anti-spoof protection (ping cookies) can now be enabled/disabled at
|
- IPv6: On IPv6 servers you no longer have to use ::ffff:1.2.3.4 IP's for IPv4 in the
|
||||||
run-time through set::ping-cookie [yes|no]. The default is 'yes' (enabled).
|
config file, you can use the simple 1.2.3.4 form, as they are converted automatically.
|
||||||
- A quit with 'Ping timeout' now shows the number of seconds since the ping.
|
- When someone is banned and /PARTs, the part reason (comment) is no longer shown
|
||||||
- Print out a warning if we can't write to a log file.
|
- ChanMode +S/+c: now strips/blocks 'reverse' as well
|
||||||
- Refuse to boot if we can't write to ANY log file.
|
- Smart banning is now disabled by default because it was too annoying, this means that
|
||||||
- Windows: if an SSL certificate exists, then uncheck the 'generate SSL
|
f.e. if there's a ban on *!*@*.com then you can still add a ban on *!*@*.aol.com
|
||||||
certificate' checkbox by default.
|
- except ban { } now also protects against ZLINEs and ban ip { }
|
||||||
- *NIX with SSL: We now ask in ./Config if you want to generate an SSL
|
- Modules: user modes and channel modes without parameters (eg: +X) no longer have
|
||||||
certificate. The certificate is then copied when you run 'make install'.
|
to be PERManent, this means they can be upgraded/reloaded/unloaded on-the-fly.
|
||||||
|
|
||||||
==[ MAJOR BUGS FIXED ]==
|
==[ MAJOR BUGS FIXED ]==
|
||||||
- Windows SSL crash (this issue was already fixed in 3.2.9-SSL-fix)
|
- Zip links issue (Overflowed unzipbuf)
|
||||||
- Other than that, none?
|
- Crash issue with 3rd party modules that introduce new channel modes w/parameters
|
||||||
|
- Mac OS X: Various issues which prevented the IRCd from booting up
|
||||||
|
- Remote includes (constant) crash with new curl/c-ares versions
|
||||||
|
- A few rare crash issues, including a crash when linking to another server
|
||||||
|
- In case of clock adjustments, the IRCd will no longer freeze when the time is
|
||||||
|
adjusted backwards, nor will it incorrectly throttle clients when adjusted forward.
|
||||||
|
However, because clock adjustments (time shifts) of more than xx seconds are
|
||||||
|
so dangerous (and will still cause a number of issues), big warnings are now
|
||||||
|
printed when they happen.
|
||||||
|
Morale: synchronize your system clock, or use the built-in timesync feature.
|
||||||
|
|
||||||
==[ MINOR BUGS FIXED ]==
|
==[ MINOR BUGS FIXED ]==
|
||||||
- Various compile problems, in particular with remote includes enabled.
|
- CGI:IRC: Several IPv6 issues, both on IPv6 IRCd's and CGI:IRC gateways
|
||||||
- Windows: the installer sometimes insisted that the Visual C++ 2008
|
- IP masks in oper::from::userhost sometimes didn't match when they should
|
||||||
redistributable package was not installed, when it actually was there.
|
- (G)ZLINE's on IPv6 users were sometimes rejected
|
||||||
- Windows: MOTD file date/time was always showing up as 1/1/1970.
|
- CHROOTDIR works again
|
||||||
|
- OperOverride fixes
|
||||||
|
- Throttling is now more accurate
|
||||||
- And more... see Changelog
|
- And more... see Changelog
|
||||||
|
|
||||||
==[ REMOVED / DROPPED ]==
|
|
||||||
- Windows 9X is no longer supported
|
|
||||||
- The networks/ directory has been removed
|
|
||||||
|
|
||||||
==[ KNOWN ISSUES ]==
|
==[ KNOWN ISSUES ]==
|
||||||
- Regexes: Be careful with backreferences (\1, etc), certain regexes can
|
- Regexes: Be careful with backreferences (\1, etc), certain regexes can slow the IRCd
|
||||||
slow the IRCd down considerably and even bring it to a near-halt.
|
down considerably and even bring it to a near-halt. In the spamfilter user target it's
|
||||||
In the spamfilter user target it's usually safe though.
|
usually safe though. Slow spamfilter detection can help prevent the slowdown/freeze,
|
||||||
Slow spamfilter detection can help prevent the slowdown/freeze, but
|
but might not work in worst-case scenario's.
|
||||||
might not work in worst-case scenario's.
|
- Regexes: Possessive quantifiers such as, for example, "++" (not to be confused with "+")
|
||||||
- Regexes: Possessive quantifiers such as, for example, "++" (not to be
|
are not safe to use, they can easily freeze the IRCd.
|
||||||
confused with "+") are not safe to use, they can easily freeze the IRCd.
|
- Suse 10.3 in 64 bit mode (amd64, x64) is known to crash UnrealIRCd on-boot, this is
|
||||||
|
likely to be a Suse 10.3 bug as over 3 people reported it with that exact OS / arch.
|
||||||
|
|
||||||
==[ ADDITIONAL INFO ]==
|
==[ ADDITIONAL INFO ]==
|
||||||
- See Changelog for more details
|
* See Changelog for more details
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
[repository]
|
|
||||||
native = LF
|
|
||||||
|
|
||||||
[patterns]
|
|
||||||
.RELEASE.NOTES = native
|
|
||||||
README = native
|
|
||||||
Unreal.nfo = native
|
|
||||||
makefile.win32 = native
|
|
||||||
Changes = native
|
|
||||||
**.c = native
|
|
||||||
**.h = native
|
|
||||||
**.conf = native
|
|
||||||
**.html = native
|
|
||||||
**.txt = native
|
|
||||||
**.bat = native
|
|
||||||
**.iss = native
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
syntax: regexp
|
|
||||||
|
|
||||||
# particular targets
|
|
||||||
^ircdcron/ircdchk$
|
|
||||||
^ircdcron/ircd\.cron$
|
|
||||||
^src/ircd$
|
|
||||||
^src/include$
|
|
||||||
^src/version\.c$
|
|
||||||
^unreal$
|
|
||||||
^server\.(cert|key|req)\.pem$
|
|
||||||
|
|
||||||
# extras archives and builds
|
|
||||||
^extras/[^/]*\.(bak|tar)$
|
|
||||||
^extras/[^/]*\d/
|
|
||||||
^extras/(c-ares|regexp)/
|
|
||||||
|
|
||||||
# running unrealircd from the source directory
|
|
||||||
^ircd\.(log|pid|tune)$
|
|
||||||
^ssl\.rnd$
|
|
||||||
|
|
||||||
# General
|
|
||||||
\.(o|so|orig|rej)$
|
|
||||||
~$
|
|
||||||
(^|/)core(\.\d+)?$
|
|
||||||
|
|
||||||
# autotools
|
|
||||||
^aclocal\.m4$
|
|
||||||
^autom4te\.cache/
|
|
||||||
^config\.(status|log)$
|
|
||||||
|
|
||||||
# not quite autotools
|
|
||||||
^config\.settings$
|
|
||||||
^include/setup\.h$
|
|
||||||
^Makefile$
|
|
||||||
^src/modules/Makefile$
|
|
||||||
+4834
-2522
File diff suppressed because it is too large
Load Diff
-4844
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
|
|
||||||
RUN_CONFIGURE () {
|
RUN_CONFIGURE () {
|
||||||
ARG=" "
|
ARG=""
|
||||||
# Do this even if we're not in advanced mode
|
# Do this even if we're not in advanced mode
|
||||||
if [ "$SHOWLISTMODES" = "1" ] ; then
|
if [ "$SHOWLISTMODES" = "1" ] ; then
|
||||||
ARG="$ARG--with-showlistmodes "
|
ARG="$ARG--with-showlistmodes "
|
||||||
@@ -41,9 +41,12 @@ fi
|
|||||||
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
||||||
ARG="$ARG--with-operoverride-verify "
|
ARG="$ARG--with-operoverride-verify "
|
||||||
fi
|
fi
|
||||||
if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
|
||||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
|
||||||
fi
|
fi
|
||||||
|
if [ "$NOSPOOF" = "1" ] ; then
|
||||||
|
ARG="$ARG--enable-nospoof "
|
||||||
|
fi
|
||||||
|
if [ -n "$HUB" ] ; then
|
||||||
|
ARG="$ARG--enable-hub "
|
||||||
fi
|
fi
|
||||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||||
if test x"$SSLDIR" = "x" ; then
|
if test x"$SSLDIR" = "x" ; then
|
||||||
@@ -65,8 +68,8 @@ fi
|
|||||||
if [ "$INET6" = "1" ] ; then
|
if [ "$INET6" = "1" ] ; then
|
||||||
ARG="$ARG--enable-inet6 "
|
ARG="$ARG--enable-inet6 "
|
||||||
fi
|
fi
|
||||||
if [ "$PREFIXAQ" != "1" ]; then
|
if [ "$PREFIXAQ" = "1" ]; then
|
||||||
ARG="$ARG--disable-prefixaq "
|
ARG="$ARG--enable-prefixaq "
|
||||||
fi
|
fi
|
||||||
ARG="$ARG--with-listen=$LISTEN_SIZE "
|
ARG="$ARG--with-listen=$LISTEN_SIZE "
|
||||||
ARG="$ARG--with-dpath=$DPATH "
|
ARG="$ARG--with-dpath=$DPATH "
|
||||||
@@ -74,57 +77,21 @@ ARG="$ARG--with-spath=$SPATH "
|
|||||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||||
|
ARG="$ARG--with-hostname=$DOMAINNAME "
|
||||||
ARG="$ARG--with-permissions=$DEFPERM "
|
ARG="$ARG--with-permissions=$DEFPERM "
|
||||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||||
ARG="$ARG--enable-dynamic-linking "
|
ARG="$ARG--enable-dynamic-linking "
|
||||||
ARG="$ARG $EXTRAPARA "
|
ARG="$ARG $EXTRAPARA "
|
||||||
CONF="./configure $ARG"
|
CONF="./configure $ARG"
|
||||||
if [ "x$INSTALLCURL" = "x1" ]; then
|
|
||||||
./curlinstall || exit 1
|
|
||||||
fi
|
|
||||||
echo $CONF
|
echo $CONF
|
||||||
$CONF || exit 1
|
$CONF || exit 1
|
||||||
cd "$UNREALCWD"
|
cd "$UNREALCWD"
|
||||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||||
if [ ! -f server.req.pem ]; then
|
if [ ! -f server.req.pem ]; then
|
||||||
export OPENSSLPATH
|
export OPENSSLPATH
|
||||||
TEST=""
|
make pem
|
||||||
while [ -z "$TEST" ] ; do
|
cat .SICI
|
||||||
if [ "$GENCERTIFICATE" = "1" ] ; then
|
read cc
|
||||||
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
|
|
||||||
cat .SICI
|
|
||||||
read cc
|
|
||||||
else
|
|
||||||
echo "Ok, not generating SSL certificate. Make sure that the certificate and key"
|
|
||||||
echo "are installed as server.crt.pem and server.key.pem prior to starting the IRCd."
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "SSL certificate already existing, no need to regenerate"
|
echo "SSL certificate already existing, no need to regenerate"
|
||||||
fi
|
fi
|
||||||
@@ -308,41 +275,15 @@ while [ -z "$TEST" ] ; do
|
|||||||
esac
|
esac
|
||||||
done
|
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=""
|
c=""
|
||||||
n=""
|
n=""
|
||||||
UNREALCWD="`pwd`"
|
UNREALCWD="`pwd`"
|
||||||
|
NOSPOOF=""
|
||||||
DPATH="`pwd`"
|
DPATH="`pwd`"
|
||||||
SPATH="`pwd`/src/ircd"
|
SPATH="`pwd`/src/ircd"
|
||||||
|
HUB="1"
|
||||||
|
DOMAINNAME=`hostname`
|
||||||
DEFPERM="0600"
|
DEFPERM="0600"
|
||||||
CRYPTOIRCD=""
|
CRYPTOIRCD=""
|
||||||
SSLDIR=""
|
SSLDIR=""
|
||||||
@@ -363,8 +304,6 @@ SHUNNOTICES=""
|
|||||||
NOOPEROVERRIDE=""
|
NOOPEROVERRIDE=""
|
||||||
DISABLEUSERMOD=""
|
DISABLEUSERMOD=""
|
||||||
OPEROVERRIDEVERIFY=""
|
OPEROVERRIDEVERIFY=""
|
||||||
DISABLEEXTBANSTACKING=""
|
|
||||||
GENCERTIFICATE="1"
|
|
||||||
EXTRAPARA=""
|
EXTRAPARA=""
|
||||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||||
c="\c"
|
c="\c"
|
||||||
@@ -372,23 +311,6 @@ else
|
|||||||
n="-n"
|
n="-n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
date|grep 2015 1>/dev/null 2>&1
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
echo "*** WARNING ***"
|
|
||||||
echo "UnrealIRCd 3.2.x will no longer be supported after December 31, 2016."
|
|
||||||
echo "You should upgrade to UnrealIRCd 4 before that date."
|
|
||||||
echo "See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated"
|
|
||||||
echo $n . $c
|
|
||||||
sleep 1
|
|
||||||
echo $n . $c
|
|
||||||
sleep 1
|
|
||||||
echo $n . $c
|
|
||||||
sleep 1
|
|
||||||
echo $n . $c
|
|
||||||
sleep 1
|
|
||||||
echo ""
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#parse arguments
|
#parse arguments
|
||||||
NOCACHE=""
|
NOCACHE=""
|
||||||
@@ -426,12 +348,6 @@ while [ $# -ge 1 ] ; do
|
|||||||
shift 1
|
shift 1
|
||||||
done
|
done
|
||||||
|
|
||||||
date|grep 2015 1>/dev/null 2>&1
|
|
||||||
if [ "$?" -ne 0 ]; then
|
|
||||||
echo $n "[Enter to continue]"
|
|
||||||
read cc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
||||||
. ./config.settings
|
. ./config.settings
|
||||||
fi
|
fi
|
||||||
@@ -461,6 +377,41 @@ clear
|
|||||||
clear
|
clear
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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"
|
TEST="$DPATH"
|
||||||
echo ""
|
echo ""
|
||||||
echo "What directory are all the server configuration files in?"
|
echo "What directory are all the server configuration files in?"
|
||||||
@@ -472,28 +423,58 @@ else
|
|||||||
DPATH=`eval echo $cc` # modified
|
DPATH=`eval echo $cc` # modified
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
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=""
|
TEST=""
|
||||||
SAVEME="$SPATH"
|
|
||||||
while [ -z "$TEST" ] ; do
|
while [ -z "$TEST" ] ; do
|
||||||
TEST="$SAVEME"
|
if [ "$HUB" = "1" ] ; then
|
||||||
echo ""
|
TEST="Hub"
|
||||||
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
|
else
|
||||||
SPATH=`eval echo $cc` # modified
|
TEST="Leaf"
|
||||||
fi
|
fi
|
||||||
if [ "$SPATH" = "$DPATH" ]; then
|
echo ""
|
||||||
echo ""
|
echo "Would you like to compile as a hub or as a leaf?"
|
||||||
echo "You need to specify the path to the BINARY, not to a directory."
|
echo "Type Hub to select hub and Leaf to select leaf."
|
||||||
echo "The answer to this question can never be identical to the previous one."
|
echo $n "[$TEST] -> $c"
|
||||||
echo "HINT: perhaps you want $DPATH/ircd ?"
|
read cc
|
||||||
TEST=""
|
if [ -z "$cc" ] ; then
|
||||||
|
cc=$TEST
|
||||||
fi
|
fi
|
||||||
|
case "$cc" in
|
||||||
|
[Hh]*)
|
||||||
|
HUB="1"
|
||||||
|
;;
|
||||||
|
[Ll]*)
|
||||||
|
HUB=""
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
echo "You must enter either Hub or Leaf"
|
||||||
|
TEST=""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
done
|
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=""
|
TEST=""
|
||||||
while [ -z "$TEST" ] ; do
|
while [ -z "$TEST" ] ; do
|
||||||
TEST="$DEFPERM"
|
TEST="$DEFPERM"
|
||||||
@@ -552,7 +533,7 @@ if [ "$CRYPTOIRCD" = "1" ] ; then
|
|||||||
TEST="$SSLDIR"
|
TEST="$SSLDIR"
|
||||||
echo ""
|
echo ""
|
||||||
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
||||||
echo "leave this blank (in most cases it will be detected automatically)."
|
echo "leave this blank"
|
||||||
echo $n "[$TEST] -> $c"
|
echo $n "[$TEST] -> $c"
|
||||||
read cc
|
read cc
|
||||||
if [ -z "$cc" ] ; then
|
if [ -z "$cc" ] ; then
|
||||||
@@ -643,8 +624,6 @@ while [ -z "$TEST" ] ; do
|
|||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
echo "Do you want to enable remote includes?"
|
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"
|
echo $n "[$TEST] -> $c"
|
||||||
read cc
|
read cc
|
||||||
if [ -z "$cc" ] ; then
|
if [ -z "$cc" ] ; then
|
||||||
@@ -667,144 +646,20 @@ while [ -z "$TEST" ] ; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ "$REMOTEINC" = "1" ] ; then
|
if [ "$REMOTEINC" = "1" ] ; then
|
||||||
if [ ! -d "$CURLDIR" ]; then
|
TEST=""
|
||||||
# Reset any previous CURLDIR if it doesn't exist (anymore)
|
while [ -z "$TEST" ] ; do
|
||||||
CURLDIR=""
|
TEST="$CURLDIR"
|
||||||
fi
|
echo ""
|
||||||
|
echo "Specify the directory you installed libcurl to"
|
||||||
|
echo $n "[$TEST] -> $c"
|
||||||
INSTALLCURL="0"
|
read cc
|
||||||
if [ "x$CURLDIR" = "x" ]; then
|
if [ -z "$cc" ] ; then
|
||||||
# There is no reason to support this:
|
cc=$TEST
|
||||||
if [ -d "/usr/local/include/curl" ]; then
|
else
|
||||||
CURLDIR="/usr/local"
|
TEST=$cc
|
||||||
|
CURLDIR=`eval echo $cc` # modified
|
||||||
fi
|
fi
|
||||||
# Zeroeth, let's act SANE
|
done
|
||||||
if [ -d "/usr/include/curl" ]; then
|
|
||||||
CURLDIR="/usr"
|
|
||||||
fi
|
|
||||||
# First, let's make shell admins happy...
|
|
||||||
if [ -d "/usr/share/unreal-curl" ]; then
|
|
||||||
CURLDIR="/usr/share/unreal-curl"
|
|
||||||
fi
|
|
||||||
|
|
||||||
GOTASYNC=0
|
|
||||||
if [ "x$CURLDIR" != "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 "$CURLDIR"/bin/curl-config --features | grep -q -e AsynchDNS; then
|
|
||||||
GOTASYNC="1"
|
|
||||||
fi
|
|
||||||
if [ "$GOTASYNC" != "1" ]; then
|
|
||||||
PREVCURLDIR="$CURLDIR"
|
|
||||||
CURLDIR=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Second, use the local curl if it exists (overrides above)
|
|
||||||
if [ -d "$HOME/curl" ]; then
|
|
||||||
CURLDIR="$HOME/curl"
|
|
||||||
|
|
||||||
# Check if it's recent enough...
|
|
||||||
# But first, check if curl-config can be trusted at all: it depends
|
|
||||||
# on 'bc' for some reason and not all systems have that installed!
|
|
||||||
echo "1+1"|bc 1>/dev/null 2>&1
|
|
||||||
if [ "$?" = 0 ]; then
|
|
||||||
"$CURLDIR"/bin/curl-config --checkfor 7.21.0
|
|
||||||
if [ "$?" != 0 ]; then
|
|
||||||
echo ""
|
|
||||||
echo "Your self-compiled CURL library in $CURLDIR is slightly outdated."
|
|
||||||
echo "This probably means you had the library from a previous installation of UnrealIRCd."
|
|
||||||
echo "Because previous versions may be linked to a previous version to c-ares which"
|
|
||||||
echo "were not ABI compatible it is highly recommended to remove the version"
|
|
||||||
echo "and recompile it. We now have an automatic downloader and installer to compile"
|
|
||||||
echo "and install curl for you (in $CURLDIR). You can choose to do so in the question"
|
|
||||||
echo "after this one."
|
|
||||||
TEST=""
|
|
||||||
while [ -z "$TEST" ] ; do
|
|
||||||
TEST="Yes"
|
|
||||||
echo "Shall I rename $CURLDIR to $CURLDIR.old so it can be rebuild later on?"
|
|
||||||
echo $n "[$TEST] -> $c"
|
|
||||||
read cc
|
|
||||||
if [ -z "$cc" ] ; then
|
|
||||||
cc=$TEST
|
|
||||||
fi
|
|
||||||
case "$cc" in
|
|
||||||
[Yy]*)
|
|
||||||
rm -rf "$CURLDIR".old
|
|
||||||
mv "$CURLDIR" "$CURLDIR".old
|
|
||||||
CURLDIR=""
|
|
||||||
GOTASYNC=1
|
|
||||||
# wow the GOTASYNC=1 is hackish, but we need to prevent the error from later on
|
|
||||||
;;
|
|
||||||
[Nn]*)
|
|
||||||
echo "Uh, ok... I hope you know what you are doing..."
|
|
||||||
echo ""
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo ""
|
|
||||||
echo "You must enter either Yes or No"
|
|
||||||
TEST=""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
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 "$GOTASYNC" != "1" ]; then
|
|
||||||
echo "Curl library was found in $PREVCURLDIR, but it does not support Asynchronous DNS (not compiled with c-ares)"
|
|
||||||
echo "so it's of no use to us."
|
|
||||||
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 "(will install in $HOME/curl)"
|
|
||||||
echo $n "[$TEST] -> $c"
|
|
||||||
read cc
|
|
||||||
if [ -z "$cc" ] ; then
|
|
||||||
cc=$TEST
|
|
||||||
fi
|
|
||||||
case "$cc" in
|
|
||||||
[Yy]*)
|
|
||||||
INSTALLCURL="1"
|
|
||||||
CURLDIR="$HOME/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
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -963,20 +818,16 @@ done
|
|||||||
if [ -n "$ADVANCED" ] ; then
|
if [ -n "$ADVANCED" ] ; then
|
||||||
RUN_ADVANCED
|
RUN_ADVANCED
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TEST="$EXTRAPARA"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Would you like to pass any custom parameters to configure?"
|
echo "Would you like any more parameters to configure?"
|
||||||
echo "See \`./configure --help' and write them here:"
|
echo "Write them here:"
|
||||||
echo $n "[$TEST] -> $c"
|
echo $n "[]-> $c"
|
||||||
read EXTRAPARA
|
read EXTRAPARA
|
||||||
if [ -z "$EXTRAPARA" ]; then
|
|
||||||
EXTRAPARA="$TEST"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f config.settings
|
rm -f config.settings
|
||||||
cat > config.settings << __EOF__
|
cat > config.settings << __EOF__
|
||||||
#
|
#
|
||||||
|
NOSPOOF="$NOSPOOF"
|
||||||
DPATH="$DPATH"
|
DPATH="$DPATH"
|
||||||
SPATH="$SPATH"
|
SPATH="$SPATH"
|
||||||
INET6="$INET6"
|
INET6="$INET6"
|
||||||
@@ -986,6 +837,8 @@ MAXSENDQLENGTH="$MAXSENDQLENGTH"
|
|||||||
BUFFERPOOL="$BUFFERPOOL"
|
BUFFERPOOL="$BUFFERPOOL"
|
||||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||||
|
HUB="$HUB"
|
||||||
|
DOMAINNAME="$DOMAINNAME"
|
||||||
DEFPERM="$DEFPERM"
|
DEFPERM="$DEFPERM"
|
||||||
CRYPTOIRCD="$CRYPTOIRCD"
|
CRYPTOIRCD="$CRYPTOIRCD"
|
||||||
SSLDIR="$SSLDIR"
|
SSLDIR="$SSLDIR"
|
||||||
@@ -999,8 +852,6 @@ SHUNNOTICES="$SHUNNOTICES"
|
|||||||
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
|
||||||
GENCERTIFICATE="$GENCERTIFICATE"
|
|
||||||
EXTRAPARA="$EXTRAPARA"
|
EXTRAPARA="$EXTRAPARA"
|
||||||
ADVANCED="$ADVANCED"
|
ADVANCED="$ADVANCED"
|
||||||
__EOF__
|
__EOF__
|
||||||
@@ -1021,6 +872,8 @@ cat << __EOF__
|
|||||||
|_______________________________________________________________________|
|
|_______________________________________________________________________|
|
||||||
| - The UnrealIRCd Team - |
|
| - The UnrealIRCd Team - |
|
||||||
| |
|
| |
|
||||||
|
| * Stskeeps stskeeps@unrealircd.com |
|
||||||
|
| * codemastr codemastr@unrealircd.com |
|
||||||
| * Syzop syzop@unrealircd.com |
|
| * Syzop syzop@unrealircd.com |
|
||||||
|_______________________________________________________________________|
|
|_______________________________________________________________________|
|
||||||
__EOF__
|
__EOF__
|
||||||
|
|||||||
@@ -1,18 +1,32 @@
|
|||||||
UnrealIRCd is a free program, but we do put a lot of time, effort, and money
|
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 users to show their
|
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
|
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
|
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.
|
a donation. We're not asking for anything huge, whatever you can afford is fine.
|
||||||
|
|
||||||
PayPal Donation Link: http://unrealircd.com/donate.php
|
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>
|
||||||
|
|
||||||
If you don't want to use PayPal, or you want to donate something other than money,
|
Or simply send a payment through PayPal to:
|
||||||
contact Syzop (syzop@unrealircd.com).
|
donation@unrealircd.org
|
||||||
|
|
||||||
All those who donate at least a certain minimum amount will have their name
|
If you don't want to use PayPal, or you want to donate something other than money
|
||||||
and/or company listed in /CREDITS.
|
(old computer hardware, etc.), contact Stskeeps (stskeeps@unrealircd.com) and send
|
||||||
Additionally, all donators will be listed on the website (regardless of the amount).
|
your donation to:
|
||||||
Please check the website for details.
|
|
||||||
|
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,
|
Thank you for your support,
|
||||||
The UnrealIRCd Team
|
The UnrealIRCd Team
|
||||||
|
|
||||||
|
[ $Id$ ]
|
||||||
|
|||||||
+20
-29
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
|
|||||||
#
|
#
|
||||||
|
|
||||||
#XCFLAGS=-O -g -export-dynamic
|
#XCFLAGS=-O -g -export-dynamic
|
||||||
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @CARES_LIBS@
|
IRCDLIBS=@IRCDLIBS@ @TRELIBS@ @CARESLIBS@
|
||||||
CRYPTOLIB=@CRYPTOLIB@
|
CRYPTOLIB=@CRYPTOLIB@
|
||||||
OPENSSLINCLUDES=
|
OPENSSLINCLUDES=
|
||||||
|
|
||||||
XCFLAGS=@TRE_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@
|
XCFLAGS=-I@TREINCDIR@ -I@CARESINCDIR@ @CARESLIBDIR@ @CFLAGS@
|
||||||
#
|
#
|
||||||
# use the following on MIPS:
|
# use the following on MIPS:
|
||||||
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
||||||
@@ -104,11 +104,9 @@ URL=@URL@
|
|||||||
STRTOUL=@STRTOUL@
|
STRTOUL=@STRTOUL@
|
||||||
|
|
||||||
# [CHANGEME]
|
# [CHANGEME]
|
||||||
# If you get crashes around a specific number of clients, and that
|
# If you get crashes around a specific number of clients, and that client
|
||||||
# client load comes close or a little over the system-defined value of
|
# load comes close or a little over the system-defined value of FD_SETSIZE,
|
||||||
# FD_SETSIZE, override it here and see what happens. You may override
|
# override it here and see what happens.
|
||||||
# the system FD_SETSIZE by setting the FD_SETSIZE Makefile variable to
|
|
||||||
# -DFD_SETSIZE=<some number>.
|
|
||||||
FD_SETSIZE=@FD_SETSIZE@
|
FD_SETSIZE=@FD_SETSIZE@
|
||||||
|
|
||||||
# Where is your openssl binary
|
# Where is your openssl binary
|
||||||
@@ -137,17 +135,16 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
|||||||
'URL=${URL}'
|
'URL=${URL}'
|
||||||
|
|
||||||
custommodule:
|
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
|
server:
|
||||||
build: Makefile
|
build:
|
||||||
-@if [ ! -f include/setup.h ] ; then \
|
-@if [ ! -f include/setup.h ] ; then \
|
||||||
echo "Hmm...doesn't look like you've run Config..."; \
|
echo "Hmm...doesn't look like you've run Config..."; \
|
||||||
echo "Doing so now."; \
|
echo "Doing so now."; \
|
||||||
sh Config; \
|
sh Config; \
|
||||||
fi
|
fi
|
||||||
@+for i in $(SUBDIRS); do \
|
@for i in $(SUBDIRS); do \
|
||||||
echo "Building $$i";\
|
echo "Building $$i";\
|
||||||
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
||||||
done
|
done
|
||||||
@@ -167,7 +164,7 @@ build: Makefile
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) -f *~ \#* core *.orig include/*.orig
|
$(RM) -f *~ \#* core *.orig include/*.orig
|
||||||
@+for i in $(SUBDIRS); do \
|
@for i in $(SUBDIRS); do \
|
||||||
echo "Cleaning $$i";\
|
echo "Cleaning $$i";\
|
||||||
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
||||||
done
|
done
|
||||||
@@ -176,7 +173,7 @@ clean:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cleandir: clean
|
cleandir: clean
|
||||||
rm -rf include/setup.h Makefile Settings
|
rm -rf include/networks.h include/setup.h Makefile Settings
|
||||||
|
|
||||||
makex:
|
makex:
|
||||||
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
||||||
@@ -199,14 +196,18 @@ stamp: makedist
|
|||||||
echo "" >> include/stamp.h
|
echo "" >> include/stamp.h
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
@+for i in $(SUBDIRS); do \
|
@for i in $(SUBDIRS); do \
|
||||||
echo "Making dependencies in $$i";\
|
echo "Making dependencies in $$i";\
|
||||||
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
||||||
done
|
done
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||||
$(INSTALL) -m 0700 src/ircd $(BINDIR) 2>/dev/null || { $(INSTALL) -m 0700 -d "$$(dirname '$(BINDIR)')"; $(INSTALL) -m 0700 src/ircd $(BINDIR); }
|
$(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 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 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 0700 -d $(IRCDDIR)/aliases
|
||||||
@@ -218,28 +219,20 @@ install: all
|
|||||||
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
||||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
||||||
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/ircdcron
|
|
||||||
$(INSTALL) -m 0600 ircdcron/ircd.cron $(IRCDDIR)/ircdcron
|
|
||||||
$(INSTALL) -m 0700 ircdcron/ircdchk $(IRCDDIR)/ircdcron
|
|
||||||
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
||||||
$(INSTALL) -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
$(INSTALL) -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||||
fi
|
fi
|
||||||
-@if [ server.cert.pem -nt "$(IRCDDIR)/server.cert.pem" ] ; then \
|
|
||||||
$(INSTALL) -m 0600 server.req.pem $(IRCDDIR) ; \
|
|
||||||
$(INSTALL) -m 0600 server.key.pem $(IRCDDIR) ; \
|
|
||||||
$(INSTALL) -m 0600 server.cert.pem $(IRCDDIR) ; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
pem: src/ssl.cnf
|
pem: src/ssl.cnf
|
||||||
@echo "Generating certificate request .. "
|
@echo "Generating certificate request .. "
|
||||||
$(OPENSSLPATH) req -new \
|
$(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
|
-keyout server.key.pem -nodes
|
||||||
@echo "Generating self-signed certificate .. "
|
@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
|
-key server.key.pem -out server.cert.pem
|
||||||
@echo "Generating fingerprint .."
|
@echo "Generating fingerprint .."
|
||||||
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
|
$(OPENSSLPATH) x509 -subject -dates -fingerprint -noout \
|
||||||
-in server.cert.pem
|
-in server.cert.pem
|
||||||
@echo "Setting o-rwx & g-rwx for files... "
|
@echo "Setting o-rwx & g-rwx for files... "
|
||||||
chmod o-rwx server.req.pem server.key.pem server.cert.pem
|
chmod o-rwx server.req.pem server.key.pem server.cert.pem
|
||||||
@@ -256,5 +249,3 @@ encpem: server.key.pem
|
|||||||
rm -f server.key.c.pem ; \
|
rm -f server.key.c.pem ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
Makefile: config.status Makefile.in
|
|
||||||
./config.status
|
|
||||||
|
|||||||
+38
-47
@@ -1,29 +1,24 @@
|
|||||||
===============================================
|
===============================================
|
||||||
= UnrealIRCd v3.2.10.7 =
|
= UnrealIRCd v3.2.8.1 =
|
||||||
===============================================
|
===============================================
|
||||||
This release was brought to you by:
|
This release was brought to you by:
|
||||||
|
|
||||||
Head coder:
|
|
||||||
============
|
|
||||||
* Syzop
|
|
||||||
|
|
||||||
Coders:
|
Coders:
|
||||||
========
|
=======
|
||||||
* binki
|
* Syzop
|
||||||
|
|
||||||
Contributors:
|
Contributors:
|
||||||
=============
|
=============
|
||||||
* Heero
|
* aquanight
|
||||||
* nenolod
|
|
||||||
* Adam
|
|
||||||
* warg
|
|
||||||
* Stealth
|
|
||||||
* WolfSage
|
* WolfSage
|
||||||
* katsklaw
|
* Stealth
|
||||||
* darkex
|
* tabrisnet
|
||||||
* fspijkerman
|
* Bock
|
||||||
* fbi
|
* fbi
|
||||||
* Apocalypse
|
|
||||||
|
RC Testers:
|
||||||
|
===========
|
||||||
|
* Bock, Apocalypse, StrawberryKittens, wax, Elemental, and many more
|
||||||
|
|
||||||
Previous coders:
|
Previous coders:
|
||||||
================
|
================
|
||||||
@@ -31,47 +26,43 @@
|
|||||||
* codemastr
|
* codemastr
|
||||||
* Many more..
|
* Many more..
|
||||||
|
|
||||||
Internet Presence:
|
Precenses on the Internet:
|
||||||
* http://www.unrealircd.com/
|
* http://www.unrealircd.com
|
||||||
|
|
||||||
UnrealIRCd Bugtracker (Where to report bugs, make suggestions, and submit patches)
|
CVS
|
||||||
===================================================================================
|
====
|
||||||
http://bugs.unrealircd.org/
|
To get anonymous access: (read only)
|
||||||
|
"cvs -d :pserver:anonymous@cvs.unrealircd.com:/cvs login"
|
||||||
|
|
||||||
|
press enter when asked for password
|
||||||
|
Then, choose the appropiate branch you want:
|
||||||
|
|
||||||
|
latest 3.2 release ("stable"):
|
||||||
|
"cvs -z3 -d :pserver:anonymous@cvs.unrealircd.com:/cvs checkout -r stable -d Unreal-stable unreal"
|
||||||
|
|
||||||
|
latest 3.2 fixes / development ("unreal3_2_fixes"):
|
||||||
|
"cvs -z3 -d :pserver:anonymous@cvs.unrealircd.com:/cvs checkout -r unreal3_2_fixes -d Unreal-stable unreal"
|
||||||
|
|
||||||
To get support
|
To get support
|
||||||
================
|
================
|
||||||
Before asking others for help you MUST:
|
Before asking others for help you MUST:
|
||||||
* read the docs (doc/unreal32docs.html or online: http://unrealircd.com/unreal32docs.html)
|
* read the docs (doc/unreal32docs.html or online: www.unrealircd.com/unreal32docs.html)
|
||||||
* check the FAQ (http://vulnscan.org/UnrealIrcd/faq/)
|
* check the FAQ (www.vulnscan.org/UnrealIrcd/faq/)
|
||||||
|
|
||||||
Means of support:
|
Means of support:
|
||||||
* IRC: /server irc.unrealircd.com 6667 - /join #unreal-support
|
* IRC: /server irc.unrealircd.com 6667 - /join #unreal-support
|
||||||
[Note: Follow the bot's instructions in order to get voice.
|
[Note: Follow the bots instructions in order to get voice.
|
||||||
Please be patient after asking questions, we may be busy
|
Please be patient after asking questions, we may do other stuff
|
||||||
or we're away. Don't repeat questions, we will have heard
|
or we're away. Don't repeat questions, we heard you first time,
|
||||||
you first time.
|
READ THE TOPIC before you ask anything. We do this on a free
|
||||||
READ THE TOPIC before you ask anything. We give support
|
base so we are volunteeringly helping you, but we are humans
|
||||||
on a free basis. We are volunteering to help you, but we
|
like you, and we got to have peace at times as well.]
|
||||||
are humans like you. We sometimes just need some peace.]
|
|
||||||
* Forum: http://forums.unrealircd.com/
|
* Forum: http://forums.unrealircd.com/
|
||||||
|
|
||||||
Development version
|
UnrealIRCd Bugtracker (Where to report bugs or make suggestions)
|
||||||
====================
|
==================================================================
|
||||||
To access the latest development version of UnrealIRCd you need to use mercurial (hg).
|
http://bugs.unrealircd.org
|
||||||
Note that because you are accessing a development version it may not compile, the
|
|
||||||
server may crash, or other problems can occur since the code is likely to be only
|
|
||||||
lightly tested (or not at all). On the other hand, using the development version may
|
|
||||||
help you to get rid of that single nasty bug that is haunting you, plus if you test
|
|
||||||
it and give us feedback (report bugs) then you actually help us with developing Unreal.
|
|
||||||
|
|
||||||
The command to grab the development version is:
|
|
||||||
hg clone http://hg.unrealircd.org/unreal
|
|
||||||
|
|
||||||
If you get something like 'hg: command not found' then you need to install mercurial.
|
|
||||||
Most *NIX systems have such a 'mercurial' package, but if you don't, or you are on
|
|
||||||
Windows or Mac OS X, then see http://mercurial.selenic.com/
|
|
||||||
|
|
||||||
Want to discuss, chat, etc?
|
Want to discuss, chat, etc?
|
||||||
=============================
|
=============================
|
||||||
* IRC: /server irc.unrealircd.com 6667 - /join #chat
|
* IRC: /server irc.unrealircd.com 6667 - /join #UnrealIRCd
|
||||||
(NOT for support! If you want support then use #unreal-support instead!)
|
|
||||||
|
|||||||
@@ -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";
|
|
||||||
|
|
||||||
Vendored
+174
@@ -0,0 +1,174 @@
|
|||||||
|
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`
|
||||||
|
CURLLIBS=`$enableval/bin/curl-config --libs`
|
||||||
|
|
||||||
|
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.
|
||||||
|
if test "x`echo $CURLLIBS |grep ares`" != x ; then
|
||||||
|
dnl Attempt one: Linux sed
|
||||||
|
XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||||
|
if test x"$XCURLLIBS" = x; then
|
||||||
|
dnl Attempt two: FreeBSD (and others?) sed
|
||||||
|
XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||||
|
if test x"$XCURLLIBS" = x; then
|
||||||
|
AC_MSG_ERROR([sed appears to be broken. It is needed for a remote includes compile hack.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
CURLLIBS="$XCURLLIBS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||||
|
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
|
||||||
|
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)
|
||||||
|
echo ""
|
||||||
|
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
|
||||||
|
echo "You have two options:"
|
||||||
|
echo "a) Install the needed binaries and libraries"
|
||||||
|
echo " and run ./Config"
|
||||||
|
echo "OR"
|
||||||
|
echo "b) If you don't need SSL..."
|
||||||
|
echo " Run ./Config and say 'no' when asked about SSL"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
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)
|
||||||
|
echo ""
|
||||||
|
echo "Apparently you do not have the zlib development library installed."
|
||||||
|
echo "You have two options:"
|
||||||
|
echo "a) Install the zlib development library"
|
||||||
|
echo " and run ./Config"
|
||||||
|
echo "OR"
|
||||||
|
echo "b) If you don't need compressed links..."
|
||||||
|
echo " Run ./Config and say 'no' when asked about ziplinks support"
|
||||||
|
echo ""
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
IRCDLIBS="$IRCDLIBS -lz";
|
||||||
|
if test "$zlibdir" != "/usr" ; then
|
||||||
|
LDFLAGS="$LDFLAGS -L$zlibdir/lib";
|
||||||
|
fi
|
||||||
|
HAVE_ZLIB=yes
|
||||||
|
fi
|
||||||
|
AC_SUBST(HAVE_ZLIB)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
])
|
||||||
@@ -0,0 +1,515 @@
|
|||||||
|
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 "`$CC -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 "`$CC -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_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.5"
|
||||||
|
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.6.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)
|
||||||
|
CARESLIBDIR="-L../extras/c-ares/lib"
|
||||||
|
AC_SUBST(CARESLIBDIR)
|
||||||
|
|
||||||
|
dnl Set default library parameters for when pkg-config is not available
|
||||||
|
CARESLIBSALT="-lcares"
|
||||||
|
case `uname -s` in
|
||||||
|
*FreeBSD*)
|
||||||
|
CARESLIBSALT="-lcares"
|
||||||
|
;;
|
||||||
|
*Linux*)
|
||||||
|
CARESLIBSALT="-lcares -lrt"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
dnl Use pkg-config for c-ares libraries, and if not available use defaults
|
||||||
|
dnl from above. Also, if pkg-config returns an empty result (ex: on fbsd
|
||||||
|
dnl or older versions it might be missing --static) then also use defaults.
|
||||||
|
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||||
|
CARESLIBS="$CARESLIBSALT"
|
||||||
|
else
|
||||||
|
CARESLIBS="`$ac_cv_path_PKGCONFIG --static --libs libcares.pc`"
|
||||||
|
if test "x$CARESLIBS" = "x" ; then
|
||||||
|
CARESLIBS="$CARESLIBSALT"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST(CARESLIBS)
|
||||||
|
cd $cur_dir
|
||||||
|
|
||||||
|
|
||||||
|
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
||||||
|
chmod 0700 unreal
|
||||||
|
chmod 0700 ircdcron/ircdchk
|
||||||
@@ -1,253 +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 --features | grep -q -e AsynchDNS],
|
|
||||||
[CURLUSESCARES="1"],
|
|
||||||
[CURLUSESCARES="0"])
|
|
||||||
AS_IF([test "$CURLUSESCARES" = "0"],
|
|
||||||
[AC_MSG_WARN([cURL seems compiled without c-ares support. Your IRCd will possibly stall when REHASHing!])])
|
|
||||||
|
|
||||||
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$with_system_cares" = "xno" && test "x$HOME/curl" != "x$enable_curl" && test "x/usr/share/unreal-curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ],
|
|
||||||
[
|
|
||||||
AC_MSG_ERROR([[
|
|
||||||
|
|
||||||
You have decided to build unrealIRCd with libcURL (remote includes) support.
|
|
||||||
However, you have disabled system-installed c-ares support (--with-system-cares).
|
|
||||||
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
|
|
||||||
]])
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([test "x`echo $CURLLIBS |grep ares`" != x && test "x$with_system_cares" = "xno"],
|
|
||||||
[
|
|
||||||
dnl Attempt one: Linux sed
|
|
||||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
|
||||||
AS_IF([test "x$XCURLLIBS" = "x"],
|
|
||||||
[
|
|
||||||
dnl Attempt two: FreeBSD (and others?) sed
|
|
||||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
|
||||||
AS_IF([test x"$XCURLLIBS" = x],
|
|
||||||
[
|
|
||||||
AC_MSG_ERROR([sed appears to be broken. It is needed for a remote includes compile hack.])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
CURLLIBS="$XCURLLIBS"
|
|
||||||
|
|
||||||
IRCDLIBS_CURL_CARES="$CARES_LIBS"
|
|
||||||
CFLAGS_CURL_CARES="$CARES_CFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
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/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/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 "You have two options:"
|
|
||||||
echo "a) Install the needed binaries and libraries"
|
|
||||||
echo " and run ./Config"
|
|
||||||
echo "OR"
|
|
||||||
echo "b) If you don't need SSL..."
|
|
||||||
echo " Run ./Config and say 'no' when asked about SSL"
|
|
||||||
echo " (or pass --disable-ssl to ./configure)"
|
|
||||||
echo ""
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
CRYPTOLIB="-lssl -lcrypto";
|
|
||||||
if test ! "$ssldir" = "/usr" ; then
|
|
||||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
|
||||||
fi
|
|
||||||
AC_DEFINE([USE_SSL], [], [Define if you want to allow SSL connections])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CHECK_ZLIB],
|
|
||||||
[
|
|
||||||
AC_ARG_ENABLE([ziplinks],
|
|
||||||
[AC_HELP_STRING([--enable-ziplinks=DIR],[enable ziplinks. will check /usr/local /usr /usr/pkg. Note that SSL does its own compression, so you won't need this for SSL links.])],
|
|
||||||
[],
|
|
||||||
[enable_ziplinks=no])
|
|
||||||
AS_IF([test $enable_ziplinks != "no"],
|
|
||||||
[
|
|
||||||
AC_MSG_CHECKING([for zlib])
|
|
||||||
for dir in $enable_ziplinks /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 -I$zlibdir/include";
|
|
||||||
fi
|
|
||||||
AC_DEFINE([ZIP_LINKS], [], [Define if you have zlib and want zip links support.])
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test x_$found_zlib != x_yes; then
|
|
||||||
AC_MSG_RESULT([not found])
|
|
||||||
echo ""
|
|
||||||
echo "Apparently you do not have the zlib development library installed."
|
|
||||||
echo "You have two options:"
|
|
||||||
echo "a) Install the zlib development library"
|
|
||||||
echo " and run ./Config"
|
|
||||||
echo "OR"
|
|
||||||
echo "b) If you don't need compressed links..."
|
|
||||||
echo " Run ./Config and say 'no' when asked about ziplinks support"
|
|
||||||
echo ""
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
IRCDLIBS="$IRCDLIBS -lz"
|
|
||||||
if test "$zlibdir" != "/usr" ; then
|
|
||||||
LDFLAGS="$LDFLAGS -L$zlibdir/lib"
|
|
||||||
fi
|
|
||||||
HAVE_ZLIB=yes
|
|
||||||
fi
|
|
||||||
AC_SUBST([HAVE_ZLIB])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
cd "$(dirname "${0}")"
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS=(-I autoconf/m4)
|
|
||||||
|
|
||||||
aclocal "${ACLOCAL_AMFLAGS[@]}"
|
|
||||||
autoconf
|
|
||||||
autoheader
|
|
||||||
-690
@@ -1,690 +0,0 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
|
||||||
|
|
||||||
dnl When updating the version, remember to update the following files
|
|
||||||
dnl appropriately:
|
|
||||||
dnl
|
|
||||||
dnl include/win32/setup.h
|
|
||||||
dnl src/win32/unrealinst.iss
|
|
||||||
dnl docs/unreal32docs*.html
|
|
||||||
dnl Unreal.nfo
|
|
||||||
dnl .CHANGES.NEW
|
|
||||||
dnl src/version.c.SH
|
|
||||||
|
|
||||||
AC_INIT([unrealircd], [3.2.10.7], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
|
|
||||||
AC_CONFIG_SRCDIR([src/ircd.c])
|
|
||||||
AC_CONFIG_HEADER([include/setup.h])
|
|
||||||
AC_CONFIG_AUX_DIR([autoconf])
|
|
||||||
AC_CONFIG_MACRO_DIR([autoconf/m4])
|
|
||||||
|
|
||||||
if test "x$enable_dynamic_linking" = "x"; then
|
|
||||||
echo "Please use ./Config instead of ./configure"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Calculate the versions. Perhaps the use of expr is a little too extravagant
|
|
||||||
# Generation version number (e.g.: 3 for Unreal3*)
|
|
||||||
UNREAL_VERSION_GENERATION=["`expr $PACKAGE_VERSION : '\([^.]*\)\.[^.]*\.[^.-_]*'`"]
|
|
||||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: 3 for Unreal3*)])
|
|
||||||
|
|
||||||
# Major version number (e.g.: 2 for Unreal3.2*)
|
|
||||||
UNREAL_VERSION_MAJOR=["`expr $PACKAGE_VERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`"]
|
|
||||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: 2 for Unreal3.2*)])
|
|
||||||
|
|
||||||
# Minor version number (e.g.: 1 for Unreal3.2.1)
|
|
||||||
UNREAL_VERSION_MINOR=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`"]
|
|
||||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: 1 for Unreal3.2.1)])
|
|
||||||
|
|
||||||
# The version suffix such as a beta marker or release candidate
|
|
||||||
# marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2). This macro is a
|
|
||||||
# string instead of an integer because it contains arbitrary data.
|
|
||||||
UNREAL_VERSION_SUFFIX=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.[0-9]*\(.*\)'`"]
|
|
||||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2)])
|
|
||||||
|
|
||||||
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 "`$CC -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 "`$CC -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], [], [Define if you have crypt])
|
|
||||||
IRCDLIBS="$IRCDLIBS-ldescrypt "
|
|
||||||
MKPASSWDLIBS="-ldescrypt"],
|
|
||||||
[AC_CHECK_LIB(crypt, crypt,
|
|
||||||
[AC_DEFINE([HAVE_CRYPT], [], [Define if you 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_CHECK_LIB(crypto, RAND_egd,
|
|
||||||
AC_DEFINE(HAVE_RAND_EGD, 1, [Define if the libcrypto has RAND_egd]))
|
|
||||||
|
|
||||||
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 -Wl,-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="-std=gnu89 -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
|
|
||||||
])
|
|
||||||
dnl libtool has built-in tests that determine proper underscorage
|
|
||||||
if test "$ac_cv_underscore" = "yes"; then
|
|
||||||
AC_DEFINE([UNDERSCORE], [], [Define if your system prepends an underscore to symbols])
|
|
||||||
fi
|
|
||||||
|
|
||||||
MODULEFLAGS=$ac_cv_pic
|
|
||||||
dnl DYNAMIC_LINKING is not meant to be defined in include/setup.h, it's
|
|
||||||
dnl defined in the Makefiles using -D. Having it defined globally will
|
|
||||||
dnl only cause braindamage and symbol collisions :-D.
|
|
||||||
dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically. (Dynamic linking is the only supported method of linking atm)])
|
|
||||||
])
|
|
||||||
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_ERROR([Your system does not support IPv6 so it will not be enabled])
|
|
||||||
else
|
|
||||||
AC_DEFINE([INET6], [], [Define if you want IPv6 enabled])
|
|
||||||
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], [1], [Define to 1 if your system has no in6addr_any.])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
LIBS="$save_libs"
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_CHECK_HEADER(sys/param.h,
|
|
||||||
AC_DEFINE([PARAMH], [], [Define if you have the <sys/param.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(stdlib.h,
|
|
||||||
AC_DEFINE([STDLIBH], [], [Define if you have the <stdlib.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(stddef.h,
|
|
||||||
AC_DEFINE([STDDEFH], [], [Define if you have the <stddef.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(sys/syslog.h,
|
|
||||||
AC_DEFINE([SYSSYSLOGH], [], [Define if you have the <sys/syslog.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(unistd.h,
|
|
||||||
AC_DEFINE([UNISTDH], [], [Define if you have the <unistd.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(string.h,
|
|
||||||
AC_DEFINE([STRINGH], [], [Define if you have the <string.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(strings.h,
|
|
||||||
AC_DEFINE([STRINGSH], [], [Define if you have the <strings.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(malloc.h,
|
|
||||||
AC_DEFINE([MALLOCH], [<malloc.h>], [Define to <malloc.h> you need malloc.h.]))
|
|
||||||
AC_CHECK_HEADER(sys/rusage.h,
|
|
||||||
AC_DEFINE([RUSAGEH], [], [Define if you have the <sys/rusage.h> header file.]))
|
|
||||||
AC_CHECK_HEADER(glob.h,
|
|
||||||
AC_DEFINE([GLOBH], [], [Define if you have the <glob.h> header file.]))
|
|
||||||
AC_CHECK_HEADERS([stdint.h inttypes.h])
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_C_CONST
|
|
||||||
AC_C_INLINE
|
|
||||||
|
|
||||||
AC_TYPE_MODE_T
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_TYPE_INTPTR_T
|
|
||||||
|
|
||||||
AC_HEADER_TIME
|
|
||||||
AC_STRUCT_TM
|
|
||||||
AC_TYPE_UID_T
|
|
||||||
unreal_CHECK_TYPE_SIZES
|
|
||||||
|
|
||||||
dnl in the future, it would be nice to avoid AC_TRY_RUN to allow
|
|
||||||
dnl better support for crosscompiling.
|
|
||||||
AC_CACHE_CHECK([what kind of nonblocking sockets you have], [ac_cv_nonblocking],[
|
|
||||||
save_libs="$LIBS"
|
|
||||||
LIBS="$LIBS $SOCKLIB"
|
|
||||||
AC_TRY_RUN([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <signal.h>
|
|
||||||
alarmed() {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
int main() {
|
|
||||||
#ifdef O_NONBLOCK
|
|
||||||
char b[12], x[32];
|
|
||||||
int f, l = sizeof(x);
|
|
||||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
||||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) {
|
|
||||||
signal(SIGALRM, alarmed);
|
|
||||||
alarm(3);
|
|
||||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
||||||
alarm(0);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
],ac_cv_nonblocking=O_NONBLOCK,[
|
|
||||||
AC_TRY_RUN([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <signal.h>
|
|
||||||
alarmed() {
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
int main() {
|
|
||||||
#ifdef O_NDELAY
|
|
||||||
char b[12], x[32];
|
|
||||||
int f, l = sizeof(x);
|
|
||||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
||||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) {
|
|
||||||
signal(SIGALRM, alarmed);
|
|
||||||
alarm(3);
|
|
||||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
||||||
alarm(0);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
exit(1);
|
|
||||||
}],ac_cv_nonblocking=O_NDELAY,[
|
|
||||||
AC_TRY_RUN([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <signal.h>
|
|
||||||
alarmed() {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
int main() {
|
|
||||||
#ifdef FIONBIO
|
|
||||||
char b[12], x[32];
|
|
||||||
int f, l = sizeof(x);
|
|
||||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
|
||||||
if (f >= 0 && !(fcntl(f, F_SETFL, FIONBIO))) {
|
|
||||||
signal(SIGALRM, alarmed);
|
|
||||||
alarm(3);
|
|
||||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
|
||||||
alarm(0);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
exit(1);
|
|
||||||
], ac_cv_nonblocking=FIONBIO,ac_cv_nonblocking=none)])])])
|
|
||||||
if test "$ac_cv_nonblocking" = "O_NONBLOCK"; then
|
|
||||||
AC_DEFINE([NBLOCK_POSIX], [], [Define if you have O_NONBLOCK])
|
|
||||||
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
|
|
||||||
AC_DEFINE([NBLOCK_BSD], [], [Define if you have O_NDELAY])
|
|
||||||
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
|
|
||||||
AC_DEFINE([NBLOCK_SYSV], [], [Define if you have FIONBIO])
|
|
||||||
fi
|
|
||||||
LIBS="$save_libs"
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_PROG_GCC_TRADITIONAL
|
|
||||||
AC_FUNC_SETPGRP
|
|
||||||
AC_FUNC_SETVBUF_REVERSED
|
|
||||||
AC_FUNC_ALLOCA
|
|
||||||
AC_CHECK_FUNCS(snprintf,
|
|
||||||
AC_DEFINE([HAVE_SNPRINTF], [], [Define if you have snprintf]))
|
|
||||||
AC_CHECK_FUNCS(vsnprintf,
|
|
||||||
AC_DEFINE([HAVE_VSNPRINTF], [], [Define if you have vsnprintf]))
|
|
||||||
AC_CHECK_FUNCS(strlcpy,
|
|
||||||
AC_DEFINE([HAVE_STRLCPY], [], [Define if you have strlcpy. Otherwise, an internal implementation will be used!]))
|
|
||||||
AC_CHECK_FUNCS(strlcat,
|
|
||||||
AC_DEFINE([HAVE_STRLCAT], [], [Define if you have strlcat]))
|
|
||||||
AC_CHECK_FUNCS(strlncat,
|
|
||||||
AC_DEFINE([HAVE_STRLNCAT], [], [Define if you have strlncat]))
|
|
||||||
AC_CHECK_FUNCS(inet_pton,
|
|
||||||
AC_DEFINE([HAVE_INET_PTON], [], [Define if you have inet_pton]))
|
|
||||||
AC_CHECK_FUNCS(inet_ntop,
|
|
||||||
AC_DEFINE([HAVE_INET_NTOP], [], [Define if you have inet_ntop]))
|
|
||||||
dnl Check if it supports C99 style variable length arrays
|
|
||||||
AC_CACHE_CHECK([if C99 variable length arrays are supported], [ac_cv_varlen_arrays], [
|
|
||||||
AC_TRY_COMPILE(,[
|
|
||||||
int main() {
|
|
||||||
int i = 5;
|
|
||||||
int a[i];
|
|
||||||
a[0] = 1;
|
|
||||||
return 0;
|
|
||||||
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
|
|
||||||
])
|
|
||||||
if test "$ac_cv_varlen_arrays" = "yes" ; then
|
|
||||||
AC_DEFINE([HAVE_C99_VARLEN_ARRAY], [], [Define if you have a compiler with C99 variable length array support])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl This check doesn't need to be in ./configure, we can
|
|
||||||
dnl write the sourcecode to actually handle the return value
|
|
||||||
dnl of setrlimit if necessary... -- ohnobinki
|
|
||||||
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], [], [Define if you can set the core size to unlimited])
|
|
||||||
fi
|
|
||||||
AC_FUNC_VPRINTF
|
|
||||||
AC_CHECK_FUNCS([gettimeofday],
|
|
||||||
[AC_DEFINE([GETTIMEOFDAY], [], [Define if you have gettimeofday])],
|
|
||||||
[AC_CHECK_FUNCS([lrand48],
|
|
||||||
[AC_DEFINE([LRADN48], [], [Define if you have lrand48])])])
|
|
||||||
AC_CHECK_FUNCS([getrusage],
|
|
||||||
[AC_DEFINE([GETRUSAGE_2], [], [Define if you have getrusage])],
|
|
||||||
[AC_CHECK_FUNCS([times],
|
|
||||||
[AC_DEFINE([TIMES_2], [], [Define if you have times])])])
|
|
||||||
AC_CHECK_FUNCS([setproctitle],
|
|
||||||
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])],
|
|
||||||
[AC_CHECK_LIB([util],
|
|
||||||
[setproctitle],
|
|
||||||
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])
|
|
||||||
IRCDLIBS="$IRCDLIBS-lutil"],
|
|
||||||
[
|
|
||||||
AC_EGREP_HEADER([#define.*PS_STRINGS.*],[sys/exec.h],
|
|
||||||
[AC_DEFINE([HAVE_PSSTRINGS],[], [Define if you have PS_STRINGS])],
|
|
||||||
[AC_CHECK_FUNCS([pstat],
|
|
||||||
[AC_DEFINE([HAVE_PSTAT], [], [Define if you 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], [], [Define if you have POSIX signals])
|
|
||||||
elif test "$ac_cv_sigtype" = "BSD"; then
|
|
||||||
AC_DEFINE([BSD_RELIABLE_SIGNALS], [], [Define if you have BSD signals])
|
|
||||||
else
|
|
||||||
AC_DEFINE([SYSV_UNRELIABLE_SIGNALS], [], [Define if you have SYSV signals])
|
|
||||||
fi
|
|
||||||
AC_CHECK_FUNCS(strtoken,,AC_DEFINE([NEED_STRTOKEN], [], [Define if you need the strtoken function.]))
|
|
||||||
AC_CHECK_FUNCS(strtok,,AC_DEFINE([NEED_STRTOK], [], [Define if you need the strtok function.]))
|
|
||||||
AC_CHECK_FUNCS(strerror,,AC_DEFINE([NEED_STRERROR], [], [Define if you need the strerror function.]))
|
|
||||||
AC_CHECK_FUNCS(index,,AC_DEFINE([NOINDEX], [], [Define if you do not have the index function.]))
|
|
||||||
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
|
|
||||||
AC_CHECK_FUNCS(bcopy,,AC_DEFINE([NEED_BCOPY], [], [Define if you don't have bcopy]))
|
|
||||||
AC_CHECK_FUNCS(bcmp,,AC_DEFINE([NEED_BCMP], [], [Define if you don't have bcmp]))
|
|
||||||
AC_CHECK_FUNCS(bzero,,AC_DEFINE([NEED_BZERO], [], [Define if you need bzero]))
|
|
||||||
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE([GOT_STRCASECMP], [], [Define if you have strcasecmp]))
|
|
||||||
save_libs="$LIBS"
|
|
||||||
LIBS="$LIBS $SOCKLIB $INETLIB"
|
|
||||||
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE([NEED_INET_ADDR], [], [Define if you need inet_addr]))
|
|
||||||
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE([NEED_INET_NTOA], [], [Define if you need inet_ntoa]))
|
|
||||||
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE([NEED_INET_NETOF], [], [Define if you need inet_netof]))
|
|
||||||
LIBS="$save_libs"
|
|
||||||
AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog]))
|
|
||||||
AC_SUBST(STRTOUL)
|
|
||||||
AC_SUBST(CRYPTOLIB)
|
|
||||||
AC_SUBST(MODULEFLAGS)
|
|
||||||
AC_ARG_WITH(listen, [AS_HELP_STRING([--with-listen=backlog],[Specify the listen backlog value])],
|
|
||||||
[AC_DEFINE_UNQUOTED([LISTEN_SIZE], [$withval], [Set to the listen backlog size you want])],
|
|
||||||
[AC_DEFINE([LISTEN_SIZE], [5], [Set to the listen backlog size you want])])
|
|
||||||
AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
|
||||||
[AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])],
|
|
||||||
[AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])])
|
|
||||||
AC_ARG_WITH([sendq], [AS_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
|
|
||||||
[AC_DEFINE_UNQUOTED([MAXSENDQLENGTH], [$withval], [Set to the max sendq you want])],
|
|
||||||
[AC_DEFINE([MAXSENDQLENGTH], [3000000], [Set to the max sendq you want])])
|
|
||||||
AC_ARG_WITH(bufferpool, [AS_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
|
||||||
[AC_DEFINE_UNQUOTED([BUFFERPOOL],[($withval * MAXSENDQLENGTH)], [Set to the bufferpool size you want])],
|
|
||||||
[AC_DEFINE([BUFFERPOOL],[(18 * MAXSENDQLENGTH)], [Set to the bufferpool size you want])])
|
|
||||||
AC_ARG_WITH(permissions, [AS_HELP_STRING([--with-permissions=permissions], [Specify the default permissions for
|
|
||||||
configuration files])],
|
|
||||||
dnl We have an apparently out-of-place 0 here because of a MacOSX bug and because
|
|
||||||
dnl we assume that a user thinks that `chmod 0600 blah' is the same as `chmod 600 blah'
|
|
||||||
dnl (#3189)
|
|
||||||
[AC_DEFINE_UNQUOTED([DEFAULT_PERMISSIONS], [0$withval], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])],
|
|
||||||
[AC_DEFINE([DEFAULT_PERMISSIONS], [0600], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])])
|
|
||||||
AC_ARG_WITH(dpath, [AS_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
|
||||||
[AC_DEFINE_UNQUOTED([DPATH], ["$withval"], [Define the location of the configuration files])
|
|
||||||
IRCDDIR="$withval"],
|
|
||||||
[AC_DEFINE_UNQUOTED([DPATH], ["`pwd`"], [Define the location of the configuration files])
|
|
||||||
IRCDDIR="`pwd`"])
|
|
||||||
|
|
||||||
AC_ARG_WITH(fd-setsize, [AS_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], [Set to the max connections you want])
|
|
||||||
|
|
||||||
dnl It would be nice if this could just respect --bindir like every other
|
|
||||||
dnl program does someday... -- ohnobinki
|
|
||||||
AC_ARG_WITH(spath, [AS_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
|
||||||
[AC_DEFINE_UNQUOTED([SPATH], ["$withval"], [Define the location of the executable])
|
|
||||||
BINDIR="$withval"],
|
|
||||||
[AC_DEFINE_UNQUOTED([SPATH], ["`pwd`/src/ircd"], [Define the location of the executable])
|
|
||||||
BINDIR="`pwd`/src/ircd"])
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([prefixaq],
|
|
||||||
[AS_HELP_STRING([--disable-prefixaq],[Enable chanadmin (+a) and chanowner (+q) prefixes])],
|
|
||||||
[],
|
|
||||||
[enable_prefixaq=yes])
|
|
||||||
AS_IF([test $enable_prefixaq = "yes"],
|
|
||||||
[AC_DEFINE([PREFIX_AQ], [], [Define if you want +a/+q prefixes])])
|
|
||||||
|
|
||||||
AC_ARG_WITH(showlistmodes,
|
|
||||||
[AS_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([LIST_SHOW_MODES], [], [Define if you want modes shown in /list])])])
|
|
||||||
AC_ARG_WITH(topicisnuhost, [AS_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([TOPIC_NICK_IS_NUHOST], [], [Define if you want nick!user@host shown for the topic setter])])])
|
|
||||||
AC_ARG_WITH(shunnotices, [AS_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([SHUN_NOTICES], [], [Define if you want users to be notified when their shun is removed])])])
|
|
||||||
AC_ARG_WITH(no-operoverride, [AS_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([NO_OPEROVERRIDE], [], [Define if you want OperOverride disabled])])])
|
|
||||||
AC_ARG_WITH(disableusermod, [AS_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([DISABLE_USERMOD], [], [Define if you want to disable /set* and /chg*])])])
|
|
||||||
AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([OPEROVERRIDE_VERIFY], [], [Define if you want opers to have to use /invite to join +s/+p channels])])])
|
|
||||||
AC_ARG_WITH(disable-extendedban-stacking, [AS_HELP_STRING([--with-disable-extendedban-stacking], [Disable extended ban stacking])],
|
|
||||||
[AS_IF([test $withval = "yes"],
|
|
||||||
[AC_DEFINE([DISABLE_STACKED_EXTBANS], [], [Define to disable extended ban stacking (~q:~c:\#chan, etc)])])])
|
|
||||||
AC_ARG_WITH(system-tre, [AS_HELP_STRING([--with-system-tre], [Use the system tre package instead of bundled, discovered using pkg-config])], [], [with_system_tre=no])
|
|
||||||
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--with-system-cares], [Use the system c-ares (at least version 1.6.0) package instead of bundled c-ares, discovered using pkg-config])], [], [with_system_cares=no])
|
|
||||||
CHECK_SSL
|
|
||||||
CHECK_ZLIB
|
|
||||||
AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])],
|
|
||||||
[enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"])
|
|
||||||
AS_IF([test $enable_dynamic_linking = "yes"],
|
|
||||||
[AC_ENABLE_DYN],
|
|
||||||
[AC_DEFINE([STATIC_LINKING], [], [Link... statically(?) (defining this macro will probably cause the build tofail)])])
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([inet6], [AS_HELP_STRING([--enable-inet6], [Make the IRCd support IPv6])],
|
|
||||||
[AS_IF([test $enableval = "yes"],
|
|
||||||
[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_COMPILE_IFELSE([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
int main() {
|
|
||||||
#if FD_SETSIZE < $ac_fd
|
|
||||||
#error FD_SETSIZE is smaller than $ac_fd
|
|
||||||
#endif
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
], AC_MSG_RESULT([yes]), [
|
|
||||||
# must be passed on the commandline to avoid a ``warning, you redefined something''
|
|
||||||
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
AC_SUBST([FD_SETSIZE])
|
|
||||||
|
|
||||||
case `uname -s` in
|
|
||||||
*SunOS*|*solaris*)
|
|
||||||
AC_DEFINE([_SOLARIS], [], [Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris])
|
|
||||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
dnl c-ares needs PATH_SEPARATOR set or it will
|
|
||||||
dnl fail on certain solaris boxes. We might as
|
|
||||||
dnl well set it here.
|
|
||||||
export PATH_SEPARATOR
|
|
||||||
|
|
||||||
AS_IF([test "x$with_system_tre" = "xno"],[
|
|
||||||
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
|
|
||||||
tre_version="0.8.0"
|
|
||||||
AC_MSG_RESULT(extracting TRE regex library)
|
|
||||||
cur_dir=`pwd`
|
|
||||||
cd extras
|
|
||||||
dnl remove old tre directory to force a recompile...
|
|
||||||
dnl and remove its installation prefix just to clean things up.
|
|
||||||
rm -rf tre-$tre_version rege[]xp
|
|
||||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
|
||||||
tar xfz tre.tar.gz
|
|
||||||
else
|
|
||||||
cp tre.tar.gz tre.tar.gz.bak
|
|
||||||
gunzip -f tre.tar.gz
|
|
||||||
cp tre.tar.gz.bak tre.tar.gz
|
|
||||||
tar xf tre.tar
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT(configuring TRE regex library)
|
|
||||||
cd tre-$tre_version
|
|
||||||
./configure --disable-agrep --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
|
|
||||||
TRE_CFLAGS="-I$cur_dir/extras/regexp/include"
|
|
||||||
AC_SUBST(TRE_CFLAGS)
|
|
||||||
|
|
||||||
TRE_LIBS=
|
|
||||||
dnl See c-ares's compilation section for more info on this hack.
|
|
||||||
dnl ensure that we're linking against the bundled version of tre
|
|
||||||
dnl (we only reach this code if linking against the bundled version is desired).
|
|
||||||
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
|
|
||||||
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --static --libs tre.pc | sed -e ['s,-L\([^ ]*regex[^ ]*lib\)\( .*\)-ltre,\1/libtre.a \2,']`"])
|
|
||||||
dnl For when pkg-config isn't available -- or for when pkg-config
|
|
||||||
dnl doesn't see the tre.pc file somehow... (#3982)
|
|
||||||
AS_IF([test -z "$TRE_LIBS"],
|
|
||||||
[TRE_LIBS="../extras/regexp/lib/libtre.a"])
|
|
||||||
AC_SUBST(TRE_LIBS)
|
|
||||||
cd $cur_dir
|
|
||||||
],[
|
|
||||||
dnl use pkgconfig for tre:
|
|
||||||
PKG_CHECK_MODULES([TRE], tre >= 0.7.5)
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([test "x$with_system_cares" = "xno"],[
|
|
||||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
|
||||||
dnl NOTE: when changing this here, ALSO change it in ./curlinstall
|
|
||||||
dnl and in the comment in this file around line 400!
|
|
||||||
cares_version="1.10.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 c-ares
|
|
||||||
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 --disable-shared || 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
|
|
||||||
CARES_CFLAGS="-I$cur_dir/extras/c-ares/include"
|
|
||||||
AC_SUBST(CARES_CFLAGS)
|
|
||||||
CARES_LIBS="-L../extras/c-ares/lib"
|
|
||||||
|
|
||||||
dnl Set default library parameters for when pkg-config is not available
|
|
||||||
dnl Ugly cd'ing out of extras/c-ares-xxx ;)
|
|
||||||
dnl Note: must be a full path, not relative path.
|
|
||||||
cd ../..
|
|
||||||
CARESLIBSALT="`pwd`/extras/c-ares/lib/libcares.a"
|
|
||||||
cd -
|
|
||||||
case `uname -s` in
|
|
||||||
*FreeBSD*)
|
|
||||||
CARESLIBSALT="$CARESLIBSALT"
|
|
||||||
;;
|
|
||||||
*Linux*)
|
|
||||||
CARESLIBSALT="$CARESLIBSALT -lrt"
|
|
||||||
;;
|
|
||||||
*SunOS*)
|
|
||||||
CARESLIBSALT="$CARESLIBSALT -lrt"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
dnl Use pkg-config for c-ares libraries, and if not available use defaults
|
|
||||||
dnl from above. Also, if pkg-config returns an empty result (ex: on fbsd
|
|
||||||
dnl or older versions it might be missing --static) then also use defaults.
|
|
||||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
|
||||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
|
||||||
else
|
|
||||||
CARES_LIBSPRE="$CARES_LIBS"
|
|
||||||
dnl the sed expression forces an absolute path to the .a file to be generated
|
|
||||||
dnl because this is what libtool would do. If this wasn't done and /usr/lib*/libcares.so
|
|
||||||
dnl exists, then unrealircd would still try to link against the system c-ares.
|
|
||||||
dnl The [] quotation is needed because the sed expression has [] in it.
|
|
||||||
[CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --static --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.a,'`"]
|
|
||||||
if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then
|
|
||||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_SUBST(CARES_LIBS)
|
|
||||||
cd $cur_dir
|
|
||||||
],[
|
|
||||||
dnl use pkg-config for system c-ares:
|
|
||||||
PKG_CHECK_MODULES([CARES], libcares >= 1.6.0)
|
|
||||||
])
|
|
||||||
|
|
||||||
CHECK_LIBCURL
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile
|
|
||||||
src/modules/Makefile
|
|
||||||
unreal
|
|
||||||
ircdcron/ircdchk
|
|
||||||
ircdcron/ircd.cron])
|
|
||||||
AC_OUTPUT
|
|
||||||
chmod 0700 unreal
|
|
||||||
chmod 0700 ircdcron/ircdchk
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# This will generate a Changelog similar to our original style.
|
|
||||||
# New are: the name of the author, the date, and the short hash
|
|
||||||
# We still filter translated doc changes as to not polute the
|
|
||||||
# changelog too much.
|
|
||||||
|
|
||||||
hg log -r a673dd0f7b37: --style changelog --template '[{date|shortdate}] {author} ({node|short}):\n- {desc}\n\n' \
|
|
||||||
-b default -X 'doc/unreal32docs.*.html' -X 'doc/help.*.conf' -X 'doc/example.*.conf' -X 'include/version.h'|\
|
|
||||||
sed 's/^- - /- /g' >Changes
|
|
||||||
|
|
||||||
echo "Done. File 'Changes' now contains the full version history"
|
|
||||||
+4297
-3797
File diff suppressed because it is too large
Load Diff
+51
-70
@@ -1,85 +1,66 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
URL="http://www.unrealircd.com/files/curl-latest.tar.gz"
|
|
||||||
OUTF="curl-latest.tar.gz"
|
if test "x$1" = x -o "x$2" = x ; then
|
||||||
OUTD="curl-latest"
|
echo "Syntax:"
|
||||||
ARESPATH="`pwd`/extras/c-ares"
|
echo "curlinstall ares_path libcurl_path"
|
||||||
CARESVERSION="1.10.0"
|
echo ""
|
||||||
if [ ! -f "Unreal.nfo" ]; then
|
|
||||||
echo "Please run this program from your UnrealIRCd directory"
|
|
||||||
echo "(usually $HOME/Unreal3.2 or something like that)"
|
|
||||||
exit 1
|
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
|
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||||
c="\c"
|
c="\c"
|
||||||
else
|
else
|
||||||
n="-n"
|
n="-n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d "$ARESPATH/lib" ]; then
|
save_PWD=`pwd`
|
||||||
echo "c-ares has not been build yet, let's do that now..."
|
echo "Installing ares"
|
||||||
cd ../extras/
|
cd $1
|
||||||
tar xzf c-ares.tar.gz || exit 1
|
./configure --prefix=$HOME/ares && make && make install
|
||||||
cd c-ares-$CARESVERSION || exit 1
|
|
||||||
./configure --prefix=$ARESPATH || exit 1
|
SSLFLAG=""
|
||||||
(make && make install) || exit 1
|
while [ -z "$SSLFLAG" ] ; do
|
||||||
cd ../../tmp/
|
|
||||||
echo "c-ares built."
|
|
||||||
echo ""
|
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
|
fi
|
||||||
|
|
||||||
# We assume curl has been packaged in a way it will extract to "$OUTD"/
|
echo "Installing libcurl"
|
||||||
cd "$OUTD" || exit 1
|
cd $2
|
||||||
|
CPPFLAGS="-I$HOME/ares/include" ./configure --prefix=$HOME/curl --disable-shared \
|
||||||
echo "Building and installing libcurl"
|
--disable-thread --enable-ares=$HOME/ares --disable-ipv6 $SSLFLAG
|
||||||
CPPFLAGS="-I$ARESPATH/include" ./configure --prefix=$HOME/curl --disable-shared \
|
cp -R $HOME/ares/lib ares
|
||||||
--disable-thread --enable-ares=$ARESPATH --disable-ipv6 $SSLFLAG
|
|
||||||
cp -R $ARESPATH/lib ares
|
|
||||||
make && make install
|
make && make install
|
||||||
|
|
||||||
#cp $ARESPATH/lib/libcares.a $HOME/curl/lib
|
if [ -f $HOME/curl/lib/libares.a ] ; then
|
||||||
# that isn't needed anymore as the lib is already in unreal...
|
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. :)
|
lines worth. :)
|
||||||
|
|
||||||
UnrealIRCd Coders
|
UnrealIRCd Coders
|
||||||
Carsten Munk <stskeeps@unrealircd.com> / May 1999 - December 2008
|
Carsten Munk <stskeeps@unrealircd.com> / May 1999, date
|
||||||
Dominick Meglio <codemastr@unrealircd.com> / June 1999 - August 2005
|
Dominick Meglio <codemastr@unrealircd.com> / June 1999, date
|
||||||
David Flynn / March 2000 - June 2000
|
David Flynn / March 2000, June 2000
|
||||||
McSkaf / June 2001 - September 2001
|
McSkaf / June 2001, September 2001
|
||||||
Finny Merrill <griever@unrealircd.com> / November 2001 - December 2002
|
Finny Merrill <griever@unrealircd.com> / November 2001, December 2002
|
||||||
Bram Matthys <syzop@unrealircd.com> / January 2002 - date
|
Bram Matthys <syzop@unrealircd.com> / January 2002, date
|
||||||
This list is incomplete, type /INFO on IRC to find the updated list.
|
|
||||||
|
|
||||||
Thanks go to those persons not mentioned here who have added their advice,
|
Thanks go to those persons not mentioned here who have added their advice,
|
||||||
opinions, and code to IRC.
|
opinions, and code to IRC.
|
||||||
|
|||||||
+28
-83
@@ -1,80 +1,21 @@
|
|||||||
Rules about patches & modifications to UnrealIRCd
|
|
||||||
|
Some minor rules about patches & modifications to UnrealIRCd
|
||||||
|
|
||||||
1. When making a change, always add a small description in Changes, in the
|
1. When making a change, always add a small description in Changes, in the
|
||||||
BOTTOM. Don't forget to mention the bug# and credit the reporter (if any).
|
BOTTOM
|
||||||
|
|
||||||
2. If new files are made, it must contain proper copyright headers.
|
2. If new files are made, it must contain proper copyright headers,
|
||||||
|
and a $Id$ somewhere.
|
||||||
|
|
||||||
3. If you want to submit patches (f.e. if you don't have CVS write access)
|
3. /*
|
||||||
then submit them to http://bugs.unrealircd.org/ (shortly called bugs*)
|
* These kind of comments
|
||||||
using "cvs diff -u > patchname". A submission must contain description of
|
*/
|
||||||
what it does, etc.
|
|
||||||
|
|
||||||
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* 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.
|
|
||||||
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.
|
|
||||||
|
|
||||||
6. Regarding reidenting, restructuring or other 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 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 should test their code before committing.
|
|
||||||
|
|
||||||
11. /*
|
|
||||||
* These kind of comments
|
|
||||||
*/
|
|
||||||
|
|
||||||
NOT
|
NOT
|
||||||
|
|
||||||
// These kind of comments
|
// These kind of comments
|
||||||
|
|
||||||
12. if (something == 1)
|
4. if (something == 1)
|
||||||
{
|
{
|
||||||
moo; /* comment */
|
moo; /* comment */
|
||||||
/* This does what what what */
|
/* This does what what what */
|
||||||
@@ -86,19 +27,23 @@ Rules about patches & modifications to UnrealIRCd
|
|||||||
if (something == 1) {
|
if (something == 1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
13. Do not touch version.c.SH or version.h, unless you are a head coder
|
5. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||||
if you need a credit in, contact us
|
if you need a credit in, contact us
|
||||||
|
|
||||||
14. Protocol changes must be discussed before making patches for it.
|
6. Patches are submitted to coders@lists.unrealircd.org,
|
||||||
|
using "cvs diff -u > patchname". A submision must contain description of
|
||||||
|
what it does, etc.
|
||||||
|
|
||||||
15. We do NOT rip people off. If we use other people's code, it MUST be
|
7. Protocol changes must be discussed before making patches for it.
|
||||||
properly credited.
|
|
||||||
|
|
||||||
16. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
|
8. We do NOT rip people off. If we use other people's code, it MUST be
|
||||||
Some code is old and horrible and has a mix of tabs and spaces used for
|
properly credited.
|
||||||
spacing, that's something we do not want to have ;)
|
|
||||||
|
|
||||||
17. Be careful about overflows. As you know a line from a user can never be longer
|
9. 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 ;)
|
||||||
|
|
||||||
|
10. Be careful about overflows. As you know a line from a user can never be longer
|
||||||
than 511 (510?) characters, sometimes you can use this knowledge to your
|
than 511 (510?) characters, sometimes you can use this knowledge to your
|
||||||
advantage. Whenever it's not safe or when you don't know what input size you
|
advantage. Whenever it's not safe or when you don't know what input size you
|
||||||
can expect, use strlcpy instead of strcpy. Do not ever use strncpy, this is
|
can expect, use strlcpy instead of strcpy. Do not ever use strncpy, this is
|
||||||
@@ -108,8 +53,8 @@ Rules about patches & modifications to UnrealIRCd
|
|||||||
use that instead of snprintf. The same can be true for strcpy vs strlcpy in
|
use that instead of snprintf. The same can be true for strcpy vs strlcpy in
|
||||||
some circumstances as well.
|
some circumstances as well.
|
||||||
|
|
||||||
18. Speed. When optimizing or writing code, keep in mind that readability and
|
11. 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
|
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
|
readable code (even if difficult) over some odd highly optimized routine which
|
||||||
nobody understands, is difficult to extend, and might have several bugs.
|
nobody understands, is difficult to extend, and might have several bugs.
|
||||||
As mentioned earlier: use ircsprintf, not sprintf (this is because ircsprintf
|
As mentioned earlier: use ircsprintf, not sprintf (this is because ircsprintf
|
||||||
@@ -117,25 +62,25 @@ Rules about patches & modifications to UnrealIRCd
|
|||||||
Prefer ircsprintf with a bigger buffer over the use of snprintf, since
|
Prefer ircsprintf with a bigger buffer over the use of snprintf, since
|
||||||
ircsprintf is much faster.
|
ircsprintf is much faster.
|
||||||
|
|
||||||
19. Initialize your structs and use the proper memory calls.
|
12. Initialize your structs and use the proper memory calls.
|
||||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||||
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
||||||
the memory area (eg: the struct) with zero's (a la calloc).
|
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.
|
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
|
"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
|
has very little speed impact and enourmous benefits: people tend to forget
|
||||||
to set certain fields in the struct to NULL, or much more common: when
|
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
|
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
|
be several places he/she needs to update to make sure x->something is NULL
|
||||||
after allocating a new struct. Bad idea.
|
after allocating a new struct. Bad idea.
|
||||||
Little speed impact, huge stability benefits, easy decision ;).
|
Little speed impact, huge stability benefits, easy decision ;).
|
||||||
|
|
||||||
20. Comment your code! This should speak for itself...
|
13. Comment your code! This should speak for itself...
|
||||||
Put comments wherever you think they are needed, to aid any further coders
|
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
|
with reading your code.. and, in fact, it will aid yourself as well if you
|
||||||
would look back at your code 2 years later.
|
would look back at your code 2 years later.
|
||||||
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
||||||
author will see it like you did.
|
author will see it like you did.
|
||||||
|
|
||||||
21. Use enums whenever possible, rather than #define constants. Besides making
|
14. Use enums whenever possible, rather than #define constants. Besides making
|
||||||
things more clean, it also aids debugging.
|
things more clean, it also aids debugging.
|
||||||
|
|||||||
+70
-79
@@ -1,105 +1,95 @@
|
|||||||
|
==[ 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 have problems with NOSPOOF, fix your client (bot?) instead (you should PONG
|
||||||
|
back to the initial PING at connect).
|
||||||
|
|
||||||
==[ GENERAL GUIDELINES ]==
|
==[ GENERAL GUIDELINES ]==
|
||||||
First of all you need Microsoft Visual C++ (see below), compiling with
|
First of all you need Microsoft Visual C++ (see below), compiling with
|
||||||
cygwin is not supported.
|
cygwin is not supported (nor is there any good reason to do so).
|
||||||
|
|
||||||
Compatible compilers:
|
Compatible compilers:
|
||||||
cygwin NOT supported. Will not work. Should be no reason to use this anyway
|
cygwin NOT supported. Will not work. Should be no reason to use this anyway.
|
||||||
as cygwin is an emulation layer. It's obviously much better to run
|
msvc 6.x Microsoft Visual Studio 6 does not work, this compiler is too old.
|
||||||
native (Windows) code on Windows.
|
msvc 7.x Microsoft Visual Studio 7.x (.NET) will work just fine
|
||||||
msvc 6.x Microsoft Visual Studio 6 does not work, this compiler is too old.
|
msvc 8.x Microsoft Visual Studio 8.x (.NET 2005), including the free kit,
|
||||||
msvc 7.x Microsoft Visual Studio 7.x (.NET), works.
|
should work fine (since Unreal3.2.5).
|
||||||
msvc 8.x Microsoft Visual Studio 8.x (.NET 2005), including the free kit, works.
|
|
||||||
msvc 9.x Microsoft Visual Studio 9.x (.NET 2008), is used for official compile.
|
|
||||||
mssdk Microsoft Windows SDK for Windows 7
|
|
||||||
|
|
||||||
If you don't have the paid version of Microsoft Visual Studio 7.x, then you can
|
If you don't have the paid version of Microsoft Visual Studio 7.x, then you can
|
||||||
use the FREE development kit available for Windows 7 explained below:
|
use the FREE development kit and PSDK as explained below:
|
||||||
1. Download the 'MS SDK for Windows 7 and .NET Framework 3.5 SP1' at:
|
1. Download the MS Visual Studio Development kit at:
|
||||||
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en
|
http://msdn.microsoft.com/visualc/vctoolkit2003/
|
||||||
|
2. Install the Platform Software Development Kit (PSDK) from:
|
||||||
2. NOTE: Whenever you need to compile something we say 'Start the Visual Studio
|
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
|
||||||
|
3. NOTE: Whenever you need to compile something we say 'Start the Visual Studio
|
||||||
.NET Command Prompt' below, but you - a person using the free version - will
|
.NET Command Prompt' below, but you - a person using the free version - will
|
||||||
actually have to start the CMD Shell instead (check out the
|
actually have to start the Platform SDK Prompt instead (check out the
|
||||||
Start Menu under Microsoft Windows SDK v7.0). Users on x64 environment will have
|
Start Menu).
|
||||||
to change their environment to x86 by typing 'SETENV /x86'.
|
|
||||||
|
|
||||||
3. Download http://www.vulnscan.org/tmp/dlltool.exe and put the file somewhere
|
== Simple compile (no SSL/ZIP/Remote includes) ==
|
||||||
in your path (eg: put it in c:\windows\system32).
|
|
||||||
|
|
||||||
==[ EXTERNAL LIBRARIES ]==
|
|
||||||
Fetch the external libraries (c-ares, tre, openssl, zlib, curl) from:
|
|
||||||
http://www.vulnscan.org/unrealwin32dev/
|
|
||||||
|
|
||||||
==[ COMPILING ]==
|
|
||||||
1. Start the Visual Studio .NET Command Prompt
|
1. Start the Visual Studio .NET Command Prompt
|
||||||
2. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2)
|
2. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||||
3. Have a look at 'makefile.win32' to look at what parameters you need to
|
nmake -f makefile.win32
|
||||||
use, this depends on what libraries you want to link in and their location.
|
This will generate a wircd.exe and unreal.exe
|
||||||
4. Two options, use either one (B is preferred), and read step 5 too:
|
3. Copy the src\win32\tre.dll to your UnrealIRCd main dir.
|
||||||
A. Edit makefile.win32 directly to reflect your configuration and run
|
4. Done!
|
||||||
'nmake -f makefile.win32'
|
|
||||||
B. Don't edit makefile.win32 but instead create a one-line command (which
|
|
||||||
you can put in a batch file), like this (all on one 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:\openssl\include" OPENSSL_LIB_DIR="c:\openssl\lib"
|
|
||||||
USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl-ssl\include"
|
|
||||||
LIBCURL_LIB_DIR="c:\dev\curl-ssl\lib\dll-release"
|
|
||||||
CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release"
|
|
||||||
CARES_INC_DIR="C:\dev\c-ares" CARESLIB="cares.lib"
|
|
||||||
TRE_LIB_DIR="C:\dev\tre\win32\release" TRE_INC_DIR="C:\dev\tre"
|
|
||||||
TRELIB="tre.lib"
|
|
||||||
5. You are likely to encounter an error like
|
|
||||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global
|
|
||||||
referenced in function _m_oper
|
|
||||||
(the exact name and symbol will differ!!)
|
|
||||||
In that case you need to generate a symbols file:
|
|
||||||
nmake -f makefile.win32 SYMBOLFILE
|
|
||||||
And after that simply re-run your nmake -f makefile.win32 [options]
|
|
||||||
command, the same command you ran before the error occured.
|
|
||||||
You should not get any unresolved external symbol error again.
|
|
||||||
If you still do, then something is wrong.
|
|
||||||
6. Your compile is now done, you can package unreal if you have InnoSetup,
|
|
||||||
in that case check out src\win32\unrealinst.iss
|
|
||||||
Otherwise, manually copy over the necessary files (and the dll files
|
|
||||||
from the external libraries).
|
|
||||||
|
|
||||||
==[ Compiling modules ]==
|
== Compiling modules ==
|
||||||
1. Put your module (the .c file) in src\modules (eg: c:\dev\unreal3.2\src\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
|
2. Start the Visual Studio .NET Command Prompt
|
||||||
3. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2).
|
3. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2).
|
||||||
4. Compile the module with:
|
4. Compile the module with:
|
||||||
nmake -f makefile.win32 <YOUR OPTIONS> custommodule MODULEFILE=<name>
|
nmake -f makefile.win32 custommodule MODULEFILE=<name>
|
||||||
<name> is the name of the module WITHOUT the .c suffix, so if your
|
<name> is the name of the module WITHOUT the .c suffix, so if your
|
||||||
module has the filename 'm_crappymod.c', then you use:
|
module has the filename 'm_crappymod.c', then you use:
|
||||||
nmake -f makefile.win32 <YOUR OPTIONS> custommodule MODULEFILE=m_crappymod
|
nmake -f makefile.win32 custommodule MODULEFILE=m_crappymod
|
||||||
Note that <YOUR OPTIONS> is the whole lot of options explained in
|
|
||||||
previous section under 4B. If you use method 4A then there aren't any.
|
|
||||||
Note 2: If you get any symbol file errors, see the section 'SYMBOL FILES'
|
|
||||||
5. Done. A .dll file should have been created.
|
5. Done. A .dll file should have been created.
|
||||||
|
|
||||||
If you compiled with the same Visual Studio version that we use to compile
|
If you compiled with VC7 and used the official source (not a CVS version,
|
||||||
the official UnrealIRCd version, and use the same Unreal3.2.X.tar.gz as the
|
but for example 3.2.1 source) then the module should work on all these
|
||||||
official version (and not CVS!), then your module is fully binary compatible
|
versions (binary compatible) and you could for example put them on
|
||||||
and you can put it on your website (or ours) so users can use them.
|
your website so users can download them.
|
||||||
If you do anything else, this won't work.
|
Such a module will work on both SSL and non-SSL, there should be no need
|
||||||
So, again, it will NOT work properly, if:
|
for separate versions... unless, of course, you use SSL-specific code in your
|
||||||
1. You use a different UnrealIRCd source (like CVS, or a previous version).
|
mod.
|
||||||
2. You use another compiler... this might still work but may require an
|
DO NOT download a CVS version & compile your mod and then start
|
||||||
additional .DLL file to be put in your UnrealIRCd directory (MSVxxxxxx.DLL).
|
distributing the .dll for use at another (non-CVS) version!!
|
||||||
3. You compile with different options, such as compiling with SSL but trying
|
Every time we change a struct (and in some other cases) it makes the
|
||||||
to load the module on non-SSL.
|
binary/module binary incompatible which practically means that your module
|
||||||
NOTE: unless your module uses SSL-specific code, you should compile
|
might seem to work fine at first (or not..) but will CRASH or cause memory
|
||||||
without SSL as it will run on both SSL and non-SSL UnrealIRCd's.
|
corruption and other subtle errors.
|
||||||
|
|
||||||
==[ SYMBOL FILES ]==
|
== 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"
|
||||||
|
|
||||||
|
== SYMBOL FILES ==
|
||||||
If you get something like this:
|
If you get something like this:
|
||||||
|
|
||||||
Creating library L_COMMANDS.lib and object L_COMMANDS.exp
|
Creating library L_COMMANDS.lib and object L_COMMANDS.exp
|
||||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global re
|
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global re
|
||||||
ferenced in function _m_oper
|
ferenced in function _m_oper
|
||||||
|
|
||||||
(note: the exact name of the symbol will vary!)
|
(note: the exact name of the symbol will vary)
|
||||||
|
|
||||||
Then you will have to rebuild the wircd.def symbol file. You do this by
|
Then you will have to rebuild the wircd.def symbol file. You do this by
|
||||||
downloading http://www.vulnscan.org/tmp/dlltool.exe and putting the file somewhere
|
downloading http://www.vulnscan.org/tmp/dlltool.exe and putting the file somewhere
|
||||||
@@ -112,7 +102,8 @@ nmake -f makefile.win32 [your other options here]
|
|||||||
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
|
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
|
||||||
compiling again.
|
compiling again.
|
||||||
|
|
||||||
==[ COMPILING ZLIB/SSL/CURL YOURSELF ]==
|
== COMPILING ZLIB/SSL/CURL YOURSELF ==
|
||||||
This is off-topic and not explained here.
|
This is off-topic and not explained here.
|
||||||
Again, use the stuff from the win32 development pack unless you have a good
|
Again, use the stuff from the win32 development pack unless you have a good
|
||||||
reason to do otherwise.
|
reason to do otherwise (in which case we might not support your self-compiled version
|
||||||
|
because we work with specific versions / compile options).
|
||||||
|
|||||||
+5
-56
@@ -2,7 +2,7 @@
|
|||||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* Works for Unreal3.2.x
|
* Works for Unreal3.2 and up
|
||||||
*
|
*
|
||||||
* Okay guys. This is the new example.conf. Its look is much like C++, kinda.
|
* 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
|
* Anyway it is time to go over this. It's hard to pick up at first, but
|
||||||
@@ -161,12 +161,10 @@ allow {
|
|||||||
* Syntax:
|
* Syntax:
|
||||||
* allow channel {
|
* allow channel {
|
||||||
* channel "channel name";
|
* channel "channel name";
|
||||||
* class "clients"; (optional)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
allow channel {
|
allow channel {
|
||||||
channel "#WarezSucks";
|
channel "#WarezSucks";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -365,7 +363,7 @@ drpass {
|
|||||||
* NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
|
* NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
|
||||||
* as many as you wish.
|
* as many as you wish.
|
||||||
*
|
*
|
||||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Syntax:
|
* Syntax:
|
||||||
* log "log file"
|
* log "log file"
|
||||||
@@ -385,6 +383,7 @@ log "ircd.log" {
|
|||||||
maxsize 2097152;
|
maxsize 2097152;
|
||||||
flags {
|
flags {
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
kills;
|
kills;
|
||||||
@@ -519,55 +518,7 @@ alias "glinebot" {
|
|||||||
type command;
|
type command;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* NEW: files {}
|
|
||||||
* OLD: include/config.h
|
|
||||||
*
|
|
||||||
* This block overrides the IRCd's default paths for loading things
|
|
||||||
* like the MOTD, saving its PID, or writing/loading its tunefile. The
|
|
||||||
* existence of this block allows one UnrealIRCd installation to
|
|
||||||
* support multiple running instances when combined with the -c
|
|
||||||
* commandline option.
|
|
||||||
*
|
|
||||||
* As usual, relative paths are interpreted relative to the directory
|
|
||||||
* where UnrealIRCd would find unrealircd.conf if -c is _not_
|
|
||||||
* specified on the commandline.
|
|
||||||
*/
|
|
||||||
files
|
|
||||||
{
|
|
||||||
/* The Message Of The Day shown to users who log in: */
|
|
||||||
/* motd ircd.motd; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A short MOTD. If this file exists, it will be displayed to
|
|
||||||
* the user in place of the MOTD. Users can still view the
|
|
||||||
* full MOTD by using the /MOTD command.
|
|
||||||
*/
|
|
||||||
/* shortmotd ircd.smotd; */
|
|
||||||
|
|
||||||
/* Shown when an operator /OPERs up */
|
|
||||||
/* opermotd oper.motd; */
|
|
||||||
|
|
||||||
/* Services MOTD append. */
|
|
||||||
/* svsmotd ircd.svsmotd; */
|
|
||||||
|
|
||||||
/* Bot MOTD */
|
|
||||||
/* botmotd bot.motd; */
|
|
||||||
|
|
||||||
/* Shown upon /RULES */
|
|
||||||
/* rules ircd.rules; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Where the IRCd stores and loads a few values which should
|
|
||||||
* be persistent across server restarts. Must point to an
|
|
||||||
* existing file which the IRCd has permission to alter or to
|
|
||||||
* a file in a folder within which the IRCd may create files.
|
|
||||||
*/
|
|
||||||
/* tunefile ircd.tune; */
|
|
||||||
|
|
||||||
/* Where to save the IRCd's pid. Should be writable by the IRCd. */
|
|
||||||
/* pidfile ircd.pid; */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NEW: tld {}
|
* NEW: tld {}
|
||||||
@@ -712,13 +663,11 @@ deny dcc {
|
|||||||
* deny channel {
|
* deny channel {
|
||||||
* channel "(channel)";
|
* channel "(channel)";
|
||||||
* reason "reason";
|
* reason "reason";
|
||||||
* class "clients"; (optional)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
deny channel {
|
deny channel {
|
||||||
channel "*warez*";
|
channel "*warez*";
|
||||||
reason "Warez is illegal";
|
reason "Warez is illegal";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -840,6 +789,6 @@ set {
|
|||||||
* Problems or need more help?
|
* Problems or need more help?
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contains 80% of your questions!
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contains 80% of your questions!
|
||||||
* 3) If you still have problems you can go irc.unrealircd.org #unreal-support,
|
* 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!
|
* note that we require you to READ THE DOCUMENTATION and FAQ first!
|
||||||
*/
|
*/
|
||||||
|
|||||||
+6
-5
@@ -2,7 +2,7 @@
|
|||||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* Arbeitet mit Unreal3.2.x
|
* Arbeitet mit Unreal3.2 und darüber
|
||||||
*
|
*
|
||||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
* 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
|
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||||
@@ -369,7 +369,7 @@ drpass {
|
|||||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||||
* beliebig viele festlegen.
|
* beliebig viele festlegen.
|
||||||
*
|
*
|
||||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Syntax:
|
* Syntax:
|
||||||
* log "log file"
|
* log "log file"
|
||||||
@@ -392,6 +392,7 @@ log "ircd.log" {
|
|||||||
kline;
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
|
kills;
|
||||||
errors;
|
errors;
|
||||||
sadmin-commands;
|
sadmin-commands;
|
||||||
chg-commands;
|
chg-commands;
|
||||||
@@ -780,7 +781,7 @@ set {
|
|||||||
* Probleme? Weitere Hilfe nötig?
|
* Probleme? Weitere Hilfe nötig?
|
||||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- enthält 80% deiner Fragen - Wetten Dass?
|
* 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.unrealircd.org
|
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.ircsystems.net
|
||||||
* #unreal-support aufsuchen. Achtung, wir setzen voraus, dass zuvor die
|
* #unreal-support aufsuchen. Dabei ist zu beachten, dass wir voraussetzen,
|
||||||
* DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
* dass zuvor DIE DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,842 +0,0 @@
|
|||||||
/*
|
|
||||||
* example.conf por Danial Hawton, alias Osiris (osiris@unrealircd.org).
|
|
||||||
* Traducido al castellano por Severus_Snape (javiersnape@gmail.com).
|
|
||||||
*
|
|
||||||
* Funciona desde Unreal3.2.x
|
|
||||||
*
|
|
||||||
* Ok. Este es el nuevo example.conf. Es muy similar a C++.
|
|
||||||
* De todas formas lleva tiempo hacer esto. En un principio, es dificil de comprender pero
|
|
||||||
* con un poco de práctica y lectura lo comprenderás.
|
|
||||||
*
|
|
||||||
* Simplemente copia este archivo al directorio principal de unrealircd y cambiale el nombre a 'unrealircd.conf'.
|
|
||||||
*
|
|
||||||
* NOTA: Todas las líneas, a excepción de la línea de apertura ( { ) terminan en ;, incluyendo la
|
|
||||||
* línea de cierre ( } ). El IRCd ignorará las lineas comentadas.
|
|
||||||
*
|
|
||||||
* ¡POR FAVOR LEE doc/unreal32docs.es.html! La versión online esta disponible en:
|
|
||||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
|
||||||
* Contiene mucha información acerca del archivo de configuración: Da información acerca de
|
|
||||||
* cada bloque, variable, etc.
|
|
||||||
* ¡Si intentas editar este archivo sin leer bien la documentación
|
|
||||||
* estas destinado a fallar!
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Tipos de Comentarios */
|
|
||||||
#Comentario tipo 1 (Estilo Shell)
|
|
||||||
// Comentario tipo 2 (Estilo C++)
|
|
||||||
/* Comentario tipo 3 (Estilo C) */
|
|
||||||
#Estas líneas son ignoradas por el IRCd.
|
|
||||||
|
|
||||||
/*
|
|
||||||
* UnrealIRCd soporta módulos, cargar algunos de ellos es requerido.
|
|
||||||
* Al menos debes cargar el módulo de los comandos y un módulo de cifrado (cloaking).
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* PARA *NIX, descomenta las siguientes 2 líneas: */
|
|
||||||
//loadmodule "src/modules/commands.so";
|
|
||||||
//loadmodule "src/modules/cloak.so";
|
|
||||||
|
|
||||||
/* PARA Windows, descomenta las siguientes 2 líneas: */
|
|
||||||
//loadmodule "modules/commands.dll";
|
|
||||||
//loadmodule "modules/cloak.dll";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Además pudes incluir otros archivos de configuración.
|
|
||||||
* help.conf contiene todo el contenido de /helpop. Los archivos badwords.*.conf
|
|
||||||
* contienen todas las entradas de badwords para el modo +G...
|
|
||||||
* spamfilter.conf contiene algunas buenas reglas para los troyanos actuales.
|
|
||||||
* Probablemente quieres incluirlos:
|
|
||||||
*/
|
|
||||||
include "help.conf";
|
|
||||||
include "badwords.channel.conf";
|
|
||||||
include "badwords.message.conf";
|
|
||||||
include "badwords.quit.conf";
|
|
||||||
include "spamfilter.conf";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: me {}
|
|
||||||
* VIEJO: M:Line
|
|
||||||
* me {} define el nombre, la descripción y el número de servidor
|
|
||||||
* para este server. La Sintaxis es:
|
|
||||||
* me {
|
|
||||||
* name "nombre.del.servidor";
|
|
||||||
* info "Descripción del Servidor";
|
|
||||||
* numeric (número del servidor*);
|
|
||||||
* };
|
|
||||||
* * = Si estas enlazando este server, el número no debe ser usado por otro server en la red.
|
|
||||||
*/
|
|
||||||
me
|
|
||||||
{
|
|
||||||
name "irc.foonet.com";
|
|
||||||
info "FooNet Server";
|
|
||||||
numeric 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: admin {}
|
|
||||||
* VIEJO: A:Line
|
|
||||||
* /Admin te da la información acerca del administrador del servidor. Tu
|
|
||||||
* puedes poner cuantas líneas quieras debajo de admin {.
|
|
||||||
* La sintaxis es:
|
|
||||||
* admin {
|
|
||||||
* "primera línea";
|
|
||||||
* "segunda línea";
|
|
||||||
* [etc]
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
admin {
|
|
||||||
"Bob Smith";
|
|
||||||
"bob";
|
|
||||||
"widely@used.name";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: class {}
|
|
||||||
* VIEJO: Y:line (old was confusing)
|
|
||||||
* Esto define la configuración para las clases. Una clase es una configuración en grupo para las
|
|
||||||
* conexiones. Por ejemplo, las conexiones de los servidores, en vez de ir a la clase de los clientes.
|
|
||||||
* la diriges a la clase de servidores. La sintaxis es la siguiente:
|
|
||||||
* class (nombre de la clase)
|
|
||||||
* {
|
|
||||||
* pingfreq (que tan seguido pingueara a el servidor/cliente en segundos);
|
|
||||||
* maxclients (cuantas conexiones para esta clase);
|
|
||||||
* sendq (cola máxima de envios para la conexión);
|
|
||||||
* recvq (cola máxima de mensajes recibidos desde la conexión [Control de Flood]);
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
class clients
|
|
||||||
{
|
|
||||||
pingfreq 90;
|
|
||||||
maxclients 500;
|
|
||||||
sendq 100000;
|
|
||||||
recvq 8000;
|
|
||||||
};
|
|
||||||
|
|
||||||
class servers
|
|
||||||
{
|
|
||||||
pingfreq 90;
|
|
||||||
maxclients 10; /* Cantidad máxima de servers que podemos enlazar a la vez */
|
|
||||||
sendq 1000000;
|
|
||||||
connfreq 100; /* Cuentos segundos entre cada intento de conexión */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: allow {}
|
|
||||||
* VIEJO: I:Line
|
|
||||||
* Esto define los permisos de las conexiones...
|
|
||||||
* Fundamentalmente para los clientes, les permite conectarse así tu puedes tener un poco de
|
|
||||||
* control y/o poner una contraseña.
|
|
||||||
* La sintaxis es la siguiente:
|
|
||||||
* allow {
|
|
||||||
* ip (IP/IPs a permitir);
|
|
||||||
* hostname (nombre de host);
|
|
||||||
* class (clase asignada a esta conexión [ver class {}]);
|
|
||||||
* password "(contraseña)"; (opcional)
|
|
||||||
* maxperip (cuantas conexiones por IP); (opcional)
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
allow {
|
|
||||||
ip *@*;
|
|
||||||
hostname *@*;
|
|
||||||
class clients;
|
|
||||||
maxperip 5;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* allow {} con contraseña */
|
|
||||||
allow {
|
|
||||||
ip *@255.255.255.255;
|
|
||||||
hostname *@*.gente.fea.con.clave;
|
|
||||||
class clients;
|
|
||||||
password "f00Ness";
|
|
||||||
maxperip 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: allow channel {}
|
|
||||||
* VIEJO: chrestrict
|
|
||||||
* Permite a un usuario unirse a un canal...
|
|
||||||
* como una expeción de deny channel.
|
|
||||||
* Sintaxis:
|
|
||||||
* allow channel {
|
|
||||||
* channel "#nombredelcanal";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
allow channel {
|
|
||||||
channel "#WarezApestan";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: oper {}
|
|
||||||
* VIEJO: O:Line
|
|
||||||
* Define a un Operador de IRC
|
|
||||||
* Los Operadores de IRC estan para mantener al servidor "sano" y usualmente
|
|
||||||
* mantenerlo y tenerlo conectado a la red.
|
|
||||||
* La sintaxis es la siguiente:
|
|
||||||
* oper (login) {
|
|
||||||
* class (clase para ponerlos, si es difirente de la que esta en allow {], los mueve a la nueva clase);
|
|
||||||
* from {
|
|
||||||
* userhost (ident@host);
|
|
||||||
* userhost (ident@host);
|
|
||||||
* };
|
|
||||||
* flags
|
|
||||||
* {
|
|
||||||
* (las flags aqui*);
|
|
||||||
* };
|
|
||||||
* O
|
|
||||||
* flags "flags antiguas como, OAaRD";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* Para una lista de banderas de operador, lea doc/unreal32docs.es.html#operblock
|
|
||||||
* [lectura ALTAMENTE recomendada]
|
|
||||||
*/
|
|
||||||
|
|
||||||
oper bobsmith {
|
|
||||||
class clients;
|
|
||||||
from {
|
|
||||||
userhost bob@smithco.com;
|
|
||||||
};
|
|
||||||
password "f00";
|
|
||||||
flags
|
|
||||||
{
|
|
||||||
netadmin;
|
|
||||||
can_zline;
|
|
||||||
can_gzline;
|
|
||||||
can_gkline;
|
|
||||||
global;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: listen {}
|
|
||||||
* VIEJO: P:Line
|
|
||||||
* Esto define el puerto/IP a el que el IRCd debe escuchar y unirse, esto
|
|
||||||
* permite a los usuarios/servidores conectarse al servidor.
|
|
||||||
* La sintaxis es:
|
|
||||||
* listen (Dirección IP):(número de puerto)
|
|
||||||
* {
|
|
||||||
* options {
|
|
||||||
* (opciones aqui);
|
|
||||||
* };
|
|
||||||
* };
|
|
||||||
* o simplemente
|
|
||||||
* listen: listen (ip):(puerto);
|
|
||||||
*
|
|
||||||
* NOTA: para IPs IPv6 (3ffe:b80:2:51d::2, etc.), use listen [ip]:puerto;
|
|
||||||
*
|
|
||||||
* Eso también funciona.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Opciones para listen {}:
|
|
||||||
VIEJAS | NUEVAS | SIGNIFICADO
|
|
||||||
S serversonly Sólo Servidores
|
|
||||||
C clientsonly Sólo Clientes
|
|
||||||
J java Sólo Clientes Java
|
|
||||||
s ssl Conexion Cifrada (SSL)
|
|
||||||
* standard Standard
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* NOTA EN PUERTOS SSL: Los puertos SSL no están estandarizados,
|
|
||||||
* muchos puertos SSL estan en números muy altos, algunas personas dicen que deberias hacerlo
|
|
||||||
* en el puerto 994 por que ese es el puerto SSL oficial... ¡pero eso
|
|
||||||
* requiere acceso root! Además, el puerto 194 es el puerto oficial de IRC... y
|
|
||||||
* has visto alguna vez ver un IRCd corriendo en ese puerto? Usan el 6667.
|
|
||||||
* Asi que, nuestra sugerencia es que uses el puerto 6697 para SSL, ese puerto es usado por
|
|
||||||
* una cantidad de redes decente y es reconozido por ejemplo: por StunTour.
|
|
||||||
* Además eres libre de abrir cuantos puertos SSL quieras, pero
|
|
||||||
* correr uno en 6697 ayudaría al mundo a estandarizarlo un poco mas :).
|
|
||||||
*/
|
|
||||||
listen *:6697
|
|
||||||
{
|
|
||||||
options
|
|
||||||
{
|
|
||||||
ssl;
|
|
||||||
clientsonly;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
listen *:8067;
|
|
||||||
listen *:6667;
|
|
||||||
|
|
||||||
/* NOTA: Si estas en shell IRCd con multiples IPs, normalmente
|
|
||||||
* obtendras un error como 'La dirección ya esta en uso/Address already in use' en tus logs
|
|
||||||
* y el IRCd no iniciará. Esto significa que tu DEBES unir el IRCd
|
|
||||||
* a una IP específica en vez de '*', por ejemplo:
|
|
||||||
* listen 1.2.3.4:6667;
|
|
||||||
* Obviamente, reemplaza esa IP con la IP que se te fue asignada.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: link {}
|
|
||||||
* VIEJO: C/N:Lines
|
|
||||||
* Esto define los enlazes entre servidores.
|
|
||||||
* NOTA: ¡LOS DOS SERVIDORES NECESITAN UN BLOQUE LINK {} PARA ENLAZARSE BIEN!
|
|
||||||
* La sintaxis es:
|
|
||||||
* link (nombre.del.servidor)
|
|
||||||
* {
|
|
||||||
* username (nombre de usuario, * también funciona);
|
|
||||||
* hostname (dirección IP/máscara de host);
|
|
||||||
* bind-ip (A que IP unirse cuando se estan enlazando, o *);
|
|
||||||
* port (Puerto al cual conectarse);
|
|
||||||
* hub (Si esto es un hub, * funciona.);
|
|
||||||
* [o leaf *;]
|
|
||||||
* password-connect "(contraseña a enviar)";
|
|
||||||
* password-receive "(contraseña que deberiamos)";
|
|
||||||
* class (Clase a donde dirigir los servers);
|
|
||||||
* options {
|
|
||||||
* (las opciones van aqui*);
|
|
||||||
* };
|
|
||||||
* // Si tu uses SSL, debes escoger que cifrado usar en el modo SSL
|
|
||||||
* // Obtiene una lista con "openssl ciphers", separa los métodos de cifrados con ":"
|
|
||||||
*
|
|
||||||
* ciphers "DES-CBC3-MD5";
|
|
||||||
*
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
opciones:
|
|
||||||
VIEJAS | NUEVAS | SIGNIFICADO
|
|
||||||
S ssl Usar SSL
|
|
||||||
Z zip Comprimir los datos enviados.
|
|
||||||
N/A autoconnect su servidor intentará conectar automáticamente.
|
|
||||||
El tiempo usado entre intentos es el que especificó en class::connfreq
|
|
||||||
(se recomienda para un sólo lado, de leaf a hub)
|
|
||||||
N/A quarantine Aislar
|
|
||||||
N/A nodnscache No usar Caché DNS (Muy útil para DDNS)
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
link hub.mynet.com
|
|
||||||
{
|
|
||||||
username *;
|
|
||||||
hostname 1.2.3.4;
|
|
||||||
bind-ip *;
|
|
||||||
port 7029;
|
|
||||||
hub *;
|
|
||||||
password-connect "LiNk";
|
|
||||||
password-receive "LiNk";
|
|
||||||
class servers;
|
|
||||||
options {
|
|
||||||
/* Nota: No deberias usar autoconnect cuando conectas servicios */
|
|
||||||
autoconnect;
|
|
||||||
ssl;
|
|
||||||
zip;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* NUEVO: ulines {}
|
|
||||||
* VIEJO: U:Line
|
|
||||||
* Las ulines {} le dan a los servidores mas poder/comandos, ¡esto SOLO debe ser usado
|
|
||||||
* para los servidores de servicios/estadísticas y NUNCA para servidores UnrealIRCd normales!.
|
|
||||||
* (Para un buen funcionamiento, todos los servidores deberían tener los mismos U:Lines)
|
|
||||||
* La Sintaxis es la siguiente:
|
|
||||||
* ulines {
|
|
||||||
* (servidor a ulinear);
|
|
||||||
* (servidor a ulinear);
|
|
||||||
* [etc]
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
ulines {
|
|
||||||
services.roxnet.org;
|
|
||||||
stats.roxnet.org;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: {}
|
|
||||||
* VIEJO: X:Line
|
|
||||||
* Esto define las contraseñas para /die y /restart.
|
|
||||||
* La sintaxis es:
|
|
||||||
* drpass {
|
|
||||||
* restart "(contraseña para reiniciar)";
|
|
||||||
* die "(contraseña para matar al IRCd)";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
drpass {
|
|
||||||
restart "amo-reiniciar";
|
|
||||||
die "muere-inepto";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: log {}
|
|
||||||
* VIEJO: N/A
|
|
||||||
* Le dice al IRCd donde y que loguear. Puedes tener cuantos tu quieras.
|
|
||||||
*
|
|
||||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
|
||||||
*
|
|
||||||
* Sintaxis:
|
|
||||||
* log "archivo.log"
|
|
||||||
* {
|
|
||||||
* flags
|
|
||||||
* {
|
|
||||||
* flag;
|
|
||||||
* flag;
|
|
||||||
* etc...
|
|
||||||
* };
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
log "ircd.log" {
|
|
||||||
/* Borra el archivo e inicia uno nuevo cuando logre 2MB, no uses esto para siempre usar el mismo log */
|
|
||||||
maxsize 2097152;
|
|
||||||
flags {
|
|
||||||
oper;
|
|
||||||
connects;
|
|
||||||
server-connects;
|
|
||||||
kills;
|
|
||||||
errors;
|
|
||||||
sadmin-commands;
|
|
||||||
chg-commands;
|
|
||||||
oper-override;
|
|
||||||
spamfilter;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: alias {}
|
|
||||||
* VIEJO: N/A
|
|
||||||
* Esto te permite hacer aliases de comandos como /nickserv, /chanserv, etc.
|
|
||||||
* FLAGS: services, stats, normal
|
|
||||||
*
|
|
||||||
* Sintaxis:
|
|
||||||
* alias "nombre" {
|
|
||||||
* target "apunta a";
|
|
||||||
* type aliastype;
|
|
||||||
* };
|
|
||||||
*
|
|
||||||
* [NOTA: Tu también puedes usar un archivo de aliases-predefinidos, lea doc/unreal32docs.es.html sección 2.9]
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Esto apunta el comando a /nickserv a el usuario NickServ el cual esta conectado con el servidor de set::services-server.
|
|
||||||
/*alias NickServ {
|
|
||||||
target "NickServ";
|
|
||||||
type services;
|
|
||||||
};*/
|
|
||||||
|
|
||||||
// Si tu quieres el comando que apunta al el mismo nick que el comando, puedes dejar la entrada "nick" vacia.
|
|
||||||
//alias ChanServ { type services; };
|
|
||||||
|
|
||||||
// Apunta el comando /statserv a el usuario StatServ en el servidor set::stats-server.
|
|
||||||
//alias StatServ { type stats; };
|
|
||||||
|
|
||||||
// Apunta el comando /superbot a el usuario SuperBot
|
|
||||||
//alias SuperBot { type normal; };
|
|
||||||
|
|
||||||
|
|
||||||
/* Aliases Standard */
|
|
||||||
alias NickServ { type services; };
|
|
||||||
alias ChanServ { type services; };
|
|
||||||
alias OperServ { type services; };
|
|
||||||
alias HelpServ { type services; };
|
|
||||||
alias StatServ { type stats; };
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: alias {}
|
|
||||||
* VIEJO: N/A
|
|
||||||
* Esto te permite configurar aliases de comandos como /identify, /services, etc.
|
|
||||||
*
|
|
||||||
* Sintaxis:
|
|
||||||
* alias "nombre" {
|
|
||||||
* format "Formato de la Cadena" {
|
|
||||||
* target "apunta a";
|
|
||||||
* type tipodealias;
|
|
||||||
* parameters "parametros a enviar";
|
|
||||||
* };
|
|
||||||
* type command;
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
/* Esto es mostrado separadamente por que hasta tiene el mismo nombre que la directiva anterioir as, es muy diferente en sintaxis,
|
|
||||||
* pero provee una función muy similar.
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
alias "identify" {
|
|
||||||
format "^#" {
|
|
||||||
target "chanserv";
|
|
||||||
type services;
|
|
||||||
parameters "IDENTIFY %1-";
|
|
||||||
};
|
|
||||||
format "^[^#]" {
|
|
||||||
target "nickserv";
|
|
||||||
type services;
|
|
||||||
parameters "IDENTIFY %1-";
|
|
||||||
};
|
|
||||||
type command;
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
/* La directiva alias::format es una expresión regular. El primer formato coincide con el comando /identify cuando
|
|
||||||
* el primer carácter es #. Luego pasa esto a ChanServ con los parámetros IDENTIFY
|
|
||||||
* %1-. El segundo formato coincide con /identify cuando el primer caracter no es un #. Entonces
|
|
||||||
* el comando pasa a nickserv con los parámetros IDENTIFY %1-.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* El alias::format::parameters es similar a los lenguajes de scripting. %N (donde N es un número) representa el
|
|
||||||
* parámetro enviado al comando (en este caso, /identify). Si especificas %N- significa "todos los parámetros desde
|
|
||||||
* N hasta el último parámetro en la cadena". También puedes especificar %n que es reemplazado por el nick del usuario.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Aliases Standard */
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Este es un ejemplo de un alias de comando real */
|
|
||||||
/* Esto redirije /GLINEBOT a /GLINE <parámetro> Los Bots 2D... */
|
|
||||||
alias "glinebot" {
|
|
||||||
format ".+" {
|
|
||||||
command "gline";
|
|
||||||
type real;
|
|
||||||
parameters "%1 Los Bots 2D no están permitidos en este servidor, para mas información lea la faq en http://www.ejemplo.com/faq/123";
|
|
||||||
};
|
|
||||||
type command;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: files {}
|
|
||||||
* VIEJO: include/config.h
|
|
||||||
*
|
|
||||||
* Este bloque se sobrepone con el dirctorio principal del IRCd para cargar cosas
|
|
||||||
* como el MOTD, el PIPfile, o escribir/cargar el tunefile. La
|
|
||||||
* existencia de este bloque permite una instalación de UnrealIRCd a
|
|
||||||
* soportar múltiples instancias corriendo cuando es combinado con la opción -c
|
|
||||||
* en la línea de comandos.
|
|
||||||
*
|
|
||||||
* Usualmente. Los directorios relativos son interpretados relativamente a el directorio
|
|
||||||
* donde UnrealIRCd encuentra unrealircd.conf si -c -no-
|
|
||||||
* es especificado en la línea de comandos.
|
|
||||||
*/
|
|
||||||
files
|
|
||||||
{
|
|
||||||
/* El Mensaje del Dia (MOTD - Message of the Day) mostrado a los usuarios que se conectan: */
|
|
||||||
/* motd ircd.motd; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Un MOTD corto. Si el archivo existe, sera mostrado a
|
|
||||||
* el usuario en vez del MOTD. Los usuarios todavia podrán ver el
|
|
||||||
* MOTD completo usando el comando /MOTD.
|
|
||||||
*/
|
|
||||||
/* shortmotd ircd.smotd; */
|
|
||||||
|
|
||||||
/* Mostrado cuando un operador usa /OPER y se loguea exitosamente. */
|
|
||||||
/* opermotd oper.motd; */
|
|
||||||
|
|
||||||
/* El MOTD de los Servicios. */
|
|
||||||
/* svsmotd ircd.svsmotd; */
|
|
||||||
|
|
||||||
/* El MOTD de los Bots */
|
|
||||||
/* botmotd bot.motd; */
|
|
||||||
|
|
||||||
/* Las reglas que se muestran al usar /RULES */
|
|
||||||
/* rules ircd.rules; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Donde el IRCd guarda y carga algunos parámetros que deberían
|
|
||||||
* ser persistentes entre reinicios del servidor. Debe apuntar a un
|
|
||||||
* archivo existente el cual el IRCd tiene permiso para alterarlo o un
|
|
||||||
* archivo en una carpeta donde el IRCd puede crear archivos.
|
|
||||||
*/
|
|
||||||
/* tunefile ircd.tune; */
|
|
||||||
|
|
||||||
/* Donde guardar el PID del IRCd. Debería ser modificable por el IRCd. */
|
|
||||||
/* pidfile ircd.pid; */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: tld {}
|
|
||||||
* VIEJO: T:Line
|
|
||||||
* Esto configura MOTDs y RULES distintos
|
|
||||||
* dependiendo en la máscara de host del cliente.
|
|
||||||
* La sintaxis es:
|
|
||||||
* tld {
|
|
||||||
* mask (ident@host);
|
|
||||||
* motd "(archivo-motd)";
|
|
||||||
* rules "(archivo-rules)";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
tld {
|
|
||||||
mask *@*.fr;
|
|
||||||
motd "ircd.motd.fr";
|
|
||||||
rules "ircd.rules.fr";
|
|
||||||
};
|
|
||||||
|
|
||||||
/* NOTA: tu puedes simplemente borrar el bloque de ejemplo aqui arriba,
|
|
||||||
* en ese caso los MOTD/RULES normales (ircd.motd, ircd.rules)
|
|
||||||
* serán usados para todos.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: ban nick {}
|
|
||||||
* VIEJO: Q:Line
|
|
||||||
* Banea a un nick, así no puede ser usado.
|
|
||||||
* La sintaxis es la siguiente:
|
|
||||||
* ban nick {
|
|
||||||
* mask "(nick a banear)";
|
|
||||||
* reason "(rasón)";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
ban nick {
|
|
||||||
mask "*C*h*a*n*S*e*r*v*";
|
|
||||||
reason "Reservado para los Servicios";
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
* NUEVO: ban ip {}
|
|
||||||
* VIEJO: Z:Line
|
|
||||||
* Banea una IP de conectarse a la red.
|
|
||||||
* Sintaxis:
|
|
||||||
* ban ip { mask (ip/hostmask); reason "(rasón)"; };
|
|
||||||
*/
|
|
||||||
ban ip {
|
|
||||||
mask 195.86.232.81;
|
|
||||||
reason "Servidor delinkeado";
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
* NUEVO: ban server {}
|
|
||||||
* VIEJO: Server Q:Line
|
|
||||||
* Prohibe a un servidor de conectarse a la red.
|
|
||||||
* Si el servidor se linkea a un servidor remoto, el servidor local
|
|
||||||
* se desconectará de la red.
|
|
||||||
* La sintaxis es la siguiente:
|
|
||||||
* ban server {
|
|
||||||
* mask "(nombre.del.servidor)";
|
|
||||||
* reason "(Rasón)";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
ban server {
|
|
||||||
mask eris.berkeley.edu;
|
|
||||||
reason "Fuera de aca.";
|
|
||||||
};
|
|
||||||
/*
|
|
||||||
* NUEVO: ban user {}
|
|
||||||
* VIEJO: K:Line
|
|
||||||
* Esto hace que un usuario con una máscara de host determinada no se pueda conectar
|
|
||||||
* a tu servidor.
|
|
||||||
* Sintaxis:
|
|
||||||
* ban user { mask (hostmask/ip); reason "(rasón)"; };
|
|
||||||
*/
|
|
||||||
|
|
||||||
ban user {
|
|
||||||
mask *tirc@*.saturn.bbn.com;
|
|
||||||
reason "Idiota";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: ban realname {}
|
|
||||||
* VIEJO: n:Line
|
|
||||||
* Este bloque banea a un determinado realname (nombre real) de ser usado.
|
|
||||||
* Sintaxis:
|
|
||||||
* ban realname {
|
|
||||||
* mask "(nombre real)";
|
|
||||||
* reason "(rasón)";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
|
|
||||||
ban realname {
|
|
||||||
mask "Swat Team";
|
|
||||||
reason "mIRKFORCE";
|
|
||||||
};
|
|
||||||
|
|
||||||
ban realname {
|
|
||||||
mask "sub7server";
|
|
||||||
reason "sub7";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTA PARA TODOS LOS BANS, puedes repetirlos para agregar mas!
|
|
||||||
*
|
|
||||||
* NUEVO: except ban {}
|
|
||||||
* VIEJO: E:Line
|
|
||||||
* Eso hace que no puedas ser baneado.
|
|
||||||
* Sintaxis:
|
|
||||||
* except ban { mask (ident@host); };
|
|
||||||
* Repite el except ban {} cuantas veces quieras
|
|
||||||
* para diferentes bans.
|
|
||||||
*/
|
|
||||||
|
|
||||||
except ban {
|
|
||||||
/* no banees a stskeeps */
|
|
||||||
mask *stskeeps@212.*;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: deny dcc {}
|
|
||||||
* VIEJO: dccdeny.conf
|
|
||||||
* Use este block para denegar DCC SENDs...
|
|
||||||
* detiene a los virus mejor.
|
|
||||||
* Sintaxis
|
|
||||||
* deny dcc
|
|
||||||
* {
|
|
||||||
* filename "(archivo a bloquear (por ejemplo: *.exe"));
|
|
||||||
* reason ("rasón");
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
deny dcc {
|
|
||||||
filename "*sub7*";
|
|
||||||
reason "Posiblemente un virus Sub7";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NUEVO: deny channel {}
|
|
||||||
* VIEJO: N/A (NUEVO)
|
|
||||||
* Esto bloquea canales de ser creados.
|
|
||||||
* Sintaxis:
|
|
||||||
* deny channel {
|
|
||||||
* channel "(canal)";
|
|
||||||
* reason "rasón";
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
deny channel {
|
|
||||||
channel "*warez*";
|
|
||||||
reason "El Warez es ilegal";
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NEW: vhost {}
|
|
||||||
* OLD: Vhost.conf file
|
|
||||||
* Setea una IP para los no-operadores, o
|
|
||||||
* para opers muy flojos para hacer /sethost :P
|
|
||||||
* Sintaxis:
|
|
||||||
* vhost {
|
|
||||||
* vhost (vhost.com);
|
|
||||||
* from {
|
|
||||||
* userhost (ident@host.a.permitir.usar.el.vhost);
|
|
||||||
* };
|
|
||||||
* login (nombre del login);
|
|
||||||
* password (contraseña);
|
|
||||||
* };
|
|
||||||
* para usar este vhost, usa /vhost (login) (contraseña) en IRC
|
|
||||||
*/
|
|
||||||
vhost {
|
|
||||||
vhost i.hate.microsefrs.com;
|
|
||||||
from {
|
|
||||||
userhost *@*.image.dk;
|
|
||||||
};
|
|
||||||
login stskeeps;
|
|
||||||
password moocowsrulemyworld;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Puedes incluir otros archivos de configuración */
|
|
||||||
/* include "klines.conf"; */
|
|
||||||
|
|
||||||
/* Configuración de la red */
|
|
||||||
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"; */
|
|
||||||
/* Las llaves de cifrado (cloak keys) deberían ser las mismas en toda la red.
|
|
||||||
* Son usadas para generar hosts "enmascarados" y mantenerlos secretos.
|
|
||||||
* Las llaves deben ser 3 cadenas aleatorias de 5 a 100 carácteres
|
|
||||||
* (de 10 a 20 es aceptable también) y deben tener una minúscula (a-z),
|
|
||||||
* mayúscula (A-Z) y dígitos (0-9) [mira el ejemplo de la primera llave].
|
|
||||||
* CONSEJO: En *NIX puedes ejecutar './unreal gencloak' en tu shell para hacer que
|
|
||||||
* Unreal genere tres cadenas aleatorias por ti.
|
|
||||||
*/
|
|
||||||
cloak-keys {
|
|
||||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
|
||||||
"and another one";
|
|
||||||
"and another one";
|
|
||||||
};
|
|
||||||
/* host para los operadores */
|
|
||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Configuración específica del servidor */
|
|
||||||
|
|
||||||
set {
|
|
||||||
kline-address "configura.este@email";
|
|
||||||
modes-on-connect "+ixw";
|
|
||||||
modes-on-oper "+xwgs";
|
|
||||||
oper-auto-join "#opers";
|
|
||||||
options {
|
|
||||||
hide-ulines;
|
|
||||||
/* Puedes habilitar el chequeo de ident si quieres*/
|
|
||||||
/* identd-check; */
|
|
||||||
show-connect-info;
|
|
||||||
};
|
|
||||||
|
|
||||||
maxchannelsperuser 10;
|
|
||||||
/* El tiempo mínimo que un usuario debe estar conectado antes de usar un mensaje QUIT,
|
|
||||||
* Esto podria detener el spam */
|
|
||||||
anti-spam-quit-message-time 10s;
|
|
||||||
/* Hace que el mensaje en static-quit se muestr en todos kis quits - significando que
|
|
||||||
no se permiten quits personalizados en este servidor */
|
|
||||||
/* static-quit "El Cliente se desconectó"; */
|
|
||||||
|
|
||||||
/* También puedes bloquear todas las razones de part, descomentando el siguiente comentario y poniendo 'yes',
|
|
||||||
* o especificar otro mensaje (ejemplo: "¡Adiós!") para usar siempre como razón. */
|
|
||||||
/* static-part yes; */
|
|
||||||
|
|
||||||
/* Esto permite que pudas hacer algunos comandos de /stats solo para uso de los operadores, use * para ocultar todos los stats,
|
|
||||||
* dejelo en blanco para permitir a los usuarios ver todos los /stats. Escriba '/stats' para una lista completa.
|
|
||||||
* Algunos administradores querrán remover los stats "kGs" para prohibir a los usuarios normales ver los
|
|
||||||
* klines, glines y shuns.
|
|
||||||
*/
|
|
||||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
|
||||||
|
|
||||||
/* Regulación de Conexiones: este ejemplo setea un límite de 3 intentos de conexión cada 60 segundos (por host). */
|
|
||||||
throttle {
|
|
||||||
connections 3;
|
|
||||||
period 60s;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Protección anti-flood */
|
|
||||||
anti-flood {
|
|
||||||
nick-flood 3:60; /* 3 cambios de nick por cada 60 segunos (por defecto) */
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Filtro de Spam */
|
|
||||||
spamfilter {
|
|
||||||
ban-time 1d; /* duración de un *line puesto por spamfilter (filtro de spam) */
|
|
||||||
ban-reason "Spam/Publicidad"; /* razón */
|
|
||||||
virus-help-channel "#help"; /* canal para usar para la acción "viruchan" */
|
|
||||||
/* exceptuar "#help"; el canal "#help" esta libre de filtro */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Problemas o necesitas mas ayuda?
|
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ (en inglés)<- ¡contiene el 80% de tus preguntas!
|
|
||||||
* 3) Si sigues teniendo problemas, ve a irc.unrealircd.org #unreal-support,
|
|
||||||
* ¡nótese que NECESITAMOS que leas la DOCUMENTACIÓN y la FAQ antes de preguntarnos!
|
|
||||||
*/
|
|
||||||
+84
-141
@@ -1,26 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||||
* Ancien traducteur français : babass
|
|
||||||
* Tradution française : Alef Burzmali - http://www.burzmali.com
|
|
||||||
* Dernière mise à jour : 2010-09-11
|
|
||||||
* $Id$
|
* $Id$
|
||||||
|
* Traduction française par babass (babass@unrealircd.org).
|
||||||
*
|
*
|
||||||
* Fonctionne pour Unreal3.2.x
|
* Fonctionne pour Unreal3.2 et supérieur
|
||||||
*
|
*
|
||||||
* Okay les gars, voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
* 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
|
* 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 de lecture vous comprendrez.
|
* 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'.
|
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||||
*
|
*
|
||||||
* NOTE: Toutes les lignes, exceptées les ligne d'ouvertures { , se terminent par un ;, en particulier
|
* NOTE: Toutes les lignes, excepté la ligne d'ouverture { , les lignes finissant par un ;,
|
||||||
* celles de fermeture }.
|
* et celle de fermeture } incluses.
|
||||||
* L'IRCd ignorera les lignes commentées.
|
* L'IRCd ignorera les lignes commentées.
|
||||||
*
|
*
|
||||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html !
|
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html! La version en ligne est aussi disponible à :
|
||||||
* La version en ligne est aussi disponible à : http://www.unrealircd.com/files/docs/unreal32docs.fr.html
|
* www.vulnscan.org/UnrealIRCd/unreal32docs.fr.html
|
||||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournit des informations
|
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournis des informations
|
||||||
* à propos de chaque bloc, variable, etc..
|
* à propos de chaque blocs, variable, etc..
|
||||||
* Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
|
* Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
|
||||||
* vous êtes presque sûr de vous tromper.
|
* vous êtes presque sûr de vous tromper.
|
||||||
*/
|
*/
|
||||||
@@ -29,10 +27,10 @@
|
|||||||
#Commentaire type 1 (type Shell)
|
#Commentaire type 1 (type Shell)
|
||||||
// Commentaire type 2 (style C++)
|
// Commentaire type 2 (style C++)
|
||||||
/* Commentaire type 3 (style C) */
|
/* Commentaire type 3 (style C) */
|
||||||
# Toutes ces lignes sont ignorées par l'ircd.
|
#Ces lignes sont ignorées par l'ircd.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* UnrealIRCd supporte des modules et certains sont obligatoires.
|
* UnrealIRCd supportes des modules, en charger certains est requis.
|
||||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -46,13 +44,12 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||||
* doc/help.fr.conf contient tout le texte de /helpop en français.
|
* help.conf contient tous le texte de /helpop. Les fichiers badwords.*.conf
|
||||||
* help.conf contient la version anglaise.
|
* contiennent tous les badwords pour le mode +G...
|
||||||
* Les fichiers badwords.*.conf contiennent tous les badwords pour le mode +G...
|
|
||||||
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
||||||
* Vous voudrez probablement les inclure:
|
* Vous voudrez probablement les inclure:
|
||||||
*/
|
*/
|
||||||
include "doc/help.fr.conf";
|
include "help.conf";
|
||||||
include "badwords.channel.conf";
|
include "badwords.channel.conf";
|
||||||
include "badwords.message.conf";
|
include "badwords.message.conf";
|
||||||
include "badwords.quit.conf";
|
include "badwords.quit.conf";
|
||||||
@@ -61,14 +58,14 @@ include "spamfilter.conf";
|
|||||||
/*
|
/*
|
||||||
* ACTUEL : me {}
|
* ACTUEL : me {}
|
||||||
* ANCIEN : M:Line
|
* ANCIEN : M:Line
|
||||||
* me {} definit le nom, la description et l'identifiant numérique pour ce serveur.
|
* me {} definit le nom, la description et le numeric du serveur unreal
|
||||||
* La syntaxe est la suivante :
|
* pour ce serveur. La syntaxe est la suivante :
|
||||||
* me {
|
* me {
|
||||||
* name "nom.du.serveur";
|
* name "nom.du.serveur";
|
||||||
* info "Description du Serveur";
|
* info "Description du Serveur";
|
||||||
* numeric (numeric* serveur);
|
* numeric (numeric* serveur);
|
||||||
* };
|
* };
|
||||||
* En cas de link, cet identifiant ne peut être utilisé pour aucun autre serveur du réseau.
|
* En cas de link, ce numeric ne peut être utilisé pour aucun autre serveur du réseau.
|
||||||
*/
|
*/
|
||||||
me
|
me
|
||||||
{
|
{
|
||||||
@@ -98,8 +95,8 @@ admin {
|
|||||||
/*
|
/*
|
||||||
* ACTUEL : class {}
|
* ACTUEL : class {}
|
||||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||||
* Définit les réglages pour les classes. Une classe est un groupe de réglages pour
|
* Défini les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||||
* des connexions. Par exemple, pour les connexions serveurs, au lieu de passer par une classe
|
* 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 :
|
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||||
* class (nom de la classe)
|
* class (nom de la classe)
|
||||||
* {
|
* {
|
||||||
@@ -110,7 +107,7 @@ admin {
|
|||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class clients
|
class clients
|
||||||
{
|
{
|
||||||
pingfreq 90;
|
pingfreq 90;
|
||||||
maxclients 500;
|
maxclients 500;
|
||||||
@@ -118,18 +115,18 @@ class clients
|
|||||||
recvq 8000;
|
recvq 8000;
|
||||||
};
|
};
|
||||||
|
|
||||||
class servers
|
class servers
|
||||||
{
|
{
|
||||||
pingfreq 90;
|
pingfreq 90;
|
||||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||||
sendq 1000000;
|
sendq 1000000;
|
||||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ACTUEL : allow {}
|
* ACTUEL : allow {}
|
||||||
* ANCIEN : I:Line
|
* ANCIEN : I:Line
|
||||||
* Définit les autorisations de connexions...
|
* Défini les autorisations de connexions...
|
||||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
* 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.
|
* contrôle et/ou mettre un mot de passe.
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
@@ -158,15 +155,30 @@ allow {
|
|||||||
maxperip 1;
|
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 {}
|
* ACTUEL : oper {}
|
||||||
* ANCIEN : O:Line
|
* ANCIEN : O:Line
|
||||||
* Définit un IRC Operateur
|
* Défini un IRC Operateur
|
||||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
* 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 maintenance et sa connexion au réseau.
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* oper (login) {
|
* oper (login) {
|
||||||
* class (classe à laquelle les associer, si différent du bloc allow, les déplace vers une nouvelle classe);
|
* class (classe à laquelle les associer, si différent de moi, déplacez les vers une
|
||||||
|
* nouvelle classe);
|
||||||
* from {
|
* from {
|
||||||
* userhost (ident@host);
|
* userhost (ident@host);
|
||||||
* userhost (ident@host);
|
* userhost (ident@host);
|
||||||
@@ -204,7 +216,7 @@ oper bobsmith {
|
|||||||
/*
|
/*
|
||||||
* ACTUEL : listen {}
|
* ACTUEL : listen {}
|
||||||
* ANCIEN : P:Line
|
* ANCIEN : P:Line
|
||||||
* Définit un port à rattacher à l'ircd, pour autoriser
|
* Défini un port à rattacher à l'ircd, pour autoriser
|
||||||
* des utilisateurs/serveurs à se connecter au serveur.
|
* des utilisateurs/serveurs à se connecter au serveur.
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* listen (ip):(port)
|
* listen (ip):(port)
|
||||||
@@ -222,12 +234,12 @@ oper bobsmith {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Options de listen:
|
/* Options de listen:
|
||||||
ANCIEN | ACTUEL
|
ANCIEN | ACTUEL
|
||||||
S serversonly
|
S serversonly
|
||||||
C clientsonly
|
C clientsonly
|
||||||
J java
|
J java
|
||||||
s ssl
|
s ssl
|
||||||
* standard
|
* standard
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||||
@@ -236,9 +248,9 @@ oper bobsmith {
|
|||||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
* 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 ?
|
* 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
|
* Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
|
||||||
* beaucoup de réseaux et est reconnu par exemple par StunTour.
|
* 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
|
* Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
|
||||||
* en utilisant (au moins) 6697 vous aidez le monde à se standardiser un peu ;).
|
* en utilisant (au moins) 6697 vous aidez le monde à standardiser un peu a bit ;).
|
||||||
*/
|
*/
|
||||||
listen *:6697
|
listen *:6697
|
||||||
{
|
{
|
||||||
@@ -252,7 +264,7 @@ listen *:6697
|
|||||||
listen *:8067;
|
listen *:8067;
|
||||||
listen *:6667;
|
listen *:6667;
|
||||||
|
|
||||||
/* NOTE: Si vous êtes sur un shell avec de multiples IP vous êtes
|
/* 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)
|
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||||
* dans vos logs et l'ircd refusera de démarer.
|
* dans vos logs et l'ircd refusera de démarer.
|
||||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||||
@@ -264,14 +276,14 @@ listen *:6667;
|
|||||||
/*
|
/*
|
||||||
* ACTUEL : link {}
|
* ACTUEL : link {}
|
||||||
* ANCIEN : C/N:Lines
|
* ANCIEN : C/N:Lines
|
||||||
* Définit un accord pour la connexion d'un serveur.
|
* Défini un accord pour la connexion d'un serveur.
|
||||||
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* link (nom du serveur)
|
* link (nom du serveur)
|
||||||
* {
|
* {
|
||||||
* username (username, * fonctionne aussi);
|
* username (username, * fonctionne aussi);
|
||||||
* hostname (ip/hostmask);
|
* hostname (ip/hostmask);
|
||||||
* bind-ip (IP à laquelle se relier lors de la connexion, ou *);
|
* bind-ip (Quelle IP à laquelle se relier lors de la connexion, ou *);
|
||||||
* port (port auquel se connecter, si il y en a un);
|
* 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);
|
* hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
|
||||||
* [ou leaf *;]
|
* [ou leaf *;]
|
||||||
@@ -281,8 +293,8 @@ listen *:6667;
|
|||||||
* options {
|
* options {
|
||||||
* (options ici*);
|
* (options ici*);
|
||||||
* };
|
* };
|
||||||
* // Si vous utilisez le SSL, vous pouvez choisir quel algorithme de hash utiliser dans le mode SSL
|
* // Si vous utilisez le SSL, vous pouvez choisir quel cryptage (cipher) utiliser dans le mode SSL
|
||||||
* // Utilisez la commande "openssl ciphers" pour obtenir la liste des algorithmes disponibles, séparez les par des ":"
|
* // Retrouvez une liste "crytages openssl", séparez les cryptages par des :
|
||||||
*
|
*
|
||||||
* ciphers "DES-CBC3-MD5";
|
* ciphers "DES-CBC3-MD5";
|
||||||
*
|
*
|
||||||
@@ -292,11 +304,11 @@ listen *:6667;
|
|||||||
/*
|
/*
|
||||||
options:
|
options:
|
||||||
ANCIEN | ACTUEL
|
ANCIEN | ACTUEL
|
||||||
S ssl
|
S ssl
|
||||||
Z zip
|
Z zip
|
||||||
N/A autoconnect
|
N/A autoconnect
|
||||||
N/A quarantine
|
N/A quarantine
|
||||||
N/A nodnscache
|
N/A nodnscache
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -322,7 +334,7 @@ link hub.mynet.com
|
|||||||
* ACTUEL : ulines {}
|
* ACTUEL : ulines {}
|
||||||
* ANCIEN : U:Line
|
* ANCIEN : U:Line
|
||||||
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
||||||
* aux serveurs de services/stats et JAMAIS pour des serveurs UnrealIRCd normaux !
|
* aux serveurs de services/stats et JAMAIS pour des servuers UnrealIRCd normaux !
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* ulines {
|
* ulines {
|
||||||
* (serveur auquel appliquer la uline);
|
* (serveur auquel appliquer la uline);
|
||||||
@@ -342,7 +354,7 @@ ulines {
|
|||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* drpass {
|
* drpass {
|
||||||
* restart "(mot de passe pour relancer)";
|
* restart "(mot de passe pour relancer)";
|
||||||
* die "(mot de passe pour arrêter)";
|
* die "(mot de passe pour arrêter)";
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
drpass {
|
drpass {
|
||||||
@@ -356,7 +368,7 @@ drpass {
|
|||||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||||
* autant que vous le souhaitez.
|
* autant que vous le souhaitez.
|
||||||
*
|
*
|
||||||
* FLAGS : errors, kills, tkl, connects, server-connects, oper
|
* FLAGS : errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Syntaxe :
|
* Syntaxe :
|
||||||
* log "fichier de log"
|
* log "fichier de log"
|
||||||
@@ -376,6 +388,7 @@ log "ircd.log" {
|
|||||||
maxsize 2097152;
|
maxsize 2097152;
|
||||||
flags {
|
flags {
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
kills;
|
kills;
|
||||||
@@ -442,7 +455,7 @@ alias StatServ { type stats; };
|
|||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
/* 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
|
/* 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 qu'elle a une fonction similaire et dépend des alias standards pour
|
* différente dans sa syntaxe, bien que elle a une fonction similaire et dépend des alias standards pour
|
||||||
* fonctionner.
|
* fonctionner.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
@@ -460,10 +473,10 @@ alias "identify" {
|
|||||||
type command;
|
type command;
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
/* La directive alias::format est une expression régulière. Le premier format correspond à la commande
|
/* 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 renvoit donc à l'alias chanserv avec
|
* /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 commande /identify lorsque le premier
|
* les paramètres IDENTIFY %1-. Le second format correspond à la commanden /identify lorsque le premier
|
||||||
* caractère n'est pas un #. Cela envoie alors la commande à l'alias nickserv avec les paramètres
|
* caractère n'est pas un #. Cela envoies alors la commande à l'alias nickserv avec les paramètres
|
||||||
* IDENTIFY %1-.
|
* IDENTIFY %1-.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -513,60 +526,11 @@ alias "glinebot" {
|
|||||||
type command;
|
type command;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* ACTUEL : files {}
|
|
||||||
* ANCIEN : include/config.h
|
|
||||||
*
|
|
||||||
* Ce bloc écrase les chemins utilisés par défaut par l'IRCd pour charger des choses
|
|
||||||
* comme le MOTD, enregistrer son PID ou écrire ou lire son fichier de sauvegarde (tunefile).
|
|
||||||
* L'existence de ce bloc permet à une installation de UnrealIRCd de supporter
|
|
||||||
* plusieurs instances tournant simultanément lorsque combinée à l'option de ligne
|
|
||||||
* de commande -c
|
|
||||||
*
|
|
||||||
* Comme d'habitude, les chemins relatifs sont interprétés à partir du répertoire
|
|
||||||
* dans lequel UnrealIRCd trouverait unrealircd.conf si -c N'est PAS spécifiée
|
|
||||||
* sur la ligne de commande.
|
|
||||||
*/
|
|
||||||
files
|
|
||||||
{
|
|
||||||
/* Le message du jour (Message Of The Day) affiché aux utilisateurs se connectant : */
|
|
||||||
/* motd ircd.motd; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Un MOTD court. Si ce fichier existe, il sera affiché aux
|
|
||||||
* utilisateurs à la place du MOTD. Ceux-ci peuvent toujours voir
|
|
||||||
* le MOTD complet en utilisant la commande /MOTD
|
|
||||||
*/
|
|
||||||
/* shortmotd ircd.smotd; */
|
|
||||||
|
|
||||||
/* Affiché lorsqu'un opérateur utilise /OPER */
|
|
||||||
/* opermotd oper.motd; */
|
|
||||||
|
|
||||||
/* MOTD des services. */
|
|
||||||
/* svsmotd ircd.svsmotd; */
|
|
||||||
|
|
||||||
/* MOTD des bots */
|
|
||||||
/* botmotd bot.motd; */
|
|
||||||
|
|
||||||
/* Affiché par la commande /RULES */
|
|
||||||
/* rules ircd.rules; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fichier dans lequel l'IRCd sauvegarde et charge quelques valeurs qui devraient
|
|
||||||
* être conservées malgré les redémarrages du serveur. Doit pointer vers un fichier
|
|
||||||
* existant que l'IRCd peut modifier ou vers un fichier dans un dossier dans
|
|
||||||
* lequel l'IRCd peut créer des fichiers.
|
|
||||||
*/
|
|
||||||
/* tunefile ircd.tune; */
|
|
||||||
|
|
||||||
/* Fichier dans lequel l'IRCd stocke son pid. L'IRCd doit pouvoir le modifier. */
|
|
||||||
/* pidfile ircd.pid; */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ACTUEL : tld {}
|
* ACTUEL : tld {}
|
||||||
* ANCIEN : T:Line
|
* ANCIEN : T:Line
|
||||||
* Ceci applique un MOTD et des fichiers de règles différents
|
* Ceci applique une motd et des fichiers de règles différents
|
||||||
* en fonction de l'hostmask des clients.
|
* en fonction de l'hostmask des clients.
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* tld {
|
* tld {
|
||||||
@@ -582,15 +546,15 @@ tld {
|
|||||||
rules "ircd.rules.fr";
|
rules "ircd.rules.fr";
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
/* note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||||
* auquel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
* en quel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||||
* seront utilisés pour tout le monde.
|
* seront utilisés pour tout le monde.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ACTUEL : ban nick {}
|
* ACTUEL : ban nick {}
|
||||||
* ANCIEN : Q:Line
|
* ANCIEN : Q:Line
|
||||||
* Bannit un pseudo, il ne peut donc être utilisé.
|
* Banni un pseudo, il ne peut donc être utilisé.
|
||||||
* La syntaxe est la suivante :
|
* La syntaxe est la suivante :
|
||||||
* ban nick {
|
* ban nick {
|
||||||
* mask "(pseudo à bannir)";
|
* mask "(pseudo à bannir)";
|
||||||
@@ -640,7 +604,7 @@ ban server {
|
|||||||
|
|
||||||
ban user {
|
ban user {
|
||||||
mask *tirc@*.saturn.bbn.com;
|
mask *tirc@*.saturn.bbn.com;
|
||||||
reason "Idiot";
|
reason "Idiot";
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -677,15 +641,15 @@ ban realname {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
except ban {
|
except ban {
|
||||||
/* ne bannit pas stskeeps */
|
/* ne banni pas stskeeps */
|
||||||
mask *stskeeps@212.*;
|
mask *stskeeps@212.*;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ACTUEL : deny dcc {}
|
* ACTUEL : deny dcc {}
|
||||||
* ANCIEN : dccdeny.conf
|
* ANCIEN : dccdeny.conf
|
||||||
* Utilisez ceci pour bloquer l'envoi de dcc ...
|
* Utilisez ceci pour bloquer l'envoie de dcc... stope
|
||||||
* Utile pour bloquer les virus.
|
* mieux les virus.
|
||||||
* Syntaxe :
|
* Syntaxe :
|
||||||
* deny dcc
|
* deny dcc
|
||||||
* {
|
* {
|
||||||
@@ -701,35 +665,16 @@ deny dcc {
|
|||||||
/*
|
/*
|
||||||
* ACTUEL : deny channel {}
|
* ACTUEL : deny channel {}
|
||||||
* ANCIEN : N/A (NEW)
|
* ANCIEN : N/A (NEW)
|
||||||
* Ceci empêche des salons d'être joints.
|
* Ceci empêche des salons d'être joins.
|
||||||
* Syntaxe :
|
* Syntax:
|
||||||
* deny channel {
|
* deny channel {
|
||||||
* channel "(salon)";
|
* channel "(salon)";
|
||||||
* reason "raison";
|
* reason "raison";
|
||||||
* class "clients"; (optionnel)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
deny channel {
|
deny channel {
|
||||||
channel "*warez*";
|
channel "*warez*";
|
||||||
reason "Warez is illegal";
|
reason "Warez is illegal";
|
||||||
class "clients";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ACTUEL : allow channel {}
|
|
||||||
* ANCIEN : chrestrict
|
|
||||||
* Autorise un utilisateur à joindre un salon...
|
|
||||||
* comme une exception au deny channel.
|
|
||||||
* Syntaxe :
|
|
||||||
* allow channel {
|
|
||||||
* channel "nom du salon";
|
|
||||||
* class "clients"; (optionnel)
|
|
||||||
* };
|
|
||||||
*/
|
|
||||||
allow channel {
|
|
||||||
channel "#WarezSucks";
|
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -774,8 +719,6 @@ set {
|
|||||||
* Les clés doivent être 3 chaînes de 5-100 caractères melangés.
|
* 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),
|
* (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é].
|
* majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
|
||||||
* Astuce : Sur *NIX, vous pouvez utiliser la commande './unreal gencloak' dans votre shell pour que
|
|
||||||
* Unreal génère 3 chaînes aléatoires pour vous.
|
|
||||||
*/
|
*/
|
||||||
cloak-keys {
|
cloak-keys {
|
||||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||||
@@ -797,7 +740,7 @@ set {
|
|||||||
/* Configuration spécifique d'un serveur */
|
/* Configuration spécifique d'un serveur */
|
||||||
|
|
||||||
set {
|
set {
|
||||||
kline-address "définir.cet.email";
|
kline-address "mettre.cet.email";
|
||||||
modes-on-connect "+ixw";
|
modes-on-connect "+ixw";
|
||||||
modes-on-oper "+xwgs";
|
modes-on-oper "+xwgs";
|
||||||
oper-auto-join "#opers";
|
oper-auto-join "#opers";
|
||||||
@@ -851,8 +794,8 @@ set {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Problèmes ou besoin de plus d'aide ?
|
* Problèmes ou besoin de plus d'aide ?
|
||||||
* 1) http://www.unrealircd.com/files/docs/unreal32docs.fr.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.fr.html
|
||||||
* 2) http://www.vulnscan.org/UnrealIRCd/faq/ <- contient 80% de vos questions !
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contient 80% de vos questions !
|
||||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.unrealircd.org #unreal-support,
|
* 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 !
|
* notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
|
||||||
*/
|
*/
|
||||||
|
|||||||
+6
-57
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||||
* A magyar fordítást AngryWolf <angrywolf2009@gmail.com> készítette.
|
* A magyar fordítást AngryWolf <angrywolf@flashmail.com> készítette.
|
||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* Felhasználható Unreal3.2.x
|
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||||
*
|
*
|
||||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
* 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
|
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||||
@@ -164,12 +164,10 @@ allow {
|
|||||||
* Szintaktika:
|
* Szintaktika:
|
||||||
* allow channel {
|
* allow channel {
|
||||||
* channel "csatornanév";
|
* channel "csatornanév";
|
||||||
* class "clients"; (nem kötelező)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
allow channel {
|
allow channel {
|
||||||
channel "#AWarezSzívás";
|
channel "#AWarezSzívás";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -376,7 +374,7 @@ drpass {
|
|||||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||||
* amennyit szeretnénk.
|
* amennyit szeretnénk.
|
||||||
*
|
*
|
||||||
* FLAGEK: errors, kills, tkl, connects, server-connects, oper
|
* FLAGEK: errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Szintaktika:
|
* Szintaktika:
|
||||||
* log "naplófájl"
|
* log "naplófájl"
|
||||||
@@ -398,6 +396,7 @@ log "ircd.log" {
|
|||||||
maxsize 2097152;
|
maxsize 2097152;
|
||||||
flags {
|
flags {
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
kills;
|
kills;
|
||||||
@@ -534,55 +533,7 @@ alias "glinebot" {
|
|||||||
type command;
|
type command;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* ÚJ: files {}
|
|
||||||
* RÉGI: include/config.h
|
|
||||||
*
|
|
||||||
* Ez a blokk felülírja az IRCd alapértelmezett útvonalait olyan fájlok
|
|
||||||
* betöltésére, mint az MOTD, PID fájl mentése vagy a behangoló fájl
|
|
||||||
* írása/olvasása. Ennek a blokknak a jelenléte támogatást ad arra, hogy
|
|
||||||
* egyetlen telepített UnrealIRCd-nek több példányát futtassuk, amikor
|
|
||||||
* a -c parancssori opcióval párosítjuk.
|
|
||||||
*
|
|
||||||
* Ahogy megszoktuk, a relatív útvonalak ahhoz a könyvtárhoz relatívan
|
|
||||||
* értendőek, ahol az UnrealIRCd megtalálja az unrealircd.conf fájlt,
|
|
||||||
* hacsak nem a -c paramétert megadjuk a parancssorban.
|
|
||||||
*/
|
|
||||||
files
|
|
||||||
{
|
|
||||||
/* A Nap Üzenete (Message Of The Day), elküldve a belépett felhasználóknak: */
|
|
||||||
/* motd ircd.motd; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Egy rövid MOTD (short MOTD). Ha létezik ez a fájl, ezt a fájlt
|
|
||||||
* fogják látni a felhasználók az MOTD helyett. A teljes MOTD-t
|
|
||||||
* továbbra is megnézhetik az /MOTD parancs használatával.
|
|
||||||
*/
|
|
||||||
/* shortmotd ircd.smotd; */
|
|
||||||
|
|
||||||
/* Megjelenik, ha egy operátor bejelentkezik (/OPER) */
|
|
||||||
/* opermotd oper.motd; */
|
|
||||||
|
|
||||||
/* MOTD hozzáfűzés a szolgáltatásoknak. */
|
|
||||||
/* svsmotd ircd.svsmotd; */
|
|
||||||
|
|
||||||
/* Bot MOTD */
|
|
||||||
/* botmotd bot.motd; */
|
|
||||||
|
|
||||||
/* Megjelenik a /RULES parancsra */
|
|
||||||
/* rules ircd.rules; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Itt tárol és innen tölt be az IRCd néhány olyan értéket, amelyet
|
|
||||||
* minden szerverújraindítás során meg kell őriznie. Egy olyan fájlra
|
|
||||||
* kell, hogy mutasson, amely létezik, és az IRCd-nek van módosítási joga,
|
|
||||||
* vagy pedig olyan könyvtárban van, ahol az IRCd-nek van fájllétrehozási joga.
|
|
||||||
*/
|
|
||||||
/* tunefile ircd.tune; */
|
|
||||||
|
|
||||||
/* Ide mentjük az IRCd PID fájlját. Az IRCd számára írhatónak kell lennie. */
|
|
||||||
/* pidfile ircd.pid; */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ÚJ: tld {}
|
* ÚJ: tld {}
|
||||||
@@ -727,13 +678,11 @@ deny dcc {
|
|||||||
* deny channel {
|
* deny channel {
|
||||||
* channel "(csatorna)";
|
* channel "(csatorna)";
|
||||||
* reason "indok";
|
* reason "indok";
|
||||||
* class "clients"; (nem kötelező)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
deny channel {
|
deny channel {
|
||||||
channel "*warez*";
|
channel "*warez*";
|
||||||
reason "A warez törvényellenes";
|
reason "A warez törvényellenes";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -869,7 +818,7 @@ set {
|
|||||||
* Problémák akadtak, vagy szükség van további segítségre?
|
* Problémák akadtak, vagy szükség van további segítségre?
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||||
* 3) Ha még mindig gondod van, felmehetsz az irc.unrealircd.org #unreal-support
|
* 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
|
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||||
* a GYIK-ot!
|
* a GYIK-ot!
|
||||||
*/
|
*/
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@
|
|||||||
* $Id$
|
* $Id$
|
||||||
* Vertaald door Mark
|
* Vertaald door Mark
|
||||||
*
|
*
|
||||||
* Werkt voor Unreal3.2.x
|
* Werkt voor Unreal3.2 en hoger
|
||||||
*
|
*
|
||||||
* Dit is de nieuwe example.conf. Het lijkt veel op C++.
|
* Dit is de nieuwe example.conf. Het lijkt veel op C++.
|
||||||
* Het begin is wellicht moeilijk, maar met wat ervaring en lezen
|
* Het begin is wellicht moeilijk, maar met wat ervaring en lezen
|
||||||
@@ -811,6 +811,6 @@ set {
|
|||||||
* Problemen of meer hulp nodig?
|
* Problemen of meer hulp nodig?
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- hier staat 80% van je vragen!
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- hier staat 80% van je vragen!
|
||||||
* 3) Als je nog steeds problemen hebt, kun je naar irc.unrealircd.org #unreal-support,
|
* 3) Als je nog steeds problemen hebt, kun je naar irc.ircsystems.net #unreal-support,
|
||||||
maar je moet wel eerst de documentatie en FAQ gelezen hebben!
|
maar je moet wel eerst de documentatie en FAQ gelezen hebben!
|
||||||
*/
|
*/
|
||||||
+4
-3
@@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* (Encoding): Windows-1251
|
* (Encoding): Windows-1251
|
||||||
*
|
*
|
||||||
* Работает для Unreal3.2.x
|
* Работает для Unreal3.2 и выше
|
||||||
*
|
*
|
||||||
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
|
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
|
||||||
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
|
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
|
||||||
@@ -365,7 +365,7 @@ drpass {
|
|||||||
* СТАРОЕ: N/A
|
* СТАРОЕ: N/A
|
||||||
* Указыает ircd куда и что протоколировать (вести лог). Вы можете указать столько, сколько пожелаете.
|
* Указыает ircd куда и что протоколировать (вести лог). Вы можете указать столько, сколько пожелаете.
|
||||||
*
|
*
|
||||||
* ФЛАГИ: errors, kills, tkl, connects, server-connects, oper
|
* ФЛАГИ: errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Синтаксис:
|
* Синтаксис:
|
||||||
* log "путь_к_лог_файлу"
|
* log "путь_к_лог_файлу"
|
||||||
@@ -385,6 +385,7 @@ log "ircd.log" {
|
|||||||
maxsize 2097152;
|
maxsize 2097152;
|
||||||
flags {
|
flags {
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
kills;
|
kills;
|
||||||
@@ -786,6 +787,6 @@ set {
|
|||||||
* Проблемы или нуждаетесь в более подробной информации?
|
* Проблемы или нуждаетесь в более подробной информации?
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- содержит 80% ваших вопросов!
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- содержит 80% ваших вопросов!
|
||||||
* 3) Если у вас до сих пор остались проблемы, зайдите на irc.unrealircd.org #unreal-support,
|
* 3) Если у вас до сих пор остались проблемы, зайдите на irc.ircsystems.net #unreal-support,
|
||||||
* но мы требуем, чтобы вы ПРЕЖДЕ ПРОЧИТАЛИ ДОКУМЕНТАЦИЮ и ЧаВО!
|
* но мы требуем, чтобы вы ПРЕЖДЕ ПРОЧИТАЛИ ДОКУМЕНТАЦИЮ и ЧаВО!
|
||||||
*/
|
*/
|
||||||
|
|||||||
+14
-68
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||||
* $Id$
|
* $Id$
|
||||||
* Önceki Çevirmen: Mustafa "Ironic" Cakmak (ironic@unrealircd.org)
|
* Türkçe çeviri: Mustafa "Ironic" Cakmak (ironic@unrealircd.org)
|
||||||
* Türkçe Çeviri: Serkan Sepetçi (diablo@unrealircd.org)
|
|
||||||
*
|
*
|
||||||
* Unreal3.2.x sürümler için kullanılmaktadır
|
* Unreal3.2 ve üstü sürümler için kullanılmaktadır
|
||||||
*
|
*
|
||||||
* Peki beyler. Bu example.conf dosyasının yenisi. C++ türüne çok benziyor.
|
* Peki beyler. Bu example.conf dosyasının yenisi. C++ türüne çok benziyor.
|
||||||
* Neyse şimdi bunun üstesinden gelme zamanı. Başlangıçta zor gelebilir, fakat
|
* Neyse şimdi bunun üstesinden gelme zamanı. Başlangıçta zor gelebilir, fakat
|
||||||
@@ -15,13 +14,12 @@
|
|||||||
* NOTE: Bütün satırlar, açılış { satırı dışında, kapama } satırı dahil, sonunda ; taşır.
|
* NOTE: Bütün satırlar, açılış { satırı dışında, kapama } satırı dahil, sonunda ; taşır.
|
||||||
* IRCd açıklama satırlarını göz ardı edecektir.
|
* IRCd açıklama satırlarını göz ardı edecektir.
|
||||||
*
|
*
|
||||||
* Lütfen doc/unreal32docs.tr.html dosyasını okuyunuz! Çevrimiçi sürümüne ulaşabileceğiniz adres:
|
* Lütfen doc/unreal32docs.tk.html dosyasını okuyunuz! Çevrimiçi sürümüne ulaşabileceğiniz adres:
|
||||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
* www.vulnscan.org/UnrealIRCd/unreal32docs.tk.html
|
||||||
* Yapılandırma dosyası hakkında bir çok bilgi içerir: Her blok,
|
* Yapılandırma dosyası hakkında bir çok bilgi içerir: Her blok,
|
||||||
* değişken vs.. hakkında bilgi verir.
|
* değişken vs.. hakkında bilgi verir.
|
||||||
* Eğer dökümantasyon dosyasını tam olarak okumadan bu dosyayı düzenlemeye kalkarsanız
|
* Eğer dökümantasyon dosyasını tam olarak okumadan bu dosyayı düzenlemeye kalkarsanız
|
||||||
* başarısız olacağınız oldukça yüksek bir oranda garanti edilir!
|
* başarısız olacağınız oldukça yüksek bir oranda garanti edilir!
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Açıklama satırı çeşitleri */
|
/* Açıklama satırı çeşitleri */
|
||||||
@@ -108,7 +106,7 @@ admin {
|
|||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class clients
|
class clients
|
||||||
{
|
{
|
||||||
pingfreq 90;
|
pingfreq 90;
|
||||||
maxclients 500;
|
maxclients 500;
|
||||||
@@ -116,7 +114,7 @@ class clients
|
|||||||
recvq 8000;
|
recvq 8000;
|
||||||
};
|
};
|
||||||
|
|
||||||
class servers
|
class servers
|
||||||
{
|
{
|
||||||
pingfreq 90;
|
pingfreq 90;
|
||||||
maxclients 10; /* Link edebileceğimiz en yüksek sunucu sayısı */
|
maxclients 10; /* Link edebileceğimiz en yüksek sunucu sayısı */
|
||||||
@@ -164,12 +162,10 @@ allow {
|
|||||||
* Sözdizimi:
|
* Sözdizimi:
|
||||||
* allow channel {
|
* allow channel {
|
||||||
* channel "kanal ismi";
|
* channel "kanal ismi";
|
||||||
* class "clients"; (isteğe bağlı)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
allow channel {
|
allow channel {
|
||||||
channel "#WarezSucks";
|
channel "#WarezSucks";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -293,9 +289,9 @@ listen *:6667;
|
|||||||
* options {
|
* options {
|
||||||
* (tercihler buraya*);
|
* (tercihler buraya*);
|
||||||
* };
|
* };
|
||||||
* // Eğer SSL kullanıyorsak, SSL modunda ne tür bir anahtar kullanacağımızı seçebiliriz
|
* /* Eğer SSL kullanıyorsak, SSL modunda ne tür bir anahtar kullanacağımızı seçebiliriz
|
||||||
* // "openssl ciphers" ile bir liste alınır, anahtarlar birbirinden : ile ayrılırak belirtilebilirler.
|
* * "openssl ciphers" ile bir liste alınır, anahtarlar birbirinden : ile ayrılırak belirtilebilirler.
|
||||||
*
|
* */
|
||||||
* ciphers "DES-CBC3-MD5";
|
* ciphers "DES-CBC3-MD5";
|
||||||
*
|
*
|
||||||
* };
|
* };
|
||||||
@@ -312,7 +308,7 @@ listen *:6667;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
link hub.mynet.com
|
link hub.mynet.com
|
||||||
{
|
{
|
||||||
username *;
|
username *;
|
||||||
hostname 1.2.3.4;
|
hostname 1.2.3.4;
|
||||||
@@ -366,7 +362,7 @@ drpass {
|
|||||||
* YENI: log {} ESKI: N/A Ircd e logun ne ve nerede olacağını bildirir. Dilediğiniz
|
* YENI: log {} ESKI: N/A Ircd e logun ne ve nerede olacağını bildirir. Dilediğiniz
|
||||||
* kadara sahip olabilirsiniz.
|
* kadara sahip olabilirsiniz.
|
||||||
*
|
*
|
||||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||||
*
|
*
|
||||||
* Syntax:
|
* Syntax:
|
||||||
* log "log file"
|
* log "log file"
|
||||||
@@ -386,6 +382,7 @@ log "ircd.log" {
|
|||||||
maxsize 2097152;
|
maxsize 2097152;
|
||||||
flags {
|
flags {
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
connects;
|
connects;
|
||||||
server-connects;
|
server-connects;
|
||||||
kills;
|
kills;
|
||||||
@@ -520,53 +517,6 @@ alias "glinebot" {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* YENI: dosyalar {}
|
|
||||||
* ESKI: include/config.h
|
|
||||||
*
|
|
||||||
* Bu blok MOTD gibi şeyleri yüklemek için IRCd varsayılan yolları
|
|
||||||
* PID haricinde geçersiz kılar veya yazma/yükleme olarak dosyayı kendi ayarlar.
|
|
||||||
* Bu bloğun varlığı bir UnrealIRCd kurulumuna destek sağlar.
|
|
||||||
* -c ile kombine edildiğinde birden fazla komut seçeneğinin
|
|
||||||
* çalışmasına izin verir.
|
|
||||||
*
|
|
||||||
* Her zamanki gibi bu gibi yakın yollar -c komut satırında belirtilmezse,
|
|
||||||
* UnrealIRCd unrealircd.conf'u nerede bulunacağını dizinine göre yorumlar.
|
|
||||||
*/
|
|
||||||
files
|
|
||||||
{
|
|
||||||
/* Günün mesajı, oturum açan kullanıcılara gösterilir: */
|
|
||||||
/* motd ircd.motd; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Kısa MOTD. Eğer bu dosya varsa, MOTD yerine kullanıcıya
|
|
||||||
* bu gösterilecektir. Yinede kullanıcılar /MOTD komutu kullanarak
|
|
||||||
* tam MOTD içeriğini görebilecekler.
|
|
||||||
*/
|
|
||||||
/* shortmotd ircd.smotd; */
|
|
||||||
|
|
||||||
/* Operatör olduğunda gösterilir. /OPER 'liğe yükselmiş */
|
|
||||||
/* opermotd oper.motd; */
|
|
||||||
|
|
||||||
/* Servislere MOTD ekler. */
|
|
||||||
/* svsmotd ircd.svsmotd; */
|
|
||||||
|
|
||||||
/* Bot MOTD */
|
|
||||||
/* botmotd bot.motd; */
|
|
||||||
|
|
||||||
/* /RULES üzerinde gösterilir */
|
|
||||||
/* rules ircd.rules; */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* IRCd'nin bazı değerlerinin nerede olduğunu gösterir.
|
|
||||||
* Bu değerler kalıcı olarak saklanır.Sunucu yeniden başlatıldığında
|
|
||||||
* ise bu değerleri yeniden yükleyecektir.
|
|
||||||
*/
|
|
||||||
/* tunefile ircd.tune; */
|
|
||||||
|
|
||||||
/* IRCd pidini nerede kaydedildiğini gösterir. IRCd tarafından yazılabilir olmalıdır. */
|
|
||||||
/* pidfile ircd.pid; */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ESKI: tld {}
|
* ESKI: tld {}
|
||||||
@@ -709,13 +659,11 @@ deny dcc {
|
|||||||
* deny channel {
|
* deny channel {
|
||||||
* channel "(kanal)";
|
* channel "(kanal)";
|
||||||
* reason "neden";
|
* reason "neden";
|
||||||
* class "clients"; (isteğe bağlı)
|
|
||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
deny channel {
|
deny channel {
|
||||||
channel "*warez*";
|
channel "*warez*";
|
||||||
reason "Warez yasaktır";
|
reason "Warez yasaktır";
|
||||||
class "clients";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -759,8 +707,6 @@ set {
|
|||||||
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
|
* 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
|
* 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].
|
* 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 {
|
cloak-keys {
|
||||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||||
@@ -836,6 +782,6 @@ set {
|
|||||||
* Sorununuz veya daha fazla yardımamı ihtiyacınız var?
|
* Sorununuz veya daha fazla yardımamı ihtiyacınız var?
|
||||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
||||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- sorularınızın %80 ini kapsamakta!
|
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- sorularınızın %80 ini kapsamakta!
|
||||||
* 3) Eğer probleminiz hala devam ediyorsa irc.unrealircd.org sunucusu #unreal-support kanalına girebilirsiniz
|
* 3) Eğer probleminiz hala devam ediyorsa irc.ircsystems.net sunucusu #unreal-support kanalına girebilirsiniz
|
||||||
* DÖKÜMANTASYON ve FAQ kısmını okumanızı gerekli gördüğümüzü belirtiyoruz!
|
* DÖKÜMANTASYON ve FAQ kısmını okumanızı gerekli gördüğümüzü belirtiyoruz!
|
||||||
*/
|
*/
|
||||||
|
|||||||
+460
-490
File diff suppressed because it is too large
Load Diff
+31
-65
@@ -118,8 +118,6 @@ help Umodes {
|
|||||||
" G = Нецензурные слова в сообщениях заменяются на <censored>";
|
" G = Нецензурные слова в сообщениях заменяются на <censored>";
|
||||||
" H = Скрывает статус IRC оператора в запросах /WHO и /WHOIS.";
|
" H = Скрывает статус IRC оператора в запросах /WHO и /WHOIS.";
|
||||||
" (только для IRC операторов)";
|
" (только для IRC операторов)";
|
||||||
" I = Скрывает время простоя оператора (в команде /whois) от обычных";
|
|
||||||
" пользователей.";
|
|
||||||
" R = Ограничивает получение PRIVMSGs/NOTICEs только от";
|
" R = Ограничивает получение PRIVMSGs/NOTICEs только от";
|
||||||
" зарегистрированных (+r) пользователей";
|
" зарегистрированных (+r) пользователей";
|
||||||
" S = Для нужд сервисов. (В целях защиты)";
|
" S = Для нужд сервисов. (В целях защиты)";
|
||||||
@@ -175,60 +173,58 @@ help Chmodes {
|
|||||||
" a <nickname> = Даёт пользователю статус администратора канала";
|
" a <nickname> = Даёт пользователю статус администратора канала";
|
||||||
" q <nickname> = Даёт пользователю статус владельца канала";
|
" q <nickname> = Даёт пользователю статус владельца канала";
|
||||||
" -";
|
" -";
|
||||||
" A = В канал могут попасть только администраторы сети/сервера";
|
" b <nick!ident@host> = Накладывает 'бан' на nick!ident@host";
|
||||||
" (устанавливается администраторами)";
|
" также существуют 'расширенные баны' (подробнее /HELPOP EXTBANS) [h]";
|
||||||
" b <nick!ident@host> = Накладывает 'бан' на nick!ident@host [h]";
|
|
||||||
" (подробнее о 'расширенных типах бана' /HELPOP EXTBANS)";
|
|
||||||
" c = Блокирует сообщения, содержащие управляющие коды mIRC для";
|
" c = Блокирует сообщения, содержащие управляющие коды mIRC для";
|
||||||
" задания цвета [o]";
|
" задания цвета [o]";
|
||||||
" C = Запрещает хождение CTCP пакетов в канале [o]";
|
|
||||||
" e <nick!ident@host> = Накладывает маску исключения на 'бан' для";
|
" e <nick!ident@host> = Накладывает маску исключения на 'бан' для";
|
||||||
" пользователей, попавших под заданную маску [h]";
|
" пользователей, попавших под заданную маску [h]";
|
||||||
" f <параметры> = Защита от флуда. (Для получения дополнительной";
|
" f <параметры> = Защита от флуда. (Для получения дополнительной";
|
||||||
" информации загляните в /HELPOP CHMODEF) [o]";
|
" информации загляните в /HELPOP CHMODEF) [o]";
|
||||||
" G = Включает фильтрацию сообщений путём замены нецензурных слов на";
|
" I <ник!пользователь@хост> = Накладывает маску исключения на режим +i";
|
||||||
" <censored> [o]";
|
|
||||||
" i = Для того, чтобы попасть на канал, пользователь должен быть";
|
" i = Для того, чтобы попасть на канал, пользователь должен быть";
|
||||||
" приглашён (Invite only) [h]";
|
" приглашён (Invite only) [h]";
|
||||||
" I <ник!пользователь@хост> = Накладывает маску исключения на режим +i";
|
|
||||||
" j <вход:секунды> = Устанавливает ограничение на количество команд";
|
" j <вход:секунды> = Устанавливает ограничение на количество команд";
|
||||||
" join за задонное время";
|
" join за задонное время";
|
||||||
" k <ключ> = Пользователи должны иметь <ключ>, чтобы попасть на";
|
" k <ключ> = Пользователи должны иметь <ключ>, чтобы попасть на";
|
||||||
" защищённый канал [h]";
|
" защищённый канал [h]";
|
||||||
" K = Запрещает использование команды /KNOCK [o]";
|
|
||||||
" l <число> = Задаёт максимальное <число> пользователей в канале [o]";
|
" l <число> = Задаёт максимальное <число> пользователей в канале [o]";
|
||||||
" L <канал2> = Связывает каналы таким образом, что при достижении";
|
|
||||||
" параметра, заданного режимом +l, новые пользователи";
|
|
||||||
" будут перенаправляться на канал <канал2>) [q]";
|
|
||||||
" m = Модерируемый канал (только пользователи с установленными флагами";
|
" m = Модерируемый канал (только пользователи с установленными флагами";
|
||||||
" +vhoaq могут говорить) [h]";
|
" +vhoaq могут говорить) [h]";
|
||||||
|
" n = Пользователи, не присутствующие в канале, не могут";
|
||||||
|
" посылать PRIVMSGs в канал [h]";
|
||||||
|
" p = Включает режим 'ограниченного доступа' на канал (Private) [o]";
|
||||||
|
" r = Показывает, что канал зарегистрирован (устанавливается только";
|
||||||
|
" сервисами)";
|
||||||
|
" s = Включает 'режим секретности' на канале (Secret)[o]";
|
||||||
|
" t = Блокирует топик, так что только пользователи с флагами +hoaq";
|
||||||
|
" могут его изменить [h]";
|
||||||
|
" z = Только пользователи, подключенные к серверу через шифрованный";
|
||||||
|
" канал (SSL), могут попасть в канал [o]";
|
||||||
|
" A = В канал могут попасть только администраторы сети/сервера";
|
||||||
|
" (устанавливается администраторами)";
|
||||||
|
" C = Запрещает хождение CTCP пакетов в канале [o]";
|
||||||
|
" G = Включает фильтрацию сообщений путём замены нецензурных слов на";
|
||||||
|
" <censored> [o]";
|
||||||
" M = Включает ограничение на возможность говорить в канале только";
|
" M = Включает ограничение на возможность говорить в канале только";
|
||||||
" зарегистрированным пользователям (+r), либо пользователям с";
|
" зарегистрированным пользователям (+r), либо пользователям с";
|
||||||
" 'Правом голоса' (+v). [o]";
|
" 'Правом голоса' (+v). [o]";
|
||||||
" n = Пользователи, не присутствующие в канале, не могут";
|
" K = Запрещает использование команды /KNOCK [o]";
|
||||||
" посылать PRIVMSGs в канал [h]";
|
" L <канал2> = Связывает каналы таким образом, что при достижении";
|
||||||
|
" параметра, заданного режимом +l, новые пользователи";
|
||||||
|
" будут перенаправляться на канал <канал2>) [q]";
|
||||||
" N = Запрещает пользователям канала изменять свой ник [o]";
|
" N = Запрещает пользователям канала изменять свой ник [o]";
|
||||||
" O = Канал только для IRC операторов (могут устанавливать только";
|
" O = Канал только для IRC операторов (могут устанавливать только";
|
||||||
" IRC операторы)";
|
" IRC операторы)";
|
||||||
" p = Включает режим 'ограниченного доступа' на канал (Private) [o]";
|
|
||||||
" Q = На канале запрещены 'кики' [o]";
|
" Q = На канале запрещены 'кики' [o]";
|
||||||
" r = Показывает, что канал зарегистрирован (устанавливается только";
|
|
||||||
" сервисами)";
|
|
||||||
" R = В канал могут войти только зарегистрированные (+r) ";
|
" R = В канал могут войти только зарегистрированные (+r) ";
|
||||||
" пользователи [o]";
|
" пользователи [o]";
|
||||||
" s = Включает 'режим секретности' на канале (Secret)[o]";
|
|
||||||
" S = Указывает, что на канале из сообщений вырезаются коды mIRC";
|
" S = Указывает, что на канале из сообщений вырезаются коды mIRC";
|
||||||
" для управления цветом [o]";
|
" для управления цветом [o]";
|
||||||
" t = Блокирует топик, так что только пользователи с флагами +hoaq";
|
|
||||||
" могут его изменить [h]";
|
|
||||||
" T = Указывает, что на канале запрещены уведомления (NOTICEs) [o]";
|
" T = Указывает, что на канале запрещены уведомления (NOTICEs) [o]";
|
||||||
|
" V = Указывает, что на канале нельзя использовать команду /INVITE [o]";
|
||||||
" u = Auditorium mode (команды /names и /who #channel показывают";
|
" u = Auditorium mode (команды /names и /who #channel показывают";
|
||||||
" только операторов канала) [q]";
|
" только операторов канала) [q]";
|
||||||
" V = Указывает, что на канале нельзя использовать команду /INVITE [o]";
|
|
||||||
" z = Только пользователи, подключенные к серверу через шифрованный";
|
|
||||||
" канал (SSL), могут попасть в канал [o]";
|
|
||||||
" Z = Все пользователи на канале используют безопасное подключение SSL.";
|
|
||||||
" (Устанавливается/снимается сервером. Только если канал так же +z)";
|
|
||||||
" -";
|
" -";
|
||||||
" [h] - минимум требуются права halfop, [o] - минимум требуются права";
|
" [h] - минимум требуются права halfop, [o] - минимум требуются права";
|
||||||
" chanop, [q] - требуются права владельца";
|
" chanop, [q] - требуются права владельца";
|
||||||
@@ -236,17 +232,8 @@ help Chmodes {
|
|||||||
};
|
};
|
||||||
|
|
||||||
help ExtBans {
|
help ExtBans {
|
||||||
" Данные типы банов позволяют вам банить не только по традиционной маске nick!user@host.";
|
|
||||||
" Так же они позволяют пользователя "замолчать" (в других IRCd, это действие команды";
|
|
||||||
" +q <hostmask>, в unrealircd надо использовать +b ~q:<hostmask>).";
|
|
||||||
" -";
|
|
||||||
" Вы так же можете совмещать расширенные типы банов. Это значит, что выражение будет правильным:";
|
|
||||||
" +b ~q:~c:#lamers";
|
|
||||||
" Этой командой вы заставите молчать всех пользователей, кто зашёл на канал #lamers.";
|
|
||||||
" -";
|
|
||||||
" Существуют следующие расширенные типы банов: ";
|
" Существуют следующие расширенные типы банов: ";
|
||||||
" -";
|
" -";
|
||||||
" Эти типы банов определяют, какие действия подвержены бану";
|
|
||||||
" ==-Тип---------Имя----------------------------Разъяснение-----------------------==";
|
" ==-Тип---------Имя----------------------------Разъяснение-----------------------==";
|
||||||
" | | Люди, попадающие под бан, могут заходить на канал, но ";
|
" | | Люди, попадающие под бан, могут заходить на канал, но ";
|
||||||
" ~q | Тихий | не могут говорить, пока у них не будет +v или выше. ";
|
" ~q | Тихий | не могут говорить, пока у них не будет +v или выше. ";
|
||||||
@@ -258,13 +245,6 @@ help ExtBans {
|
|||||||
" | смену ника | Пример: ";
|
" | смену ника | Пример: ";
|
||||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||||
"-----------------------------------------------------------------------------------";
|
"-----------------------------------------------------------------------------------";
|
||||||
" | | Люди, попадающие под бан, не могут посетить канал. ";
|
|
||||||
" ~j | Вход | При этом пользователь может выполнять все действия, если";
|
|
||||||
" | | он уже находится на канале (смена ника, разговор). ";
|
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" -";
|
|
||||||
" Эти типы банов добавляют новый критерий, с которыми их можно использовать";
|
|
||||||
" ==-Тип---------Имя----------------------------Разъяснение-----------------------==";
|
|
||||||
" | | Если люди сидят на указанном канале, они не смогут зайти";
|
" | | Если люди сидят на указанном канале, они не смогут зайти";
|
||||||
" | | Префиксом можно указать (+/%/@/&/~), каких именно ";
|
" | | Префиксом можно указать (+/%/@/&/~), каких именно ";
|
||||||
" ~c | [префикс] | пользователей необходимо банить. Будут забанены те, у ";
|
" ~c | [префикс] | пользователей необходимо банить. Будут забанены те, у ";
|
||||||
@@ -275,18 +255,7 @@ help ExtBans {
|
|||||||
" ~r | настоящее имя | он не сможет зайти. Пример: +b ~r:*Stupid_bot_script* ";
|
" ~r | настоящее имя | он не сможет зайти. Пример: +b ~r:*Stupid_bot_script* ";
|
||||||
" | | Дополнение: Подчёркивание ('_') обозначает и ";
|
" | | Дополнение: Подчёркивание ('_') обозначает и ";
|
||||||
" | | пробел (' '), и подчёркивание ('_'). ";
|
" | | пробел (' '), и подчёркивание ('_'). ";
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" | | Бан срабатывает, если пользователь идентифицирован ";
|
|
||||||
" ~R | | на сервисах (обычно Nickserv) и имя совпадает. В ";
|
|
||||||
" |зарегестрирован| реальности необходим для исключений на канале. ";
|
|
||||||
" | | Пример: +e ~R:Nick ";
|
|
||||||
" | | Позволяет Nick находится на канале, независимо от банов,";
|
|
||||||
" | | если он идентифицирован на сервисах, использует ник Nick";
|
|
||||||
" ==------------------------------------------------------------------------------==";
|
" ==------------------------------------------------------------------------------==";
|
||||||
" -";
|
|
||||||
" Вы можете стекировать расширенные типы банов первой и второй группы друг с другом.";
|
|
||||||
" Пример: +b ~q:~c:#lamers";
|
|
||||||
" Действием данной команды будет молчание всех пользователей, кто сидит в #lamers";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Chmodef {
|
help Chmodef {
|
||||||
@@ -1009,23 +978,20 @@ help Rehash {
|
|||||||
" Заставляет сервер перечитать файл конфигурации.";
|
" Заставляет сервер перечитать файл конфигурации.";
|
||||||
" Доступна для использования только IRC операторам.";
|
" Доступна для использования только IRC операторам.";
|
||||||
" -";
|
" -";
|
||||||
" Синтаксис: REHASH <имя сервера> -<флаг>";
|
" Синтаксис: REHASH <имя сервера> -<флаги>";
|
||||||
" REHASH -global <флаг>";
|
" REHASH -<флаги>";
|
||||||
" REHASH -<флаг>";
|
|
||||||
" -";
|
" -";
|
||||||
" Если не указано имя сервера и флаг, сервер перечитает unrealircd.conf,";
|
" Если не указано имя сервера и флаги, сервер перечитает unrealircd.conf";
|
||||||
" а так же все файлы MOTD, BOTMOTD, OPERMOTD и RULES.";
|
" с удалением всех временных k:lines.";
|
||||||
" Если указано имя сервера, команда подействует на указанный сервер.";
|
" Если указано имя сервера, команда подействует на указанный сервер.";
|
||||||
" Если указан -global, то все сервера в сети перечитают настройки";
|
" Только администратор сети может указывать имя сервера.";
|
||||||
" Только администратор сети может указывать имя сервера и -global.";
|
|
||||||
" -";
|
" -";
|
||||||
" Указание флагов позволяет перечитать другие конфигурационные файлы." ;
|
" Указание флагов позволяет перечитать другие конфигурационные файлы." ;
|
||||||
" Список флагов:";
|
" Список флагов:";
|
||||||
" -dns - Переинециализация и перезагрузка преобразования адресов";
|
" -motd - Перечитает файлы MOTD и RULES (включая tld{})";
|
||||||
|
" -opermotd - Перечитает OPERMOTD";
|
||||||
|
" -botmotd - Перечитает BOTMOTD";
|
||||||
" -garbage - Активирует \"сборщик мусора\"";
|
" -garbage - Активирует \"сборщик мусора\"";
|
||||||
" -motd - Перечитает все файлы MOTD, BOTMOTD, OPERMOTD и RULES (включая tld{})";
|
|
||||||
" -ssl - Перезагрузка сертификатов SSL";
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Restart {
|
help Restart {
|
||||||
|
|||||||
+126
-154
@@ -6,7 +6,7 @@
|
|||||||
* Unreal3.2 ve üzeri versionları kapsanmıştır. 8/24/02 (Beta12)
|
* Unreal3.2 ve üzeri versionları kapsanmıştır. 8/24/02 (Beta12)
|
||||||
*
|
*
|
||||||
* Türkçe Çeviri: Diablo - (Serkan Sepetçi)
|
* Türkçe Çeviri: Diablo - (Serkan Sepetçi)
|
||||||
* İletişim: diablo@unrealircd.org
|
* İletişim: diablo@unrealircd.org - http://www.ircforumlari.net/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
help {
|
help {
|
||||||
@@ -100,7 +100,7 @@ help Umodes {
|
|||||||
" N = Network Administrator";
|
" N = Network Administrator";
|
||||||
" C = Co Administrator";
|
" C = Co Administrator";
|
||||||
" -";
|
" -";
|
||||||
" d = Sadece bot komut karakteri ile başlayan kanal mesajları görmenizi engeller";
|
" d = Kanalda yazılan mesajları görmenizi engeller";
|
||||||
" g = GlobOps ve LocOps mesajlarını görmenizi sağlar";
|
" g = GlobOps ve LocOps mesajlarını görmenizi sağlar";
|
||||||
" h = Yardim görevlisi statüsü verir.(HelpOp)(Oper Bloğunda belirtilir)";
|
" h = Yardim görevlisi statüsü verir.(HelpOp)(Oper Bloğunda belirtilir)";
|
||||||
" i = Görünmez kullanıcı (/who sorgusunda görünmez)";
|
" i = Görünmez kullanıcı (/who sorgusunda görünmez)";
|
||||||
@@ -116,7 +116,7 @@ help Umodes {
|
|||||||
" B = Bot statüsündeki kullanıcı";
|
" B = Bot statüsündeki kullanıcı";
|
||||||
" G = Badwords bloğunda belirtilen kötü kelimeler kullanıldığında sansürlenir.";
|
" G = Badwords bloğunda belirtilen kötü kelimeler kullanıldığında sansürlenir.";
|
||||||
" H = IRCOp statüsüne sahipseniz /whois /who sorgusunda bu statünüz görünmez.(Sadece IRCop)";
|
" H = IRCOp statüsüne sahipseniz /whois /who sorgusunda bu statünüz görünmez.(Sadece IRCop)";
|
||||||
" R = Sadece rumuzu kayitli (+r) olan kullanıcılardan mesaj almanızı sağlar";
|
" R = Sadece nicki kayitli (+r) olan kullanıcılardan mesaj almanızı sağlar";
|
||||||
" S = Servisler için koruma modu";
|
" S = Servisler için koruma modu";
|
||||||
" T = CTCP metinlerinin size gönderimini engeller";
|
" T = CTCP metinlerinin size gönderimini engeller";
|
||||||
" V = Kullanıcının WebTV kullandığını belirtir";
|
" V = Kullanıcının WebTV kullandığını belirtir";
|
||||||
@@ -161,50 +161,45 @@ help Chmodes {
|
|||||||
" a <nick> = Koruma(a) almış kullanıcı.";
|
" a <nick> = Koruma(a) almış kullanıcı.";
|
||||||
" q <nick> = Kanal sahibi(q) almış kullanıcı.";
|
" q <nick> = Kanal sahibi(q) almış kullanıcı.";
|
||||||
" -";
|
" -";
|
||||||
" A = Sadece Server/Net Adminlerinin girebileceği bir kanal.";
|
" b <nick!ident@host> = Belirtilen maske kanalda yasaklanır.";
|
||||||
" b <nick!ident@host> = Belirtilen maske kanalda yasaklanır. [h]";
|
|
||||||
" c = Kanal icerisinde renk kullanımı engeller [o]";
|
|
||||||
" C = CTCP metinlerini engeller. [o]";
|
|
||||||
" e <nick!ident@host> = Belirtilen maske kanalda yasaklı (ban) listesinde olsa dahi kanala girebilir. [h]";
|
|
||||||
" f <parametre> = Kanal flood koruma modu. (Bilgi için /HELPOP CHMODEF) [o]";
|
|
||||||
" Detaylı ban çeşitleri (daha çok bilgi için /HELPOP EXTBANS) [h]";
|
" Detaylı ban çeşitleri (daha çok bilgi için /HELPOP EXTBANS) [h]";
|
||||||
" G = Yasak kelimelerin sansür edildiği bir kanal. [o]";
|
" c = Kanal icerisinde renk kullanımı engeller [o]";
|
||||||
" i = Sadece davetle girilebilen kanal. [h]";
|
" e <nick!ident@host> = Belirtilen maske kanalda yasaklı (ban) listesinde olsa dahi kanala girebilir. [h]";
|
||||||
" I <nick!ident@host> = Belirtilen maskeye sahip olan kullanıcılar, kanal +i modunda olsa dahi kanala girebilirler. [h]";
|
" I <nick!ident@host> = Belirtilen maskeye sahip olan kullanıcılar, kanal +i modunda olsa dahi kanala girebilirler. [h]";
|
||||||
|
" f <parametre> = Kanal flood koruma modu. (Bilgi için /HELPOP CHMODEF) [o]";
|
||||||
|
" i = Sadece davetle girilebilen kanal. [h]";
|
||||||
" j <giriş:saniye> = Belirtilen saniyede bir kanala giriş yapılmasını sağlar. [o]";
|
" j <giriş:saniye> = Belirtilen saniyede bir kanala giriş yapılmasını sağlar. [o]";
|
||||||
" k <Şifre> = Kanala giriş icin gereken anahtar. [h]";
|
" k <Şifre> = Kanala giriş icin gereken anahtar. [h]";
|
||||||
" K = /KNOCK komutuna izin verilmeyen bir kanal. [o]";
|
|
||||||
" l <max kullanıcılar sayısı> = Kanala girebilicek olan maximum kullanıcı sayısını belirler. [o]";
|
" l <max kullanıcılar sayısı> = Kanala girebilicek olan maximum kullanıcı sayısını belirler. [o]";
|
||||||
" L <Kanal2> = Kanal linkleme. (Eğer +l kişi ile kanal doldurulursa, sonraki kullanıcı otomatik olarak <kanal2> ye girer. [q]";
|
|
||||||
" m = Sadece +vhoaq modeleri almış kullanıcıların konuşabileceği bir kanal. [h]";
|
" m = Sadece +vhoaq modeleri almış kullanıcıların konuşabileceği bir kanal. [h]";
|
||||||
" M = Sadece kayıtlı (+r) veya voice'si olan (+v) kullanıcıların yazabileceği bir kanal. [o]";
|
|
||||||
" n = Kanalda bulunmayan birinden gelecek mesajların bloklandığı bir kanal. [h]";
|
" n = Kanalda bulunmayan birinden gelecek mesajların bloklandığı bir kanal. [h]";
|
||||||
|
" p = Özel bir kanal olduğunu belirtir. [o]";
|
||||||
|
" r = Kayıt edilmiş bir kanal. (Sadece Servisler tarafından kullanılır.)";
|
||||||
|
" s = Gizli bir kanal. [o]";
|
||||||
|
" t = Sadece +hoaq modeleri almış kullanıcıların /topic komutunu kullanabileceği bir kanal. [h]";
|
||||||
|
" z = Sadece Güvenli Bağlanti (SSL) kullananların erişim sağlayabileceği bir kanal. [o]";
|
||||||
|
" A = Sadece Server/Net Adminlerinin girebileceği bir kanal.";
|
||||||
|
" C = CTCP metinlerini engeller. [o]";
|
||||||
|
" G = Yasak kelimelerin sansür edildiği bir kanal. [o]";
|
||||||
|
" M = Sadece kayıtlı (+r) veya voice'si olan (+v) kullanıcıların yazabileceği bir kanal. [o]";
|
||||||
|
" K = /KNOCK komutuna izin verilmeyen bir kanal. [o]";
|
||||||
|
" L <Kanal2> = Kanal linkleme. (Eğer +l kişi ile kanal doldurulursa, sonraki kullanıcı otomatik olarak <kanal2> ye girer. [q]";
|
||||||
" N = Nick değişikliği yapılamayan bir kanal. [o]";
|
" N = Nick değişikliği yapılamayan bir kanal. [o]";
|
||||||
" O = Sadece IRCopların girebileceği bir kanal. (sadece IRCop'lar için)";
|
" O = Sadece IRCopların girebileceği bir kanal. (sadece IRCop'lar için)";
|
||||||
" p = Özel bir kanal olduğunu belirtir. [o]";
|
|
||||||
" Q = KICK Komutunun uygulanamayacağı bir kanal. [o]";
|
" Q = KICK Komutunun uygulanamayacağı bir kanal. [o]";
|
||||||
" r = Kayıt edilmiş bir kanal. (Sadece Servisler tarafından kullanılır.)";
|
|
||||||
" R = Sadece kayıtlı (+r) kullanıcıların girebileceği bir kanal. [o]";
|
" R = Sadece kayıtlı (+r) kullanıcıların girebileceği bir kanal. [o]";
|
||||||
" s = Gizli bir kanal. [o]";
|
|
||||||
" S = Renkli yazıların, renkli kodlardan arındırıp kanala gönderilmesini sağlar. [o]";
|
" S = Renkli yazıların, renkli kodlardan arındırıp kanala gönderilmesini sağlar. [o]";
|
||||||
" t = Sadece +hoaq modeleri almış kullanıcıların /topic komutunu kullanabileceği bir kanal. [h]";
|
|
||||||
" T = Noticenin komutunun kullanilamayacagi kanal. [o]";
|
" T = Noticenin komutunun kullanilamayacagi kanal. [o]";
|
||||||
" u = Kanal operatorlerinin modelerinin gizli oldugu bir kanal.(sadece op'lar /names ve /who #kanal komutunu kullanabilir.) [q]";
|
|
||||||
" V = /INVITE 'in kapali oldugu kanal. [o]";
|
" V = /INVITE 'in kapali oldugu kanal. [o]";
|
||||||
" z = Sadece Güvenli Bağlanti (SSL) kullananların erişim sağlayabileceği bir kanal. [o]";
|
" u = Kanal operatorlerinin modelerinin gizli oldugu bir kanal. (sadece op'lar /names ve /who #kanal komutunu kullanabilir.) [q]";
|
||||||
" Z = Kanal üzerindeki tüm kullanıcıları güvenli bağlantı olarak varsayar. (SSL) [server]";
|
|
||||||
" (Bu mode sadece sunucu tarafından açılır/kapanır. Kanal modu +z olmayan kanallar hariç)";
|
|
||||||
" -";
|
" -";
|
||||||
" [h] Halfop, [o] Kanal Operator, [q] Kanal Sahibi";
|
" [h] Halfop, [o] Kanal Operator, [q] Kanal Sahibi";
|
||||||
" ==------------------------------oOo----------------------------==";
|
" ==------------------------------oOo----------------------------==";
|
||||||
};
|
};
|
||||||
|
|
||||||
help ExtBans {
|
help ExtBans {
|
||||||
" Bu banlar, temel alınan geleneksel banlardan başka sana nick!user@host maskesi";
|
" Detaylı ban çeşitleri: ";
|
||||||
" olarak izin verir. Bu banlar hemde kullanıcılar için ``Quieting'' desteği sağlar.";
|
|
||||||
" (diğer IRCd'lerde +q <hostmask>, UnrealIRCd ise +b ~q:<hostmask> yapabilirsin).";
|
|
||||||
" -";
|
" -";
|
||||||
" Bu ban tipleri, hangi hareketlerin bir ban ile etkilendiğini belirtir:";
|
|
||||||
" ==-Tip--------İsim-----------------------------Açıklama-------------------------==";
|
" ==-Tip--------İsim-----------------------------Açıklama-------------------------==";
|
||||||
" | | Kullanıcı kanala girebilir fakat yazı yazamaz, ";
|
" | | Kullanıcı kanala girebilir fakat yazı yazamaz, ";
|
||||||
" ~q | Quiet | yazabilmesi için +v veya daha yükseği gerekmektedir. ";
|
" ~q | Quiet | yazabilmesi için +v veya daha yükseği gerekmektedir. ";
|
||||||
@@ -216,17 +211,9 @@ help ExtBans {
|
|||||||
" | | Örnek: ";
|
" | | Örnek: ";
|
||||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||||
"-----------------------------------------------------------------------------------";
|
"-----------------------------------------------------------------------------------";
|
||||||
" | | Eğer bir kullanıcı, bu banla eşleşiyorsa kanala giremez.";
|
|
||||||
" ~j | join | Eğer kanal içerisinde ise, tüm faaliyetleri yapabilir. ";
|
|
||||||
" | | Kanal içerisinde konuşabilme ve nick değiştirme gibi. ";
|
|
||||||
" | | Örnek: +bb ~j:*!*@*.aol.com ~j:nick*!*@* ";
|
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" -";
|
|
||||||
" Bu ban tipleri kullanılabilen yeni kriterleri gösterir:";
|
|
||||||
" ==-Tip--------İsim------------------------------Açıklama------------------------==";
|
|
||||||
" | | Eğer kullanıcı bu kanalda olduğunda diğer kanallara ";
|
" | | Eğer kullanıcı bu kanalda olduğunda diğer kanallara ";
|
||||||
" | [Önek] | giriş yapamaz. Öneki (+/%/@/&/~) olan kullanıcılar ";
|
" | [prefix] | giriş yapamaz. Öneki (+/%/@/&/~) olan kullanıcılar ";
|
||||||
" ~c | channel | veya daha üst yetkilere sahip olan kullanıcılar kanala ";
|
" ~c | channel | veya daha üst yetkilere sahip olan kullanıcılar kanala ";
|
||||||
" | | giriş yapacaklardır. ";
|
" | | giriş yapacaklardır. ";
|
||||||
" | | Örnek: +b ~c:#lamers, +e ~c:@#trusted ";
|
" | | Örnek: +b ~c:#lamers, +e ~c:@#trusted ";
|
||||||
"-----------------------------------------------------------------------------------";
|
"-----------------------------------------------------------------------------------";
|
||||||
@@ -236,19 +223,7 @@ help ExtBans {
|
|||||||
" | | NOT: ('_') Karakteri (' ') karakterine denk gelir ve ";
|
" | | NOT: ('_') Karakteri (' ') karakterine denk gelir ve ";
|
||||||
" | | dolayısı ile ('_') karekteri, bu ban ";
|
" | | dolayısı ile ('_') karekteri, bu ban ";
|
||||||
" | | 'Stupid bot script v1.4' ile eşleşir. ";
|
" | | 'Stupid bot script v1.4' ile eşleşir. ";
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" | | Eğer bir kullanıcı kendini servislere tanıtmışsa ";
|
|
||||||
" | | (Genellikle NickServ) ve nicki eşleşiyorsa bu ban da ";
|
|
||||||
" | | eşleşir. Yani bu ban ceşidi yalnızca ban yollarında ";
|
|
||||||
" ~R | registered | geçerlidir (+e). Örnek: +e ~R:Nick ";
|
|
||||||
" | | Nick veya rumuzlu kullanıcının diğer banlarına ";
|
|
||||||
" | | bakılmaksızın eğer kendini NickServ'e tanıtmışsa ";
|
|
||||||
" | | kanalda bulunmasına izin verir. ";
|
|
||||||
" ==------------------------------------------------------------------------------==";
|
" ==------------------------------------------------------------------------------==";
|
||||||
" -";
|
|
||||||
" Sen 1. gruptan olan banları 2. bir grupa yönlendirebilirsin.";
|
|
||||||
" Örnek: +b ~q:~c:#lamers";
|
|
||||||
" Yukardaki yapılan ban, 'Quiet' olan bütün kullanıcıları #lamers kanalına girmelerini sağlayacaktır.";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Chmodef {
|
help Chmodef {
|
||||||
@@ -417,7 +392,7 @@ help Dns {
|
|||||||
help Names {
|
help Names {
|
||||||
" Belirtilen kanalda kullanıcıların listesini gösterir.";
|
" Belirtilen kanalda kullanıcıların listesini gösterir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: NAMES <kanal>";
|
" Kullanımı: NAMES <kanal>";
|
||||||
" Örnek: NAMES #Support";
|
" Örnek: NAMES #Support";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -425,8 +400,8 @@ help Ison {
|
|||||||
" Bu komut, bir kullanıcı yada kullanıcıların online";
|
" Bu komut, bir kullanıcı yada kullanıcıların online";
|
||||||
" olup olmadığını gösterir.";
|
" olup olmadığını gösterir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: ISON <nick> <nick2> <nick3> <nick4>";
|
" Kullanımı: ISON <nick> <nick2> <nick3> <nick4>";
|
||||||
" Örnek: ISON hAtbLaDe Stskeeps OperServ AOLBot";
|
" Örnek: ISON hAtbLaDe Stskeeps OperServ AOLBot";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Join {
|
help Join {
|
||||||
@@ -484,7 +459,7 @@ help Quit {
|
|||||||
" senin serverdan ayrılışından haberdar olacaklardır.";
|
" senin serverdan ayrılışından haberdar olacaklardır.";
|
||||||
" Eğer sen, bir çıkış sebebi belirtmezsen, senin nickin sebeb olur.";
|
" Eğer sen, bir çıkış sebebi belirtmezsen, senin nickin sebeb olur.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: QUIT <sebeb>";
|
" Kullanımı: QUIT <sebeb>";
|
||||||
" Örnek: QUIT Leaving!";
|
" Örnek: QUIT Leaving!";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -497,7 +472,7 @@ help Ping {
|
|||||||
" PING mesajı yollanabilir bağlantı aktifse bile.";
|
" PING mesajı yollanabilir bağlantı aktifse bile.";
|
||||||
" Bunun 'CTCP PING' komutundan farklı olduğunu unutmayınız..";
|
" Bunun 'CTCP PING' komutundan farklı olduğunu unutmayınız..";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: PING <server> <server2>";
|
" Kullanımı: PING <server> <server2>";
|
||||||
" Örnek: PING irc.fyremoon.net";
|
" Örnek: PING irc.fyremoon.net";
|
||||||
" PING hAtbLaDe";
|
" PING hAtbLaDe";
|
||||||
" PING hAtbLaDe irc2.dynam.ac";
|
" PING hAtbLaDe irc2.dynam.ac";
|
||||||
@@ -509,7 +484,7 @@ help Pong {
|
|||||||
" parametre, mesaj ses çıkarmaya yanıt veren";
|
" parametre, mesaj ses çıkarmaya yanıt veren";
|
||||||
" ve bu mesajı oluşturan varlığın ismidir.";
|
" ve bu mesajı oluşturan varlığın ismidir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: PONG <server> <server2>";
|
" Kullanımı: PONG <server> <server2>";
|
||||||
" Örnek: PONG irc.fyremoon.net irc2.dynam.ac";
|
" Örnek: PONG irc.fyremoon.net irc2.dynam.ac";
|
||||||
" (irc.fyremoon.net irc2.dynam.ac giden pong mesajı)";
|
" (irc.fyremoon.net irc2.dynam.ac giden pong mesajı)";
|
||||||
};
|
};
|
||||||
@@ -548,7 +523,7 @@ help Userhost {
|
|||||||
" Bir kullanıcının USERHOST satırını gösterir.";
|
" Bir kullanıcının USERHOST satırını gösterir.";
|
||||||
" Genellikle metinler veya botlar ile kullanılır.";
|
" Genellikle metinler veya botlar ile kullanılır.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: USERHOST <nick>";
|
" Kullanımı: USERHOST <nick>";
|
||||||
" Örnek: USERHOST hAtbLaDe";
|
" Örnek: USERHOST hAtbLaDe";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -564,8 +539,8 @@ help Topic {
|
|||||||
" Kanalın başlığını değiştirmeyi sağlar veya metin belirtilmez ise";
|
" Kanalın başlığını değiştirmeyi sağlar veya metin belirtilmez ise";
|
||||||
" sadece önceden belirtilmiş güncel konuyu gösterir.";
|
" sadece önceden belirtilmiş güncel konuyu gösterir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: TOPIC <kanal> (başlığı gösterir.)";
|
" Kullanımı: TOPIC <kanal> (başlığı gösterir.)";
|
||||||
" TOPIC <kanal> <metin> (başlığı değiştirir.)";
|
" TOPIC <kanal> <metin> (başlığı değiştirir.)";
|
||||||
" Örnek: TOPIC #Operhelp";
|
" Örnek: TOPIC #Operhelp";
|
||||||
" TOPIC #Lobby Hoşgeldiniz #Lobby!!";
|
" TOPIC #Lobby Hoşgeldiniz #Lobby!!";
|
||||||
};
|
};
|
||||||
@@ -576,7 +551,7 @@ help Invite {
|
|||||||
" Parametresiz kullanılan invite komutu ile hangi kanalların davet listesinde";
|
" Parametresiz kullanılan invite komutu ile hangi kanalların davet listesinde";
|
||||||
" olduğunu görebilirsiniz.";
|
" olduğunu görebilirsiniz.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: INVITE [<nick> <kanal>]";
|
" Kullanımı: INVITE [<nick> <kanal>]";
|
||||||
" Örnek: INVITE hAtbLaDe #Support";
|
" Örnek: INVITE hAtbLaDe #Support";
|
||||||
" Örnek: INVITE";
|
" Örnek: INVITE";
|
||||||
};
|
};
|
||||||
@@ -585,15 +560,15 @@ help Kick {
|
|||||||
" Kullanıcı yada Kullanıcıları kanaldan atmaya yarar.";
|
" Kullanıcı yada Kullanıcıları kanaldan atmaya yarar.";
|
||||||
" Sadece, operatörler veya HalfOp'lar tarafından kullanılabilir.";
|
" Sadece, operatörler veya HalfOp'lar tarafından kullanılabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: KICK <kanal> <nick> <sebeb>";
|
" Kullanımı: KICK <kanal> <nick> <sebeb>";
|
||||||
" Örnek: KICK #Lobby foobar Lamer..";
|
" Örnek: KICK #Lobby foobar Lamer..";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Away {
|
help Away {
|
||||||
" Bir sebeb belirttiğinizde sizi \"Away\", yani meşgul olarak gösterir.";
|
" Bir sebeb belirttiğinizde sizi \"Away\", yani meşgul olarak gösterir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: AWAY <sebeb> (belirtilen nedenden dolayı sizi away(meşgul) yapar.)";
|
" Kullanımı: AWAY <sebeb> (belirtilen nedenden dolayı sizi away(meşgul) yapar.)";
|
||||||
" AWAY (Awaydan çıkartır.)";
|
" AWAY (Awaydan çıkartır.)";
|
||||||
" Örnek: AWAY Öğle yemeği zamanı!";
|
" Örnek: AWAY Öğle yemeği zamanı!";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -615,9 +590,9 @@ help List {
|
|||||||
" Eğer bir arama maskesi, belirtilirse sadece ona denk,";
|
" Eğer bir arama maskesi, belirtilirse sadece ona denk,";
|
||||||
" uyan maskedeki kanalları listeleyecekdir.";
|
" uyan maskedeki kanalları listeleyecekdir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: LIST <maske>";
|
" Kullanımı: LIST <maske>";
|
||||||
" Örnek: LIST";
|
" Örnek: LIST";
|
||||||
" LIST *ircd*";
|
" LIST *ircd*";
|
||||||
" -";
|
" -";
|
||||||
" Bazı ekstra desteklenen flaglar.";
|
" Bazı ekstra desteklenen flaglar.";
|
||||||
" sayı içerisinde belirttiğiniz <sayıdan> fazla kullanıcısı olan kanalları listeler.";
|
" sayı içerisinde belirttiğiniz <sayıdan> fazla kullanıcısı olan kanalları listeler.";
|
||||||
@@ -685,8 +660,8 @@ help Knock {
|
|||||||
" Davetsel olan kanallar için, sadece sen \"Knock\" olan bir";
|
" Davetsel olan kanallar için, sadece sen \"Knock\" olan bir";
|
||||||
" Kanalda rica etmek için, bir davetsel mesaj gönderirsin.";
|
" Kanalda rica etmek için, bir davetsel mesaj gönderirsin.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: KNOCK <kanal> <mesaj>";
|
" Kullanımı: KNOCK <kanal> <mesaj>";
|
||||||
" Örnek: KNOCK #davetsel_kanal Ben opum, beni davet et!";
|
" Örnek: KNOCK #davetsel_kanal Ben opum, beni davet et!";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Setname {
|
help Setname {
|
||||||
@@ -700,7 +675,7 @@ help Vhost {
|
|||||||
" Gerçek hostadını sanal host adı ile değiştirmeye yarar.";
|
" Gerçek hostadını sanal host adı ile değiştirmeye yarar.";
|
||||||
" IRC Serverlerinde uygulanır SETHOST komutu ile uygulanır.";
|
" IRC Serverlerinde uygulanır SETHOST komutu ile uygulanır.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: VHOST <giriş> <şifre>";
|
" Kullanımı: VHOST <giriş> <şifre>";
|
||||||
" Örnek: VHOST openbsd ilovecypto";
|
" Örnek: VHOST openbsd ilovecypto";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -708,7 +683,7 @@ help Mode {
|
|||||||
" Bir kanal veya nickin modesini değiştirir.";
|
" Bir kanal veya nickin modesini değiştirir.";
|
||||||
" Bilgi için /HELPOP CHMODES veya /HELPOP UMODES yazarak modeleri listeleyebilirsiniz.";
|
" Bilgi için /HELPOP CHMODES veya /HELPOP UMODES yazarak modeleri listeleyebilirsiniz.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: MODE <kanal/nick> <mode>";
|
" Kullanımı: MODE <kanal/nick> <mode>";
|
||||||
" Örnek: MODE #Support +tn";
|
" Örnek: MODE #Support +tn";
|
||||||
" MODE #Support +ootn hAtbLaDe XYZ";
|
" MODE #Support +ootn hAtbLaDe XYZ";
|
||||||
};
|
};
|
||||||
@@ -770,35 +745,35 @@ help Globops {
|
|||||||
" Serverda bütün IRCops'lar global bir mesaj yollayabilir.";
|
" Serverda bütün IRCops'lar global bir mesaj yollayabilir.";
|
||||||
" (Sadece IRCops'lar tarafından sadece görülebilir).";
|
" (Sadece IRCops'lar tarafından sadece görülebilir).";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: GLOBOPS <mesaj>";
|
" Kullanımı: GLOBOPS <mesaj>";
|
||||||
" Örnek: GLOBOPS Kloneleri almaya izin ver ..";
|
" Örnek: GLOBOPS Kloneleri almaya izin ver ..";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Locops {
|
help Locops {
|
||||||
" Bu komut, serverda bütün IRCop'lara bir mesaj yollamasını sağlar. (Yerel).";
|
" Bu komut, serverda bütün IRCop'lara bir mesaj yollamasını sağlar. (Yerel).";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: LOCOPS <mesaj>";
|
" Kullanımı: LOCOPS <mesaj>";
|
||||||
" Örnek: LOCOPS Gonna kullanıcısına k:line atın ...";
|
" Örnek: LOCOPS Gonna kullanıcısına k:line atın ...";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Chatops {
|
help Chatops {
|
||||||
" Sadece yerel serverda bulunan IRCop'lara mesaj gönderilmesini sağlar. (Global).";
|
" Sadece yerel serverda bulunan IRCop'lara mesaj gönderilmesini sağlar. (Global).";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CHATOPS <mesaj>";
|
" Kullanımı: CHATOPS <mesaj>";
|
||||||
" Örnek: CHATOPS Gonna kullanıcısına k:line atın ...";
|
" Örnek: Gonna kullanıcısına k:line atın ...";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Adchat {
|
help Adchat {
|
||||||
" Online olan bütün Admin'lere mesaj gönderilmesini sağlar.";
|
" Online olan bütün Admin'lere mesaj gönderilmesini sağlar.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: ADCHAT <mesaj>";
|
" Kullanımı: ADCHAT <mesaj>";
|
||||||
" Örnek: ADCHAT Hey millet! Ben buradayım.";
|
" Örnek: ADCHAT Hey millet! Ben buradayım.";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Nachat {
|
help Nachat {
|
||||||
" Online olan bütün Network Admin'lere mesaj gönderilmesini sağlar.";
|
" Online olan bütün Network Admin'lere mesaj gönderilmesini sağlar.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: NACHAT <mesaj>";
|
" Kullanımı: NACHAT <mesaj>";
|
||||||
" Örnek: NACHAT Hey millet! Her şey nasıl?";
|
" Örnek: NACHAT Hey millet! Her şey nasıl?";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -806,8 +781,8 @@ help Kill {
|
|||||||
" Belirtilen Kullanıcıları IRC serverda bağlantısını kesmek için kullanılan bir komuttur.";
|
" Belirtilen Kullanıcıları IRC serverda bağlantısını kesmek için kullanılan bir komuttur.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: KILL <nick1>,<nick2>,<nick3>,... <sebeb>";
|
" Kullanımı: KILL <nick1>,<nick2>,<nick3>,... <sebeb>";
|
||||||
" Örnek: KILL Jack16 Clone yasak!";
|
" Örnek: KILL Jack16 Clone yasak!";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Kline {
|
help Kline {
|
||||||
@@ -832,11 +807,11 @@ help Zline {
|
|||||||
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: ZLINE <*@ipmaskesi> [süre] <sebeb> (Zline ekler.)";
|
" Kullanımı: ZLINE <*@ipmaskesi> [süre] <sebeb> (Zline ekler.)";
|
||||||
" ZLINE -<*@ipmaskesi> (Zline siler.)";
|
" ZLINE -<*@ipmaskesi> (Zline siler.)";
|
||||||
" Örnek: ZLINE *@127.0.0.1 - Kötü kullanım (Süresiz Zline ekler.)";
|
" Örnek: ZLINE *@127.0.0.1 - Kötü kullanım (Süresiz Zline ekler.)";
|
||||||
" ZLINE *@127.0.0.1 2d Kötü kullanım (2 günlük Zline ekler.)";
|
" ZLINE *@127.0.0.1 2d Kötü kullanım (2 günlük Zline ekler.)";
|
||||||
" ZLINE -*@127.0.0.1";
|
" ZLINE -*@127.0.0.1";
|
||||||
" NOT: ZLINE atabilme flağına sahip olmaniz gerekir. (can_zline)";
|
" NOT: ZLINE atabilme flağına sahip olmaniz gerekir. (can_zline)";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -847,7 +822,7 @@ help Gline {
|
|||||||
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: GLINE <kullanıcı@hostmaskesi yada nick> [süre] <sebeb>";
|
" Kullanımı: GLINE <kullanıcı@hostmaskesi yada nick> [süre] <sebeb>";
|
||||||
" (kullanıcı@hostmaskesi) kısmına Gline ekler.)";
|
" (kullanıcı@hostmaskesi) kısmına Gline ekler.)";
|
||||||
" GLINE -<kullanıcı@hostmaskesi> (Gline siler.)";
|
" GLINE -<kullanıcı@hostmaskesi> (Gline siler.)";
|
||||||
" Örnek: GLINE *@*.idiot.net 900 Boş mesaj (15 dk Gline ekler)";
|
" Örnek: GLINE *@*.idiot.net 900 Boş mesaj (15 dk Gline ekler)";
|
||||||
@@ -882,12 +857,12 @@ help Gzline {
|
|||||||
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
" Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: GZLINE <*@ipmaske> <sure> :<sebeb>";
|
" Kullanımı: GZLINE <*@ipmaske> <sure> :<sebeb>";
|
||||||
" (Global Z:line ekler.)";
|
" (Global Z:line ekler.)";
|
||||||
" GZLINE -<*@ipmaske> (Global Z:line'i siler.)";
|
" GZLINE -<*@ipmaske> (Global Z:line'i siler.)";
|
||||||
" Örnek: GZLINE *@4.16.200.* 900 Boş mesaj (15 dk Global Z:line ekler.)";
|
" Örnek: GZLINE *@4.16.200.* 900 Boş mesaj (15 dk Global Z:line ekler.)";
|
||||||
" GZLINE *@4.16.200.* 1d5h Boş mesaj (29 saat Global Z:line ekler.)";
|
" GZLINE *@4.16.200.* 1d5h Boş mesaj (29 saat Global Z:line ekler.)";
|
||||||
" NOT: Gzline atabilme flağına sahip olmanız gerekir. (can_gzline)";
|
" NOT: Gzline atabilme flağına sahip olmanız gerekir. (can_gzline)";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Akill {
|
help Akill {
|
||||||
@@ -895,8 +870,8 @@ help Akill {
|
|||||||
" o *@hostmaskesi'ne ait hiçbir kullanıcı servera bağlanamaz.";
|
" o *@hostmaskesi'ne ait hiçbir kullanıcı servera bağlanamaz.";
|
||||||
" Bu bir DEPRICATED komutudur, ve sadece U:Lines (Servisler)'den eklenir..";
|
" Bu bir DEPRICATED komutudur, ve sadece U:Lines (Servisler)'den eklenir..";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: AKILL <kullanıcı@hostmaskesi> :<sebeb>";
|
" Kullanımı: AKILL <kullanıcı@hostmaskesi> :<sebeb>";
|
||||||
" Örnek: AKILL foo@aol.com :Boş mesaj!";
|
" Örnek: AKILL foo@aol.com :Boş mesaj!";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Rakill {
|
help Rakill {
|
||||||
@@ -910,22 +885,19 @@ help Rehash {
|
|||||||
" Yerel bir serverın konfigurasyon dosya(larını) yeniden okumasını sağlar";
|
" Yerel bir serverın konfigurasyon dosya(larını) yeniden okumasını sağlar";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: REHASH <serverismi> [flag]";
|
" Kullanımı: REHASH <server> -<flag>";
|
||||||
" REHASH -global [flag]";
|
" REHASH -<flag>";
|
||||||
" REHASH [flag]";
|
|
||||||
" -";
|
" -";
|
||||||
" Eğer server ismi ve flag, belirtilmezse,";
|
" Eğer server ismi ve flaglar, belirtilmezse,";
|
||||||
" unrealircd.conf ve tüm MOTD, BOTMOTD, OPERMOTD ve RULES dosyalarını yeniden okumasını sağlar.";
|
" unrealircd.conf ve k:lines dosyası tekrar kullanır.";
|
||||||
" Eğer server ismi belirtilirse, server ismi config dosyalarını tekrar kullanmak için kullanılır.";
|
" Eğer server ismi belirtilirse, server ismi config dosyalarını tekrar kullanmak için kullanılır.";
|
||||||
" Eğer -global belirtilirse, ağ üzerindeki tüm sunucuların config dosyaları yeniden okunmasını sağlar.";
|
" Sadece NetAdmin'ler bir server ismini belirtebilir.";
|
||||||
" Sadece NetAdmin'ler bir server ismi ve -global belirtebilir.";
|
|
||||||
" -";
|
" -";
|
||||||
" Flaglar, diğer config dosyalarını tekrar kullanmak için kullanılır, aşağıdakiler geçerli flaglardır:";
|
" Flaglar, diğer config dosyalarını tekrar kullanmak için kullanılır, aşağıdakiler geçerli flaglardır:";
|
||||||
" -dns - Yeniden başlatır ve yeniden yükler, çözümler";
|
" -motd - Günün Mesajı ve Kurallar dosyasını yeniler.";
|
||||||
" -garbage - Değersiz dataların toplanmasını sağlar";
|
" -opermotd - Opermotd dosyasını yeniler.";
|
||||||
" -motd - Tüm MOTD, BOTMOTD, OPERMOTD ve RULES dosyalarını tekrar okumasını sağlar";
|
" -botmotd - Botmotd dosyasını yeniler.";
|
||||||
" (tld{}'de onlar dahil bloklar)";
|
" -garbage - Cop toplaması yapar.";
|
||||||
" -ssl - SSL Sertifikaları yeniden okur";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Restart {
|
help Restart {
|
||||||
@@ -960,23 +932,23 @@ help Sethost {
|
|||||||
" Özel karakterler kullanılabilinir.";
|
" Özel karakterler kullanılabilinir.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SETHOST <yeni host>";
|
" Kullanımı: SETHOST <yeni host>";
|
||||||
" Örnek: SETHOST i.have.hairy.armpits";
|
" Örnek: SETHOST i.have.hairy.armpits";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Setident {
|
help Setident {
|
||||||
" Bu komutla, kendinin veya bir kullanıcının Identini değiştirmesini sağlar. (Username.)";
|
" Bu komutla, kendinin veya bir kullanıcının Identini değiştirmesini sağlar. (Username.)";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SETIDENT <yeni ident>";
|
" Kullanımı: SETIDENT <yeni ident>";
|
||||||
" Örnek: SETIDENT l33t";
|
" Örnek: SETIDENT l33t";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Chghost {
|
help Chghost {
|
||||||
" Güncel olarak IRC Serverda bir kullanıcının hostname kısmını değiştirmeyi sağlar.";
|
" Güncel olarak IRC Serverda bir kullanıcının hostname kısmını değiştirmeyi sağlar.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CHGHOST <nick> <hostismi>";
|
" Kullanımı: CHGHOST <nick> <hostismi>";
|
||||||
" Örnek: CHGHOST hAtbLaDe root.me.com";
|
" Örnek: CHGHOST hAtbLaDe root.me.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -984,7 +956,7 @@ help Chgident {
|
|||||||
" Güncel olarak IRC Serverda bir kullanıcının IDENT kısmını değiştirmesini sağlar.";
|
" Güncel olarak IRC Serverda bir kullanıcının IDENT kısmını değiştirmesini sağlar.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CHGIDENT <nick> <ident>";
|
" Kullanımı: CHGIDENT <nick> <ident>";
|
||||||
" Örnek: CHGIDENT hAtbLaDe Koyun";
|
" Örnek: CHGIDENT hAtbLaDe Koyun";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -992,7 +964,7 @@ help Chgname {
|
|||||||
" Güncel olarak IRC Serverda bir kullanıcının \"IRC Name\" veya \"Real Name\" kısmını değiştirmeye yarar.";
|
" Güncel olarak IRC Serverda bir kullanıcının \"IRC Name\" veya \"Real Name\" kısmını değiştirmeye yarar.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CHGNAME <nick> <isim>";
|
" Kullanımı: CHGNAME <nick> <isim>";
|
||||||
" Örnek: CHGNAME hAtbLaDe Gotta yeni isim :)";
|
" Örnek: CHGNAME hAtbLaDe Gotta yeni isim :)";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1001,8 +973,8 @@ help Squit {
|
|||||||
" Genellikle serverların yönlendirmelerden çıkması için kullanılır.";
|
" Genellikle serverların yönlendirmelerden çıkması için kullanılır.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SQUIT <server>";
|
" Kullanımı: SQUIT <server>";
|
||||||
" Örnek: SQUIT leaf.*";
|
" Örnek: SQUIT leaf.*";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Connect {
|
help Connect {
|
||||||
@@ -1010,10 +982,10 @@ help Connect {
|
|||||||
" Uzak bağlantılarda, mümkün olabilir.";
|
" Uzak bağlantılarda, mümkün olabilir.";
|
||||||
" Sadece IRCop'lar kullanabilir.";
|
" Sadece IRCop'lar kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CONNECT <server> [port]";
|
" Kullanımı: CONNECT <server> [port]";
|
||||||
" CONNECT <server> <port> <ana server>";
|
" CONNECT <server> <port> <ana server>";
|
||||||
" Örnek: CONNECT leaf.*";
|
" Örnek: CONNECT leaf.*";
|
||||||
" CONNECT leaf.* 6667 hub.*";
|
" CONNECT leaf.* 6667 hub.*";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Dccdeny {
|
help Dccdeny {
|
||||||
@@ -1035,7 +1007,7 @@ help Sajoin {
|
|||||||
" Bir kullanıcıyı, zorla kanal yada kanallara girmesini sağlar.";
|
" Bir kullanıcıyı, zorla kanal yada kanallara girmesini sağlar.";
|
||||||
" Sadece Servis Adminler'ler kullanabilir.";
|
" Sadece Servis Adminler'ler kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SAJOIN <nick> <kanal>,[<kanal2>]";
|
" Kullanımı: SAJOIN <nick> <kanal>,[<kanal2>]";
|
||||||
" Örnek: SAJOIN hAtbLaDe #OperHelp";
|
" Örnek: SAJOIN hAtbLaDe #OperHelp";
|
||||||
" SAJOIN hAtbLaDe #Support,#IRCHelp";
|
" SAJOIN hAtbLaDe #Support,#IRCHelp";
|
||||||
};
|
};
|
||||||
@@ -1044,7 +1016,7 @@ help Sapart {
|
|||||||
" Bir kullanıcıyı, zorla kanal yada kanallardan çıkmasını sağlar.";
|
" Bir kullanıcıyı, zorla kanal yada kanallardan çıkmasını sağlar.";
|
||||||
" Sadece Servis Admin'ler kullanabilir.";
|
" Sadece Servis Admin'ler kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SAPART <nick> <kanal>,[<kanal2>] [<sebeb>]";
|
" Kullanımı: SAPART <nick> <kanal>,[<kanal2>] [<sebeb>]";
|
||||||
" Örnek: SAPART hAtbLaDe #OperHelp";
|
" Örnek: SAPART hAtbLaDe #OperHelp";
|
||||||
" SAPART hAtbLaDe #Support,#IRCHelp";
|
" SAPART hAtbLaDe #Support,#IRCHelp";
|
||||||
" SAPART hAtbLaDe #Support,#IRCHelp Hoşcakal";
|
" SAPART hAtbLaDe #Support,#IRCHelp Hoşcakal";
|
||||||
@@ -1055,8 +1027,8 @@ help Samode {
|
|||||||
" modesini değiştirmenizi sağlar.";
|
" modesini değiştirmenizi sağlar.";
|
||||||
" Sadece Servis Admin'ler kullanabilir.";
|
" Sadece Servis Admin'ler kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SAMODE <kanal> <mode>";
|
" Kullanımı: SAMODE <kanal> <mode>";
|
||||||
" Örnek: SAMODE #Support +m";
|
" Örnek: SAMODE #Support +m";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Rping {
|
help Rping {
|
||||||
@@ -1071,7 +1043,7 @@ help Trace {
|
|||||||
" Server için uygularsanız size class,version ve link bilgisini gösterir.";
|
" Server için uygularsanız size class,version ve link bilgisini gösterir.";
|
||||||
" TRACE Komutu bazı zamanlarda karışabilir özellikle ilk defa kullanıyorsanız.";
|
" TRACE Komutu bazı zamanlarda karışabilir özellikle ilk defa kullanıyorsanız.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: TRACE <server|nick>";
|
" Kullanımı: TRACE <server|nick>";
|
||||||
" Örnek: TRACE irc.fyremoon.net";
|
" Örnek: TRACE irc.fyremoon.net";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1087,8 +1059,8 @@ help Sdesc {
|
|||||||
" SQUIT ve RESTART edilmesine gerek kalmaz.";
|
" SQUIT ve RESTART edilmesine gerek kalmaz.";
|
||||||
" Sadece Server Admin ve Co Admin'ler kullanabilir.";
|
" Sadece Server Admin ve Co Admin'ler kullanabilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SDESC <yeni bilgi>";
|
" Kullanımı: SDESC <yeni bilgi>";
|
||||||
" Örnek: SDESC Yüksekten uç";
|
" Örnek: SDESC Yüksekten uç";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Mkpasswd {
|
help Mkpasswd {
|
||||||
@@ -1099,7 +1071,7 @@ help Mkpasswd {
|
|||||||
" Windows: crypt [*], md5, sha1, ripemd160 [*]";
|
" Windows: crypt [*], md5, sha1, ripemd160 [*]";
|
||||||
" [*: Sadece, eğer SSL desteğiyle derlenirse müsait olur]";
|
" [*: Sadece, eğer SSL desteğiyle derlenirse müsait olur]";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: MKPASSWD <metod> <şifre>";
|
" Kullanımı: MKPASSWD <metod> <şifre>";
|
||||||
" Örnek: MKPASSWD md5 IamTeh1337";
|
" Örnek: MKPASSWD md5 IamTeh1337";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1126,7 +1098,7 @@ help Close {
|
|||||||
" Bu komut, IRC serverından bütün bilinmeyen";
|
" Bu komut, IRC serverından bütün bilinmeyen";
|
||||||
" bağlantılarınızı kesmenizi sağlar.";
|
" bağlantılarınızı kesmenizi sağlar.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: CLOSE";
|
" Kullanımı: CLOSE";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Tsctl {
|
help Tsctl {
|
||||||
@@ -1160,7 +1132,7 @@ help Svsnick {
|
|||||||
" Bu komut, bir kullanıcının o an kullandığı nickin başka bir nicke dönüştürmesini sağlar.";
|
" Bu komut, bir kullanıcının o an kullandığı nickin başka bir nicke dönüştürmesini sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSNICK <nick> <yeni nick> <süre>";
|
" Kullanımı: SVSNICK <nick> <yeni nick> <süre>";
|
||||||
" Örnek: SVSNICK hAtbLaDe Foobar 963086432";
|
" Örnek: SVSNICK hAtbLaDe Foobar 963086432";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1168,7 +1140,7 @@ help Svsmode {
|
|||||||
" Bu komut, bir kullanıcının o an kullandığı modelerini değiştirmesini sağlar.";
|
" Bu komut, bir kullanıcının o an kullandığı modelerini değiştirmesini sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSMODE <nick> <mode>";
|
" Kullanımı: SVSMODE <nick> <mode>";
|
||||||
" Örnek: SVSMODE hAtbLaDe +i";
|
" Örnek: SVSMODE hAtbLaDe +i";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1176,7 +1148,7 @@ help Svskill {
|
|||||||
" Bu komut, bir kullanıcının IRC serverındaki bağlantısının zorla kopmasını sağlar.";
|
" Bu komut, bir kullanıcının IRC serverındaki bağlantısının zorla kopmasını sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSKILL <nick> :<sebeb>";
|
" Kullanımı: SVSKILL <nick> :<sebeb>";
|
||||||
" Örnek: SVSKILL Lamer21 :Güle Güle";
|
" Örnek: SVSKILL Lamer21 :Güle Güle";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1185,7 +1157,7 @@ help Svsnoop {
|
|||||||
" komutlarını iptal eder veya aktif eder.";
|
" komutlarını iptal eder veya aktif eder.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSNOOP <server> <+/->";
|
" Kullanımı: SVSNOOP <server> <+/->";
|
||||||
" Örnek: SVSNOOP leaf.* -";
|
" Örnek: SVSNOOP leaf.* -";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1193,7 +1165,7 @@ help Svsjoin {
|
|||||||
" Bu komut, bir kullanıcının kanal yada kanallara zorla girmesini sağlar.";
|
" Bu komut, bir kullanıcının kanal yada kanallara zorla girmesini sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSJOIN <nick> <kanal>[,<kanal2>..] [şifre[,şifre2[..]]]";
|
" Kullanımı: SVSJOIN <nick> <kanal>[,<kanal2>..] [şifre[,şifre2[..]]]";
|
||||||
" Örnek: SVSJOIN hAtbLaDe #jail";
|
" Örnek: SVSJOIN hAtbLaDe #jail";
|
||||||
" SVSJOIN hAtbLaDe #jail,#zoo";
|
" SVSJOIN hAtbLaDe #jail,#zoo";
|
||||||
};
|
};
|
||||||
@@ -1202,7 +1174,7 @@ help Svspart {
|
|||||||
" Bu komut, bir kullanıcının kanal yada kanallardan zorla çıkmasını sağlar.";
|
" Bu komut, bir kullanıcının kanal yada kanallardan zorla çıkmasını sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSPART <nick> <kanal>[,<kanal2>..] [<yorum>]";
|
" Kullanımı: SVSPART <nick> <kanal>[,<kanal2>..] [<yorum>]";
|
||||||
" Örnek: SVSPART hAtbLaDe #Hanson";
|
" Örnek: SVSPART hAtbLaDe #Hanson";
|
||||||
" SVSPART hAtbLaDe #Hanson,#AOL";
|
" SVSPART hAtbLaDe #Hanson,#AOL";
|
||||||
" SVSPART hAtbLaDe #Hanson,#AOL Sen çıkmalısın";
|
" SVSPART hAtbLaDe #Hanson,#AOL Sen çıkmalısın";
|
||||||
@@ -1213,8 +1185,8 @@ help Svso {
|
|||||||
" Svsmode +o ve benzeri komutları hatırlayınız.";
|
" Svsmode +o ve benzeri komutları hatırlayınız.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSO <nick> <+oper-flagları> (OPER flagları ekler.)";
|
" Kullanımı: SVSO <nick> <+oper-flagları> (OPER flagları ekler.)";
|
||||||
" SVSO <nick> - (O:Line flaglarını siler.)";
|
" SVSO <nick> - (O:Line flaglarını siler.)";
|
||||||
" Örnek: SVSO SomeNick +bBkK";
|
" Örnek: SVSO SomeNick +bBkK";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1222,8 +1194,8 @@ help Swhois {
|
|||||||
" Bu komut, bir kullanıcının whois bilgisini değiştirmeyi sağlar.";
|
" Bu komut, bir kullanıcının whois bilgisini değiştirmeyi sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SWHOIS <nick> :<mesaj> (Swhois ekler.)";
|
" Kullanımı: SWHOIS <nick> :<mesaj> (Swhois ekler.)";
|
||||||
" SWHOIS <nick> : (Swhois'i temizler.)";
|
" SWHOIS <nick> : (Swhois'i temizler.)";
|
||||||
" Örnek: SWHOIS SomeNick :is a lamer";
|
" Örnek: SWHOIS SomeNick :is a lamer";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1231,7 +1203,7 @@ help Sqline {
|
|||||||
" Bu komut, nick veya nick karakterlerini kullanan kullanıcıları yasaklamasını sağlar.";
|
" Bu komut, nick veya nick karakterlerini kullanan kullanıcıları yasaklamasını sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SQLINE <nick> :<sebeb>";
|
" Kullanımı: SQLINE <nick> :<sebeb>";
|
||||||
" Örnek: SQLINE *Bot* :Botlara Hayır";
|
" Örnek: SQLINE *Bot* :Botlara Hayır";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1239,7 +1211,7 @@ help Unsqline {
|
|||||||
" Bu komut, kullanımı yasaklanmış olan nick veya nick karekterlerinin yeniden kullanılmasını sağlar.";
|
" Bu komut, kullanımı yasaklanmış olan nick veya nick karekterlerinin yeniden kullanılmasını sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: UNSQLINE <nick>";
|
" Kullanımı: UNSQLINE <nick>";
|
||||||
" Örnek: UNSQLINE *Bot*";
|
" Örnek: UNSQLINE *Bot*";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1247,7 +1219,7 @@ help Svs2mode {
|
|||||||
" Bu komut, bir kullanıcının modelerini zorla değiştirmeyi sağlar.";
|
" Bu komut, bir kullanıcının modelerini zorla değiştirmeyi sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVS2MODE <nick> <kullanıcı modesi>";
|
" Kullanımı: SVS2MODE <nick> <kullanıcı modesi>";
|
||||||
" Örnek: SVS2MODE hAtbLaDe +h";
|
" Örnek: SVS2MODE hAtbLaDe +h";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1263,10 +1235,10 @@ help Svsfline {
|
|||||||
help Svsmotd {
|
help Svsmotd {
|
||||||
" Günün Servisler mesajını ekler veya siler.";
|
" Günün Servisler mesajını ekler veya siler.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" Kullanımı: SVSMOTD # :<mesaj> (Svsmotd ekler.)";
|
" Kullanımı: SVSMOTD # :<mesaj> (Svsmotd ekler.)";
|
||||||
" SVSMOTD ! (Motd siler.)";
|
" SVSMOTD ! (Motd siler.)";
|
||||||
" SVSMOTD ! :<mesaj> (bulunan mesaji silip, yenisini ekler.)";
|
" SVSMOTD ! :<mesaj> (bulunan mesaji silip, yenisini ekler.)";
|
||||||
" Örnek: SVSMOTD # :Services MOTD";
|
" Örnek: SVSMOTD # :Services MOTD";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Svsnline {
|
help Svsnline {
|
||||||
@@ -1276,10 +1248,10 @@ help Svsnline {
|
|||||||
" Kelime aralarında boşluk yerine _, kullanılmalıdır. Unreal otomatik olarak";
|
" Kelime aralarında boşluk yerine _, kullanılmalıdır. Unreal otomatik olarak";
|
||||||
" boşluk karaterine çevirecektir.";
|
" boşluk karaterine çevirecektir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSNLINE +/- <ban_sebebi> :<isim> (ban ekler.)";
|
" Kullanımı: SVSNLINE +/- <ban_sebebi> :<isim> (ban ekler.)";
|
||||||
" SVSNLINE - :<isim> (eklenmiş bir banı kaldırır.)";
|
" SVSNLINE - :<isim> (eklenmiş bir banı kaldırır.)";
|
||||||
" SVSNLINE * (eklenmiş tüm banları kaldırır.)";
|
" SVSNLINE * (eklenmiş tüm banları kaldırır.)";
|
||||||
" Örnek: SVSNLINE + sub7_drone :*sub7*";
|
" Örnek: SVSNLINE + sub7_drone :*sub7*";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Svslusers {
|
help Svslusers {
|
||||||
@@ -1287,15 +1259,15 @@ help Svslusers {
|
|||||||
" Eğer -1 değeri belirtilirse, varolan değerler saklanır/korunur.";
|
" Eğer -1 değeri belirtilirse, varolan değerler saklanır/korunur.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
|
" Kullanımı: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
|
||||||
" Örnek: SVSLUSERS irc.test.com -1 200";
|
" Örnek: SVSLUSERS irc.test.com -1 200";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Svswatch {
|
help Svswatch {
|
||||||
" Bir kullanıcının, WATCH listesini değiştirmeyi sağlar.";
|
" Bir kullanıcının, WATCH listesini değiştirmeyi sağlar.";
|
||||||
" Sadece U:Lined (Servis'den) gönderilebilir.";
|
" Sadece U:Lined (Servis'den) gönderilebilir.";
|
||||||
" Kullanımı: SVSWATCH <nick> :<watch parametresi>";
|
" Kullanımı: SVSWATCH <nick> :<watch parametresi>";
|
||||||
" Örnek: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
|
" Örnek: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Svssilence {
|
help Svssilence {
|
||||||
@@ -1311,7 +1283,7 @@ help Svssno {
|
|||||||
" Bu komut, bir kullanıcının snomasklarını değiştirmesini sağlar.";
|
" Bu komut, bir kullanıcının snomasklarını değiştirmesini sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVSSNO <nick> <snomasklar>";
|
" Kullanımı: SVSSNO <nick> <snomasklar>";
|
||||||
" Örnek: SVSSNO joe +Gc";
|
" Örnek: SVSSNO joe +Gc";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1320,7 +1292,7 @@ help Svs2sno {
|
|||||||
" değiştirmesini sağlar.";
|
" değiştirmesini sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: SVS2SNO <nick> <snomasklar>";
|
" Kullanımı: SVS2SNO <nick> <snomasklar>";
|
||||||
" Örnek: SVS2SNO joe +Gc";
|
" Örnek: SVS2SNO joe +Gc";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1328,14 +1300,14 @@ help Svsnolag {
|
|||||||
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
|
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Syntax: SVSNOLAG [+|-] <nickname>";
|
" Syntax: SVSNOLAG [+|-] <nickname>";
|
||||||
" Example: SVSNOLAG + joe";
|
" Example: SVSNOLAG + joe";
|
||||||
};
|
};
|
||||||
help Svs2nolag {
|
help Svs2nolag {
|
||||||
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
|
" Bir kullanıcı için 'sahte gecikmeme' olanağı sağlar.";
|
||||||
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
" Sadece U:Lined (Servisler)'den gönderilebilir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanım: SVS2NOLAG [+|-] <nickname>";
|
" Kullanım: SVS2NOLAG [+|-] <nickname>";
|
||||||
" Örnek: SVS2NOLAG + joe";
|
" Örnek: SVS2NOLAG + joe";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1376,7 +1348,7 @@ help Tempshun {
|
|||||||
" Geçici SHUN ekler/kaldırır.Geçici shun listesine eklenen nick";
|
" Geçici SHUN ekler/kaldırır.Geçici shun listesine eklenen nick";
|
||||||
" Eğer serverdan çıkarsa otomatik olarak listeden silinir.";
|
" Eğer serverdan çıkarsa otomatik olarak listeden silinir.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: TEMPSHUN [+|-]<nick> [sebeb]";
|
" Kullanımı: TEMPSHUN [+|-]<nick> [sebeb]";
|
||||||
" Örnek: TEMPSHUN evilguy Rahatsızlık vermeyiniz!";
|
" Örnek: TEMPSHUN evilguy Rahatsızlık vermeyiniz!";
|
||||||
" TEMPSHUN -niceguy";
|
" TEMPSHUN -niceguy";
|
||||||
};
|
};
|
||||||
@@ -1391,14 +1363,14 @@ help DccAllow {
|
|||||||
help Addmotd {
|
help Addmotd {
|
||||||
" MOTD sonuna yeni bir dizin ekler.";
|
" MOTD sonuna yeni bir dizin ekler.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: ADDMOTD <yazı>";
|
" Kullanımı: ADDMOTD <yazı>";
|
||||||
" Örnek: ADDMOTD Güzel oyna!";
|
" Örnek: ADDMOTD Güzel oyna!";
|
||||||
};
|
};
|
||||||
|
|
||||||
help Addomotd {
|
help Addomotd {
|
||||||
" OPERMOTD sonuna yeni bir dizin ekler.";
|
" OPERMOTD sonuna yeni bir dizin ekler.";
|
||||||
" -";
|
" -";
|
||||||
" Kullanımı: ADDOMOTD <yazı>";
|
" Kullanımı: ADDOMOTD <yazı>";
|
||||||
" Örnek: ADDOMOTD Onu kötü kullan ve onu kaybet!";
|
" Örnek: ADDOMOTD Onu kötüye kullanır ve onu kaybeder!";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -139,22 +139,3 @@ NICKCHARS This specifies a list of language characters that are allowed in n
|
|||||||
The items in the list sent as NICKCHARS=.. must always be sorted.
|
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
|
If a server sends NICKCHARS= and if the remote parameters do not match the
|
||||||
charsets in use locally, then the server link is rejected.
|
charsets in use locally, then the server link is rejected.
|
||||||
|
|
||||||
CHANMODES Like CHANMODES from the 005 numeric. Useful to see which channel modes are
|
|
||||||
supported/used, and can also be used to properly eat parameters in parameter
|
|
||||||
modes in the MODE command (for eg: +jk 1:1 a).
|
|
||||||
|
|
||||||
EAUTH Early Authorization. This makes it possible for servers to authenticate each
|
|
||||||
other before the regular SERVER command. Needs to be done prior to using the
|
|
||||||
SERVERS token, and possibly other tokens or commands in the future. Hence,
|
|
||||||
is recommended to be sent as first (or early) PROTOCTL token. Note also that
|
|
||||||
the PASS command should be sent prior to this PROTOCTL token.
|
|
||||||
EAUTH=my.server.name[,options]
|
|
||||||
|
|
||||||
SERVERS Informs the other server about the other servers (numerics) on this network
|
|
||||||
(including our own numeric).
|
|
||||||
Syntax: SERVERS=numeric1,numeric2,numeric3,etc
|
|
||||||
|
|
||||||
ESVID This token indicates that the traditional services stamp value may take any
|
|
||||||
arbitrary value for the SVID field, such as an account name or other unique
|
|
||||||
identifier, including a traditional timestamp value.
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
||||||
<hr/>
|
<hr/>
|
||||||
<h1><a name="S1"></a>1 Introduction</h1>
|
<h1><a name="S1"></a>1 Introduction</h1>
|
||||||
<p>This document describes the UnrealIRCd server-to-server protocol.</p>
|
<p>This document describes the UnrealIRCd server-to-server protocol as of protocol 2307 (Unreal 3.2.4).</p>
|
||||||
<h2>A word about clocks.</h2>
|
<h2>A word about clocks.</h2>
|
||||||
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
||||||
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
||||||
@@ -105,7 +105,6 @@
|
|||||||
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
||||||
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
||||||
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
||||||
<li>ESVID : Supports arbitrary values instead of just numeric timestamps for the services identifier field.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
||||||
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
||||||
@@ -117,8 +116,6 @@
|
|||||||
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
||||||
<p>The following version numbers have been used previously:</p>
|
<p>The following version numbers have been used previously:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>2311 - Unreal 3.2.10</li>
|
|
||||||
<li>2310 - Unreal 3.2.9</li>
|
|
||||||
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
||||||
<li>2308 - Unreal 3.2.5</li>
|
<li>2308 - Unreal 3.2.5</li>
|
||||||
<li>2307 - Unreal 3.2.4</li>
|
<li>2307 - Unreal 3.2.4</li>
|
||||||
@@ -169,11 +166,11 @@
|
|||||||
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
||||||
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
||||||
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
||||||
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> :<i>realname</i></tt></p>
|
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> :<i>realname</i></tt></p>
|
||||||
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
||||||
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
||||||
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
||||||
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
||||||
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
||||||
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
||||||
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
||||||
@@ -307,7 +304,7 @@
|
|||||||
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
||||||
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
||||||
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
||||||
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservice-identifier-token</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservicestamp</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
||||||
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
||||||
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
||||||
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
|||||||
|
|
||||||
Protocol Version
|
Protocol Version
|
||||||
------------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------------
|
||||||
2311 3.2.10
|
|
||||||
2310 3.2.9
|
|
||||||
2309 3.2.6, 3.2.7, 3.2.8
|
2309 3.2.6, 3.2.7, 3.2.8
|
||||||
2308 3.2.5
|
2308 3.2.5
|
||||||
2307 3.2.4
|
2307 3.2.4
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
==[ Translations ]===========================================================
|
==[ Translations ]============================================================
|
||||||
|
|
||||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||||
documentation files. For now, only translations of unreal32docs.html and
|
documentation files. For now, only translations of unreal32docs.html and
|
||||||
@@ -37,8 +37,9 @@ Upon successful completion you will also receive an @unrealircd.org
|
|||||||
forwarder email address, and of course your name will be in the docs.
|
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
|
If you want to start translating a document, please send an email to
|
||||||
syzop@unrealircd.com and mention the language you are willing to translate
|
coders@lists.unrealircd.org and mention the language you are willing
|
||||||
to.. You will then receive an email back saying you can go ahead (or not).
|
to translate to.. You will then receive an email back saying you can
|
||||||
This is mainly to avoid multiple persons working on the same translation.
|
go ahead (or not). This is mainly to avoid multiple persons working
|
||||||
|
on the same translation.
|
||||||
|
|
||||||
=============================================================================
|
==============================================================================
|
||||||
|
|||||||
+27
-67
@@ -17,29 +17,25 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
|
||||||
series</b> (UnrealIRCd 3.2.x).
|
|
||||||
If you are using UnrealIRCd 4 then check the
|
|
||||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
|
||||||
instead.</p>
|
|
||||||
|
|
||||||
<a href="unreal32docs.html">English</a> | German |
|
<a href="unreal32docs.html">English</a> | German |
|
||||||
|
<a href="unreal32docs.es.html">Spanish</a> |
|
||||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||||
<a href="unreal32docs.fr.html">French</a> |
|
<a href="unreal32docs.fr.html">French</a> |
|
||||||
|
<a href="unreal32docs.gr.html">Greek</a> |
|
||||||
|
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||||
<a href="unreal32docs.ru.html">Russian</a> |
|
<a href="unreal32docs.ru.html">Russian</a> |
|
||||||
<a href="unreal32docs.tr.html">Turkish</a> |
|
<a href="unreal32docs.tr.html">Turkish</a>
|
||||||
<a href="unreal32docs.es.html">Spanish</a>
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||||
<font size="4">Version: 3.2.10.5</font><br>
|
<font size="4">Version: 3.2.8</font><br>
|
||||||
<b>Letztes Update dieses Handbuchs:</b> 2009-12-24</div>
|
<b>Letztes Update dieses Handbuchs:</b> 2009-01-03</div>
|
||||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<font face="Helvetica,Arial" size="-1">/
|
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<font face="Helvetica,Arial" size="-1">/
|
||||||
aquanight / WolfSage</font><br>
|
aquanight / WolfSage</font><br>
|
||||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||||
<b>Dokumentation</b><b>:</b> CKnight^ / Syzop<br>
|
<b>Dokumentation</b><b>:</b> CKnight^ / Syzop<br>
|
||||||
<b>Deutsche Übersetzung:</b> LowDigit / Orginalübersetzung: stylus740<br>
|
<b>Deutsche Übersetzung:</b> Stylus740 (irc.insiderZ.de)<br>
|
||||||
<p>Um diese Dokumentation zu lesen, ist einer der unten aufgeführten
|
<p>Um diese Dokumentation zu lesen, ist einer der unten aufgeführten
|
||||||
kompatiblen Browser erforderlich. Aktuelle Dokumentationen sind erhältlich @
|
kompatiblen Browser erforderlich. Aktuelle Dokumentationen sind erhältlich @
|
||||||
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||||
@@ -120,7 +116,6 @@ Konfigurationsdatei</a><br>
|
|||||||
---4.35. <a href="#spamfilter"> Spamfilter Block<br>
|
---4.35. <a href="#spamfilter"> Spamfilter Block<br>
|
||||||
</a>---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
</a>---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
||||||
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||||
---4.38. <a href="#filesblock">Files Block</a><br>
|
|
||||||
5. <a href="#addtlfiles">Additional Files</a><br>
|
5. <a href="#addtlfiles">Additional Files</a><br>
|
||||||
6. <a href="#userchannelmodes">User & Channel Modi</a><br>
|
6. <a href="#userchannelmodes">User & Channel Modi</a><br>
|
||||||
7. <a href="#useropercommands">User & Oper Befehlsliste<br>
|
7. <a href="#useropercommands">User & Oper Befehlsliste<br>
|
||||||
@@ -162,13 +157,11 @@ werden. – Copyright UnrealIRCd Development Team 2002-2006</p>
|
|||||||
<p>Bitte lesen Sie diese Anleitung, bevor Sie um Hilfe bitten und schauen Sie
|
<p>Bitte lesen Sie diese Anleitung, bevor Sie um Hilfe bitten und schauen Sie
|
||||||
WIRKLICH erst einmal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
WIRKLICH erst einmal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
||||||
beantwortet sind. Hilft
|
beantwortet sind. Hilft
|
||||||
dies alles nicht, kann bzgl. Support bei irc.unrealircd.org
|
dies alles nicht, kann bzgl. Support bei irc.ircsystems.net
|
||||||
(Port 6667) im Channel #unreal-support
|
(Port 6667) Channel #unreal-support
|
||||||
nach Unterstützung gefragt werden (Wir erwarten UNBEDINGT, dass zuvor Dokumentation
|
nach Unterstützung gefragt werden (Wir erwarten UNBEDINGT, dass zuvor Dokumentation
|
||||||
und <a href="#faq">
|
und <a href="#faq">
|
||||||
FAQ</a> gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!).
|
FAQ</a> gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!). Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
||||||
Ebenso können Sie das Forum nutzen, welches über <a href="http://forums.unrealircd.com/" target="_blank">http://forums.unrealircd.com</a>
|
|
||||||
erreichbar ist. Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
|
||||||
<a href="http://bugs.unrealircd.org" TARGET="_blank">http://bugs.unrealircd.org</a>.</p></div>
|
<a href="http://bugs.unrealircd.org" TARGET="_blank">http://bugs.unrealircd.org</a>.</p></div>
|
||||||
|
|
||||||
<p><font size="+2"><b><a name="notesonolder">1.1 – Anmerkungen zu Upgrade/Mixing 3.1.x -> 3.2</a> </b></font><br>
|
<p><font size="+2"><b><a name="notesonolder">1.1 – Anmerkungen zu Upgrade/Mixing 3.1.x -> 3.2</a> </b></font><br>
|
||||||
@@ -223,9 +216,9 @@ Bug gemeldet wird!</p></div>
|
|||||||
</ul>
|
</ul>
|
||||||
<li><b>Windows Versionen:</b>
|
<li><b>Windows Versionen:</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Windows XP (Home, Pro)
|
<li>Windows 2000 (Pro, Server, Advanced Server)
|
||||||
|
<li>WindowsXP (Home, Pro)
|
||||||
<li>Windows 2003
|
<li>Windows 2003
|
||||||
<li>Windows 7
|
|
||||||
</ul>
|
</ul>
|
||||||
<li><b>Getestete Architektueren (Prozessoren):</b>
|
<li><b>Getestete Architektueren (Prozessoren):</b>
|
||||||
<ul>
|
<ul>
|
||||||
@@ -1959,7 +1952,7 @@ in verschiedenen Dateien zu loggen.</p>
|
|||||||
tkl</p>
|
tkl</p>
|
||||||
</td>
|
</td>
|
||||||
<td width="484">
|
<td width="484">
|
||||||
<p>zeichnet Infos auf über *lines (kline, zline etc), shuns und Spamfilter (setzen, löschen,
|
<p>zeichnet Infos auf über *lines, shuns und Spamfilter (setzen, löschen,
|
||||||
Ablauf)</p>
|
Ablauf)</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -1982,6 +1975,14 @@ Ablauf)</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="113">
|
<td width="113">
|
||||||
|
<p>
|
||||||
|
kline</p>
|
||||||
|
</td>
|
||||||
|
<td width="484"><p>Zeichnet Infos /kline auf</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td width="113">
|
||||||
<p>
|
<p>
|
||||||
oper</p>
|
oper</p>
|
||||||
</td>
|
</td>
|
||||||
@@ -2026,6 +2027,7 @@ spamfilter
|
|||||||
errors;
|
errors;
|
||||||
kills;
|
kills;
|
||||||
oper;
|
oper;
|
||||||
|
kline;
|
||||||
tkl;
|
tkl;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -2718,7 +2720,7 @@ weggelassen werden. <b> alias::type</b> gibt den Typ des Alias an, g
|
|||||||
Typen sind hier "services" (der User ist auf dem Services Server),
|
Typen sind hier "services" (der User ist auf dem Services Server),
|
||||||
"stats" (der User ist auf dem Stats Server) "normal" (der
|
"stats" (der User ist auf dem Stats Server) "normal" (der
|
||||||
User ist normaler User auf irgendeinem Server) und "channel" (das Ziel
|
User ist normaler User auf irgendeinem Server) und "channel" (das Ziel
|
||||||
ist ein Channel Name). Wenn <b>alias::spamfilter</b> (optional) auf 'yes'
|
ist ein Channel Name). Wenn <b>alias::spampfilter</b> (optional) auf 'yes'
|
||||||
eingestellt ist, werden auch Spamfilter geprüft (Default ist 'no'). Der "alias block" hat
|
eingestellt ist, werden auch Spamfilter geprüft (Default ist 'no'). Der "alias block" hat
|
||||||
auch einen weiteren nachfolgend erklärten Zweck.</p>
|
auch einen weiteren nachfolgend erklärten Zweck.</p>
|
||||||
<p>Syntax [Befehl alias]:
|
<p>Syntax [Befehl alias]:
|
||||||
@@ -2992,7 +2994,7 @@ anwenden k
|
|||||||
<p><font class="set">set::level-on-join <op|none></font><br>
|
<p><font class="set">set::level-on-join <op|none></font><br>
|
||||||
Die Modus, der einem User beim ersten joinen eines Channels gegeben wird. Das
|
Die Modus, der einem User beim ersten joinen eines Channels gegeben wird. Das
|
||||||
ist entweder 'op' (Channel Operator, Default) oder 'none', wenn kein Level
|
ist entweder 'op' (Channel Operator, Default) oder 'none', wenn kein Level
|
||||||
gegeben werden soll. Default ist Op.</p>
|
gegeben werden soll.</p>
|
||||||
<p><font class="set">set::restrict-channelmodes <modes></font><br>
|
<p><font class="set">set::restrict-channelmodes <modes></font><br>
|
||||||
Die Channel-Modi, die User wählen können werden auf die hier angegebenen Modi
|
Die Channel-Modi, die User wählen können werden auf die hier angegebenen Modi
|
||||||
eingeschränkt. (kein + oder - angeben!).<br>
|
eingeschränkt. (kein + oder - angeben!).<br>
|
||||||
@@ -3207,9 +3209,6 @@ Verbietet Verbindungen von Usern mit selbst erstellten Zertifikaten.</p>
|
|||||||
<p><font class="set">set::ssl::options::verify-certificate;</font><br>
|
<p><font class="set">set::ssl::options::verify-certificate;</font><br>
|
||||||
Stellt ein, dass Unreal SSL Zertifikate auf Gültigkeit überprüft, bevor
|
Stellt ein, dass Unreal SSL Zertifikate auf Gültigkeit überprüft, bevor
|
||||||
eine Verbindung akzeptiert wird.</p>
|
eine Verbindung akzeptiert wird.</p>
|
||||||
<p><font class="set">set::ssl::options::no-starttls;</font><br>
|
|
||||||
Deaktiviert STARTTLS. STARTTLS ermöglicht es Clients, über reguläere (nicht
|
|
||||||
SSL) Ports zu verbinden.</p>
|
|
||||||
<p><font class="set">set::throttle::period <timevalue></font><br>
|
<p><font class="set">set::throttle::period <timevalue></font><br>
|
||||||
Wie lange muss ein User zum erneuten Connecten warten, wenn er häufiger, als
|
Wie lange muss ein User zum erneuten Connecten warten, wenn er häufiger, als
|
||||||
unter 'set::throttle::connections' eingestellt, verbunden war.</p>
|
unter 'set::throttle::connections' eingestellt, verbunden war.</p>
|
||||||
@@ -3305,53 +3304,14 @@ benutzen, wenn es beim Verbinden Probleme gibt. Voreingestellt ist 'no'.</
|
|||||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||||
Ermöglicht eine AWAY Meldung in WATCH. Der Default is yes.</p>
|
Ermöglicht eine AWAY Meldung in WATCH. Der Default is yes.</p>
|
||||||
</div>
|
</div>
|
||||||
<p><font class="block_section"><a name="filesblock">4.38 - Files Block</a> </font><font class="block_optional" size="3">OPTIONAL</font>
|
|
||||||
</p>
|
|
||||||
<p>Es ist nicht nötig, für die Default Speicherorte der MOTD und Rules Dateien
|
|
||||||
einen <a href="#tldblock">TLD block</a> zu definieren. Der Files Block steuert
|
|
||||||
die Default Einstellungen für diese Dateien und zusätzlich für die pidfile und
|
|
||||||
irc.tune file. Für alles, was hier nicht angegeben ist, wird der Defaultwert
|
|
||||||
genommen, wie er in <a href="#addtlfiles">Additional Files</a> steht.</p>
|
|
||||||
<p>Relative Pfadnamen werden als relativ zum unrealIRCD Startverzeichnis
|
|
||||||
interpretiert, in dem normalerweise auch die <tt>unrealircd.conf</tt> steht.
|
|
||||||
Dieser Block kan dazu benutzt werden, mehr als einen IRCd im gleichen
|
|
||||||
Verzeichnis laufen zu lassen. In diesem Fall sollten mindestens verschiedene
|
|
||||||
pidfiles und tunefiles definiert werden - eines für jeden Server.</p>
|
|
||||||
<p>Syntax:<br>
|
|
||||||
</p>
|
|
||||||
<pre>files {
|
|
||||||
motd <motd file>;
|
|
||||||
shortmotd <short motd file>;
|
|
||||||
opermotd <oper motd file>;
|
|
||||||
svsmotd <services motd file>;
|
|
||||||
botmotd <bot motd file>;
|
|
||||||
|
|
||||||
rules <rules file>;
|
|
||||||
|
|
||||||
tunefile <tune file>;
|
|
||||||
pidfile <pid file>;
|
|
||||||
};
|
|
||||||
</pre>
|
|
||||||
<p> </p>
|
|
||||||
<p>Beispiel:<br>
|
|
||||||
</p>
|
|
||||||
<pre>files {
|
|
||||||
motd /etc/motd;
|
|
||||||
|
|
||||||
pidfile /var/lib/run/unrealircd.pid;
|
|
||||||
};
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
</p>
|
|
||||||
<p><b><font size="+2"><a name="addtlfiles">5 – Additional Files</a></font></b></p><div class="desc">
|
<p><b><font size="+2"><a name="addtlfiles">5 – Additional Files</a></font></b></p><div class="desc">
|
||||||
Zusätzlich zu den Konfigurationsdateien hat Unreal einige weitere Dateien,
|
Zusätzlich zu den Konfigurationsdateien hat Unreal einige weitere Dateien,
|
||||||
wie MOTD, OperMOTD, BotMOTD, und Rules. In der nachfolgenden Liste stehen die
|
wie MOTD, OperMOTD, BotMOTD, und Rules. In der nachfolgenden Liste stehen die
|
||||||
Namen dieser dateien und ihr Verwendungszweck.<br>
|
Namen dieser dateien und ihr Verwendungszweck.<br>
|
||||||
Zu beachten ist, dass die motd Dateien (alle Typen) und die rules Dateien auch
|
Zu beachten ist, dass die motd Dateien (alle Typen) und die rules Dateien auch
|
||||||
in einem speziellen <a href="#tldblock"> tld Block </a>oder einem <a href="#filesblock">files
|
in einem speziellen tld Block angegeben sein können. Dies sind nur die
|
||||||
Block</a> angegeben sein können. Dies sind nur die
|
|
||||||
Dateien, die per Default benutzt werden (und für Anforderungen von
|
Dateien, die per Default benutzt werden (und für Anforderungen von
|
||||||
MOTD/RULES).<br>
|
MOTD/RULES).
|
||||||
<table width="83%" border="1">
|
<table width="83%" border="1">
|
||||||
<tr>
|
<tr>
|
||||||
<td>ircd.motd</td><td>Wird angezeigt, wenn der /motd Befehl ausgeführt wird
|
<td>ircd.motd</td><td>Wird angezeigt, wenn der /motd Befehl ausgeführt wird
|
||||||
@@ -4452,7 +4412,7 @@ Datei</a></b></font></p>
|
|||||||
<p>
|
<p>
|
||||||
<br>
|
<br>
|
||||||
Eines allerdings sollte man tun: IMMER DIE NEUESTE VERSION BENUTZEN. Wenn man
|
Eines allerdings sollte man tun: IMMER DIE NEUESTE VERSION BENUTZEN. Wenn man
|
||||||
sich in die <a href="http://lists.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank"> Unreal-notify mailinglist</a> einträgt, erhält man die Ankündigung
|
sich in die <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify"> Unreal-notify mailinglist</a> einträgt, erhält man die Ankündigung
|
||||||
über neue Versionen (unreal-notify ist nur für Ankündigungen und man
|
über neue Versionen (unreal-notify ist nur für Ankündigungen und man
|
||||||
erhält nur alle X Monate 1 Mail). Üblicherweise gibt es neue Releases, wenn
|
erhält nur alle X Monate 1 Mail). Üblicherweise gibt es neue Releases, wenn
|
||||||
es (bedeutende) Sicherheits Fixes gibt, aber eigentlich ist es gut, in jedem
|
es (bedeutende) Sicherheits Fixes gibt, aber eigentlich ist es gut, in jedem
|
||||||
|
|||||||
+1515
-1944
File diff suppressed because it is too large
Load Diff
+3281
-4919
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+138
-461
File diff suppressed because it is too large
Load Diff
+202
-515
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+182
-472
File diff suppressed because it is too large
Load Diff
+270
-2354
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -98,7 +98,7 @@ help Umodes {
|
|||||||
" N = Is a Network Administrator";
|
" N = Is a Network Administrator";
|
||||||
" C = Is a Co Administrator";
|
" C = Is a Co Administrator";
|
||||||
" -";
|
" -";
|
||||||
" d = Only receive channel PRIVMSGs starting with a bot command character (Deaf)";
|
" d = Makes it so you can not receive channel PRIVMSGs (Deaf)";
|
||||||
" g = Can read & send to GlobOps, and LocOps";
|
" g = Can read & send to GlobOps, and LocOps";
|
||||||
" h = Available for Help (Help Operator)";
|
" h = Available for Help (Help Operator)";
|
||||||
" i = Invisible (Not shown in /WHO searches)";
|
" i = Invisible (Not shown in /WHO searches)";
|
||||||
@@ -114,7 +114,6 @@ help Umodes {
|
|||||||
" B = Marks you as being a Bot";
|
" B = Marks you as being a Bot";
|
||||||
" G = Filters out all Bad words in your messages with <censored>";
|
" G = Filters out all Bad words in your messages with <censored>";
|
||||||
" H = Hide IRCop status in /WHO and /WHOIS. (IRC Operators only)";
|
" H = Hide IRCop status in /WHO and /WHOIS. (IRC Operators only)";
|
||||||
" I = Hide an oper's idle time (in /whois output) from regular users.";
|
|
||||||
" R = Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users";
|
" R = Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users";
|
||||||
" S = For Services only. (Protects them)";
|
" S = For Services only. (Protects them)";
|
||||||
" T = Prevents you from receiving CTCPs";
|
" T = Prevents you from receiving CTCPs";
|
||||||
@@ -160,53 +159,48 @@ help Chmodes {
|
|||||||
" a <nickname> = Gives Channel Admin to the user";
|
" a <nickname> = Gives Channel Admin to the user";
|
||||||
" q <nickname> = Gives Owner status to the user";
|
" q <nickname> = Gives Owner status to the user";
|
||||||
" -";
|
" -";
|
||||||
" A = Server/Net Admin only channel (settable by Admins)";
|
" b <nick!ident@host> = Bans the nick!ident@host from the channel";
|
||||||
" b <nick!ident@host> = Bans the nick!ident@host from the channel [h]";
|
" Extended bantypes (for more info see /HELPOP EXTBANS) [h]";
|
||||||
" (For more info on extended bantypes, see /HELPOP EXTBANS)";
|
|
||||||
" c = Block messages containing mIRC color codes [o]";
|
" c = Block messages containing mIRC color codes [o]";
|
||||||
" C = No CTCPs allowed in the channel [o]";
|
|
||||||
" e <nick!ident@host> = Overrides a ban for matching users [h]";
|
" e <nick!ident@host> = Overrides a ban for matching users [h]";
|
||||||
" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
|
|
||||||
" G = Filters out all Bad words in messages with <censored> [o]";
|
|
||||||
" i = A user must be invited to join the channel [h]";
|
|
||||||
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
||||||
|
" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
|
||||||
|
" i = A user must be invited to join the channel [h]";
|
||||||
" j <joins:sec> = Throttle joins per-user to 'joins' per 'sec' seconds [o]";
|
" j <joins:sec> = Throttle joins per-user to 'joins' per 'sec' seconds [o]";
|
||||||
" k <key> = Users must specify <key> to join [h]";
|
" k <key> = Users must specify <key> to join [h]";
|
||||||
" K = /KNOCK is not allowed [o]";
|
|
||||||
" L <chan2> = Channel link (If +l is full, the next user will auto-join <chan2>) [q]";
|
|
||||||
" l <number of max users> = Channel may hold at most <number> of users [o]";
|
" l <number of max users> = Channel may hold at most <number> of users [o]";
|
||||||
" m = Moderated channel (only +vhoaq users may speak) [h]";
|
" m = Moderated channel (only +vhoaq users may speak) [h]";
|
||||||
" M = Must be using a registered nick (+r), or have voice access to talk [o]";
|
|
||||||
" N = No Nickname changes are permitted in the channel [o]";
|
|
||||||
" n = Users outside the channel can not send PRIVMSGs to the channel [h]";
|
" n = Users outside the channel can not send PRIVMSGs to the channel [h]";
|
||||||
" O = IRC Operator only channel (settable by IRCops)";
|
|
||||||
" p = Private channel [o]";
|
" p = Private channel [o]";
|
||||||
" Q = No kicks allowed [o]";
|
|
||||||
" R = Only registered (+r) users may join the channel [o]";
|
|
||||||
" r = The channel is registered (settable by services only)";
|
" r = The channel is registered (settable by services only)";
|
||||||
" s = Secret channel [o]";
|
" s = Secret channel [o]";
|
||||||
|
" t = Only +hoaq may change the topic [h]";
|
||||||
|
" z = Only Clients on a Secure Connection (SSL) can join [o]";
|
||||||
|
" A = Server/Net Admin only channel (settable by Admins)";
|
||||||
|
" C = No CTCPs allowed in the channel [o]";
|
||||||
|
" G = Filters out all Bad words in messages with <censored> [o]";
|
||||||
|
" M = Must be using a registered nick (+r), or have voice access to talk [o]";
|
||||||
|
" K = /KNOCK is not allowed [o]";
|
||||||
|
" L <chan2> = Channel link (If +l is full, the next user will auto-join <chan2>) [q]";
|
||||||
|
" N = No Nickname changes are permitted in the channel [o]";
|
||||||
|
" O = IRC Operator only channel (settable by IRCops)";
|
||||||
|
" Q = No kicks allowed [o]";
|
||||||
|
" R = Only registered (+r) users may join the channel [o]";
|
||||||
" S = Strips mIRC color codes [o]";
|
" S = Strips mIRC color codes [o]";
|
||||||
" T = No NOTICEs allowed in the channel [o]";
|
" T = No NOTICEs allowed in the channel [o]";
|
||||||
" t = Only +hoaq may change the topic [h]";
|
|
||||||
" u = Auditorium mode (/names and /who #channel only show channel ops) [q]";
|
|
||||||
" V = /INVITE is not allowed [o]";
|
" V = /INVITE is not allowed [o]";
|
||||||
" z = Only Clients on a Secure Connection (SSL) can join [o]";
|
" u = Auditorium mode (/names and /who #channel only show channel ops) [q]";
|
||||||
" Z = All users on the channel are on a Secure connection (SSL) [server]";
|
|
||||||
" (This mode is set/unset by the server. Only if the channel is also +z)";
|
|
||||||
" -";
|
" -";
|
||||||
" [h] requires at least halfop, [o] requires at least chanop, [q] requires owner";
|
" [h] requires at least halfop, [o] requires at least chanop, [q] requires owner";
|
||||||
" ==------------------------------oOo----------------------------==";
|
" ==------------------------------oOo----------------------------==";
|
||||||
};
|
};
|
||||||
|
|
||||||
help ExtBans {
|
help ExtBans {
|
||||||
" These bans let you ban based on things other than the traditional nick!user@host";
|
" Extended bantypes: ";
|
||||||
" mask. They also provide support for things like ``quieting'' users (on other IRCds";
|
|
||||||
" you might do +q <hostmask>, on UnrealIRCd use +b ~q:<hostmask>).";
|
|
||||||
" -";
|
" -";
|
||||||
" These bantypes specify which actions are affected by a ban:";
|
|
||||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||||
" | | People matching these bans can join but are unable to ";
|
" | | People matching these bans can join but are unable to ";
|
||||||
" ~q | quiet | speak, unless they have +v or higher. ";
|
" ~q | Quiet | speak, unless they have +v or higher. ";
|
||||||
" | | Example: ";
|
" | | Example: ";
|
||||||
" | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* ";
|
" | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* ";
|
||||||
"-----------------------------------------------------------------------------------";
|
"-----------------------------------------------------------------------------------";
|
||||||
@@ -215,15 +209,8 @@ help ExtBans {
|
|||||||
" | | Example: ";
|
" | | Example: ";
|
||||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||||
"-----------------------------------------------------------------------------------";
|
"-----------------------------------------------------------------------------------";
|
||||||
" | | If a user matches this, he may not join the channel. ";
|
|
||||||
" ~j | join | He may perform all other activities if he is already on ";
|
|
||||||
" | | the channel, such as speaking and changing his nick. ";
|
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" -";
|
|
||||||
" These bantypes introduce new criteria which can be used:";
|
|
||||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
|
||||||
" | | If the user is in this channel then (s)he is unable to ";
|
" | | If the user is in this channel then (s)he is unable to ";
|
||||||
" | | join. A prefix can also be specified (+/%/@/&/~) which ";
|
" | [prefix] | join. A prefix can also be specified (+/%/@/&/~) which ";
|
||||||
" ~c | channel | means that it will only match if the user has that ";
|
" ~c | channel | means that it will only match if the user has that ";
|
||||||
" | | rights or higher on the specified channel. ";
|
" | | rights or higher on the specified channel. ";
|
||||||
" | | Example: +b ~c:#lamers, +e ~c:@#trusted ";
|
" | | Example: +b ~c:#lamers, +e ~c:@#trusted ";
|
||||||
@@ -234,28 +221,7 @@ help ExtBans {
|
|||||||
" | | NOTE: an underscore ('_') matches both a space (' ') and";
|
" | | NOTE: an underscore ('_') matches both a space (' ') and";
|
||||||
" | | an underscore ('_'), so this ban would ";
|
" | | an underscore ('_'), so this ban would ";
|
||||||
" | | match 'Stupid bot script v1.4'. ";
|
" | | match 'Stupid bot script v1.4'. ";
|
||||||
"-----------------------------------------------------------------------------------";
|
|
||||||
" | | If a user has identified to services (usually NickServ) ";
|
|
||||||
" | | and matches this nickname, then this ban will match. ";
|
|
||||||
" | | This means this ban is really only useful for ban ";
|
|
||||||
" ~R | registered | exemptions (+e). Example: +e ~R:Nick ";
|
|
||||||
" | | Will allow Nick in the channel, regardless of other ";
|
|
||||||
" | | bans, if he identified to NickServ and is using the ";
|
|
||||||
" | | nickname Nick. ";
|
|
||||||
" ----------------------------------------------------------------------------------";
|
|
||||||
" | | If a user is logged in to services with this account ";
|
|
||||||
" | | name, then this ban will match. ";
|
|
||||||
" | | This is slightly different than ~R, in the sense that ";
|
|
||||||
" ~a | account | a user with nick ABC may be logged in under account XYZ.";
|
|
||||||
" | | Not all services packages support this, in which case ";
|
|
||||||
" | | you will have to use ~R instead. ";
|
|
||||||
" | | Example: +e ~a:Name ";
|
|
||||||
" ==------------------------------------------------------------------------------==";
|
" ==------------------------------------------------------------------------------==";
|
||||||
" -";
|
|
||||||
"You may stack extended bans from the first group with the second group.";
|
|
||||||
"For example +b ~q:~c:#lamers would quiet all users who have joined #lamers.";
|
|
||||||
"Bans from the second group may also be used for invite exceptions (+I),";
|
|
||||||
"such as +I ~c:#trusted and +I ~a:accountname.";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Chmodef {
|
help Chmodef {
|
||||||
@@ -923,22 +889,19 @@ help Rehash {
|
|||||||
" Prompts the server to reread the configuration files.";
|
" Prompts the server to reread the configuration files.";
|
||||||
" IRC Operator only command.";
|
" IRC Operator only command.";
|
||||||
" -";
|
" -";
|
||||||
" Syntax: REHASH <servername> [flag]";
|
" Syntax: REHASH <servername> -<flags>";
|
||||||
" REHASH -global [flag]";
|
" REHASH -<flags>";
|
||||||
" REHASH [flag]";
|
|
||||||
" -";
|
" -";
|
||||||
" If servername and flag are not specified this rehashes the";
|
" If servername and flags are not specified this rehashes the";
|
||||||
" unrealircd.conf, and re-reads all MOTD, BOTMOTD, OPERMOTD and RULES files.";
|
" unrealircd.conf , removing any temporary k:lines.";
|
||||||
" If servername is specified, this is used to rehash the remote server.";
|
" If servername is specified, this is used to rehash config files on servername.";
|
||||||
" If -global is specified, then all servers on the network are rehashed.";
|
" Only NetAdmins may specify a server name.";
|
||||||
" Only NetAdmins may specify a server name and use -global.";
|
|
||||||
" -";
|
" -";
|
||||||
" The flags are used to rehash other config files, valid flags are:";
|
" The flags are used to rehash other config files, valid flags are:";
|
||||||
" -dns - Reinitializes and reloads the resolver";
|
" -motd - Rehashes all MOTD files and RULES files (including tld{})";
|
||||||
|
" -opermotd - Rehashes the OPERMOTD";
|
||||||
|
" -botmotd - Rehashes the BOTMOTD";
|
||||||
" -garbage - Force garbage collection";
|
" -garbage - Force garbage collection";
|
||||||
" -motd - Only re-read all MOTD, BOTMOTD, OPERMOTD and RULES files";
|
|
||||||
" (including those in tld{} blocks)";
|
|
||||||
" -ssl - Reloads SSL certificates";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
help Restart {
|
help Restart {
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ typedef struct {
|
|||||||
#define AUTHTYPE_SHA1 3
|
#define AUTHTYPE_SHA1 3
|
||||||
#define AUTHTYPE_SSL_CLIENTCERT 4
|
#define AUTHTYPE_SSL_CLIENTCERT 4
|
||||||
#define AUTHTYPE_RIPEMD160 5
|
#define AUTHTYPE_RIPEMD160 5
|
||||||
#define AUTHTYPE_SSL_CLIENTCERTFP 6
|
|
||||||
|
|
||||||
/* md5 is always available and enabled as of Unreal3.2.1 */
|
/* md5 is always available and enabled as of Unreal3.2.1 */
|
||||||
#define AUTHENABLE_MD5
|
#define AUTHENABLE_MD5
|
||||||
@@ -38,7 +37,6 @@ typedef struct {
|
|||||||
#define AUTHENABLE_SHA1
|
#define AUTHENABLE_SHA1
|
||||||
#define AUTHENABLE_SSL_CLIENTCERT
|
#define AUTHENABLE_SSL_CLIENTCERT
|
||||||
#define AUTHENABLE_RIPEMD160
|
#define AUTHENABLE_RIPEMD160
|
||||||
#define AUTHENABLE_SSL_CLIENTCERTFP
|
|
||||||
/* OpenSSL provides a crypt() */
|
/* OpenSSL provides a crypt() */
|
||||||
#ifndef AUTHENABLE_UNIXCRYPT
|
#ifndef AUTHENABLE_UNIXCRYPT
|
||||||
#define AUTHENABLE_UNIXCRYPT
|
#define AUTHENABLE_UNIXCRYPT
|
||||||
|
|||||||
@@ -5,7 +5,11 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifndef _WIN32
|
||||||
#include "tre/regex.h"
|
#include "tre/regex.h"
|
||||||
|
#else
|
||||||
|
#include "win32/regex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MAX_MATCH 1
|
#define MAX_MATCH 1
|
||||||
#define MAX_WORDLEN 64
|
#define MAX_WORDLEN 64
|
||||||
|
|||||||
+2
-4
@@ -265,8 +265,7 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
|||||||
|
|
||||||
|
|
||||||
/* Server-Server PROTOCTL -Stskeeps
|
/* Server-Server PROTOCTL -Stskeeps
|
||||||
* This is the FIRST line only, please check send_proto() for more. -- Syzop
|
* Please check send_proto() for more. -- Syzop
|
||||||
* Also take MAXPARA into account !
|
|
||||||
*/
|
*/
|
||||||
#define PROTOCTL_SERVER "NOQUIT" \
|
#define PROTOCTL_SERVER "NOQUIT" \
|
||||||
" TOKEN" \
|
" TOKEN" \
|
||||||
@@ -279,8 +278,7 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
|||||||
" NS" \
|
" NS" \
|
||||||
" SJB64" \
|
" SJB64" \
|
||||||
" TKLEXT" \
|
" TKLEXT" \
|
||||||
" NICKIP" \
|
" NICKIP"
|
||||||
" ESVID"
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/*
|
/*
|
||||||
|
|||||||
+2
-34
@@ -70,16 +70,6 @@
|
|||||||
|
|
||||||
#undef NO_FDLIST
|
#undef NO_FDLIST
|
||||||
|
|
||||||
/*
|
|
||||||
* Defining this will enable poll() usage instead of select().
|
|
||||||
* This is the default on *NIX as of 3.2.10.
|
|
||||||
* On Windows this would require Vista or newer so we stick with
|
|
||||||
* select for now.
|
|
||||||
*/
|
|
||||||
#ifndef _WIN32
|
|
||||||
#define USE_POLL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defining this will allow all ircops to see people in +s channels
|
* Defining this will allow all ircops to see people in +s channels
|
||||||
* By default, only net/tech admins can see this
|
* By default, only net/tech admins can see this
|
||||||
@@ -109,24 +99,6 @@
|
|||||||
*/
|
*/
|
||||||
#define REMOTE_REHASH
|
#define REMOTE_REHASH
|
||||||
|
|
||||||
/*
|
|
||||||
* Special remote include caching, see this Changelog item:
|
|
||||||
* - Added special caching of remote includes. When a remote include fails to
|
|
||||||
* load (for example when the webserver is down), then the most recent
|
|
||||||
* version of that remote include will be used, and the ircd will still boot
|
|
||||||
* and be able to rehash. Even though this is quite a simple feature, it
|
|
||||||
* can make a key difference when deciding to roll out remote includes on
|
|
||||||
* your network. Previously, servers would be unable to boot or rehash when
|
|
||||||
* the webserver was down, which would be a big problem (often unacceptable).
|
|
||||||
* The latest version of fetched urls are cached in the cache/ directory as
|
|
||||||
* cache/<md5 hash of url>.
|
|
||||||
* Obviously, if there's no 'latest version' and an url fails, the ircd will
|
|
||||||
* still not be able to boot. This would be the case if you added or changed
|
|
||||||
* the path of a remote include and it's trying to fetch it for the first time.
|
|
||||||
* There usually is no reason to disable this.
|
|
||||||
*/
|
|
||||||
#define REMOTEINC_SPECIALCACHE
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Stripbadwords patch
|
Stripbadwords patch
|
||||||
*/
|
*/
|
||||||
@@ -235,12 +207,8 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Full pathnames and defaults of irc system's support files. Please note that
|
* Full pathnames and defaults of irc system's support files. Please note that
|
||||||
* these are only the recommened names and paths. You must define PPATH if you
|
* these are only the recommened names and paths. Change as needed.
|
||||||
* want a pidfile written. Also, IRCDTUNE should be defined because it is needed for
|
* You must define these to something, even if you don't really want them.
|
||||||
* operation. All of these options are runtime-configurable (except for CPATH and LPATH)
|
|
||||||
* in the files block of unrealircd.conf. CPATH is runtime-configurable as a command-
|
|
||||||
* line argument. These used as the default values for options absent from the user's
|
|
||||||
* unrealircd.conf.
|
|
||||||
*/
|
*/
|
||||||
#define CPATH "unrealircd.conf" /* server configuration file */
|
#define CPATH "unrealircd.conf" /* server configuration file */
|
||||||
#define MPATH "ircd.motd" /* server MOTD file */
|
#define MPATH "ircd.motd" /* server MOTD file */
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ struct zNetwork {
|
|||||||
char *x_prefix_quit;
|
char *x_prefix_quit;
|
||||||
char *x_helpchan;
|
char *x_helpchan;
|
||||||
char *x_stats_server;
|
char *x_stats_server;
|
||||||
char *x_sasl_server;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum UHAllowed { UHALLOW_ALWAYS, UHALLOW_NOCHANS, UHALLOW_REJOIN, UHALLOW_NEVER };
|
enum UHAllowed { UHALLOW_ALWAYS, UHALLOW_NOCHANS, UHALLOW_REJOIN, UHALLOW_NEVER };
|
||||||
@@ -81,9 +80,7 @@ struct zConfiguration {
|
|||||||
unsigned dont_resolve:1;
|
unsigned dont_resolve:1;
|
||||||
unsigned use_ban_version:1;
|
unsigned use_ban_version:1;
|
||||||
unsigned mkpasswd_for_everyone:1;
|
unsigned mkpasswd_for_everyone:1;
|
||||||
unsigned allow_insane_bans;
|
|
||||||
unsigned allow_part_if_shunned:1;
|
unsigned allow_part_if_shunned:1;
|
||||||
unsigned disable_cap:1;
|
|
||||||
unsigned check_target_nick_bans:1;
|
unsigned check_target_nick_bans:1;
|
||||||
unsigned use_egd : 1;
|
unsigned use_egd : 1;
|
||||||
long host_timeout;
|
long host_timeout;
|
||||||
@@ -128,7 +125,6 @@ struct zConfiguration {
|
|||||||
char *restrict_usermodes;
|
char *restrict_usermodes;
|
||||||
char *restrict_channelmodes;
|
char *restrict_channelmodes;
|
||||||
char *restrict_extendedbans;
|
char *restrict_extendedbans;
|
||||||
int new_linking_protocol;
|
|
||||||
char *channel_command_prefix;
|
char *channel_command_prefix;
|
||||||
long unknown_flood_bantime;
|
long unknown_flood_bantime;
|
||||||
long unknown_flood_amount;
|
long unknown_flood_amount;
|
||||||
@@ -158,7 +154,6 @@ struct zConfiguration {
|
|||||||
char *spamexcept_line;
|
char *spamexcept_line;
|
||||||
long spamfilter_detectslow_warn;
|
long spamfilter_detectslow_warn;
|
||||||
long spamfilter_detectslow_fatal;
|
long spamfilter_detectslow_fatal;
|
||||||
int spamfilter_stop_on_first_match;
|
|
||||||
int maxbans;
|
int maxbans;
|
||||||
int maxbanlength;
|
int maxbanlength;
|
||||||
int timesynch_enabled;
|
int timesynch_enabled;
|
||||||
@@ -166,12 +161,7 @@ struct zConfiguration {
|
|||||||
char *timesynch_server;
|
char *timesynch_server;
|
||||||
int pingpong_warning;
|
int pingpong_warning;
|
||||||
int watch_away_notification;
|
int watch_away_notification;
|
||||||
int uhnames;
|
|
||||||
aNetwork network;
|
aNetwork network;
|
||||||
#ifdef INET6
|
|
||||||
unsigned short default_ipv6_clone_mask;
|
|
||||||
#endif /* INET6 */
|
|
||||||
int ping_cookie;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef DYNCONF_C
|
#ifndef DYNCONF_C
|
||||||
@@ -204,11 +194,7 @@ extern MODVAR aConfiguration iConf;
|
|||||||
#define SHOWCONNECTINFO iConf.show_connect_info
|
#define SHOWCONNECTINFO iConf.show_connect_info
|
||||||
#define OPER_ONLY_STATS iConf.oper_only_stats
|
#define OPER_ONLY_STATS iConf.oper_only_stats
|
||||||
#define ANTI_SPAM_QUIT_MSG_TIME iConf.anti_spam_quit_message_time
|
#define ANTI_SPAM_QUIT_MSG_TIME iConf.anti_spam_quit_message_time
|
||||||
#ifdef HAVE_RAND_EGD
|
|
||||||
#define USE_EGD iConf.use_egd
|
#define USE_EGD iConf.use_egd
|
||||||
#else
|
|
||||||
#define USE_EGD 0
|
|
||||||
#endif
|
|
||||||
#define EGD_PATH iConf.egd_path
|
#define EGD_PATH iConf.egd_path
|
||||||
|
|
||||||
#define ircnetwork iConf.network.x_ircnetwork
|
#define ircnetwork iConf.network.x_ircnetwork
|
||||||
@@ -225,7 +211,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
#define hidden_host iConf.network.x_hidden_host
|
#define hidden_host iConf.network.x_hidden_host
|
||||||
#define helpchan iConf.network.x_helpchan
|
#define helpchan iConf.network.x_helpchan
|
||||||
#define STATS_SERVER iConf.network.x_stats_server
|
#define STATS_SERVER iConf.network.x_stats_server
|
||||||
#define SASL_SERVER iConf.network.x_sasl_server
|
|
||||||
#define iNAH iConf.network.x_inah
|
#define iNAH iConf.network.x_inah
|
||||||
#define prefix_quit iConf.network.x_prefix_quit
|
#define prefix_quit iConf.network.x_prefix_quit
|
||||||
#define SSL_SERVER_CERT_PEM (iConf.x_server_cert_pem ? iConf.x_server_cert_pem : "server.cert.pem")
|
#define SSL_SERVER_CERT_PEM (iConf.x_server_cert_pem ? iConf.x_server_cert_pem : "server.cert.pem")
|
||||||
@@ -237,7 +222,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
#define RESTRICT_USERMODES iConf.restrict_usermodes
|
#define RESTRICT_USERMODES iConf.restrict_usermodes
|
||||||
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
|
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
|
||||||
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
|
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
|
||||||
#define NEW_LINKING_PROTOCOL iConf.new_linking_protocol
|
|
||||||
#ifdef THROTTLING
|
#ifdef THROTTLING
|
||||||
#define THROTTLING_PERIOD iConf.throttle_period
|
#define THROTTLING_PERIOD iConf.throttle_period
|
||||||
#define THROTTLING_COUNT iConf.throttle_count
|
#define THROTTLING_COUNT iConf.throttle_count
|
||||||
@@ -259,7 +243,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
#define IDENT_READ_TIMEOUT iConf.ident_read_timeout
|
#define IDENT_READ_TIMEOUT iConf.ident_read_timeout
|
||||||
|
|
||||||
#define MKPASSWD_FOR_EVERYONE iConf.mkpasswd_for_everyone
|
#define MKPASSWD_FOR_EVERYONE iConf.mkpasswd_for_everyone
|
||||||
#define ALLOW_INSANE_BANS iConf.allow_insane_bans
|
|
||||||
#define CHANCMDPFX iConf.channel_command_prefix
|
#define CHANCMDPFX iConf.channel_command_prefix
|
||||||
|
|
||||||
#define DEFAULT_BANTIME iConf.default_bantime
|
#define DEFAULT_BANTIME iConf.default_bantime
|
||||||
@@ -272,8 +255,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
|
|
||||||
#define ALLOW_PART_IF_SHUNNED iConf.allow_part_if_shunned
|
#define ALLOW_PART_IF_SHUNNED iConf.allow_part_if_shunned
|
||||||
|
|
||||||
#define DISABLE_CAP iConf.disable_cap
|
|
||||||
|
|
||||||
#define BAN_VERSION_TKL_TIME iConf.ban_version_tkl_time
|
#define BAN_VERSION_TKL_TIME iConf.ban_version_tkl_time
|
||||||
#define SILENCE_LIMIT (iConf.silence_limit ? iConf.silence_limit : 15)
|
#define SILENCE_LIMIT (iConf.silence_limit ? iConf.silence_limit : 15)
|
||||||
|
|
||||||
@@ -284,7 +265,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
||||||
#define SPAMFILTER_DETECTSLOW_WARN iConf.spamfilter_detectslow_warn
|
#define SPAMFILTER_DETECTSLOW_WARN iConf.spamfilter_detectslow_warn
|
||||||
#define SPAMFILTER_DETECTSLOW_FATAL iConf.spamfilter_detectslow_fatal
|
#define SPAMFILTER_DETECTSLOW_FATAL iConf.spamfilter_detectslow_fatal
|
||||||
#define SPAMFILTER_STOP_ON_FIRST_MATCH iConf.spamfilter_stop_on_first_match
|
|
||||||
|
|
||||||
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
||||||
|
|
||||||
@@ -299,8 +279,6 @@ extern MODVAR aConfiguration iConf;
|
|||||||
|
|
||||||
#define WATCH_AWAY_NOTIFICATION iConf.watch_away_notification
|
#define WATCH_AWAY_NOTIFICATION iConf.watch_away_notification
|
||||||
|
|
||||||
#define UHNAMES_ENABLED iConf.uhnames
|
|
||||||
|
|
||||||
/* Used for "is present?" and duplicate checking */
|
/* Used for "is present?" and duplicate checking */
|
||||||
struct SetCheck {
|
struct SetCheck {
|
||||||
unsigned has_show_opermotd:1;
|
unsigned has_show_opermotd:1;
|
||||||
@@ -315,7 +293,6 @@ struct SetCheck {
|
|||||||
unsigned has_dont_resolve:1;
|
unsigned has_dont_resolve:1;
|
||||||
unsigned has_mkpasswd_for_everyone:1;
|
unsigned has_mkpasswd_for_everyone:1;
|
||||||
unsigned has_allow_part_if_shunned:1;
|
unsigned has_allow_part_if_shunned:1;
|
||||||
unsigned has_disable_cap:1;
|
|
||||||
unsigned has_ssl_egd:1;
|
unsigned has_ssl_egd:1;
|
||||||
unsigned has_ssl_server_cipher_list :1;
|
unsigned has_ssl_server_cipher_list :1;
|
||||||
unsigned has_dns_timeout:1;
|
unsigned has_dns_timeout:1;
|
||||||
@@ -337,7 +314,6 @@ struct SetCheck {
|
|||||||
unsigned has_check_target_nick_bans:1;
|
unsigned has_check_target_nick_bans:1;
|
||||||
unsigned has_pingpong_warning:1;
|
unsigned has_pingpong_warning:1;
|
||||||
unsigned has_watch_away_notification:1;
|
unsigned has_watch_away_notification:1;
|
||||||
unsigned has_uhnames:1;
|
|
||||||
unsigned has_oper_only_stats:1;
|
unsigned has_oper_only_stats:1;
|
||||||
unsigned has_maxchannelsperuser:1;
|
unsigned has_maxchannelsperuser:1;
|
||||||
unsigned has_maxdccallow:1;
|
unsigned has_maxdccallow:1;
|
||||||
@@ -357,7 +333,6 @@ struct SetCheck {
|
|||||||
unsigned has_restrict_usermodes:1;
|
unsigned has_restrict_usermodes:1;
|
||||||
unsigned has_restrict_channelmodes:1;
|
unsigned has_restrict_channelmodes:1;
|
||||||
unsigned has_restrict_extendedbans:1;
|
unsigned has_restrict_extendedbans:1;
|
||||||
unsigned has_new_linking_protocol:1;
|
|
||||||
unsigned has_channel_command_prefix:1;
|
unsigned has_channel_command_prefix:1;
|
||||||
unsigned has_anti_flood_unknown_flood_bantime:1;
|
unsigned has_anti_flood_unknown_flood_bantime:1;
|
||||||
unsigned has_anti_flood_unknown_flood_amount:1;
|
unsigned has_anti_flood_unknown_flood_amount:1;
|
||||||
@@ -389,7 +364,6 @@ struct SetCheck {
|
|||||||
unsigned has_network_name:1;
|
unsigned has_network_name:1;
|
||||||
unsigned has_default_server:1;
|
unsigned has_default_server:1;
|
||||||
unsigned has_services_server:1;
|
unsigned has_services_server:1;
|
||||||
unsigned has_sasl_server:1;
|
|
||||||
unsigned has_hosts_global:1;
|
unsigned has_hosts_global:1;
|
||||||
unsigned has_hosts_admin:1;
|
unsigned has_hosts_admin:1;
|
||||||
unsigned has_hosts_local:1;
|
unsigned has_hosts_local:1;
|
||||||
@@ -410,13 +384,10 @@ struct SetCheck {
|
|||||||
unsigned has_options_dont_resolve:1;
|
unsigned has_options_dont_resolve:1;
|
||||||
unsigned has_options_show_connect_info:1;
|
unsigned has_options_show_connect_info:1;
|
||||||
unsigned has_options_mkpasswd_for_everyone:1;
|
unsigned has_options_mkpasswd_for_everyone:1;
|
||||||
unsigned has_options_allow_insane_bans:1;
|
|
||||||
unsigned has_options_allow_part_if_shunned:1;
|
unsigned has_options_allow_part_if_shunned:1;
|
||||||
unsigned has_options_disable_cap:1;
|
|
||||||
int cgiirc_type; /* cheat :( */
|
int cgiirc_type; /* cheat :( */
|
||||||
unsigned has_cgiirc_hosts:1;
|
unsigned has_cgiirc_hosts:1;
|
||||||
unsigned has_cgiirc_webpass:1;
|
unsigned has_cgiirc_webpass:1;
|
||||||
unsigned has_ping_cookie:1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+17
-44
@@ -73,7 +73,6 @@ extern MODVAR long lastsendK, lastrecvK;
|
|||||||
* Configuration linked lists
|
* Configuration linked lists
|
||||||
*/
|
*/
|
||||||
extern MODVAR ConfigItem_me *conf_me;
|
extern MODVAR ConfigItem_me *conf_me;
|
||||||
extern MODVAR ConfigItem_files *conf_files;
|
|
||||||
extern MODVAR ConfigItem_class *conf_class;
|
extern MODVAR ConfigItem_class *conf_class;
|
||||||
extern MODVAR ConfigItem_class *default_class;
|
extern MODVAR ConfigItem_class *default_class;
|
||||||
extern MODVAR ConfigItem_admin *conf_admin;
|
extern MODVAR ConfigItem_admin *conf_admin;
|
||||||
@@ -130,16 +129,14 @@ ConfigItem_cgiirc *Find_cgiirc(char *username, char *hostname, char *ip, CGIIRCT
|
|||||||
ConfigItem_ban *Find_ban(aClient *, char *host, short type);
|
ConfigItem_ban *Find_ban(aClient *, char *host, short type);
|
||||||
ConfigItem_ban *Find_banEx(aClient *,char *host, short type, short type2);
|
ConfigItem_ban *Find_banEx(aClient *,char *host, short type, short type2);
|
||||||
ConfigItem_vhost *Find_vhost(char *name);
|
ConfigItem_vhost *Find_vhost(char *name);
|
||||||
ConfigItem_deny_channel *Find_channel_allowed(aClient *cptr, char *name);
|
ConfigItem_deny_channel *Find_channel_allowed(char *name);
|
||||||
ConfigItem_alias *Find_alias(char *name);
|
ConfigItem_alias *Find_alias(char *name);
|
||||||
ConfigItem_help *Find_Help(char *command);
|
ConfigItem_help *Find_Help(char *command);
|
||||||
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
|
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
|
||||||
int parse_netmask(const char *text, struct irc_netmask *netmask);
|
int parse_netmask(const char *text, struct irc_netmask *netmask);
|
||||||
int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask);
|
int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask);
|
||||||
#ifdef INET6
|
|
||||||
int match_ipv6(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits);
|
|
||||||
#endif
|
|
||||||
ConfigItem_ban *Find_ban_ip(aClient *sptr);
|
ConfigItem_ban *Find_ban_ip(aClient *sptr);
|
||||||
|
extern MODVAR struct tm motd_tm, smotd_tm;
|
||||||
extern MODVAR Link *Servers;
|
extern MODVAR Link *Servers;
|
||||||
void add_ListItem(ListStruct *, ListStruct **);
|
void add_ListItem(ListStruct *, ListStruct **);
|
||||||
ListStruct *del_ListItem(ListStruct *, ListStruct **);
|
ListStruct *del_ListItem(ListStruct *, ListStruct **);
|
||||||
@@ -167,7 +164,7 @@ extern MODVAR int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
|
|||||||
R_do_id, R_fin_id, R_fail_id;
|
R_do_id, R_fin_id, R_fail_id;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
extern aCommand *find_Command(char *cmd, short token, int flags);
|
extern inline aCommand *find_Command(char *cmd, short token, int flags);
|
||||||
extern aCommand *find_Command_simple(char *cmd);
|
extern aCommand *find_Command_simple(char *cmd);
|
||||||
extern aChannel *find_channel(char *, aChannel *);
|
extern aChannel *find_channel(char *, aChannel *);
|
||||||
extern Membership *find_membership_link(Membership *lp, aChannel *ptr);
|
extern Membership *find_membership_link(Membership *lp, aChannel *ptr);
|
||||||
@@ -193,11 +190,6 @@ extern long get_access(aClient *, aChannel *);
|
|||||||
extern int is_chan_op(aClient *, aChannel *);
|
extern int is_chan_op(aClient *, aChannel *);
|
||||||
extern int has_voice(aClient *, aChannel *);
|
extern int has_voice(aClient *, aChannel *);
|
||||||
extern int is_chanowner(aClient *, aChannel *);
|
extern int is_chanowner(aClient *, aChannel *);
|
||||||
#ifndef DISABLE_EXTBAN_STACKING
|
|
||||||
extern int ban_check_mask(aClient *, aChannel *, char *, int, int);
|
|
||||||
extern int extban_is_ok_nuh_extban(aClient *, aChannel *, char *, int, int, int);
|
|
||||||
extern char* extban_conv_param_nuh_or_extban(char *);
|
|
||||||
#endif
|
|
||||||
extern Ban *is_banned(aClient *, aChannel *, int);
|
extern Ban *is_banned(aClient *, aChannel *, int);
|
||||||
extern Ban *is_banned_with_nick(aClient *, aChannel *, int, char *);
|
extern Ban *is_banned_with_nick(aClient *, aChannel *, int, char *);
|
||||||
extern int parse_help(aClient *, char *, char *);
|
extern int parse_help(aClient *, char *, char *);
|
||||||
@@ -258,7 +250,6 @@ extern int get_sockerr(aClient *);
|
|||||||
extern int inetport(aClient *, char *, int);
|
extern int inetport(aClient *, char *, int);
|
||||||
extern void init_sys();
|
extern void init_sys();
|
||||||
extern void init_modef();
|
extern void init_modef();
|
||||||
extern int verify_hostname(char *name);
|
|
||||||
|
|
||||||
#ifdef NO_FDLIST
|
#ifdef NO_FDLIST
|
||||||
extern int read_message(time_t);
|
extern int read_message(time_t);
|
||||||
@@ -274,7 +265,6 @@ extern void start_auth(aClient *);
|
|||||||
extern void read_authports(aClient *);
|
extern void read_authports(aClient *);
|
||||||
extern void send_authports(aClient *);
|
extern void send_authports(aClient *);
|
||||||
|
|
||||||
extern void set_channel_mlock(aClient *, aClient *, aChannel *, const char *, int);
|
|
||||||
|
|
||||||
extern void restart(char *);
|
extern void restart(char *);
|
||||||
extern void server_reboot(char *);
|
extern void server_reboot(char *);
|
||||||
@@ -286,7 +276,7 @@ extern int send_queued(aClient *);
|
|||||||
extern void sendto_locfailops(char *pattern, ...) __attribute__((format(printf,1,2)));
|
extern void sendto_locfailops(char *pattern, ...) __attribute__((format(printf,1,2)));
|
||||||
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
|
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
|
||||||
extern void sendto_serv_butone_nickcmd(aClient *one, aClient *sptr, char *nick, int hopcount,
|
extern void sendto_serv_butone_nickcmd(aClient *one, aClient *sptr, char *nick, int hopcount,
|
||||||
long lastnick, char *username, char *realhost, char *server, char *svid, char *info, char *umodes,
|
long lastnick, char *username, char *realhost, char *server, long servicestamp, char *info, char *umodes,
|
||||||
char *virthost);
|
char *virthost);
|
||||||
extern void sendto_message_one(aClient *to, aClient *from, char *sender,
|
extern void sendto_message_one(aClient *to, aClient *from, char *sender,
|
||||||
char *cmd, char *nick, char *msg);
|
char *cmd, char *nick, char *msg);
|
||||||
@@ -309,7 +299,6 @@ extern void sendto_serv_butone_quit(aClient *, char *, ...) __attribute__((forma
|
|||||||
extern void sendto_serv_butone_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
extern void sendto_serv_butone_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||||
extern void sendto_serv_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
extern void sendto_serv_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||||
extern void sendto_common_channels(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
extern void sendto_common_channels(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||||
extern void sendto_common_channels_local_butone(aClient *, int, char *, ...) __attribute__((format(printf,3,4)));
|
|
||||||
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||||
extern void sendto_match_servs(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
extern void sendto_match_servs(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||||
extern void sendto_match_butone(aClient *, aClient *, char *, int,
|
extern void sendto_match_butone(aClient *, aClient *, char *, int,
|
||||||
@@ -345,7 +334,7 @@ extern int exit_client(aClient *, aClient *, aClient *, char *);
|
|||||||
extern void initstats(), tstats(aClient *, char *);
|
extern void initstats(), tstats(aClient *, char *);
|
||||||
extern char *check_string(char *);
|
extern char *check_string(char *);
|
||||||
extern char *make_nick_user_host(char *, char *, char *);
|
extern char *make_nick_user_host(char *, char *, char *);
|
||||||
extern char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
extern inline char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
||||||
extern char *make_user_host(char *, char *);
|
extern char *make_user_host(char *, char *);
|
||||||
extern int parse(aClient *, char *, char *);
|
extern int parse(aClient *, char *, char *);
|
||||||
extern int do_numeric(int, aClient *, aClient *, int, char **);
|
extern int do_numeric(int, aClient *, aClient *, int, char **);
|
||||||
@@ -448,7 +437,6 @@ extern MODVAR long UMODE_SETHOST; /* 0x40000000 used sethost */
|
|||||||
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
|
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
|
||||||
extern MODVAR long UMODE_HIDEWHOIS; /* hides channels in /whois */
|
extern MODVAR long UMODE_HIDEWHOIS; /* hides channels in /whois */
|
||||||
extern MODVAR long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
|
extern MODVAR long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
|
||||||
extern MODVAR long UMODE_HIDLE; /* hides oper idle times */
|
|
||||||
extern MODVAR long AllUmodes, SendUmodes;
|
extern MODVAR long AllUmodes, SendUmodes;
|
||||||
|
|
||||||
extern MODVAR long SNO_KILLS;
|
extern MODVAR long SNO_KILLS;
|
||||||
@@ -553,7 +541,6 @@ extern int Auth_CheckError(ConfigEntry *ce);
|
|||||||
extern long xbase64dec(char *b64);
|
extern long xbase64dec(char *b64);
|
||||||
extern aClient *find_server_b64_or_real(char *name);
|
extern aClient *find_server_b64_or_real(char *name);
|
||||||
extern aClient *find_server_by_base64(char *b64);
|
extern aClient *find_server_by_base64(char *b64);
|
||||||
extern aClient *find_server_by_numeric(long value);
|
|
||||||
extern int is_chanownprotop(aClient *cptr, aChannel *chptr);
|
extern int is_chanownprotop(aClient *cptr, aChannel *chptr);
|
||||||
extern int is_skochanop(aClient *cptr, aChannel *chptr);
|
extern int is_skochanop(aClient *cptr, aChannel *chptr);
|
||||||
extern char *make_virthost(aClient *sptr, char *curr, char *new, int mode);
|
extern char *make_virthost(aClient *sptr, char *curr, char *new, int mode);
|
||||||
@@ -570,6 +557,7 @@ extern char *oflagstr(long oflag);
|
|||||||
extern int rehash(aClient *cptr, aClient *sptr, int sig);
|
extern int rehash(aClient *cptr, aClient *sptr, int sig);
|
||||||
extern int _match(char *mask, char *name);
|
extern int _match(char *mask, char *name);
|
||||||
extern void outofmemory(void);
|
extern void outofmemory(void);
|
||||||
|
extern unsigned long our_crc32(const unsigned char *s, unsigned int len);
|
||||||
extern int add_listener2(ConfigItem_listen *conf);
|
extern int add_listener2(ConfigItem_listen *conf);
|
||||||
extern void link_cleanup(ConfigItem_link *link_ptr);
|
extern void link_cleanup(ConfigItem_link *link_ptr);
|
||||||
extern void listen_cleanup();
|
extern void listen_cleanup();
|
||||||
@@ -583,7 +571,8 @@ extern int init_conf(char *filename, int rehash);
|
|||||||
extern void validate_configuration(void);
|
extern void validate_configuration(void);
|
||||||
extern void run_configuration(void);
|
extern void run_configuration(void);
|
||||||
extern void rehash_motdrules();
|
extern void rehash_motdrules();
|
||||||
extern void read_motd(const char *filename, aMotdFile *motd); /* s_serv.c */
|
extern aMotd *read_file(char *filename, aMotd **list);
|
||||||
|
extern aMotd *read_file_ex(char *filename, aMotd **list, struct tm *);
|
||||||
extern CMD_FUNC(m_server_remote);
|
extern CMD_FUNC(m_server_remote);
|
||||||
extern void send_proto(aClient *, ConfigItem_link *);
|
extern void send_proto(aClient *, ConfigItem_link *);
|
||||||
extern char *xbase64enc(long i);
|
extern char *xbase64enc(long i);
|
||||||
@@ -642,15 +631,13 @@ extern void sendto_chmodemucrap(aClient *, aChannel *, char *);
|
|||||||
extern void verify_opercount(aClient *, char *);
|
extern void verify_opercount(aClient *, char *);
|
||||||
extern int valid_host(char *host);
|
extern int valid_host(char *host);
|
||||||
extern int count_oper_sessions(char *);
|
extern int count_oper_sessions(char *);
|
||||||
extern char *unreal_mktemp(const char *dir, const char *suffix);
|
extern char *unreal_mktemp(char *dir, char *suffix);
|
||||||
extern char *unreal_getpathname(char *filepath, char *path);
|
extern char *unreal_getpathname(char *filepath, char *path);
|
||||||
extern char *unreal_getfilename(char *path);
|
extern char *unreal_getfilename(char *path);
|
||||||
extern char *unreal_mkcache(const char *url);
|
extern int unreal_copyfile(char *src, char *dest);
|
||||||
extern int has_cached_version(const char *url);
|
extern int unreal_copyfileex(char *src, char *dest, int tryhardlink);
|
||||||
extern int unreal_copyfile(const char *src, const char *dest);
|
extern time_t unreal_getfilemodtime(char *filename);
|
||||||
extern int unreal_copyfileex(const char *src, const char *dest, int tryhardlink);
|
extern void unreal_setfilemodtime(char *filename, time_t mtime);
|
||||||
extern time_t unreal_getfilemodtime(const char *filename);
|
|
||||||
extern void unreal_setfilemodtime(const char *filename, time_t mtime);
|
|
||||||
extern void DeleteTempModules(void);
|
extern void DeleteTempModules(void);
|
||||||
extern MODVAR Extban *extbaninfo;
|
extern MODVAR Extban *extbaninfo;
|
||||||
extern Extban *findmod_by_bantype(char c);
|
extern Extban *findmod_by_bantype(char c);
|
||||||
@@ -670,7 +657,6 @@ extern Spamfilter *unreal_buildspamfilter(char *s);
|
|||||||
extern char *our_strcasestr(char *haystack, char *needle);
|
extern char *our_strcasestr(char *haystack, char *needle);
|
||||||
extern int spamfilter_getconftargets(char *s);
|
extern int spamfilter_getconftargets(char *s);
|
||||||
extern void remove_oper_snomasks(aClient *sptr);
|
extern void remove_oper_snomasks(aClient *sptr);
|
||||||
extern void remove_oper_modes(aClient *sptr);
|
|
||||||
extern char *spamfilter_inttostring_long(int v);
|
extern char *spamfilter_inttostring_long(int v);
|
||||||
extern int check_channelmask(aClient *, aClient *, char *);
|
extern int check_channelmask(aClient *, aClient *, char *);
|
||||||
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
||||||
@@ -689,6 +675,7 @@ extern MODVAR aCtab cFlagTab[];
|
|||||||
extern char *unreal_encodespace(char *s);
|
extern char *unreal_encodespace(char *s);
|
||||||
extern char *unreal_decodespace(char *s);
|
extern char *unreal_decodespace(char *s);
|
||||||
extern MODVAR Link *helpign;
|
extern MODVAR Link *helpign;
|
||||||
|
extern MODVAR aMotd *rules;
|
||||||
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
|
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
|
||||||
extern void DCCdeny_add(char *filename, char *reason, int type, int type2);
|
extern void DCCdeny_add(char *filename, char *reason, int type, int type2);
|
||||||
extern void DCCdeny_del(ConfigItem_deny_dcc *deny);
|
extern void DCCdeny_del(ConfigItem_deny_dcc *deny);
|
||||||
@@ -752,11 +739,8 @@ extern MODVAR unsigned char *(*StripColors)(unsigned char *text);
|
|||||||
extern MODVAR const char *(*StripControlCodes)(unsigned char *text);
|
extern MODVAR const char *(*StripControlCodes)(unsigned char *text);
|
||||||
extern MODVAR void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr);
|
extern MODVAR void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr);
|
||||||
extern MODVAR int (*is_silenced)(aClient *sptr, aClient *acptr);
|
extern MODVAR int (*is_silenced)(aClient *sptr, aClient *acptr);
|
||||||
extern MODVAR void (*send_protoctl_servers)(aClient *sptr, int response);
|
|
||||||
extern MODVAR int (*verify_link)(aClient *cptr, aClient *sptr, char *servername, ConfigItem_link **link_out);
|
|
||||||
extern MODVAR void (*send_server_message)(aClient *sptr);
|
|
||||||
/* /Efuncs */
|
/* /Efuncs */
|
||||||
extern MODVAR aMotdFile opermotd, svsmotd, motd, botmotd, smotd, rules;
|
extern MODVAR aMotd *opermotd, *svsmotd, *motd, *botmotd, *smotd;
|
||||||
extern MODVAR int max_connection_count;
|
extern MODVAR int max_connection_count;
|
||||||
extern int add_listmode(Ban **list, aClient *cptr, aChannel *chptr, char *banid);
|
extern int add_listmode(Ban **list, aClient *cptr, aChannel *chptr, char *banid);
|
||||||
extern int del_listmode(Ban **list, aChannel *chptr, char *banid);
|
extern int del_listmode(Ban **list, aChannel *chptr, char *banid);
|
||||||
@@ -766,8 +750,7 @@ extern void chanfloodtimer_del(aChannel *chptr, char mflag, long mbit);
|
|||||||
extern char *clean_ban_mask(char *, int, aClient *);
|
extern char *clean_ban_mask(char *, int, aClient *);
|
||||||
extern void chanfloodtimer_stopchantimers(aChannel *chptr);
|
extern void chanfloodtimer_stopchantimers(aChannel *chptr);
|
||||||
extern int find_invex(aChannel *chptr, aClient *sptr);
|
extern int find_invex(aChannel *chptr, aClient *sptr);
|
||||||
extern void DoMD5(unsigned char *mdout, const unsigned char *src, unsigned long n);
|
extern void DoMD5(unsigned char *mdout, unsigned char *src, unsigned long n);
|
||||||
extern char *md5hash(unsigned char *dst, const unsigned char *src, unsigned long n);
|
|
||||||
#ifdef JOINTHROTTLE
|
#ifdef JOINTHROTTLE
|
||||||
aJFlood *cmodej_addentry(aClient *cptr, aChannel *chptr);
|
aJFlood *cmodej_addentry(aClient *cptr, aChannel *chptr);
|
||||||
void cmodej_delentry(aJFlood *e);
|
void cmodej_delentry(aJFlood *e);
|
||||||
@@ -779,7 +762,6 @@ extern void charsys_addmultibyterange(char s1, char e1, char s2, char e2);
|
|||||||
extern void charsys_addallowed(char *s);
|
extern void charsys_addallowed(char *s);
|
||||||
extern void charsys_reset(void);
|
extern void charsys_reset(void);
|
||||||
extern MODVAR char langsinuse[4096];
|
extern MODVAR char langsinuse[4096];
|
||||||
extern MODVAR char *casemapping[2];
|
|
||||||
extern MODVAR aTKline *tklines[TKLISTLEN];
|
extern MODVAR aTKline *tklines[TKLISTLEN];
|
||||||
extern char *cmdname_by_spamftarget(int target);
|
extern char *cmdname_by_spamftarget(int target);
|
||||||
extern int isipv6(struct IN_ADDR *addr);
|
extern int isipv6(struct IN_ADDR *addr);
|
||||||
@@ -800,14 +782,5 @@ extern int extban_is_banned_helper(char *buf);
|
|||||||
extern char *getcloak(aClient *sptr);
|
extern char *getcloak(aClient *sptr);
|
||||||
extern void kick_insecure_users(aChannel *);
|
extern void kick_insecure_users(aChannel *);
|
||||||
extern int file_exists(char* file);
|
extern int file_exists(char* file);
|
||||||
extern void free_motd(aMotdFile *motd); /* s_serv.c */
|
extern void free_motd(aMotd *m);
|
||||||
extern void fix_timers(void);
|
extern void fix_timers(void);
|
||||||
extern char *chfl_to_sjoin_symbol(int s);
|
|
||||||
extern char chfl_to_chanmode(int s);
|
|
||||||
extern void add_pending_net(aClient *sptr, char *str);
|
|
||||||
extern void free_pending_net(aClient *sptr);
|
|
||||||
extern aPendingNet *find_pending_net_by_numeric_butone(int numeric, aClient *exempt);
|
|
||||||
extern aClient *find_pending_net_duplicates(aClient *cptr, aClient **srv, int *numeric);
|
|
||||||
extern aClient *find_non_pending_net_duplicates(aClient *cptr);
|
|
||||||
extern MODVAR char serveropts[];
|
|
||||||
extern MODVAR char *IsupportStrings[];
|
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ typedef struct {
|
|||||||
} MD5_CTX;
|
} MD5_CTX;
|
||||||
|
|
||||||
extern void MD5_Init(MD5_CTX *ctx);
|
extern void MD5_Init(MD5_CTX *ctx);
|
||||||
extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
|
extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
|
||||||
extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
|
extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+1
-12
@@ -224,9 +224,6 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||||
|
|
||||||
/** Local channel mode? Prevents remote servers from setting/unsetting this */
|
|
||||||
char local;
|
|
||||||
|
|
||||||
/** Is this mode being unloaded?
|
/** Is this mode being unloaded?
|
||||||
* This is set to 1 if the chanmode module providing this mode is unloaded
|
* This is set to 1 if the chanmode module providing this mode is unloaded
|
||||||
* and we are waiting to see if in our new round of loads a "new" chanmode
|
* and we are waiting to see if in our new round of loads a "new" chanmode
|
||||||
@@ -249,7 +246,6 @@ typedef struct {
|
|||||||
void (*free_param)(CmodeParam *);
|
void (*free_param)(CmodeParam *);
|
||||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||||
char local;
|
|
||||||
} CmodeInfo;
|
} CmodeInfo;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -261,11 +257,10 @@ typedef struct {
|
|||||||
|
|
||||||
#define EXBTYPE_BAN 0 /* a ban */
|
#define EXBTYPE_BAN 0 /* a ban */
|
||||||
#define EXBTYPE_EXCEPT 1 /* an except */
|
#define EXBTYPE_EXCEPT 1 /* an except */
|
||||||
#define EXBTYPE_INVEX 2 /* an invite exception */
|
|
||||||
|
|
||||||
#define EXTBANTABLESZ 32
|
#define EXTBANTABLESZ 32
|
||||||
|
|
||||||
typedef enum ExtbanOptions { EXTBOPT_CHSVSMODE=0x1, EXTBOPT_ACTMODIFIER=0x2, EXTBOPT_NOSTACKCHILD=0x4, EXTBOPT_INVEX=0x8 } ExtbanOptions;
|
typedef enum ExtbanOptions { EXTBOPT_CHSVSMODE=0x1 } ExtbanOptions;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/** extbans module */
|
/** extbans module */
|
||||||
@@ -658,9 +653,6 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
|||||||
#define HOOKTYPE_POST_SERVER_CONNECT 48
|
#define HOOKTYPE_POST_SERVER_CONNECT 48
|
||||||
#define HOOKTYPE_RAWPACKET_IN 49
|
#define HOOKTYPE_RAWPACKET_IN 49
|
||||||
#define HOOKTYPE_LOCAL_NICKPASS 50
|
#define HOOKTYPE_LOCAL_NICKPASS 50
|
||||||
#define HOOKTYPE_PACKET 51
|
|
||||||
#define HOOKTYPE_HANDSHAKE 52
|
|
||||||
#define HOOKTYPE_AWAY 53
|
|
||||||
|
|
||||||
/* Hook return values */
|
/* Hook return values */
|
||||||
#define HOOK_CONTINUE 0
|
#define HOOK_CONTINUE 0
|
||||||
@@ -707,9 +699,6 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
|||||||
#define EFUNC_STRIPCONTROLCODES 32
|
#define EFUNC_STRIPCONTROLCODES 32
|
||||||
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 33
|
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 33
|
||||||
#define EFUNC_IS_SILENCED 34
|
#define EFUNC_IS_SILENCED 34
|
||||||
#define EFUNC_SEND_PROTOCTL_SERVERS 35
|
|
||||||
#define EFUNC_VERIFY_LINK 36
|
|
||||||
#define EFUNC_SEND_SERVER_MESSAGE 37
|
|
||||||
|
|
||||||
/* Module flags */
|
/* Module flags */
|
||||||
#define MODFLAG_NONE 0x0000
|
#define MODFLAG_NONE 0x0000
|
||||||
|
|||||||
@@ -49,6 +49,11 @@
|
|||||||
#else
|
#else
|
||||||
#define MYTOKEN_ZIP ""
|
#define MYTOKEN_ZIP ""
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(NOSPOOF)
|
||||||
|
#define MYTOKEN_NOSPOOF "/NOSPF"
|
||||||
|
#else
|
||||||
|
#define MYTOKEN_NOSPOOF ""
|
||||||
|
#endif
|
||||||
#if !defined(EXTCMODE)
|
#if !defined(EXTCMODE)
|
||||||
#define MYTOKEN_EXTCMODE "/NOEXTC"
|
#define MYTOKEN_EXTCMODE "/NOEXTC"
|
||||||
#else
|
#else
|
||||||
@@ -88,12 +93,12 @@
|
|||||||
|
|
||||||
#ifdef UNREALCORE
|
#ifdef UNREALCORE
|
||||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||||
unsigned int our_compiler_version = GCCVER;
|
unsigned int our_compiler_version = GCCVER;
|
||||||
#else
|
#else
|
||||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||||
DLLFUNC unsigned int compiler_version = GCCVER;
|
DLLFUNC unsigned int compiler_version = GCCVER;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -297,9 +297,6 @@
|
|||||||
#define MSG_EOS "EOS"
|
#define MSG_EOS "EOS"
|
||||||
#define TOK_EOS "ES"
|
#define TOK_EOS "ES"
|
||||||
|
|
||||||
#define MSG_MLOCK "MLOCK"
|
|
||||||
#define TOK_MLOCK "ML"
|
|
||||||
|
|
||||||
#define MAXPARA 15
|
#define MAXPARA 15
|
||||||
|
|
||||||
extern int m_error();
|
extern int m_error();
|
||||||
|
|||||||
@@ -0,0 +1,388 @@
|
|||||||
|
/*
|
||||||
|
* ++Copyright++ 1983, 1989, 1993
|
||||||
|
* -
|
||||||
|
* Copyright (c) 1983, 1989, 1993
|
||||||
|
* The Regents of the University of California. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. 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.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by the University of
|
||||||
|
* California, Berkeley and its contributors.
|
||||||
|
* 4. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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.
|
||||||
|
* -
|
||||||
|
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies, and that
|
||||||
|
* the name of Digital Equipment Corporation not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the document or software without
|
||||||
|
* specific, written prior permission.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||||
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||||
|
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||||
|
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||||
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||||
|
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
|
* SOFTWARE.
|
||||||
|
* -
|
||||||
|
* Portions Copyright (c) 1995 by International Business Machines, Inc.
|
||||||
|
*
|
||||||
|
* International Business Machines, Inc. (hereinafter called IBM) grants
|
||||||
|
* permission under its copyrights to use, copy, modify, and distribute this
|
||||||
|
* Software with or without fee, provided that the above copyright notice and
|
||||||
|
* all paragraphs of this notice appear in all copies, and that the name of IBM
|
||||||
|
* not be used in connection with the marketing of any product incorporating
|
||||||
|
* the Software or modifications thereof, without specific, written prior
|
||||||
|
* permission.
|
||||||
|
*
|
||||||
|
* To the extent it has a right to do so, IBM grants an immunity from suit
|
||||||
|
* under its patents, if any, for the use, sale or manufacture of products to
|
||||||
|
* the extent that such products are used for performing Domain Name System
|
||||||
|
* dynamic updates in TCP/IP networks by means of the Software. No immunity is
|
||||||
|
* granted for any product per se or for any other function of any product.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
* PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
|
||||||
|
* DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
|
||||||
|
* IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
* --Copyright--
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @(#)nameser.h 8.1 (Berkeley) 6/2/93
|
||||||
|
* $NetBSD: nameser.h,v 1.14 2000/08/09 14:41:00 itojun Exp $
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _ARPA_NAMESER_H_
|
||||||
|
#define _ARPA_NAMESER_H_
|
||||||
|
|
||||||
|
#ifdef PARAMH
|
||||||
|
#include <sys/param.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _AUX_SOURCE
|
||||||
|
# include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* revision information. this is the release date in YYYYMMDD format.
|
||||||
|
* it can change every day so the right thing to do with it is use it
|
||||||
|
* in preprocessor commands such as "#if (__BIND > 19931104)". do not
|
||||||
|
* compare for equality; rather, use it to determine whether your resolver
|
||||||
|
* is new enough to contain a certain feature.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define __BIND 19960801 /* interface version stamp */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define constants based on rfc883
|
||||||
|
*/
|
||||||
|
#define PACKETSZ 512 /* maximum packet size */
|
||||||
|
#define MAXDNAME 1025 /* maximum presentation domain name */
|
||||||
|
#define MAXCDNAME 255 /* maximum compressed domain name */
|
||||||
|
#define MAXLABEL 63 /* maximum length of domain label */
|
||||||
|
#define HFIXEDSZ 12 /* #/bytes of fixed data in header */
|
||||||
|
#define QFIXEDSZ 4 /* #/bytes of fixed data in query */
|
||||||
|
#define RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
|
||||||
|
#define INT32SZ 4 /* for systems without 32-bit ints */
|
||||||
|
#define INT16SZ 2 /* for systems without 16-bit ints */
|
||||||
|
#define INADDRSZ 4 /* IPv4 T_A */
|
||||||
|
#define IN6ADDRSZ 16 /* IPv6 T_AAAA */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internet nameserver port number
|
||||||
|
*/
|
||||||
|
#define NAMESERVER_PORT 53
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Currently defined opcodes
|
||||||
|
*/
|
||||||
|
#define QUERY 0x0 /* standard query */
|
||||||
|
#define IQUERY 0x1 /* inverse query */
|
||||||
|
#define STATUS 0x2 /* nameserver status query */
|
||||||
|
/*#define xxx 0x3*/ /* 0x3 reserved */
|
||||||
|
#define NS_NOTIFY_OP 0x4 /* notify secondary of SOA change */
|
||||||
|
/*
|
||||||
|
* Currently defined response codes
|
||||||
|
*/
|
||||||
|
#define NOERROR 0 /* no error */
|
||||||
|
#define FORMERR 1 /* format error */
|
||||||
|
#define SERVFAIL 2 /* server failure */
|
||||||
|
#define NXDOMAIN 3 /* non existent domain */
|
||||||
|
#define NOTIMP 4 /* not implemented */
|
||||||
|
#define REFUSED 5 /* query refused */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type values for resources and queries
|
||||||
|
*/
|
||||||
|
#define T_A 1 /* host address */
|
||||||
|
#define T_NS 2 /* authoritative server */
|
||||||
|
#define T_MD 3 /* mail destination */
|
||||||
|
#define T_MF 4 /* mail forwarder */
|
||||||
|
#define T_CNAME 5 /* canonical name */
|
||||||
|
#define T_SOA 6 /* start of authority zone */
|
||||||
|
#define T_MB 7 /* mailbox domain name */
|
||||||
|
#define T_MG 8 /* mail group member */
|
||||||
|
#define T_MR 9 /* mail rename name */
|
||||||
|
#define T_NULL 10 /* null resource record */
|
||||||
|
#define T_WKS 11 /* well known service */
|
||||||
|
#define T_PTR 12 /* domain name pointer */
|
||||||
|
#define T_HINFO 13 /* host information */
|
||||||
|
#define T_MINFO 14 /* mailbox information */
|
||||||
|
#define T_MX 15 /* mail routing information */
|
||||||
|
#define T_TXT 16 /* text strings */
|
||||||
|
#define T_RP 17 /* responsible person */
|
||||||
|
#define T_AFSDB 18 /* AFS cell database */
|
||||||
|
#define T_X25 19 /* X_25 calling address */
|
||||||
|
#define T_ISDN 20 /* ISDN calling address */
|
||||||
|
#define T_RT 21 /* router */
|
||||||
|
#define T_NSAP 22 /* NSAP address */
|
||||||
|
#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
|
||||||
|
#define T_SIG 24 /* security signature */
|
||||||
|
#define T_KEY 25 /* security key */
|
||||||
|
#define T_PX 26 /* X.400 mail mapping */
|
||||||
|
#define T_GPOS 27 /* geographical position (withdrawn) */
|
||||||
|
#define T_AAAA 28 /* IP6 Address */
|
||||||
|
#define T_LOC 29 /* Location Information */
|
||||||
|
#define T_NXT 30 /* Next Valid Name in Zone */
|
||||||
|
#define T_EID 31 /* Endpoint identifier */
|
||||||
|
#define T_NIMLOC 32 /* Nimrod locator */
|
||||||
|
#define T_SRV 33 /* Server selection */
|
||||||
|
#define T_ATMA 34 /* ATM Address */
|
||||||
|
#define T_NAPTR 35 /* Naming Authority PoinTeR */
|
||||||
|
#define T_OPT 41 /* OPT pseudo-RR, RFC2761 */
|
||||||
|
/* non standard */
|
||||||
|
#define T_UINFO 100 /* user (finger) information */
|
||||||
|
#define T_UID 101 /* user ID */
|
||||||
|
#define T_GID 102 /* group ID */
|
||||||
|
#define T_UNSPEC 103 /* Unspecified format (binary data) */
|
||||||
|
/* Query type values which do not appear in resource records */
|
||||||
|
#define T_IXFR 251 /* incremental zone transfer */
|
||||||
|
#define T_AXFR 252 /* transfer zone of authority */
|
||||||
|
#define T_MAILB 253 /* transfer mailbox records */
|
||||||
|
#define T_MAILA 254 /* transfer mail agent records */
|
||||||
|
#define T_ANY 255 /* wildcard match */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Values for class field
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define C_IN 1 /* the arpa internet */
|
||||||
|
#define C_CHAOS 3 /* for chaos net (MIT) */
|
||||||
|
#define C_HS 4 /* for Hesiod name server (MIT) (XXX) */
|
||||||
|
/* Query class values which do not appear in resource records */
|
||||||
|
#define C_ANY 255 /* wildcard match */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Flags field of the KEY RR rdata
|
||||||
|
*/
|
||||||
|
#define KEYFLAG_TYPEMASK 0xC000 /* Mask for "type" bits */
|
||||||
|
#define KEYFLAG_TYPE_AUTH_CONF 0x0000 /* Key usable for both */
|
||||||
|
#define KEYFLAG_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */
|
||||||
|
#define KEYFLAG_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */
|
||||||
|
#define KEYFLAG_TYPE_NO_KEY 0xC000 /* No key usable for either; no key */
|
||||||
|
/* The type bits can also be interpreted independently, as single bits: */
|
||||||
|
#define KEYFLAG_NO_AUTH 0x8000 /* Key not usable for authentication */
|
||||||
|
#define KEYFLAG_NO_CONF 0x4000 /* Key not usable for confidentiality */
|
||||||
|
|
||||||
|
#define KEYFLAG_EXPERIMENTAL 0x2000 /* Security is *mandatory* if bit=0 */
|
||||||
|
#define KEYFLAG_RESERVED3 0x1000 /* reserved - must be zero */
|
||||||
|
#define KEYFLAG_RESERVED4 0x0800 /* reserved - must be zero */
|
||||||
|
#define KEYFLAG_USERACCOUNT 0x0400 /* key is assoc. with a user acct */
|
||||||
|
#define KEYFLAG_ENTITY 0x0200 /* key is assoc. with entity eg host */
|
||||||
|
#define KEYFLAG_ZONEKEY 0x0100 /* key is zone key for the zone named */
|
||||||
|
#define KEYFLAG_IPSEC 0x0080 /* key is for IPSEC use (host or user)*/
|
||||||
|
#define KEYFLAG_EMAIL 0x0040 /* key is for email (MIME security) */
|
||||||
|
#define KEYFLAG_RESERVED10 0x0020 /* reserved - must be zero */
|
||||||
|
#define KEYFLAG_RESERVED11 0x0010 /* reserved - must be zero */
|
||||||
|
#define KEYFLAG_SIGNATORYMASK 0x000F /* key can sign DNS RR's of same name */
|
||||||
|
|
||||||
|
#define KEYFLAG_RESERVED_BITMASK ( KEYFLAG_RESERVED3 | \
|
||||||
|
KEYFLAG_RESERVED4 | \
|
||||||
|
KEYFLAG_RESERVED10| KEYFLAG_RESERVED11)
|
||||||
|
|
||||||
|
/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
|
||||||
|
#define ALGORITHM_MD5RSA 1 /* MD5 with RSA */
|
||||||
|
#define ALGORITHM_EXPIRE_ONLY 253 /* No alg, no security */
|
||||||
|
#define ALGORITHM_PRIVATE_OID 254 /* Key begins with OID indicating alg */
|
||||||
|
|
||||||
|
/* Signatures */
|
||||||
|
/* Size of a mod or exp in bits */
|
||||||
|
#define MIN_MD5RSA_KEY_PART_BITS 512
|
||||||
|
#define MAX_MD5RSA_KEY_PART_BITS 2552
|
||||||
|
/* Total of binary mod and exp, bytes */
|
||||||
|
#define MAX_MD5RSA_KEY_BYTES ((MAX_MD5RSA_KEY_PART_BITS+7/8)*2+3)
|
||||||
|
/* Max length of text sig block */
|
||||||
|
#define MAX_KEY_BASE64 (((MAX_MD5RSA_KEY_BYTES+2)/3)*4)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Status return codes for T_UNSPEC conversion routines
|
||||||
|
*/
|
||||||
|
#define CONV_SUCCESS 0
|
||||||
|
#define CONV_OVERFLOW (-1)
|
||||||
|
#define CONV_BADFMT (-2)
|
||||||
|
#define CONV_BADCKSUM (-3)
|
||||||
|
#define CONV_BADBUFLEN (-4)
|
||||||
|
|
||||||
|
#ifndef BYTE_ORDER
|
||||||
|
#if (BSD >= 199103)
|
||||||
|
# include <machine/endian.h>
|
||||||
|
#else
|
||||||
|
#ifdef linux
|
||||||
|
# include <endian.h>
|
||||||
|
#else
|
||||||
|
#define LITTLE_ENDIAN 1234 /* least-significant byte first (vax, pc) */
|
||||||
|
#define BIG_ENDIAN 4321 /* most-significant byte first (IBM, net) */
|
||||||
|
#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long (pdp)*/
|
||||||
|
|
||||||
|
#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \
|
||||||
|
defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \
|
||||||
|
defined(__alpha__) || defined(__alpha) || defined(__vax__) || defined(_WIN32)
|
||||||
|
#define BYTE_ORDER LITTLE_ENDIAN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \
|
||||||
|
defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \
|
||||||
|
defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\
|
||||||
|
defined(apollo) || defined(__convex__) || defined(_CRAY) || \
|
||||||
|
defined(__hppa) || defined(__hp9000) || \
|
||||||
|
defined(__hp9000s300) || defined(__hp9000s700) || \
|
||||||
|
defined (BIT_ZERO_ON_LEFT) || defined(m68k)
|
||||||
|
#define BYTE_ORDER BIG_ENDIAN
|
||||||
|
#endif
|
||||||
|
#endif /* linux */
|
||||||
|
#endif /* BSD */
|
||||||
|
#endif /* BYTE_ORDER */
|
||||||
|
|
||||||
|
#if !defined(BYTE_ORDER) || \
|
||||||
|
(BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \
|
||||||
|
BYTE_ORDER != PDP_ENDIAN)
|
||||||
|
/* you must determine what the correct bit order is for
|
||||||
|
* your compiler - the next line is an intentional error
|
||||||
|
* which will force your compiles to bomb until you fix
|
||||||
|
* the above macros.
|
||||||
|
*/
|
||||||
|
#error "Undefined or invalid BYTE_ORDER";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Structure for query header. The order of the fields is machine- and
|
||||||
|
* compiler-dependent, depending on the byte/bit order and the layout
|
||||||
|
* of bit fields. We use bit fields only in int variables, as this
|
||||||
|
* is all ANSI requires. This requires a somewhat confusing rearrangement.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned id :16; /* query identification number */
|
||||||
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
|
/* fields in third byte */
|
||||||
|
unsigned qr: 1; /* response flag */
|
||||||
|
unsigned opcode: 4; /* purpose of message */
|
||||||
|
unsigned aa: 1; /* authoritive answer */
|
||||||
|
unsigned tc: 1; /* truncated message */
|
||||||
|
unsigned rd: 1; /* recursion desired */
|
||||||
|
/* fields in fourth byte */
|
||||||
|
unsigned ra: 1; /* recursion available */
|
||||||
|
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||||
|
unsigned ad: 1; /* authentic data from named */
|
||||||
|
unsigned cd: 1; /* checking disabled by resolver */
|
||||||
|
unsigned rcode :4; /* response code */
|
||||||
|
#endif
|
||||||
|
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
|
||||||
|
/* fields in third byte */
|
||||||
|
unsigned rd :1; /* recursion desired */
|
||||||
|
unsigned tc :1; /* truncated message */
|
||||||
|
unsigned aa :1; /* authoritive answer */
|
||||||
|
unsigned opcode :4; /* purpose of message */
|
||||||
|
unsigned qr :1; /* response flag */
|
||||||
|
/* fields in fourth byte */
|
||||||
|
unsigned rcode :4; /* response code */
|
||||||
|
unsigned cd: 1; /* checking disabled by resolver */
|
||||||
|
unsigned ad: 1; /* authentic data from named */
|
||||||
|
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||||
|
unsigned ra :1; /* recursion available */
|
||||||
|
#endif
|
||||||
|
/* remaining bytes */
|
||||||
|
unsigned qdcount :16; /* number of question entries */
|
||||||
|
unsigned ancount :16; /* number of answer entries */
|
||||||
|
unsigned nscount :16; /* number of authority entries */
|
||||||
|
unsigned arcount :16; /* number of resource entries */
|
||||||
|
} HEADER;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Defines for handling compressed domain names
|
||||||
|
*/
|
||||||
|
#define INDIR_MASK 0xc0
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Inline versions of get/put short/long. Pointer is advanced.
|
||||||
|
*
|
||||||
|
* These macros demonstrate the property of C whereby it can be
|
||||||
|
* portable or it can be elegant but rarely both.
|
||||||
|
*/
|
||||||
|
#define GETSHORT(s, cp) { \
|
||||||
|
register const u_char *t_cp = (const u_char *)(cp); \
|
||||||
|
(s) = ((const u_int16_t)t_cp[0] << 8) \
|
||||||
|
| ((const u_int16_t)t_cp[1]) \
|
||||||
|
; \
|
||||||
|
(cp) += INT16SZ; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define GETLONG(l, cp) { \
|
||||||
|
register const u_char *t_cp = (const u_char *)(cp); \
|
||||||
|
(l) = ((const u_int32_t)t_cp[0] << 24) \
|
||||||
|
| ((const u_int32_t)t_cp[1] << 16) \
|
||||||
|
| ((const u_int32_t)t_cp[2] << 8) \
|
||||||
|
| ((const u_int32_t)t_cp[3]) \
|
||||||
|
; \
|
||||||
|
(cp) += INT32SZ; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PUTSHORT(s, cp) { \
|
||||||
|
register u_int16_t t_s = (u_int16_t)(s); \
|
||||||
|
register u_char *t_cp = (u_char *)(cp); \
|
||||||
|
*t_cp++ = (u_int32_t)t_s >> 8; \
|
||||||
|
*t_cp = t_s; \
|
||||||
|
(cp) += INT16SZ; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define PUTLONG(l, cp) { \
|
||||||
|
register u_int32_t t_l = (u_int32_t)(l); \
|
||||||
|
register u_char *t_cp = (u_char *)(cp); \
|
||||||
|
*t_cp++ = t_l >> 24; \
|
||||||
|
*t_cp++ = t_l >> 16; \
|
||||||
|
*t_cp++ = t_l >> 8; \
|
||||||
|
*t_cp = t_l; \
|
||||||
|
(cp) += INT32SZ; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* _ARPA_NAMESER_H_ */
|
||||||
|
|
||||||
@@ -53,8 +53,6 @@
|
|||||||
#define ERR_NOSUCHSERVICE 408
|
#define ERR_NOSUCHSERVICE 408
|
||||||
#define ERR_NOORIGIN 409
|
#define ERR_NOORIGIN 409
|
||||||
|
|
||||||
#define ERR_INVALIDCAPCMD 410
|
|
||||||
|
|
||||||
#define ERR_NORECIPIENT 411
|
#define ERR_NORECIPIENT 411
|
||||||
#define ERR_NOTEXTTOSEND 412
|
#define ERR_NOTEXTTOSEND 412
|
||||||
#define ERR_NOTOPLEVEL 413
|
#define ERR_NOTOPLEVEL 413
|
||||||
@@ -182,9 +180,6 @@
|
|||||||
#define RPL_LISTEND 323
|
#define RPL_LISTEND 323
|
||||||
#define RPL_CHANNELMODEIS 324
|
#define RPL_CHANNELMODEIS 324
|
||||||
#define RPL_CREATIONTIME 329
|
#define RPL_CREATIONTIME 329
|
||||||
|
|
||||||
#define RPL_WHOISLOGGEDIN 330 /* ircu/charybdis-family --nenolod */
|
|
||||||
|
|
||||||
#define RPL_NOTOPIC 331
|
#define RPL_NOTOPIC 331
|
||||||
#define RPL_TOPIC 332
|
#define RPL_TOPIC 332
|
||||||
#define RPL_TOPICWHOTIME 333
|
#define RPL_TOPICWHOTIME 333
|
||||||
@@ -366,25 +361,8 @@
|
|||||||
|
|
||||||
#define RPL_SPAMCMDFWD 659
|
#define RPL_SPAMCMDFWD 659
|
||||||
|
|
||||||
#define RPL_STARTTLS 670
|
|
||||||
|
|
||||||
#define RPL_WHOISSECURE 671
|
#define RPL_WHOISSECURE 671
|
||||||
|
|
||||||
#define ERR_MLOCKRESTRICTED 742
|
|
||||||
|
|
||||||
#define ERR_CANNOTDOCOMMAND 972
|
#define ERR_CANNOTDOCOMMAND 972
|
||||||
#define ERR_CANNOTCHANGECHANMODE 974
|
#define ERR_CANNOTCHANGECHANMODE 974
|
||||||
|
|
||||||
#define ERR_STARTTLS 691
|
|
||||||
|
|
||||||
#define RPL_LOGGEDIN 900
|
|
||||||
#define RPL_LOGGEDOUT 901
|
|
||||||
#define ERR_NICKLOCKED 902
|
|
||||||
|
|
||||||
#define RPL_SASLSUCCESS 903
|
|
||||||
#define ERR_SASLFAIL 904
|
|
||||||
#define ERR_SASLTOOLONG 905
|
|
||||||
#define ERR_SASLABORTED 906
|
|
||||||
#define ERR_SASLALREADY 907
|
|
||||||
|
|
||||||
#define ERR_NUMERICERR 999
|
#define ERR_NUMERICERR 999
|
||||||
|
|||||||
+2
-2
@@ -52,14 +52,14 @@ EVENT(htm_calc);
|
|||||||
EVENT(e_check_fdlists);
|
EVENT(e_check_fdlists);
|
||||||
EVENT(garbage_collect);
|
EVENT(garbage_collect);
|
||||||
EVENT(loop_event);
|
EVENT(loop_event);
|
||||||
EVENT(deprecated_notice);
|
|
||||||
/* support.c */
|
/* support.c */
|
||||||
char *my_itoa(int i);
|
char *my_itoa(int i);
|
||||||
|
|
||||||
/* s_serv.c */
|
/* s_serv.c */
|
||||||
void load_tunefile(void);
|
void load_tunefile(void);
|
||||||
extern EVENT(save_tunefile);
|
extern EVENT(save_tunefile);
|
||||||
extern void read_motd(const char *filename, aMotdFile *motd);
|
aMotd *read_rules(char *filename);
|
||||||
|
aMotd *read_motd(char *filename);
|
||||||
|
|
||||||
/* s_user.c */
|
/* s_user.c */
|
||||||
int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
/* OMG... OMG! WHAT AN INCLUDE HORROR !!! */
|
/* OMG... OMG! WHAT AN INCLUDE HORROR !!! */
|
||||||
#undef strcasecmp
|
#undef strcasecmp
|
||||||
#undef strncasecmp
|
#undef strncasecmp
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <win32/ares/setup.h>
|
||||||
|
#endif
|
||||||
#include <ares.h>
|
#include <ares.h>
|
||||||
#include <ares_version.h>
|
#include <ares_version.h>
|
||||||
#undef strcasecmp
|
#undef strcasecmp
|
||||||
|
|||||||
+203
-339
@@ -1,107 +1,178 @@
|
|||||||
/* include/setup.h.in. Generated from configure.ac by autoheader. */
|
/* config.h.in. Generated automatically from configure.in by autoheader. */
|
||||||
|
|
||||||
/* Define if you have BSD signals */
|
/* Define if using alloca.c. */
|
||||||
#undef BSD_RELIABLE_SIGNALS
|
|
||||||
|
|
||||||
/* Set to the bufferpool size you want */
|
|
||||||
#undef BUFFERPOOL
|
|
||||||
|
|
||||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
|
||||||
systems. This function is required for `alloca.c' support on those systems.
|
|
||||||
*/
|
|
||||||
#undef CRAY_STACKSEG_END
|
|
||||||
|
|
||||||
/* Define to 1 if using `alloca.c'. */
|
|
||||||
#undef C_ALLOCA
|
#undef C_ALLOCA
|
||||||
|
|
||||||
/* The default permissions for configuration files. Set to 0 to prevent
|
/* Define to empty if the keyword does not work. */
|
||||||
unrealircd from calling chmod() on the files. */
|
#undef const
|
||||||
#undef DEFAULT_PERMISSIONS
|
|
||||||
|
|
||||||
/* Define to disable extended ban stacking (~q:~c:\#chan, etc) */
|
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
|
||||||
#undef DISABLE_STACKED_EXTBANS
|
This function is required for alloca.c support on those systems. */
|
||||||
|
#undef CRAY_STACKSEG_END
|
||||||
|
|
||||||
/* Define if you want to disable /set* and /chg* */
|
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||||
#undef DISABLE_USERMOD
|
#undef gid_t
|
||||||
|
|
||||||
/* Define the location of the configuration files */
|
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||||
#undef DPATH
|
#undef HAVE_SYS_WAIT_H
|
||||||
|
|
||||||
/* Define if you can set the core size to unlimited */
|
/* Define if you have the vprintf function. */
|
||||||
#undef FORCE_CORE
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
/* Define if you have getrusage */
|
/* Define as __inline if that's what the C compiler calls it. */
|
||||||
#undef GETRUSAGE_2
|
#undef inline
|
||||||
|
|
||||||
/* Define if you have gettimeofday */
|
/* Define if the `setpgrp' function takes no argument. */
|
||||||
#undef GETTIMEOFDAY
|
#undef SETPGRP_VOID
|
||||||
|
|
||||||
|
/* Define if the setvbuf function takes the buffering type as its second
|
||||||
|
argument and the buffer pointer as the third, as on System V
|
||||||
|
before release 3. */
|
||||||
|
#undef SETVBUF_REVERSED
|
||||||
|
|
||||||
|
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||||
|
#undef size_t
|
||||||
|
|
||||||
|
/* If using the C implementation of alloca, define if you know the
|
||||||
|
direction of stack growth for your system; otherwise it will be
|
||||||
|
automatically deduced at run-time.
|
||||||
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
|
STACK_DIRECTION = 0 => direction of growth unknown
|
||||||
|
*/
|
||||||
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
|
/* Define if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
|
/* Define if your <sys/time.h> declares struct tm. */
|
||||||
|
#undef TM_IN_SYS_TIME
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||||
|
#undef uid_t
|
||||||
|
|
||||||
|
/* Define if you do not have the index function. */
|
||||||
|
#undef NOINDEX
|
||||||
|
|
||||||
|
/* Define if you need the strtok function. */
|
||||||
|
#undef NEED_STRTOK
|
||||||
|
|
||||||
|
/* Define if you need the strtoken function. */
|
||||||
|
#undef NEED_STRTOKEN
|
||||||
|
|
||||||
|
/* Define if you have the times function. */
|
||||||
|
#undef HAVE_TIMES
|
||||||
|
|
||||||
|
/* Define if you have the <stddef.h> header file. */
|
||||||
|
#undef STDDEFH
|
||||||
|
|
||||||
|
/* Define if you have the <stdlib.h> header file. */
|
||||||
|
#undef STDLIBH
|
||||||
|
|
||||||
|
/* Define if you have the <string.h> header file. */
|
||||||
|
#undef STRINGH
|
||||||
|
|
||||||
|
/* Define if you have the <strings.h> header file. */
|
||||||
|
#undef STRINGSH
|
||||||
|
|
||||||
|
/* Define if you have the <sys/param.h> header file. */
|
||||||
|
#undef PARAMH
|
||||||
|
|
||||||
|
/* Define if you have the <sys/rusage.h> header file. */
|
||||||
|
#undef HAVE_SYS_RUSAGE_H
|
||||||
|
|
||||||
|
/* Define if you have the <sys/syslog.h> header file. */
|
||||||
|
#undef SYSSYSLOGH
|
||||||
|
|
||||||
|
/* Define if you have the <unistd.h> header file. */
|
||||||
|
#undef UNISTDH
|
||||||
|
|
||||||
|
/* Define to <malloc.h> you need malloc.h. */
|
||||||
|
#undef MALLOCH
|
||||||
|
|
||||||
|
/* Define if you have the <sys/rusage.h> header file. */
|
||||||
|
#undef RUSAGEH
|
||||||
|
|
||||||
/* Define if you have the <glob.h> header file. */
|
/* Define if you have the <glob.h> header file. */
|
||||||
#undef GLOBH
|
#undef GLOBH
|
||||||
|
|
||||||
|
/* Define if you have regex */
|
||||||
|
#undef HAVE_REGEX
|
||||||
|
|
||||||
|
/* Define if you don't have bcopy */
|
||||||
|
#undef NEED_BCOPY
|
||||||
|
|
||||||
|
/* Define if you don't have bcmp */
|
||||||
|
#undef NEED_BCMP
|
||||||
|
|
||||||
|
/* Define if you need bzero */
|
||||||
|
#undef NEED_BZERO
|
||||||
|
|
||||||
|
/* Define if you have syslog */
|
||||||
|
#undef HAVE_SYSLOG
|
||||||
|
|
||||||
|
/* Define if you have vsyslog */
|
||||||
|
#undef HAVE_VSYSLOG
|
||||||
|
|
||||||
|
/* Define if you want to allow SSL connections */
|
||||||
|
#undef USE_SSL
|
||||||
|
|
||||||
|
/* Define if you can set the core size to unlimited */
|
||||||
|
#undef FORCE_CORE
|
||||||
|
|
||||||
/* Define if you have strcasecmp */
|
/* Define if you have strcasecmp */
|
||||||
#undef GOT_STRCASECMP
|
#undef GOT_STRCASECMP
|
||||||
|
|
||||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
/* Define if you need inet_addr */
|
||||||
#undef HAVE_ALLOCA
|
#undef NEED_INET_ADDR
|
||||||
|
|
||||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
/* Define if you need inet_ntoa */
|
||||||
*/
|
#undef NEED_INET_NTOA
|
||||||
#undef HAVE_ALLOCA_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `bcmp' function. */
|
/* Define if you need inet_netof */
|
||||||
#undef HAVE_BCMP
|
#undef NEED_INET_NETOF
|
||||||
|
|
||||||
/* Define to 1 if you have the `bcopy' function. */
|
/* Define if you have gettimeofday */
|
||||||
#undef HAVE_BCOPY
|
#undef GETTIMEOFDAY
|
||||||
|
|
||||||
/* Define to 1 if you have the `bzero' function. */
|
/* Define if you have lrand48 */
|
||||||
#undef HAVE_BZERO
|
#undef LRAND48
|
||||||
|
|
||||||
/* Define if you have a compiler with C99 variable length array support */
|
/* Define if you have getrusage */
|
||||||
#undef HAVE_C99_VARLEN_ARRAY
|
#undef GETRUSAGE_2
|
||||||
|
|
||||||
/* Define if you have crypt */
|
/* Define if you have times */
|
||||||
#undef HAVE_CRYPT
|
#undef TIMES_2
|
||||||
|
|
||||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
/* Define if you have O_NONBLOCK */
|
||||||
#undef HAVE_DOPRNT
|
#undef NBLOCK_POSIX
|
||||||
|
|
||||||
/* Define to 1 if you have the `getrusage' function. */
|
/* Define if you have O_NDELAY */
|
||||||
#undef HAVE_GETRUSAGE
|
#undef NBLOCK_BSD
|
||||||
|
|
||||||
/* Define to 1 if you have the `gettimeofday' function. */
|
/* Define if you have FIONBIO */
|
||||||
#undef HAVE_GETTIMEOFDAY
|
#undef NBLOCK_SYSV
|
||||||
|
|
||||||
/* Define to 1 if you have the `index' function. */
|
/* Define if you have POSIX signals */
|
||||||
#undef HAVE_INDEX
|
#undef POSIX_SIGNALS
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_addr' function. */
|
/* Define if you have BSD signals */
|
||||||
#undef HAVE_INET_ADDR
|
#undef RELIABLE_BSD_SIGNALS
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_netof' function. */
|
/* Define if you have SYSV signals */
|
||||||
#undef HAVE_INET_NETOF
|
#undef UNRELIABLE_SYSV_SIGNALS
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
/* Define these to be unsigned integral internal types,
|
||||||
#undef HAVE_INET_NTOA
|
* of respecitvely 2 and 4 bytes in size, when not already
|
||||||
|
* defined in <sys/types.h>, <stdlib.h> or <stddef.h> */
|
||||||
|
#undef u_int16_t
|
||||||
|
#undef u_int32_t
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_ntop' function. */
|
/* Define if you have setproctitle */
|
||||||
#undef HAVE_INET_NTOP
|
#undef HAVE_SETPROCTITLE
|
||||||
|
|
||||||
/* Define to 1 if you have the `inet_pton' function. */
|
|
||||||
#undef HAVE_INET_PTON
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `intptr_t'. */
|
|
||||||
#undef HAVE_INTPTR_T
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#undef HAVE_INTTYPES_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `lrand48' function. */
|
|
||||||
#undef HAVE_LRAND48
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
|
||||||
#undef HAVE_MEMORY_H
|
|
||||||
|
|
||||||
/* Define if you have PS_STRINGS */
|
/* Define if you have PS_STRINGS */
|
||||||
#undef HAVE_PSSTRINGS
|
#undef HAVE_PSSTRINGS
|
||||||
@@ -109,140 +180,56 @@
|
|||||||
/* Define if you have pstat */
|
/* Define if you have pstat */
|
||||||
#undef HAVE_PSTAT
|
#undef HAVE_PSTAT
|
||||||
|
|
||||||
/* Define if the libcrypto has RAND_egd */
|
/* Define if you have crypt */
|
||||||
#undef HAVE_RAND_EGD
|
#undef HAVE_CRYPT
|
||||||
|
|
||||||
/* Define if you have setproctitle */
|
/* Local hostname of the server */
|
||||||
#undef HAVE_SETPROCTITLE
|
#undef DOMAINNAME
|
||||||
|
|
||||||
/* Define to 1 if you have the `snprintf' function. */
|
/* The default permissions for configuration files */
|
||||||
#undef HAVE_SNPRINTF
|
#undef DEFAULT_PERMISSIONS
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define if you want spoof protection */
|
||||||
#undef HAVE_STDINT_H
|
#undef NOSPOOF
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
/* Define if you want +a/+q prefixes */
|
||||||
#undef HAVE_STDLIB_H
|
#undef PREFIX_AQ
|
||||||
|
|
||||||
/* Define to 1 if you have the `strcasecmp' function. */
|
/* Define if you want to compile as a hub */
|
||||||
#undef HAVE_STRCASECMP
|
#undef HUB
|
||||||
|
|
||||||
/* Define to 1 if you have the `strerror' function. */
|
/* Define the location of the configuration files */
|
||||||
#undef HAVE_STRERROR
|
#undef DPATH
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
/* Define the location of the executable */
|
||||||
#undef HAVE_STRINGS_H
|
#undef SPATH
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#undef HAVE_STRING_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strlcat' function. */
|
|
||||||
#undef HAVE_STRLCAT
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strlcpy' function. */
|
|
||||||
#undef HAVE_STRLCPY
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strlncat' function. */
|
|
||||||
#undef HAVE_STRLNCAT
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtok' function. */
|
|
||||||
#undef HAVE_STRTOK
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtoken' function. */
|
|
||||||
#undef HAVE_STRTOKEN
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtoul' function. */
|
|
||||||
#undef HAVE_STRTOUL
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `syslog' function. */
|
|
||||||
#undef HAVE_SYSLOG
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
||||||
#undef HAVE_SYS_STAT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
||||||
#undef HAVE_SYS_TYPES_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `times' function. */
|
|
||||||
#undef HAVE_TIMES
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
|
||||||
#undef HAVE_UNISTD_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vprintf' function. */
|
|
||||||
#undef HAVE_VPRINTF
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vsnprintf' function. */
|
|
||||||
#undef HAVE_VSNPRINTF
|
|
||||||
|
|
||||||
/* Define if you want IPv6 enabled */
|
|
||||||
#undef INET6
|
|
||||||
|
|
||||||
/* Set to the listen backlog size you want */
|
/* Set to the listen backlog size you want */
|
||||||
#undef LISTEN_SIZE
|
#undef LISTEN_SIZE
|
||||||
|
|
||||||
/* Define if you want modes shown in /list */
|
|
||||||
#undef LIST_SHOW_MODES
|
|
||||||
|
|
||||||
/* Define if rlim_t is long long */
|
|
||||||
#undef LONG_LONG_RLIM_T
|
|
||||||
|
|
||||||
/* Define if you have lrand48 */
|
|
||||||
#undef LRADN48
|
|
||||||
|
|
||||||
/* Define to <malloc.h> you need malloc.h. */
|
|
||||||
#undef MALLOCH
|
|
||||||
|
|
||||||
/* Set to the max connections you want */
|
|
||||||
#undef MAXCONNECTIONS
|
|
||||||
|
|
||||||
/* Set to the max sendq you want */
|
/* Set to the max sendq you want */
|
||||||
#undef MAXSENDQLENGTH
|
#undef MAXSENDQLENGTH
|
||||||
|
|
||||||
/* Define if you have O_NDELAY */
|
|
||||||
#undef NBLOCK_BSD
|
|
||||||
|
|
||||||
/* Define if you have O_NONBLOCK */
|
|
||||||
#undef NBLOCK_POSIX
|
|
||||||
|
|
||||||
/* Define if you have FIONBIO */
|
|
||||||
#undef NBLOCK_SYSV
|
|
||||||
|
|
||||||
/* Define if you don't have bcmp */
|
|
||||||
#undef NEED_BCMP
|
|
||||||
|
|
||||||
/* Define if you don't have bcopy */
|
|
||||||
#undef NEED_BCOPY
|
|
||||||
|
|
||||||
/* Define if you need bzero */
|
|
||||||
#undef NEED_BZERO
|
|
||||||
|
|
||||||
/* Define if you need inet_addr */
|
|
||||||
#undef NEED_INET_ADDR
|
|
||||||
|
|
||||||
/* Define if you need inet_netof */
|
|
||||||
#undef NEED_INET_NETOF
|
|
||||||
|
|
||||||
/* Define if you need inet_ntoa */
|
|
||||||
#undef NEED_INET_NTOA
|
|
||||||
|
|
||||||
/* Define if you need the strerror function. */
|
|
||||||
#undef NEED_STRERROR
|
|
||||||
|
|
||||||
/* Define if you need the strtok function. */
|
|
||||||
#undef NEED_STRTOK
|
|
||||||
|
|
||||||
/* Define if you need the strtoken function. */
|
|
||||||
#undef NEED_STRTOKEN
|
|
||||||
|
|
||||||
/* Set to the nickname history length you want */
|
/* Set to the nickname history length you want */
|
||||||
#undef NICKNAMEHISTORYLENGTH
|
#undef NICKNAMEHISTORYLENGTH
|
||||||
|
|
||||||
/* Define if you do not have the index function. */
|
/* Set to the bufferpool size you want */
|
||||||
#undef NOINDEX
|
#undef BUFFERPOOL
|
||||||
|
|
||||||
/* Define to 1 if your system has no in6addr_any. */
|
/* Set to the max connections you want */
|
||||||
#undef NO_IN6ADDR_ANY
|
#undef MAXCONNECTIONS
|
||||||
|
|
||||||
|
/* Define if you want IPv6 enabled */
|
||||||
|
#undef INET6
|
||||||
|
|
||||||
|
/* Define if you want modes shown in /list */
|
||||||
|
#undef LIST_SHOW_MODES
|
||||||
|
|
||||||
|
/* Define if you want nick!user@host shown for the topic setter */
|
||||||
|
#undef TOPIC_NICK_IS_NUHOST
|
||||||
|
|
||||||
|
/* Define if you want users to be notified when their shun is removed */
|
||||||
|
#undef SHUN_NOTICES
|
||||||
|
|
||||||
/* Define if you want OperOverride disabled */
|
/* Define if you want OperOverride disabled */
|
||||||
#undef NO_OPEROVERRIDE
|
#undef NO_OPEROVERRIDE
|
||||||
@@ -250,167 +237,44 @@
|
|||||||
/* Define if you want opers to have to use /invite to join +s/+p channels */
|
/* Define if you want opers to have to use /invite to join +s/+p channels */
|
||||||
#undef OPEROVERRIDE_VERIFY
|
#undef OPEROVERRIDE_VERIFY
|
||||||
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
/* Define if you want to disable /set* and /chg* */
|
||||||
#undef PACKAGE_BUGREPORT
|
#undef DISABLE_USERMOD
|
||||||
|
|
||||||
/* Define to the full name of this package. */
|
|
||||||
#undef PACKAGE_NAME
|
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
|
||||||
#undef PACKAGE_STRING
|
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#undef PACKAGE_TARNAME
|
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
|
||||||
#undef PACKAGE_URL
|
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#undef PACKAGE_VERSION
|
|
||||||
|
|
||||||
/* Define if you have the <sys/param.h> header file. */
|
|
||||||
#undef PARAMH
|
|
||||||
|
|
||||||
/* Define if you have POSIX signals */
|
|
||||||
#undef POSIX_SIGNALS
|
|
||||||
|
|
||||||
/* Define if you want +a/+q prefixes */
|
|
||||||
#undef PREFIX_AQ
|
|
||||||
|
|
||||||
/* Define if you have the <sys/rusage.h> header file. */
|
|
||||||
#undef RUSAGEH
|
|
||||||
|
|
||||||
/* Define to 1 if the `setpgrp' function takes no argument. */
|
|
||||||
#undef SETPGRP_VOID
|
|
||||||
|
|
||||||
/* Define if you want users to be notified when their shun is removed */
|
|
||||||
#undef SHUN_NOTICES
|
|
||||||
|
|
||||||
/* The size of `int', as computed by sizeof. */
|
|
||||||
#undef SIZEOF_INT
|
|
||||||
|
|
||||||
/* The size of `long', as computed by sizeof. */
|
|
||||||
#undef SIZEOF_LONG
|
|
||||||
|
|
||||||
/* The size of `rlim_t', as computed by sizeof. */
|
|
||||||
#undef SIZEOF_RLIM_T
|
|
||||||
|
|
||||||
/* The size of `short', as computed by sizeof. */
|
|
||||||
#undef SIZEOF_SHORT
|
|
||||||
|
|
||||||
/* Define the location of the executable */
|
|
||||||
#undef SPATH
|
|
||||||
|
|
||||||
/* If using the C implementation of alloca, define if you know the
|
|
||||||
direction of stack growth for your system; otherwise it will be
|
|
||||||
automatically deduced at runtime.
|
|
||||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
||||||
#undef STACK_DIRECTION
|
|
||||||
|
|
||||||
/* Link... statically(?) (defining this macro will probably cause the build
|
|
||||||
tofail) */
|
|
||||||
#undef STATIC_LINKING
|
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#undef STDC_HEADERS
|
|
||||||
|
|
||||||
/* Define if you have the <stddef.h> header file. */
|
|
||||||
#undef STDDEFH
|
|
||||||
|
|
||||||
/* Define if you have the <stdlib.h> header file. */
|
|
||||||
#undef STDLIBH
|
|
||||||
|
|
||||||
/* Define if you have the <string.h> header file. */
|
|
||||||
#undef STRINGH
|
|
||||||
|
|
||||||
/* Define if you have the <strings.h> header file. */
|
|
||||||
#undef STRINGSH
|
|
||||||
|
|
||||||
/* Define if you have the <sys/syslog.h> header file. */
|
|
||||||
#undef SYSSYSLOGH
|
|
||||||
|
|
||||||
/* Define if you have SYSV signals */
|
|
||||||
#undef SYSV_UNRELIABLE_SIGNALS
|
|
||||||
|
|
||||||
/* Define if you have times */
|
|
||||||
#undef TIMES_2
|
|
||||||
|
|
||||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
|
||||||
#undef TIME_WITH_SYS_TIME
|
|
||||||
|
|
||||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
|
||||||
#undef TM_IN_SYS_TIME
|
|
||||||
|
|
||||||
/* Define if you want nick!user@host shown for the topic setter */
|
|
||||||
#undef TOPIC_NICK_IS_NUHOST
|
|
||||||
|
|
||||||
/* Define if your system prepends an underscore to symbols */
|
/* Define if your system prepends an underscore to symbols */
|
||||||
#undef UNDERSCORE
|
#undef UNDERSCORE
|
||||||
|
|
||||||
/* Define if you have the <unistd.h> header file. */
|
/* Define if rlim_t is long long */
|
||||||
#undef UNISTDH
|
#undef LONG_LONG_RLIM_T
|
||||||
|
|
||||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
/* Define if you have snprintf */
|
||||||
#undef UNREAL_VERSION_GENERATION
|
#undef HAVE_SNPRINTF
|
||||||
|
|
||||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
/* Define if you have vsnprintf */
|
||||||
#undef UNREAL_VERSION_MAJOR
|
#undef HAVE_VSNPRINTF
|
||||||
|
|
||||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
/* Define if you have strlcpy */
|
||||||
#undef UNREAL_VERSION_MINOR
|
#undef HAVE_STRLCPY
|
||||||
|
|
||||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
/* Define if you have strlcat */
|
||||||
-rc2 for unrealircd-3.2.9-rc2) */
|
#undef HAVE_STRLCAT
|
||||||
#undef UNREAL_VERSION_SUFFIX
|
|
||||||
|
|
||||||
/* Define if you have libcurl installed to get remote includes and MOTD
|
/* Define if you have strlncat */
|
||||||
support */
|
#undef HAVE_STRLNCAT
|
||||||
#undef USE_LIBCURL
|
|
||||||
|
|
||||||
/* Define if you want to allow SSL connections */
|
/* Define if you have inet_pton */
|
||||||
#undef USE_SSL
|
#undef HAVE_INET_PTON
|
||||||
|
|
||||||
/* Define if you have zlib and want zip links support. */
|
/* Define if you have inet_ntop */
|
||||||
#undef ZIP_LINKS
|
#undef HAVE_INET_NTOP
|
||||||
|
|
||||||
/* Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris */
|
/* Define if you have a compiler with C99 variable length array support */
|
||||||
#undef _SOLARIS
|
#undef HAVE_C99_VARLEN_ARRAY
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
/* Define if you have alloca.h */
|
||||||
#undef const
|
#undef HAVE_ALLOCA_H
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
/* Define if you have alloca */
|
||||||
#undef gid_t
|
#undef HAVE_ALLOCA
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
/* Define to 1 if your system has no in6addr_any. */
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
#undef NO_IN6ADDR_ANY
|
||||||
#ifndef __cplusplus
|
|
||||||
#undef inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to `short' if <sys/types.h> does not define. */
|
|
||||||
#undef int16_t
|
|
||||||
|
|
||||||
/* Define to `long' if <sys/types.h> does not define. */
|
|
||||||
#undef int32_t
|
|
||||||
|
|
||||||
/* Define to the type of a signed integer type wide enough to hold a pointer,
|
|
||||||
if such a type exists, and if the system does not define it. */
|
|
||||||
#undef intptr_t
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> does not define. */
|
|
||||||
#undef mode_t
|
|
||||||
|
|
||||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
|
||||||
#undef size_t
|
|
||||||
|
|
||||||
/* Define to `unsigned short' if <sys/types.h> does not define. */
|
|
||||||
#undef u_int16_t
|
|
||||||
|
|
||||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
|
||||||
#undef u_int32_t
|
|
||||||
|
|
||||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
|
||||||
#undef uid_t
|
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
* $Id$
|
* $Id$
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.1.1.1.6.1.2.1 2000/07/14 20:22:57 stskeeps
|
||||||
|
* +- Indentation and more SJ3 fixes
|
||||||
|
*
|
||||||
* Revision 1.1.1.1.6.1 2000/05/28 08:55:24 cmunk
|
* Revision 1.1.1.1.6.1 2000/05/28 08:55:24 cmunk
|
||||||
* Import of Unreal3.1-beta3
|
* Import of Unreal3.1-beta3
|
||||||
*
|
*
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
extern MODVAR SSL_CTX *ctx;
|
extern SSL_CTX * ctx;
|
||||||
extern MODVAR SSL_CTX *ctx_server;
|
extern SSL_CTX *ctx_server;
|
||||||
extern MODVAR SSL_CTX *ctx_client;
|
extern SSL_CTX *ctx_client;
|
||||||
|
|
||||||
extern SSL_METHOD *meth;
|
extern SSL_METHOD *meth;
|
||||||
extern void init_ssl();
|
extern void init_ssl();
|
||||||
|
|||||||
+39
-141
@@ -24,7 +24,6 @@
|
|||||||
#define __struct_include__
|
#define __struct_include__
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "sys.h"
|
|
||||||
/* need to include ssl stuff here coz otherwise you get
|
/* need to include ssl stuff here coz otherwise you get
|
||||||
* conflicting types with isalnum/isalpha/etc @ redhat. -- Syzop
|
* conflicting types with isalnum/isalpha/etc @ redhat. -- Syzop
|
||||||
*/
|
*/
|
||||||
@@ -65,15 +64,19 @@
|
|||||||
#include "zip.h"
|
#include "zip.h"
|
||||||
#endif
|
#endif
|
||||||
#include "auth.h"
|
#include "auth.h"
|
||||||
|
#ifndef _WIN32
|
||||||
#include "tre/regex.h"
|
#include "tre/regex.h"
|
||||||
|
#else
|
||||||
|
#include "win32/regex.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "channel.h"
|
#include "channel.h"
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_WIN32) && !defined(NOSPOOF)
|
||||||
/* needed to workaround a warning / prototype/dll inconsistency crap */
|
#error "Compiling win32 without nospoof is VERY insecure and NOT supported"
|
||||||
#define vsnprintf unrl_vsnprintf
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
extern MODVAR int sendanyways;
|
extern MODVAR int sendanyways;
|
||||||
|
|
||||||
|
|
||||||
@@ -91,7 +94,6 @@ typedef struct _configflag_ban ConfigFlag_ban;
|
|||||||
typedef struct _configflag_tld ConfigFlag_tld;
|
typedef struct _configflag_tld ConfigFlag_tld;
|
||||||
typedef struct _configitem ConfigItem;
|
typedef struct _configitem ConfigItem;
|
||||||
typedef struct _configitem_me ConfigItem_me;
|
typedef struct _configitem_me ConfigItem_me;
|
||||||
typedef struct _configitem_files ConfigItem_files;
|
|
||||||
typedef struct _configitem_admin ConfigItem_admin;
|
typedef struct _configitem_admin ConfigItem_admin;
|
||||||
typedef struct _configitem_class ConfigItem_class;
|
typedef struct _configitem_class ConfigItem_class;
|
||||||
typedef struct _configitem_oper ConfigItem_oper;
|
typedef struct _configitem_oper ConfigItem_oper;
|
||||||
@@ -140,12 +142,7 @@ typedef struct SChanFloodProt ChanFloodProt;
|
|||||||
typedef struct SRemoveFld RemoveFld;
|
typedef struct SRemoveFld RemoveFld;
|
||||||
typedef struct ListOptions LOpts;
|
typedef struct ListOptions LOpts;
|
||||||
typedef struct FloodOpt aFloodOpt;
|
typedef struct FloodOpt aFloodOpt;
|
||||||
typedef struct Motd aMotdFile; /* represents a whole MOTD, including remote MOTD support info */
|
typedef struct MotdItem aMotd;
|
||||||
typedef struct MotdItem aMotdLine; /* one line of a MOTD stored as a linked list */
|
|
||||||
#ifdef USE_LIBCURL
|
|
||||||
typedef struct MotdDownload aMotdDownload; /* used to coordinate download of a remote MOTD */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct trecord aTrecord;
|
typedef struct trecord aTrecord;
|
||||||
typedef struct Command aCommand;
|
typedef struct Command aCommand;
|
||||||
typedef struct _cmdoverride Cmdoverride;
|
typedef struct _cmdoverride Cmdoverride;
|
||||||
@@ -153,7 +150,6 @@ typedef struct SMember Member;
|
|||||||
typedef struct SMembership Membership;
|
typedef struct SMembership Membership;
|
||||||
typedef struct SMembershipL MembershipL;
|
typedef struct SMembershipL MembershipL;
|
||||||
typedef struct JFlood aJFlood;
|
typedef struct JFlood aJFlood;
|
||||||
typedef struct PendingNet aPendingNet;
|
|
||||||
|
|
||||||
#ifdef ZIP_LINKS
|
#ifdef ZIP_LINKS
|
||||||
typedef struct Zdata aZdata;
|
typedef struct Zdata aZdata;
|
||||||
@@ -174,7 +170,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define NICKLEN 30
|
#define NICKLEN 30
|
||||||
#define USERLEN 10
|
#define USERLEN 10
|
||||||
#define REALLEN 50
|
#define REALLEN 50
|
||||||
#define SVIDLEN 30
|
|
||||||
#define TOPICLEN 307
|
#define TOPICLEN 307
|
||||||
#define CHANNELLEN 32
|
#define CHANNELLEN 32
|
||||||
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
|
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
|
||||||
@@ -236,7 +231,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
|
|
||||||
#define STAT_LOG -7 /* logfile for -x */
|
#define STAT_LOG -7 /* logfile for -x */
|
||||||
#define STAT_CONNECTING -6
|
#define STAT_CONNECTING -6
|
||||||
#define STAT_SSL_STARTTLS_HANDSHAKE -8
|
|
||||||
#define STAT_SSL_CONNECT_HANDSHAKE -5
|
#define STAT_SSL_CONNECT_HANDSHAKE -5
|
||||||
#define STAT_SSL_ACCEPT_HANDSHAKE -4
|
#define STAT_SSL_ACCEPT_HANDSHAKE -4
|
||||||
#define STAT_HANDSHAKE -3
|
#define STAT_HANDSHAKE -3
|
||||||
@@ -259,11 +253,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define IsLog(x) ((x)->status == STAT_LOG)
|
#define IsLog(x) ((x)->status == STAT_LOG)
|
||||||
|
|
||||||
#ifdef USE_SSL
|
#ifdef USE_SSL
|
||||||
#define IsSSLStartTLSHandshake(x) ((x)->status == STAT_SSL_STARTTLS_HANDSHAKE)
|
|
||||||
#define IsSSLAcceptHandshake(x) ((x)->status == STAT_SSL_ACCEPT_HANDSHAKE)
|
#define IsSSLAcceptHandshake(x) ((x)->status == STAT_SSL_ACCEPT_HANDSHAKE)
|
||||||
#define IsSSLConnectHandshake(x) ((x)->status == STAT_SSL_CONNECT_HANDSHAKE)
|
#define IsSSLConnectHandshake(x) ((x)->status == STAT_SSL_CONNECT_HANDSHAKE)
|
||||||
#define IsSSLHandshake(x) (IsSSLAcceptHandshake(x) || IsSSLConnectHandshake(x) | IsSSLStartTLSHandshake(x))
|
#define IsSSLHandshake(x) (IsSSLAcceptHandshake(x) || IsSSLConnectHandshake(x))
|
||||||
#define SetSSLStartTLSHandshake(x) ((x)->status = STAT_SSL_STARTTLS_HANDSHAKE)
|
|
||||||
#define SetSSLAcceptHandshake(x) ((x)->status = STAT_SSL_ACCEPT_HANDSHAKE)
|
#define SetSSLAcceptHandshake(x) ((x)->status = STAT_SSL_ACCEPT_HANDSHAKE)
|
||||||
#define SetSSLConnectHandshake(x) ((x)->status = STAT_SSL_CONNECT_HANDSHAKE)
|
#define SetSSLConnectHandshake(x) ((x)->status = STAT_SSL_CONNECT_HANDSHAKE)
|
||||||
#endif
|
#endif
|
||||||
@@ -277,7 +269,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define SetLog(x) ((x)->status = STAT_LOG)
|
#define SetLog(x) ((x)->status = STAT_LOG)
|
||||||
|
|
||||||
#define IsSynched(x) (x->serv->flags.synced)
|
#define IsSynched(x) (x->serv->flags.synced)
|
||||||
#define IsServerSent(x) (x->serv && x->serv->flags.server_sent)
|
|
||||||
|
|
||||||
/* opt.. */
|
/* opt.. */
|
||||||
#define OPT_SJOIN 0x0001
|
#define OPT_SJOIN 0x0001
|
||||||
@@ -322,7 +313,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define FLAGS_SQUIT 0x20000 /* Server has been /squit by an oper */
|
#define FLAGS_SQUIT 0x20000 /* Server has been /squit by an oper */
|
||||||
#define FLAGS_PROTOCTL 0x40000 /* Received a PROTOCTL message */
|
#define FLAGS_PROTOCTL 0x40000 /* Received a PROTOCTL message */
|
||||||
#define FLAGS_PING 0x80000
|
#define FLAGS_PING 0x80000
|
||||||
#define FLAGS_EAUTH 0x100000
|
#define FLAGS_ASKEDPING 0x100000
|
||||||
#define FLAGS_NETINFO 0x200000
|
#define FLAGS_NETINFO 0x200000
|
||||||
#define FLAGS_HYBNOTICE 0x400000
|
#define FLAGS_HYBNOTICE 0x400000
|
||||||
#define FLAGS_QUARANTINE 0x800000
|
#define FLAGS_QUARANTINE 0x800000
|
||||||
@@ -371,12 +362,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define PROTO_NAMESX 0x4000 /* Send all rights in NAMES output */
|
#define PROTO_NAMESX 0x4000 /* Send all rights in NAMES output */
|
||||||
#define PROTO_CLK 0x8000 /* Send cloaked host in the NICK command (regardless of +x/-x) */
|
#define PROTO_CLK 0x8000 /* Send cloaked host in the NICK command (regardless of +x/-x) */
|
||||||
#define PROTO_UHNAMES 0x10000 /* Send n!u@h in NAMES */
|
#define PROTO_UHNAMES 0x10000 /* Send n!u@h in NAMES */
|
||||||
#define PROTO_CLICAP 0x20000 /* client capability negotiation in process */
|
|
||||||
#define PROTO_STARTTLS 0x40000 /* client supports STARTTLS */
|
|
||||||
#define PROTO_SASL 0x80000 /* client is doing SASL */
|
|
||||||
#define PROTO_AWAY_NOTIFY 0x100000 /* client supports away-notify */
|
|
||||||
#define PROTO_ACCOUNT_NOTIFY 0x200000 /* client supports account-notify */
|
|
||||||
#define PROTO_MLOCK 0x400000 /* server supports MLOCK */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* flags macros.
|
* flags macros.
|
||||||
@@ -406,7 +391,6 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define IsAnOper(x) ((x)->umodes & (UMODE_OPER|UMODE_LOCOP))
|
#define IsAnOper(x) ((x)->umodes & (UMODE_OPER|UMODE_LOCOP))
|
||||||
#define IsARegNick(x) ((x)->umodes & (UMODE_REGNICK))
|
#define IsARegNick(x) ((x)->umodes & (UMODE_REGNICK))
|
||||||
#define IsRegNick(x) ((x)->umodes & UMODE_REGNICK)
|
#define IsRegNick(x) ((x)->umodes & UMODE_REGNICK)
|
||||||
#define IsLoggedIn(x) (IsRegNick(x) || (x->user && (*x->user->svid != '*') && !isdigit(*x->user->svid))) /* registered nick (+r) or just logged into services (may be -r) */
|
|
||||||
#define IsRegNickMsg(x) ((x)->umodes & UMODE_RGSTRONLY)
|
#define IsRegNickMsg(x) ((x)->umodes & UMODE_RGSTRONLY)
|
||||||
#define IsNoCTCP(x) ((x)->umodes & UMODE_NOCTCP)
|
#define IsNoCTCP(x) ((x)->umodes & UMODE_NOCTCP)
|
||||||
#define IsWebTV(x) ((x)->umodes & UMODE_WEBTV)
|
#define IsWebTV(x) ((x)->umodes & UMODE_WEBTV)
|
||||||
@@ -424,8 +408,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#define GotNetInfo(x) ((x)->flags & FLAGS_NETINFO)
|
#define GotNetInfo(x) ((x)->flags & FLAGS_NETINFO)
|
||||||
#define SetNetInfo(x) ((x)->flags |= FLAGS_NETINFO)
|
#define SetNetInfo(x) ((x)->flags |= FLAGS_NETINFO)
|
||||||
#define IsCGIIRC(x) ((x)->flags & FLAGS_CGIIRC)
|
#define IsCGIIRC(x) ((x)->flags & FLAGS_CGIIRC)
|
||||||
#define SetEAuth(x) ((x)->flags |= FLAGS_EAUTH)
|
|
||||||
#define IsEAuth(x) ((x)->flags & FLAGS_EAUTH)
|
|
||||||
#define IsShunned(x) ((x)->flags & FLAGS_SHUNNED)
|
#define IsShunned(x) ((x)->flags & FLAGS_SHUNNED)
|
||||||
#define SetShunned(x) ((x)->flags |= FLAGS_SHUNNED)
|
#define SetShunned(x) ((x)->flags |= FLAGS_SHUNNED)
|
||||||
#define ClearShunned(x) ((x)->flags &= ~FLAGS_SHUNNED)
|
#define ClearShunned(x) ((x)->flags &= ~FLAGS_SHUNNED)
|
||||||
@@ -460,7 +443,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
|||||||
#ifdef USE_SSL
|
#ifdef USE_SSL
|
||||||
#define IsSSL(x) IsSecure(x)
|
#define IsSSL(x) IsSecure(x)
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef NOSPOOF
|
||||||
#define IsNotSpoof(x) ((x)->nospoof == 0)
|
#define IsNotSpoof(x) ((x)->nospoof == 0)
|
||||||
|
#else
|
||||||
|
#define IsNotSpoof(x) (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define GetHost(x) (IsHidden(x) ? (x)->user->virthost : (x)->user->realhost)
|
#define GetHost(x) (IsHidden(x) ? (x)->user->virthost : (x)->user->realhost)
|
||||||
#define GetIP(x) ((x->user && x->user->ip_str) ? x->user->ip_str : (MyConnect(x) ? Inet_ia2p(&x->ip) : NULL))
|
#define GetIP(x) ((x->user && x->user->ip_str) ? x->user->ip_str : (MyConnect(x) ? Inet_ia2p(&x->ip) : NULL))
|
||||||
@@ -726,46 +713,6 @@ struct FloodOpt {
|
|||||||
TS firstmsg;
|
TS firstmsg;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef USE_LIBCURL
|
|
||||||
struct Motd;
|
|
||||||
struct MotdDownload
|
|
||||||
{
|
|
||||||
struct Motd *themotd;
|
|
||||||
};
|
|
||||||
#endif /* USE_LIBCURL */
|
|
||||||
|
|
||||||
struct Motd
|
|
||||||
{
|
|
||||||
struct MotdItem *lines;
|
|
||||||
struct tm last_modified; /* store the last modification time */
|
|
||||||
|
|
||||||
#ifdef USE_LIBCURL
|
|
||||||
/*
|
|
||||||
This pointer is used to communicate with an asynchronous MOTD
|
|
||||||
download. The problem is that a download may take 10 seconds or
|
|
||||||
more to complete and, in that time, the IRCd could be rehashed.
|
|
||||||
This would mean that TLD blocks are reallocated and thus the
|
|
||||||
aMotd structs would be free()d in the meantime.
|
|
||||||
|
|
||||||
To prevent such a situation from leading to a segfault, we
|
|
||||||
introduce this remote control pointer. It works like this:
|
|
||||||
1. read_motd() is called with a URL. A new MotdDownload is
|
|
||||||
allocated and the pointer is placed here. This pointer is
|
|
||||||
also passed to the asynchrnous download handler.
|
|
||||||
2.a. The download is completed and read_motd_asynch_downloaded()
|
|
||||||
is called with the same pointer. From this function, this pointer
|
|
||||||
if free()d. No other code may free() the pointer. Not even free_motd().
|
|
||||||
OR
|
|
||||||
2.b. The user rehashes the IRCd before the download is completed.
|
|
||||||
free_motd() is called, which sets motd_download->themotd to NULL
|
|
||||||
to signal to read_motd_asynch_downloaded() that it should ignore
|
|
||||||
the download. read_motd_asynch_downloaded() is eventually called
|
|
||||||
and frees motd_download.
|
|
||||||
*/
|
|
||||||
struct MotdDownload *motd_download;
|
|
||||||
#endif /* USE_LIBCURL */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct MotdItem {
|
struct MotdItem {
|
||||||
char *line;
|
char *line;
|
||||||
struct MotdItem *next;
|
struct MotdItem *next;
|
||||||
@@ -809,15 +756,7 @@ struct User {
|
|||||||
Link *silence; /* chain of silence pointer blocks */
|
Link *silence; /* chain of silence pointer blocks */
|
||||||
Link *dccallow; /* chain of dccallowed entries */
|
Link *dccallow; /* chain of dccallowed entries */
|
||||||
char *away; /* pointer to away message */
|
char *away; /* pointer to away message */
|
||||||
|
u_int32_t servicestamp; /* Services' time stamp variable */
|
||||||
/*
|
|
||||||
* svid: a value that is assigned by services to this user record.
|
|
||||||
* in previous versions of Unreal, this was strictly a timestamp value,
|
|
||||||
* which is less useful in the modern world of IRC where nicks are grouped to
|
|
||||||
* accounts, so it is now a string.
|
|
||||||
*/
|
|
||||||
char svid[SVIDLEN + 1];
|
|
||||||
|
|
||||||
signed char refcnt; /* Number of times this block is referenced */
|
signed char refcnt; /* Number of times this block is referenced */
|
||||||
unsigned short joined; /* number of channels joined */
|
unsigned short joined; /* number of channels joined */
|
||||||
char username[USERLEN + 1];
|
char username[USERLEN + 1];
|
||||||
@@ -862,7 +801,6 @@ struct Server {
|
|||||||
#endif
|
#endif
|
||||||
struct {
|
struct {
|
||||||
unsigned synced:1; /* Server linked? (3.2beta18+) */
|
unsigned synced:1; /* Server linked? (3.2beta18+) */
|
||||||
unsigned server_sent:1; /* SERVER message sent to this link? (for outgoing links) */
|
|
||||||
} flags;
|
} flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -984,8 +922,6 @@ typedef struct {
|
|||||||
#define LISTENER_SSL 0x000040
|
#define LISTENER_SSL 0x000040
|
||||||
#define LISTENER_BOUND 0x000080
|
#define LISTENER_BOUND 0x000080
|
||||||
|
|
||||||
#define IsServersOnlyListener(x) ((x) && ((x)->umodes & LISTENER_SERVERSONLY))
|
|
||||||
|
|
||||||
#define CONNECT_SSL 0x000001
|
#define CONNECT_SSL 0x000001
|
||||||
#define CONNECT_ZIP 0x000002
|
#define CONNECT_ZIP 0x000002
|
||||||
#define CONNECT_AUTO 0x000004
|
#define CONNECT_AUTO 0x000004
|
||||||
@@ -996,8 +932,6 @@ typedef struct {
|
|||||||
#define SSLFLAG_FAILIFNOCERT 0x1
|
#define SSLFLAG_FAILIFNOCERT 0x1
|
||||||
#define SSLFLAG_VERIFYCERT 0x2
|
#define SSLFLAG_VERIFYCERT 0x2
|
||||||
#define SSLFLAG_DONOTACCEPTSELFSIGNED 0x4
|
#define SSLFLAG_DONOTACCEPTSELFSIGNED 0x4
|
||||||
#define SSLFLAG_NOSTARTTLS 0x8
|
|
||||||
|
|
||||||
struct Client {
|
struct Client {
|
||||||
struct Client *next, *prev, *hnext;
|
struct Client *next, *prev, *hnext;
|
||||||
anUser *user; /* ...defined, if this is a User */
|
anUser *user; /* ...defined, if this is a User */
|
||||||
@@ -1035,7 +969,9 @@ struct Client {
|
|||||||
short lastsq; /* # of 2k blocks when sendqueued called last */
|
short lastsq; /* # of 2k blocks when sendqueued called last */
|
||||||
dbuf sendQ; /* Outgoing message queue--if socket full */
|
dbuf sendQ; /* Outgoing message queue--if socket full */
|
||||||
dbuf recvQ; /* Hold for data incoming yet to be parsed */
|
dbuf recvQ; /* Hold for data incoming yet to be parsed */
|
||||||
|
#ifdef NOSPOOF
|
||||||
u_int32_t nospoof; /* Anti-spoofing random number */
|
u_int32_t nospoof; /* Anti-spoofing random number */
|
||||||
|
#endif
|
||||||
int proto; /* ProtoCtl options */
|
int proto; /* ProtoCtl options */
|
||||||
long sendM; /* Statistics: protocol messages send */
|
long sendM; /* Statistics: protocol messages send */
|
||||||
long sendK; /* Statistics: total k-bytes send */
|
long sendK; /* Statistics: total k-bytes send */
|
||||||
@@ -1075,11 +1011,6 @@ struct Client {
|
|||||||
TS cputime;
|
TS cputime;
|
||||||
#endif
|
#endif
|
||||||
char *error_str; /* Quit reason set by dead_link in case of socket/buffer error */
|
char *error_str; /* Quit reason set by dead_link in case of socket/buffer error */
|
||||||
|
|
||||||
char sasl_agent[NICKLEN + 1];
|
|
||||||
unsigned char sasl_out;
|
|
||||||
unsigned char sasl_complete;
|
|
||||||
u_short sasl_cookie;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1146,18 +1077,18 @@ struct _configflag_tld
|
|||||||
#define CONF_BAN_TYPE_AKILL 1
|
#define CONF_BAN_TYPE_AKILL 1
|
||||||
#define CONF_BAN_TYPE_TEMPORARY 2
|
#define CONF_BAN_TYPE_TEMPORARY 2
|
||||||
|
|
||||||
/* Ban actions. These must be ordered by severity (!) */
|
#define BAN_ACT_KILL 1
|
||||||
#define BAN_ACT_GZLINE 1100
|
#define BAN_ACT_TEMPSHUN 2
|
||||||
#define BAN_ACT_GLINE 1000
|
#define BAN_ACT_SHUN 3
|
||||||
#define BAN_ACT_ZLINE 900
|
#define BAN_ACT_KLINE 4
|
||||||
#define BAN_ACT_KLINE 800
|
#define BAN_ACT_ZLINE 5
|
||||||
#define BAN_ACT_SHUN 700
|
#define BAN_ACT_GLINE 6
|
||||||
#define BAN_ACT_KILL 600
|
#define BAN_ACT_GZLINE 7
|
||||||
#define BAN_ACT_TEMPSHUN 500
|
/* below are pretty much spamfilter only */
|
||||||
#define BAN_ACT_VIRUSCHAN 400
|
#define BAN_ACT_BLOCK 8
|
||||||
#define BAN_ACT_DCCBLOCK 300
|
#define BAN_ACT_DCCBLOCK 9
|
||||||
#define BAN_ACT_BLOCK 200
|
#define BAN_ACT_VIRUSCHAN 10
|
||||||
#define BAN_ACT_WARN 100
|
#define BAN_ACT_WARN 11
|
||||||
|
|
||||||
|
|
||||||
#define CRULE_ALL 0
|
#define CRULE_ALL 0
|
||||||
@@ -1178,12 +1109,6 @@ struct _configitem_me {
|
|||||||
unsigned short numeric;
|
unsigned short numeric;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_files {
|
|
||||||
char *motd_file, *rules_file, *smotd_file;
|
|
||||||
char *botmotd_file, *opermotd_file, *svsmotd_file;
|
|
||||||
char *pid_file, *tune_file;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _configitem_admin {
|
struct _configitem_admin {
|
||||||
ConfigItem *prev, *next;
|
ConfigItem *prev, *next;
|
||||||
ConfigFlag flag;
|
ConfigFlag flag;
|
||||||
@@ -1220,9 +1145,6 @@ struct _configitem_allow {
|
|||||||
ConfigItem_class *class;
|
ConfigItem_class *class;
|
||||||
struct irc_netmask *netmask;
|
struct irc_netmask *netmask;
|
||||||
ConfigFlag_allow flags;
|
ConfigFlag_allow flags;
|
||||||
#ifdef INET6
|
|
||||||
unsigned short ipv6_clone_mask;
|
|
||||||
#endif /* INET6 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_oper {
|
struct _configitem_oper {
|
||||||
@@ -1232,7 +1154,7 @@ struct _configitem_oper {
|
|||||||
anAuthStruct *auth;
|
anAuthStruct *auth;
|
||||||
ConfigItem_class *class;
|
ConfigItem_class *class;
|
||||||
ConfigItem *from;
|
ConfigItem *from;
|
||||||
unsigned long modes, require_modes;
|
unsigned long modes;
|
||||||
long oflags;
|
long oflags;
|
||||||
int maxlogins;
|
int maxlogins;
|
||||||
};
|
};
|
||||||
@@ -1261,10 +1183,10 @@ struct _configitem_ulines {
|
|||||||
struct _configitem_tld {
|
struct _configitem_tld {
|
||||||
ConfigItem *prev, *next;
|
ConfigItem *prev, *next;
|
||||||
ConfigFlag_tld flag;
|
ConfigFlag_tld flag;
|
||||||
char *mask, *channel;
|
char *mask, *motd_file, *rules_file, *smotd_file;
|
||||||
char *motd_file, *rules_file, *smotd_file;
|
char *botmotd_file, *opermotd_file, *channel;
|
||||||
char *botmotd_file, *opermotd_file;
|
struct tm motd_tm, smotd_tm;
|
||||||
aMotdFile rules, motd, smotd, botmotd, opermotd;
|
aMotd *rules, *motd, *smotd, *botmotd, *opermotd;
|
||||||
u_short options;
|
u_short options;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1385,14 +1307,14 @@ struct _configitem_deny_version {
|
|||||||
struct _configitem_deny_channel {
|
struct _configitem_deny_channel {
|
||||||
ConfigItem *prev, *next;
|
ConfigItem *prev, *next;
|
||||||
ConfigFlag flag;
|
ConfigFlag flag;
|
||||||
char *channel, *reason, *redirect, *class;
|
char *channel, *reason, *redirect;
|
||||||
unsigned char warn;
|
unsigned char warn;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_allow_channel {
|
struct _configitem_allow_channel {
|
||||||
ConfigItem *prev, *next;
|
ConfigItem *prev, *next;
|
||||||
ConfigFlag flag;
|
ConfigFlag flag;
|
||||||
char *channel, *class;
|
char *channel;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_allow_dcc {
|
struct _configitem_allow_dcc {
|
||||||
@@ -1447,21 +1369,9 @@ struct _configitem_alias_format {
|
|||||||
regex_t expr;
|
regex_t expr;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* In a rehash scenario, conf_include will contain all of the included
|
|
||||||
* configs that are actually in use. It also will contain includes
|
|
||||||
* that are being processed so that the configuration may be updated.
|
|
||||||
* INCLUDE_NOTLOADED is set on all of the config files that are being
|
|
||||||
* loaded and unset on already-loaded files. See
|
|
||||||
* unload_loaded_includes() and load_includes().
|
|
||||||
*/
|
|
||||||
#define INCLUDE_NOTLOADED 0x1
|
#define INCLUDE_NOTLOADED 0x1
|
||||||
#define INCLUDE_REMOTE 0x2
|
#define INCLUDE_REMOTE 0x2
|
||||||
#define INCLUDE_DLQUEUED 0x4
|
#define INCLUDE_DLQUEUED 0x4
|
||||||
/**
|
|
||||||
* Marks that an include was loaded without error. This seems to
|
|
||||||
* overlap with the INCLUDE_NOTLOADED meaning(?). --binki
|
|
||||||
*/
|
|
||||||
#define INCLUDE_USED 0x8
|
#define INCLUDE_USED 0x8
|
||||||
|
|
||||||
struct _configitem_include {
|
struct _configitem_include {
|
||||||
@@ -1472,15 +1382,13 @@ struct _configitem_include {
|
|||||||
char *url;
|
char *url;
|
||||||
char *errorbuf;
|
char *errorbuf;
|
||||||
#endif
|
#endif
|
||||||
char *included_from;
|
|
||||||
int included_from_line;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_help {
|
struct _configitem_help {
|
||||||
ConfigItem *prev, *next;
|
ConfigItem *prev, *next;
|
||||||
ConfigFlag flag;
|
ConfigFlag flag;
|
||||||
char *command;
|
char *command;
|
||||||
aMotdLine *text;
|
aMotd *text;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _configitem_offchans {
|
struct _configitem_offchans {
|
||||||
@@ -1647,7 +1555,6 @@ struct Channel {
|
|||||||
#ifdef JOINTHROTTLE
|
#ifdef JOINTHROTTLE
|
||||||
aJFlood *jflood;
|
aJFlood *jflood;
|
||||||
#endif
|
#endif
|
||||||
char *mode_lock;
|
|
||||||
char chname[1];
|
char chname[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1840,7 +1747,7 @@ struct liststruct {
|
|||||||
|
|
||||||
/* misc variable externs */
|
/* misc variable externs */
|
||||||
|
|
||||||
extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[], *unrealinfo[];
|
extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[];
|
||||||
extern MODVAR char *generation, *creation;
|
extern MODVAR char *generation, *creation;
|
||||||
extern MODVAR char *gnulicense[];
|
extern MODVAR char *gnulicense[];
|
||||||
/* misc defines */
|
/* misc defines */
|
||||||
@@ -1851,8 +1758,6 @@ extern MODVAR char *gnulicense[];
|
|||||||
#define PARTFMT ":%s PART %s"
|
#define PARTFMT ":%s PART %s"
|
||||||
#define PARTFMT2 ":%s PART %s :%s"
|
#define PARTFMT2 ":%s PART %s :%s"
|
||||||
|
|
||||||
#define isexcept void
|
|
||||||
|
|
||||||
#ifdef USE_SSL
|
#ifdef USE_SSL
|
||||||
#include "ssl.h"
|
#include "ssl.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -1936,13 +1841,6 @@ struct JFlood {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct PendingNet {
|
|
||||||
aPendingNet *prev, *next; /* Previous and next in list */
|
|
||||||
aClient *sptr; /**< Client to which these servers belong */
|
|
||||||
int numservers; /**< Amount of servers in list */
|
|
||||||
int servers[1]; /** The list of servers (array of integer server numerics) */
|
|
||||||
};
|
|
||||||
|
|
||||||
void init_throttling_hash();
|
void init_throttling_hash();
|
||||||
int hash_throttling(struct IN_ADDR *in);
|
int hash_throttling(struct IN_ADDR *in);
|
||||||
struct ThrottlingBucket *find_throttling_bucket(struct IN_ADDR *in);
|
struct ThrottlingBucket *find_throttling_bucket(struct IN_ADDR *in);
|
||||||
|
|||||||
+8
-17
@@ -22,9 +22,6 @@
|
|||||||
#ifndef __sys_include__
|
#ifndef __sys_include__
|
||||||
#define __sys_include__
|
#define __sys_include__
|
||||||
|
|
||||||
/* PATH_MAX */
|
|
||||||
#include <limits.h>
|
|
||||||
|
|
||||||
/* alloca stuff */
|
/* alloca stuff */
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# include <malloc.h>
|
# include <malloc.h>
|
||||||
@@ -46,7 +43,11 @@
|
|||||||
#ifdef ISC202
|
#ifdef ISC202
|
||||||
#include <net/errno.h>
|
#include <net/errno.h>
|
||||||
#else
|
#else
|
||||||
|
# ifndef _WIN32
|
||||||
|
#include <sys/errno.h>
|
||||||
|
# else
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#include "setup.h"
|
#include "setup.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -70,28 +71,18 @@
|
|||||||
# include <string.h>
|
# include <string.h>
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* get intptr_t if the system provides it -- otherwise, ./configure will define it for us */
|
|
||||||
#ifdef HAVE_STDINT_H
|
|
||||||
#include <stdint.h>
|
|
||||||
#else
|
|
||||||
#ifdef HAVE_INTTYPES_H
|
|
||||||
#include <inttypes.h>
|
|
||||||
#endif /* HAVE_INTTYPES_H */
|
|
||||||
#endif /* HAVE_STDINT_H */
|
|
||||||
|
|
||||||
#ifdef SSL
|
#ifdef SSL
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef INET6
|
#ifdef INET6
|
||||||
|
#ifndef _WIN32
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#endif
|
#else
|
||||||
#ifdef _WIN32
|
|
||||||
#define _WIN32_WINNT 0x0501
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#ifndef GOT_STRCASECMP
|
#ifndef GOT_STRCASECMP
|
||||||
#define strcasecmp mycmp
|
#define strcasecmp mycmp
|
||||||
#define strncasecmp myncmp
|
#define strncasecmp myncmp
|
||||||
@@ -144,7 +135,7 @@ extern char *rindex(char *, char);
|
|||||||
/*
|
/*
|
||||||
* Mac OS X Tiger Support (Intel Only)
|
* Mac OS X Tiger Support (Intel Only)
|
||||||
*/
|
*/
|
||||||
#if defined(macosx) || defined(__APPLE__)
|
#if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
|
||||||
#define OSXTIGER
|
#define OSXTIGER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
/** Standard include for all UnrealIRCd modules.
|
|
||||||
* This should normally provide all of UnrealIRCd's functionality
|
|
||||||
* (that is publicly exposed anyway).
|
|
||||||
*/
|
|
||||||
#include "config.h"
|
|
||||||
#include "struct.h"
|
|
||||||
#include "common.h"
|
|
||||||
#include "sys.h"
|
|
||||||
#include "numeric.h"
|
|
||||||
#include "msg.h"
|
|
||||||
#include "proto.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 _WIN32
|
|
||||||
#include "version.h"
|
|
||||||
#endif
|
|
||||||
+4
-4
@@ -2,10 +2,10 @@
|
|||||||
#define URL_H
|
#define URL_H
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
int MODFUNC url_is_valid(const char *);
|
int MODFUNC url_is_valid(char *);
|
||||||
char MODFUNC *url_getfilename(const char *url);
|
char MODFUNC *url_getfilename(char *);
|
||||||
char MODFUNC *download_file(const char *, char **);
|
char MODFUNC *download_file(char *, char **);
|
||||||
void MODFUNC download_file_async(const char *, time_t, vFP, void *callback_data);
|
void MODFUNC download_file_async(char *, time_t, vFP);
|
||||||
void MODFUNC url_do_transfers_async(void);
|
void MODFUNC url_do_transfers_async(void);
|
||||||
void MODFUNC url_init(void);
|
void MODFUNC url_init(void);
|
||||||
|
|
||||||
|
|||||||
+18
-26
@@ -7,16 +7,6 @@
|
|||||||
#ifndef __versioninclude
|
#ifndef __versioninclude
|
||||||
#define __versioninclude 1
|
#define __versioninclude 1
|
||||||
|
|
||||||
/*
|
|
||||||
* Utility macros to convert version number constants to strings.
|
|
||||||
* Delayed expansion requires two macros to work. See:
|
|
||||||
*
|
|
||||||
* $ info '(cpp) Stringification'
|
|
||||||
*/
|
|
||||||
#define _macro_to_str(n) #n
|
|
||||||
#define macro_to_str(n) _macro_to_str(n)
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mark of settings
|
* Mark of settings
|
||||||
*/
|
*/
|
||||||
@@ -39,29 +29,31 @@
|
|||||||
* Also don't forget to bump the protocol version every release.
|
* Also don't forget to bump the protocol version every release.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/** These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
||||||
* The following code concerns UNREAL_VERSION_GENERATION,
|
|
||||||
* UNREAL_VERSION_MAJOR, and UNREAL_VERSION_MINOR.
|
|
||||||
*
|
|
||||||
* These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
|
||||||
* can easily distinguish versions.
|
* can easily distinguish versions.
|
||||||
*
|
|
||||||
* They are set during ./configure, so update ./configure.ac's AC_INIT
|
|
||||||
* line upon a new release.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Year + week of the year (ISO week number, with Monday as first day of week)
|
/** The generation version number (eg: 3 for Unreal3*) */
|
||||||
|
#define UNREAL_VERSION_GENERATION 3
|
||||||
|
|
||||||
|
/** The major version number (eg: 2 for Unreal3.2*) */
|
||||||
|
#define UNREAL_VERSION_MAJOR 2
|
||||||
|
|
||||||
|
/** The minor version number (eg: 1 for Unreal3.2.1), negative numbers for unstable/alpha/beta */
|
||||||
|
#define UNREAL_VERSION_MINOR 8
|
||||||
|
|
||||||
|
/** Year + week of the year (with Monday as first day of the week).
|
||||||
* Can be useful if the above 3 versionids are insufficient for you (eg: you want to support CVS).
|
* Can be useful if the above 3 versionids are insufficient for you (eg: you want to support CVS).
|
||||||
* This is updated automatically on the CVS server every Monday. so don't touch it.
|
* This is updated automatically on the CVS server every Monday. so don't touch it.
|
||||||
*/
|
*/
|
||||||
#define UNREAL_VERSION_TIME 201430
|
#define UNREAL_VERSION_TIME 200914
|
||||||
|
|
||||||
#define UnrealProtocol 2311
|
#define UnrealProtocol 2309
|
||||||
#define PATCH1 macro_to_str(UNREAL_VERSION_GENERATION)
|
#define PATCH1 "3"
|
||||||
#define PATCH2 "." macro_to_str(UNREAL_VERSION_MAJOR)
|
#define PATCH2 ".2"
|
||||||
#define PATCH3 "." macro_to_str(UNREAL_VERSION_MINOR)
|
#define PATCH3 ".8"
|
||||||
#define PATCH4 UNREAL_VERSION_SUFFIX
|
#define PATCH4 ""
|
||||||
#define PATCH5 ""
|
#define PATCH5 ".1"
|
||||||
#define PATCH6 ""
|
#define PATCH6 ""
|
||||||
#define PATCH7 ""
|
#define PATCH7 ""
|
||||||
#define PATCH8 COMPILEINFO
|
#define PATCH8 COMPILEINFO
|
||||||
|
|||||||
@@ -0,0 +1,333 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||||
|
* Copyright (C) 2007-2008 by Daniel Stenberg
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this
|
||||||
|
* software and its documentation for any purpose and without
|
||||||
|
* fee is hereby granted, provided that the above copyright
|
||||||
|
* notice appear in all copies and that both that copyright
|
||||||
|
* notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of M.I.T. not be used in
|
||||||
|
* advertising or publicity pertaining to distribution of the
|
||||||
|
* software without specific, written prior permission.
|
||||||
|
* M.I.T. makes no representations about the suitability of
|
||||||
|
* this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ARES__H
|
||||||
|
#define ARES__H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define WIN32 when build target is Win32 API
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
||||||
|
#define WIN32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <winsock.h>
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
|
||||||
|
libc5-based Linux systems. Only include it on system that are known to
|
||||||
|
require it! */
|
||||||
|
#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
|
||||||
|
defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY)
|
||||||
|
#include <sys/select.h>
|
||||||
|
#endif
|
||||||
|
#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
|
||||||
|
#include <sys/bsdskt.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(WATT32)
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <tcp.h>
|
||||||
|
#elif defined(WIN32)
|
||||||
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
|
# endif
|
||||||
|
# include <winsock.h>
|
||||||
|
# include <windows.h>
|
||||||
|
//# include <ws2tcpip.h>
|
||||||
|
#else
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ARES_SUCCESS 0
|
||||||
|
|
||||||
|
/* Server error codes (ARES_ENODATA indicates no relevant answer) */
|
||||||
|
#define ARES_ENODATA 1
|
||||||
|
#define ARES_EFORMERR 2
|
||||||
|
#define ARES_ESERVFAIL 3
|
||||||
|
#define ARES_ENOTFOUND 4
|
||||||
|
#define ARES_ENOTIMP 5
|
||||||
|
#define ARES_EREFUSED 6
|
||||||
|
|
||||||
|
/* Locally generated error codes */
|
||||||
|
#define ARES_EBADQUERY 7
|
||||||
|
#define ARES_EBADNAME 8
|
||||||
|
#define ARES_EBADFAMILY 9
|
||||||
|
#define ARES_EBADRESP 10
|
||||||
|
#define ARES_ECONNREFUSED 11
|
||||||
|
#define ARES_ETIMEOUT 12
|
||||||
|
#define ARES_EOF 13
|
||||||
|
#define ARES_EFILE 14
|
||||||
|
#define ARES_ENOMEM 15
|
||||||
|
#define ARES_EDESTRUCTION 16
|
||||||
|
#define ARES_EBADSTR 17
|
||||||
|
|
||||||
|
/* ares_getnameinfo error codes */
|
||||||
|
#define ARES_EBADFLAGS 18
|
||||||
|
|
||||||
|
/* ares_getaddrinfo error codes */
|
||||||
|
#define ARES_ENONAME 19
|
||||||
|
#define ARES_EBADHINTS 20
|
||||||
|
|
||||||
|
/* Flag values */
|
||||||
|
#define ARES_FLAG_USEVC (1 << 0)
|
||||||
|
#define ARES_FLAG_PRIMARY (1 << 1)
|
||||||
|
#define ARES_FLAG_IGNTC (1 << 2)
|
||||||
|
#define ARES_FLAG_NORECURSE (1 << 3)
|
||||||
|
#define ARES_FLAG_STAYOPEN (1 << 4)
|
||||||
|
#define ARES_FLAG_NOSEARCH (1 << 5)
|
||||||
|
#define ARES_FLAG_NOALIASES (1 << 6)
|
||||||
|
#define ARES_FLAG_NOCHECKRESP (1 << 7)
|
||||||
|
|
||||||
|
/* Option mask values */
|
||||||
|
#define ARES_OPT_FLAGS (1 << 0)
|
||||||
|
#define ARES_OPT_TIMEOUT (1 << 1)
|
||||||
|
#define ARES_OPT_TRIES (1 << 2)
|
||||||
|
#define ARES_OPT_NDOTS (1 << 3)
|
||||||
|
#define ARES_OPT_UDP_PORT (1 << 4)
|
||||||
|
#define ARES_OPT_TCP_PORT (1 << 5)
|
||||||
|
#define ARES_OPT_SERVERS (1 << 6)
|
||||||
|
#define ARES_OPT_DOMAINS (1 << 7)
|
||||||
|
#define ARES_OPT_LOOKUPS (1 << 8)
|
||||||
|
#define ARES_OPT_SOCK_STATE_CB (1 << 9)
|
||||||
|
#define ARES_OPT_SORTLIST (1 << 10)
|
||||||
|
#define ARES_OPT_SOCK_SNDBUF (1 << 11)
|
||||||
|
#define ARES_OPT_SOCK_RCVBUF (1 << 12)
|
||||||
|
#define ARES_OPT_TIMEOUTMS (1 << 13)
|
||||||
|
#define ARES_OPT_ROTATE (1 << 14)
|
||||||
|
|
||||||
|
/* Nameinfo flag values */
|
||||||
|
#define ARES_NI_NOFQDN (1 << 0)
|
||||||
|
#define ARES_NI_NUMERICHOST (1 << 1)
|
||||||
|
#define ARES_NI_NAMEREQD (1 << 2)
|
||||||
|
#define ARES_NI_NUMERICSERV (1 << 3)
|
||||||
|
#define ARES_NI_DGRAM (1 << 4)
|
||||||
|
#define ARES_NI_TCP 0
|
||||||
|
#define ARES_NI_UDP ARES_NI_DGRAM
|
||||||
|
#define ARES_NI_SCTP (1 << 5)
|
||||||
|
#define ARES_NI_DCCP (1 << 6)
|
||||||
|
#define ARES_NI_NUMERICSCOPE (1 << 7)
|
||||||
|
#define ARES_NI_LOOKUPHOST (1 << 8)
|
||||||
|
#define ARES_NI_LOOKUPSERVICE (1 << 9)
|
||||||
|
/* Reserved for future use */
|
||||||
|
#define ARES_NI_IDN (1 << 10)
|
||||||
|
#define ARES_NI_IDN_ALLOW_UNASSIGNED (1 << 11)
|
||||||
|
#define ARES_NI_IDN_USE_STD3_ASCII_RULES (1 << 12)
|
||||||
|
|
||||||
|
/* Addrinfo flag values */
|
||||||
|
#define ARES_AI_CANONNAME (1 << 0)
|
||||||
|
#define ARES_AI_NUMERICHOST (1 << 1)
|
||||||
|
#define ARES_AI_PASSIVE (1 << 2)
|
||||||
|
#define ARES_AI_NUMERICSERV (1 << 3)
|
||||||
|
#define ARES_AI_V4MAPPED (1 << 4)
|
||||||
|
#define ARES_AI_ALL (1 << 5)
|
||||||
|
#define ARES_AI_ADDRCONFIG (1 << 6)
|
||||||
|
/* Reserved for future use */
|
||||||
|
#define ARES_AI_IDN (1 << 10)
|
||||||
|
#define ARES_AI_IDN_ALLOW_UNASSIGNED (1 << 11)
|
||||||
|
#define ARES_AI_IDN_USE_STD3_ASCII_RULES (1 << 12)
|
||||||
|
#define ARES_AI_CANONIDN (1 << 13)
|
||||||
|
|
||||||
|
#define ARES_AI_MASK (ARES_AI_CANONNAME|ARES_AI_NUMERICHOST|ARES_AI_PASSIVE| \
|
||||||
|
ARES_AI_NUMERICSERV|ARES_AI_V4MAPPED|ARES_AI_ALL| \
|
||||||
|
ARES_AI_ADDRCONFIG)
|
||||||
|
#define ARES_GETSOCK_MAXNUM 16 /* ares_getsock() can return info about this
|
||||||
|
many sockets */
|
||||||
|
#define ARES_GETSOCK_READABLE(bits,num) (bits & (1<< (num)))
|
||||||
|
#define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \
|
||||||
|
ARES_GETSOCK_MAXNUM)))
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Typedef our socket type
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef ares_socket_typedef
|
||||||
|
#ifdef WIN32
|
||||||
|
typedef SOCKET ares_socket_t;
|
||||||
|
#define ARES_SOCKET_BAD INVALID_SOCKET
|
||||||
|
#else
|
||||||
|
typedef int ares_socket_t;
|
||||||
|
#define ARES_SOCKET_BAD -1
|
||||||
|
#endif
|
||||||
|
#define ares_socket_typedef
|
||||||
|
#endif /* ares_socket_typedef */
|
||||||
|
|
||||||
|
typedef void (*ares_sock_state_cb)(void *data,
|
||||||
|
ares_socket_t socket_fd,
|
||||||
|
int readable,
|
||||||
|
int writable);
|
||||||
|
|
||||||
|
struct apattern;
|
||||||
|
|
||||||
|
/* NOTE about the ares_options struct to users and developers.
|
||||||
|
|
||||||
|
This struct will remain looking like this. It will not be extended nor
|
||||||
|
shrunk in future releases, but all new options will be set by ares_set_*()
|
||||||
|
options instead of with the ares_init_options() function.
|
||||||
|
|
||||||
|
Eventually (in a galaxy far far away), all options will be settable by
|
||||||
|
ares_set_*() options and the ares_init_options() function will become
|
||||||
|
deprecated.
|
||||||
|
|
||||||
|
When new options are added to c-ares, they are not added to this
|
||||||
|
struct. And they are not "saved" with the ares_save_options() function but
|
||||||
|
instead we encourage the use of the ares_dup() function. Needless to say,
|
||||||
|
if you add config options to c-ares you need to make sure ares_dup()
|
||||||
|
duplicates this new option.
|
||||||
|
|
||||||
|
*/
|
||||||
|
struct ares_options {
|
||||||
|
int flags;
|
||||||
|
int timeout; /* in seconds or milliseconds, depending on options */
|
||||||
|
int tries;
|
||||||
|
int ndots;
|
||||||
|
unsigned short udp_port;
|
||||||
|
unsigned short tcp_port;
|
||||||
|
int socket_send_buffer_size;
|
||||||
|
int socket_receive_buffer_size;
|
||||||
|
struct in_addr *servers;
|
||||||
|
int nservers;
|
||||||
|
char **domains;
|
||||||
|
int ndomains;
|
||||||
|
char *lookups;
|
||||||
|
ares_sock_state_cb sock_state_cb;
|
||||||
|
void *sock_state_cb_data;
|
||||||
|
struct apattern *sortlist;
|
||||||
|
int nsort;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ares_config_info {
|
||||||
|
int timeout;
|
||||||
|
int tries;
|
||||||
|
int numservers;
|
||||||
|
char **servers;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct hostent;
|
||||||
|
struct timeval;
|
||||||
|
struct sockaddr;
|
||||||
|
struct ares_channeldata;
|
||||||
|
typedef struct ares_channeldata *ares_channel;
|
||||||
|
typedef void (*ares_callback)(void *arg, int status, int timeouts,
|
||||||
|
unsigned char *abuf, int alen);
|
||||||
|
typedef void (*ares_host_callback)(void *arg, int status, int timeouts,
|
||||||
|
struct hostent *hostent);
|
||||||
|
typedef void (*ares_nameinfo_callback)(void *arg, int status, int timeouts,
|
||||||
|
char *node, char *service);
|
||||||
|
typedef int (*ares_sock_create_callback)(ares_socket_t socket_fd,
|
||||||
|
int type, void *data);
|
||||||
|
|
||||||
|
int ares_init(ares_channel *channelptr);
|
||||||
|
int ares_init_options(ares_channel *channelptr, struct ares_options *options,
|
||||||
|
int optmask);
|
||||||
|
int ares_save_options(ares_channel channel, struct ares_options *options,
|
||||||
|
int *optmask);
|
||||||
|
void ares_destroy_options(struct ares_options *options);
|
||||||
|
int ares_dup(ares_channel *dest, ares_channel src);
|
||||||
|
void ares_destroy(ares_channel channel);
|
||||||
|
void ares_cancel(ares_channel channel);
|
||||||
|
void ares_set_socket_callback(ares_channel channel,
|
||||||
|
ares_sock_create_callback callback,
|
||||||
|
void *user_data);
|
||||||
|
void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
|
||||||
|
ares_callback callback, void *arg);
|
||||||
|
void ares_query(ares_channel channel, const char *name, int dnsclass,
|
||||||
|
int type, ares_callback callback, void *arg);
|
||||||
|
void ares_search(ares_channel channel, const char *name, int dnsclass,
|
||||||
|
int type, ares_callback callback, void *arg);
|
||||||
|
void ares_gethostbyname(ares_channel channel, const char *name, int family,
|
||||||
|
ares_host_callback callback, void *arg);
|
||||||
|
int ares_gethostbyname_file(ares_channel channel, const char *name,
|
||||||
|
int family, struct hostent **host);
|
||||||
|
void ares_gethostbyaddr(ares_channel channel, const void *addr, int addrlen,
|
||||||
|
int family, ares_host_callback callback, void *arg);
|
||||||
|
void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
|
||||||
|
socklen_t salen, int flags,
|
||||||
|
ares_nameinfo_callback callback,
|
||||||
|
void *arg);
|
||||||
|
int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds);
|
||||||
|
int ares_getsock(ares_channel channel, int *socks, int numsocks);
|
||||||
|
struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
|
||||||
|
struct timeval *tv);
|
||||||
|
void ares_process(ares_channel channel, fd_set *read_fds, fd_set *write_fds);
|
||||||
|
void ares_process_fd(ares_channel channel, ares_socket_t read_fd,
|
||||||
|
ares_socket_t write_fd);
|
||||||
|
|
||||||
|
int ares_mkquery(const char *name, int dnsclass, int type, unsigned short id,
|
||||||
|
int rd, unsigned char **buf, int *buflen);
|
||||||
|
int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||||
|
int alen, char **s, long *enclen);
|
||||||
|
int ares_expand_string(const unsigned char *encoded, const unsigned char *abuf,
|
||||||
|
int alen, unsigned char **s, long *enclen);
|
||||||
|
|
||||||
|
#if !defined(HAVE_STRUCT_IN6_ADDR) && !defined(s6_addr)
|
||||||
|
struct in6_addr {
|
||||||
|
union {
|
||||||
|
unsigned char _S6_u8[16];
|
||||||
|
} _S6_un;
|
||||||
|
};
|
||||||
|
#define s6_addr _S6_un._S6_u8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct addrttl {
|
||||||
|
struct in_addr ipaddr;
|
||||||
|
int ttl;
|
||||||
|
};
|
||||||
|
struct addr6ttl {
|
||||||
|
struct in6_addr ip6addr;
|
||||||
|
int ttl;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Parse the buffer, starting at *abuf and of length alen bytes, previously
|
||||||
|
** obtained from an ares_search call. Put the results in *host, if nonnull.
|
||||||
|
** Also, if addrttls is nonnull, put up to *naddrttls IPv4 addresses along with
|
||||||
|
** their TTLs in that array, and set *naddrttls to the number of addresses
|
||||||
|
** so written.
|
||||||
|
*/
|
||||||
|
int ares_parse_a_reply(const unsigned char *abuf, int alen,
|
||||||
|
struct hostent **host,
|
||||||
|
struct addrttl *addrttls, int *naddrttls);
|
||||||
|
int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
|
||||||
|
struct hostent **host,
|
||||||
|
struct addr6ttl *addrttls, int *naddrttls);
|
||||||
|
int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
|
||||||
|
int addrlen, int family, struct hostent **host);
|
||||||
|
int ares_parse_ns_reply(const unsigned char *abuf, int alen,
|
||||||
|
struct hostent **host);
|
||||||
|
void ares_free_string(void *str);
|
||||||
|
void ares_free_hostent(struct hostent *host);
|
||||||
|
const char *ares_strerror(int code);
|
||||||
|
|
||||||
|
int ares_get_config(struct ares_config_info *d, ares_channel c);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* ARES__H */
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
#ifndef ARES__VERSION_H
|
||||||
|
#define ARES__VERSION_H
|
||||||
|
|
||||||
|
#define ARES_VERSION_MAJOR 1
|
||||||
|
#define ARES_VERSION_MINOR 6
|
||||||
|
#define ARES_VERSION_PATCH 0
|
||||||
|
#define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\
|
||||||
|
(ARES_VERSION_MINOR<<8)|\
|
||||||
|
(ARES_VERSION_PATCH))
|
||||||
|
#define ARES_VERSION_STR "1.6.0"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *ares_version(int *version);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
Executable
+284
@@ -0,0 +1,284 @@
|
|||||||
|
#ifndef __ARES_CONFIG_WIN32_H
|
||||||
|
#define __ARES_CONFIG_WIN32_H
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 2004 - 2008 by Daniel Stenberg et al
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and its
|
||||||
|
* documentation for any purpose and without fee is hereby granted, provided
|
||||||
|
* that the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the software without specific,
|
||||||
|
* written prior permission. M.I.T. makes no representations about the
|
||||||
|
* suitability of this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ================================================================ */
|
||||||
|
/* ares/config-win32.h - Hand crafted config file for Windows */
|
||||||
|
/* ================================================================ */
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* HEADER FILES */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define if you have the <getopt.h> header file. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_GETOPT_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define if you have the <signal.h> header file. */
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/time.h> header file */
|
||||||
|
/* #define HAVE_SYS_TIME_H 1 */
|
||||||
|
|
||||||
|
/* Define if you have the <time.h> header file. */
|
||||||
|
#define HAVE_TIME_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <process.h> header file. */
|
||||||
|
#define HAVE_PROCESS_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <unistd.h> header file. */
|
||||||
|
#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \
|
||||||
|
defined(__POCC__)
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define if you have the <windows.h> header file. */
|
||||||
|
#define HAVE_WINDOWS_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <winsock.h> header file. */
|
||||||
|
#define HAVE_WINSOCK_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <winsock2.h> header file. */
|
||||||
|
//#define HAVE_WINSOCK2_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <ws2tcpip.h> header file. */
|
||||||
|
//#define HAVE_WS2TCPIP_H 1
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* OTHER HEADER INFO */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define if sig_atomic_t is an available typedef. */
|
||||||
|
#define HAVE_SIG_ATOMIC_T 1
|
||||||
|
|
||||||
|
/* Define if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
/* #define TIME_WITH_SYS_TIME 1 */
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* FUNCTIONS */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define if you have the ioctlsocket function. */
|
||||||
|
#define HAVE_IOCTLSOCKET 1
|
||||||
|
|
||||||
|
/* Define if you have a working ioctlsocket FIONBIO function. */
|
||||||
|
#define HAVE_IOCTLSOCKET_FIONBIO 1
|
||||||
|
|
||||||
|
/* Define if you have the strcasecmp function. */
|
||||||
|
/* #define HAVE_STRCASECMP 1 */
|
||||||
|
|
||||||
|
/* Define if you have the strdup function. */
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
|
||||||
|
/* Define if you have the stricmp function. */
|
||||||
|
#define HAVE_STRICMP 1
|
||||||
|
|
||||||
|
/* Define if you have the strncasecmp function. */
|
||||||
|
/* #define HAVE_STRNCASECMP 1 */
|
||||||
|
|
||||||
|
/* Define if you have the strnicmp function. */
|
||||||
|
#define HAVE_STRNICMP 1
|
||||||
|
|
||||||
|
/* Define if you have the gethostname function. */
|
||||||
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
|
||||||
|
/* Define if you have the recv function. */
|
||||||
|
#define HAVE_RECV 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recv. */
|
||||||
|
#define RECV_TYPE_ARG1 SOCKET
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for recv. */
|
||||||
|
#define RECV_TYPE_ARG2 char *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recv. */
|
||||||
|
#define RECV_TYPE_ARG3 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recv. */
|
||||||
|
#define RECV_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for recv. */
|
||||||
|
#define RECV_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define if you have the recvfrom function. */
|
||||||
|
#define HAVE_RECVFROM 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG1 SOCKET
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 2 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG2 char
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG3 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 5 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG5 struct sockaddr
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 6 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG6 int
|
||||||
|
|
||||||
|
/* Define to the function return type for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define if you have the send function. */
|
||||||
|
#define HAVE_SEND 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for send. */
|
||||||
|
#define SEND_TYPE_ARG1 SOCKET
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 2 for send. */
|
||||||
|
#define SEND_QUAL_ARG2 const
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for send. */
|
||||||
|
#define SEND_TYPE_ARG2 char *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for send. */
|
||||||
|
#define SEND_TYPE_ARG3 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for send. */
|
||||||
|
#define SEND_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for send. */
|
||||||
|
#define SEND_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Specifics for the Watt-32 tcp/ip stack */
|
||||||
|
#ifdef WATT32
|
||||||
|
#define SOCKET int
|
||||||
|
#define NS_INADDRSZ 4
|
||||||
|
#define HAVE_ARPA_NAMESER_H 1
|
||||||
|
#define HAVE_ARPA_INET_H 1
|
||||||
|
#define HAVE_NETDB_H 1
|
||||||
|
#define HAVE_NETINET_IN_H 1
|
||||||
|
#define HAVE_SYS_SOCKET_H 1
|
||||||
|
#define HAVE_NETINET_TCP_H 1
|
||||||
|
#define HAVE_AF_INET6 1
|
||||||
|
#define HAVE_PF_INET6 1
|
||||||
|
#define HAVE_STRUCT_IN6_ADDR 1
|
||||||
|
#define HAVE_STRUCT_SOCKADDR_IN6 1
|
||||||
|
#undef HAVE_WINSOCK_H
|
||||||
|
#undef HAVE_WINSOCK2_H
|
||||||
|
#undef HAVE_WS2TCPIP_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* TYPEDEF REPLACEMENTS */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define this if in_addr_t is not an available 'typedefed' type */
|
||||||
|
#define in_addr_t unsigned long
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (int or void). */
|
||||||
|
#define RETSIGTYPE void
|
||||||
|
|
||||||
|
/* Define ssize_t if it is not an available 'typedefed' type */
|
||||||
|
#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__)
|
||||||
|
#elif defined(_WIN64)
|
||||||
|
#define ssize_t __int64
|
||||||
|
#else
|
||||||
|
#define ssize_t int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* STRUCT RELATED */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define this if you have struct addrinfo */
|
||||||
|
#define HAVE_STRUCT_ADDRINFO 1
|
||||||
|
|
||||||
|
/* Define this if you have struct sockaddr_storage */
|
||||||
|
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
|
||||||
|
|
||||||
|
/* Define this if you have struct timeval */
|
||||||
|
#define HAVE_STRUCT_TIMEVAL 1
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* COMPILER SPECIFIC */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define to avoid VS2005 complaining about portable C functions */
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
|
||||||
|
#define _CRT_SECURE_NO_DEPRECATE 1
|
||||||
|
#define _CRT_NONSTDC_NO_DEPRECATE 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* VS2008 does not support Windows build targets prior to WinXP, */
|
||||||
|
/* so, if no build target has been defined we will target WinXP. */
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1500)
|
||||||
|
# ifndef _WIN32_WINNT
|
||||||
|
# define _WIN32_WINNT 0x0501
|
||||||
|
# endif
|
||||||
|
# ifndef WINVER
|
||||||
|
# define WINVER 0x0501
|
||||||
|
# endif
|
||||||
|
# if (_WIN32_WINNT < 0x0501) || (WINVER < 0x0501)
|
||||||
|
# error VS2008 does not support Windows build targets prior to WinXP
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Availability of freeaddrinfo, getaddrinfo and getnameinfo functions is quite */
|
||||||
|
/* convoluted, compiler dependant and in some cases even build target dependat. */
|
||||||
|
#if defined(HAVE_WS2TCPIP_H)
|
||||||
|
# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
|
||||||
|
# define HAVE_FREEADDRINFO 1
|
||||||
|
# define HAVE_GETADDRINFO 1
|
||||||
|
# define HAVE_GETNAMEINFO 1
|
||||||
|
# elif defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
|
# define HAVE_FREEADDRINFO 1
|
||||||
|
# define HAVE_GETADDRINFO 1
|
||||||
|
# define HAVE_GETNAMEINFO 1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
/* IPV6 COMPATIBILITY */
|
||||||
|
/* ---------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Define this if you have address family AF_INET6 */
|
||||||
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
#define HAVE_AF_INET6 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if you have protocol family PF_INET6 */
|
||||||
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
#define HAVE_PF_INET6 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if you have struct in6_addr */
|
||||||
|
#ifdef HAVE_WS2TCPIP_H
|
||||||
|
#define HAVE_STRUCT_IN6_ADDR 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if you have struct sockaddr_in6 */
|
||||||
|
#ifdef HAVE_WS2TCPIP_H
|
||||||
|
#define HAVE_STRUCT_SOCKADDR_IN6 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define this if you have sockaddr_in6 with scopeid */
|
||||||
|
#ifdef HAVE_WS2TCPIP_H
|
||||||
|
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __ARES_CONFIG_WIN32_H */
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
#ifndef __ARES_SETUP_H
|
||||||
|
#define __ARES_SETUP_H
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 2004 - 2008 by Daniel Stenberg et al
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and its
|
||||||
|
* documentation for any purpose and without fee is hereby granted, provided
|
||||||
|
* that the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the software without specific,
|
||||||
|
* written prior permission. M.I.T. makes no representations about the
|
||||||
|
* suitability of this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define WIN32 when build target is Win32 API
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
||||||
|
#define WIN32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include configuration script results or hand-crafted
|
||||||
|
* configuration file for platforms which lack config tool.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#include "config-win32.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* HAVE_CONFIG_H */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tru64 needs _REENTRANT set for a few function prototypes and
|
||||||
|
* things to appear in the system header files. Unixware needs it
|
||||||
|
* to build proper reentrant code. Others may also need it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef NEED_REENTRANT
|
||||||
|
# ifndef _REENTRANT
|
||||||
|
# define _REENTRANT
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include header files for windows builds before redefining anything.
|
||||||
|
* Use this preproessor block only to include or exclude windows.h,
|
||||||
|
* winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
|
||||||
|
* to any other further and independant block. Under Cygwin things work
|
||||||
|
* just as under linux (e.g. <sys/socket.h>) and the winsock headers should
|
||||||
|
* never be included when __CYGWIN__ is defined. configure script takes
|
||||||
|
* care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
|
||||||
|
* neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_WINDOWS_H
|
||||||
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
|
# define WIN32_LEAN_AND_MEAN
|
||||||
|
# endif
|
||||||
|
# include <windows.h>
|
||||||
|
# ifdef HAVE_WINSOCK2_H
|
||||||
|
# include <winsock2.h>
|
||||||
|
# ifdef HAVE_WS2TCPIP_H
|
||||||
|
# include <ws2tcpip.h>
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# ifdef HAVE_WINSOCK_H
|
||||||
|
# include <winsock.h>
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
|
||||||
|
* define USE_WINSOCK to 1 if we have and use WINSOCK API, else
|
||||||
|
* undefine USE_WINSOCK.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef USE_WINSOCK
|
||||||
|
|
||||||
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
# define USE_WINSOCK 2
|
||||||
|
#else
|
||||||
|
# ifdef HAVE_WINSOCK_H
|
||||||
|
# define USE_WINSOCK 1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Work-arounds for systems without configure support
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_CONFIG_H
|
||||||
|
|
||||||
|
#if defined(__DJGPP__) || (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || \
|
||||||
|
defined(__POCC__)
|
||||||
|
#else
|
||||||
|
#define ssize_t int
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER) && !defined(__WATCOMC__)
|
||||||
|
#define HAVE_SYS_TIME_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
|
||||||
|
#define HAVE_SYS_UIO_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* HAVE_CONFIG_H */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Recent autoconf versions define these symbols in config.h. We don't
|
||||||
|
* want them (since they collide with the libcurl ones when we build
|
||||||
|
* --enable-debug) so we undef them again here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
#undef VERSION
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* IPv6 compatibility */
|
||||||
|
#if !defined(HAVE_AF_INET6)
|
||||||
|
#if defined(HAVE_PF_INET6)
|
||||||
|
#define AF_INET6 PF_INET6
|
||||||
|
#else
|
||||||
|
#define AF_INET6 AF_MAX+1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include macros and defines that should only be processed once.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SETUP_ONCE_H
|
||||||
|
#include "setup_once.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __ARES_SETUP_H */
|
||||||
Executable
+523
@@ -0,0 +1,523 @@
|
|||||||
|
#ifndef __SETUP_ONCE_H
|
||||||
|
#define __SETUP_ONCE_H
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
/* Copyright (C) 2004 - 2008 by Daniel Stenberg et al
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and its
|
||||||
|
* documentation for any purpose and without fee is hereby granted, provided
|
||||||
|
* that the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of M.I.T. not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the software without specific,
|
||||||
|
* written prior permission. M.I.T. makes no representations about the
|
||||||
|
* suitability of this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/********************************************************************
|
||||||
|
* NOTICE *
|
||||||
|
* ======== *
|
||||||
|
* *
|
||||||
|
* Content of header files lib/setup_once.h and ares/setup_once.h *
|
||||||
|
* must be kept in sync. Modify the other one if you change this. *
|
||||||
|
* *
|
||||||
|
********************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Inclusion of common header files.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_STAT_H
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_TIME_H
|
||||||
|
#include <sys/time.h>
|
||||||
|
#ifdef TIME_WITH_SYS_TIME
|
||||||
|
#include <time.h>
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef HAVE_TIME_H
|
||||||
|
#include <time.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <io.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STDBOOL_H
|
||||||
|
#include <stdbool.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Definition of timeval struct for platforms that don't have it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_STRUCT_TIMEVAL
|
||||||
|
struct timeval {
|
||||||
|
long tv_sec;
|
||||||
|
long tv_usec;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we have the MSG_NOSIGNAL define, make sure we use
|
||||||
|
* it as the fourth argument of function send()
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_MSG_NOSIGNAL
|
||||||
|
#define SEND_4TH_ARG MSG_NOSIGNAL
|
||||||
|
#else
|
||||||
|
#define SEND_4TH_ARG 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Windows build targets have socklen_t definition in
|
||||||
|
* ws2tcpip.h but some versions of ws2tcpip.h do not
|
||||||
|
* have the definition. It seems that when the socklen_t
|
||||||
|
* definition is missing from ws2tcpip.h the definition
|
||||||
|
* for INET_ADDRSTRLEN is also missing, and that when one
|
||||||
|
* definition is present the other one also is available.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(WIN32) && !defined(HAVE_CONFIG_H)
|
||||||
|
# if ( defined(_MSC_VER) && !defined(INET_ADDRSTRLEN) ) || \
|
||||||
|
(!defined(_MSC_VER) && !defined(HAVE_WS2TCPIP_H) )
|
||||||
|
# define socklen_t int
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__minix)
|
||||||
|
/* Minix doesn't support recv on TCP sockets */
|
||||||
|
#define sread(x,y,z) (ssize_t)read((RECV_TYPE_ARG1)(x), \
|
||||||
|
(RECV_TYPE_ARG2)(y), \
|
||||||
|
(RECV_TYPE_ARG3)(z))
|
||||||
|
|
||||||
|
#elif defined(HAVE_RECV)
|
||||||
|
/*
|
||||||
|
* The definitions for the return type and arguments types
|
||||||
|
* of functions recv() and send() belong and come from the
|
||||||
|
* configuration file. Do not define them in any other place.
|
||||||
|
*
|
||||||
|
* HAVE_RECV is defined if you have a function named recv()
|
||||||
|
* which is used to read incoming data from sockets. If your
|
||||||
|
* function has another name then don't define HAVE_RECV.
|
||||||
|
*
|
||||||
|
* If HAVE_RECV is defined then RECV_TYPE_ARG1, RECV_TYPE_ARG2,
|
||||||
|
* RECV_TYPE_ARG3, RECV_TYPE_ARG4 and RECV_TYPE_RETV must also
|
||||||
|
* be defined.
|
||||||
|
*
|
||||||
|
* HAVE_SEND is defined if you have a function named send()
|
||||||
|
* which is used to write outgoing data on a connected socket.
|
||||||
|
* If yours has another name then don't define HAVE_SEND.
|
||||||
|
*
|
||||||
|
* If HAVE_SEND is defined then SEND_TYPE_ARG1, SEND_QUAL_ARG2,
|
||||||
|
* SEND_TYPE_ARG2, SEND_TYPE_ARG3, SEND_TYPE_ARG4 and
|
||||||
|
* SEND_TYPE_RETV must also be defined.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(RECV_TYPE_ARG1) || \
|
||||||
|
!defined(RECV_TYPE_ARG2) || \
|
||||||
|
!defined(RECV_TYPE_ARG3) || \
|
||||||
|
!defined(RECV_TYPE_ARG4) || \
|
||||||
|
!defined(RECV_TYPE_RETV)
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_return_and_arguments_types_of_recv
|
||||||
|
/* */
|
||||||
|
#else
|
||||||
|
#define sread(x,y,z) (ssize_t)recv((RECV_TYPE_ARG1)(x), \
|
||||||
|
(RECV_TYPE_ARG2)(y), \
|
||||||
|
(RECV_TYPE_ARG3)(z), \
|
||||||
|
(RECV_TYPE_ARG4)(0))
|
||||||
|
#endif
|
||||||
|
#else /* HAVE_RECV */
|
||||||
|
#ifndef sread
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_macro_sread
|
||||||
|
/* */
|
||||||
|
#endif
|
||||||
|
#endif /* HAVE_RECV */
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__minix)
|
||||||
|
/* Minix doesn't support send on TCP sockets */
|
||||||
|
#define swrite(x,y,z) (ssize_t)write((SEND_TYPE_ARG1)(x), \
|
||||||
|
(SEND_TYPE_ARG2)(y), \
|
||||||
|
(SEND_TYPE_ARG3)(z))
|
||||||
|
|
||||||
|
#elif defined(HAVE_SEND)
|
||||||
|
#if !defined(SEND_TYPE_ARG1) || \
|
||||||
|
!defined(SEND_QUAL_ARG2) || \
|
||||||
|
!defined(SEND_TYPE_ARG2) || \
|
||||||
|
!defined(SEND_TYPE_ARG3) || \
|
||||||
|
!defined(SEND_TYPE_ARG4) || \
|
||||||
|
!defined(SEND_TYPE_RETV)
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_return_and_arguments_types_of_send
|
||||||
|
/* */
|
||||||
|
#else
|
||||||
|
#define swrite(x,y,z) (ssize_t)send((SEND_TYPE_ARG1)(x), \
|
||||||
|
(SEND_TYPE_ARG2)(y), \
|
||||||
|
(SEND_TYPE_ARG3)(z), \
|
||||||
|
(SEND_TYPE_ARG4)(SEND_4TH_ARG))
|
||||||
|
#endif
|
||||||
|
#else /* HAVE_SEND */
|
||||||
|
#ifndef swrite
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_macro_swrite
|
||||||
|
/* */
|
||||||
|
#endif
|
||||||
|
#endif /* HAVE_SEND */
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#if defined(HAVE_RECVFROM)
|
||||||
|
/*
|
||||||
|
* Currently recvfrom is only used on udp sockets.
|
||||||
|
*/
|
||||||
|
#if !defined(RECVFROM_TYPE_ARG1) || \
|
||||||
|
!defined(RECVFROM_TYPE_ARG2) || \
|
||||||
|
!defined(RECVFROM_TYPE_ARG3) || \
|
||||||
|
!defined(RECVFROM_TYPE_ARG4) || \
|
||||||
|
!defined(RECVFROM_TYPE_ARG5) || \
|
||||||
|
!defined(RECVFROM_TYPE_ARG6) || \
|
||||||
|
!defined(RECVFROM_TYPE_RETV)
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_return_and_arguments_types_of_recvfrom
|
||||||
|
/* */
|
||||||
|
#else
|
||||||
|
#define sreadfrom(s,b,bl,f,fl) (ssize_t)recvfrom((RECVFROM_TYPE_ARG1) (s), \
|
||||||
|
(RECVFROM_TYPE_ARG2 *)(b), \
|
||||||
|
(RECVFROM_TYPE_ARG3) (bl), \
|
||||||
|
(RECVFROM_TYPE_ARG4) (0), \
|
||||||
|
(RECVFROM_TYPE_ARG5 *)(f), \
|
||||||
|
(RECVFROM_TYPE_ARG6 *)(fl))
|
||||||
|
#endif
|
||||||
|
#else /* HAVE_RECVFROM */
|
||||||
|
#ifndef sreadfrom
|
||||||
|
/* */
|
||||||
|
Error Missing_definition_of_macro_sreadfrom
|
||||||
|
/* */
|
||||||
|
#endif
|
||||||
|
#endif /* HAVE_RECVFROM */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef RECVFROM_TYPE_ARG6_IS_VOID
|
||||||
|
# define RECVFROM_ARG6_T int
|
||||||
|
#else
|
||||||
|
# define RECVFROM_ARG6_T RECVFROM_TYPE_ARG6
|
||||||
|
#endif
|
||||||
|
#endif /* if 0 */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Uppercase macro versions of ANSI/ISO is*() functions/macros which
|
||||||
|
* avoid negative number inputs with argument byte codes > 127.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define ISSPACE(x) (isspace((int) ((unsigned char)x)))
|
||||||
|
#define ISDIGIT(x) (isdigit((int) ((unsigned char)x)))
|
||||||
|
#define ISALNUM(x) (isalnum((int) ((unsigned char)x)))
|
||||||
|
#define ISXDIGIT(x) (isxdigit((int) ((unsigned char)x)))
|
||||||
|
#define ISGRAPH(x) (isgraph((int) ((unsigned char)x)))
|
||||||
|
#define ISALPHA(x) (isalpha((int) ((unsigned char)x)))
|
||||||
|
#define ISPRINT(x) (isprint((int) ((unsigned char)x)))
|
||||||
|
#define ISUPPER(x) (isupper((int) ((unsigned char)x)))
|
||||||
|
#define ISLOWER(x) (islower((int) ((unsigned char)x)))
|
||||||
|
|
||||||
|
#define ISBLANK(x) (int)((((unsigned char)x) == ' ') || \
|
||||||
|
(((unsigned char)x) == '\t'))
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Typedef to 'unsigned char' if bool is not an available 'typedefed' type.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_BOOL_T
|
||||||
|
typedef unsigned char bool;
|
||||||
|
#define HAVE_BOOL_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default definition of uppercase TRUE and FALSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TRUE
|
||||||
|
#define TRUE 1
|
||||||
|
#endif
|
||||||
|
#ifndef FALSE
|
||||||
|
#define FALSE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HAVE_SIG_ATOMIC_T
|
||||||
|
typedef int sig_atomic_t;
|
||||||
|
#define HAVE_SIG_ATOMIC_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Convenience SIG_ATOMIC_T definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_SIG_ATOMIC_T_VOLATILE
|
||||||
|
#define SIG_ATOMIC_T static sig_atomic_t
|
||||||
|
#else
|
||||||
|
#define SIG_ATOMIC_T static volatile sig_atomic_t
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default return type for signal handlers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RETSIGTYPE
|
||||||
|
#define RETSIGTYPE void
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro used to include code only in debug builds.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef CURLDEBUG
|
||||||
|
#define DEBUGF(x) x
|
||||||
|
#else
|
||||||
|
#define DEBUGF(x) do { } while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro used to include assertion code only in debug builds.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(CURLDEBUG) && defined(HAVE_ASSERT_H)
|
||||||
|
#define DEBUGASSERT(x) assert(x)
|
||||||
|
#else
|
||||||
|
#define DEBUGASSERT(x) do { } while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro SOCKERRNO / SET_SOCKERRNO() returns / sets the *socket-related* errno
|
||||||
|
* (or equivalent) on this platform to hide platform details to code using it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef USE_WINSOCK
|
||||||
|
#define SOCKERRNO ((int)WSAGetLastError())
|
||||||
|
#define SET_SOCKERRNO(x) (WSASetLastError((int)(x)))
|
||||||
|
#else
|
||||||
|
#define SOCKERRNO (errno)
|
||||||
|
#define SET_SOCKERRNO(x) (errno = (x))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro ERRNO / SET_ERRNO() returns / sets the NOT *socket-related* errno
|
||||||
|
* (or equivalent) on this platform to hide platform details to code using it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*UNREALUNREALUNREALEDIT#ifdef WIN32
|
||||||
|
#define ERRNO ((int)GetLastError())
|
||||||
|
#define SET_ERRNO(x) (SetLastError((DWORD)(x)))
|
||||||
|
#else
|
||||||
|
#define ERRNO (errno)
|
||||||
|
#define SET_ERRNO(x) (errno = (x))
|
||||||
|
#endif*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Portable error number symbolic names defined to Winsock error codes.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef USE_WINSOCK
|
||||||
|
#undef EBADF /* override definition in errno.h */
|
||||||
|
#define EBADF WSAEBADF
|
||||||
|
#undef EINTR /* override definition in errno.h */
|
||||||
|
#define EINTR WSAEINTR
|
||||||
|
#undef EINVAL /* override definition in errno.h */
|
||||||
|
#define EINVAL WSAEINVAL
|
||||||
|
#define EWOULDBLOCK WSAEWOULDBLOCK
|
||||||
|
#define EINPROGRESS WSAEINPROGRESS
|
||||||
|
#define EALREADY WSAEALREADY
|
||||||
|
#define ENOTSOCK WSAENOTSOCK
|
||||||
|
#define EDESTADDRREQ WSAEDESTADDRREQ
|
||||||
|
#define EMSGSIZE WSAEMSGSIZE
|
||||||
|
#define EPROTOTYPE WSAEPROTOTYPE
|
||||||
|
#define ENOPROTOOPT WSAENOPROTOOPT
|
||||||
|
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
||||||
|
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
||||||
|
#define EOPNOTSUPP WSAEOPNOTSUPP
|
||||||
|
#define EPFNOSUPPORT WSAEPFNOSUPPORT
|
||||||
|
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||||
|
#define EADDRINUSE WSAEADDRINUSE
|
||||||
|
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
||||||
|
#define ENETDOWN WSAENETDOWN
|
||||||
|
#define ENETUNREACH WSAENETUNREACH
|
||||||
|
#define ENETRESET WSAENETRESET
|
||||||
|
#define ECONNABORTED WSAECONNABORTED
|
||||||
|
#define ECONNRESET WSAECONNRESET
|
||||||
|
#define ENOBUFS WSAENOBUFS
|
||||||
|
#define EISCONN WSAEISCONN
|
||||||
|
#define ENOTCONN WSAENOTCONN
|
||||||
|
#define ESHUTDOWN WSAESHUTDOWN
|
||||||
|
#define ETOOMANYREFS WSAETOOMANYREFS
|
||||||
|
#define ETIMEDOUT WSAETIMEDOUT
|
||||||
|
#define ECONNREFUSED WSAECONNREFUSED
|
||||||
|
#define ELOOP WSAELOOP
|
||||||
|
#ifndef ENAMETOOLONG /* possible previous definition in errno.h */
|
||||||
|
#define ENAMETOOLONG WSAENAMETOOLONG
|
||||||
|
#endif
|
||||||
|
#define EHOSTDOWN WSAEHOSTDOWN
|
||||||
|
#define EHOSTUNREACH WSAEHOSTUNREACH
|
||||||
|
#ifndef ENOTEMPTY /* possible previous definition in errno.h */
|
||||||
|
#define ENOTEMPTY WSAENOTEMPTY
|
||||||
|
#endif
|
||||||
|
#define EPROCLIM WSAEPROCLIM
|
||||||
|
#define EUSERS WSAEUSERS
|
||||||
|
#define EDQUOT WSAEDQUOT
|
||||||
|
#define ESTALE WSAESTALE
|
||||||
|
#define EREMOTE WSAEREMOTE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actually use __32_getpwuid() on 64-bit VMS builds for getpwuid()
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(VMS) && \
|
||||||
|
defined(__INITIAL_POINTER_SIZE) && (__INITIAL_POINTER_SIZE == 64)
|
||||||
|
#define getpwuid __32_getpwuid
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Macro argv_item_t hides platform details to code using it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef VMS
|
||||||
|
#define argv_item_t __char_ptr32
|
||||||
|
#else
|
||||||
|
#define argv_item_t char *
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We use this ZERO_NULL to avoid picky compiler warnings,
|
||||||
|
* when assigning a NULL pointer to a function pointer var.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define ZERO_NULL 0
|
||||||
|
|
||||||
|
|
||||||
|
#if defined (__LP64__) && defined(__hpux) && !defined(_XOPEN_SOURCE_EXTENDED)
|
||||||
|
#include <sys/socket.h>
|
||||||
|
/* HP-UX has this oddity where it features a few functions that don't work
|
||||||
|
with socklen_t so we need to convert to ints
|
||||||
|
|
||||||
|
This is due to socklen_t being a 64bit int under 64bit ABI, but the
|
||||||
|
pre-xopen (default) interfaces require an int, which is 32bits.
|
||||||
|
|
||||||
|
Therefore, Anytime socklen_t is passed by pointer, the libc function
|
||||||
|
truncates the 64bit socklen_t value by treating it as a 32bit value.
|
||||||
|
|
||||||
|
|
||||||
|
Note that some socket calls are allowed to have a NULL pointer for
|
||||||
|
the socklen arg.
|
||||||
|
*/
|
||||||
|
|
||||||
|
inline static int Curl_hp_getsockname(int s, struct sockaddr *name,
|
||||||
|
socklen_t *namelen)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
if(namelen) {
|
||||||
|
int len = *namelen;
|
||||||
|
rc = getsockname(s, name, &len);
|
||||||
|
*namelen = len;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rc = getsockname(s, name, 0);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static int Curl_hp_getsockopt(int s, int level, int optname,
|
||||||
|
void *optval, socklen_t *optlen)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
if(optlen) {
|
||||||
|
int len = *optlen;
|
||||||
|
rc = getsockopt(s, level, optname, optval, &len);
|
||||||
|
*optlen = len;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rc = getsockopt(s, level, optname, optval, 0);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline static int Curl_hp_accept(int sockfd, struct sockaddr *addr,
|
||||||
|
socklen_t *addrlen)
|
||||||
|
{
|
||||||
|
int rc;
|
||||||
|
if(addrlen) {
|
||||||
|
int len = *addrlen;
|
||||||
|
rc = accept(sockfd, addr, &len);
|
||||||
|
*addrlen = len;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rc = accept(sockfd, addr, 0);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline static ssize_t Curl_hp_recvfrom(int s, void *buf, size_t len, int flags,
|
||||||
|
struct sockaddr *from,
|
||||||
|
socklen_t *fromlen)
|
||||||
|
{
|
||||||
|
ssize_t rc;
|
||||||
|
if(fromlen) {
|
||||||
|
int fromlen32 = *fromlen;
|
||||||
|
rc = recvfrom(s, buf, len, flags, from, &fromlen32);
|
||||||
|
*fromlen = fromlen32;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rc = recvfrom(s, buf, len, flags, from, 0);
|
||||||
|
}
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define getsockname(a,b,c) Curl_hp_getsockname((a),(b),(c))
|
||||||
|
#define getsockopt(a,b,c,d,e) Curl_hp_getsockopt((a),(b),(c),(d),(e))
|
||||||
|
#define accept(a,b,c) Curl_hp_accept((a),(b),(c))
|
||||||
|
#define recvfrom(a,b,c,d,e,f) Curl_hp_recvfrom((a),(b),(c),(d),(e),(f))
|
||||||
|
|
||||||
|
#endif /* HPUX work-around */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __SETUP_ONCE_H */
|
||||||
|
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
/*
|
||||||
|
regex.h - POSIX.2 compatible regexp interface and TRE extensions
|
||||||
|
|
||||||
|
Copyright (C) 2001-2004 Ville Laurikari <vl@iki.fi>.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License version 2 (June
|
||||||
|
1991) as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TRE_REGEX_H
|
||||||
|
#define TRE_REGEX_H 1
|
||||||
|
|
||||||
|
#include "tre-config.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif /* HAVE_SYS_TYPES_H */
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBUTF8_H
|
||||||
|
#include <libutf8.h>
|
||||||
|
#endif /* HAVE_LIBUTF8_H */
|
||||||
|
|
||||||
|
#ifdef TRE_USE_SYSTEM_REGEX_H
|
||||||
|
/* Include the system regex.h to make TRE ABI compatible with the
|
||||||
|
system regex. */
|
||||||
|
#include TRE_SYSTEM_REGEX_H_PATH
|
||||||
|
#endif /* TRE_USE_SYSTEM_REGEX_H */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TRE_USE_SYSTEM_REGEX_H
|
||||||
|
|
||||||
|
#ifndef REG_OK
|
||||||
|
#define REG_OK 0
|
||||||
|
#endif /* !REG_OK */
|
||||||
|
|
||||||
|
#ifndef HAVE_REG_ERRCODE_T
|
||||||
|
typedef int reg_errcode_t;
|
||||||
|
#endif /* !HAVE_REG_ERRCODE_T */
|
||||||
|
|
||||||
|
#if !defined(REG_NOSPEC) && !defined(REG_LITERAL)
|
||||||
|
#define REG_LITERAL 0x1000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Extra regcomp() flags. */
|
||||||
|
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
|
||||||
|
|
||||||
|
/* Extra regexec() flags. */
|
||||||
|
#define REG_APPROX_MATCHER 0x1000
|
||||||
|
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
|
||||||
|
|
||||||
|
#else /* !TRE_USE_SYSTEM_REGEX_H */
|
||||||
|
|
||||||
|
/* If the we're not using system regex.h, we need to define the
|
||||||
|
structs and enums ourselves. */
|
||||||
|
|
||||||
|
typedef int regoff_t;
|
||||||
|
typedef struct {
|
||||||
|
size_t re_nsub; /* Number of parenthesized subexpressions. */
|
||||||
|
void *value; /* For internal use only. */
|
||||||
|
} regex_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
regoff_t rm_so;
|
||||||
|
regoff_t rm_eo;
|
||||||
|
} regmatch_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
REG_OK = 0, /* No error. */
|
||||||
|
/* POSIX regcomp() return error codes. (In the order listed in the
|
||||||
|
standard.) */
|
||||||
|
REG_NOMATCH, /* No match. */
|
||||||
|
REG_BADPAT, /* Invalid regexp. */
|
||||||
|
REG_ECOLLATE, /* Unknown collating element. */
|
||||||
|
REG_ECTYPE, /* Unknown character class name. */
|
||||||
|
REG_EESCAPE, /* Trailing backslash. */
|
||||||
|
REG_ESUBREG, /* Invalid back reference. */
|
||||||
|
REG_EBRACK, /* "[]" imbalance */
|
||||||
|
REG_EPAREN, /* "\(\)" or "()" imbalance */
|
||||||
|
REG_EBRACE, /* "\{\}" or "{}" imbalance */
|
||||||
|
REG_BADBR, /* Invalid content of {} */
|
||||||
|
REG_ERANGE, /* Invalid use of range operator */
|
||||||
|
REG_ESPACE, /* Out of memory. */
|
||||||
|
REG_BADRPT
|
||||||
|
} reg_errcode_t;
|
||||||
|
|
||||||
|
/* POSIX regcomp() flags. */
|
||||||
|
#define REG_EXTENDED 1
|
||||||
|
#define REG_ICASE (REG_EXTENDED << 1)
|
||||||
|
#define REG_NEWLINE (REG_ICASE << 1)
|
||||||
|
#define REG_NOSUB (REG_NEWLINE << 1)
|
||||||
|
|
||||||
|
/* Extra regcomp() flags. */
|
||||||
|
#define REG_BASIC 0
|
||||||
|
#define REG_LITERAL (REG_NOSUB << 1)
|
||||||
|
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
|
||||||
|
|
||||||
|
/* POSIX regexec() flags. */
|
||||||
|
#define REG_NOTBOL 1
|
||||||
|
#define REG_NOTEOL (REG_NOTBOL << 1)
|
||||||
|
|
||||||
|
/* Extra regexec() flags. */
|
||||||
|
#define REG_APPROX_MATCHER (REG_NOTEOL << 1)
|
||||||
|
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
|
||||||
|
|
||||||
|
#endif /* !TRE_USE_SYSTEM_REGEX_H */
|
||||||
|
|
||||||
|
/* REG_NOSPEC and REG_LITERAL mean the same thing. */
|
||||||
|
#ifdef REG_LITERAL
|
||||||
|
#define REG_NOSPEC REG_LITERAL
|
||||||
|
#elif defined(REG_NOSPEC)
|
||||||
|
#define REG_LITERAL REG_NOSPEC
|
||||||
|
#endif /* defined(REG_NOSPEC) */
|
||||||
|
|
||||||
|
/* The maximum number of iterations in a bound expression. */
|
||||||
|
#undef RE_DUP_MAX
|
||||||
|
#define RE_DUP_MAX 255
|
||||||
|
|
||||||
|
/* The POSIX.2 regexp functions */
|
||||||
|
int regcomp(regex_t *preg, const char *regex, int cflags);
|
||||||
|
int regexec(const regex_t *preg, const char *string, size_t nmatch,
|
||||||
|
regmatch_t pmatch[], int eflags);
|
||||||
|
size_t regerror(int errcode, const regex_t *preg, char *errbuf,
|
||||||
|
size_t errbuf_size);
|
||||||
|
void regfree(regex_t *preg);
|
||||||
|
|
||||||
|
#ifdef TRE_WCHAR
|
||||||
|
#ifdef HAVE_WCHAR_H
|
||||||
|
#include <wchar.h>
|
||||||
|
#endif /* HAVE_WCHAR_H */
|
||||||
|
|
||||||
|
/* Wide character versions (not in POSIX.2). */
|
||||||
|
int regwcomp(regex_t *preg, const wchar_t *regex, int cflags);
|
||||||
|
int regwexec(const regex_t *preg, const wchar_t *string, size_t nmatch,
|
||||||
|
regmatch_t pmatch[], int eflags);
|
||||||
|
#endif /* TRE_WCHAR */
|
||||||
|
|
||||||
|
/* Versions with a maximum length argument and therefore the capability to
|
||||||
|
handle null characters in the middle of the strings (not in POSIX.2). */
|
||||||
|
int regncomp(regex_t *preg, const char *regex, size_t len, int cflags);
|
||||||
|
int regnexec(const regex_t *preg, const char *string, size_t len,
|
||||||
|
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||||
|
#ifdef TRE_WCHAR
|
||||||
|
int regwncomp(regex_t *preg, const wchar_t *regex, size_t len, int cflags);
|
||||||
|
int regwnexec(const regex_t *preg, const wchar_t *string, size_t len,
|
||||||
|
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||||
|
#endif /* TRE_WCHAR */
|
||||||
|
|
||||||
|
#ifdef TRE_APPROX
|
||||||
|
|
||||||
|
/* Approximate matching parameter struct. */
|
||||||
|
typedef struct {
|
||||||
|
int cost_ins; /* Default cost of an inserted character. */
|
||||||
|
int cost_del; /* Default cost of a deleted character. */
|
||||||
|
int cost_subst; /* Default cost of a substituted character. */
|
||||||
|
int max_cost; /* Maximum allowed cost of a match. */
|
||||||
|
|
||||||
|
int max_ins; /* Maximum allowed number of inserts. */
|
||||||
|
int max_del; /* Maximum allowed number of deletes. */
|
||||||
|
int max_subst; /* Maximum allowed number of substitutes. */
|
||||||
|
int max_err; /* Maximum allowed number of errors total. */
|
||||||
|
} regaparams_t;
|
||||||
|
|
||||||
|
/* Approximate matching result struct. */
|
||||||
|
typedef struct {
|
||||||
|
size_t nmatch; /* Length of pmatch[] array. */
|
||||||
|
regmatch_t *pmatch; /* Submatch data. */
|
||||||
|
int cost; /* Cost of the match. */
|
||||||
|
int num_ins; /* Number of inserts in the match. */
|
||||||
|
int num_del; /* Number of deletes in the match. */
|
||||||
|
int num_subst; /* Number of substitutes in the match. */
|
||||||
|
} regamatch_t;
|
||||||
|
|
||||||
|
|
||||||
|
/* Approximate matching functions. */
|
||||||
|
int regaexec(const regex_t *preg, const char *string,
|
||||||
|
regamatch_t *match, regaparams_t params, int eflags);
|
||||||
|
int reganexec(const regex_t *preg, const char *string, size_t len,
|
||||||
|
regamatch_t *match, regaparams_t params, int eflags);
|
||||||
|
#ifdef TRE_WCHAR
|
||||||
|
/* Wide character approximate matching. */
|
||||||
|
int regawexec(const regex_t *preg, const wchar_t *string,
|
||||||
|
regamatch_t *match, regaparams_t params, int eflags);
|
||||||
|
int regawnexec(const regex_t *preg, const wchar_t *string, size_t len,
|
||||||
|
regamatch_t *match, regaparams_t params, int eflags);
|
||||||
|
#endif /* TRE_WCHAR */
|
||||||
|
|
||||||
|
/* Sets the parameters to default values. */
|
||||||
|
void regaparams_default(regaparams_t *params);
|
||||||
|
#endif /* TRE_APPROX */
|
||||||
|
|
||||||
|
#ifdef TRE_WCHAR
|
||||||
|
typedef wchar_t tre_char_t;
|
||||||
|
#else /* !TRE_WCHAR */
|
||||||
|
typedef unsigned char tre_char_t;
|
||||||
|
#endif /* !TRE_WCHAR */
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int (*get_next_char)(tre_char_t *c, unsigned int *pos_add, void *context);
|
||||||
|
void (*rewind)(size_t pos, void *context);
|
||||||
|
int (*compare)(size_t pos1, size_t pos2, size_t len, void *context);
|
||||||
|
void *context;
|
||||||
|
} tre_str_source;
|
||||||
|
|
||||||
|
int reguexec(const regex_t *preg, const tre_str_source *string,
|
||||||
|
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||||
|
|
||||||
|
/* Returns the version string. The returned string is static. */
|
||||||
|
char *tre_version(void);
|
||||||
|
|
||||||
|
/* Returns the value for a config parameter. The type to which `result'
|
||||||
|
must point to depends of the value of `query', see documentation for
|
||||||
|
more details. */
|
||||||
|
int tre_config(int query, void *result);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
TRE_CONFIG_APPROX,
|
||||||
|
TRE_CONFIG_WCHAR,
|
||||||
|
TRE_CONFIG_MULTIBYTE,
|
||||||
|
TRE_CONFIG_SYSTEM_ABI,
|
||||||
|
TRE_CONFIG_VERSION
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Returns 1 if the compiled pattern has back references, 0 if not. */
|
||||||
|
int tre_have_backrefs(const regex_t *preg);
|
||||||
|
|
||||||
|
/* Returns 1 if the compiled pattern uses approximate matching features,
|
||||||
|
0 if not. */
|
||||||
|
int tre_have_approx(const regex_t *preg);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif /* TRE_REGEX_H */
|
||||||
|
|
||||||
|
/* EOF */
|
||||||
+7
-31
@@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
#ifndef __setup_include__
|
#ifndef __setup_include__
|
||||||
#define __setup_include__
|
#define __setup_include__
|
||||||
|
|
||||||
#undef PARAMH
|
#undef PARAMH
|
||||||
#undef UNISTDH
|
#undef UNISTDH
|
||||||
#define STRINGH
|
#define STRINGH
|
||||||
@@ -44,40 +43,17 @@
|
|||||||
#undef TIMES_2
|
#undef TIMES_2
|
||||||
#undef GETRUSAGE_2
|
#undef GETRUSAGE_2
|
||||||
#define HAVE_ALLOCA
|
#define HAVE_ALLOCA
|
||||||
|
/* vc 2005 */
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
||||||
|
# define HAVE_VSNPRINTF
|
||||||
|
# define HAVE_SNPRINTF
|
||||||
|
# define snprintf _snprintf
|
||||||
|
#endif
|
||||||
#define SPATH "."
|
#define SPATH "."
|
||||||
#define DPATH "."
|
#define DPATH "."
|
||||||
|
#define DOMAINNAME "irc.net"
|
||||||
#define NO_U_TYPES
|
#define NO_U_TYPES
|
||||||
#define NEED_U_INT32_T
|
#define NEED_U_INT32_T
|
||||||
#define PREFIX_AQ
|
#define PREFIX_AQ
|
||||||
#define LIST_SHOW_MODES
|
#define LIST_SHOW_MODES
|
||||||
|
|
||||||
#ifndef mode_t
|
|
||||||
/*
|
|
||||||
Needed in s_conf.c for the third argument of open(3p).
|
|
||||||
|
|
||||||
Should be an int because of http://msdn.microsoft.com/en-us/library/z0kc8e3z(VS.71).aspx
|
|
||||||
*/
|
|
||||||
#define mode_t int
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
make up for win32 (and win64?) users not being able to run ./configure.
|
|
||||||
*/
|
|
||||||
#ifndef intptr_t
|
|
||||||
#define intptr_t long
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
|
||||||
#define UNREAL_VERSION_GENERATION 3
|
|
||||||
|
|
||||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
|
||||||
#define UNREAL_VERSION_MAJOR 2
|
|
||||||
|
|
||||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
|
||||||
#define UNREAL_VERSION_MINOR 10
|
|
||||||
|
|
||||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
|
||||||
-rc2 for unrealircd-3.2.9-rc2) */
|
|
||||||
#define UNREAL_VERSION_SUFFIX ".7"
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/* tre-config.h. This file defines all compile time definitions
|
||||||
|
that are needed in `regex.h' for Win32. */
|
||||||
|
|
||||||
|
#ifndef HAVE_ALLOCA
|
||||||
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||||
|
*/
|
||||||
|
#define HAVE_ALLOCA_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libutf8.h> header file. */
|
||||||
|
/* #undef HAVE_LIBUTF8_H */
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `reg_errcode_t'. */
|
||||||
|
/* #undef HAVE_REG_ERRCODE_T */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <wchar.h> header file. */
|
||||||
|
#define HAVE_WCHAR_H 1
|
||||||
|
|
||||||
|
/* Define if you want to enable approximate matching functionality. */
|
||||||
|
#define TRE_APPROX 1
|
||||||
|
|
||||||
|
/* Define to enable multibyte character set support. */
|
||||||
|
#define TRE_MULTIBYTE 1
|
||||||
|
|
||||||
|
/* Define to the absolute path to the system regex.h */
|
||||||
|
/* #undef TRE_SYSTEM_REGEX_H_PATH */
|
||||||
|
|
||||||
|
/* Define if you want TRE to use alloca() instead of malloc() when allocating
|
||||||
|
memory needed for regexec operations. */
|
||||||
|
#define TRE_USE_ALLOCA 1
|
||||||
|
|
||||||
|
/* Define to include the system regex.h from TRE regex.h */
|
||||||
|
/* #undef TRE_USE_SYSTEM_REGEX_H */
|
||||||
|
|
||||||
|
/* Define to enable wide character (wchar_t) support. */
|
||||||
|
#define TRE_WCHAR 1
|
||||||
|
|
||||||
|
/* TRE version string. */
|
||||||
|
#define TRE_VERSION "0.7.5"
|
||||||
|
|
||||||
|
/* TRE version level 1. */
|
||||||
|
#define TRE_VERSION_1 0
|
||||||
|
|
||||||
|
/* TRE version level 2. */
|
||||||
|
#define TRE_VERSION_2 7
|
||||||
|
|
||||||
|
/* TRE version level 3. */
|
||||||
|
#define TRE_VERSION_3 5
|
||||||
Executable
+1
@@ -0,0 +1 @@
|
|||||||
|
0,10,20,30,40,50 * * * * /home/mydir-to/ircdcron/ircdchk >/dev/null 2>&1
|
||||||
@@ -1 +0,0 @@
|
|||||||
0,10,20,30,40,50 * * * * @IRCDDIR@/ircdcron/ircdchk >/dev/null 2>&1
|
|
||||||
+11
-61
@@ -8,22 +8,6 @@ MT=mt
|
|||||||
|
|
||||||
############################ USER CONFIGURATION ############################
|
############################ USER CONFIGURATION ############################
|
||||||
|
|
||||||
# You are encouraged NOT to set these values here, but instead make a batch file
|
|
||||||
# which passes all these arguments to nmake, like:
|
|
||||||
# nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" etc etc...
|
|
||||||
# Both ways will work, but if you use a batch file it's easier with
|
|
||||||
# upgrading Unreal as you won't have to edit this makefile again.
|
|
||||||
|
|
||||||
### TRE ###
|
|
||||||
#TRE_LIB_DIR="C:\dev\tre\win32\release"
|
|
||||||
#TRE_INC_DIR="C:\dev\tre"
|
|
||||||
#TRELIB="tre.lib"
|
|
||||||
|
|
||||||
### C-ARES ####
|
|
||||||
#CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release"
|
|
||||||
#CARES_INC_DIR="C:\dev\c-ares"
|
|
||||||
#CARESLIB="cares.lib"
|
|
||||||
|
|
||||||
##### REMOTE INCLUDES ####
|
##### REMOTE INCLUDES ####
|
||||||
#To enable remote include support you must have libcurl installed on your
|
#To enable remote include support you must have libcurl installed on your
|
||||||
#system and it must have ares support enabled.
|
#system and it must have ares support enabled.
|
||||||
@@ -90,20 +74,6 @@ MT=mt
|
|||||||
|
|
||||||
############################# END CONFIGURATION ############################
|
############################# END CONFIGURATION ############################
|
||||||
|
|
||||||
!IFDEF CARES_INC_DIR
|
|
||||||
CARES_INC=/I "$(CARES_INC_DIR)"
|
|
||||||
!ENDIF
|
|
||||||
!IFDEF CARES_LIB_DIR
|
|
||||||
CARES_LIB=/LIBPATH:"$(CARES_LIB_DIR)"
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
!IFDEF TRE_INC_DIR
|
|
||||||
TRE_INC=/I "$(TRE_INC_DIR)"
|
|
||||||
!ENDIF
|
|
||||||
!IFDEF TRE_LIB_DIR
|
|
||||||
TRE_LIB=/LIBPATH:"$(TRE_LIB_DIR)"
|
|
||||||
!ENDIF
|
|
||||||
|
|
||||||
!IFDEF USE_REMOTEINC
|
!IFDEF USE_REMOTEINC
|
||||||
CURLCFLAGS=/D USE_LIBCURL
|
CURLCFLAGS=/D USE_LIBCURL
|
||||||
CURLOBJ=SRC/URL.OBJ
|
CURLOBJ=SRC/URL.OBJ
|
||||||
@@ -152,18 +122,18 @@ MODDBGCFLAG=/LDd /MD /Zi
|
|||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
FD_SETSIZE=/D FD_SETSIZE=16384
|
FD_SETSIZE=/D FD_SETSIZE=16384
|
||||||
CFLAGS=$(DBGCFLAG) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
CFLAGS=$(DBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
||||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||||
CFLAGSST=$(DBGCFLAGST) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
CFLAGSST=$(DBGCFLAGST) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
||||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||||
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
|
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
|
||||||
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(CARES_LIB) $(CARESLIB) $(TRE_LIB) $(TRELIB) $(ZLIB_LIB) $(ZIPLIB) \
|
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \
|
||||||
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
|
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
|
||||||
/nologo $(DBGLFLAG) /out:WIRCD.EXE
|
/nologo $(DBGLFLAG) /out:WIRCD.EXE
|
||||||
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
|
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
|
||||||
/Fosrc/modules/ /nologo $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
|
/Fosrc/modules/ /nologo $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
|
||||||
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||||
MODLFLAGS=/link /def:src/modules/module.def wircd.lib ws2_32.lib $(TRE_LIB) $(TRELIB) $(CARES_LIB) $(OPENSSL_LIB) $(SSLLIBS) \
|
MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \
|
||||||
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
|
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
|
||||||
|
|
||||||
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
|
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
|
||||||
@@ -218,9 +188,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
|||||||
SRC/MODULES/M_NICK.C SRC/MODULES/M_USER.C SRC/MODULES/M_MODE.C \
|
SRC/MODULES/M_NICK.C SRC/MODULES/M_USER.C SRC/MODULES/M_MODE.C \
|
||||||
SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
|
SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
|
||||||
SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
|
SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
|
||||||
SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C \
|
SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C
|
||||||
SRC/MODULES/M_STARTTLS.C SRC/MODULES/M_NOPOST.C SRC/MODULES/M_ISSECURE.C SRC/MODULES/M_CAP.C \
|
|
||||||
SRC/MODULES/M_SASL.C
|
|
||||||
|
|
||||||
DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
|
DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
|
||||||
SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
|
SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
|
||||||
@@ -256,9 +224,6 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
|||||||
SRC/MODULES/M_WATCH.DLL SRC/MODULES/M_PART.DLL SRC/MODULES/M_JOIN.DLL \
|
SRC/MODULES/M_WATCH.DLL SRC/MODULES/M_PART.DLL SRC/MODULES/M_JOIN.DLL \
|
||||||
SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
|
SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
|
||||||
SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
|
SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
|
||||||
SRC/MODULES/M_STARTTLS.DLL \
|
|
||||||
SRC/MODULES/M_NOPOST.DLL SRC/MODULES/M_ISSECURE.DLL SRC/MODULES/M_CAP.DLL \
|
|
||||||
SRC/MODULES/M_SASL.DLL \
|
|
||||||
SRC/MODULES/CLOAK.DLL
|
SRC/MODULES/CLOAK.DLL
|
||||||
|
|
||||||
|
|
||||||
@@ -289,7 +254,7 @@ CONF:
|
|||||||
|
|
||||||
|
|
||||||
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
|
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
|
||||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES /MAP
|
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB SRC/WIN32/ARESLIB.LIB /MAP
|
||||||
-@erase src\win32\win32.res
|
-@erase src\win32\win32.res
|
||||||
$(MT) -manifest WIRCD.EXE.manifest -outputresource:WIRCD.EXE;1
|
$(MT) -manifest WIRCD.EXE.manifest -outputresource:WIRCD.EXE;1
|
||||||
!IFNDEF DEBUGEXTRA
|
!IFNDEF DEBUGEXTRA
|
||||||
@@ -504,10 +469,10 @@ MODULES: $(DLL_FILES)
|
|||||||
|
|
||||||
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
|
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
|
||||||
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
|
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
|
||||||
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) $(TRE_INC) /Fosrc/modules/ \
|
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /Fosrc/modules/ \
|
||||||
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE \
|
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE \
|
||||||
/D _USE_32BIT_TIME_T $(MOD_FILES) \
|
/D _USE_32BIT_TIME_T $(MOD_FILES) \
|
||||||
$(MODLFLAGS) /OUT:src/modules/commands.dll
|
$(MODLFLAGS) src/win32/tre.lib /OUT:src/modules/commands.dll
|
||||||
|
|
||||||
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
|
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_chghost.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_chghost.c $(MODLFLAGS)
|
||||||
@@ -534,7 +499,7 @@ src/modules/m_svsmode.dll: src/modules/m_svsmode.c $(INCLUDES)
|
|||||||
$(CC) $(MODCFLAGS) src/modules/m_svsmode.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_svsmode.c $(MODLFLAGS)
|
||||||
|
|
||||||
src/modules/m_tkl.dll: src/modules/m_tkl.c $(INCLUDES)
|
src/modules/m_tkl.dll: src/modules/m_tkl.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_tkl.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_tkl.c $(MODLFLAGS) src/win32/tre.lib
|
||||||
|
|
||||||
src/modules/m_swhois.dll: src/modules/m_swhois.c $(INCLUDES)
|
src/modules/m_swhois.dll: src/modules/m_swhois.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_swhois.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_swhois.c $(MODLFLAGS)
|
||||||
@@ -582,7 +547,7 @@ src/modules/m_lag.dll: src/modules/m_lag.c $(INCLUDES)
|
|||||||
$(CC) $(MODCFLAGS) src/modules/m_lag.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_lag.c $(MODLFLAGS)
|
||||||
|
|
||||||
src/modules/m_message.dll: src/modules/m_message.c $(INCLUDES)
|
src/modules/m_message.dll: src/modules/m_message.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_message.c src/modules/webtv.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_message.c src/modules/webtv.c $(MODLFLAGS) src/win32/tre.lib
|
||||||
|
|
||||||
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
|
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
|
||||||
@@ -818,21 +783,6 @@ src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES)
|
|||||||
src/modules/m_svsnolag.dll: src/modules/m_svsnolag.c $(INCLUDES)
|
src/modules/m_svsnolag.dll: src/modules/m_svsnolag.c $(INCLUDES)
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_svsnolag.c $(MODLFLAGS)
|
$(CC) $(MODCFLAGS) src/modules/m_svsnolag.c $(MODLFLAGS)
|
||||||
|
|
||||||
src/modules/m_starttls.dll: src/modules/m_starttls.c $(INCLUDES)
|
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_starttls.c $(MODLFLAGS)
|
|
||||||
|
|
||||||
src/modules/m_nopost.dll: src/modules/m_nopost.c $(INCLUDES)
|
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_nopost.c $(MODLFLAGS)
|
|
||||||
|
|
||||||
src/modules/m_issecure.dll: src/modules/m_issecure.c $(INCLUDES)
|
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_issecure.c $(MODLFLAGS)
|
|
||||||
|
|
||||||
src/modules/m_cap.dll: src/modules/m_cap.c $(INCLUDES)
|
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_cap.c $(MODLFLAGS)
|
|
||||||
|
|
||||||
src/modules/m_sasl.dll: src/modules/m_sasl.c $(INCLUDES)
|
|
||||||
$(CC) $(MODCFLAGS) src/modules/m_sasl.c $(MODLFLAGS)
|
|
||||||
|
|
||||||
dummy:
|
dummy:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* AwesomeChristians Chat Network (irc.awesomechristians.com) Network Configuration File
|
||||||
|
* --------------------------------------------------
|
||||||
|
* Added-at: 31 December 2001 15:25
|
||||||
|
* Author: ChildLikeFaith
|
||||||
|
* Email: childlikefaith@awesomechristians.com
|
||||||
|
* -----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "AwesomeChristians Chat Network";
|
||||||
|
default-server "irc.awesomechristians.com";
|
||||||
|
services-server "services.awesomechristians.com";
|
||||||
|
stats-server "services.awesomechristians.com";
|
||||||
|
help-channel "#operhelp";
|
||||||
|
hiddenhost-prefix "awesome";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "ircop.awesomechristians.net";
|
||||||
|
global "ircop.awesomechristians.net";
|
||||||
|
coadmin "co.admin.awesomechristians.net";
|
||||||
|
admin "admin.awesomechristians.net";
|
||||||
|
servicesadmin "services.admin.awesomechristians.net";
|
||||||
|
netadmin "network.admin.awesomechristians.net";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* AXEnet (irc.axenet.org) Network Configuration File
|
||||||
|
* --------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "Axenet";
|
||||||
|
default-server "irc.axenet.org";
|
||||||
|
services-server "services.axenet.org";
|
||||||
|
stats-server "stats.axenet.org";
|
||||||
|
help-channel "#axenethelp";
|
||||||
|
hiddenhost-prefix "axe";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.axenet.org";
|
||||||
|
global "ircop.axenet.org";
|
||||||
|
coadmin "coadmin.axenet.org";
|
||||||
|
admin "admin.axenet.org";
|
||||||
|
servicesadmin "csop.axenet.org";
|
||||||
|
netadmin "netadmin.axenet.org";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Bunker7.net Network Configuration File
|
||||||
|
* -----------------------------------------
|
||||||
|
* Added-at: 17 August 1999 12:34 CT
|
||||||
|
* Author: Rogue
|
||||||
|
* E-Mail: rogue@bunker7.net
|
||||||
|
* $Id$
|
||||||
|
*-----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "bunker7";
|
||||||
|
default-server "irc.bunker7.net";
|
||||||
|
services-server "services.bunker7.net";
|
||||||
|
stats-server "stats.bunker7.net";
|
||||||
|
help-channel "#bunker7";
|
||||||
|
hiddenhost-prefix "bunker7";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "local.bunker7.net";
|
||||||
|
global "global.bunker7.net";
|
||||||
|
coadmin "coadmin.bunker7.net";
|
||||||
|
admin "admin.bunker7.net";
|
||||||
|
servicesadmin "sadm.bunker7.net";
|
||||||
|
netadmin "netadmin.bunker7.net";
|
||||||
|
host-on-oper-up "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* BuRnNET (irc.burncycl.net) Network Configuration File
|
||||||
|
* --------------------------------------------------
|
||||||
|
* Added-at: 03 April 2001 03:31
|
||||||
|
* Author: BuRnCycL
|
||||||
|
* Email: burncycl@burncycl.net
|
||||||
|
* -----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "BuRnNET";
|
||||||
|
default-server "irc.burncycl.net";
|
||||||
|
services-server "services.burncycl.net";
|
||||||
|
stats-server "stats.burncycl.net";
|
||||||
|
help-channel "#help";
|
||||||
|
hiddenhost-prefix "hide";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.burncycl.net";
|
||||||
|
global "oper.burncycl.net";
|
||||||
|
coadmin "coadmin.burncycl.net";
|
||||||
|
admin "admin.burncycl.net";
|
||||||
|
servicesadmin "csop.burncycl.net";
|
||||||
|
netadmin "netadmin.burncycl.net";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* CaboNet (irc.cabonet.org) Network Configuration File
|
||||||
|
* --------------------------------------------------
|
||||||
|
* Added-at: 03 February 2001 15:38
|
||||||
|
* Author: Nandin
|
||||||
|
* Email: nandin@cabonet.org
|
||||||
|
* -----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "CaboNet";
|
||||||
|
default-server "irc.cabonet.org";
|
||||||
|
services-server "services.cabonet.org";
|
||||||
|
stats-server "stats.cabonet.org";
|
||||||
|
help-channel "#cabonet";
|
||||||
|
hiddenhost-prefix "cnet";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "local.cabonet.org";
|
||||||
|
global "oper.cabonet.org";
|
||||||
|
coadmin "coadmin.cabonet.org";
|
||||||
|
admin "admin.cabonet.org";
|
||||||
|
servicesadmin "csop.cabonet.org";
|
||||||
|
netadmin "netadmin.cabonet.org";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Added-at: 25 november 2000 17:35 GMT
|
||||||
|
* Author: Highlander (J.S. Morrison)
|
||||||
|
* E-Mail: highlander@chatcrap.com
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "ChatCrap";
|
||||||
|
default-server "irc.chatcrap.com";
|
||||||
|
services-server "services.cabonet.org";
|
||||||
|
stats-server "stats.chatcrap.com";
|
||||||
|
help-channel "#operhelp";
|
||||||
|
hiddenhost-prefix "chatcrap";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.chatcrap.com";
|
||||||
|
global "ircop.chatcrap.com";
|
||||||
|
coadmin "coadmin.chatcrap.com";
|
||||||
|
admin "admin.chatcrap.com";
|
||||||
|
servicesadmin "serviceop.chatcrap.com";
|
||||||
|
netadmin "netadmin.chatcrap.com";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* ChatUniverse (irc.chatuniverse.net) Network Configuration File
|
||||||
|
* --------------------------------------------------
|
||||||
|
* Added-at: 16 March 2001 13:02
|
||||||
|
* Author: PeTrArChY
|
||||||
|
* Email: bradbury@rebeldev.net
|
||||||
|
* -----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "ChatUniverse";
|
||||||
|
default-server "irc.chatuniverse.net";
|
||||||
|
services-server "services.chatuniverse.net";
|
||||||
|
stats-server "stats.chatuniverse.net";
|
||||||
|
help-channel "#chatuniverse";
|
||||||
|
hiddenhost-prefix "CU";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.chatuniverse.net";
|
||||||
|
global "oper.chatuniverse.net";
|
||||||
|
coadmin "coadmin.chatuniverse.net";
|
||||||
|
admin "admin.chatuniverse.net";
|
||||||
|
servicesadmin "csop.chatuniverse.net";
|
||||||
|
netadmin "netadmin.chatuniverse.net";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* CTCP Networks (irc.ctcp.net) Network Configuration File
|
||||||
|
*
|
||||||
|
* Added-at: 12 February 2002 19:54
|
||||||
|
* Author: Mark
|
||||||
|
* Email: mark@ctcp.net
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "CTCP Networks";
|
||||||
|
default-server "irc.ctcp.net";
|
||||||
|
services-server "services.ctcp.net";
|
||||||
|
stats-server "stats.ctcp.net";
|
||||||
|
help-channel "#opers";
|
||||||
|
hiddenhost-prefix "ctcp";
|
||||||
|
hosts {
|
||||||
|
local "locop.ctcp.net";
|
||||||
|
global "oper.ctcp.net";
|
||||||
|
coadmin "coadmin.ctcp.net";
|
||||||
|
admin "admin.ctcp.net";
|
||||||
|
servicesadmin "csop.ctcp.net";
|
||||||
|
netadmin "netadmin.ctcp.net";
|
||||||
|
host-on-oper-up yes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Dark Kaos Network (irc.darkkaos.net) Network Configuration File
|
||||||
|
*
|
||||||
|
* Added-at: 04 February 2002 03:15
|
||||||
|
* Author: ka0t1c_m4n
|
||||||
|
* Email: drk_kaos@yahoo.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "Dark Kaos Network";
|
||||||
|
default-server "irc.darkkaos.net";
|
||||||
|
services-server "services.darkkaos.net";
|
||||||
|
stats-server "stats.darkkaos.net";
|
||||||
|
help-channel "#help";
|
||||||
|
hiddenhost-prefix "hide";
|
||||||
|
hosts {
|
||||||
|
local "localop.darkkaos.net";
|
||||||
|
global "would.u.like.to.be.me.com";
|
||||||
|
coadmin "ircop.darkkaos.net";
|
||||||
|
admin "i.hate.terr.oists.net";
|
||||||
|
servicesadmin "Csop.darkkaos.net";
|
||||||
|
netadmin "netadmin.darkkaos.net";
|
||||||
|
host-on-oper-up yes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
set {
|
||||||
|
network-name "DigitalIRC.Net";
|
||||||
|
default-server "irc.digitalirc.net";
|
||||||
|
services-server "Services.DigitalIRC.Net";
|
||||||
|
stats-server "Statistics.DigitalIRC.com";
|
||||||
|
help-channel "#Digitalirc";
|
||||||
|
hiddenhost-prefix "NN";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "LocOper.DigitalIRC.Net";
|
||||||
|
global "Oper.DigitalIRC.Net";
|
||||||
|
coadmin "NetAdmin.DigitalIRC.Net";
|
||||||
|
admin "Admin.DigitalIRC.Net";
|
||||||
|
servicesadmin "ServicesOp.DigitalIRC.Net";
|
||||||
|
netadmin "NetAdmin.DigitalIRC.Net";
|
||||||
|
host-on-oper-up "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Discussioni.Org (IRC.Discussioni.Org) Network Configuration File
|
||||||
|
*
|
||||||
|
* Added-at: 17 January 2002 22:39
|
||||||
|
* Author: Jollino
|
||||||
|
* Email: jollino@discussioni.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "Discussioni.Org";
|
||||||
|
default-server "IRC.Discussioni.Org";
|
||||||
|
services-server "Services.Discussioni.Org";
|
||||||
|
stats-server "Stats.Discussioni.Org";
|
||||||
|
help-channel "#help";
|
||||||
|
hiddenhost-prefix "DISCUSSIONI";
|
||||||
|
hosts {
|
||||||
|
local "LocOp.Discussioni.Org";
|
||||||
|
global "Oper.Discussioni.Org";
|
||||||
|
coadmin "Co-Admin.Discussioni.Org";
|
||||||
|
admin "Admin.Discussioni.Org";
|
||||||
|
servicesadmin "ServOper.Discussioni.Org";
|
||||||
|
netadmin "NetAdmin.Discussioni.Org";
|
||||||
|
host-on-oper-up yes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
set {
|
||||||
|
network-name "DragonWings";
|
||||||
|
default-server "irc.dragonwings.org";
|
||||||
|
services-server "saturn.dragonwings.org";
|
||||||
|
stats-server "stats.dragonwings.org";
|
||||||
|
help-channel "#DragonWings";
|
||||||
|
hiddenhost-prefix "dw";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.dragonwings.org";
|
||||||
|
global "ircop.dragonwings.org";
|
||||||
|
coadmin "coadmin.dragonwings.org";
|
||||||
|
admin "admin.dragonwings.org";
|
||||||
|
servicesadmin "serviceop.dragonwings.org";
|
||||||
|
netadmin "netadmin.dragonwings.org";
|
||||||
|
host-on-oper-up "off";
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* GamesCafe (irc.gamerscafe.net) Network Configuration File
|
||||||
|
*
|
||||||
|
* Added-at: 22 August 2001 01:17
|
||||||
|
* Author: Osiris
|
||||||
|
* Email: daniel@linux.ws
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "GamesCafe";
|
||||||
|
default-server "irc.gamerscafe.net";
|
||||||
|
services-server "Services.GamersCafe.Net";
|
||||||
|
stats-server "Services.GamersCafe.Net";
|
||||||
|
help-channel "#GamersCafe";
|
||||||
|
hiddenhost-prefix "GC";
|
||||||
|
hosts {
|
||||||
|
local "localoper.gamerscafe.net";
|
||||||
|
global "oper.gamerscafe.net";
|
||||||
|
coadmin "coadmin.gamerscafe.net";
|
||||||
|
admin "admin.gamerscafe.net";
|
||||||
|
servicesadmin "csop.gamerscafe.net";
|
||||||
|
netadmin "network-admin.gamerscafe.net";
|
||||||
|
host-on-oper yes;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* German-Elite (irc.german-elite.net) Network Configuration File
|
||||||
|
* -----------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
set {
|
||||||
|
network-name "German-Elite";
|
||||||
|
default-server "irc.german-elite.net";
|
||||||
|
services-server "services.german-elite.net";
|
||||||
|
stats-server "stats.german-elite.net";
|
||||||
|
help-channel "#german-elite";
|
||||||
|
hiddenhost-prefix "GE";
|
||||||
|
prefix-quit "Quit:";
|
||||||
|
hosts {
|
||||||
|
local "locop.german-elite.net";
|
||||||
|
global "ircop.german-elite.net";
|
||||||
|
coadmin "coadmin.german-elite.net";
|
||||||
|
admin "admin.german-elite.net";
|
||||||
|
servicesadmin "csop.german-elite.net";
|
||||||
|
netadmin "netadmin.german-elite.net";
|
||||||
|
host-on-oper-up "on";
|
||||||
|
};
|
||||||
|
};
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user