mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-20 22:14:46 +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
|
||||
for Unreal3.2.5
|
||||
for Unreal3.2.8.1
|
||||
|
||||
This program will help you to compile your IRC server, and ask you
|
||||
questions regarding the compile-time settings of it during the process.
|
||||
|
||||
+95
-3
@@ -1,3 +1,95 @@
|
||||
This is the Unreal3.3* development tree.
|
||||
We are currently in pre-alpha stage, which means this code should not be
|
||||
used by anyone but the developers or other people liking a broken ircd ;)
|
||||
Unreal3.2.8.1 Release Notes
|
||||
============================
|
||||
|
||||
==[ ABOUT 3.2.8.1 RELEASE ]==
|
||||
This Unreal3.2.8.1 release fixes a (serious) security issue regarding
|
||||
allow::options::noident. The original release notes for 3.2.8 are below.
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||
first, before doing 'make'
|
||||
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIRCd/faq/
|
||||
Read them before asking for help.
|
||||
- Report bugs at http://bugs.unrealircd.org/
|
||||
- When upgrading a network, we assume you are upgrading from the previous
|
||||
version (3.2.7). Upgrading from 3.2.6 or 3.2.5 should also be no problem.
|
||||
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.
|
||||
Please also minimize the time you have multiple versions running, a few days or
|
||||
one week is generally not a problem, but having mixed versions on a network for several
|
||||
weeks or months is not recommended.
|
||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a SUMMARY of
|
||||
the changes in this release. There have been 70+ changes, and trying to mention them
|
||||
all would be useless, see the Changelog for the full list of changes.
|
||||
|
||||
==[ NEW ]==
|
||||
- set::level-on-join: this defines which privileges a user receives when creating a
|
||||
channel, default is 'chanop', the only other available setting is 'none' (opless).
|
||||
- Away notification through WATCH: This allows clients to receive a notification
|
||||
when someone goes away or comes back, along with a reason, a bit like IM's.
|
||||
There's probably no current client supporting this but it would be a nice feature
|
||||
in notify lists. Client developers: see Changes file for full protocol details.
|
||||
This feature can be disabled by setting set::watch-away-notification to 'no'.
|
||||
- Spamfilter: Slow spamfilter detection: For each spamfilter, Unreal will check,
|
||||
each time it executes, how long it takes to execute. When a certain threshold is
|
||||
reached the IRCd will warn or even remove the spamfilter. This could prevent a
|
||||
spamfilter from completely stalling the IRCd. Warning is configured through
|
||||
set::spamfilter::slowdetect-warn (default: 250ms) and automatic deletion is
|
||||
configured by set::spamfilter::slowdetect-fatal (default: 500ms).
|
||||
You can set both settings to 0 (zero) to disable slow spamfilter detection.
|
||||
This feature is currently not available on Windows.
|
||||
- SSL: set::ssl::server-cipher-list can be used to limit the allowed ciphers
|
||||
- SSL: To specify when an SSL session key should be renegotiated you can use
|
||||
set::ssl::renegotiate-bytes <bytes> and set::ssl::renegotiate-timeout <seconds>.
|
||||
- UHNAMES support: This sends the full nick!ident@host in NAMES which can be
|
||||
used by clients for their IAL. mIRC, Klient, etc support this.
|
||||
- There have also been some behavior changes, which can be considered NEW, see
|
||||
next section (CHANGED).
|
||||
|
||||
==[ CHANGED ]==
|
||||
- IPv6: On IPv6 servers you no longer have to use ::ffff:1.2.3.4 IP's for IPv4 in the
|
||||
config file, you can use the simple 1.2.3.4 form, as they are converted automatically.
|
||||
- When someone is banned and /PARTs, the part reason (comment) is no longer shown
|
||||
- ChanMode +S/+c: now strips/blocks 'reverse' as well
|
||||
- Smart banning is now disabled by default because it was too annoying, this means that
|
||||
f.e. if there's a ban on *!*@*.com then you can still add a ban on *!*@*.aol.com
|
||||
- except ban { } now also protects against ZLINEs and ban ip { }
|
||||
- Modules: user modes and channel modes without parameters (eg: +X) no longer have
|
||||
to be PERManent, this means they can be upgraded/reloaded/unloaded on-the-fly.
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- Zip links issue (Overflowed unzipbuf)
|
||||
- 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 ]==
|
||||
- CGI:IRC: Several IPv6 issues, both on IPv6 IRCd's and CGI:IRC gateways
|
||||
- IP masks in oper::from::userhost sometimes didn't match when they should
|
||||
- (G)ZLINE's on IPv6 users were sometimes rejected
|
||||
- CHROOTDIR works again
|
||||
- OperOverride fixes
|
||||
- Throttling is now more accurate
|
||||
- And more... see Changelog
|
||||
|
||||
==[ KNOWN ISSUES ]==
|
||||
- Regexes: Be careful with backreferences (\1, etc), certain regexes can slow the IRCd
|
||||
down considerably and even bring it to a near-halt. In the spamfilter user target it's
|
||||
usually safe though. Slow spamfilter detection can help prevent the slowdown/freeze,
|
||||
but might not work in worst-case scenario's.
|
||||
- Regexes: Possessive quantifiers such as, for example, "++" (not to be 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 ]==
|
||||
* See Changelog for more details
|
||||
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@
|
||||
--braces-on-struct-decl-line
|
||||
--paren-indentation0
|
||||
--case-brace-indentation0
|
||||
--line-length110
|
||||
--line-length80
|
||||
--declaration-indentation5
|
||||
-T size_t
|
||||
-T aClass
|
||||
|
||||
@@ -1278,129 +1278,53 @@
|
||||
- Fixed SVSMODE -b [user] not always removing all bans (specificly, bans on the cloaked
|
||||
host when you have a vhost), a code cleanup was also done. Based on patch from tabrisnet.
|
||||
Reported by Rob (#0002981).
|
||||
- Removed old poll code from s_bsd.c and s_debug.c also do_client_queue function
|
||||
from s_bsd.c
|
||||
- Removed old set_blocking function from s_bsd.c
|
||||
- SocketLoop is become general IO loop for *nix too.
|
||||
- loadmodule now reports proper errors when the actual file can't be found, instead of blaming
|
||||
it on the temp file, reported in #3015.
|
||||
- Removed warning at SocketLoop
|
||||
- Pointed possible code changes with NEW_IO define for future code changes it
|
||||
will also do some resist do broken codes coming with new io engine.
|
||||
- Moved write_pidfile to ircd.c from s_bsd.c.
|
||||
- Added new fdlist structure to fdlist.h
|
||||
- Start of modulizing of channel modes. This basically just means we will be using extcmodes
|
||||
for everything. Recode of extcmodes partially complete (only 30% or something), using a
|
||||
FAST 'slot system' now in the channel structure for paramter modes instead of linked lists.
|
||||
Besides the slot system being faster, it also causes less memory fragmentation (and
|
||||
memory fragmentation actually causes slower CPU as well, especially when running for a
|
||||
long time). Channel modes are still permanent and all.
|
||||
I'm first going to move modes to modules and then later on have a go at making them non-
|
||||
permanent (already know exactly how to do it, but other things go first ;p).
|
||||
Documentation on how all this works will be added later as well. It's really work-in-progress
|
||||
at the moment, which means: the API might (or 'will') change.
|
||||
Channel modes will be in src/modules/chanmodes, named chmode_<modechar>.c, that's the
|
||||
general rule at least.. Some will be 'packed together' like the RFC modes s/n/t/k/l/etc.
|
||||
Channel mode 'j' has been moved to src/modules/chanmodes/chmode_j.c which seems to work ok.
|
||||
Details (aka: documentation) about which loadmodule's will be needed for which modes
|
||||
(like I said, since some will be bundled in for example an 'rfc' module) will also be added
|
||||
later. For now it doesn't matter much, since there's only j ;).
|
||||
Side note: some +j code is still in the core (only eating 4 bytes per-user and 4 bytes
|
||||
per-channel, though), and will remain there for now.
|
||||
I did the work of above in 2 days, so ehm.. it's still far from complete, but I don't want
|
||||
to wait for one BIG commit which changes half of the ircd :P.
|
||||
Added hooks (needs to be documented, like all other hooks, one day ;p):
|
||||
HOOKTYPE_CAN_JOIN: called from can_join(), seems more logical than PRE_LOCAL_JOIN, also
|
||||
more nicely passes the key and link stuff.
|
||||
HOOKTYPE_CAN_SEND: not implemented yet. will be called from can_send()
|
||||
HOOKTYPE_CLEANUP_CLIENT: called from free_client()
|
||||
HOOKTYPE_CLEANUP_USER: called from free_user()
|
||||
HOOKTYPE_CLEANUP_USER2: called from exit_client when freeing a user.. I know, this
|
||||
might sound redundant, but then again.. some things REQUIRE a certain order (like before
|
||||
freeing membership links).. Or at least I don't want to break the current logic ;).
|
||||
- Added some new defines which didnt noticed for new io engine.
|
||||
- Ok now new io code broken, i implementing all helper functions of hybrid and
|
||||
io engine in that way at least we will have working code. Code cleanup sure
|
||||
will take some time at the end.
|
||||
- Moved failed oper snotices to snomask +o, and are sent out to all servers. Also now shows
|
||||
the uid attempted (like [FAILEDAUTH] does) for incorrect host or maxlogin.
|
||||
- Documentation (help.conf) fix for svsnline reported in #3025.
|
||||
- Moved HOOKTYPE_LOCAL_NICKCHANGE and HOOKTYPE_REMOTE_NICKCHANGE to *after* the nickchange.
|
||||
As a consequence of this the last parameter you get in your hook is now 'oldnick' rather
|
||||
than 'newnick'. So the new nick is in sptr->name now and oldnick in last parameter.
|
||||
- Added HOOKTYPE_PRE_CHANMSG, this should now be used for blocking/morphing text.
|
||||
It has the parameters: sptr, chptr, text, notice
|
||||
- HOOKTYPE_CHANMSG now no longer allows one to block the text (use HOOKTYPE_PRE_CHANMSG for
|
||||
that). It's also moved to after the message was actually sent.
|
||||
- Added HOOKTYPE_KNOCK (sptr, chptr)
|
||||
- Added HOOKTYPE_MODECHAR_FIXME. Internal for now, will be replaced with a proper
|
||||
HOOKTYPE_MODECHAR later (and arguments will change). It's just an internal hack for
|
||||
chmode +f for now ;).
|
||||
- Updated indent.pro to use length=110. It still does not indent how I want it to be though,
|
||||
so don't use it yet ;).
|
||||
- Moved channel mode +f to src/modules/chanmodes/chmode_f.c, interestingly enough this took
|
||||
longer than recoding extcmodes paramter support and moving chan mode +j.
|
||||
It's not only looking like a complex channel mode, it actually *IS* one ;).
|
||||
TODO: make sure it actually works, and fix sjoining (partly not implemented yet->crash) ;p
|
||||
- Fixed sjoin issue due to modulizing.
|
||||
- MARK: 3.3* was forked off from here
|
||||
- Removed server numeric output from /MAP for normal users (still visible to ircops).
|
||||
- Renamed unreal32docs.tk.html to unreal32docs.tr.html
|
||||
- Module coders: Added HOOKTYPE_POST_SERVER_CONNECT (1 param: cptr) which is called when
|
||||
a server connects, just like HOOTYPE_SERVER_CONNECT but this is actually called *after*
|
||||
all clients and channels are synched. Obviously needed for some modules which must synch
|
||||
data that refers to clients/channels that would otherwise not exist yet on the other side.
|
||||
- The server SSL certificate and private key can now be reloaded without requiring a server
|
||||
restart, simply use: /REHASH -ssl
|
||||
- Small compile fix for above
|
||||
- Fixed /SAJOIN able to join insecure users to +z channels, reported by phedny (#0002601).
|
||||
- Added HOOKTYPE_CAN_KICK (sptr, who, chptr, comment, sptr_flags, who_flags). Returns an
|
||||
error message if the kick should be denied. The upper layer (thus NOT you) takes care
|
||||
of OperOverride.
|
||||
- Modulized channel mode +Q (src/modules/chanmodes/chmode_upQ.c)
|
||||
- Fixed SSL crash problem due to previous SSL change.
|
||||
- Fixed some bugs in webtv code that could have caused trouble in the future (off by one),
|
||||
reported by Ilja van Sprundel.
|
||||
- Module coders: Fixed CALLBACKTYPE_CLOAK_EX, it was not working properly at all.
|
||||
- Kick non-SSL users when the channel turns out to be +z during netmerge, reported by
|
||||
Ron2K (#0002942).
|
||||
- Fixed bug in MODE #channel showing extended channel mode parameters when not in #channel.
|
||||
- Made 'MODE #channel b' and friends show bans to ircops even when not in channel.
|
||||
- Fix for channel mode +f: It incorrectly didn't eat a paramter on unset (ouch!), even
|
||||
though it always acted like it did in the MODE line sent to the channel. This bug caused
|
||||
desynchs in some cases. Bug reported by Korfio (#0003048).
|
||||
- Fixes to SVSNICK: case-change no longer causes a collision, don't return the value from
|
||||
exit_client (which would be FLUSH_BUFFER), fix QUIT not being sent back on collision.
|
||||
- Fix for above so it doesn't -r the client.
|
||||
- Made WATCH not send a LOGOFF/LOGON for a nickchange with case-change (blah -> BLAH).
|
||||
- Fixed small memory leak in resolver (~40 bytes when connecting to a server)
|
||||
- Made Unreal use the original name in case of a CNAME, instead of the forwarded name,
|
||||
reported by jerrcsnet (#0003054).
|
||||
- The "looking up your hostname" message was always sent, regardless of show-connect-info.
|
||||
- Added allow::options::wrongpasscont to pass allow block checking to the next one if the
|
||||
password doesn't match.
|
||||
- Bugfix for above (wrongpasscont).
|
||||
- Setting some version info properly to 3.3-pre-alpha, removing all translated documents
|
||||
(they will be readded around beta1 or so, to easy the work for translators a bit).
|
||||
- Some more updates for above, plus updated authors list and all.
|
||||
- Added set::nick-length so the nick length can be dynamically changed (from 1-30),
|
||||
requested by various people including IdiotStic (#0003042).
|
||||
- Updated doc/coding-guidelines again
|
||||
- Fixed cloak cutoff problem with long hosts.
|
||||
- Kick non-SSL users when the channel turns out to be +z during netmerge, reported by
|
||||
Ron2K (#0002942).
|
||||
- Windows 2003: Fixed UnrealIRCd unable to boot if no DNS server is configured, we now
|
||||
fallback to set::dns::nameserver in such a case. Thanks to Romeo (reporter, #0002802)
|
||||
and Bock for tracing this down.
|
||||
- Fixed set::allowed-nickchars causing a segfault for some unknown charsets, rportered
|
||||
by avb (#0003069).
|
||||
- Fixed cloak cutoff problem with long hosts.
|
||||
- Added doc/help.tr.conf (Turkish), translated by Diablo.
|
||||
- Added doc/example.tr.conf (Turkish), translated by ironic.
|
||||
- Fixed zlib version check: 1.x is compatible with all 1.*, etc. (#0002966).
|
||||
- Fixed some messages not being sent as token when PROTOCTL TOKEN is in effect, especially
|
||||
MODEs sent back after SVSMODE #channel. Reported by Muisje (#3072) and w00t (#2691).
|
||||
- Fixed SVSO - not removing coadmin (+C). Reported by Muisje (#0003077).
|
||||
- Fixed SQUIT not being sent as token, reported by Muisje (#0003079). Also fixed SQUIT/KILL
|
||||
for unknown not being sent as token.
|
||||
- Fixed deny link {} blocks being ignored by autoconnect. Reported by a couple people, also
|
||||
see #0003084.
|
||||
- Fixed a couple of add_Command/del_Command lines in m_chgname and m_helpop trying to
|
||||
add the same token twice. Didn't cause any trouble, normally, though...
|
||||
- Committed watch away notification, I did this more than a month ago but can't be bothered
|
||||
to document it right now, just want to get it off my cvs queue ;P.
|
||||
Syntax is 'WATCH A +TestUser' to have someone with away notification on your watchlist.
|
||||
- Updated ukrainian-w1251 and belarussian-w1251 charsets: some characters were previously
|
||||
included that shouldn't. Reported by avb (#0003102), patch supplied by Bock.
|
||||
- Made it so that when 'java' is enabled for a listen block, then the 2nd parameter to
|
||||
NICK is not seen as a password on this port. Patch from afolentes (#0003097).
|
||||
- Fixed some unitialized pointer things for win32 w/ssl on keyprompt, no idea if it
|
||||
helps, though. Would appreciate it if another code looks into this. -- Syzop
|
||||
- Fixed SVSO - not removing coadmin (+C). Reported by Muisje (#0003077).
|
||||
- Fixed deny link {} blocks being ignored by autoconnect. Reported by a couple people,
|
||||
also see #0003084.
|
||||
- Fixed m_names.so not being build (a problem for people not using commands.so),
|
||||
reported by aegis (#0003085).
|
||||
- Using SVSMODE (or SVS2MODE) to set -x will now actually remove the vhost from memory,
|
||||
@@ -1426,7 +1350,13 @@
|
||||
- Win32: Fixed a few compiler warnings, suggested by Zell (#0002890).
|
||||
- Moved a couple isatty() calls to DEBUGMODE (#0002945).
|
||||
- Made win32 compile again, reported by Bock (#0003106).
|
||||
- Moved failed oper snotices to snomask +o, and are sent out to all servers. Also now
|
||||
shows the uid attempted (like [FAILEDAUTH] does) for incorrect host or maxlogin.
|
||||
- Fixed set::allowed-nickchars causing a segfault for some unknown charsets, reported
|
||||
by avb (#0003069).
|
||||
- Cutoff webtv whois at MAXTARGETS (#0003004).
|
||||
- loadmodule now reports proper errors when the actual file can't be found, instead of
|
||||
blaming it on the temp file, reported in #3015.
|
||||
- Fixed 'SVSMOTD !' not deleting the services motd in memory, reported by avb (#0003110).
|
||||
- Snomask N: Don't show nickchanges for U-lines, reported by seneces (#0002636).
|
||||
- Fixed set::dns::bind-ip directive seen as duplicate, reported by aegis (#0003074).
|
||||
@@ -1450,17 +1380,9 @@
|
||||
Brad (#2488), vonitsanet (#2467).
|
||||
- Made OpenSSL version dynamic, reported by buildsmart (#0002975).
|
||||
- Rejecting fake +z modes in conf, reported by rve (#0002532).
|
||||
- Improved description of link::hub/leaf/leafdepth in unreal32docs.html reported by Bugz (#2623),
|
||||
also fixed typo (leafdepth, not leaf-depth), reported by monas (#3083).
|
||||
- Changed some minor Makefile stuff
|
||||
- Fixed belarussian-w1251 charset.. accidently copied a "'" which caused an internal
|
||||
error, reported by Bock (#0003114).
|
||||
- Added TOPIC description to serverprotocol.html, reported by avb (#3105).
|
||||
- Fixed PROTOCTL description in serverprotocol.html, shouldn't have had a :. Reported by Muisje (#3013).
|
||||
- Removed all files in networks/, the directory itself may stay for now. Those files were
|
||||
old, newest one dating back to 2002 (most of them 2001)... much better if this is handled
|
||||
internally by the networks themselves anyway (and then they can put cloak keys in their
|
||||
network file too, which they now can't ;p). I wonder if someone actually still used it anyway.
|
||||
- Added information about extbans to help.conf (/HELPOP ?EXTBANS). Patch from Bock
|
||||
(#0003113).
|
||||
- Made SAPART work for mulitple channels, just like SAJOIN. Reported by Snake and
|
||||
@@ -1476,51 +1398,42 @@
|
||||
- Fixed bug where omitting class::connfreq would result in a huge connection attempt
|
||||
flood when autoconnect was enabled. We now set class::connfreq to 60 if it's not
|
||||
specified. Reported by Milliways (#0003018).
|
||||
- Improved description of link::hub/leaf/leafdepth in unreal32docs.html reported by Bugz
|
||||
(#2623), also fixed typo (leafdepth, not leaf-depth), reported by monas (#3083).
|
||||
- c-ares resolver: upgrade to 1.3.2.
|
||||
- fix for above (c-ares win32 lib)
|
||||
- Update serverprotocol.html with info for 3.2.6.
|
||||
- upgraded windows c-ares (areslib.lib) as well.
|
||||
- fix for above
|
||||
- Added release notes for 3.2.6
|
||||
- Fixed help.conf typo
|
||||
** 3.2.6-rc1 release **
|
||||
- Get rid of some old stuff in release notes
|
||||
- Added donators since 3.2.5
|
||||
- Setting set::pingpong-warning didn't work, reported by vonitsanet, patch supplied by
|
||||
avb (#0003131).
|
||||
- Tagged chanmode modules as official (oops..)
|
||||
- Modulized channel mode +G (src/modules/chanmodes/chmode_upG.c)
|
||||
- Now actually committed +G (different file, see next) ;)
|
||||
- Renamed all chanmodule modules:
|
||||
+G = wordcensor
|
||||
+j = jointhrottle
|
||||
+Q = nokicks
|
||||
+f = chanflood
|
||||
- Don't show silence list to others
|
||||
- Improved detection of bad set::modes-on-oper and oper::modes, now rejecting things like
|
||||
'o', 'z', and more.
|
||||
- Fix from above fixes an /OPER announce problem reported by Bock (#0003135).
|
||||
- Fixed SSL bug where an outgoing connect (either autoconnect, or /connect), would not
|
||||
show any error message when it failed. Error information has also been slightly
|
||||
improved. Reported by vonitsanet (#0003138).
|
||||
- Updated SVSNLINE syntax in help.conf (the remove-syntax).
|
||||
- Post-3.2.5 CVS-only bug: Fixed spamfilter on user target not working properly when
|
||||
changing nicks (was still trying to match on the old nick), reported by vonitsanet
|
||||
(#0003143).
|
||||
- CRC32 is ripped out reported by Trocotronic (#0002963).
|
||||
- DOMAINNAME is removed from ./Config reported by satmd (#0003063).
|
||||
- THROTTLING and FAST_BADWORD_REPLACE cannot be configured in config.h reported by raymondvrolijk (#0002937).
|
||||
- /sqline supports sqlining for channels. #*ble* will forbid channels and *ble* will forbid only nicks (not channels).
|
||||
Forbid message showed by numeric ERR_FORBIDDENCHANNEL (448) reported by aragon and Jase (#0000935, #0003012).
|
||||
- conf_deny NOTICE message is replace by ERR_FORBIDDENCHANNEL.
|
||||
** 3.2.6-rc2 release **
|
||||
- Fixed possible crash with using quarantine, reported by Sephiroth (#0003151).
|
||||
- Showing even more SSL server errors now, hopefully all of them, also changed the
|
||||
error notice a bit so it's much more like non-SSL server link errors. Reported by
|
||||
vonitsanet (#0003150).
|
||||
- Added TOKEN (#) and STATS (2) to serverprotocol.html.
|
||||
- Fixed STATS protocol description - servers must not do /stats themselves.
|
||||
- Italic fix in serverprotocol
|
||||
*** Around 3.2.6 release *
|
||||
** 3.2.6-rc3 release **
|
||||
- Updated release notes, mass-change of version number, no code changes.
|
||||
** 3.2.6 release **
|
||||
- Fixed bug where SVSO was unable to give various operflags such as q, d, X, reported
|
||||
by prodigy2k7 (#0003203).
|
||||
- /WHOIS now shows the ident of local users - if ident enabled and they had an ident -
|
||||
instead of always "*" in the 'is connecting from' line. Suggested and patch provided
|
||||
by djGrrr (#0002888).
|
||||
NOTE: This needs checking, this patch changed the 'unknown' stuff to ~.. doublecheck
|
||||
the allow block and everything.. didn't we use unknown@ there sometimes? I'll leave this
|
||||
to someone else...
|
||||
- Added ability to enable "no fake lag" for a user through through services via the
|
||||
new commands SVSNOLAG/SVS2NOLAG (syntax: SVSNOLAG [+|-] NickName). Obviously, care
|
||||
should be taken when giving such access to a user since he/she will be able to flood
|
||||
@@ -1530,335 +1443,327 @@
|
||||
dre, patch provided by djGrrr.
|
||||
- Fixed SAPART causing a flood of notices from all servers, fun. Reported and patch
|
||||
provided by djGrrr.
|
||||
- Booting ircd waits for 1 second to check if runs correctly. If not, waits for 4 more seconds
|
||||
to check again, suggested by vonitsanet (#0003136).
|
||||
- Fixed a typo in help.conf, reported by Sakkath (#0003196).
|
||||
- Added extended ban ~j, reported by Shining Phoenix (#0003192).
|
||||
- Made ./unreal configtest to test config file, suggested by djGrrr (#0003164).
|
||||
- Added info on /rehash -dns and /rehash -ssl to unreal32docs.html and help.conf, reported by Bricker and djGrrr (#0003186).
|
||||
- Changed password length from 32 to 48, is allocated dynamically anyway.
|
||||
- Fixed file descriptor leakage on rehash. This resulted in [number of modules loaded]
|
||||
file descriptors being leaked upon every /REHASH.
|
||||
So if you, for example, had 3 modules loaded and rehashed 30 times, it would cause
|
||||
the ircd to consume 90 useless file descriptors (which often means 90 less file
|
||||
descriptors being available to clients).
|
||||
- Fixed serverprotocol.html typo.
|
||||
- Added class::options::notargetlag to prevent to lag to users from this class, suggested by djGrrr (#0003145).
|
||||
- Added include::bind-ip to bind an ip to download in case of having defined LIBCURL, suggested by djGrrr (#00003185).
|
||||
- oper::from::userhost now accepts a CIDR address (eg *me@1.2.3.0/24), requested by djGrrr (#0003234).
|
||||
- Corrected a couple of grammar errors in WebTV whois (/msg IRC WHOIS nick) output, reported by CuLpA (#0003244).
|
||||
- Implemented #0003254 - Auth type 'sslcertfingerprint-sha1', suggested by
|
||||
djGrr. There are reservations regarding the security of this, but for most
|
||||
purposes it should be okay. Cryptographically minded people may comment.
|
||||
This may also be used to allow remote included opers with SSL certificate
|
||||
fingerprints as we cannot as of yet remote include client certificates
|
||||
(#0002832, suggested by Stealth)
|
||||
Example use:
|
||||
$ openssl x509 -in cert.pem -noout -sha1 -fingerprint
|
||||
(where cert.pem is the oper's/server's/etc SSL client certificate)
|
||||
SHA1 Fingerprint=FA:A6:A3:42:95:34:15:68:26:35:40:18:8D:50:68:D4:15:C8:12:9E
|
||||
|
||||
translating into this auth block:
|
||||
password "FA:A6:A3:42:95:34:15:68:26:35:40:18:8D:50:68:D4:15:C8:12:9E" { sslcertfingerprint-sha1; };
|
||||
(the auth code is case sensitive).
|
||||
|
||||
If anyone is interested in making a module for SSL client certificate
|
||||
authentication for services, you can probably use the code in here to do it
|
||||
quite simple.
|
||||
.. please mind any errors, it's been years since I (Stskeeps) last committed to here :)
|
||||
- Patch to remove lusers.c and change from bzero to memset in ircd.c
|
||||
by w00t
|
||||
- Patch to remove curses leftover (I am going to assume SIGWINCH isn't a
|
||||
problem) by w00t
|
||||
- Fixed #0003002 reported by DelGurth, fixed by WolfSage regarding trailing \'s in
|
||||
MOTDs
|
||||
- Fixed #0003171 reported by danieldg (typo)
|
||||
- #0003118 reported by vonitsanet (typo in ADDOMOTD), fixed by WolfSage
|
||||
- #0003272 reported and fixed by WolfSage (addmotd, addomotd in help.conf)
|
||||
- #0003274 reported by Stealth regarding using actual nick and not given
|
||||
nick in SAPART
|
||||
- #0002842 reported by Zell, fixed by WolfSage regarding glitch in rehash
|
||||
output glitch
|
||||
- #0003159 reported by aegis and Bock, regarding typos in documentation
|
||||
- #0002560 reported and patched by w00t, regarding a typo in /SAMODE
|
||||
- #0002844 reported by RandomNumber: Spamfilter bawks on capitalizing actions
|
||||
- #0002404 reported by White_Magic, patched by w00t, removing /addline
|
||||
(which the bug report wasnt about)
|
||||
- #0002420 reported by KnuX fixed by WolfSage
|
||||
- #0003147 reported by vonitsanet, fixed by djGrrr regarding making
|
||||
spamfilters work in case of /setname
|
||||
- #0002157 reported by Dukat, fixed by djGrrr regarding cloaking module
|
||||
allows cloakkey 1 and 3 to be identical.
|
||||
- #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
|
||||
- Fixed #0003171 reported by danieldg (typo) doc/technical
|
||||
- #0003146 reported by vonitsanet, regarding Modes O,S (etc) not rejected for modes-on-connect
|
||||
fixed by djGrrr
|
||||
- #0003289 suggested and patched by fbi, adding (Ping timeout: 182 seconds)
|
||||
- #0002932 reported by therock247uk, patched by WolfSage, regarding Local
|
||||
opers can /chghost /chgident /chgname on someone thats on another server on
|
||||
the network
|
||||
- #0003285 patched by w00t, removing add_local_domain and other useless
|
||||
stuff
|
||||
the network.
|
||||
- #0003212 patched by Grunt, regarding /userip <someone_else> seemingly
|
||||
shows my (cloaked) IP
|
||||
- #0003091,#0003068,#003290 reported by Bock, aegis, WolfSage and patched by aegis, regarding
|
||||
Makefile.in includes networks* files/dirs, Problems when specifying
|
||||
different directory for binary in Config, error on 'make install' if path
|
||||
to binary not exist
|
||||
- #0003216 patched by djGrrr, regarding when you run ./Config for a second
|
||||
time after settings are saved in config.settings, the SSLDIR and ZIPLINKSDIR
|
||||
defaults are basically completely ignored.
|
||||
- #0003287 reported and patched by satmd regarding 318 end of /whois list
|
||||
breaks RFC
|
||||
- Fixed a typo in #003091 related patch
|
||||
- #0002846 reported by alex323, patched by WolfSage, regarding local ircop cannot issue CLOSE command
|
||||
- #0002685 reported by w00t, patched by WolfSage, regarding useless if () in m_help.c
|
||||
- #0003232 reported by vonitsanet patched by djGrr, regarding /map is not shown u:lined servers to local opers and /links does.
|
||||
- #0003272 patched by w00t, regarding remove restrictions on NOTICE/PRIVMSG $* for opers.
|
||||
- Implemented #0002990, changing 432 into: /* 432 ERR_ERRONEUSNICKNAME */ ":%s 432 %s %s :%s",
|
||||
- #0002301 reported by vonitsanet patched by WolfSage, regarding adding oper
|
||||
username to /whois, visible if you are an oper
|
||||
- #0003223 reported by JasonTik patched by WolfSage, regarding undocumented
|
||||
max link pass length. This now -WARNS- when there is a password bigger
|
||||
than PASSWDLEN.
|
||||
- Patch by WolfSage to make /rehash -all case insensitive.
|
||||
- #0003000 reported and patched by Stealth, regarding Send TKL updates to G snomask
|
||||
- #0003288 patched by fbi, read error prefix in quit msg if socket error on
|
||||
read and write for write
|
||||
- #0003294 reported by Bock, patched by aegis regarding a problem with make
|
||||
install, that also cleans up the stuff to install a bit, with adding a
|
||||
variable to determine what should be copied.
|
||||
- #0003281 regarding removing masked channels, this will make channels with
|
||||
:'s in them not be backwards compatible with 3.2.*, patch by WolfSage
|
||||
- #0003301 regarding sending @1 ]:Server %s closed the connection
|
||||
Devel.WolfSage.org[192.168.2.97] instead of @1 ] :Server
|
||||
Devel.WolfSage.org[192.168.2.97] closed the connection. This would
|
||||
probably have caused netsplits to go unnoticed.
|
||||
- #0002095 removing /helpop broadcasting
|
||||
- #0003298 reported by Stealth patched by WolfSage, regarding KICK now sends
|
||||
proper channel name to other servers, Local KICK now displays proper
|
||||
channel name from other servers
|
||||
shows your own (cloaked) IP.
|
||||
- #0002846 reported by alex323, patched by WolfSage, regarding local ircop cannot issue CLOSE command
|
||||
- #3272 patched by w00t, regarding remove restrictions on NOTICE/PRIVMSG $* for opers.
|
||||
- Fixed SVSKILL sending an illegal (wrong direction) QUIT right after, #0003307
|
||||
- Disallowing channels with : in them, it's not worth to risk breakage of 32* to 33*,
|
||||
services, and other things like odd-extbans and things we haven't thought about,
|
||||
all for allowing one silly character.
|
||||
- #0003060 reported by Robby22, patched by WolfSage, regarding remote
|
||||
rehashing -ssl / -garbage is not Global'd, and a bugfix to an earlier
|
||||
WolfSage patch
|
||||
- #0003092 reported by tabrisnet, patched by WolfSage, regarding documentation says
|
||||
link::bind-ip is optional, but not specifying it produces an error
|
||||
- #0003313 reported by Stealth, regarding not erroring/warning when me::name
|
||||
is bigger than HOSTLEN, from now it will error on config read.
|
||||
- #0002040 reported by aquanight, removing dependancy on +l for +L. This
|
||||
will be backwards compatible as well, SJOIN doesn't care (TM) and mode
|
||||
doesn't either in case of a server sending it. So this will be just a
|
||||
client protocol modification. Also pulled out a modification that got in
|
||||
accidentially.
|
||||
- #0002318 reported by Stealth, regarding small error in oper block
|
||||
documentation
|
||||
- #0003139 reported by vonitsanet, improving error messages on /connect
|
||||
when trying to /connect to a server with wildcards (* and ?) in the link
|
||||
block. We also raise an error if link::options::autoconnect is used
|
||||
together with wildcards in hostname.
|
||||
- #0002549 reported by Ostdeutschland, regarding lacking information
|
||||
about SQUIT in help.conf
|
||||
- #0003327 reported by fbi, regarding a unreferenced and duplicate
|
||||
m_opermotd/m_motd in core
|
||||
- #0003333 reported by fbi, regarding a unreferenced and duplicate
|
||||
m_botmotd in core and modules
|
||||
- A bug was introduced in the patch for #0003139. Patched by WolfSage
|
||||
- #0002533 reported by Dodge_Ram, patched by WolfSage, regarding notices
|
||||
not being sent when /*line and /shun are used to request stats
|
||||
- Removed class.h and minor references to aClass. Patched by WolfSage
|
||||
- Changed all references to 'class' to 'cclass' (connection class) - to
|
||||
avoid some keyword confusion and other wacky ideas
|
||||
- Added support for "chained" extbans. Put simply this allows extban combinations
|
||||
such as ~q:~c:#test to only silence users on #test, for example. This feature
|
||||
is enabled by default, but can be disabled during ./Config -advanced. Module
|
||||
support for this feature must note the following:
|
||||
- For is_ok function, the extban can either assign extban_is_ok_nuh_extban, which
|
||||
will deal checking a chained extban (including checking for restricted extbans),
|
||||
or it can call that function from its own is_ok routine. For the latter case,
|
||||
remember to pass only the mask part of your ban format (ie, don't just pass para as
|
||||
otherwise it'll just call your is_ok again).
|
||||
- For conv_param function, the extban can either assign extban_conv_param_nuh_or_extban,
|
||||
which will automatically call conv_param for a chained extban, or pretty up a n!u@h mask.
|
||||
- For is_banned, the extban should call ban_check_mask with the mask part of the parameter.
|
||||
This will automatically call is_banned for a stacked extban, or match against a n!u@h. n!u@h
|
||||
is checked against the current user (ie, with the info in the globals ban_ip, etc), so things
|
||||
can get weird if you call this outside a normal ban check.
|
||||
Modules must keep in mind that chained extban support is not available (and neither are the three
|
||||
functions above) if DISABLE_STACKED_EXTBANS is #defined (this is controled by Config). Modules will
|
||||
not compile/load if they try to use them anyway.
|
||||
This change should not break extban modules, and should need some more extensive testing.
|
||||
- Removed some more confusion in source (module IRC commands vs IRC commands)
|
||||
- Changed IRCCommand::friend into IRCCommand::partner
|
||||
- Removed an odd declaration in common.h regarding find_user_link
|
||||
- Changed make_virthost prototype to not include a C++ keyword
|
||||
- More cleanup - this may potentially break some OS'es, but let us catch
|
||||
this in testing
|
||||
- Fixed CommandAdd prototype a bit
|
||||
- Made autoconf detect c++ compiler, now availiable in CXX
|
||||
- Made the actual ircd be compiled by c++ compiler (linking, not source)
|
||||
- Added m_template.cpp and 'make custommodulecpp MODULEFILE=m_template'
|
||||
ability - meaning, C++ modules for Unreal. This is mostly a proof of
|
||||
concept, so please tell me if some OS'es break bigtime.
|
||||
- #003075 - reported by aquanight regarding log block failing silently
|
||||
for non-creatable log files. Now fails with an error message.
|
||||
- Now using #0003028, with more intelligent accept() handling. The IRCd
|
||||
- xx reported and fixed by WolfSage (addmotd, addomotd in help.conf)
|
||||
- #0003159 reported by aegis and Bock, regarding typos in documentation
|
||||
- #0002560 reported and patched by w00t, regarding a typo in /SAMODE
|
||||
- #0002844 reported by RandomNumber: make spamfilter actions case insensitive
|
||||
- help.conf updates... #0002420 reported by KnuX fixed by WolfSage
|
||||
- #0003264 reported by Robby22 regarding help.conf typo
|
||||
- Updated c-ares to version 1.4.0
|
||||
- Updated tre to version 0.7.5
|
||||
- help.conf updates. Missing some ;'s.
|
||||
- #0003027 reported by Trocotronic, regarding doing -l <para> on SJOIN,
|
||||
and not -l as supposed. This may have caused desyncs
|
||||
- #0003368 patched by Stealth giving users access to do /module on remote
|
||||
servers
|
||||
- #0002533 reported by Dodge_Ram, patched by WolfSage, regarding notices
|
||||
not being sent when /*line and /shun are used to request stats
|
||||
- Now using #0003028, with more intelligent accept() handling. The IRCd
|
||||
will now attempt to accept() up to LISTEN_SIZE (possibly saving CPU
|
||||
through this under load, and speeding up connection).
|
||||
- IRCd now also sets the &me fd as being non blocking (wasn't before, that
|
||||
was odd..)
|
||||
- Added set::ssl::server-cipher-list, #002368 requested by Beastie
|
||||
- Added set::ssl::renegotiate-bytes, set::ssl:renegotiate-timeout, #0002971
|
||||
suggested by tabrisnet. Gets activated when >0. Please set sane values.
|
||||
- Added set::ssl::dh to indicate DH parameters. These are needed to support
|
||||
DSA certificates and should probably make them work from now on. Code
|
||||
originally by the inspircd team.
|
||||
- Fixed a number of compile errors/runtime errors on win32 (also a SSL
|
||||
brainfart regarding DH), #0003345, patched by fez
|
||||
- #0003350 - reported by aquanight regarding ./unreal restart not
|
||||
working in 3.3*. Now works properly again.
|
||||
- #0001924 - requested by syzop: Added ./unreal gencloak, which generates
|
||||
random keys 10 ~ 20 characters in length (doesn't (yet) work for Win32).
|
||||
- Misc fix for disabling extban chains, should've done stuff in our autoconf
|
||||
stuff instead of hacking configure directly :P .
|
||||
- #0002833 reported and patched by tabrisnet, implementing UHNAMES
|
||||
- #0003156 reported by Bricker: Made ./unreal dump some nicer errors eg
|
||||
"UnrealIRCd is not running" as opposed to "kill: 3426: no such process" etc.
|
||||
- #0003368 patched by Stealth giving users access to do /module on remote
|
||||
servers
|
||||
- #0002677 reported by aquanight, removing listen::options::remoteadmin,
|
||||
listen::options::mask, set::options::no-stealth
|
||||
- Adding Velcro (the build system from unreal4), for some experimentation
|
||||
with a new module API. Is currently not autoconf'ied, makefile'ed, etc.
|
||||
May the screaming commence.
|
||||
- Changed Velcro/build script to fix a bug
|
||||
- Changed Velcro/build to actually be able to compile to get included into
|
||||
u3 space
|
||||
- Patched #002531 by Stealth, removing /stats H
|
||||
- Fixed a bug introduced by another patch that caused log files to be
|
||||
created without any permissions
|
||||
- Added HookAddCfg as a more typesafe way to add
|
||||
HOOKTYPE_CONFIGRUN/CONFIGTEST. Was needed for Velcro and possibly other
|
||||
situations
|
||||
- Some more Velcro changes to make it fit into 3.3
|
||||
- Some more actual working Velcro code, adding "loadmodule4" config
|
||||
directive which loads velcro modules
|
||||
- #0003382 reported by stealth regarding nested C-style comments messing
|
||||
- up example.conf parsing
|
||||
- #0003107 feature request by Sakkath regarding new WHO flag: +p <port>
|
||||
- #0003340 reported by vonitsanet regarding compile warnings for
|
||||
lib/tre-parse.c. Upgraded tre to latest release (0.7.5)
|
||||
- Updated c-ares to latest release (1.4.0)
|
||||
- #0001317 reported by thilo regarding removal of (username) being
|
||||
appended to topics set by U:Lined servers.
|
||||
- Added missing semicolons to some help.conf entries
|
||||
- #0001518 reported by Cnils regarding new WHO functionality: -c with
|
||||
no args now shows all users not in a channel if you are an IRCOp,
|
||||
and +c shows all users in at least 1 channel.
|
||||
- #0002451 reported by GSF19 regarding *** Q: %s tried to kick you, when
|
||||
it should be *** q: %s. (Actually that's ugly too but at least it
|
||||
matches the umode for now)
|
||||
- #0002695 reported by w00t regarding unused check_registered and
|
||||
check_registered_user calls in s_misc.c
|
||||
- Removed anything involving portnum global variable. Not proper in
|
||||
newconf world
|
||||
- #0002920 reported by aquanight, regarding command line mkpasswd,
|
||||
patched by BuHHunyx. Syntax: wircd.exe -P|-p authmethod password.
|
||||
If it is -p, it will get shown in a MessageBox, -P it will get copied
|
||||
to clipboard.
|
||||
- Broke compile with portnum fix, fixed
|
||||
- #0003027 reported by Trocotronic, regarding doing -l <para> on SJOIN,
|
||||
and not -l as supposed. This may have caused desyncs
|
||||
- #0002172 reported by Stealth, patched by WolfSage, fixing if you have an
|
||||
admin block, and forget a semicolon on a line, Unreal will proceed to use
|
||||
the block with no error, but the information will be incorrect/incomplete.
|
||||
- #0003177 patched by aegis, changing non-modular add_Command to
|
||||
CommandAdd's through a huge patch. This may break some things, so heads
|
||||
up. From now on add_Command is unsafe land for modules and may be removed
|
||||
without warning.
|
||||
- #0002475 reported by aquanight on detecting \'s in module filenames on
|
||||
win32 and not do ./module for it
|
||||
- #0001740 reported by Trocotronic, making the IRCd send ERROR : to all
|
||||
links with possible reason for RESTART; like /die does it.
|
||||
- #0003363 patched by adrianp, changing IRC_UID and IRC_GID into
|
||||
- #0003139 reported by vonitsanet, improving error messages on /connect
|
||||
when trying to /connect to a server with wildcards (* and ?) in the link
|
||||
block. We also raise an error if link::options::autoconnect is used
|
||||
together with wildcards in hostname.
|
||||
- #0002040 reported by aquanight, removing dependancy on +l for +L. This
|
||||
will be backwards compatible as well, SJOIN doesn't care (TM) and mode
|
||||
doesn't either in case of a server sending it. So this will be just a
|
||||
client protocol modification.
|
||||
- Fixed SVSKILL sending an illegal QUIT
|
||||
- #0003216 patched by djGrrr, regarding when you run ./Config for a second
|
||||
time after settings are saved in config.settings, the SSLDIR and ZIPLINKSDIR
|
||||
defaults are basically completely ignored.
|
||||
- #0002420 reported by KnuX fixed by WolfSage
|
||||
- #0003147 reported by vonitsanet, fixed by djGrrr regarding making
|
||||
spamfilters work in case of /setname
|
||||
- Added oper CIDR
|
||||
- #0001317 reported by thilo regarding removal of (username) being
|
||||
appended to topics set by U:Lined servers, patched by WolfSage
|
||||
- #0003382 reported by stealth regarding nested C-style comments messing
|
||||
up example.conf parsing
|
||||
- #0003092 reported by tabrisnet, patched by WolfSage, regarding
|
||||
documentation says
|
||||
link::bind-ip is optional, but not specifying it produces an error
|
||||
- #0003232 reported by vonitsanet patched by djGrr, regarding /map is not
|
||||
shown u:lined servers to local opers and /links does
|
||||
- #0003363 patched by adrianp, changing IRC_UID and IRC_GID into
|
||||
defines IRC_USER, IRC_GROUP which is a string specifiying what user name/
|
||||
group name that should be changed into, instead of a hardcoded gid/uid.
|
||||
This should make it easier for packaged binary releases to work (even
|
||||
though this probably means Debian will take us in, ick .. Can't we pull
|
||||
a new fight with debian-legal again?)
|
||||
- Made m_tkl use NULL instead of TOK_NONE
|
||||
- #0001438 reported by Mouse, to use uname() syscall on ircd start instead of
|
||||
uname tool at Config/configure to fill in MYOSNAME. As with the #0003363 patch
|
||||
this will make binary packages a bit more reasonable. As a side effect, the
|
||||
amount of information in /version has been reduced to just the OS name (eg: Linux,
|
||||
FreeBSD, etc) and release (2.6.17, 6.0-RELEASE, etc), which is about the same amount
|
||||
of information given by Win32 IRCds. If for some reason uname() can't get this
|
||||
info, we just config_warn and set MYOSNAME to "POSIX" as this data is only ever
|
||||
used in /version.
|
||||
- Fixed a MYOSNAME bug (ret is <0 if failure)
|
||||
- Changed regexp engine to PCRE. Heads up: May severely break things. You
|
||||
need to ./Config -q; make clean all to get this working.
|
||||
- Laid groundwork for seperated build (onlycommands, commandsandmodules,
|
||||
onlymodules)
|
||||
- #0003399 changing numeric 307 to "has identified for this nickname"
|
||||
- Added configure --with-moduleswhich=PARA where PARA can be:
|
||||
onlycommands = only build commands.so (plus chanmodes)
|
||||
onlymodules = only build m_* modules (plus chanmodes)
|
||||
commandsandmodules = build both. We still need to add this as a default or
|
||||
a ./Config option. Default is commandsandmodules. Any takers?
|
||||
- Changed logging into not open/close constantly, #0002943. This may leaks
|
||||
fds and cause problems, so its a heads up
|
||||
- Some minor changes to unreal.in, to fix unreal stop, start, and
|
||||
restart a bit.
|
||||
- #0003396 reported and patched by Bock regarding not copying server.*.pem
|
||||
on "make install"
|
||||
- Renamed spamfilter.conf to spamfilters.conf.sample, to have one less
|
||||
problem with overwriting during install
|
||||
- Added -b flag to install in make install, so src/ircd, INSTALL_CONFS,
|
||||
src/modules/*.so and *.pem is backed up to name~ if already exists
|
||||
- Added Command *CommandAdd_Alias(Module *module, char *cmd, char *tok, int
|
||||
(*func)(aClient*, aClient*, int, char**, char *sentcmd), unsigned char
|
||||
params, int flags), which will add a command that gets the command that
|
||||
the user sent along in "sentcmd".
|
||||
- Fixed typo in new module build switch
|
||||
- Added a Config -advanced prompt for --with-moduleswhich=
|
||||
- Small fix in s_conf.c and Velcro
|
||||
- Implementing #0003239 suggested by Siyavash, patched by Trocotronic, patch
|
||||
details:
|
||||
added -n parameter to unreal.exe. So, if you want, you could specify a
|
||||
name of service. It will receive all command. For example:
|
||||
- #0003244 reported by CuLpA about grammar errors in webtv outputs
|
||||
- Entering 3.2.7 RC1 phase
|
||||
- Applied patch to fix some win32 problems reported by Bock, fixed by fez
|
||||
- #0003405 repoted by Stealth regarding wildcards and autoconnect being an
|
||||
||
|
||||
- Fixed irc_uid|gid being defined on win32
|
||||
- Win32 library updates from Bock
|
||||
- #0003429 reported by Bock about appearing to accept multiple auth blocks.
|
||||
- Fixed fixed #003244 fix.
|
||||
- Applied #0003422 help.conf patches by Bock
|
||||
- Applied #0002999 patch by Bock, fixing a fd leak.
|
||||
- Applied #0003144 patch by Bock, fixing win32 install and such
|
||||
- Applied #0003392 patch by Bock, adding some stuff to help.conf
|
||||
- Entering 3.2.7 RC2 phase
|
||||
- Fix, fix #0003421 patch
|
||||
- Fixed wolfsage eff-up in c-ares.tar.gz, not running make distclean
|
||||
- Updated /info
|
||||
- Updated release notes
|
||||
*** 3.2.7 release ***
|
||||
- Fix aquanight's email
|
||||
- #0003351 reported by Mareo regarding m_addmotd.so and m_svslusers.so
|
||||
not being created
|
||||
- Fixed bug in SJOIN, possibly causing things like odd bans showing up in
|
||||
some circumstances. Reported by Hurga, patch provided by fbi.
|
||||
- Now allowing '1.2.3.4' ips again in IPv6 mode as well (instead of enforcing
|
||||
'::ffff:1.2.3.4' ips in the conf, they are now auto-converted to that).
|
||||
Based on patch from tabrisnet.
|
||||
- Fixed issue where the cgiirc block did not work with IPv6, reported by
|
||||
djGrrr, fixed by previous change.
|
||||
- Fixed CHROOTDIR, which was broken in 3.2.7: IRC_USER/IRC_GROUP did not work
|
||||
properly when CHROOTDIR was in use (#0003454).
|
||||
- Fixed oper block bug where ip masks in oper::from::userhost did not always
|
||||
work succesfully (ex: 192.168.* worked, but 192.168.*.* didn't). Issue was
|
||||
introduced in 3.2.7, reported by tabrisnet (#0003494).
|
||||
- CGI:IRC + IPv6: Fixed cgiirc block hostname never matching ipv4 cgiirc
|
||||
gateway properly (..again..), this was previously reported by pv2b.
|
||||
- CGI:IRC + IPv6: Fixed issue where all cgiirc ipv4 clients were rejected with
|
||||
the message 'Invalid IP address', reported by stskeeps (#0003311), nate
|
||||
(#0003533) and others.
|
||||
- Document CHROOTDIR in unreal32docs, reported by Beastie (#0002446).
|
||||
- Fixed Mac OS X issue where "access denied" errors were encountered when
|
||||
trying to read unrealircd.conf. All due to strange chmod() behavior. We now no
|
||||
longer try to set permissions on Mac OS X. Patch provided by Tibby (#3489).
|
||||
- Hopefully fixed 'Overflowed unzipbuf increase UNZIP_BUFFER_SIZE' issue,
|
||||
reported by Monk (#0003453). It should be large enough now. Also changed the
|
||||
way we deal with this when it happens (if it ever happens again..): we now
|
||||
close the server connection, instead of trying to continue, because continueing
|
||||
is too dangerous.
|
||||
- Remove part reason when user is banned, suggested by vonitsanet (#0003354).
|
||||
- Fixed set::modes-on-join: could crash or disfunction with certain
|
||||
parameter mode combinations.
|
||||
- Minor source cleanup in src/modules/m_map.c, suggested by fez (#0003540).
|
||||
- Usermode modules now no longer have to be permanent (#3174), this was
|
||||
simply a bug that was introduced when adding remote includes support years
|
||||
ago.
|
||||
- Channelmode modules without parameters (like: +X, but not: +X 1) no longer
|
||||
have to be permanent. Channelmodes with parameters still have to be PERM
|
||||
however, and there are currently no plans to change it.
|
||||
- Fixed bug (in all Unreal versions) with parameter channelmodes, any 3rd
|
||||
party module which adds an extra parameter chanmode could cause crashes.
|
||||
- Added set::level-on-join: which level should the user get when (s)he's is
|
||||
the first to enter a channel. Currently only 'none' and 'op' are supported.
|
||||
- unreal32docs.html: doubt it will help much but at least this makes it a
|
||||
little bit more clear (#3548), chatops vs globops.
|
||||
- ChanMode +S/+c: reverse is now stripped/blocked as well, because it's
|
||||
similar to color, and is just as annoying (..if not worse).
|
||||
- So called 'smart' banning is now disabled by default, this means you can
|
||||
now set a ban on *!*@*h.com and then later add one on *!*@*blah.com without
|
||||
any trouble. Previously the second one was rejected due to the former
|
||||
already matching it. To change it back edit the include/config.h setting
|
||||
SOCALLEDSMARTBANNING.
|
||||
- Fixed (G)ZLINE check.. it was incorrectly rejecting many IPv6 bans.
|
||||
Reported by guigui (#0003572).
|
||||
- Backport from 3.3 away notification from Oct 2006, this is v0, a further
|
||||
patch will follow soon and the numerics will be changed.
|
||||
- Ok, finished away notification in WATCH. It now shows the away reasons too.
|
||||
This new feature (away notify) is announced in 005 (ISUPPORT) as: WATCHOPTS=A
|
||||
|
||||
unreal install -n Deimos
|
||||
Format is: WATCH A +UserOne +UserTwo
|
||||
|
||||
New numerics to cope with away notification in WATCH are:
|
||||
RPL_NOWISAWAY: to indicate the user is away _when adding_ it to WATCH list
|
||||
RPL_GONEAWAY: user was not away, but is now
|
||||
RPL_NOTAWAY: user was away, but is no longer away
|
||||
RPL_NOWISAWAY: user was away, and still is, but the reason changed
|
||||
Example:
|
||||
|
||||
It will install a service called UnrealIRCd-Deimos. Then, the configfile
|
||||
must be named unrealircd-deimos.conf. This way gave you chance to install
|
||||
more than one service on the same machine using only one installation.
|
||||
WATCH A +Target
|
||||
Request to add user 'Target' to the watch list with away notification
|
||||
|
||||
unreal start -n Deimos // it will start service with
|
||||
unrealircd-deimos.conf file
|
||||
unreal uninstall -n Deimos
|
||||
:maintest.test.net 609 MySelf Target ~blih test.testnet 1204309588 :not here atm
|
||||
Reply to watch add: user is online and away, reason is provided
|
||||
|
||||
Although, -n parameter is optional, so you can use "unreal install" as
|
||||
usual.
|
||||
:maintest.test.net 599 MySelf Target ~blih test.testnet 1204309588 :is no longer away
|
||||
User is back (no longer away)
|
||||
|
||||
If you run service from console (double click to wircd.exe for example),
|
||||
it will only start one service, main service, called UnrealIRCd (install
|
||||
without -n). If you only install services with name (-n), double click will
|
||||
start wircd.exe as usual (window mode).
|
||||
-n will affect to all command (install, uninstall, start, stop, etc)
|
||||
:maintest.test.net 598 MySelf Target ~blih test.testnet 1204309722 :lunch
|
||||
State change: user is now away, reason is provided
|
||||
|
||||
Remember to use different listening ports (or interfaces) on every
|
||||
unrealircd-*.conf files.
|
||||
- Changed version into 3.2.8 as this will be the target for devel branch
|
||||
- Undid that. Version is now 3.3-willneverbereleased.
|
||||
:maintest.test.net 597 MySelf Target ~blih test.testnet 1204309738 :shopping, bbl
|
||||
User is still away, but reason changed.
|
||||
|
||||
*****
|
||||
The syntax for each numeric is:
|
||||
<nickname> <username> <hostname> <awaysince> :<away reason>
|
||||
In case of 599 (RPL_NOTAWAY) it is:
|
||||
<nickname> <username> <hostname> <awaysince> :is no longer away
|
||||
|
||||
THIS WAS THE DEVELOPMENT BRANCH FOR UNREAL3.3*. HOWEVER, 3.3* HAS BEEN
|
||||
DISCONTINUED. FOCUS IS ON 4.* (NEXT-GEN IRCD) AND 3.2* (CURRENT STABLE IRCD).
|
||||
FOR 3.2* USE THE BRANCH 'unreal3_2_fixes'
|
||||
DO NOT USE THIS 3.3* BRANCH FOR ANYTHING OTHER THAN COPYING FEATURES/FIXES
|
||||
FROM 3.3* TO 3.2* !!
|
||||
|
||||
*****
|
||||
For the record, this is all based on a draft from codemastr from 2004, which was
|
||||
implemented in Unreal3.3 (devel branch) in 2006. Today, in 2008 it was updated
|
||||
with away reason support and backported to Unreal3.2. Because away notification
|
||||
hasn't been used until now (due to it only being in Unreal3.3) we felt it was
|
||||
safe to break some numerics.
|
||||
- Upgraded c-ares to 1.5.1, thanks to aegis for the partial patch (#0003671).
|
||||
This also fixed a curl compile/run issue, reported by static-x (#0003545).
|
||||
- Added slow spamfilter detection. For each spamfilter, Unreal will check,
|
||||
each time it executes, how LONG it takes to execute. When a certain threshold
|
||||
is reached the IRCd will warn or even remove the spamfilter. This will prevent
|
||||
a spamfilter (regex) from slowing down the IRCd too much, though it's still not
|
||||
a guarantee that it will never go to a halt (eg: in case it takes several
|
||||
minutes to execute a regex or loops forever).
|
||||
Warning can be configured via set::spamfilter::slowdetect-warn (default:
|
||||
250 milliseconds) and automatic deletion of spamfilters if it takes too
|
||||
long is set through set::spamfilter::slowdetect-fatal (default: 500 ms).
|
||||
NOTE: slow spamfilter detection is currently not available on Windows.
|
||||
NOTE 2: to disable slow detection you can set the warn and fatal settings
|
||||
to 0 (zero). OR to really disable all code, remove SPAMFILTER_DETECTSLOW
|
||||
from include/config.h and recompile.
|
||||
- Added another Mac OS X hack, such as one that should help against
|
||||
'error setting max fd's to 9223372036854775807' which prevents the ircd
|
||||
from booting up. Reported by btcentral and Bock. This hack might not be
|
||||
totally correct though ;).
|
||||
- Limit watch status requests to one per time, more will often flood you off
|
||||
and is stupid/useless. Reported by ash11.
|
||||
- The OS version output is now taken from uname() at runtime instead of
|
||||
'uname -a' at compile time. This fixes bug #1438 and #3320 reported by
|
||||
Mouse and Monk, where because of previous behavior the IRCd sometimes would
|
||||
not compile in certain environments.
|
||||
- configure script is now generated by autoconf 2.61 (was: 2.59), hopefully
|
||||
that won't cause any issues, perhaps it even helps to fix some bugs...
|
||||
- #0001740 reported by Trocotronic, making the IRCd send ERROR : to all
|
||||
links with possible reason for RESTART; like /die does it. [Backport, sts]
|
||||
- Added set::ssl::server-cipher-list, #002368 requested by Beastie
|
||||
[Backport, sts]
|
||||
- Added set::ssl::renegotiate-bytes, set::ssl:renegotiate-timeout, #0002971
|
||||
suggested by tabrisnet. Gets activated when >0. Please set sane values.
|
||||
[Backport, sts]
|
||||
- #0002475 reported by aquanight on detecting \'s in module filenames on
|
||||
win32 and not do ./module for it [Backport]
|
||||
- #0002172 reported by Stealth, patched by WolfSage, fixing if you have an
|
||||
admin block, and forget a semicolon on a line, Unreal will proceed to use
|
||||
the block with no error, but the information will be incorrect/incomplete.
|
||||
[Backport, WolfSage]
|
||||
- #0002833 reported and patched by tabrisnet, implementing UHNAMES
|
||||
[Backport, only slightly modified for speed]
|
||||
- #0001924 - requested by syzop: Added ./unreal gencloak, which generates
|
||||
random keys 10 ~ 20 characters in length (*NIX only). [Backport, aquanight]
|
||||
- #0003313 reported by Stealth, regarding not erroring/warning when me::name
|
||||
is bigger than HOSTLEN, from now it will error on config read. [Backport, sts]
|
||||
- /REHASH -all not case sensitive
|
||||
- Win32 makefile: removed /MAPINFO:LINES, since visual studio 2005 and up
|
||||
don't support this and will fail to compile UnrealIRCd. This fixes #3680,
|
||||
reported by therock247uk.
|
||||
- Upgraded c-ares to 1.6.0 (also now using pkg-config).
|
||||
If you get a "undefined reference to `clock_gettime'" error, then you
|
||||
might consider installing 'pkg-config' on your system, and then simply re-run
|
||||
./Config and make, should fix things.
|
||||
TODO: testing! testing! i'd like to be sure this c-ares is stable!
|
||||
- Win32 compile fixes.
|
||||
- Upgraded c-ares on windows to 1.6.0 as well.
|
||||
- Win32: build w/manifest. Looks like Unreal@Win32 now actually works again :).
|
||||
- except ban { } is now also effective against Z:lines. It already protected
|
||||
when the user was connected, but not once he/she tried to reconnect, this
|
||||
is now fixed. Reported several times, last by Stealth in #0003377.
|
||||
- Fix crash if settime/expirytime is out of range in TKL, set by another server.
|
||||
Should never happen except when using faulty services or when something else
|
||||
got horrible wrong (like a date which is 40 years ahead). Reported by
|
||||
Darth Android (#0003738).
|
||||
- Fix NAMES with UHNAMES support, screwed it up at 'Win32 compile fixes' a
|
||||
few lines up...
|
||||
- Fix OOB read caused by UHNAMES support.
|
||||
- Added some countermeasures against crash-on-boot, #0003725 and #0003653,
|
||||
reported by Ablom2008 and mist26.
|
||||
- Win32: rebuild TRE for Vstudio 2008 (and ditch C++ / MSVCP... dependency).
|
||||
- Added release notes (not finished yet).
|
||||
- Added set::watch-away-notification which can be set to 'no' to disable
|
||||
WATCH away notification. The default is 'yes' (=enabled).
|
||||
- Fixed crash which could happen when rehashing while linking to a server,
|
||||
this could be #0003689 reported by Monk.
|
||||
- New HOOKTYPE_LOCAL_NICKPASS: the 2 parameters are: sptr (client) and nsptr
|
||||
(NickServ client, NULL if not present). You can return 1 (HOOK_DENY) to
|
||||
make the IRCd not send IDENTIFY to NickServ. Suggested by tabrisnet
|
||||
(#0003739).
|
||||
- A notice is now sent when listing spamfilters through /SPAMFILTER just
|
||||
like /stats f. Bug #0003752 reported by Strawberry_Kittens, similar to
|
||||
#0002533.
|
||||
** 3.2.8-rc1 release **
|
||||
- Added documentation for set::spamfilter::slowdetect-warn,
|
||||
set::spamfilter::slowdetect-fatal, set::ssl::server-cipher-list,
|
||||
set::ssl::renegotiate-bytes, set::ssl::renegotiate-timeout,
|
||||
set::watch-away-notification and ./unreal gencloak. Reported by Bock
|
||||
(#0003764).
|
||||
- set::ssl::renegotiate-bytes: fix when specifying a value such as 10m.
|
||||
- './unreal gencloak' now actually works
|
||||
- Fix typo in user mode q notice, reported by Strawberry_Kittens and others
|
||||
(#0003761). Patch provided by Stealth.
|
||||
- Fix for Mac OS X compile problem (in setpgrp), reported by Bock / Jckf
|
||||
(#0003767).
|
||||
- Possible fix for MAC OS X compile problem
|
||||
- Bump docdate..
|
||||
- Fixed OperOverride bug: if you are halfop you couldn't -q/-a, reported
|
||||
by Strawberry_Kittens (#0003758).
|
||||
- Added note to release notes regarding Suse 10.3 on amd64 causing a crash
|
||||
on-boot. #0003725, #0003653, #0003791.
|
||||
- Updated regex documentation in unreal32docs, it had some incorrect
|
||||
statements regarding wildcards. Reported by james2vegas (#0003800).
|
||||
- Added some big warnings regarding big timeshifts.
|
||||
In the IRCd world correct time is very important. This means that time
|
||||
should be correct when the IRCd is booted, either by running ntpd/ntpdate
|
||||
on the system or some other synchronization software, or by using the
|
||||
built-in timesync feature.
|
||||
Whenever the clock is adjusted for more than a few seconds AFTER the IRCd
|
||||
has booted, it can lead to dangerous effects ranging from unfair timestamps
|
||||
for nicks and channels (and hence the possibility to takeover channels),
|
||||
to even completely stalling the IRCd (negative timeshift) or making it so
|
||||
nobody can connect anymore due to throttling (positive timeshift).
|
||||
We now try to 'fix' the worst effects such as the IRCd freeze and
|
||||
throttling. This does not fix the whole problem, so I've added some big
|
||||
warnings when the clock is adjusted, including an annoying one every 5
|
||||
minutes if the clock was set backwards, until the time is OK again
|
||||
(catches up with the original time).
|
||||
This fixes #0003230 reported by Stealth, and #0002521 reported by durrie.
|
||||
- Throttling time is now more accurate, especially with larger time values
|
||||
such as 3 connections per 60 seconds. Previously that -could- result in
|
||||
3 per 90 seconds due to timer inaccuracy (which was max <time>*1.5), now
|
||||
it would be max 65 seconds (max 5s inaccuracy, lower with lower times).
|
||||
- Smallll fix for time shift protection
|
||||
** 3.2.8-rc2 release **
|
||||
- Some text fixes regarding time shift feature
|
||||
- Fix for compile problem on FreeBSD (and possibly other OS's):
|
||||
- When pkg-config is present but does not recognize --static, use
|
||||
default c-ares library options.
|
||||
- Set default c-ares library options to -lcares on FreeBSD and others.
|
||||
Set to -lcares -lrt on Linux (previously was -lcares -lrt for all).
|
||||
Thanks to goldenwolf for the bugreport (#0003803) and providing a test-
|
||||
shell to trace this issue down.
|
||||
** 3.2.8-rc2 *NIX downloads replaced **
|
||||
- 'link xx with SSL option enabled on non-SSL compile' was incorrectly
|
||||
printed out as a warning, when in fact it's an error (and was treated as
|
||||
such). Same for ZIP on non-zip compile. Reported by Stealth (#0003833).
|
||||
- Fixed harmless (but silly) message which happened on every IRCd boot
|
||||
(time jump message).
|
||||
- Updated credits (donations)
|
||||
** 3.2.8 release **
|
||||
- Fixed (serious) security issue regarding allow::options::noident,
|
||||
reported by meepmeep (#0003852).
|
||||
** 3.2.8.1 release **
|
||||
|
||||
@@ -41,10 +41,6 @@ fi
|
||||
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
||||
ARG="$ARG--with-operoverride-verify "
|
||||
fi
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
ARG="$ARG--with-moduleswhich=$MODULESWHICH "
|
||||
fi
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
ARG="$ARG--enable-nospoof "
|
||||
@@ -81,6 +77,7 @@ ARG="$ARG--with-spath=$SPATH "
|
||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||
ARG="$ARG--with-hostname=$DOMAINNAME "
|
||||
ARG="$ARG--with-permissions=$DEFPERM "
|
||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||
ARG="$ARG--enable-dynamic-linking "
|
||||
@@ -278,75 +275,15 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to disable extended ban stacking (~q:~c:#test, etc) support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
DISABLEEXTBANSTACKING="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
DISABLEEXTBANSTACKING="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ]; do
|
||||
if [ "$MODULESWHICH" = "onlycommands" ]; then
|
||||
TEST="commands"
|
||||
elif [ "$MODULESWHICH" = "onlymodules" ]; then
|
||||
TEST="modules"
|
||||
else
|
||||
TEST="both"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you wish to compile commands.so, the m_*.so modules, or both?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ]; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
commands|commands.so|onlycommands|commandsonly)
|
||||
MODULESWHICH="onlycommands"
|
||||
;;
|
||||
modules|m_\*.so|onlymodules|modulesonly)
|
||||
MODULESWHICH="onlymodules"
|
||||
;;
|
||||
both|commandsandmodules|modulesandcommands)
|
||||
MODULESWHICH="commandsandmodules"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "Unrecognized response"
|
||||
TEST=""
|
||||
esac
|
||||
done
|
||||
}
|
||||
c=""
|
||||
n=""
|
||||
UNREALCWD="`pwd`"
|
||||
NOSPOOF=""
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
HUB="1"
|
||||
DOMAINNAME=`hostname`
|
||||
DEFPERM="0600"
|
||||
CRYPTOIRCD=""
|
||||
SSLDIR=""
|
||||
@@ -367,8 +304,6 @@ SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
MODULESWHICH=""
|
||||
EXTRAPARA=""
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
@@ -479,7 +414,7 @@ done
|
||||
|
||||
TEST="$DPATH"
|
||||
echo ""
|
||||
echo "Where do you want to install the server configuration files?"
|
||||
echo "What directory are all the server configuration files in?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -490,7 +425,7 @@ fi
|
||||
|
||||
TEST="$SPATH"
|
||||
echo ""
|
||||
echo "Where do you want to install the server binary?"
|
||||
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
|
||||
@@ -529,6 +464,17 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DOMAINNAME"
|
||||
echo ""
|
||||
echo "What is the hostname of the server running your IRCd?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
DOMAINNAME=$TEST
|
||||
else
|
||||
DOMAINNAME=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$DEFPERM"
|
||||
@@ -892,6 +838,7 @@ BUFFERPOOL="$BUFFERPOOL"
|
||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||
HUB="$HUB"
|
||||
DOMAINNAME="$DOMAINNAME"
|
||||
DEFPERM="$DEFPERM"
|
||||
CRYPTOIRCD="$CRYPTOIRCD"
|
||||
SSLDIR="$SSLDIR"
|
||||
@@ -905,8 +852,6 @@ SHUNNOTICES="$SHUNNOTICES"
|
||||
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
||||
MODULESWHICH="$MODULESWHICH"
|
||||
EXTRAPARA="$EXTRAPARA"
|
||||
ADVANCED="$ADVANCED"
|
||||
__EOF__
|
||||
|
||||
+12
-24
@@ -20,7 +20,6 @@
|
||||
#*/
|
||||
|
||||
CC=@CC@
|
||||
CXX=@CXX@
|
||||
INCLUDEDIR=../include
|
||||
NETWORKSDIR=
|
||||
FROMDOS=/home/cmunk/bin/4dos
|
||||
@@ -133,21 +132,11 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
||||
'CRYPTOLIB=${CRYPTOLIB}' \
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
|
||||
'URL=${URL}' 'CXX=${CXX}'
|
||||
|
||||
INSTALL_CONFS = badwords.channel.conf badwords.message.conf \
|
||||
badwords.quit.conf dccallow.conf help.conf \
|
||||
spamfilters.conf.sample LICENSE Donation
|
||||
|
||||
INSTALL_DOCS = doc/Authors doc/example.conf doc/coding-guidelines \
|
||||
doc/tao.of.irc doc/unreal32docs.html
|
||||
'URL=${URL}'
|
||||
|
||||
custommodule:
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
|
||||
custommodulecpp:
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodulecpp
|
||||
|
||||
server:
|
||||
build:
|
||||
-@if [ ! -f include/setup.h ] ; then \
|
||||
@@ -214,25 +203,24 @@ depend:
|
||||
|
||||
install: all
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 -d $(BINDIR)
|
||||
$(INSTALL) -b -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 0600 $(INSTALL_DOCS) $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/aliases
|
||||
$(INSTALL) -m 0600 aliases/*.conf $(IRCDDIR)/aliases
|
||||
$(TOUCH) $(IRCDDIR)/unrealircd.conf
|
||||
chmod 0600 $(IRCDDIR)/unrealircd.conf
|
||||
$(INSTALL) -b -m 0600 $(INSTALL_CONFS) $(IRCDDIR)
|
||||
$(INSTALL) -b -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -m 0600 spamfilter.conf dccallow.conf $(IRCDDIR)
|
||||
$(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
||||
$(INSTALL) -b -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
||||
$(INSTALL) -b -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||
fi
|
||||
-@if [ -f server.key.pem ] ; then \
|
||||
if [ ! -f "$(IRCDDIR)/server.key.pem" ] ; then \
|
||||
$(INSTALL) -b -m 0600 server.*.pem $(IRCDDIR) ; \
|
||||
fi ; \
|
||||
$(INSTALL) -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||
fi
|
||||
|
||||
pem: src/ssl.cnf
|
||||
|
||||
+34
-32
@@ -1,66 +1,68 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.3* =
|
||||
= UnrealIRCd v3.2.8.1 =
|
||||
===============================================
|
||||
This release was brought to you by:
|
||||
|
||||
Was brought to you by:
|
||||
Coders:
|
||||
=======
|
||||
* Syzop
|
||||
|
||||
The head coders
|
||||
================
|
||||
* Stskeeps <stskeeps@tspre.org>
|
||||
* Syzop <syzop@unrealircd.com>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
Contributors:
|
||||
=============
|
||||
* aquanight
|
||||
* WolfSage
|
||||
* Stealth
|
||||
* tabrisnet
|
||||
* Bock
|
||||
* fbi
|
||||
|
||||
The coders
|
||||
RC Testers:
|
||||
===========
|
||||
* DarkElf <darkelf@unrealircd.com>
|
||||
* Trocotronic <trocotronic@unrealircd.com>
|
||||
* aquanight <aquanight@unrealircd.com>
|
||||
* Bock, Apocalypse, StrawberryKittens, wax, Elemental, and many more
|
||||
|
||||
Additional credits
|
||||
===================
|
||||
Credit also goes to past UnrealIRCd coders, including: McSkaf, Zogg,
|
||||
NiQuiL, assyrian, nighthawk, DrBin, llthangel and Griever.
|
||||
Credit also goes to everyone else who contributed, and those who coded
|
||||
or contributed to UnrealIRCd's ancestors.
|
||||
|
||||
WEBSITE
|
||||
========
|
||||
http://www.unrealircd.com/
|
||||
Previous coders:
|
||||
================
|
||||
* Stskeeps
|
||||
* codemastr
|
||||
* Many more..
|
||||
|
||||
Precenses on the Internet:
|
||||
* http://www.unrealircd.com
|
||||
|
||||
CVS
|
||||
====
|
||||
To get anonymous access: (read only)
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot login"
|
||||
"cvs -d :pserver:anonymous@cvs.unrealircd.com:/cvs login"
|
||||
|
||||
press enter when asked for password
|
||||
Then, choose the appropiate branch you want:
|
||||
|
||||
latest 3.3 release (unstable/development):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r devel -d Unreal-stable unreal"
|
||||
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
|
||||
================
|
||||
Before asking others for help you MUST:
|
||||
* read the docs (doc/unreal32docs.html or online: www.unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIRCd/faq/)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIrcd/faq/)
|
||||
|
||||
Means of support:
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
|
||||
* IRC: /server irc.unrealircd.com 6667 - /join #unreal-support
|
||||
[Note: Follow the bots instructions in order to get voice.
|
||||
Please be patient after asking questions, we may do other stuff
|
||||
or we're away. Don't repeat questions, we heard you first time,
|
||||
READ THE TOPIC before you ask anything. We do this on a free
|
||||
base so we are volunteeringly helping you, but we are humans
|
||||
like you, and we got to have peace at times as well.]
|
||||
* Mailing list: unreal-users@lists.sourceforge.net
|
||||
(http://lists.sourceforge.net/lists/listinfo/unreal-users also
|
||||
has links to the archive).
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
|
||||
UnrealIRCd Bugtracker (Where to report bugs or make suggestions)
|
||||
=================================================================
|
||||
==================================================================
|
||||
http://bugs.unrealircd.org
|
||||
|
||||
Want to discuss, chat, etc?
|
||||
=============================
|
||||
* IRC: /server irc.unrealircd.org 6667 - /join #UnrealIRCd
|
||||
* IRC: /server irc.unrealircd.com 6667 - /join #UnrealIRCd
|
||||
|
||||
+44
-36
@@ -33,7 +33,7 @@ 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_PROG_CXX
|
||||
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
@@ -367,6 +367,7 @@ AC_ARG_WITH(sendq, [AC_HELP_STRING([--with-sendq=maxsendq],[Specify the max send
|
||||
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])],
|
||||
@@ -375,7 +376,7 @@ AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the ma
|
||||
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/ircd") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
||||
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))
|
||||
@@ -391,21 +392,6 @@ AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /s
|
||||
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))
|
||||
AC_ARG_WITH(disable-extendedban-stacking, [AC_HELP_STRING([--with-disable-extendedban-stacking], [Disable extended ban stacking])],
|
||||
AC_DEFINE(DISABLE_STACKED_EXTBANS))
|
||||
MODULES_WHICH=commandsandmodules
|
||||
AC_MSG_CHECKING(for how much module building work we need to do)
|
||||
AC_ARG_WITH(moduleswhich,
|
||||
[ --with-moduleswhich=onlycommands|onlymodules|commandsandmodules What modules to build],
|
||||
[ case "$withval" in
|
||||
yes|no)
|
||||
;;
|
||||
* )
|
||||
MODULES_WHICH="$withval"
|
||||
;;
|
||||
esac])
|
||||
AC_SUBST(MODULES_WHICH)
|
||||
AC_MSG_RESULT($MODULES_WHICH)
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
CHECK_LIBCURL
|
||||
@@ -438,41 +424,41 @@ IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW PCRE RELEASE!
|
||||
tre_version="7.2"
|
||||
AC_MSG_RESULT(extracting PCRE regex library)
|
||||
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 pcre-$tre_version
|
||||
rm -rf tre-$tre_version
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz pcre.tar.gz
|
||||
tar xfz tre.tar.gz
|
||||
else
|
||||
cp pcre.tar.gz pcre.tar.gz.bak
|
||||
gunzip -f pcre.tar.gz
|
||||
cp pcre.tar.gz.bak pcre.tar.gz
|
||||
tar xf pcre.tar
|
||||
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 PCRE regex library)
|
||||
cd pcre-$tre_version
|
||||
./configure --disable-shared --disable-system-abi --disable-utf8 --prefix=$cur_dir/extras/regexp || exit 1
|
||||
AC_MSG_RESULT(compiling PCRE regex library)
|
||||
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 PCRE regex library)
|
||||
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 -lpcreposix -lpcre"
|
||||
TRELIBS="-L../extras/regexp/lib -ltre"
|
||||
else
|
||||
TRELIBS="`$ac_cv_path_PKGCONFIG --libs libpcre.pc` -lpcreposix -lpcre"
|
||||
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.4.0"
|
||||
cares_version="1.6.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
@@ -497,11 +483,33 @@ CARESINCDIR="$cur_dir/extras/c-ares/include"
|
||||
AC_SUBST(CARESINCDIR)
|
||||
CARESLIBDIR="-L../extras/c-ares/lib"
|
||||
AC_SUBST(CARESLIBDIR)
|
||||
CARESLIBS="-lcares"
|
||||
|
||||
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 src/modules/chanmodes/Makefile unreal ircdcron/ircdchk)
|
||||
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
|
||||
+1
-12
@@ -2,12 +2,7 @@
|
||||
Some minor rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM. Be sure to mention the bugid# (or muliple id's) if you are fixing
|
||||
a bug from a bugtracker, and be sure to credit the reporter. Use:
|
||||
'Fixed blahblahblah, reported by Blah (#0001234).'
|
||||
Or, for example, for features:
|
||||
'Added support for blahbalbvdshd, suggested by Blah (#0001235).'
|
||||
Or something similar ;)
|
||||
BOTTOM
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers,
|
||||
and a $Id$ somewhere.
|
||||
@@ -89,9 +84,3 @@ Some minor rules about patches & modifications to UnrealIRCd
|
||||
|
||||
14. Use enums whenever possible, rather than #define constants. Besides making
|
||||
things more clean, it also aids debugging.
|
||||
|
||||
15. Whenever you add a new directive or setting, be sure to add documentation
|
||||
for it in unreal32docs, and for new commands in help.conf as well.
|
||||
|
||||
16. Whenever you add a new set:: item, be sure to add it to /stats S
|
||||
|
||||
|
||||
@@ -712,6 +712,8 @@ set {
|
||||
* The keys should be 3 random strings of 5-100 characters
|
||||
* (10-20 chars is just fine) and must consist of lowcase (a-z),
|
||||
* upcase (A-Z) and digits (0-9) [see first key example].
|
||||
* HINT: On *NIX, you can run './unreal gencloak' in your shell to let
|
||||
* Unreal generate 3 random strings for you.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
|
||||
@@ -0,0 +1,787 @@
|
||||
/*
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
*
|
||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
||||
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||
* damit umzugehen, aber mit ein Wenig Übung und sorgfältigem Lesen sollte das zu
|
||||
* verstehen sein.
|
||||
*
|
||||
* Diese Datei ist einfach in das Hauptverzeichnis des UnrealIRCD zu kopieren und in
|
||||
* 'unrealircd.conf' umzubenennen.
|
||||
*
|
||||
* ZU BEACHTEN: Sämtliche Zeilen außer der mit einer '{' zu Beginn werden mit dem Zeichen
|
||||
* ';' beendet, auch die Zeile mit '}'. (Beliebter Syntaxfehler!)
|
||||
* Kommentar Zeilen werden vom IRCd ignoriert.
|
||||
*
|
||||
* BITTE LESE die doc/unreal32docs.html! Sie ist auch online erhältlich bei:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Diese Datei enthält zahlreiche ergänzende Informationen über jeden Block, Variablen usw.
|
||||
* Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net)
|
||||
*/
|
||||
|
||||
/* Kommentar Typen */
|
||||
#Kommentar Typ 1 (Shell Typ)
|
||||
// Kommentar Typ 2(C++ Stil)
|
||||
/* Kommentar Typ 3 (C Stil) */
|
||||
#Solche Zeilen vom Typ 1, 2 oder 3 werden vom ircd ignoriert.
|
||||
|
||||
/*
|
||||
* UnrealIRCd arbeitet mit Modulen, die geladen werden, wenn sie benötigt werden.
|
||||
* Man benötigt mindestens das commands Modul und ein cloaking Modul.
|
||||
*/
|
||||
|
||||
/* FÜR *NIX (Unix, Linux, Xenix etc.), sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FÜR Windows sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Man kann über eine 'include' Anweisung auch weitere Konfigurationsdateien einfügen.
|
||||
* help.conf enthält sämtliche /helpop Texte. Die badwords.*.conf filtert alle badword
|
||||
* Einträge für den Modus +G...
|
||||
* Die spamfilter.conf enthält einige wirksame Regeln für aktuelle Trojaner.
|
||||
* Falls man diese Dateien mit einfügen möchte:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEU: me {}
|
||||
* ALT: M:Line
|
||||
* me {} legt Name, Beschreibung und eindeutige Nummer ('numeric') für diesen Server fest.
|
||||
* Syntax ist wie folgt:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Beschreibung";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Falls der Server mit anderen gelinkt wird, darf muss die Nummer bei 'numeric' eindeutig
|
||||
* sein, darf also von keinem anderen Server im Netzwerk verwendet werden.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: admin {}
|
||||
* ALT: A:Line
|
||||
* Admin liefert Informationen über den Server Administrator. Man kann
|
||||
* so viele Zeilen unter 'admin {' angeben, wie man will.
|
||||
* Syntax ist wie folgt:
|
||||
* admin {
|
||||
* "erste Zeile";
|
||||
* "zweite Zeile";
|
||||
* [usw]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: class {}
|
||||
* ALT: Y:line (alte Form war verwirrend)
|
||||
* Hiermit werden Klassen und ihre Einstellungen festgelegt. Eine Klasse ist eine Gruppen-
|
||||
* einstellung für Verbindungen. So kann man beispielsweise Server Verbindungen in einer
|
||||
* eigenen Klasse behandeln, statt zusammen mit Clients.
|
||||
* Syntax ist wie folgt:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (wie oft in Sekunden wird ein user/server angepingt);
|
||||
* maxclients (wie viele Verbindungen sind in dieser Klasse möglich);
|
||||
* sendq (maximale send Queue einer Verbindung);
|
||||
* recvq (maximale Empfangs Queue einer Verbindung [Flood Kontrolle!]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Wieviele Servers können gleichzeitig gelinkt sein */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Wieviele Sekunden zwischen jedem Verbindungsversuch */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow {}
|
||||
* ALT: I:Line
|
||||
* Hier wird festgelegt, welche Verbindungen erlaubt sind...
|
||||
* Grundlegend kann man damit Clienten erlauben, zu verbinden und hat etwas Kontrolle
|
||||
* Syntax ist wie folgt:
|
||||
* allow {
|
||||
* ip (ip Maske für allow);
|
||||
* hostname (host Maske);
|
||||
* class (Klasse, die zugewiesen wird [siehe class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (wie viele Verbindungen je IP); (optional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Passworded allow line */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow channel {}
|
||||
* ALT: chrestrict
|
||||
* Erlaubt es Usern, einen Channel zu betreten...
|
||||
* Ist wie eine Ausnahme von 'deny channel'.
|
||||
* Syntax ist wie folgt:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: oper {}
|
||||
* ALT: O:Line
|
||||
* Legt einen IRC Operator fest
|
||||
* IRC Operatoren halten den Server in Ordnung, warten ihn und halten die Verbindung
|
||||
* zum Netzwerk.
|
||||
* Syntax ist wie folgt:
|
||||
* oper (login) {
|
||||
* class (Klasse, die zugewiesen wird, falls anders als meine, wird eine neuee Klasse
|
||||
* zugewiesen);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (Flags hier*);
|
||||
* };
|
||||
* ODER
|
||||
* flags "alte Form von Flags, wie OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Die Liste möglicher Oper Flags kann in doc/unreal32docs.html#operblock nachgelesen werden
|
||||
* [WIRKLICH empfehlenswert, zu lesen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: listen {}
|
||||
* ALT: P:Line
|
||||
* Legt den Port fest, an dem der ircd 'lauscht', um Usern/Servern zu erlauben, eine
|
||||
* Verbindung zum Server aufzunehmen.
|
||||
* Syntax ist wie folgt:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* oder für ein einfaches listen:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* ACHTUNG: für ipv6 ips (3ffe:b80:2:51d::2 etc), benutze listen [ip]:port;
|
||||
*
|
||||
* Das funktioniert ebenfalls.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ZU BEACHTEN BEI SSL PORTS: SSL Ports sind nicht standardisiert.
|
||||
* Es wird oft gesagt, man solle den Port 994 benutzen, weil dies der
|
||||
* offizielle SSL Port sei. Aber das erfordert root Rechte! Andererseits
|
||||
* ist der Port 194 der offizielle Port und wann hat man je einen Ircd
|
||||
* auf diesem Port laufen gesehen?
|
||||
* Unsere Empfehlung ist, den Port 6697 für SSL zu benutzen, wie es auch
|
||||
* bei vielen anderen Netzwerken gemacht wird und für z.B. StunTour benutzt wird.
|
||||
* Man kann so viele SSL Ports öffnen, wie man will, aber wenn man (auch) den Port
|
||||
* 6697 benutzt, hilft man mit, die Welt ein klein wenig zu standardisieren ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ACHTUNG: Wird der IRCd auf einer Shell mit verschiedenen IP's ausgeführt, kann
|
||||
* die Fehlermeldung 'Address already in use' ('Adresse wird schon benutzt')
|
||||
* in den Logfiles auftauchen und der IRCd startet nicht.
|
||||
* Das bedeutet, dass man eine spezifische Adresse anstelle von '*' definieren
|
||||
* MUSS, wie z.B.:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Es sollte klar sein, dass die IP durch die zu ersetzen ist, die einem
|
||||
* zugewiesen ist.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: link {}
|
||||
* ALT: C/N:Lines
|
||||
* Hiermit wird ein okay für eine Server Verbindung festgelegt.
|
||||
* ACHTUNG: BEIDE SERVER MÜSSEN EINE LINK {} EINSTELLUNG HABEN, UM KORREKT ZU VERBINDEN!
|
||||
* Syntax ist wie folgt:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * funktioniert auch);
|
||||
* hostname (ip Nummer/Hostmaske);
|
||||
* bind-ip (Welche IP soll zum Verbinden benutzt werden, oder *);
|
||||
* port (Port, zu dem verbunden werden soll);
|
||||
* hub (Wenn dies ein Hub ist, funktioniert * , oder Servermasken);
|
||||
* [oder leaf *;]
|
||||
* password-connect "(Passwort zu senden)";
|
||||
* password-receive "(Passwort, welches wir emfangen sollten)";
|
||||
* class (Klasse, in die Server sollen);
|
||||
* options {
|
||||
* (options hier*);
|
||||
* };
|
||||
* // Wird SSL benutzt, kann bestimmt werden, welche Verschlüsselung im SSL
|
||||
* // Modus zu benutzen ist
|
||||
* // Bei mehreren "openssl ciphers" sind die einzelnen Verschlüsselungen
|
||||
* // durch ':' zu trennen
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Achtung: autoconnect sollte nicht benutzt werden, wenn man Services linkt */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEU: ulines {}
|
||||
* ALT: U:Line
|
||||
* U-lines geben Servern mehr Möglichkeiten/Befehle, sie sollten NUR für Services/Stats
|
||||
* gesetzt werden und NIEMALS für normale UnrealIRCd Server!
|
||||
* Syntax ist wie folgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: drpass {}
|
||||
* ALT: X:Line
|
||||
* Hiermit werden die Passworte für /die und /restart festgelegt.
|
||||
* Syntax ist wie folgt:
|
||||
* drpass {
|
||||
* restart "(Passwort für Restart)";
|
||||
* die "(Passwort für die (die = 'sterben' = Abschaltung))";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||
* beliebig viele festlegen.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Lösche das Logfile und starte ein neues, wenn 2MB erreicht wurden,
|
||||
nichts festlegen, wenn man immer das gleiche Log will */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier kann man Befels Aliasse festlegen, wie z.B. /nickserv, /chanserv usw.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ACHTUNG: Mann kann hier auch eine Datei mit vordefinierten Aliassen per include
|
||||
* einfügen. Siehe auch: doc/unreal32docs.html Abschnitt 2.9]
|
||||
*/
|
||||
|
||||
// Hiermit wird der Befehl /nickserv an den User NickServ geleitet, welcher zur Einstellung set::services-server server verbunden ist
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Soll der Befehl auf denselben Nick wie das der Befehl leiten, kann man den Nick auslassen
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// leitet den /statserv Befehl an den User StatServ aus set::stats-server server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// leitet den /superbot Befehl an den User SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier können Befehls Aliase, wie z.B.: /identify, /services, usw festgelegt werden.
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* target "zeigt auf";
|
||||
* type aliastype;
|
||||
* parameters "zu sendende Parameter";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Die nachfolgenden Zeilen eigens deshalb, um zu zeigen, dass trotz gleichem Namens die vorherige Anweisung
|
||||
* völlig unterschiedlich in der Syntax ist, obwohl eine ähnliche Funktion unterstützt wird.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Die alias::format Anweisung ist ein regulärer Ausdruck. Das erste Format passt auf den /identify Befehl,
|
||||
* wenn das erste Zeichen ein # ist. Dann wird dies an den chanserv alias mit dem Parameters IDENTIFY
|
||||
* %1- übergeben. Das zweite Format passt auf den /identify Befehl, wenn das erste Zeichen kein # ist. Danach
|
||||
* wird der Befehl an den nickserv alias mit den Parameters IDENTIFY %1- geleitet.
|
||||
*/
|
||||
|
||||
/* Die alias::format::parameters Scripting Sprachen ähnlich. %N (wobei N einen Nummer ist) repräsentiert einen
|
||||
* Parameter, der an den Befehl (in diesem Fall /identify) zu senden ist. Wird %N- angegeben, bedeutet dies
|
||||
* alle Parameter vom N bis zum letzten Parameter des Strings. Man kann ebenso %n angeben, welches durch den
|
||||
* Nicknamen des users ersetzt wird.
|
||||
*/
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* NEU: tld {}
|
||||
* ALT: T:Line
|
||||
* Hiermit werden unterschiedliche motd und rules Dateien in Abhängigkeit
|
||||
* von der Hostmaske des Clients eingestellt.
|
||||
* Syntax ist wie folgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* zu beachten: Will man nur die default motd/rules Dateien (ircd.motd, ircd.rules)
|
||||
* für jedermann benutzen, genügt es, den obigen Beispiel Block einfach zu löschen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: ban nick {}
|
||||
* ALT: Q:Line
|
||||
* Bannt einen Nicknamen, so dass dieser nicht benutzt werden kann.
|
||||
* Syntax ist wie folgt:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserviert für Services";
|
||||
};
|
||||
/*
|
||||
* NEU: ban ip {}
|
||||
* ALT: Z:Line
|
||||
* Bannt eine IP, so dass diese nicht mehr zum Netzwerk verbinden kann.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip Nummer/Hostmaske); reason "(Grund)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Server nicht mehr gelinkt";
|
||||
};
|
||||
/*
|
||||
* NEU: ban server {}
|
||||
* ALT: Server Q:Line
|
||||
* Nimmt einem Server die Möglichkeit, zum Neztwerk zu verbinden.
|
||||
* Wenn der Server zu einem anderen Server des Netzwerkes linkt, wird der
|
||||
* lokale server die Verbindung zum Netzwerk trennen.
|
||||
* Syntax ist wie folgt:
|
||||
* ban server {
|
||||
* mask "(Server Name)";
|
||||
* reason "(angegebener Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Hau ab hier.";
|
||||
};
|
||||
/*
|
||||
* NEU: ban user {}
|
||||
* ALT: K:Line
|
||||
* Bewirkt, dass ein User mit einer bestimmten Maske nicht mehr zum Server verbinden kann.
|
||||
* Syntax:
|
||||
* ban user { mask (Hostmaske/ip Nummer); reason "(Grund)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: ban realname {}
|
||||
* ALT: n:Line
|
||||
* Verhindert, dass ein bestimmter Realname benutzt werden kann.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(Realname)";
|
||||
* reason "(Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* Sämtliche Banns dürfen durch zusätzliche Einträge wiederholt werden!
|
||||
*
|
||||
* NEU: except ban {}
|
||||
* ALT: E:Line
|
||||
* Diese Maske ist von Banns ausgenommen.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* except ban {} kann so oft angegeben werden, wie man für verschiedene Hosts will.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny dcc {}
|
||||
* ALT: dccdeny.conf
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Viren aufzuhalten.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "zu sperrende Datei(ie, *exe)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Möglicherweise Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny channel {}
|
||||
* ALT: N/A (NEW)
|
||||
* Verhindert, dass angegebene Channels benutzt werden können.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez sind illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: vhost {}
|
||||
* ALT: Vhost.conf file
|
||||
* Setzt eine Fake IP für Nicht-Opers, oder opers, die zu bequem für /sethost sind.... :P
|
||||
* Syntax:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host um die Nutzung zu gestatten);
|
||||
* };
|
||||
* login (Loginname);
|
||||
* password (Passwort);
|
||||
* };
|
||||
* um den vhost zu nutzen, mache /vhost (login) (password) im IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Man kann hier weitere Config Dateien einfügen */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Cloak keys müssen angegeben sein und sie müssen die selben auf allen Servern
|
||||
* im Netzwerk sein. Sie werden zur Generierung der maskierten Hosts verwendet
|
||||
* und sie sollten geheim gehalten werden.
|
||||
* Die Keys sollten 3 zufällige Strings von 5-100 Zeichen Länge sein (10-20 Zeichen
|
||||
* (sind ganz ok) und müssen aus Kleinbuchstaben(a-z), Großbuchstaben (A-Z) und
|
||||
* Ziffern (0-9) bestehen [wie im ersten Key Beispiel].
|
||||
* TIPP: Auf *NIX, kann man in der Shell './unreal gencloak' aufrufen und durch
|
||||
* Unreal 3 Zufalls Stings erzeugen und anzeigen lassen.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"und noch einer";
|
||||
"und noch einer";
|
||||
};
|
||||
/* on-oper Host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server spezifische Configuration */
|
||||
|
||||
set {
|
||||
kline-address "setze.diese.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Man kann hier ident checking aktivieren, wenn man will */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung
|
||||
* senden darf (Das wird offentlich helfen, Spam zu verhindern) */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Macht die Meldung statisch, die in allen Quit Meldungen angezeigt wird.
|
||||
Somit sind keine individuellen Quts auf dem lokalen Server mehr erlaubt */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Man kann auch sämtliche Part Meldungen blocken, indem man dies auskommentiert
|
||||
* und 'yes' sagt oder einen anderen Text angibt (z.B. "Bye bye!")
|
||||
/* static-part yes; */
|
||||
|
||||
/* Hiermit kann man bestimmte stats auf ausschliesslich Opers beschränken. Für
|
||||
* alle Stats kann man * benutzen. Wenn man es weglässt, können alle User alle
|
||||
* Stats abfragen. Eine vollständige Liste erhält man mit dem Befehl '/stats'.
|
||||
* Manche Admins entfernen 'kGs' und erlauben so normalen Usern die Anzeige von
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dieses Beispiel setzte ein Limit von 3 Verbindungen je 60s (pro Host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti Flood Schutz */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 Nickänderungen pro 60 Sekunden (Default) */
|
||||
};
|
||||
|
||||
/* Spam Filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* Default Dauer eines *line Banns durch Spamfilter */
|
||||
ban-reason "Spam/Belästigung"; /* default Grund */
|
||||
virus-help-channel "#help"; /* Channel, der für die 'viruschan' action benutzt wird*/
|
||||
/* except "#help"; Channel, der von Filtern ausgenommen wird */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Probleme? Weitere Hilfe nötig?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- enthält 80% deiner Fragen - Wetten Dass?
|
||||
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.ircsystems.net
|
||||
* #unreal-support aufsuchen. Dabei ist zu beachten, dass wir voraussetzen,
|
||||
* dass zuvor DIE DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
*/
|
||||
@@ -0,0 +1,801 @@
|
||||
/*
|
||||
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Traduction française par babass (babass@unrealircd.org).
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
* Okay les mecs. Voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
* Peu importe, il est temps de se lancer. Il est difficile de l'attaquer pour la première fois, mais
|
||||
* avec un peu d'expérience et en lisant vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: Toutes les lignes, excepté la ligne d'ouverture { , les lignes finissant par un ;,
|
||||
* et celle de fermeture } incluses.
|
||||
* L'IRCd ignorera les lignes commentées.
|
||||
*
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html! La version en ligne est aussi disponible à :
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournis des informations
|
||||
* à propos de chaque blocs, variable, etc..
|
||||
* Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
|
||||
* vous êtes presque sûr de vous tromper.
|
||||
*/
|
||||
|
||||
/* Type de commentaires */
|
||||
#Commentaire type 1 (type Shell)
|
||||
// Commentaire type 2 (style C++)
|
||||
/* Commentaire type 3 (style C) */
|
||||
#Ces lignes sont ignorées par l'ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supportes des modules, en charger certains est requis.
|
||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||
*/
|
||||
|
||||
/* POUR *NIX, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* POUR Windows, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||
* help.conf contient tous le texte de /helpop. Les fichiers badwords.*.conf
|
||||
* contiennent tous les badwords pour le mode +G...
|
||||
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
||||
* Vous voudrez probablement les inclure:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et le numeric du serveur unreal
|
||||
* pour ce serveur. La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* info "Description du Serveur";
|
||||
* numeric (numeric* serveur);
|
||||
* };
|
||||
* En cas de link, ce numeric ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* Admin donne des informations sur les server admins.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Défini les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, les connexions serveurs, au lieu de passer par une classe
|
||||
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||
* class (nom de la classe)
|
||||
* {
|
||||
* pingfreq (fréquence des pings utilisateurs/serveurs en secondes);
|
||||
* maxclients (combien de connexions pour cette classe);
|
||||
* sendq (file d'attente maximum pour l'envoie depuis une connexion);
|
||||
* recvq (file d'attente maximum pour la réception depuis une connexion [contrôle du flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* Défini les autorisations de connexions...
|
||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* allow {
|
||||
* ip (ip mask à autoriser);
|
||||
* hostname (host mask);
|
||||
* class (classe à laquelle les renvoyer [voir class {}]);
|
||||
* password "(mot de passe)"; (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* connexion autorisée avec mot de passe */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Défini un IRC Operateur
|
||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent de moi, déplacez les vers une
|
||||
* nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
* flags "ancien type de flags, comme OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Pour avoir la liste des flags oper, voir doc/unreal32docs.fr.html#operblock
|
||||
* [lecture HAUTEMENT recommendée]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Défini un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* options {
|
||||
* (options ici);
|
||||
* };
|
||||
* };
|
||||
* ou pour une écoute
|
||||
* indifférente : listen (ip):(port);
|
||||
*
|
||||
* NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
|
||||
*
|
||||
* Cela fonctionne également.
|
||||
*/
|
||||
|
||||
/* Options de listen:
|
||||
ANCIEN | ACTUEL
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
|
||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
||||
* avez vous déjà vu un ircd fonctionner sur celui-ci ?
|
||||
* Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
|
||||
* assez bien de réseaux et est reconnu par exemple par StunTour.
|
||||
* Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
|
||||
* en utilisant (au moins) 6697 vous aidez le monde à standardiser un peu a bit ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: Si vous êtes sur un shell shell avec de multiples IP's vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
* dans vos logs et l'ircd refusera de démarer.
|
||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||
* Donc par exemple :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Evidemment, remplacez l'IP par celle qui vous a été assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : link {}
|
||||
* ANCIEN : C/N:Lines
|
||||
* Défini un accord pour la connexion d'un serveur.
|
||||
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
||||
* La syntaxe est la suivante :
|
||||
* link (nom du serveur)
|
||||
* {
|
||||
* username (username, * fonctionne aussi);
|
||||
* hostname (ip/hostmask);
|
||||
* bind-ip (Quelle IP à laquelle se relier lors de la connexion, ou *);
|
||||
* port (port auquel se connecter, si il y en a un);
|
||||
* hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
|
||||
* [ou leaf *;]
|
||||
* password-connect "(mot de passe à envoyer)";
|
||||
* password-receive "(mot de passe que l'on doit recevoir)";
|
||||
* class (classe à affecter aux serveurs);
|
||||
* options {
|
||||
* (options ici*);
|
||||
* };
|
||||
* // Si vous utilisez le SSL, vous pouvez choisir quel cryptage (cipher) utiliser dans le mode SSL
|
||||
* // Retrouvez une liste "crytages openssl", séparez les cryptages par des :
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
ANCIEN | ACTUEL
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Note : Vous ne devriez pas utiliser autoconnect lorsque vous linkez des services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ACTUEL : ulines {}
|
||||
* ANCIEN : U:Line
|
||||
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
||||
* aux serveurs de services/stats et JAMAIS pour des servuers UnrealIRCd normaux !
|
||||
* La syntaxe est la suivante :
|
||||
* ulines {
|
||||
* (serveur auquel appliquer la uline);
|
||||
* (serveur auquel appliquer la uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : drpass {}
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||
* autant que vous le souhaitez.
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
retirez ceci pour toujour utiliser le même fichier de log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* target "pointe vers";
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
// Ceci fait pointer la commande /nickserv vers l'utilisateur NickServ qui est connecté au serveur set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si vous voulez que la commande pointe vers le même nom que la commande, vous pouvez ignorez l'entré du nom
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Faire pointer la commande /statserv vers l'utilisateur StatServ sur le serveur set::stats-name
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Faire pointer la commande /superbot vers l'utilisateur SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Alias Standards */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /identify, /services, etc
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* format "format string" {
|
||||
* target "pointer vers";
|
||||
* type typedalias;
|
||||
* parameters "paramètres à envoyer";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
|
||||
* différente dans sa syntaxe, bien que elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La direcitive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvois donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commanden /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoies alors la commande à l'alias nickserv avec les paramètres
|
||||
* IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* L'alias::format::parameters est similaire aux languages de programmation. %N (où N est un nombre)
|
||||
* représente un paramètre envoyé à la commande (dans ce cas /identify). Si vous spécifiez %N- cela
|
||||
* signifie que tous les paramètres depuis N jusqu'au dernier paramètre dans la chaîne de caractères.
|
||||
* Vous pouvez également spécifier %n qui est remplacé par le pseudo de l'utilisateur.
|
||||
*/
|
||||
|
||||
/* Alias Standards */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Ceci est un exemple de véritable alias de commande*/
|
||||
/* Ceci renvoye /GLINEBOT à /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Les bots ne sont pas permis sur ce serveur, lisez s'il-vous-plait la faq sur http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : tld {}
|
||||
* ANCIEN : T:Line
|
||||
* Ceci applique une motd et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||
* en quel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||
* seront utilisés pour tout le monde.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : ban nick {}
|
||||
* ANCIEN : Q:Line
|
||||
* Banni un pseudo, il ne peut donc être utilisé.
|
||||
* La syntaxe est la suivante :
|
||||
* ban nick {
|
||||
* mask "(pseudo à bannir)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservé aux Services";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban ip {}
|
||||
* ANCIEN : Z:Line
|
||||
* Empêche une ip de se connecter au réseau.
|
||||
* Syntaxe :
|
||||
* ban ip { mask (ip/hostmask); reason "(raison)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Serveur délinké";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban server {}
|
||||
* ANCIEN : Server Q:Line
|
||||
* Empêche un serveur de se connecter au réseau.
|
||||
* Si le serveur est linké à un serveur distant, le serveur local
|
||||
* sera déconnecté du réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* ban server {
|
||||
* mask "(nom du serveur)";
|
||||
* reason "(raison à donner)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Va-t-en d'ici.";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban user {}
|
||||
* ANCIEN : K:Line
|
||||
* Fait qu'un utilisateur avec un certain masque ne peut se connecter
|
||||
* à votre serveur.
|
||||
* Syntaxe :
|
||||
* ban user { mask (hostmask/ip); reason "(raison)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : ban realname {}
|
||||
* ANCIEN : n:Line
|
||||
* Ceci empêche un certain realname d'être utilisé.
|
||||
* Syntaxe :
|
||||
* ban realname {
|
||||
* mask "(realname)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
* que vous voulez pour différents hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne banni pas stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoie de dcc... stope
|
||||
* mieux les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny channel {}
|
||||
* ANCIEN : N/A (NEW)
|
||||
* Ceci empêche des salons d'être joins.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(salon)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : vhost {}
|
||||
* ANCIEN : Vhost.conf file
|
||||
* Applique une ip factice aux non-opers, ou aux
|
||||
* opers trop flemmards pour utiliser /sethost :P
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
* login (login);
|
||||
* password (mot de passe);
|
||||
* };
|
||||
* ensuite pour utiliser ce vhost, tapez /vhost (login) (mot de passe) sur l'IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Vous pouvez utiliser d'autres fichiers de configuration */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuration du réseau */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Les Cloak keys doivent être les mêmes sur tous les serveurs du réseau.
|
||||
* Ils sont utilisés pour générer des hosts masqués et doivent être gardés secrets.
|
||||
* Les clés doivent être 3 chaînes de 5-100 caractères melangés.
|
||||
* (10-20 caractères est parfait) et elles doivent être constituées de minuscules (a-z),
|
||||
* majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"et une autre";
|
||||
"et un autre";
|
||||
};
|
||||
/* host à l'identification oper */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuration spécifique d'un serveur */
|
||||
|
||||
set {
|
||||
kline-address "mettre.cet.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Vous pouvez enclencher la vérification des idents si vous voulez */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Durée maximum pendant laquelle un utilisateur doit rester connecté avant de pouvoir utiliser
|
||||
* un message de QUIT.
|
||||
* Ceci devrait aider à stoper le spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Applique le message de static-quit à tous les quits - cela signifie qu'aucun
|
||||
message de quit personalisé ne sera autorisé sur le serveur local */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Vous pouvez également bloquer toutes les raisons de part en décommentant ceci et en disant
|
||||
* 'yes', ou spécifiez un autre texte (ex: "Bye bye!") pour qu'il soit toujours utilisé.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Vous permet de restreindre certaines stats aux opers, utilisez * pour toutes les stats,
|
||||
* enlevez le pour autoriser les utilisateurs à voir toutes les stats. Tapez '/stats' pour
|
||||
* une liste complète.
|
||||
* Certains admins pourront vouloir bloquer 'kGs' pour que les utilisateurs normaux ne puissent
|
||||
* lister les klines, glines et shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: cet exemple applique une limite de 3 tentatives de connection en 60s (par host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protection Anti flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 changements de pseudo en 60 secondes (la valeur par défaut) */
|
||||
};
|
||||
|
||||
/* Filtre anti-spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* durée par défaut d'un ban *line appliqué par le spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* raison par défaut */
|
||||
virus-help-channel "#help"; /* salon à utiliser pour l'action 'viruschan' */
|
||||
/* excepté "#help"; salon à exempter de filtrage */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problèmes ou besoin de plus d'aide ?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.fr.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contient 80% de vos questions !
|
||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.ircsystems.net #unreal-support,
|
||||
* notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
|
||||
*/
|
||||
@@ -0,0 +1,824 @@
|
||||
/*
|
||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||
* A magyar fordítást AngryWolf <angrywolf@flashmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
*
|
||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
||||
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||
* nehéz nekilendülni, de kis gyakorlással és olvasgatással meg fogjuk érteni.
|
||||
*
|
||||
* Csak másoljuk be ezt a fájlt a fő unrealircd könyvtárunkba, és nevezzük
|
||||
* 'unrealircd.conf'-nak.
|
||||
*
|
||||
* MEGJEGYZÉS: Minden sor, kivéve a nyitó { sort, ;-vel végződik, beleértve
|
||||
* a záró } sort is. Az IRCd figyelmen kívül hagyja a megjegyzéssorokat.
|
||||
*
|
||||
* KÉRLEK, OLVASD EL A doc/unreal32docs.html-T! Az online verzió is elérhető
|
||||
* a www.vulnscan.org/UnrealIRCd/unreal32docs.html címen.
|
||||
* Rengeteg információt tartalmaz a konfigurációs fájlról: tájékoztatást ad
|
||||
* minden blokkról, változóról stb.
|
||||
* Ha megpróbálod szerkeszteni ezt a fájlt anélkül, hogy megfelelően elolvastad
|
||||
* volna a dokumentációt, jó eséllyel kanyarodsz a biztos kudarc felé!
|
||||
*/
|
||||
|
||||
/* Megjegyzések típusai */
|
||||
#1. Megjegyzéstípus (Shell típusú)
|
||||
// 2. Megjegyzéstípus (C++ stílusú)
|
||||
/* 3. Megjegyzéstípus (C stílusú) */
|
||||
#ezeket a sorokat az ircd figyelmen kívül hagyja.
|
||||
|
||||
/*
|
||||
* Az UnrealIRCd támogat modulokat, néhányuk betöltése kötelező is.
|
||||
* Legalább a parancsokat biztosító és egy álcázó modulra lesz szükségünk.
|
||||
*/
|
||||
|
||||
/* *NIX-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Azt is megtehetjük, hogy befűzünk más konfigurációs fájlokat.
|
||||
* A help.conf tartalmazza az összes /helpop szöveget. A badwords.*.conf
|
||||
* fájlok tartalmazzák az összes csúnyaszó bejegyzést a +G módhoz...
|
||||
* A spamfilter.conf néhány jó szabályt a jelenlegi trójai vírusokra.
|
||||
* Valószínűleg be akarjuk tölteni őket:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ÚJ: me {}
|
||||
* RÉGI: M:Line
|
||||
* A me {} határozza meg ennek a szervernek a nevét, a leírását és az unrealbeli
|
||||
* szerverazonosító-számát. A szintaktikája a következő:
|
||||
* me {
|
||||
* name "szerver.név";
|
||||
* info "A szerver leírása";
|
||||
* numeric (szerverazonosító*);
|
||||
* };
|
||||
* Ha linkelünk, ezt az azonosítószámot nem használhatja semmilyen más szerver
|
||||
* a hálózaton.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.valaminet.com";
|
||||
info "ValamiNet Szerver";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: admin {}
|
||||
* RÉGI: A:Line
|
||||
* Ez a blokk információt ad a szerver adminisztrátorairól. Annyi sort tehetünk
|
||||
* az admin { alá, amennyit kívánunk.
|
||||
* A szintaktikája a következő:
|
||||
* admin {
|
||||
* "első sor";
|
||||
* "második sor";
|
||||
* [stb]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"szeleskorben@hasznalt.nev";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: class {}
|
||||
* RÉGI: Y:line (a régi zavarbaejtő volt)
|
||||
* Ezek az osztályokat állítják be. Az osztályok a kapcsolatok egy csoportjának
|
||||
* beállításai. Például a szerver kapcsolatokat, ahelyett, hogy egy kliens
|
||||
* osztályába kerülnének, beleirányítjuk a szerverek osztályába. Szintaktika:
|
||||
* class (osztálynév)
|
||||
* {
|
||||
* pingfreq (hány másodpercenként pingeljünk egy felhasználót/szervert);
|
||||
* maxclients (mennyi kapcsolat lehet ebben az osztályban);
|
||||
* sendq (egy kapcsolat küldési sorának maximális mérete);
|
||||
* recvq (egy kapcsolat fogadási sorának maximális mérete [árvízvédelem]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Legfeljebb ennyi szervert linkelhetünk egyszerre */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Ennyi másodpercet várjon, mielőtt újra kapcsolódik */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow {}
|
||||
* RÉGI: I:Line
|
||||
* Ez a kapcsolatok engedélyezését határozza meg...
|
||||
* Alapvetően kliensekre használjuk; megengedi nekik, hogy kapcsolódjanak, így
|
||||
* némileg van lehetőség a szabályozásra, valamint jelszót is beállíthatunk.
|
||||
* A szintaktika a következő:
|
||||
* allow {
|
||||
* ip (ip maszk az engedélyezéshez);
|
||||
* hostname (gazdanév maszk);
|
||||
* class (osztály, ahová küldjük őket [lásd: class {}]);
|
||||
* password "(jelszó)"; (nem kötelező)
|
||||
* maxperip (mennyi kapcsolatot engedjünk ip címenként); (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Jelszavas allow blokk */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.jelszavas.csunya.emberkek;
|
||||
class clients;
|
||||
password "V4lami";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow channel {}
|
||||
* RÉGI: chrestrict
|
||||
* Megengedi egy felhasználónak, hogy belépjen egy csatornára...
|
||||
* mint egy csatornáról letiltás alóli kivétel.
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: oper {}
|
||||
* RÉGI: O:Line
|
||||
* Definiál egy IRC operátort
|
||||
* Az IRC operátorok feladata, hogy épségben tartsák a szervert; rendszerint
|
||||
* ügyelnek a karbantartottságára és arra, hogy kapcsolatban maradjon
|
||||
* a hálózattal. A szintaktika a következő:
|
||||
* oper (bejelentkezőnév) {
|
||||
* class (osztály, ahová berakjuk őket; ha eddig más osztályban voltak,
|
||||
* átteszi őket ebbe az új osztályba);
|
||||
* from {
|
||||
* userhost (azonosító@gazdanév);
|
||||
* userhost (azonosító@gazdanév);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flagek ide*);
|
||||
* };
|
||||
* VAGY
|
||||
* flags "régi típusú flagek, mint pl. OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Az oper flagek listáját lásd a doc/unreal32docs.hu.html#operblock szekcióban
|
||||
* [ERŐSEN ajánlott elolvasni]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: listen {}
|
||||
* RÉGI: P:Line
|
||||
* Meghatároz egy olyan portot, amelyet az ircd megnyit, és engedélyt ad
|
||||
* a felhasználóknak/szervereknek, hogy kapcsolódjanak a szerverre.
|
||||
* A szintaktika a következő:
|
||||
* listen (ip cím):(portszám)
|
||||
* {
|
||||
* options {
|
||||
* (opciók ide);
|
||||
* };
|
||||
* };
|
||||
* vagy egy síma portnyitáshoz:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* MEGJEGYZÉS: ipv6-os ip-kre (3ffe:b80:2:51d::2 stb.) használjuk a
|
||||
* listen [ip]:port;
|
||||
* szintaktikát. Az is működik.
|
||||
*/
|
||||
|
||||
/* Opciók a listenhez:
|
||||
RÉGI | ÚJ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* MEGJEGYZÉS SSL PORTOKRA: az SSL portok eléggé szabványosítatlanok, emellett
|
||||
* sok a magas SSL port. Néhányan azt mondják, a 994-en célszerű futtatni,
|
||||
* mert az a hivatalos SSL port... de a rendszergazdát igényel! Ezenkívül,
|
||||
* a 194 a hivatalos irc port, de láttunk valaha egy ircd-t azon futni?
|
||||
* Így mi a javaslatunk az, hogy használjuk a 6697-et SSL-hez, ezt használja
|
||||
* jónéhány hálózat, és ezt ismeri fel például a StunTour is.
|
||||
* Szabadon megnyithatunk annyi SSL portot, amennyit akarunk, de ha a 6697-et
|
||||
* (is) használjuk, kicsit segítjük a világot szabványosodni ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* MEGJEGYZÉS: Ha egy több IP címes IRCd shellen vagyunk, előfordulhat, hogy
|
||||
* "Address already in use" ("A cím már használatban van") hibaüzeneteket
|
||||
* találunk a naplóban, és az ircd nem indul el. Ez azt jelenti, hogy
|
||||
* az ircd-nek egy meghatározott IP címre KELL bindelnie a "*" helyett
|
||||
* vagyis például így:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Természetesen cseréljük ki az IP címet arra az IP-re, amelyet nekünk
|
||||
* osztottak ki.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: link {}
|
||||
* RÉGI: C/N:Line-ok
|
||||
* Ez a blokk "igen"-t mond egy szerver kapcsolódására.
|
||||
* MEGJEGYZÉS: MINDKÉRT SZERVEREN KELL EGY LINK {} BEÁLLÍTÁS A HELYES
|
||||
* KAPCSOLÓDÁSHOZ!
|
||||
* A szintaktika a következő:
|
||||
* link (szervernév)
|
||||
* {
|
||||
* username (felhasználónév, * is működik);
|
||||
* hostname (ip cím/gazdanév maszk);
|
||||
* bind-ip (amilyen IP címre bindeljen kapcsolódáskor, vagy *);
|
||||
* port (port, ahová kapcsolódjon, ha van);
|
||||
* hub (Ha ez egy hub; * működik, vagy szervermaszkokat is beírhatunk);
|
||||
* [vagy leaf *;]
|
||||
* password-connect "(elküldendő jelszó)";
|
||||
* password-receive "(fogadandó jelszó)";
|
||||
* class (osztály, ahová betesszük a szervereket);
|
||||
* options {
|
||||
* (opciók ide*);
|
||||
* };
|
||||
* // Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok
|
||||
* // legyenek használatban SSL módban. Listát kapunk az "openssl ciphers"
|
||||
* // paranccsal. Az egyes algoritmusokat :-tal válasszuk el.
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciók:
|
||||
RÉGI | ÚJ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.sajatnet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Megjegyzés: szolgáltatások linkelésekor célszerű nem
|
||||
* használni az autoconnect opciót.
|
||||
*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ÚJ: ulines {}
|
||||
* RÉGI: U:Line
|
||||
* Az U-line-ok több hatalmat/parancsot adnak a szervereknek. CSAK
|
||||
* szolgáltatásokat és statisztikákat nyújtó szerverekre érdemes beállítani,
|
||||
* és SOHA rendes UnrealIRCd szerverekre!
|
||||
* A szintaktika a következő:
|
||||
* ulines {
|
||||
* (uline-ra teendő szerver);
|
||||
* (uline-ra teendő szerver);
|
||||
* [stb.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: drpass {}
|
||||
* RÉGI: X:Line
|
||||
* Meghatározza a jelszavakat a /die és /restart parancsokhoz.
|
||||
* A szintaktika a következő:
|
||||
* drpass {
|
||||
* restart "(újraindítás jelszava)";
|
||||
* die "(leállítás jelszava)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Imádok-újraindítani";
|
||||
die "Halj-te-buta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: log {}
|
||||
* RÉGI: N/A
|
||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||
* amennyit szeretnénk.
|
||||
*
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Szintaktika:
|
||||
* log "naplófájl"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* (flag);
|
||||
* (flag);
|
||||
* [stb.]
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Törölje a naplófájlt, és kezdjen egy újat, ha eléri a 2 MB-ot;
|
||||
* hagyjuk ki ezt a beállításból, ha mindig ugyanazt a naplót
|
||||
* szeretnénk használni
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint a /nickserv, /chanserv stb.
|
||||
* FLAGEK: services (szolgáltatás), stats (statisztika), normal (közönséges
|
||||
* felhasználó)
|
||||
*
|
||||
* Szintaxis:
|
||||
* alias "név" {
|
||||
* target "ahová mutasson";
|
||||
* type álparancstípus;
|
||||
* };
|
||||
*
|
||||
* [MEGJEGYZÉS: Beilleszthetünk ide egy előre beállított álparancsfájlt is,
|
||||
* lásd: doc/unreal32docs.html, 2.9-es szekció]
|
||||
*/
|
||||
|
||||
// Ez a /nickserv parancsot a NickServ felhasználóra irányítja, aki a set::services-server szerverre kapcsolódott.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ha a parancsot ugyanarra a nicknévre szeretnénk irányítani, ami a parancs neve, kihagyhatjuk a nick bejegyzést.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// A /statserv parancsot a set::stats-server szerveren lévő StatServ felhasználóra irányítja
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// A /superbot parancsot a SuperBot felhasználóra irányítja.
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint az /identify, /services stb.
|
||||
*
|
||||
* Szintaktika:
|
||||
* alias "név" {
|
||||
* format "formátumsztring" {
|
||||
* target "ahova mutasson";
|
||||
* type álparancstípus;
|
||||
* parameters "küldendő paraméterek";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ezt azért mutatjuk külön, mert még ha ugyanaz is a neve, mint az előző direktívának, a szintaktikája nagyon
|
||||
* más, habár hasonló feladatot lát el, és a szabványosok álparancsokra van szüksége, hogy működjön.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Az alias::format direktíva egy reguláris kifejezés. Az első formátum akkor illeszkedik az /identify parancsra,
|
||||
* ha az első karakter egy #. Azután elküldi ezt a chanserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
* A második formátum akkor illeszkedik az /identify parancsra, ha az első karakter nem egy #. Azután
|
||||
* elküldi a parancsot a nickserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
*/
|
||||
|
||||
/* Az alias::format::parameters hasonló a scriptnyelvekhez. Az %N (ahol N egy szám) a parancshoz küldött egyik
|
||||
* paramétert ábrázolja (ebben az esetben az /identify-ét). Ha azt írjuk, hogy %N-, a sztring N-edik
|
||||
* paraméterétől az utolsóig minden paramétert fog jelenteni. Megadhatunk egy %n-et is, amely ki lesz cserélve
|
||||
* a felhasználó nicknevével.
|
||||
*/
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Példa egy valódi álparancsra */
|
||||
/* A /GLINEBOT parancsot leképezi arra, hogy /GLINE <paraméter> 2d stb... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Botok tilosak ezen a szerveren, kérlek, olvasd el a faq-ot a http://www.example.com/faq/123 címen";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ÚJ: tld {}
|
||||
* RÉGI: T:Line
|
||||
* Beállít más motd és rules fájlt
|
||||
* a kliens hostmaszkjára.
|
||||
* A szintaktikája a következő:
|
||||
* tld {
|
||||
* mask (azonosító@gazda);
|
||||
* motd "(motd fájl)";
|
||||
* rules "(rules fájl)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* megjegyzés: a fenti példa blokkot akár le is törölhetjük; ebben az esetben
|
||||
* mindenkire az alapértelmezett motd/rules fájlok (ircd.motd, ircd.rules)
|
||||
* lesznek használatban.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: ban nick {}
|
||||
* RÉGI: Q:Line
|
||||
* Kitilt egy nicknevet, így az nem használható.
|
||||
* A szintaktikája a következő:
|
||||
* ban nick {
|
||||
* mask "(kitiltandó nick)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Fenntartva a szolgáltatásoknak";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban ip {}
|
||||
* RÉGI: Z:Line
|
||||
* Megtiltja egy ip-nek, hogy a hálózatra kapcsolódjon.
|
||||
* Szintaktika:
|
||||
* ban ip { mask (ip cím/gazdanévmaszk); reason "(indoklás)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Lecsatolt szerver";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban server {}
|
||||
* RÉGI: Q:Line szerverekre
|
||||
* Megtiltja egy szervernek, hogy a hálózatra kapcsolódjon.
|
||||
* Ha egy szerver távoli szerverre linkel, a helyi szerver
|
||||
* szétkapcsolja a hálózatról.
|
||||
* A szintaktikája a következő:
|
||||
* ban server {
|
||||
* mask "(szervernév)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Mars ki innen!";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban user {}
|
||||
* RÉGI: K:Line
|
||||
* Elintézi, hogy egy felhasználó egy bizonyos maszkról ne tudjon kapcsolódni
|
||||
* a szerverünkre.
|
||||
* Szintaktika:
|
||||
* ban user { mask (gazdanévmaszk/ip cím); reason "(indok)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idióta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: ban realname {}
|
||||
* RÉGI: n:Line
|
||||
* Letiltja egy bizonyos valós név használatát.
|
||||
* Szintaktikája:
|
||||
* ban realname {
|
||||
* mask "(valós név)";
|
||||
* reason "(indok)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* MEGJEGYZÉS MINDEN BANRA: ezek ismételhetőek további bejegyzésekhez!
|
||||
*
|
||||
* ÚJ: except ban {}
|
||||
* RÉGI: E:Line
|
||||
* Elintézi, hogy ne lehessen minket kibannolni.
|
||||
* Szintaktika:
|
||||
* except ban { mask (azonosító@gazda); };
|
||||
* További gazdákhoz annyiszor ismételjük az except ban {}-t,
|
||||
* amennyiszer szükséges.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne tiltsuk ki stskeeps-t */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny dcc {}
|
||||
* RÉGI: dccdeny.conf
|
||||
* Használjuk dcc küldések blokkolására... Jobban
|
||||
* megállítja a vírusokat.
|
||||
* Szintaktika:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "blokkolandó fájl (pl. *exe)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Valószínűleg Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny channel {}
|
||||
* RÉGI: N/A (ÚJ)
|
||||
* Letiltja bizonyos csatornákon a belépést.
|
||||
* Szintaktika:
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: vhost {}
|
||||
* RÉGI: Vhost.conf fájl
|
||||
* Beállít egy hamis ip címet közönséges felhasználókon, vagy
|
||||
* olyan operátorokon, akik lusták a /sethost-ot használni :P
|
||||
* Szintaktika:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (azonosító@gazda, aki használhatja);
|
||||
* };
|
||||
* login (bejelentkezőnév);
|
||||
* password (jelszó);
|
||||
* };
|
||||
* azután e vhost használatához adjuk ki
|
||||
* a /vhost (bejelentkezőnév) (jelszó) parancsot IRC-n
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Befűzhetünk más konfigurációs fájlokat */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Hálózati beállítások */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell
|
||||
* lenniük. Az álcázott gazdanevek előállításában van szerepük, ezért
|
||||
* legyenek titokban tartva! Mind 3 kulcs legyen egy-egy véletlenszerű
|
||||
* sztring 5-100 karakterből (10-20 karakter kitűnő), valamint
|
||||
* tartalmazniuk kell kisbetűket (a-z), nagybetűket (A-Z) és számokat
|
||||
* (0-9) [ahogy az első kulcsos példában látható].
|
||||
* TIPP: *NIX alatt az './unreal gencloak' parancsot futtatva
|
||||
* a parancsértelmezőnkben, az Unreal 3 véletlen sztringet
|
||||
* generál nekünk.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"írjunk hozzá még egyet";
|
||||
"írjunk hozzá még egyet";
|
||||
};
|
||||
/* gazdanevek opereléskor */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Szerverszintű beállítások */
|
||||
|
||||
set {
|
||||
kline-address "állítsuk.be.ezt.az.emailt";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#operek";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Legkevesebb ennyi ideig kell a felhasználónak kapcsolatban lennie,
|
||||
* mielőtt engedélyt kap a QUIT üzenetek használatára. Remélhetőleg
|
||||
* ez leállítja a spamot. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* A static-quit a neki megadott üzenetet megjeleníti minden
|
||||
* kilépésben - avagy egyéni kilépési szövegek nem engedélyezettek
|
||||
* a helyi szerveren */
|
||||
/* static-quit "Kliens kilépés"; */
|
||||
|
||||
/* Hasonlóan blokkolható minden lelépési indok, úgy, hogy kivesszük
|
||||
* a megjegyzésből ezt, és "yes"-t írunk vagy megadunk valamilyen
|
||||
* más szöveget (pl. "Bye bye!"), hogy mindig az legyen a lelépés
|
||||
* indoklószövege. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Ezzel megmondhatjuk, mely statisztikákat szeretnénk csak operátorok
|
||||
* számára engedélyezni. Használjunk *-ot, ha az összeset kívánjuk,
|
||||
* és hagyjuk el a direktívát, ha a felhasználók mindet láthatják. Írjuk
|
||||
* be a "/stats" parancsot a teljes listáért.
|
||||
* Lehet, hogy néhány adminisztrátor törölni fogja a "kGs"-t, hogy
|
||||
a közönséges felhasználók láthassák a kline-okat, gline-okat és
|
||||
* shunokat.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Elfojtás: ez a példa 60 másodpercenként legfeljebb 3 kapcsolódási
|
||||
* kísérletet engedélyező korlátozást állít be (gazdánként). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Árasztásellenes védelem */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nicknévváltás 60 másodpercenként
|
||||
(az alapértelmezés) */
|
||||
};
|
||||
|
||||
/* Spamszűrő */
|
||||
spamfilter {
|
||||
ban-time 1d; /* a spamszűrő által beállított *line-ok
|
||||
alapértelmezett kitiltási ideje */
|
||||
ban-reason "Spam/Reklámozás"; /* alapértelmezett indok */
|
||||
virus-help-channel "#help"; /* a "viruschan" tevékenységhez
|
||||
használt csatorna */
|
||||
/* except "#help"; kivesszük a szűrés alól ezt a csatornát */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problémák akadtak, vagy szükség van további segítségre?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||
* 3) Ha még mindig gondod van, felmehetsz az irc.ircsystems.net #unreal-support
|
||||
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||
* a GYIK-ot!
|
||||
*/
|
||||
@@ -0,0 +1,816 @@
|
||||
/*
|
||||
* example.conf door Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Vertaald door Mark
|
||||
*
|
||||
* Werkt voor Unreal3.2 en hoger
|
||||
*
|
||||
* Dit is de nieuwe example.conf. Het lijkt veel op C++.
|
||||
* Het begin is wellicht moeilijk, maar met wat ervaring en lezen
|
||||
* zul je het wel begrijpen.
|
||||
*
|
||||
* Kopieer dit bestand naar je hoofd UnrealIRCd dir en noem het 'unrealircd.conf'.
|
||||
*
|
||||
* OPMERKING: Alle regels, behalve de openings { regel, eindingen met een ;, dus
|
||||
* ook de sluitende } regel. Commentaar regels worden door de IRCd niet verwerkt.
|
||||
*
|
||||
* LEES doc/unreal32docs.html! De online versie is tevens te bereiken op:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* Er staat heel veel informatie in over het configbestand: informatie over
|
||||
* elk block, variabele, etc..
|
||||
* Wanneer je dit bestand aanpast zonder de documentatie grondig te lezen,
|
||||
* zul je gegarandeerd falen!
|
||||
*/
|
||||
|
||||
/* Type van commentaar */
|
||||
#Commentaar type 1 (Shell type)
|
||||
// Commentaar type 2(C++ style)
|
||||
/* Commentaar type 3 (C Style) */
|
||||
#Deze regels worden niet verwerkt door de IRCd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd ondersteunt modules, het laden van sommige is benodigd.
|
||||
* Je hebt tenminste een commands module en een cloacking module nodig.
|
||||
*/
|
||||
|
||||
/* VOOR *NIX, haal de commentaartekens weg bij de volgende 2 regels: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* VOOR Windows, haal de commentaartekens weg bij de volgende 2 regels: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Je kan tevens andere configuratiebestanden toevoegen.
|
||||
* help.conf bevat alle /helpop tekst. De badwords.*.conf
|
||||
* bestanden bevatten alle badword instellingen voor mode +G..
|
||||
* spamfilter.conf bevat enkele goede regels voor huidige trojans.
|
||||
* Je wilt deze waarschijnlijk laden:
|
||||
*/
|
||||
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NIEUW: me {}
|
||||
* OUD: M:Line
|
||||
* me {} definieert de naam, beschrijving en unreal numeriek voor deze server.
|
||||
* De syntax is als volgt:
|
||||
* me {
|
||||
* name "server.naam";
|
||||
* info "Server Beschrijving";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Waneer je servers linkt, mag de numeric niet door een andere server in gebruik zijn.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: admin {}
|
||||
* OUD: A:Line
|
||||
* Admin geeft informatie over de server admin. Je mag hier
|
||||
* zo veel regels opgeven als je wilt.
|
||||
* De syntax is als volgt:
|
||||
* admin {
|
||||
* "eerste regel";
|
||||
* "tweede regel";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: class {}
|
||||
* OUD: Y:line (de oude was verwarrend)
|
||||
* Hiermee stel je de classes in. Een class is een groepsinstelling voor
|
||||
* connections. Server connecties stuur je naar een andere class dan
|
||||
* gebruikers.
|
||||
* De syntax is als volgt:
|
||||
* class (class naam)
|
||||
* {
|
||||
* pingfreq (hoe vaak er gepingt moet worden naar een gebruiker/server in seconden);
|
||||
* maxclients (hoeveel connecties er maximaal in deze class mogen zijn);
|
||||
* sendq (maximale send queue voor 1 connectie);
|
||||
* recvq (maximale receive queue voor 1 connectie [flood control]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Hoeveel servers we maximaal tegelijk gelinkt kunnen hebben */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Hoeveel seconden tussen een poging to verbinden */
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: allow {}
|
||||
* OUD: I:Line
|
||||
* Hiermee stel je het toestaan van connecties in.
|
||||
* Gebruikers kunnen verbinden, en jij hebt wat controle en kan eventueel
|
||||
* een wachtwoord instellen.
|
||||
* De syntax is als volgt:
|
||||
* allow {
|
||||
* ip (ip mask dat toegestaan moet worden);
|
||||
* hostname (host mask);
|
||||
* class (class waarnaar ze gestuurd moeten worden [see class {}]);
|
||||
* password "(wachtwoord)"; (optioneel)
|
||||
* maxperip (hoeveel connecties per IP); (optioneel)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Allow met wachtwoord */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: allow channel {}
|
||||
* OUD: chrestrict
|
||||
* Geeft de mogelijkheid een kanaal te joinen,
|
||||
* als uitzondering voor een deny channel {}
|
||||
* De syntax is als volgt:
|
||||
* allow channel {
|
||||
* channel "kanaal naam";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: oper {}
|
||||
* OUD: O:Line
|
||||
* Stelt een IRC Operator in
|
||||
* IRC Operators zorgen voor orde op de server en zorgen er
|
||||
* tevens voor dat de server verbonden blijft met het netwerk.
|
||||
* De syntax is als volgt:
|
||||
* oper (login) {
|
||||
* class (class waarin ze geplaatst moeten worden.);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags hier*);
|
||||
* };
|
||||
* OF
|
||||
* flags "oud type flags, zoals OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Voor een lange lijst van oper flags, zie doc/unreal32docs.html#operblock
|
||||
* [wordt ten zeerste aangeraden te lezen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: listen {}
|
||||
* OUD: P:Line
|
||||
* Hiermee stel je een poort in voor de IRCd, zodat
|
||||
* gebruikers/servers kunnen verbinden met je server.
|
||||
* De syntax is als volgt:
|
||||
* listen (ip nummer):(port nummer)
|
||||
* {
|
||||
* options {
|
||||
* (opties hier);
|
||||
* };
|
||||
* };
|
||||
* of een gewone:
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* OPMERKING: voor IPv6 IPs (3ffe:b80:2:51d::2 etc), gebruik listen [ip]:port;
|
||||
*
|
||||
* Dat werkt ook.
|
||||
*/
|
||||
|
||||
/* Opties voor listen:
|
||||
OUD | NIEUW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
|
||||
/* Opmerking voor SSL poorten: SSL poorten zijn niet echt
|
||||
* standaard. Mensen zeggen dat je SSL op poort 994 moet laten
|
||||
* lopen, omdat dit de standaard SSL poort is.. Maar meestal worden
|
||||
* hogere poorten gebruikt. Om poort 994 te gebruiken, moet je root
|
||||
* zijn! Tevens is poort 194 de officiele IRC poort. Maar heb je daar
|
||||
* ooit een IRCd op zien lopen?
|
||||
* Wij raden je aan om poort 6697 voor SSL te gebruiken. Dit wordt op
|
||||
* vrijwel alle netwerken gebruikt en wordt herkend door bijvoorbeeld
|
||||
* StunTour. Je mag zoveel SSL poorten openen als je wil, maar als je
|
||||
* (tevens) 6697 gebruikt, help je mee de wereld meer uniform te maken ;).
|
||||
*/
|
||||
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
|
||||
/* Opmerking: Als je een IRCd shell gebruikt met meerdere IPs, krijg
|
||||
* je wellicht een "Address already in use" error in je log
|
||||
* en de IRCd zal niet starten. Dit betekent dat je MOET binden
|
||||
* naar een specifiek IP in plaats van '*', bijvoorbeeld:
|
||||
* listen 1.2.3.4:6667l
|
||||
* Natuurlijk moet je het IP vervangen door het IP dat je toewezen is.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NIEUW: link {}
|
||||
* OUD: C/N:Lines
|
||||
* Geeft een server toegang om te verbinden.
|
||||
* OPMERKING: Beiden servers hebben een link { } nodig om goed te kunnen verbinden!
|
||||
* De syntax is als volgt:
|
||||
* link (server naam)
|
||||
* {
|
||||
* username (username, * werkt ook);
|
||||
* hostname (ip number/hostmask);
|
||||
* bind-ip (welk IP te binden wanneer je connect, of *);
|
||||
* port (poort om naar te verbinden);
|
||||
* hub (Als dit een hub is, werkt '*');
|
||||
* [of leaf *;]
|
||||
* password-connect "(wachtwoord te zenden)";
|
||||
* password-receive "(wachtwoord te ontvangen)";
|
||||
* class (class waarin de server geplaatst moet worden);
|
||||
* options {
|
||||
* (opties hier*);
|
||||
* };
|
||||
* // Als we SSL gebruiken, kunnen we kiezen welke cipher we willen gebruiken in SSL mode
|
||||
* // Verkrijg een lijst door "openssl ciphers", onderscheid ciphers met :'s
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opties:
|
||||
OUD | NIEUW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Opmerking: Gebruik geen autoconnect naar Services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NIEUW: ulines {}
|
||||
* OUD: U:Line
|
||||
* U:Lines geven servers meer macht/commando's. Gebruik het alleen voor
|
||||
* services en stats, en NOOIT voor normale UnrealIRCd servers!
|
||||
* De syntax is als volgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: drpass {}
|
||||
* OUD: X:Line
|
||||
* Stelt de wachtwoorden voor /die en /restart in.
|
||||
* De syntax is als volgt:
|
||||
* drpass {
|
||||
* restart "(wachtwoord voor herstart)";
|
||||
* die "(wachtwoord voor beeindigen)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: log {}
|
||||
* OUD: N/A
|
||||
* Laat de IRCd weten wat en waar te loggen. Je kan er
|
||||
* zoveel instellen als je wilt.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
*
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Verwijder het logbestand en begint een nieuwe wanneer de oude 2MB groot is. Laat dit leeg om altijd
|
||||
hetzelfde bestand te gebruiken */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: alias {}
|
||||
* OUD: N/A
|
||||
* Hiermee stel je commando's zoals /nickserv, /chanserv etc in.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
* alias "naam" {
|
||||
* target "wijst naar";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [Opmerking: Je kan ook een standaard alias bestand gebruiken, zie doc/unreal32docs.nl.html sectie 2.9]
|
||||
*/
|
||||
|
||||
// Dit wijst het commando /nickserv naar de gebruiker NickServ welke verbonden is met set::services-server
|
||||
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Als je het commando naar dezelfde nick als het commando wil sturen, kun je "target" weglaten.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Wijst het /statserv commando naar de gebruiker Statserv verbonden met set::stats-server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Wijst het /superbot commando naar de gebruiker SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
/* Standaard aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NIEUW: alias {}
|
||||
* OUD: N/A
|
||||
* Hiermee stel je commando's zoals /identify, /services in.
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
* alias "naam" {
|
||||
* format "format string" {
|
||||
* target "wijst naar";
|
||||
* type aliastype;
|
||||
* parameters "parameters te verzenden";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Hier wordt apart notitie van gemaakt, hoewel het dezelfde naam heeft als het vorige block. Het verschilt veel
|
||||
* in syntax, maar het maakt gebruik van dezelfde functies.
|
||||
*/
|
||||
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
|
||||
/* De alias::format is een reguliere expressie. Het eerste formaat matcht het /identify commando wanneer
|
||||
* het eerste teken een # is. Daarna wordt het doorgezonden naar de chanserv alias met de parameters
|
||||
* IDENTIFY %1-. Het tweede formaat matcht het /identify commando wanneer het eerste teken geen # is. Daarna
|
||||
* wordt het commando doorgestuurd naar de nickserv alias met de parameters IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* Het alias::format::parameters is gelijk aan script-talen. %N (N is een nummer) staat voor de parameter die
|
||||
* gezonden is naar het commando (in dit geval /identify). Wanneer je %N- opgeeft, betekent dat alle parameters
|
||||
* vanaf N tot de laatste paramater in de string. Je kan ook %n gebruiken, waar %n vervangen wordt door de nick.
|
||||
*/
|
||||
|
||||
/* Standaard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Dit is een voorbeeld van een echt commando alias */
|
||||
/* Dit verwijst /GLINEBOT naar /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: tld {}
|
||||
* OUD: T:Line
|
||||
* Hiermee stel je verschillende MOTD en RULES bestanden in,
|
||||
* afhangend van de gebruikers hostmask.
|
||||
* De syntax is als volgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd bestand)";
|
||||
* rules "(rules bestand)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* Opmerking: je kan het bovenstaande voorbeeld verwijderen.
|
||||
* In dat geval worden de standaard motd/rules bestanden (ircd.motd, ircd.rules).
|
||||
* gebruikt voor iedereen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NIEUW: ban nick {}
|
||||
* OUD: Q:Line
|
||||
* Bant een nickname zodat deze niet gebruikt kan worden.
|
||||
* De syntax is als volgt:
|
||||
* ban nick {
|
||||
* mask "(nick om te bannen)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserved for Services";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban ip {}
|
||||
* OUD: Z:Line
|
||||
* Bant een IP van de server
|
||||
* De syntax is als volgt:
|
||||
* ban ip {
|
||||
* mask (ip number/hostmask);
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Delinked server";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban server {}
|
||||
* OUD: Server Q:Line
|
||||
* Zorgt ervoor dat een server niet kan verbinden met het netwerk.
|
||||
* Als de server naar een andere server linkt, zal de lokale server
|
||||
* de verbinding met het netwerk verbreken.
|
||||
* De syntax is als volgt:
|
||||
* ban server {
|
||||
* mask "(server naam)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Get out of here.";
|
||||
};
|
||||
/*
|
||||
* NIEUW: ban user {}
|
||||
* OUD: K:Line
|
||||
* Zorgt ervoor dat een gebruiker met een bepaalde mask niet
|
||||
* kan verbinden met je server.
|
||||
* De syntax is als volgt:
|
||||
* ban user {
|
||||
* mask (hostmask/ip number);
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban realname {}
|
||||
* OUD: n:Line
|
||||
* Belet het gebruik van een bepaalde realname.
|
||||
* De syntax is als volgt:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* OPMERKING VOOR ALLE BANS: Ze mogen herhaald worden voor extra toevoegingen!
|
||||
*
|
||||
* NIEUW: except ban {}
|
||||
* OUD: E:Line
|
||||
* Zorgt ervoor dat jij niet gebanned kan worden.
|
||||
* De syntax is als volgt:
|
||||
* except ban { mask (ident@host); };
|
||||
* Herhaal de except ban {} zo vaak als je wilt
|
||||
* voor andere hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: deny dcc {}
|
||||
* OUD: dccdeny.conf
|
||||
* Wordt gebruikt om DCC sends te blokkeren..
|
||||
* Stopt virii beter.
|
||||
* De syntax is als volgt:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "bestand te blokkeren (bv, *exe)";
|
||||
* reason "reden";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: deny channel {}
|
||||
* OUD: N/A (NIEUW)
|
||||
* Belet het gebruik van een kanaal.
|
||||
* De syntax is als volgt:
|
||||
* deny channel {
|
||||
* channel "(kanaal)";
|
||||
* reason "reden";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: vhost {}
|
||||
* OUD: Vhost.conf file
|
||||
* Dit zet een nep ip voor niet-opers, of voor opers
|
||||
* die te lui zijn /sethost te gebruiken ;)
|
||||
* De syntax is als volgt:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host toegestaan de vhost te gebruiken);
|
||||
* };
|
||||
* login (login name);
|
||||
* password (password);
|
||||
* };
|
||||
* Om je vhost te gebruiken, typ /vhost (login) (password) op IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Je kan ook andere configuratiebestanden laden */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Netwerk configuratie */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Cloak keys moeten op alle servers in het netwerk hetzelfde zijn.
|
||||
* Ze worden gebruikt voor het maken van gemaskte hosts en moeten geheim blijven.
|
||||
* De keys moeten 3 willekeurige strings zijn, bestaande uit 5-100 tekens
|
||||
* (10-20 tekens is genoeg) en moeten bestaan uit kleine letters (a-z),
|
||||
* hoofdletters (A-Z) en getallen (0-9) [zie de eerste key als voorbeeld].
|
||||
* Tip: Wanneer je met een *NIX systeem werkt, kun je './unreal gencloak' gebruiken in
|
||||
* je shell. Dit genereert 3 willekeurige strings die je kunt gebruiken.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"en nog eentje";
|
||||
"en nog eentje";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server gerelateerde configuratie */
|
||||
|
||||
set {
|
||||
kline-address "stel.dit.adres.in";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Je kan hier ident checking aanzetten als je wilt */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Hoelang een gebruiker minimaal verbonden moet zijn voordat hij toegestaan wordt het
|
||||
* QUIT bericht te gebruiken. Dit stopt spam hopelijk. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Stelt een tekst in die standaard wordt gebruikt voor een quit.
|
||||
* Houdt in dat er geen eigen quits gebruikt mogen worden op deze server. */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Je kan ook alle part-redenen blokkeren door hieronder het commentaar weg te halen
|
||||
* en er 'yes' neer te zetten. Je kan ook een standaard tekst gebruiken (bijvoorbeeld
|
||||
* "Bye bye!") om deze tekst altijd te gebruiken..
|
||||
*/
|
||||
/* static-part yes; */
|
||||
|
||||
/* Stelt in dat stats alleen door opers gebruikt mogen worden. Gebruik * voor alle stats,
|
||||
* en laat het weg zodat gebruikers alle stats kunnen zien. Typ '/stats' voor een lijst
|
||||
* van alle stats.
|
||||
* Sommige admins willen 'kGs' wellicht verwijderen zodat gewone gebruikers een lijst van
|
||||
* klines, glines en shunts kunnen zien.
|
||||
*/
|
||||
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttle: dit voorbeeld zet een limie van 3 conneties per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protectie */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 naamsveranderingen per 60 seconden (standaard) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* standaard duur van een *line gezet door spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* standaard reden */
|
||||
virus-help-channel "#help"; /* kanaal te gebruiken voor 'viruschan' actie */
|
||||
/* except "#help"; kanaal waar niet gefilterd wordt */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problemen of meer hulp nodig?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- hier staat 80% van je vragen!
|
||||
* 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!
|
||||
*/
|
||||
@@ -0,0 +1,792 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* example.ru.conf by Samets Anton aka Bock (bock@bynets.org).
|
||||
* $Id$
|
||||
*
|
||||
* (Encoding): Windows-1251
|
||||
*
|
||||
* Работает для Unreal3.2 и выше
|
||||
*
|
||||
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
|
||||
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
|
||||
* вы научитесь это делать.
|
||||
*
|
||||
* Просто скопируйте этот файл в главную директорию unrealircd и переименуйте в 'unrealircd.conf'.
|
||||
*
|
||||
* Замечание: Все линии, кроме тех, которые начинаются с {, заканчиваются ; включая и закрывающую }.
|
||||
* IRCd проигнорирует закомментированные линии.
|
||||
*
|
||||
* ПРОЧТИТЕ doc/unreal32docs.ru.html! Версия в интернете доступна по адресу:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
||||
* Она содержит большинство информации о конфигурировании, даёт представление о каждом блоке,
|
||||
* переменной и так далее...
|
||||
* Если вы пытаетесь редактировать этот файл без прочтения документации, вы гарантированно
|
||||
* потерпите неудачу!
|
||||
*/
|
||||
|
||||
/* Типы комментариев */
|
||||
# Первый тип (Shell type)
|
||||
// Второй тип (C++ style)
|
||||
/* Третий тип (C Style) */
|
||||
# данные линии игнорируются ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd поддерживает модули, загрузка некоторых необходима для запуска.
|
||||
* Вам необходимо загрузить как минимум модули команд и скрытия хоста.
|
||||
*/
|
||||
|
||||
/* Для *NIX систем раскомментируйте следующие 2 линии: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Для Windows систем раскомментируйте следующие 2 линии: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Вам необходимо подключить и другие конфигурационные файлы.
|
||||
* help.ru.conf содержит весь текст команды /helpop. Файлы badwords.*.conf
|
||||
* содержат все включения матных слов для режима +G...
|
||||
* spamfilter.conf содержит правила для защиты от троянских коней.
|
||||
* Вы вероятно захотите подключить эти файлы:
|
||||
*/
|
||||
include "help.ru.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* НОВОЕ: me {}
|
||||
* СТАРОЕ: M:Line
|
||||
* me {} определяет имя, описание и нумерик сервера unreal для данного сервера.
|
||||
* Синтаксис:
|
||||
* me {
|
||||
* name "Имя.сервера";
|
||||
* info "Описание сервера";
|
||||
* numeric (нумерик сервера*);
|
||||
* };
|
||||
* При соединении с другими серверами, нумерик должен быть уникальным в сети. Имя сервера - англоязычное.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "Сервер FooNet";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: admin {}
|
||||
* СТАРОЕ: A:Line
|
||||
* Данный блок предоставляет информацию об администраторе сервера.
|
||||
* Вы можете поместить сколько угодно линий после admin {.
|
||||
* Синтаксис:
|
||||
* admin {
|
||||
* "первая линия";
|
||||
* "вторая линия";
|
||||
* [так далее]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Вася Пупкин!";
|
||||
"vasya_pupkin";
|
||||
"haker@lamer.ru";
|
||||
"ICQ: 987654321";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: class {}
|
||||
* СТАРОЕ: Y:line (был слишком запутан)
|
||||
* Определяет настройки для классов. Класс определяет групповые настройки для подключений.
|
||||
* Например, подключение сервера, вместо включения его в класс пользователей, вы направляете в
|
||||
* класс серверов. Используется следующий синтаксис:
|
||||
* class (имя класса)
|
||||
* {
|
||||
* pingfreq (как часто пиновать пользователя/сервер в секундах);
|
||||
* maxclients (сколько максимально соединений разрешено данному классу);
|
||||
* sendq (максимальная очередь для отправки от подключения);
|
||||
* recvq (максимальная очередь для получения от подключения [контроль за флудом]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Какое максимальное количество серверов может быть прилинковано к этому серверу */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Через сколько секунд проводить следующую попытку подключения */
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: allow {}
|
||||
* СТАРОЕ: I:Line
|
||||
* Определяет, кому разрешено подключаться к серверу...
|
||||
* В основном используется для клиентов, это разрешает им подключаться к серверу, а вы можете их контролировать
|
||||
* и/или устанавивать пароль.
|
||||
* Синтаксис:
|
||||
* allow {
|
||||
* ip (разрешённая маска ip);
|
||||
* hostname (маска хоста);
|
||||
* class (класс, в который определить[смотри class {}]);
|
||||
* password "(пароль)"; (необязательно)
|
||||
* maxperip (сколько подключений с одного ip); (необязательно)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Разрешение подключения с паролем */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "аццкип0р0ль";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: allow channel {}
|
||||
* СТАРОЕ: chrestrict
|
||||
* Позволяет пользователю зайти на канал...
|
||||
* служит как исключение из запрещённых каналов.
|
||||
* Синтаксис:
|
||||
* allow channel {
|
||||
* channel "имя канала";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: oper {}
|
||||
* СТАРОЕ: O:Line
|
||||
* Определяет IRC оператора
|
||||
* IRC операторы следят за сервером, занимаются его поддержкой и подключением к сети.
|
||||
* Синтаксис:
|
||||
* oper (логин) {
|
||||
* class (класс, в который определять их, если отличен от блока I, в какой класс переместить);
|
||||
* from {
|
||||
* userhost (идент@хост);
|
||||
* userhost (идент@хост);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (тут флаги*);
|
||||
* };
|
||||
* ИЛИ
|
||||
* flags "флаги старого типа, вида OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Для списка флагов оператора прочитайте doc/unreal32docs.ru.html#operblock
|
||||
* [ОЧЕНЬ НАСТОЯТЕЛЬНО рекомендуется к прочтения]
|
||||
*/
|
||||
|
||||
oper vasyapupkin {
|
||||
class clients;
|
||||
from {
|
||||
userhost vasya@somewhere.by;
|
||||
};
|
||||
password "p0r0l'";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: listen {}
|
||||
* СТАРОЕ: P:Line
|
||||
* Определяет, на каких портах будет работать ircd,
|
||||
* позволяя пользователям/серверам подключаться к серверу.
|
||||
* Синтаксис:
|
||||
* listen (ip):(номер порта)
|
||||
* {
|
||||
* options {
|
||||
* (тут опции);
|
||||
* };
|
||||
* };
|
||||
* или просто
|
||||
* listen: listen (ip):(порт);
|
||||
*
|
||||
* ЗАМЕЧАНИЕ: для протокола ip v6 (3ffe:b80:2:51d::2), используйте [ip]:порт;
|
||||
*
|
||||
* Это так же будет работать.
|
||||
*/
|
||||
|
||||
/* Опции для listen:
|
||||
СТАРЫЕ | НОВЫЕ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ЗАМЕЧАНИЕ ДЛЯ ПОРТОВ SSL: SSL порты стандартизированы,
|
||||
* за исключением многочисленных "высоких" портов SSL, некоторые люди могут сказать вам,
|
||||
* чтобы вы запустили на порту 994, потому что он официальный порт SSL... Но это же
|
||||
* требует привилегий пользователя root! К слову, порт 194 - официальный порт irc,
|
||||
* но вы видели когда-нибудь ircd, запущенный на нём?
|
||||
* Итак, наше предложение - использовать порт 6697 для SSL, он используется уже рядом сетей
|
||||
* и используется в примере StunTour.
|
||||
* Вы можете открыть сколько угодно портов SSL, но используя так же и 6697, вы поможете
|
||||
* стандартизировать его;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ЗАМЕЧАНИЕ: Если вы используете шелл IRCd, где несколько IP адресов, вы можете получить сообщение типа
|
||||
* 'Address already in use', ошибки в вашем лог-файле и ircd не запустится.
|
||||
* Это значит, что вам необходимо указать определённый адрес IP вместо '*', к примеру:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Конечно же, измените IP адрес на тот, который назначен вам.
|
||||
*/
|
||||
|
||||
/*
|
||||
* НОВОЕ: link {}
|
||||
* СТАРОЕ: C/N:Lines
|
||||
* Определяет блок для подключения серверов.
|
||||
* ЗАМЕЧАНИЕ: ЧТОБЫ ПОДКЛЮЧИТЬСЯ БЕЗ ВОПРОСОВ, НА ОБОИХ СЕРВЕРАХ НЕОБХОДИМЫ ПРАВИЛЬНЫЕ НАСТРОЙКИ LINK {}!
|
||||
* Синтаксис:
|
||||
* link (имя сервера)
|
||||
* {
|
||||
* username (имя пользователя, * работает тоже);
|
||||
* hostname (адрес ip/маска хоста);
|
||||
* bind-ip (На каком адресе IP слушать или *);
|
||||
* port (порт для соединения);
|
||||
* hub (если это хаб, * так же работает, или макси сервера, которые могут быть под ним);
|
||||
* [или leaf *;]
|
||||
* password-connect "(пароль для отправки)";
|
||||
* password-receive "(пароль, что мы должны получить)";
|
||||
* class (класс, в который определить сервер);
|
||||
* options {
|
||||
* (тут указываются опции*);
|
||||
* };
|
||||
* // Если мы используем SSL, мы можем указать, какой шифр использовать в режиме SSL
|
||||
* // Получить список можно "openssl ciphers", шифры разделяются двоеточиями (:)
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
опции:
|
||||
СТАРЫЕ | НОВЫЕ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.ru.by
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Замечание: Вы не должны использовать автоподключение (autoconnect) при подключении сервисов */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* НОВОЕ: ulines {}
|
||||
* СТАРОЕ: U:Line
|
||||
* U-lines обладают большей силой/властью, чем другие сервера. Это нужно устанавливать только на
|
||||
* сервисы/сервера сбора статистики и НИКОГДА на обычные сервера UnrealIRCd!
|
||||
* Синтаксис:
|
||||
* ulines {
|
||||
* (сервер в uline);
|
||||
* (сервер в uline);
|
||||
* [и т.д.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: drpass {}
|
||||
* СТАРОЕ: X:Line
|
||||
* Определяет пароли для использования команд /die и /restart.
|
||||
* Синтаксис:
|
||||
* drpass {
|
||||
* restart "(пароль для перезапуска)";
|
||||
* die "(пароль для отключения)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Я-люблю-перезапускать-сервер";
|
||||
die "умри-тупое!:)";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: log {}
|
||||
* СТАРОЕ: N/A
|
||||
* Указыает ircd куда и что протоколировать (вести лог). Вы можете указать столько, сколько пожелаете.
|
||||
*
|
||||
* ФЛАГИ: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Синтаксис:
|
||||
* log "путь_к_лог_файлу"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Удалять логфайл и старовать новый, если размер превышает 2MB, оставьте это как есть, чтобы использовать
|
||||
тот же самый файл */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: alias {}
|
||||
* СТАРОЕ: N/A
|
||||
* Позволяет установить вам псевдонимы на команды, такие как /nickserv, /chanserv и т.д.
|
||||
* ФЛАГИ: services, stats, normal
|
||||
*
|
||||
* Синтаксис:
|
||||
* alias "имя" {
|
||||
* target "куда направить";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ЗАМЕЧАНИЕ: Вы так же можете подключить уже определённый файл с псевдонимами,подробнее doc/unreal32docs.ru.html в секции 2.9]
|
||||
*/
|
||||
|
||||
// Данный псевдноним /nickserv направляет команды пользователю NickServ, который подключён к серверу set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Если вы хотите, чтобы команды направлялись на тот же ник, что и команда, вы можете не указывать target
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Указывает, что команда /statserv будет отправлена пользователю StatServ, подключённого к серверу set::stats-server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Указывает, что команда /superbot будет отправлена пользователю SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Стандартные псевдонимы */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* НОВОЕ: alias {}
|
||||
* СТАРОЕ: N/A
|
||||
* Позволяет установить такие псевдонимы на команды как /identify, /services и т.д.
|
||||
*
|
||||
* Синтаксис:
|
||||
* alias "имя" {
|
||||
* format "строка формата" {
|
||||
* target "кому";
|
||||
* type aliastype;
|
||||
* parameters "список параметров";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Вынесено отдельно, так как имеются отличия по сравнению с предыдущим типом псевдонимов и имеются очень большие отличия в
|
||||
* синтаксисе, так же используется для других целей, чем стандартные псевдонимы.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Директива alias::format является регулярным выражением. Под первый формат подпадает команда /identify,
|
||||
* если первым символом является #. Она посылает команду chanserv с параметрами IDENTIFY %1-.
|
||||
* Второй формат срабатывает, если в команде, посланной посредством /identify первый символ не #. Тогда ircd
|
||||
* передаёт эту команду nickserv с параметрами IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* alias::format::parameters сходно со скриптовыми языками. %N (где N число) представляет собой параметр, посланный командой
|
||||
* (в случае /identify). Если вы указали %N-, так вы определили все параметры, начиная от N до последнего в этой строке.
|
||||
* Вы можете так же указать %n, что будет означать ник пользователя.
|
||||
*/
|
||||
|
||||
/* Стандартные псевдонимы */
|
||||
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;
|
||||
};
|
||||
|
||||
/* Тут идёт пример использования "действительно псевдонима" (real command alias) */
|
||||
/* Данный пример - использование /GLINEBOT как /GLINE <параметры> 2d и т.д... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Боты запрещены на этом сервере, прочитайте ЧаВО на http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* НОВОЕ: tld {}
|
||||
* СТАРОЕ: T:Line
|
||||
* Устанавливает различные different motd и rules файлы
|
||||
* в зависимости от маски хостов клиентов.
|
||||
* Синтаксис:
|
||||
* tld {
|
||||
* mask (идент@хост);
|
||||
* motd "(файл motd)";
|
||||
* rules "(файл rules)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.ru;
|
||||
motd "ircd.motd.ru";
|
||||
rules "ircd.rules.ru";
|
||||
};
|
||||
|
||||
/* замечание: вы можете просто удалить блок выше, указанный для примера в случае, если есть в наличии
|
||||
* файлы motd/rules, используемые по умолчанию (ircd.motd, ircd.rules), которые будут использоваться всеми
|
||||
*/
|
||||
|
||||
/*
|
||||
* НОВОЕ: ban nick {}
|
||||
* СТАРОЕ: Q:Line
|
||||
* Банит ник, он не может быть использован.
|
||||
* Синтаксис:
|
||||
* ban nick {
|
||||
* mask "(ник для бана)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Зарезервирован для сервисов";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban ip {}
|
||||
* СТАРОЕ: Z:Line
|
||||
* Банит адрес ip при подключении в сеть.
|
||||
* Синтаксис:
|
||||
* ban ip { mask (адрес ip/маска хоста); reason "(причина)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Отключённый сервер";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban server {}
|
||||
* СТАРОЕ: Серверный Q:Line
|
||||
* Отключает сервер от попыток подключиться в сеть.
|
||||
* Если сервер подключается к удалённому серверу в сети, локальный сервер
|
||||
* будет отключён он сети.
|
||||
* Синтаксис:
|
||||
* ban server {
|
||||
* mask "(имя сервера)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Ламерский сервер :).";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban user {}
|
||||
* СТАРОЕ: K:Line
|
||||
* Пользователь с указанной маской не может подключиться к вашему серверу.
|
||||
* Синтаксис:
|
||||
* ban user { mask (маска хоста/адрес ip); reason "(причина)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *newiceman@*.irc.by;
|
||||
reason "Идиот!";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: ban realname {}
|
||||
* СТАРОЕ: n:Line
|
||||
* Банит по указанному пользователем реальному имени.
|
||||
* Синтаксис:
|
||||
* ban realname {
|
||||
* mask "(Реальное имя)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* ЗАМЕЧАНИЕ ДЛЯ ВСЕХ БАНОВ: они могут повторятся в случае необходимости уточнений!
|
||||
*
|
||||
* НОВОЕ: except ban {}
|
||||
* СТАРОЕ: E:Line
|
||||
* Предотвращает бан.
|
||||
* Синтаксис:
|
||||
* except ban { mask (идент@хост); };
|
||||
* Повторите except ban {} столько раз, сколько хотите использовать различные хосты.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* не банить wax */
|
||||
mask *wax@195.222.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: deny dcc {}
|
||||
* СТАРОЕ: dccdeny.conf
|
||||
* Используется чтобы запретить отправку dcc... служит для защиты от вирусов
|
||||
* Синтаксис:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "имя файла для блокироваки (т.е. *exe)";
|
||||
* reason "причина";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Вероятность вируса Sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: deny channel {}
|
||||
* СТАРОЕ: N/A (НОВОЕ)
|
||||
* Запрещает вход на указанные каналы.
|
||||
* Синтаксис:
|
||||
* deny channel {
|
||||
* channel "(канал)";
|
||||
* reason "причина";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez нелегален";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: vhost {}
|
||||
* СТАРОЕ: файл Vhost.conf
|
||||
* Устанавливает фейковый ip для не-операторов или операторы слишком
|
||||
* ленивые, чтобы сделать /sethost :P
|
||||
* Синтаксис:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (идент@хост, кому разрешено использовать);
|
||||
* };
|
||||
* login (логин);
|
||||
* password (пароль);
|
||||
* };
|
||||
* чтобы использовать vhost, наберите /vhost (логин) (пароль) в IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Вы так же можете подключить и другие конфигурационные файлы */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Конфигурация Сети */
|
||||
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"; */
|
||||
/* Ключи скрытия хостов должны быть одинаковы на всех серверах в сети.
|
||||
* Они использутся для генерации замаскированных хостов и должны держаться в секрете.
|
||||
* Ключи должен быть 3-мя случайными срочками с 5-100 символами в каждой
|
||||
* (10-20 символов должно быть достаточно) и должны содержать прописные (a-z),
|
||||
* заглавные (A-Z) буквы и цифрты (0-9) [смотрите пример первого ключа].
|
||||
* Подсказка: В *NIX системах вы можете запустить './unreal gencloak' в вашем шелле, чтобы получить
|
||||
* 3 строки, сгенерированные случайным образом.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"и ещё одна;
|
||||
"и ещё одна";
|
||||
};
|
||||
/* хост on-oper */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Специфическая конфигурация сервера */
|
||||
|
||||
set {
|
||||
kline-address "set.this.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Если желаете, вы можете включить проверку ident */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Указывает минимальное время, сколько был подключен пользователь,
|
||||
* прежде чем разрешать ему использовать сообщение QUIT.
|
||||
* Должно помочь в борьбе со спамом */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Устанавливает постоянное сообщение о выходе - значит, что локальный сервер не разрешит
|
||||
различные сообщения о выходе */
|
||||
/* static-quit "Клиент вышел"; */
|
||||
|
||||
/* Вы так же можете блокировать все сообщения о выходе из канала просто раскомментировав это и указать'yes'
|
||||
* или указать какой-нибудь другой текст (например: "Пока пока!"), который всегда будет использован как причина. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Позволяет сделать важные сообщения stats были использованы только операторами, используйте * для всех сообщений stats,
|
||||
* или закомментируйте, что позволит пользователям видеть все сообщения stats. Чтобы получить весь список, введите '/stats'.
|
||||
* Некоторые администраторы могут убрать 'kGs' для того, чтобы разрешить обычным пользователям видеть список
|
||||
* klines, glines и shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Тротлинг: данный пример устанавливает предел в 3 попытки подключения в 60 секунд (для одного хоста). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Защита от флуда */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 изменения ника в 60 секунд (по умолчанию) */
|
||||
};
|
||||
|
||||
/* Фильтр спама */
|
||||
spamfilter {
|
||||
ban-time 1d; /* длительность по умолчанию бана *line, установленного spamfilter */
|
||||
ban-reason "Спам/Реклама"; /* причина по умолчанию */
|
||||
virus-help-channel "#help"; /* канал при использовании действия 'viruschan' */
|
||||
/* except "#help"; канал для исключения действия фильтра */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Проблемы или нуждаетесь в более подробной информации?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- содержит 80% ваших вопросов!
|
||||
* 3) Если у вас до сих пор остались проблемы, зайдите на irc.ircsystems.net #unreal-support,
|
||||
* но мы требуем, чтобы вы ПРЕЖДЕ ПРОЧИТАЛИ ДОКУМЕНТАЦИЮ и ЧаВО!
|
||||
*/
|
||||
@@ -0,0 +1,787 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Türkçe çeviri: Mustafa "Ironic" Cakmak (ironic@unrealircd.org)
|
||||
*
|
||||
* 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.
|
||||
* Neyse şimdi bunun üstesinden gelme zamanı. Başlangıçta zor gelebilir, fakat
|
||||
* okuyarak ve biraz pratikle anlayacaksınız.
|
||||
*
|
||||
* Yapmanız gereken bu dosyayı ana dizine atıp, 'unrealircd.conf' olarak adlandırmak.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Lütfen doc/unreal32docs.tk.html dosyasını okuyunuz! Çevrimiçi sürümüne ulaşabileceğiniz adres:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.tk.html
|
||||
* Yapılandırma dosyası hakkında bir çok bilgi içerir: Her blok,
|
||||
* değişken vs.. hakkında bilgi verir.
|
||||
* 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!
|
||||
*/
|
||||
|
||||
/* Açıklama satırı çeşitleri */
|
||||
#Açıklama satırı 1 (Shell tipi)
|
||||
// Açıklama satırı 2 (C++ tipi)
|
||||
/* Açıklama satırı satırı 3 (C tipi) */
|
||||
#Bu satırlar ircd tarafından göz ardı edilecektir.
|
||||
|
||||
/*
|
||||
* UnrealIRCd modülleri destekler, Bunların bazılarının yüklenmesi gereklidir.
|
||||
* En azından komutlar modülü(commands) ve gizleme modülü(cloaking)'ne ihtiyacınız vardır.
|
||||
*/
|
||||
|
||||
/* *NIX için, sonraki 2 satırın açıklama satıracını(//) kaldırın: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows için, sonraki 2 satırın açıklama satıracını(//) kaldırın: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Diğer yapılandırma dosyalarınıda dahil edebilirsiniz.
|
||||
* help.conf bütün /helpop metinlerini içerir. +G kipi için badwords.*.conf
|
||||
* dosyaları bütün kötü kelime girdilerini içerir...
|
||||
* spamfilter.conf güncel trojanlar için uygun kuralları içerir.
|
||||
* Muhtemelen bunları eklemek isteyeceksiniz:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* YENI: me {}
|
||||
* ESKI: M:Line
|
||||
* me {} bu sunucu için isim, tanımlama ve unreal sunucu sayısalını(numeric) belirler.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* me {
|
||||
* name "sunucu.ismi";
|
||||
* info "Sunucu tanımlaması";
|
||||
* numeric (sunucu sayısalı*);
|
||||
* };
|
||||
* Eğer link varsa, bu sayısal ağ üzerinde varolan herhangi bir server tarafından kullanılmamalıdır.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: admin {}
|
||||
* ESKI: A:Line
|
||||
* Admin sunucu yöneticisine dair bilgi verir. Dilediğiniz kadar
|
||||
* satırı admin { altına yerleştirebilirsiniz.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* admin {
|
||||
* "ilk satır";
|
||||
* "ikinci satır";
|
||||
* [vs]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: class {}
|
||||
* ESKI: Y:line (eskisi karışıktı)
|
||||
* Bu sınıflar için ayarları belirtir. Bir sınıf bağlantılar için bir grup
|
||||
* ayarıdır. Örneğin, sunucu bağlantılarını, bir istemci sınıfı
|
||||
* yerine, sunucu sınıfına yönlendirirsiniz. Sözdizimi aşağıdaki gibidir:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (ne sıklıkta saniye içerisinde kullanıcı veya sunucunun ping edileceği);
|
||||
* maxclients (bu sınıf için kaç bağlantı);
|
||||
* sendq (bir bağlantıdan gönderilecek en yüksek dizi);
|
||||
* recvq (bir bağlantıdan alınacak en yüksek dizi [flood kontrolü]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Link edebileceğimiz en yüksek sunucu sayısı */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Her bağlantı girişimi arasında ne kadar saniye olacağı */
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: allow {}
|
||||
* ESKI: I:Line
|
||||
* Bağlantı izinlerini belirtir..
|
||||
* Temel olarak istemcilerin sunucuya bağlanabilmesi için herhangi bir kontrol
|
||||
* ve/veya bir şifre belirtmenize olanak sağlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* allow {
|
||||
* ip (izin verilecek ip maskesi);
|
||||
* hostname (host maskesi);
|
||||
* class (gönderilecek sınıf [class {} bloğuna göz atınız]);
|
||||
* password "(şifre)"; (isteğe bağlı)
|
||||
* maxperip (ip başına kabul edilecek bağlantı sayısı); (isteğe bağlı)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Şifrelendirilmiş allow bloğu */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: allow channel {}
|
||||
* ESKI: chrestrict
|
||||
* Bir kullanıcının bir kanala girmesine olanak sağlar...
|
||||
* yasak kanal bloğundaki hariçlik gibi.
|
||||
* Sözdizimi:
|
||||
* allow channel {
|
||||
* channel "kanal ismi";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: oper {}
|
||||
* ESKI: O:Line
|
||||
* Bir IRC Operatörü tanımlamanızı sağlar.
|
||||
* IRC Operatörleri sunucuya uygun bir biçimde bağlanılmasını ve
|
||||
* makullüğü sağlarlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* oper (login) {
|
||||
* class (sınıf ismini ekleyin, eğer istemciden farklıysa, yeni sınıfı ekleyin);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flaglar buraya*);
|
||||
* };
|
||||
* VEYA
|
||||
* flags "OAaRD gibi eski tip flaglar";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Oper flaglarının listesine doc/unreal32docs.html#operblock dan göz atabilirsiniz.
|
||||
* [Okumanız şiddetle önerilir]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: listen {}
|
||||
* ESKI: P:Line
|
||||
* İstemci ve sunucuların sunucuya bağlanmasını sağlamak için ircd tarafından
|
||||
* kullanılacak bir port tanımlamanızı sağlar .
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* listen (ip adresi):(port numarası)
|
||||
* {
|
||||
* options {
|
||||
* (tercihler buraya);
|
||||
* };
|
||||
* };
|
||||
* veya sade bir biçimde
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* UYARI: ipv6 ipleri için (3ffe:b80:2:51d::2 vb), [ip]:port; kullanınız
|
||||
*
|
||||
* Böylede çalışır.
|
||||
*/
|
||||
|
||||
/* listen için tercihler:
|
||||
ESKI | YENI
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* SSL PORTLARI İÇİN NOT: SSL portları oldukça standart dışıdır,
|
||||
* ayrıca pek çok yüksek-SSL portları için bazı insanlar 994 te çalıştırın
|
||||
* der çünkü bu resmi SSL portudur..Fakat bu root erişimi gerektirir.Yanı sıra,
|
||||
* 194 resmi irc portu olarak bunun üzerinde çalışan ircd
|
||||
* hiç gördünüz mü?
|
||||
* Böyle olunca bizim önerimiz 6697 portunu SSL için kullanmanız, bu hayli
|
||||
* sunucuda kullanılıyor ve örnek için StunTour tarafından kabul görmüş durumda.
|
||||
* İstediğiniz kadar SSL port açmakta özgürsünüz, fakat 6697 yi kullanmanız
|
||||
* dünya standartı haline gelmesine biraz daha yardım edecektir. ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOT: Eğer bir çok IP barındıran bir IRCd Shell kullanıyorsanız logunuzda olası
|
||||
* 'Address already in use' alırsınız ve ircd başlamaz.Bunun anlamı '*' yerine
|
||||
* belirli bir IP adresi kullanmanız gerektiğidir.Yani örneğin:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Açıkça, IP yi önceden koyduğunuz IP ile değiştirin.
|
||||
*/
|
||||
|
||||
/*
|
||||
* YENI: link {}
|
||||
* ESKI: C/N:Lines
|
||||
* Bir sunucu bağlantısı için bir onay tanımlamanızı sağlar.
|
||||
* NOT: HER IKI SUNUCUDA BAĞLANTI IÇIN TAM OLARAK DÜZGÜN BİR LINK {} GEREĞİ DUYAR!
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* link (sunucu ismi)
|
||||
* {
|
||||
* username (username, * da uygundur);
|
||||
* hostname (ip adresi/hostmask);
|
||||
* bind-ip (Bağlanırken hangi IP ile bağlanacağı, veya *);
|
||||
* port (bağlantı portu, eğer herhangi biriyse);
|
||||
* hub (Bu bir hub ise, * çalışır, veya sunucu maskeleri bunu sağlar);
|
||||
* [veya leaf *;]
|
||||
* password-connect "(gönderilecek şifre)";
|
||||
* password-receive "(almamız gereken şifre)";
|
||||
* class (sunucuların yönetileceği sınıf);
|
||||
* options {
|
||||
* (tercihler buraya*);
|
||||
* };
|
||||
* /* 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.
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
tercihler:
|
||||
YENI | ESKI
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Note: Servisler link edilirken autoconnect kullanmamalısınız.*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* YENI: ulines {}
|
||||
* ESKI: U:Line
|
||||
* U-lines satırları sunuculara daha güç/komut kazandırır.Bu servis/istatistik
|
||||
* sunucuları içindir ve ASLA normal UnrealIRCd sunucuları için değildir.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ulines {
|
||||
* (uline olacak sunucu);
|
||||
* (uline olacak sunucu);
|
||||
* [vb]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: drpass {}
|
||||
* ESKI: X:Line
|
||||
* Bu blok /die ve /restart için şifre tanımlamanızı sağlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* drpass {
|
||||
* restart "(yeniden başlatmak için şfire)";
|
||||
* die "(sona erdirmek için şifre)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: log {} ESKI: N/A Ircd e logun ne ve nerede olacağını bildirir. Dilediğiniz
|
||||
* kadara sahip olabilirsiniz.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Eğer 2 MB yi geçerse log dosyasını sil ve yenisini aç, eğer her zaman aynı log
|
||||
dosyasını kullanmak istiyorsanız karışmayın */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: alias {}
|
||||
* ESKI: N/A
|
||||
* /nickserv, /chanserv gibi komutlar hazırlamanızı sağlar.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Sözdizimi:
|
||||
* alias "isim" {
|
||||
* target "gidecek nokta";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOT: Aynı zamanda önceden tanımlanmış alias dosyası dahil edebilirsiniz, doc/unreal32docs.html bölüm 2.9]
|
||||
*/
|
||||
|
||||
// Bu nokta /NickServ komutu ile set::services-server server üzerinden bağlanmış olan NickServ e döner.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Eğer komutla noktanın aynı olmasını istiyorsanız nick girişini gözardı edebilirsiniz
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Bu nokta /statserv komutu ile set::stats-server server üzerinden bağlanmış olan StatServ e döner.
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Bu nokta /superbot komutu ile kullanıcı SuperBot a döner
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standart aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ESKI: alias {}
|
||||
* YENI: N/A
|
||||
* Bu /identify, /services gibi komutlar hazırlamanızı sağlar.
|
||||
*
|
||||
* Sözdizimi:
|
||||
* alias "isim" {
|
||||
* format "format satırı" {
|
||||
* target "gidecek nokta";
|
||||
* type aliastype;
|
||||
* parameters "gönderilecek parametreler";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Bu ayrı bir şekilde gösterilir.Çünkü bir önceki direktif ile aynı isme sahip olsa bile benzer bir
|
||||
* fonksiyon sağlaması ve standart aliaseslerin çalışmasına dayanması ile birlikte çok farklı sözdizimine sahip olması.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* alias::format direktifi bir düzenli ifadedir. İlk biçim /identify komutundan sonraki ilk karakter bir # ise eşleşir.
|
||||
* Ardından IDENTIFY %1- ile chanserv aliases e döner.
|
||||
* İkinci biçim ise /identify komutundan sonraki ilk karakterin bir # işareti ile eşleşmeme durumunu belirtir.Ardından
|
||||
* IDENTIFY %1- ile nickserv aliases e döner.
|
||||
*/
|
||||
|
||||
/* alias::format::parameters betik diline benzerdir. %N (N bir numaradır) komuta gönderilecek
|
||||
* parametreyi temsil eder.(bu durumda /identify). Eğer bir %N- belirtirseniz bu N den sonraki
|
||||
* bütün parametleri içerir. Ayrıca kullanıcı nickname inin yerine %n kullanabilirsiniz.
|
||||
*/
|
||||
|
||||
/* Standart aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Bu gerçek komut aliası için bir örnektir */
|
||||
/* Bu eşlem /GLINEBOT ile /GLINE <parametre> 2d vb... şeklindedir */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bu sunucuda botlara izin verilmemektedir, lütfen http://www.example.com/faq/123 sayfasından sss ı okuyunuz.";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ESKI: tld {}
|
||||
* YENI: T:Line
|
||||
* Bu istemcilerin hostmaskesine bağlı olarak farklı
|
||||
* motd ve rules dosyaları belirler.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd dosyası)";
|
||||
* rules "(rules dosyası)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* not: Bütün istemciler için aynı motd/rules (ircd.motd, ircd.rules) dosyaları
|
||||
* görüntületmek istiyorsanız sadece yukarıdaki örnek bloğu silebilirsiniz.
|
||||
*/
|
||||
|
||||
/*
|
||||
* YENI: ban nick {}
|
||||
* ESKI: Q:Line
|
||||
* Nir nickname yasaklar, bundan doalyı kullanılamaz.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ban nick {
|
||||
* mask "(yasaklanak nick)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Servisler için ayrılmıştır";
|
||||
};
|
||||
/*
|
||||
* YENI: ban ip {}
|
||||
* ESKI: Z:Line
|
||||
* Ağa bağlanan bir ip yi yasaklar.
|
||||
* Sözdizimi:
|
||||
* ban ip { mask (ip adresi/hostmask); reason "(neden)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Bağlı olmayan sunucu";
|
||||
};
|
||||
/*
|
||||
* YENI: ban server {}
|
||||
* ESKI: Server Q:Line
|
||||
* Ağa bir sunucunun bağlanmasını devredışı kılar.
|
||||
* eğer sunucu uzak bir sunucuya bağlanmışsa, yerel sunucunun
|
||||
* ağdan bağlantısı kesilir.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ban server {
|
||||
* mask "(sunucu ismi)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Defol buradan.";
|
||||
};
|
||||
/*
|
||||
* YENI: ban user {}
|
||||
* ESKI: K:Line
|
||||
* Kullanıcının belirtilen kesin bir mask ile sunucuya bağlanmasını engeller.
|
||||
* Sözdizimi:
|
||||
* ban user { mask (hostmask/ip adresi); reason "(neden)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: ban realname {}
|
||||
* ESKI: n:Line
|
||||
* Kullanılan kesin bir realname i yasaklar.
|
||||
* Sözdizimi:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* BUTUN BANLAR İÇİN NOT, ilave girdiler için tekrarlanabilir!
|
||||
*
|
||||
* YENI: except ban {}
|
||||
* ESKI: E:Line
|
||||
* Bu yasaklanmamanızı sağlar.
|
||||
* Sözdizimi:
|
||||
* except ban { mask (ident@host); };
|
||||
* Farklı hostlar için istediğiniz kadar except ban {}
|
||||
* bloğunu tekrarlayın.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* stskeeps i yasaklama*/
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: deny dcc {}
|
||||
* ESKI: dccdeny.conf
|
||||
* Dcc gönderimlerini bloklamak için kullanılır..Virüsler
|
||||
* dursa iyi olur.
|
||||
* Sözdizimi:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "bloklanacak dosya (örnek, *exe)";
|
||||
* reason "neden";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Muhtemek Sub7 Virüsü";
|
||||
};
|
||||
|
||||
/*
|
||||
* ESKI: deny channel {}
|
||||
* YENI: N/A (NEW)
|
||||
* Girilen kanalları bloklar.
|
||||
* Sözdizimi:
|
||||
* deny channel {
|
||||
* channel "(kanal)";
|
||||
* reason "neden";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez yasaktır";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: vhost {}
|
||||
* ESKI: Vhost.conf file
|
||||
* Oper olmayan kullanıcılar için sahte ip hazırlar, veya
|
||||
* tembellik yaparak /sethost kullanmayan operler içindir :P
|
||||
* Sözdizimi:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (kullanılacak ident@host);
|
||||
* };
|
||||
* login (login ismi);
|
||||
* password (şifre);
|
||||
* };
|
||||
* ardından bu vhostu kullanmak için, IRC de /vhost (login) (şifre) yapın
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Diğer yapılandırma dosyalarını dahil edebilirsiniz */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Ağ yapılandırması */
|
||||
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"; */
|
||||
/* Gizleme anahtarları ağ üzerindeki bütün sunucularda aynı olmalı.
|
||||
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
|
||||
* Anahtarlar 5-100 karakterlik (10-20 karakter yeterli) 3 rastgele diziden oluşmalı ve
|
||||
* küçük harf (a-z), büyük harf (A-Z) ve rakamlardan (0-9) meydana gelmelidirler.. [ilk örneğe bakınız].
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Sunucunun kendine özgü yapılandırması */
|
||||
|
||||
set {
|
||||
kline-address "bunu.email.olarak.ayarlayın";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Eğer isterseniz identd kontrolünü buradan aktif edebilirsiniz */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* /quit mesajının görüntülenebilmesi için, bir kullanıcının sunucuya bağlı kalması gereken süre
|
||||
* Umarız spamleri durdurmak için yardım eder */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Bütün çıkışlarda değişmeyen bir çıkış mesajı yaratır - anlamı yerel sunucuda
|
||||
ısmarlama çıkışlara izin verilmemesidir */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Ayrıca bu seçeneğin açıklama satırlarını kaldırıp 'yes' diyerek bütün kanaldan ayrılma mesajlarını,
|
||||
* bloklamış veya belirli bir diğer metini bunun için kullanabilirsiniz. (örnek: "Bye bye!") Her zaman kanaldan
|
||||
* ayrılma mesajı olarak kullanılır */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Operlerin sadece belirli istatistikleri görüntüleyebilmesini sağlar, bütün istatistikler için * kullanın,
|
||||
* bütün istatistikleri görebilmeleri için gözardı edin. Full liste için '/stats' yapınız.
|
||||
* Bazı yöneticiler normal kullanıcıların 'kGs' istatistiklerine ulaşmasını istemeyebilir.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Bu örnek bir hosta 60 saniye içerisine yanlızca 3 bağlantı imkanı sağlar. */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood koruması */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* Her 60 saniyede 3 nick değişikliği (varsayılan) */
|
||||
};
|
||||
|
||||
/* Spam filtresi */
|
||||
spamfilter {
|
||||
ban-time 1d; /* spamfilter ile bir *line yasağının varsayılan devaö süresi */
|
||||
ban-reason "Spam/Advertising"; /* varsayılan neden */
|
||||
virus-help-channel "#help"; /* 'viruschan' eylemi için kullanılacak kanal */
|
||||
/* except "#help"; spam filtreden muaf tutulacak kanal */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Sorununuz veya daha fazla yardımamı ihtiyacınız var?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- sorularınızın %80 ini kapsamakta!
|
||||
* 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!
|
||||
*/
|
||||
+1417
File diff suppressed because it is too large
Load Diff
+1398
File diff suppressed because it is too large
Load Diff
+1485
File diff suppressed because it is too large
Load Diff
+1376
File diff suppressed because it is too large
Load Diff
+17
-4
@@ -1,4 +1,6 @@
|
||||
Numeric 005 Documentation (c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
Numeric 005 Documentation
|
||||
(c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(c) 2005-2009 syzop (Bram Matthys) [syzop@vulnscan.org]
|
||||
|
||||
Numeric 005 allows the server to inform the client of any protocol specific features in the
|
||||
IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally
|
||||
@@ -22,9 +24,9 @@ impractical and technically impossible to correctly implement due to existing li
|
||||
in the standard. Therefore, this token is not currently supported.
|
||||
|
||||
Unreal does additionally provide a few tokens which are not specified in the standard, these
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, and CMDS. Unreal also maintains a few
|
||||
legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure compatibility until the ISupport
|
||||
standard is more widely accepted by clients.
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, CMDS, NAMESX, UHNAMES, and WATCHOPTS.
|
||||
Unreal also maintains a few legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure
|
||||
compatibility until the ISupport standard is more widely accepted by clients.
|
||||
|
||||
Token Value Default Value Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -165,3 +167,14 @@ NAMESX none none Indicates that extend
|
||||
all channel rights in a NAMES reply
|
||||
instead of only the highest right
|
||||
(eg: @+Person instead of @Person).
|
||||
|
||||
UHNAMES none none Indicates that (other) extended
|
||||
/NAMES info is available on the
|
||||
server. If the client sends
|
||||
"PROTOCTL UHNAMES" then the server
|
||||
will, from then on, send user@host
|
||||
information in a NAMES reply
|
||||
(eg: @nick!ident@hostname).
|
||||
|
||||
WATCHOPTS flags A WATCH options supported. 'A' means
|
||||
Away Notification is available.
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
<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>
|
||||
<ul>
|
||||
<li>2309 - Unreal 3.2.6</li>
|
||||
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
||||
<li>2308 - Unreal 3.2.5</li>
|
||||
<li>2307 - Unreal 3.2.4</li>
|
||||
<li>2306 - Unreal 3.2.3</li>
|
||||
|
||||
@@ -2,6 +2,7 @@ VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2309 3.2.6, 3.2.7, 3.2.8
|
||||
2308 3.2.5
|
||||
2307 3.2.4
|
||||
2306 3.2.3
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
NOTE: For 3.3* we are not maintaining translated documents until reaching alpha or
|
||||
beta1 status.
|
||||
|
||||
==[ Translations ]============================================================
|
||||
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
|
||||
+102
-31
@@ -24,17 +24,18 @@
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Version: 3.2.5 </font><br>
|
||||
<b>Letztes Update dieses Handbuchs:</b> 2006-06-15</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<font size="4">Version: 3.2.8</font><br>
|
||||
<b>Letztes Update dieses Handbuchs:</b> 2009-01-03</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<font face="Helvetica,Arial" size="-1">/
|
||||
aquanight / WolfSage</font><br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Dokumentation</b><b>:</b> CKnight^ / Syzop<br>
|
||||
<b>Deutsche Übersetzung:</b> Stylus740 (irc.smart-irc.net)<br>
|
||||
<b>Deutsche Übersetzung:</b> Stylus740 (irc.insiderZ.de)<br>
|
||||
<p>Um diese Dokumentation zu lesen, ist einer der unten aufgeführten
|
||||
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>
|
||||
@@ -208,7 +209,7 @@ Bug gemeldet wird!</p></div>
|
||||
<li><b>*NIX Versionen:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9,10)
|
||||
@@ -285,6 +286,10 @@ example.conf f
|
||||
GEHEIM gehalten werden. Wenn jemand
|
||||
diese drei Keys kennt, kann er den geschützten Host erkennen und den realen
|
||||
Host ermitteln (was dem Usermodus +x sinnlos macht).</p>
|
||||
<p>Tipp: Wenn man auf *NIX Systemen arbeitet und Cloak Keys neu erstellt werden
|
||||
müssen, kann man in der Shell eingeben: '<font face="Courier New">./unreal
|
||||
gencloak</font>' und erhält als Ausgabe 3 zufällig erzeugte Strings, die man
|
||||
verwenden kann.</p>
|
||||
</div>
|
||||
<p><font size="+2"><b><a name="feature_modules">3.2 - Module</a></b></font></p><div class="desc">
|
||||
<p>UnrealIRCd unterstützt Module, was sehr nützlich
|
||||
@@ -990,6 +995,24 @@ die *lines/shuns (Default: 'Spam/advertising'). Mehrere Worte sind durch Undersc
|
||||
Channels, in den bei der Action 'viruschan' gejoined wird (Default: #help)<br>
|
||||
<b>set::spamfilter::virus-help-channel-deny</b> ermöglicht es, normale Joins in
|
||||
den virus-help-channel zu blockieren (Default: no)
|
||||
<p>
|
||||
<font size="+1"><b><a name="feature_spamfilter_slow">Erkennung langsamer
|
||||
Spamfilter</a></b></font><br>
|
||||
Ein Spamfilter Ausdruck (regex) kann einen IRCd beträchtlich verlangsamen. Das
|
||||
hängt davon ab, welcher Ausdruck verwendet wird (und wie dieser Ausdruck
|
||||
ausgewertet wird). Einige Spamfilter Ausdrücke sind sehr schnell und UnrealIRCd
|
||||
kann Tausende von ihnen pro Sekunde verarbeiten. Andere können extrem langsam
|
||||
sein und mehrere Sekunden für die Ausführung benötigen und dadurch den IRCd
|
||||
regelrecht einfrieren..<br>
|
||||
Zur Unterstützung gegen dieses Problem stellt Unreal eine Erkennung langsamer
|
||||
Spamfilter ('Slow Spamfilter Detection' bereit: Für jeden Spamfilter wird bei jeder Ausführung die hierzu benötigte
|
||||
Zeit überprüft. Wird ein
|
||||
bestimmter Grenzwert erreicht, warnt der IRCd oder entfernt einfach diesen Spamfilter.<br>
|
||||
Warnungen werden durch <b>set::spamfilter::slowdetect-warn</b> konfiguriert (Default:
|
||||
250ms) und die automatische Löschung durch <b>set::spamfilter::slowdetect-fatal</b>
|
||||
(Default: 500ms). Man kann beide Werte auf 0 setzen um die Erkennung langsamer
|
||||
Spamfilter zu deaktivieren.<br>
|
||||
Dieses Feature steht unter Windows derzeit noch nicht zur Verfügung.
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_cidr">3.15 - CIDR</a></b></font></p><div class="desc">
|
||||
@@ -998,7 +1021,7 @@ erm
|
||||
unter Verwendung von CIDR vergeben. Daher ist es möglich unter Verwendung eines
|
||||
CIDR basierten Banns auf einfache Weise ganze ISPs zu sperren. Unreal
|
||||
unterstützt CIDR sowohl für IPv4 als auch für IPv6. CIDR Masken können
|
||||
benutzt werden bei: allow::ip, ban user::mask, ban ip::mask, except ban::mask, except
|
||||
benutzt werden bei: allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask, except
|
||||
throttle::mask, und except tkl::mask (für gzline, gline, and shun). Zusätzlich
|
||||
kann CIDR bei /kline, /gline, /zline, /gzline, und /shun benutzt werden. Unreal
|
||||
verwendet die Standard Syntax von IP/bits, z.B. 127.0.0.0/8 (passt auf 127.0.0.0 - 127.255.255.255),
|
||||
@@ -2025,7 +2048,7 @@ bekannt als T:Line)</font><div class="desc">
|
||||
channel <channel-name>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre>
|
||||
<p>Mit dem TLD Block kann man eine motd (Messageoftheday), rules und channels für
|
||||
User basierend auf deren Host festlegen. Das ist nützlich, falls man
|
||||
@@ -2106,7 +2129,7 @@ bekannt als Z:Line)</font><div class="desc">
|
||||
};</pre>
|
||||
<p>Der Ban IP Block verhindert das Verbinden von bestimmten IP Adressen her zum
|
||||
Server. Das gilt sowohl für Verbindungsversuche von Usern als auch von Servern.<br>
|
||||
<b>ban::mask</b> ist eine IP, die Wildcards enthalten kann<br>
|
||||
<b>ban::mask</b> ist eine IP, die Wildcards enthalten kann.<br>
|
||||
<b>ban::reason</b> ist der Grund, warum der Bann eingetragen wurde.<br>
|
||||
Da dieser Bann auch Server betreffen kann, sollte man beim Eintrag von IP
|
||||
Adressen sehr vorsichtig sein.</p>
|
||||
@@ -2179,7 +2202,7 @@ Maske kann Wildcards enthalten.<br>
|
||||
<b>ban::reason</b> legt den Grund fest, der dem User angezeigt wird.<br>
|
||||
<b>ban::action</b> kann ebenfalls festgelegt werden. Dabei ist der Default auf
|
||||
"kill". <i>tempshun</i> setzt ein shun auf die Verbindung des Users
|
||||
und arbeitet effektiv gegen zombies und/oder Bots mit dynamischer IP, weil sie
|
||||
und arbeitet effektiv gegen Zombies und/oder Bots mit dynamischer IP, weil sie
|
||||
unschuldige User nicht beeinträchtigen. <i>shun/kline/zline/gzline</i> setzen
|
||||
einen Bann auf die IP (*@IPADDR). Die Dauer dieser Banns kann mit 'set::ban-version-tkl-time'
|
||||
konfiguriert werden und beträgt per Default 1 Tag.</p>
|
||||
@@ -2324,7 +2347,7 @@ angegebenen abgelehnt.<br>
|
||||
haben oder nicht haben darf. Die Flags müssen direkt nacheinander ohne
|
||||
Zwischenräume angegeben sein. Wird einem Zeichen ein "!"
|
||||
vorangestellt, darf der Server dieses Flag nicht haben, steht kein "!"
|
||||
davor, so muss der Server dieses Flag haben, um vom Linken ausgeschlossen zu
|
||||
davor, muss der Server dieses Flag haben, um vom Linken ausgeschlossen zu
|
||||
sein.</p>
|
||||
</div>
|
||||
<p><font class="block_section"><a name="denylinkblock">4.24 - </a> </font><a name="denylinkblock"><font class="block_name">Deny Link Block</font>
|
||||
@@ -2608,19 +2631,23 @@ wie bei "password-connect".
|
||||
</p>
|
||||
<p><b>hub oder leaf</b><br>
|
||||
Zu einem hub sind mehrere Server verbunden, ein leaf hat immer nur eine
|
||||
Verbindung. Ein Server ist entweder ein hub oder ein leaf - die beiden Optionen
|
||||
können nicht kombiniert werden.
|
||||
Verbindung. Ein Server ist solange ein leaf, wie es keine hub Anweisung gibt.
|
||||
Ebenso ist er ein leaf, wenn in der Anweisung lediglich * definiert ist oder die
|
||||
leaf Tiefe (Anzahl der hops) 1 ist.
|
||||
</p>
|
||||
<p><b>hub</b> (optional)<br>
|
||||
Der Wert ist eine Maske, auf welche Server dieser hub connecten darf (z.B.: *.my.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (optional)<br>
|
||||
Der Wert ist eine Maske, dass dieser Server wie ein leaf in Richtung zum eigenen
|
||||
Server fungiert.
|
||||
Dieser Wert gibt an, zu welchen Servern dieser Hub <b>nicht</b> verbindet. Hier
|
||||
einen * anzugeben ist das selbe, wie keine hub Anweisung zu haben.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (optional)<br>
|
||||
Falls dies angegeben ist, sollte auch "leaf" angegeben sein. Angegeben
|
||||
wird die Tiefe (Anzahl der hops) die dieser Server darunter haben darf.
|
||||
Dieser Wert gibt die Tiefe (Anzahl der hops)an, die dieser Server darunter haben darf.
|
||||
Beispielsweise bedeutet 1, dass der Server keine Links hat (ist ein leaf), 2
|
||||
bedeutet, es kann zu Servern gelinkt werden, aber diese können zu keinem
|
||||
anderen linken (dieser Hub kann also nur zu leafs linken). Ein Wert von 0
|
||||
bedeutet, dass es kein Limit gibt und das ist auch Default.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
Die Klasse, in die der Server kommt, oft ist eine eigene Klasse für Server
|
||||
@@ -2964,6 +2991,10 @@ eingeschr
|
||||
Beispielsweise kann man +G in 'modes-on-connect' setzen und G in 'restrict-usermodes',
|
||||
wodurch erreicht wird, dass sämtliche User +G erhalten, aber kein -G
|
||||
anwenden können.</p>
|
||||
<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
|
||||
ist entweder 'op' (Channel Operator, Default) oder 'none', wenn kein Level
|
||||
gegeben werden soll.</p>
|
||||
<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
|
||||
eingeschränkt. (kein + oder - angeben!).<br>
|
||||
@@ -3089,12 +3120,13 @@ Oper Zugriff geloggt wurde.</p>
|
||||
Ein Wert, der angibt, innerhalb welcher Zeit ein DNS Server zu antworten hat, bevor
|
||||
"timeout" gemeldet wird. Der Zeitwert ist ein numerischer String, in
|
||||
dem 'd' Tage bedeutet, 'h' Sunden, 'm' Minuten und 's' Sekunden. Beispiel: '1d2h3m'
|
||||
bedeutet 1 Tag, 2 Stunden, 3 Minuten.</p>
|
||||
bedeutet 1 Tag, 2 Stunden, 3 Minuten. (NICHT IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
Ein Zahlenwert, durch den festgelegt wird, wie oft versucht werden soll, die DNS
|
||||
aufzulösen, bevor ein Fehler gemeldet wird.</p>
|
||||
aufzulösen, bevor ein Fehler gemeldet wird. (NICHT IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Gibt den Hostnamen des Servers an, der zur DNS Namensauflösungen dient.</p>
|
||||
Gibt den Hostnamen des Servers an, der zur DNS Namensauflösungen dient. (NICHT
|
||||
IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
Gibt den Namen des Netzwerks an, in dem der Server läuft (also den Namen des
|
||||
irc Netzes!) Dieser Eintrag sollte auf allen Servern im Netzwerk absolut
|
||||
@@ -3159,6 +3191,17 @@ Gibt den Dateinamen an, wo das SSL Zertifikat des Servers liegt.</p>
|
||||
Gibt den Dateinamen an, wo der private SSL Key des Servers liegt.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <filename>;</font><br>
|
||||
Gibt den Dateinamen der Zertifikate der vertrauten CAs an.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <cipherlist>;</font><br>
|
||||
Legt fest, welche Verschlüsselungen erlaubt sind, was per Default für OpenSSL
|
||||
eingestellt ist. Siehe <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">http://www.openssl.org/docs/apps/ciphers.html</a>
|
||||
wie eine Liste von Verschlüsselungen erstellt wird (englische Seite,
|
||||
nicht übersetzt!).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <value>;</font><br>
|
||||
Legt fest, wieviele Bytes bei einer SSL Session neu ausgehandelt werden sollen (z.B.:
|
||||
20m für 20 Megabyte).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <timevalue>;</font><br>
|
||||
Legt fest, nach welcher Zeit eine SSL Session neu ausgehandelt werden soll (z.B.:
|
||||
1h für 1 Stunde).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Stellt ein, dass Clients ohne Zertifikat nicht connecten können.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -3221,10 +3264,21 @@ joinen.</p>
|
||||
<b>set::spamfilter::except <target(s)></b><br>
|
||||
Diese Ziele werden vom Spamfilter ausgenommen (es wird also keine Aktion
|
||||
durchgeführt). Es sind einzelne Ziele oder eine durch Kommata getrennte Liste
|
||||
möglich. Beispiel: except "#help,#spamreport"</p> <p><b>set::<font face="Helvetica,Arial" size="-1">check-target-nick-bans</font> <yes|no></b><br>
|
||||
möglich. Beispiel: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <value></font><br>
|
||||
Wenn ein Spamfilter zur Ausführung länger als der hier festgelegte Wert dauert
|
||||
(in Millisekunden, 1000ms = 1 Sekunde), wird eine Warnung per Notice an
|
||||
alle Opers versandt. (Default: 250). Siehe auch <a href="#feature_spamfilter_slow">Erkennung
|
||||
langsamer Spamfilter</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <value></font><br>
|
||||
Wenn ein Spamfilter zur Ausführung länger als der hier festgelegte Wert dauert
|
||||
(in Millisekunden, 1000ms = 1 Sekunde), wird er gelöscht50o). Siehe auch <a href="#feature_spamfilter_slow">Erkennung
|
||||
langsamer Spamfilter</a>.</p>
|
||||
<p><b>set::check-target-nick-bans <yes|no></b><br>
|
||||
Wann immer ein User seinen Nick ändert, wird überprüft, ob der NEUE Nick zu
|
||||
bannen wäre. Ist das der Fall, wird der Nickwechsel nicht erlaubt. Default ist
|
||||
'yes'.</p> <p><b>set::timesynch::enabled<yes|no></b><br>
|
||||
'yes'.</p>
|
||||
<p><b>set::timesynch::enabled<yes|no></b><br>
|
||||
Aktiviert oder deaktiviert die Zeitsynchronisation beim Start des IRCd. Default
|
||||
ist 'yes'.</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
@@ -3237,7 +3291,19 @@ Antwort gewinnt.</p>
|
||||
Maximale Zeit, die auf eine Zeitserverantwort gewartet wird. Möglich ist ein
|
||||
Wert von 1 bis 5, mehr ist nicht möglich, weil das Ergebnis sonst zu ungenau
|
||||
wäre. Default Einstellung ist hier 3 und normalerweise sollte es keinen Grund
|
||||
geben, dies zu ändern. </div>
|
||||
geben, dies zu ändern.
|
||||
<p><font class="set">set::pingpong-warning<yes|no></font><br>
|
||||
Die Versuche von Name-Servern einen falschen Hostnamen zurückzuliefern, werden
|
||||
Spoofing (Reinlegen) genannt. Um sich davor zu schützen, kann der Resolver so
|
||||
konfiguriert werden, daß er überprüft, ob die gegebene IP-Adresse auch
|
||||
tatsächlich zum erhaltenen Hostnamen gehört. Wenn dies nicht der Fall ist,
|
||||
wird der Name verworfen und ein Fehler zurückgeliefert. Dieses Verhalten wird
|
||||
mit nospoof on eingestellt. Wenn NOSPOOF aktiviert ist (üblicherweise in
|
||||
Windows), wird aene Warnung an jeden User geschickt, '/quote pong ..' zu
|
||||
benutzen, wenn es beim Verbinden Probleme gibt. Voreingestellt ist 'no'.</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Ermöglicht eine AWAY Meldung in WATCH. Der Default is yes.</p>
|
||||
</div>
|
||||
<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,
|
||||
wie MOTD, OperMOTD, BotMOTD, und Rules. In der nachfolgenden Liste stehen die
|
||||
@@ -3829,13 +3895,13 @@ Befehlsliste</a></b></font></p><div class="desc">
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="33" width="267">globops <message></td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops</td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle globalen IRCops</td>
|
||||
<td width="93" height="33">IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="33" width="267">chatops <message></td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops mit dem
|
||||
Usermode +c</td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops (lokal und
|
||||
global)</td>
|
||||
<td width="93" height="33">IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -4337,6 +4403,13 @@ Datei</a></b></font></p>
|
||||
Expolits erschweren, zu arbeiten. Das ist schön, allerdings sollte man nicht nur primär
|
||||
hierauf achten, es gibt weit größere Risiken mit Expolits, die andere
|
||||
Punkte, als den Kernel angreifen.... aus verschiedenen Gründen.<br>
|
||||
Eine andere Option ist es chrooting zu aktivieren (gibt es nur in *nix
|
||||
Systemen), was bedeutet, dass bei einem erfolgreichen expolit der User auf auf
|
||||
das UnrealIRCd Verzeichnis begrenzt ist und keinen Zugriff auf andere Dateien
|
||||
hat. Dies erfordert root Rechte und Änderungen in der include/config.h (suche
|
||||
nach CHROOTDIR und setze sowohl IRC_USER als auch IRC_GROUP und compiliere
|
||||
neu.)
|
||||
<p>
|
||||
<br>
|
||||
Eines allerdings sollte man tun: IMMER DIE NEUESTE VERSION BENUTZEN. Wenn man
|
||||
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
|
||||
@@ -4413,16 +4486,14 @@ Datei</a></b></font></p>
|
||||
Übereinstimmung mit 0 oder 1 der vorhergehenden Zeichen. Dieses
|
||||
"vorhergehende Zeichen" ist auch der Punkt, worin sich das '?' in
|
||||
einer regex von einer Wildcard unterscheidet. In Wildcards bedeutet die Angabe
|
||||
von "a?c" eine Übereinstimmung mit einem "a", gefolgt von irgend einem (oder
|
||||
keinem) anderen Zeichen, gefolgt von einem "c." In Regex hat dies eine andere
|
||||
von "a?c" eine Übereinstimmung mit einem "a", gefolgt von irgend einem anderen Zeichen, gefolgt von einem "c." In Regex hat dies eine andere
|
||||
Bedeutung. Es wird auf Übereinstimmung geprüft mit 0 oder einem
|
||||
"a", gefolgt von dem Buchstaben "c". Damit
|
||||
kann durch das ? angegeben werden, wie viele "a" vorhanden
|
||||
sein dürfen. Soll das ? in einer Wildcard emuliert werden, wird der Punkt
|
||||
Operator verwendet. Der Ausdruck "a.?c" ist gleichbedeutend mit der zuvor
|
||||
Operator verwendet. Der Ausdruck "a.c" ist gleichbedeutend mit der zuvor
|
||||
beschrieben Wildcard. Geprüft wird auf Übereinstimmung mit einem
|
||||
"a", gefolgt von irgend einem oder keinen anderen Zeichen (das ?
|
||||
modifiziert den .), gefolgt von einem "c."</p><p>Der nächste
|
||||
"a", gefolgt von irgend einem anderen Zeichen, gefolgt von einem "c."</p><p>Der nächste
|
||||
Wiederholungsoperator ist der *. Auch dieser ist wieder ähnlich zum Wildcard
|
||||
Zeichen. Geprüft wird die Übereinstimmung mit 0 oder mehr der voranstehenden
|
||||
Zeichen. Zu beachten ist, dass dieses "vornstehende Zeichen" das
|
||||
|
||||
+15
-10
@@ -27,12 +27,12 @@ Spanish |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Versión: 3.2.5</font><br>
|
||||
<b>Última actualización del documento:</b> 15-06-2006</div>
|
||||
<font size="4">Versión: 3.2.8</font><br>
|
||||
<b>Última actualización del documento:</b> 22-12-2006</div>
|
||||
<br>
|
||||
<b>Programadores:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Contribuciones:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
@@ -42,6 +42,7 @@ Spanish |
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
y una FAQ en <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">http://www.vulnscan.org/UnrealIRCd/faq/</a>.
|
||||
</p>
|
||||
<p><font color="red">WARNING: The translation of this document is not up to date, the English version is more recent.</font></p>
|
||||
<p><b>Navegadores compatibles: </b><br>
|
||||
<ul>
|
||||
<li>Opera 6.02
|
||||
@@ -191,7 +192,7 @@ Windows:<br>
|
||||
<li><b>Versiones *NIX:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
@@ -1873,14 +1874,16 @@ link <nombre-servidor> {
|
||||
<p><b>password-receive</b><br>
|
||||
Es la contraseña para validar uniones entrantes y puede ser encriptada (métodos crypt, md5, sha1 y ripemd-160). Puede dejarlo como texto plano. Generalmente es el mismo que la contraseña anterior.</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
Un hub es un servidor con varios servidores unidos a él. Un leaf sólo tiene una unión, a su servidor. Un servidor o es un hub o un leaf, nunca ambos.</p>
|
||||
Un hub es un servidor con varios servidores unidos a él. Un leaf sólo tiene una unión, a su servidor.
|
||||
Un servidor se considera leaf si no tiene la directriz hub. También es leaf si la directriz leaf es *, o leafdepth es 1.</p>
|
||||
<p><b>hub</b> (opcional)<br>
|
||||
Este valor es la máscara de los servidores a los que puede conectar (ej: *.mi.red).</p>
|
||||
<p><b>leaf</b> (opcional)<br>
|
||||
Este valor es la máscara que este servidor actuará como leaf.towards.
|
||||
Este valor es una máscara de los servidores que este hub <b>no</b> conectará. Usando * es lo mismo que no usar ninguna directriz hub.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (opcional)<br>
|
||||
Si se especifica, la directriz leaf también debe especificarse. Este valor es la profundidad o número de uniones que puede tener.</p>
|
||||
Este valor especifica la profunidad (número de saltos) que este server puede alojar. Por ejemplo, 1 significa que el servidor no puede tener ningún link por debajo de él (un leaf), 2 significa que puede tener servidores linkados pero estos no pueden tener a su vez más servidores linkados por debajo suyo.
|
||||
Un valor de 0 significa que no hay límite, es el parámetro por defecto.</p>
|
||||
<p><b>class</b><br>
|
||||
Es la clase a la se relacionará este servidor, generalmente la clase server.</p>
|
||||
<p><b>compression-level</b> (opcional)<br>
|
||||
@@ -2228,11 +2231,11 @@ set {
|
||||
<p><font class="set">set::options::fail-oper-warn;</font><br>
|
||||
Si está presente, se notificará al usuario de que su intento de /oper ha fallado y se ha logueado.</p>
|
||||
<p><font class="set">set::dns::timeout <timevalue>;</font><br>
|
||||
Tiempo de espera del servidor DNS si no obtiene respuesta. Si el valor es una cadena alfanumérica, use d para días, h para horas, m para minutos y s para segundos. Por ejemplo 1d2h3m significa 1 día, 2 horas y 3 minutos.</p>
|
||||
Tiempo de espera del servidor DNS si no obtiene respuesta. Si el valor es una cadena alfanumérica, use d para días, h para horas, m para minutos y s para segundos. Por ejemplo 1d2h3m significa 1 día, 2 horas y 3 minutos (NO IMPLEMENTADO).</p>
|
||||
<p><font class="set">set::dns::retries <nº-intentos>;</font><br>
|
||||
Número de intentos si el servidor DNS no obtiene respuesta.</p>
|
||||
Número de intentos si el servidor DNS no obtiene respuesta (NO IMPLEMENTADO).</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Especifica el host del servidor a usar en las búsquedas DNS. </p>
|
||||
Especifica el host del servidor a usar en las búsquedas DNS (NO IMPLEMENTADO).</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Especifica la IP a enlazar para el resolver. Raras veces se usa.</p>
|
||||
<p><font class="set">set::network-name <nombre-de-red>;</font><br>
|
||||
@@ -2323,6 +2326,8 @@ set {
|
||||
<p><font class="set">set::timesynch::timeout <time></font><br>
|
||||
Máximo tiempo a esperar las respuestas de los servidores de hora. Este valor debe estar entre 1 y 5 segundos. No es posible más alto porque puede causar demasiada diferencia de hora.
|
||||
Por defecto es 3 y no hay ninguna razón para cambiarlo.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Cuando NOSPOOF está activo (normalmente lo está en Windows), envía un mensaje de advertencia a cada usuario para que use '/quote pong ..' si tiene problemas para conectar. Por defecto está en 'no'.</p>
|
||||
</div>
|
||||
<p><b><font size="+2">5 – Archivos adicionales <a name="addtlfiles"></a>
|
||||
</font></b></p>
|
||||
|
||||
+32
-18
@@ -25,14 +25,14 @@ French |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Version: 3.2.5</font><br>
|
||||
<b>Dernière mise à jour de la documentation:</b> 2006-06-15</div>
|
||||
<font size="4">Version: 3.2.8</font><br>
|
||||
<b>Dernière mise à jour de la documentation:</b> 2007-07-10</div>
|
||||
<br>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Coders:</b> Stskeeps / codemastr / Syzop / Luke / aquanight / WolfSage <br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Documentation:</b> CKnight^ / Syzop<br>
|
||||
<b>Traduction française:</b> <a href="mailto:babass@unrealircd.org?subject=UnrealIRCd%20-%20French%20Support">babass</a> - <a href="irc://irc.rs2i.net/UnrealIRCd">irc.rs2i.net</a><br>
|
||||
@@ -41,6 +41,7 @@ French |
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
ainsi qu'un FAQ <a href="http://www.vulnscan.org/UnrealIRCd/faq/" target="_blank">http://www.vulnscan.org/UnrealIRCd/faq/</a>.
|
||||
</p>
|
||||
<p><font color="red">WARNING: The translation of this document is not up to date, the English version is more recent.</font></p>
|
||||
<p><b>Navigateurs compatibles: </b><br>
|
||||
</p><ul>
|
||||
<li>Opera 6.02
|
||||
@@ -190,7 +191,7 @@ Windows:<br>
|
||||
<li><b>*NIX versions:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
@@ -570,8 +571,8 @@ Certains modules peuvent ajouter d'autres types de ban étendus.<br>
|
||||
<p>UnrealIRCd a maintenant un support pour le CIDR (Classless Interdomain Routing). CIDR vous
|
||||
permet de bannir des ranges d'IP. Des Ips sont allouées aux FAI en utilisant CIDR, cela vous
|
||||
permet en plaçant un ban basé sur le CIDR de bannir facilement un FAI. Unreal supporte le CIDR
|
||||
pour l'IPv4 et l'IPv6. Les masques CIDR peuvent être utilisés dans l'allow::ip, ban user::mask,
|
||||
ban ip::mask, except ban::mask, except throttle::mask, et except tkl::mask (pour gzline, gline, et shun).
|
||||
pour l'IPv4 et l'IPv6. Les masques CIDR peuvent être utilisés dans l'allow::ip, oper::from::userhost,
|
||||
ban user::mask, ban ip::mask, except ban::mask, except throttle::mask, et except tkl::mask (pour gzline, gline, et shun).
|
||||
De plus, le CIDR peut être utilisé dans les /kline, /gline, /zline, /gzline, et /shun. Unreal
|
||||
utilise la syntaxe standard d'IP/bits, 127.0.0.0/8 (correspond à 127.0.0.0 - 127.255.255.255),
|
||||
et fe80:0:0:123::/64 (correspond à fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
@@ -1399,7 +1400,7 @@ loadmodule "modules/cloak.dll";
|
||||
channel <channel-name>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre><p></p>
|
||||
<p>Le tld block vous permet de spécifier un motd, rules (règles), et salon pour un utilisateur
|
||||
en se basant sur son host. C'est utile si vous voulez différents motd pour différentes langues.
|
||||
@@ -1886,17 +1887,21 @@ deny channel {
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
Un hub a plusieurs serveurs linké à lui, un leaf n'a qu'un seul link... le vôtre.
|
||||
Un serveur est soit un hub, soit un leaf, vous ne pouvez combiner ces options.
|
||||
Un serveur est un leaf à moins qu'il n'ait une directive hub. C'est également un leaf si la directive est *, ou si leafdepth a comme valeur 1.
|
||||
</p>
|
||||
<p><b>hub</b> (optionnel)<br>
|
||||
Cette valeur est un masque des serveurs auquel ce hub peut se connecter (ex. : *.my.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (optionnel)<br>
|
||||
Cette valeur est un masque que ce serveur interprétera comme un leaf.
|
||||
Cette valeur est un masque correspondant aux serveurs auquels ce hub <b>ne peut pas</b> se connecter.
|
||||
Mettre * ici sera pareil à ne pas avoir de directive hub.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (optionnel)<br>
|
||||
Si celui-ci est spécifier, alors leaf doit l'être aussi.
|
||||
<p><b>leafdepth</b> (optionnel)<br>
|
||||
Cette valeur spécifie la profondeur (nombre de sauts) que ce serveur peut avoir derrière lui.
|
||||
Par exemple, 1 signifie que le serveur ne peut avoir aucun lien en dessous de lui (un leaf),
|
||||
2 signifie qu'il peut &ecric;tre lié à des serveurs mais que ceux-ci ne peuvent avoir rien du tout
|
||||
derrière eux (cela signifie que ce hub peut uniquement être relié à des leaves).
|
||||
Une valeur de O signifie aucune limite, et c'est la valeur par défaut.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
La classe dont ce serveur fait partie, souvent une classe de serveurs séparés est utilisé pour ceci.
|
||||
@@ -2195,6 +2200,9 @@ Ensuite, dans votre unrealircd.conf vous ajoutez un bloc cgiirc :
|
||||
Les modes qui seront appliqués à un salon lors de sa création.
|
||||
Tous les modes ne peuvent pas être utilisés par cette commande.
|
||||
+qaohvbeOAzlLk ne peuvent être appliqués par cette commande.</p>
|
||||
<p><font class="set">set::level-on-join <op|none>;</font><br>
|
||||
Le mode que l'utilisateur aura lorsqu'il sera le premier à joindre un salon.
|
||||
Celà peut être 'op' (opérateur du salon, la valeur par défaut) ou 'none' (aucun).</p>
|
||||
<p><font class="set">set::restrict-usermodes <modes></font><br>
|
||||
Empêche les utilisateurs d'appliquer / enlever les modes listés ici (n'utilisez pas + ou -).
|
||||
Par exemple, vous pouvez mettre le +G en modes-on-connect et G en restrict-usermodes,
|
||||
@@ -2303,11 +2311,11 @@ Ensuite, dans votre unrealircd.conf vous ajoutez un bloc cgiirc :
|
||||
<p><font class="set">set::dns::timeout <timevalue>;</font><br>
|
||||
Une valeur de temps spécifie la durée qu'un serveur DNS a pour répondre.
|
||||
Une valeur de temps est un numérique avec d pour jour, h pour heure,
|
||||
m pour minutes, et s pour secondes, par exemple 1d2h3m signifie 1 jour, 2 heures, 3 minutes.</p>
|
||||
m pour minutes, et s pour secondes, par exemple 1d2h3m signifie 1 jour, 2 heures, 3 minutes.(PAS IMPLEMENTE)</p>
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
Une valeur numérique spécifie le nombre de fois que la résolution de DNS reprendra en cas d'échec.</p>
|
||||
Une valeur numérique spécifie le nombre de fois que la résolution de DNS reprendra en cas d'échec.(PAS IMPLEMENTE)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Spécifie l'hostname du serveur qui sera utilisé pour la résolution de DNS.</p>
|
||||
Spécifie l'hostname du serveur qui sera utilisé pour la résolution de DNS.(PAS IMPLEMENTE)</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Spécifie l'ip è relier au résolveur; presque jamais requis</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
@@ -2439,6 +2447,8 @@ Ensuite, dans votre unrealircd.conf vous ajoutez un bloc cgiirc :
|
||||
Durée maximum pendant laquelle attendre la réponse du serveur. Cette valeur est entre 1 et 5,
|
||||
plus ce n'est pas possible car cela crée trop d'incohérences. Ce paramètre est
|
||||
réglé par défaut à 3 et il n'y à probablement aucune bonne raison de la changer.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Lorsque NOSPOOF est activé (généralement sous Windows), envoye un avertissement à chaque utilisateur, d'utiliser '/quote pong ...' si ils ont des problèmes pour se connecter. La valeur par défaut est no.</p>
|
||||
<p></p> </div>
|
||||
<p><b><font size="+2">5 – Fichiers additionnels<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
@@ -2987,12 +2997,12 @@ Ensuite, dans votre unrealircd.conf vous ajoutez un bloc cgiirc :
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">globops <message></td>
|
||||
<td>Envoie un message à tous les IRCops</td>
|
||||
<td>Envoie un message à tous les global IRCops</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">chatops <message></td>
|
||||
<td>Envoie un message à tous les IRCops ayant le mode +c</td>
|
||||
<td>Envoie un message à tous les IRCops (local et global)</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3411,8 +3421,12 @@ Cela rendra plus difficiles / importants les efforts requis pour attaquer / pira
|
||||
|
||||
<p><b><font size="+2">8.8 Se protéger des exploits</font></b><a name="secantiexploit"></a><br></p><div class="desc">
|
||||
Il y a des patches de kernel qui rendent plus difficiles les stack- et heap-based exploits. Ceci est trè bien mais ne doit pas être votre principal point d'inquiétude, vous avez des risques de loin plus importants d'être attaqué par d'autres points que celui-ci... Pour des raisons variées.<br>
|
||||
Une autre option est l'activation du chrooting (*NIX uniquement), ce qui signifie que lors d'un exploit réussi,
|
||||
L'utiliateur est confiné dans le dossier UnrealIRCd et ne peut accèder à aucun autre fichier.
|
||||
Ceci requière un accès root, la modification de include/config.h (la recherche du CHROOTDIR ainsi que la définition de IRC_USER et IRC_GROUP),
|
||||
et une recompilation.<br>
|
||||
<br>
|
||||
Il y a en tout cas une chose que vous devez faire, qui est TOUJOURS UTILISER LA DERNIèRE VERSION,
|
||||
Il y a une chose que vous devez toujours faire, c'est TOUJOURS UTILISER LA DERNIèRE VERSION,
|
||||
inscrivez vous à la <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank">unreal-notify mailinglist</a>
|
||||
tout de suite et vous recevrez les annonces de release (la unreal-notify est pour les annonces de release uniquement,
|
||||
d'où seulement 1 mail tout les X mois). En général il est explicitement mentionné dans l'annonce si la release permet
|
||||
|
||||
+4416
-3904
File diff suppressed because it is too large
Load Diff
+80
-37
@@ -27,14 +27,14 @@ English |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Version: 3.2.5</font><br>
|
||||
<b>Last doc update:</b> 2006-06-15</div>
|
||||
<font size="4">Version: 3.2.8</font><br>
|
||||
<b>Last doc update:</b> 2009-01-03</div>
|
||||
<br>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Coders:</b> Stskeeps / codemastr / Syzop / Luke / aquanight / WolfSage <br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Documentation:</b> CKnight^ / Syzop<br>
|
||||
<p>To view this documentation you must have a compatible browser, which are listed below. Up to date docs are
|
||||
@@ -187,7 +187,7 @@ Windows:<br>
|
||||
<li><b>*NIX versions:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
@@ -249,6 +249,8 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
|
||||
uppercase (A-Z) and digit (0-9) charachters [eg: "AopAS6WQH2Os6hfosh4SFJHs"]. See example.conf for an example.<br>
|
||||
<p>Cloak keys MUST be the same on ALL SERVERS in a network. Also cloak keys should be kept SECRET
|
||||
because it's possible to decode the original host if you know the keys (which makes umode +x useless).</p>
|
||||
<p>Hint: If you are on *NIX and have to create new cloak keys, you can run './unreal gencloak'
|
||||
in your shell, which will output 3 random strings that you can use.</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.2 - Modules</b></font><a name="feature_modules"></a></p><div class="desc">
|
||||
<p>UnrealIRCd supports modules which is nice because:<br>
|
||||
@@ -301,7 +303,9 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
|
||||
the help block in the configuration file. Additionally, a help.conf is included which contains some basic help for
|
||||
all commands.<br>
|
||||
For example <i>/helpop chmodes</i> gives you a overview of all channel modes UnrealIRCd has.<br>
|
||||
</p></div>
|
||||
Remember that if you are an ircop (helpop) you will have to prefix the keyword with a '?' character,
|
||||
so <i>/helpop</i> becomes <i>/helpop ?</i> and
|
||||
<i>/helpop chmodes</i> becomes <i>/helpop ?chmodes</i> etc..</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.6 - Oper access levels</b></font><a name="feature_operaccesslevels"></a></p><div class="desc">
|
||||
<p>There are several oper levels in UnrealIRCd and you can add additional rights (like to use /gline) to
|
||||
@@ -560,7 +564,23 @@ into spaces at runtime. And double underscore ('__') gets an underscore ('_'). A
|
||||
<b>set::spamfilter::ban-reason</b> allows you to specify a default reason (default: 'Spam/advertising')<br>
|
||||
<b>set::spamfilter::virus-help-channel</b> allows you to specify the channel to join for action 'viruschan' (default: #help)<br>
|
||||
<b>set::spamfilter::virus-help-channel-deny</b> allows you to block any normal joins to virus-help-channel (default: no)<br>
|
||||
</p></div>
|
||||
</p>
|
||||
<p>
|
||||
<font size="+1"><B>Slow Spamfilter Detection</B></font><a name="feature_spamfilter_slow"></a><br>
|
||||
A spamfilter regex can slow down the IRCd considerably. This really depends
|
||||
on the regex you use (and how the regex engine handles it), some are very
|
||||
fast and UnrealIRCd can execute thousands of them per second. Others can be
|
||||
extremely slow, take several seconds to execute, and could freeze the IRCd.<br>
|
||||
To help against this, Unreal comes with Slow Spamfilter Detection: For each
|
||||
spamfilter, Unreal checks, each time it executes, how long it takes to
|
||||
execute. Once a certain threshold is reached the IRCd will warn or even remove
|
||||
the spamfilter.<br>
|
||||
Warning is configured through <b>set::spamfilter::slowdetect-warn</b> (default: 250ms)
|
||||
and automatic deletion is configured by <b>set::spamfilter::slowdetect-fatal</b> (default: 500ms).
|
||||
You can set both settings to 0 (zero) to disable slow spamfilter detection.<br>
|
||||
This feature is currently not available on Windows.<br>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
|
||||
<p>UnrealIRCd now has support for CIDR (Classless Interdomain Routing). CIDR allows you to ban
|
||||
@@ -766,11 +786,6 @@ class <name> {
|
||||
maxclients <maximum-clients>;
|
||||
sendq <send-queue>;
|
||||
recvq <recv-queue>;
|
||||
options {
|
||||
<option>;
|
||||
<option>;
|
||||
...
|
||||
};
|
||||
};
|
||||
</pre></p>
|
||||
<p> </p>
|
||||
@@ -784,10 +799,6 @@ class <name> {
|
||||
<p><b>sendq</b> specifies the amount of data which can be in the send queue (very high for servers with low bandwidth, medium for clients)</p>
|
||||
<p><b>recvq</b> specifies the amount of data which can be in the receive queue and is used for flood control
|
||||
(this only applies to normal users, try experimenting with values 3000-8000, 8000 is the default).</p>
|
||||
<p><b>options block</b> (optional)<br>
|
||||
Valid options are:<br>
|
||||
<b>notargetlag</b> users are not artificialy lagged. So, they will not get "Message target change too fast." anymore<br>
|
||||
</p>
|
||||
<p>Examples:<br>
|
||||
<pre>
|
||||
class clients {
|
||||
@@ -856,7 +867,7 @@ allow {
|
||||
<b>noident</b> don't use ident but use username specified by client<br>
|
||||
<b>ssl</b> only match if this client is connected via SSL<br>
|
||||
<b>nopasscont</b> continue matching if no password was given (so you can put clients in special classes
|
||||
if they supply a password).</p>
|
||||
if they supply a password).
|
||||
<p>Examples:<br>
|
||||
<pre>
|
||||
allow {
|
||||
@@ -1017,7 +1028,7 @@ listen *:6601 {
|
||||
<tr>
|
||||
<td><div align="center">h</div></td>
|
||||
<td><div align="center">helpop</div></td>
|
||||
<td>Oper is marked as "availiable for help" when he/she is not away</td>
|
||||
<td>Oper receives umode +h (helpop)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">w</div></td>
|
||||
@@ -1104,6 +1115,11 @@ listen *:6601 {
|
||||
<td><div align="center">can_setq</div></td>
|
||||
<td>Can use usermode +q</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">X</div></td>
|
||||
<td><div align="center">can_addline</div></td>
|
||||
<td>Can use /addline</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">d</div></td>
|
||||
<td><div align="center">can_dccdeny</div></td>
|
||||
@@ -1269,7 +1285,7 @@ oper bobsmith {
|
||||
global;
|
||||
};
|
||||
swhois "Example of a whois mask";
|
||||
snomask cFfkoSsqNG;
|
||||
snomask frebWqFv;
|
||||
};
|
||||
</pre></p>
|
||||
<a name="operoverride"><b>Some little info about OperOverride:</b><br>
|
||||
@@ -1302,18 +1318,11 @@ drpass {
|
||||
<p><font class="block_section">4.9 - </font><font class="block_name">Include Directive</font><a name="includedirective"></a><div class="desc">
|
||||
</p>
|
||||
<p>Syntax:<br>
|
||||
<pre>
|
||||
include <file-name> {
|
||||
bind-ip <ip-to-bind-to>;
|
||||
};</pre></p>
|
||||
include <file-name>;</p>
|
||||
<p>This directive specifies a filename to be loaded as a separate configuration
|
||||
file. This file may contain any type of config block and can even include other
|
||||
files. Wildcards are supported in the file name to allow you to load multiple
|
||||
files at once.</p>
|
||||
<p><b>bind-ip</b> (optional)<br>
|
||||
Can be used to bind to a specific IP (ex: 192.168.0.1) from where we should
|
||||
connect from to download file-name in case of having LIBCURL defined.
|
||||
</p>
|
||||
<p><b>example 1: a network file</b><br>
|
||||
<pre>include mynetwork.network;</pre></p>
|
||||
<p>That would be the statement to use if you wanted to use a separate network
|
||||
@@ -1340,7 +1349,7 @@ include <file-name> {
|
||||
<font class="block_required">REQUIRED</font><a name="loadmoduledirective"></a><div class="desc">
|
||||
</p>
|
||||
<p>Syntax:<br>
|
||||
<pre>loadmodule <file-name>;</pre></p>
|
||||
loadmodule <file-name>;</p>
|
||||
<p>See <a href="#feature_modules">here</a> why modules are nice/useful.</p>
|
||||
<p>Modules that come standard with Unreal3.2:</p>
|
||||
<p>commands.so / commands.dll - All the / commands (well not all yet, but will eventually be all) <font color="red">REQUIRED</font><br>
|
||||
@@ -2252,7 +2261,7 @@ set {
|
||||
<p>Now if you wanted to make the set statements separate, say you wanted to set
|
||||
your options in a single line.<br>
|
||||
Example:<br>
|
||||
set { options { hide-ulines; gline-address "my@gline.address"; }; };<br>
|
||||
set { options { hide-ulines; no-stealth; }; };<br>
|
||||
</p>
|
||||
<p><font class="set">set::kline-address <email-address>;</font><br>
|
||||
The email address that K:line questions should be sent to. This value must be
|
||||
@@ -2269,6 +2278,9 @@ set {
|
||||
The snomask that will be set on a user when they /oper.</p>
|
||||
<p><font class="set">set::modes-on-join <+modes>;</font><br>
|
||||
The modes that will be set on a channel when it is first created. Not all modes can be set using this command. +qaohvbeOAzlLk can NOT be set using this command.</p>
|
||||
<p><font class="set">set::level-on-join <op|none>;</font><br>
|
||||
The mode that a user will get when he's the first to join a channel. This
|
||||
is either 'op' (channel operator, the default) or 'none'.</p>
|
||||
<p><font class="set">set::restrict-usermodes <modes></font><br>
|
||||
Restrict users to set/unset the modes listed here (don't use + or -).<br>
|
||||
For example you can set +G in modes-on-connect and G in restrict-usermodes,
|
||||
@@ -2441,6 +2453,14 @@ set {
|
||||
Specifies the filename where the server's SSL private key is located.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <filename>;</font><br>
|
||||
Specifies the filename where the certificates of the trusted CAs are located.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <cipherlist>;</font><br>
|
||||
Specifies which ciphers to be allowed, by default we leave this up to OpenSSL.
|
||||
See <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">http://www.openssl.org/docs/apps/ciphers.html</a>
|
||||
on how to specify the list of ciphers.</p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <value>;</font><br>
|
||||
Specifies after how many bytes an SSL session should be renegotiated (eg: 20m for 20 megabytes).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <timevalue>;</font><br>
|
||||
Specifies after how much time an SSL session should be renegotiated (eg: 1h for 1 hour).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Forces clients that do not have a certificate to be denied.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -2493,6 +2513,14 @@ set {
|
||||
<p><font class="set">set::spamfilter::except <target(s)></font><br>
|
||||
These targets are exempt from spam filtering (no action will be taken),
|
||||
can be single target or comma seperated list.. Ex: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <value></font><br>
|
||||
If a spamfilter takes longer than this amount of milliseconds to execute
|
||||
(1000ms = 1 second), then a warning notice will be sent to all opers (default: 250).
|
||||
See also <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <value></font><br>
|
||||
If a spamfilter takes longer than this amount of milliseconds to execute
|
||||
(1000ms = 1 second), then the spamfilter will be removed (default: 500).
|
||||
See also <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Whenever the user changes his/her nick, check if the NEW nick would be
|
||||
banned. If so, do not allow the nickchange. Default is yes.</p>
|
||||
@@ -2509,6 +2537,8 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
When NOSPOOF is enabled (usually on Windows), send a warning to each user to use
|
||||
'/quote pong ..' if they are having problems connecting? The default is no.</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Allows you to enable/disable AWAY notification in WATCH. The default is yes.</p>
|
||||
<p></p> </div>
|
||||
<p><b><font size="+2">5 – Additional Files<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
@@ -2808,7 +2838,7 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
|
||||
</table>
|
||||
<p></p></div>
|
||||
<p><font size="+2"><b>7 – User & Oper Commands Table<a name="useropercommands" id="useropercommands"></a></b></font></p><div class="desc">
|
||||
<p>NOTE: the /helpop documentation is more up to date, use <i>/helpop command</i>
|
||||
<p>NOTE: the /helpop documentation is more up to date, use <i>/helpop command</i> (or <i>/helpop ?command</i> if you are oper)
|
||||
to get more information on a command.</p>
|
||||
|
||||
<table width="90%" border="1">
|
||||
@@ -2948,6 +2978,16 @@ to get more information on a command.</p>
|
||||
to an IRC server.<br></td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">helpop ?<topic> or !<topic><br></td>
|
||||
<td>HelpOp is a new system of getting IRC Server help. You type either /HELPOP
|
||||
? <help system topic> or /HELPOP ! <question> The "?"
|
||||
in /HELPOP means query the help system and if you get no response you can
|
||||
choose '!' to send it to the Help Operators online. Using neither ? nor !
|
||||
will mean the command will be first queried within the help system and if
|
||||
no match if found , it will be forwarded to the help operators</td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">list <search string></td>
|
||||
<td>
|
||||
@@ -3048,12 +3088,12 @@ to get more information on a command.</p>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">globops <message></td>
|
||||
<td>Sends a message to all IRCops</td>
|
||||
<td>Sends a message to all global IRCops</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">chatops <message></td>
|
||||
<td>Send a message to all IRCops with umode +c</td>
|
||||
<td>Sends a message to all IRCops (local and global)</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3119,8 +3159,6 @@ to get more information on a command.</p>
|
||||
-opermotd - Only rehash the OPERMOTD file<br>
|
||||
-botmotd - Only rehash the BOTMOTD file<br>
|
||||
-garbage - Force garbage collection<br>
|
||||
-ssl - Reload SSL certificate and private key<br>
|
||||
-dns - Reload DNS info from resolv.conf/registry<br>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3483,8 +3521,13 @@ It will however make it more difficult / increase the effort needed to attack/ha
|
||||
There are kernel patches that make it more difficult for stack- and heap-based exploits to
|
||||
work. This is nice, but should not be your main focus point, you have a far more bigger risk
|
||||
of getting exploited through the other points than this... for various reasons.<br>
|
||||
Another option is enabling chrooting (*NIX only), which means upon a succesfull exploit,
|
||||
the user is confined to the UnrealIRCd directory and cannot touch any other
|
||||
files. This requires root privileges, modifying of include/config.h
|
||||
(search for CHROOTDIR, and also set IRC_USER and IRC_GROUP), and a
|
||||
recompile.<br>
|
||||
<br>
|
||||
There's one thing you should do however, which is to ALWAYS USE THE LATEST VERSION,
|
||||
There's one thing you should definately do, which is to ALWAYS USE THE LATEST VERSION,
|
||||
subscribe to the <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank">unreal-notify mailinglist</a>
|
||||
right now so you receive the release announcements (unreal-notify is for release announcements only,
|
||||
so only 1 mail per X months). Usually it's explicitly mentioned in the release announcement if the
|
||||
@@ -3516,9 +3559,9 @@ security until they got hacked, try to avoid that :).
|
||||
<p><font size="+2"><b>A.3 Repetition Operators<a name="regexrep"></a></b></font></p>
|
||||
<div class="desc"><p>One of the common mistakes people make with regex is assuming that they work just like wildcards. That is, the * and ? characters will match just like in a wildcard. While these characters do have similar meaning in a regex, they are not exactly the same. Additionaly, regular expressions also support other, more advanced methods of repetition.
|
||||
<p>
|
||||
The most basic repetition operator is the ? operator. This operator matches 0 or 1 of the previous character. This, "of the previous character," is where the ? in regex differs from a wildcard. In a wildcard, the expression, "a?c" matches an "a" followed by any character (or no character), followed by a "c." In regex it has a different meaning. It matches 0 or 1 of the letter "a" followed by the letter "c." Basically, the ? is modifying the a by specifying how many a's may be present. To emulate the ? in a wildcard, the . operator is used. The regex "a.?c" is equivilent to the previously mentioned wildcard. It matches the letter "a" followed by 0 or 1 of any character (the ? is modifying the .), followed by a "c."
|
||||
The most basic repetition operator is the ? operator. This operator matches 0 or 1 of the previous character. This, "of the previous character," is where the ? in regex differs from a wildcard. In a wildcard, the expression, "a?c" matches an "a" followed by any character, followed by a "c". In regex it has a different meaning. It matches 0 or 1 of the letter "a" followed by the letter "c". Basically, the ? is modifying the a by specifying how many a's may be present. To emulate the ? in a wildcard, the . operator is used. The regex "a.c" is equivilent to the previously mentioned wildcard. It matches the letter "a" followed by any character, followed by a "c".
|
||||
<p>
|
||||
The next repetition operator is the *. Again, this operator is similar to a wildcard. It matches 0 or more of the previous character. Note that this "of the previous character" is something that is characteristic of all repetition operators. The regex "a*c" matches 0 or more a's followed by a "c." For example, "aaaaaac" matches. Once again, to make this work like a wildcard, you would use "a.*c" which will cause the * to modify the . (any character) rather than the "a."
|
||||
The next repetition operator is the *. Again, this operator is similar to a wildcard. It matches 0 or more of the previous character. Note that this "of the previous character" is something that is characteristic of all repetition operators. The regex "a*c" matches 0 or more a's followed by a "c". For example, "aaaaaac" matches. Once again, to make this work like a wildcard, you would use "a.*c" which will cause the * to modify the . (any character) rather than the "a."
|
||||
<p>
|
||||
The + operator is very similar to the *. However, instead of matching 0 or more, it matches 1 or more. Basically, "a*c" will match "c" (0 a's followed by a c), where as "a+c" would not. The "a+" states that there must be "at least" 1 a. So "c" does not match but "ac" and "aaaaaaaaac" do.
|
||||
<p>
|
||||
|
||||
+93
-49
@@ -15,7 +15,7 @@
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
|
||||
<!-- $Id$ -->
|
||||
|
||||
<body>
|
||||
@@ -27,14 +27,14 @@ Hungarian |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Verzió: 3.2.5</font><br>
|
||||
<b>Utolsó dokumentáció frissítés:</b> 2006-06-15</div>
|
||||
<font size="4">Verzió: 3.2.8</font><br>
|
||||
<b>Utolsó dokumentáció frissítés:</b> 2009-01-03</div>
|
||||
<br>
|
||||
<b>Fő fejlesztők:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Fejlesztők:</b> Stskeeps / codemastr / Syzop / Luke / aquanight / WolfSage <br>
|
||||
<b>Munkatársak:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Dokumentáció:</b> CKnight^ / Syzop<br>
|
||||
<b>Magyar fordítás:</b> <a href="mailto:angrywolf@flashmail.com">AngryWolf</a><br>
|
||||
@@ -188,7 +188,7 @@ Windows:<br>
|
||||
<li><b>*NIX verziók:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
@@ -250,6 +250,8 @@ mert m
|
||||
nagybetű (A-Z) valamint szám (0-9) karakterekből áll [pl.: "AopAS6WQH2Os6hfosh4SFJHs"]. Az example.conf-ban találsz példát.<br>
|
||||
<p>Az álcázási kulcsoknak egy hálózat MINDEN SZERVERÉN azonosnak KELL lenniük. Továbbá a kulcsokat tartsd TITOKBAN,
|
||||
mert ha valaki ismeri a kulcsokat, visszafejtheti az eredeti gazdanevet (ami a +x felhasználói módot hasznavehetetlenné teszi).</p>
|
||||
<p>Tipp: Ha *NIX alatt vagy, és új álcázási kulcsokat kell készítened, futtathatod az './unreal gencloak' parancsot is
|
||||
a parancsértelmeződben, ami 3 véletlenszerű sztringet írat ki erre a célra.</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.2 - Modulok</b></font><a name="feature_modules"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd támogatja a modulokat, ami hasznos, mert:<br>
|
||||
@@ -563,16 +565,32 @@ lesznek alak
|
||||
A <b>set::spamfilter::ban-reason</b>-nel meghatározhatsz egy alapértelmezett indokot (alapértelmezés: 'Spam/advertising')<br>
|
||||
A <b>set::spamfilter::virus-help-channel</b>-lel meghatározhatod, hogy milyen csatornára történjen a belépés a 'viruschan' tevékenység esetén (alapértelmezés: #help)<br>
|
||||
A <b>set::spamfilter::virus-help-channel-deny</b> segítségével pedig letilthatod a normál belépéseket a "virus-help-channel"-ben (alapértelmezés: no)<br>
|
||||
</p></div>
|
||||
</p>
|
||||
<p>
|
||||
<font size="+1"><B>Lassú spamszűrők érzékelése</B></font><a name="feature_spamfilter_slow"></a><br>
|
||||
A spamszűrő regexek jelentősen lelassíthatják az IRCd-t. Ez attól függ,
|
||||
milyen regexet használsz (és a regex motor hogyan kezeli). Némelyek elég
|
||||
gyorsak, és az UnrealIRCd ezret is lefuttat belőlük másodpercenként. Mások
|
||||
túlságosan lassúak lehetnek, több másodperc futtatási időt is igényelhetnek, és lefagyaszthatják az IRCd-t.<br>
|
||||
Ennek megóvása érdekében az Unreal-nak van lassú spamszűrő érzékelője (Slow Spamfilter Detection):
|
||||
valahányszor egy spamszűrő lefut, az UnrealIRCd ellenőrzi, mennyi idő kell neki, hogy
|
||||
lefusson. Ha átlép egy bizonyos küszöbszintet, az IRCd figyelmeztetést küld, esetleg le is törli
|
||||
a spamszűrőt.<br>
|
||||
A figyelmeztetést a <b>set::spamfilter::slowdetect-warn</b> direktívával állíthatjuk be (alapértelmezés: 250ms),
|
||||
az automatikus törlést pedig a <b>set::spamfilter::slowdetect-fatal</b> direktívával (alapértelmezés: 500ms).
|
||||
Mindkét direktíva beállítható 0-ra (nullára), ami letiltja a lassú spamszűrők érzékelését.<br>
|
||||
Jelenleg ez a funkció nem elérhető Windows alatt.<br>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd-nek most már van támogatása CIDR-re (Classless Interdomain Routing; osztály nélküli, tartományon belüli útvonalválasztás). A CIDR alkalmas
|
||||
IP tartományok kitiltására. Az IP-ket CIDR használatával osztják ki ISP-k (Internet Service Provider, Internetszolgáltató) között, ezért a CIDR alapú kitiltások
|
||||
beállításának képességével egyszerűen kitiltható egy ISP. Az Unreal mind IPv4-re és IPv6-ra is támogatja a CIDR-t. A CIDR maszkok
|
||||
használhatóak az allow::ip, a ban user::mask, a ban ip::mask, az except ban::mask, az except throttle::mask
|
||||
és az except tkl::mask direktívákban (ez utóbbinál gzline-ra, gline-ra és shun-ra). Azonfelül a CIDR használható még a /kline,
|
||||
/gline, /zline, /gzline, and /shun parancsokban. Az Unreal a szabványos IP/bitek szintaktikát használja, pl.
|
||||
127.0.0.0/8 (illeszkedési tartománya 127.0.0.0 - 127.255.255.255) és fe80:0:0:123::/64 (illeszkedési tartománya
|
||||
<p>Az UnrealIRCd most már támogatja a CIDR-t is (Classless Interdomain Routing - osztálynélküli körzetek közti forgalomirányítás). A CIDR alkalmas
|
||||
IP tartományok kitiltására. Az egyes ISP-knek (Internet Service Provider - internet-szolgáltató) CIDR használatával osztanak ki IP-ket, ezért azzal, hogy CIDR alapú kitiltásokat lehet beállítani,
|
||||
egyszerűen kitilthatunk egy ISP-t. Az Unreal IPv4-re és IPv6-ra is támogatja a CIDR-t. CIDR maszkokat
|
||||
a következő direktívákban használhatunk: allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask,
|
||||
except throttle::mask és except tkl::mask (ez utóbbinál gzline-ra, gline-ra és shun-ra). Ezenkívül a CIDR használható még
|
||||
a /kline, a /gline, a /zline, a /gzline és a /shun parancsokban. Az Unreal a szabványos, IP/bitek alakú szintaktikát használja,
|
||||
pl. 127.0.0.0/8 (illeszkedési tartománya 127.0.0.0 - 127.255.255.255) és fe80:0:0:123::/64 (illeszkedési tartománya
|
||||
fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.16 - Karakterkészletek nicknevekhez</b></font><a name="feature_nickchars"></a></p><div class="desc">
|
||||
@@ -1415,7 +1433,7 @@ tld {
|
||||
channel <csatornanév>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre></p>
|
||||
<p>A tld blokkal motd-ket, szabályokat és egy csatornát rendelhetsz felhasználókhoz
|
||||
a hostjaik alapján. Ez hasznos, ha különböző motd-t szeretnél különböző nyelvekhez.
|
||||
@@ -1583,7 +1601,7 @@ except ban {
|
||||
mask <hostmaszk>;
|
||||
};</pre></p>
|
||||
<p>Az except ban blokkal határozhatod meg, mely user@host-ok bírálhatnak felül egy szélesebb maszkra
|
||||
beállított kitiltást. Hasznos, ha egy Internet szolgáltató ki van tiltva, de
|
||||
beállított kitiltást. Hasznos, ha egy internet-szolgáltató ki van tiltva, de
|
||||
onnan bizonyos felhasználókat még mindig szeretnél kapcsolódni engedni. Az except::mask direktíva
|
||||
a kapcsolódásra engedélyezett kliens user@host maszkját határozza meg.</p>
|
||||
<p>Példa:<br>
|
||||
@@ -1607,7 +1625,7 @@ except tkl {
|
||||
};
|
||||
};</pre></p>
|
||||
<p>Az except tkl blokkal meghatározhatod, mely user@host-ok bírálhatnak felül egy szélesebb
|
||||
maszkra beállított tkl kitiltást. Hasznos, ha egy Internet szolgáltató ki van tiltva,
|
||||
maszkra beállított tkl kitiltást. Hasznos, ha egy internet-szolgáltató ki van tiltva,
|
||||
de még mindig szeretnéd, hogy onnan kapcsolódhassanak bizonyos felhasználók.
|
||||
Az except::mask direktíva a kapcsolódásra engedélyezett felhasználó user@host maszkja.
|
||||
Az except::type meghatározza, hogy milyen letiltást bírálhat felül a kliens. Érvényes típusok:
|
||||
@@ -1910,10 +1928,10 @@ link <szervern
|
||||
...
|
||||
};
|
||||
};</pre></p>
|
||||
<p>Erre a blokkra van szükséged szerverek linkeléséhez. Kérlek, szakíts egy kis időt ennek az egésznek az
|
||||
elolvasására, mert ez egyike azon legnehezebb dolgoknak, amelyeket a felhasználók gyakran elhibáznak ;P</p>
|
||||
<p>Szerverek linkeléséhez erre a blokkra van szükséged. Kérlek, szakíts egy kis időt ennek az egésznek az
|
||||
elolvasására, mert ez az egyik legnehezebb dolog, amit a felhasználók gyakran elhibáznak ;P</p>
|
||||
<p>Először is, a <b>szervernév</b> a távoli szervered neve, az a név, amely a távoli szerver
|
||||
me { } blokkjában van beállítva, mint a hub.blah.com (nem az IP cím, és a gazdanévtől is eltérő lehet).</p>
|
||||
me { } blokkjában van beállítva, mint a hub.valami.com (nem az IP cím, és a gazdanévtől is eltérő lehet).</p>
|
||||
<p><b>username</b><br>
|
||||
Megadhatod ezt, ha identet használsz a felhasználónevek hitelesítésre, közönséges esetben állítsd "*"-ra.
|
||||
</p>
|
||||
@@ -1929,39 +1947,37 @@ link <szervern
|
||||
</table>
|
||||
</p>
|
||||
<p><b>bind-ip</b> (szabadon választható)<br>
|
||||
Arra használható, hogy a szerver egy megadott IP-re bindeljen (pl. 192.168.0.1-re), ahonnan kellene
|
||||
kapcsolódnia, szinte soha nincs szükség rá.
|
||||
Ezzel megadhatjuk, hogy a helyi szerver milyen IP címről kapcsolódjon (pl. 192.168.0.1-ről), szinte soha nincs szükség rá.
|
||||
</p>
|
||||
<p><b>port</b><br>
|
||||
Azon port száma, ahová kapcsolódjon a szerver (amelyen a távoli szerver figyeli a kapcsolódásokat).
|
||||
</p>
|
||||
<p><b>password-connect</b><br>
|
||||
A távoli szerverre kapcsolódáskor használt jelszó, egyszerű szövegnek kell lennie.
|
||||
A távoli szerverre kapcsolódáskor használt jelszó; egyszerű szövegnek kell lennie.
|
||||
</p>
|
||||
<p><b>password-receive</b><br>
|
||||
A beérkező linkek érvényesítéséhez használt jelszó, lehet titkosított (érvényes kódolási típusok
|
||||
A beérkező linkek érvényesítéséhez használt jelszó; lehet titkosított (érvényes kódolási típusok
|
||||
a crypt, md5, sha1 és ripemd-160). A kódolás-típusa paramétert kihagyhatod, hogy csak egyszerű szöveget
|
||||
használj. Gyakran megegyezik ez a jelszó a password-connect-tel.
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
A hub linkelhet egyszerre több szervert is, amíg a leafnek csak egy linkje lehet... hozzád.
|
||||
Egy szerver vagy hub, vagy leaf, ezek együtt nem használhatóak.
|
||||
A hub egyszerre több szervert is linkelhet, míg a leafnek csak egy linkje lehet... hozzád.
|
||||
Egy szerver leaf, ha nincs hub direktívája. Akkor is leaf, ha a leaf direktíva értéke *, vagy a leafdepth értéke 1.
|
||||
</p>
|
||||
<p><b>hub</b> (szabadon választható)<br>
|
||||
Az értéke egy maszk azokra a szerverekre, amelyekre ez a hub kapcsolódhat (pl: *.sajat.net).
|
||||
Értéke egy maszk olyan szerverekre, amelyekre ez a hub kapcsolódhat (pl: *.sajat.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (szabadon választható)<br>
|
||||
Az értéke egy maszk azokra a szerverekre, amelyek felé ez a szerver leafként viselkedik.
|
||||
Értéke egy maszk olyan szerverekre, amelyekre ez a hub <b>nem</b> kapcsolódhat. A *-nak ugyanolyan hatása van, mintha nem lenne hub direktíva.
|
||||
</p>
|
||||
<p><b>leaf-mélység</b> (szabadon választható)<br>
|
||||
Ha ezt megadod, a leaf opciót is célszerű megadnod. Ez az érték azt a mélységet
|
||||
(ugrások számát) határozza meg, amely alá ez a szerver nem léphet.
|
||||
<p><b>leafdepth</b> (szabadon választható)<br>
|
||||
Ez a direktíva meghatározza, hogy mekkora mélység lehet ezen szerver alatt (csomópontok száma). Például az 1 azt jelenti, hogy a szervernek nem lehet egy linkje sem (vagyis egy leaf), a 2 azt jelenti, hogy ő még linkelhet szervereket, de a hozzá kapcsolódók már nem (vagyis csak leaf szervereket linkelhet). A 0 érték azt jelenti, nincs korlátozás, és ez az alapértelmezés is.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
Azon kapcsolati osztály, ahová helyezzük a szervert. Ehhez gyakran egy külön szerver osztályt szokás használni.
|
||||
Megadja, melyik kapcsolati osztályba helyezzük a linkelt szervert. Ehhez gyakran egy külön szerver osztályt szokás használni.
|
||||
</p>
|
||||
<p><b>compression-level</b> (szabadon választható)<br>
|
||||
Megadja ezen link tömörítési szintjét (1-9). Csak akkor szokás használni, ha a link::options::zip be van állítva.
|
||||
Megadja a kapcsolat tömörítési szintjét (1-9). Csak akkor szokás használni, ha a link::options::zip be van állítva.
|
||||
</p>
|
||||
<p><b>ciphers</b> (szabadon választható)<br>
|
||||
Meghatározza, milyen SSL kódoló/visszafejtő algoritmusok (cipherek) legyenek használatban ehhez a linkhez. A rendelkezésre álló
|
||||
@@ -1971,9 +1987,9 @@ link <szervern
|
||||
Egy vagy több opció használatának beállítására szolgál. Néha nincs szükség rá.<br>
|
||||
<table border="0">
|
||||
<tr><td><b>ssl</b></td><td> ha SSL portra kapcsolódsz.</td></tr>
|
||||
<tr><td><b>autoconnect</b></td><td> a szerver próbálkozni fog az automatikus kapcsolódással, a class::connfreq-ben
|
||||
<tr><td><b>autoconnect</b></td><td> a szerver automatikusan fog próbálkozni a kapcsolódással a class::connfreq-ben
|
||||
beállított időközönként (a legjobb, ha ezt csak egy oldalról engedélyezed, mint a leaf->hub linkeléseknél)</td></tr>
|
||||
<tr><td><b>zip</b></td><td> ha tömörített (zip) linkeket akarsz; ehhez szükség van a szerverbe belefordítt zip link támogatásra + ezen opció beállítására mindkét oldalon</td></tr>
|
||||
<tr><td><b>zip</b></td><td> ha tömörített (zip) linkeket szeretnél; ehhez szükség van a szerverbe belefordítt zip link támogatásra + ezen opció beállítására mindkét oldalon</td></tr>
|
||||
<tr><td><b>nodnscache</b></td><td> ne használjon gyorsítótárat a kimenő szerverkapcsolat IP címére; használd ezt gyakran változó
|
||||
gazdanevek (például dyndns.org) esetén.</td></tr>
|
||||
<tr><td><b>nohostcheck</b></td><td> ne érvényesítse a távoli gazdanevet (link::hostname); használd ezt gyakran változó
|
||||
@@ -2273,6 +2289,9 @@ set {
|
||||
MEGJEGYZÉS: lehet, hogy ezek a csatornamódok még mindig használhatóak IRC szolgáltatásokon keresztül
|
||||
az MLOCK alkalmazásával. Sajnos mi nem tudunk sokat tenni ezügyben, a szolgáltatás fejlesztőket
|
||||
kellene megkérned, hogy megvalósítsanak egy restrict-channelmodes funkciót is.</p>
|
||||
<p><font class="set">set::level-on-join <op|none>;</font><br>
|
||||
Milyen módot kapjon az a felhasználó, aki elsőként lép be egy csatornára.
|
||||
Lehet 'op' (csatorna operátor, az alapértelmezés) vagy 'none' (nincs mód).</p>
|
||||
<p><font class="set">set::restrict-extendedbans <típusok|*></font><br>
|
||||
Nem ad engedélyt a felhasználóknak egyetlen kiterjesztett ban típus használatára sem ("*"), vagy csak bizonyos típusokat utasít vissza (pl.: "qc").</p>
|
||||
<p><font class="set">set::auto-join <csatornák>;</font><br>
|
||||
@@ -2367,12 +2386,12 @@ set {
|
||||
Egy időérték azon időhossz meghatározására, ami alatt a DNS szervernek válaszolni kell,
|
||||
mielőtt időkifutás történik. Az időérték egy numerikus sztring a napot jelentő "d",
|
||||
az órát jelentő "h", a percet jelentő "m" és a másodpercet jelentő "s" karakterekkel.
|
||||
Például az 1d2h3m jelentése 1 nap, 2 óra és 3 perc.</p>
|
||||
Például az 1d2h3m jelentése 1 nap, 2 óra és 3 perc. (NINCS IMPLEMENTÁLVA)</p>
|
||||
<p><font class="set">set::dns::retries <próbálkozások-száma>;</font><br>
|
||||
Egy számérték, amely meghatározza, hányszor történjen újrapróbálkozás a DNS lekérdezésben,
|
||||
ha hiba fordul elő.</p>
|
||||
ha hiba fordul elő. (NINCS IMPLEMENTÁLVA)</p>
|
||||
<p><font class="set">set::dns::nameserver <dns-szerver-neve>;</font><br>
|
||||
Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét.</p>
|
||||
Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét. (NINCS IMPLEMENTÁLVA)</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Meghatározza azt az IP címet, amelyre bindeljen a szerver a lekérdezésekhez; a lehető legritkábban van szükség rá.</p>
|
||||
<p><font class="set">set::network-name <hálózat-neve>;</font><br>
|
||||
@@ -2434,6 +2453,14 @@ set {
|
||||
Meghatározza azt a fájlnevet, ahol a szerver privát SSL kulcsa tartozkodik.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <fájlnév>;</font><br>
|
||||
Meghatározza azt a fájlnevet, ahol a megbízható CA-k tanúsítványai tartózkodnak.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <kódoló-algoritmusok>;</font><br>
|
||||
Meghatározza, milyen kódoló algoritmusok legyenek engedélyezve, alapértelmezésben az OpenSSL dönti el.
|
||||
Lásd a <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">http://www.openssl.org/docs/apps/ciphers.html</a>
|
||||
oldalt a kódoló algoritmusok meghatározásának hogyanjáról.</p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <érték>;</font><br>
|
||||
Meghatározza, hogy hány bájt után kelljen az SSL viszonynak új kézfogás (pl.: 20m a 20 megabájthoz).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <időérték>;</font><br>
|
||||
Meghatározza, hogy mennyi idő múlva kelljen az SSL viszonynak új kézfogás (pl.: 1h az 1 órához).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Letiltja a tanúsítvány nélküli kliensek kapcsolódását.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -2486,6 +2513,14 @@ set {
|
||||
<p><font class="set">set::spamfilter::except <célpont(ok)></font><br>
|
||||
Ezek a célpontok kivételek a spamszűrések alól (nem lesz tevékenység végrehajtva),
|
||||
lehet egyetlen célpont vagy egy vesszővel elválaszott felsorolás. Pl.: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <érték></font><br>
|
||||
Ha egy spamszűrő lefutása több ideig tart, mint a megadott ezredmásodpercek száma,
|
||||
(1000ms = 1 másodperc), akkor minden operátor kap egy figyelmeztető üzenetet (alapérték: 250).
|
||||
Lásd még: <a href="#feature_spamfilter_slow">Lassú spamszűrők érzékelése</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <érték></font><br>
|
||||
Ha egy spamszűrő lefutása több ideig tart, mint a megadott ezredmásodpercek száma,
|
||||
(1000ms = 1 másodperc), akkor a spamszűrő le lesz törölve (alapérték: 500).
|
||||
Lásd még: <a href="#feature_spamfilter_slow">Lassú spamszűrők érzékelése</a>.</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Valahányszor a felhasználó nicknevet változtat, ellenőrzi, hogy az ÚJ név le van-e
|
||||
tiltva. Ha igen, nem engedélyezi a nickváltást. Az alapértelmezés "yes".</p>
|
||||
@@ -2499,6 +2534,11 @@ AU). A lek
|
||||
Legfeljebb ennyi ideig vár az időszerverek válaszára. Ez egy érték 1 és 5 között; több nem lehet,
|
||||
mert túl nagy pontatlanságot okozna. Ez az érték alapértelmezésben 3, és nem valószínű, hogy
|
||||
érdemes megváltoztatni.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Ha a NOSPOOF engedélyezett (általában Windowson), küldjön egy figyelmeztetést minden felhasználónak, hogy
|
||||
használják a "/quote pong .." parancsot, ha kapcsolódási problémájuk van. Az alapértelmezés "no".</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Engedélyezi vagy letiltja az AWAY értesítéseket a WATCH-ban. Az alapértelmezés "yes".</p>
|
||||
<p></p> </div>
|
||||
<p><b><font size="+2">5 – További fájlok<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
@@ -3048,12 +3088,12 @@ tov
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">globops <üzenet></td>
|
||||
<td>Üzenetet küld minden IRCopnak.</td>
|
||||
<td>Üzenetet küld minden globális IRCopnak.</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">chatops <üzenet></td>
|
||||
<td>Üzenetet küld minden +c módú IRCopnak</td>
|
||||
<td>Üzenetet küld minden (globális és lokális) IRCopnak</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3481,10 +3521,14 @@ Viszont a t
|
||||
Vannak kernel patchek, amelyek nehezebbé teszik a szegmens és verem alapú sebezhetőségek működését.
|
||||
Ez szép és jó, azonban ne ez legyen a figyelmed középpontja, sokkal nagyobb veszély van arra, hogy más módon
|
||||
aknázzák ki a szervere(i)det... különböző okok miatt.<br>
|
||||
Egy másik lehetőség, hogy engedélyezed a chroot-olást (csak *NIX esetén), ami biztosíték arra, hogy ha sikerül is a kiaknázás,
|
||||
a támadót bezártad az UnrealIRCd könyvtárba, és nem módosíthat más
|
||||
fájlokat. Ehhez a módszerhez rendszergazdai jogosultságokon kellenek, valamint hogy módosítsd az include/config.h-t
|
||||
(keress rá a CHROOTDIR-re, és állítsd be az IRC_USER és IRC_GROUP makrókat is), aztán fordítsd újra.<br>
|
||||
<br>
|
||||
Van egy dolog viszont, amit meg kellene tenned, ez pedig az, hogy MINDIG HASZNÁLD A LEGFRISSEBB VERZIÓT, és
|
||||
Van egy dolog, amit határozottan érdemes megtenned, ez pedig, hogy MINDIG HASZNÁLD A LEGFRISSEBB VERZIÓT, és
|
||||
jelentkezz fel az <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank">unreal-notify levelezőlistára</a> most rögtön,
|
||||
hogy megkaphasd a a kiadási közleményeket (az unreal-notify csak kiadási közleményekre
|
||||
hogy megkaphasd a kiadási közleményeket (az unreal-notify csak kiadási közleményekre
|
||||
van, így csak 1 levelet jelent X havonta). A kiadási közleményben rendszerint világosan fel van tüntetve, ha
|
||||
a kiadás (nagyobb veszélyességű) biztonsági hibák javítását tartalmazza, de egyébként is jó, ha frissítesz.<br>
|
||||
</div></p>
|
||||
@@ -3509,24 +3553,24 @@ Nagyon sokan nem is t
|
||||
<div class="desc"><p>A konstansok a regexp legegyszerűbb elemei. Alapvetően ezek olyan karaktek, amelyeket egyszerű szövegként kezelünk. Például a "teszt" minta öt konstansból, a "t", "e", "s", "z" és "t" karakterekből áll. Az Unrealben a konstansok a kis- és nagybetűkre nem érzékenyek, ezért az előző regex illeszkedik a "teszt"-re valamint a "TESZT"-re is. Minden karakter, ami nem "metakarakter" (avagy különleges jelentésű karakter; ezeket a következő szekciókban tárgyaljuk), konstansként lesz kezelve. Egy karaktert határozottan konstanssá is tehetsz a visszaper (\) jellel. Például a pont (.) egy metakarakter. Ha szeretnénk a mintánkba belevenni egy konstans pontot, használjuk a \. jelölést, és az Unreal ezt pontként (írásjelként) fogja kezelni. Az is lehetséges, hogy egy olyan karaktert akarsz vizsgálni, ami nem írható be könnyen, mondjuk az ASCII kódú 3-as karakter (szín). Inkább, mint hogy egy IRC klienst kelljen használnunk ennek a karakternek az elkészítéséhez, használhatunk egy különleges karaktersorozatot, a "\x"-et. Ha beírjuk, hogy \x3, úgy lesz értelmezve, hogy ő 3-as ASCII karakter. A \x utáni szám hexadecimális ábrázolású, és "\x0"-tól "\xFF"-ig terjedhet.</p></div>
|
||||
|
||||
<p><font size="+2"><b>A.2 A pont operátor<a name="regexdot"></a></b></font></p>
|
||||
<div class="desc"><p>A pont (.) operátort "akármilyen karakter" egyeztetésére használjuk. Egyetlen karakterre illeszkedik, aminek bármilyen értéke van. Például az "a.c" regex illeszkedik a "abc"-re, "adc"-re stb. Viszont nem fog illeszkedni az "abd"-re, mert az "a" és "c" konstansok, amelyeknek pontosan kell illeszkedniük.</p></div>
|
||||
<div class="desc"><p>A pont (.) operátort "bármilyen karakter" egyeztetésére használjuk. Egyetlen karakterre illeszkedik, aminek bármilyen értéke van. Például az "a.c" regex illeszkedik a "abc"-re, "adc"-re stb. Viszont nem fog illeszkedni az "abd"-re, mert az "a" és "c" konstansok, amelyeknek pontosan kell illeszkedniük.</p></div>
|
||||
|
||||
<p><font size="+2"><b>A.3 Ismétlő operátorok<a name="regexrep"></a></b></font></p>
|
||||
<div class="desc"><p>Az egyik gyakori hiba, amit az emberek elkövetnek a regexekkel, hogy feltételezik, úgy működnek, mint a joker karakterek, vagyis hogy a * és ? karakterek pontosan úgy illeszkednek, mint egy joker karakterben. Noha ezeknek a karaktereknek valóban hasonló a jelentésük egy regexben, mégsem pontosan ugyanazok. Továbbá a reguláris kifejezések támogatnak más, haladóbb ismétlési módszereket is.
|
||||
<div class="desc"><p>Az egyik gyakran elkövetett hiba a regexeknél az, hogy azt feltételezzük, hogy úgy működnek, mint a joker karakterek. Vagyis hogy a * és ? karakterek pontosan úgy illeszkednek, mint a joker karakterek. Noha ezeknek a karaktereknek valóban hasonló a jelentésük egy regexben, mégsem pontosan ugyanazok. Továbbá a reguláris kifejezések támogatnak más, fejlettebb ismétlési módszereket is.
|
||||
<p>
|
||||
A legegyszerűbb ismétlő operátor a ? operátor. Ez az operátor az előző karakternek 0 vagy 1 előfordulására illeszkedik. Ez az "előző karakternek" az, amiben a reguláris kifejezésbeli ? különbözik a joker karaktertől. Egy joker karakterben az "a?c" kifejezés illeszkedik egy "a"-ra, amelyet bármilyen karakter követ (vagy semmilyen), és ezt egy "c" karakter követi. Egy reguláris kifejezésben más jelentése van. Ott illeszkedik 0 vagy 1 egy "a" betűre, amelyet a "c" követ. Alaptvetően a ? módosítja az "a"-t úgy, hogy megadja, hány "a" fordulhat elő. Ahhoz, hogy a ?-et joker karakterként emuláljuk, a . operátort használjuk. A "a.?c" regex egyenértékű az előzőleg említett joker karakterrel. Olyan "a" betűre illeszkedik, amelyet 0 vagy 1 bármilyen karakter követ (a "?" módosítja a "."-ot), és azt követi egy "c".
|
||||
A legegyszerűbb ismétlő operátor a ? operátor. Ez az operátor az előző karakternek 0 vagy 1 előfordulására illeszkedik. Ez az "előző karakternek" az, amiben a reguláris kifejezésbeli ? különbözik a joker karaktertől. Egy joker karakterben az "a?c" kifejezés illeszkedik egy olyan "a"-ra, amely után bármilyen karakter áll, és ezt egy "c" karakter követi. Egy reguláris kifejezésben más jelentése van. Ott illeszkedik 0 vagy 1 "a" betűre, amelyet a "c" követ. Alapvetően a ? módosítja az "a"-t úgy, hogy megadja, hány "a" fordulhat elő. Ahhoz, hogy emuláljuk a ?-et mint joker karaktert, a . operátort használjuk. A "a.c" regex egyenértékű az előzőleg említett joker karakterrel. Olyan "a" betűre illeszkedik, amelyet egy tetszőleges karakter követ, és azt követi egy "c".
|
||||
<p>
|
||||
A következő ismétlő operátor a *. Ez az operátor szintén hasonlít egy joker karakterre. Az előző karakternek 0 vagy több előfordulására illeszkedik. Megjegyzendő, hogy ez az "előző karakternek" olyasvalami, ami minden ismétlő operátor jellemzője. Az "a*c" illeszkedik 0 vagy több "a"-ra, amelyet "c" követ. Például az "aaaaaac"-re illeszkedik. És mégegyszer, ahhoz, hogy ez az operátor joker karakterként működjön, használjuk az "a.*c" kifejezést, aminek hatására a "*" a "."-ot (bármilyen karakter) módosítja, inkább mint az "a"-t.
|
||||
A következő ismétlő operátor a *. Ez az operátor szintén hasonlít egy joker karakterre. Az előző karakternek 0 vagy több előfordulására illeszkedik. Megjegyzendő, hogy ez az "előző karakternek" olyasvalami, ami minden ismétlő operátor jellemzője. Az "a*c" illeszkedik 0 vagy több "a"-ra, amelyet "c" követ. Például az "aaaaaac"-re illeszkedik. És mégegyszer: ahhoz, hogy ez az operátor joker karakterként működjön, használjuk az "a.*c" kifejezést, aminek hatására a "*" a "."-ot (bármilyen karakter) módosítja, nem pedig az "a"-t.
|
||||
<p>
|
||||
A + operátor nagyon hasonló a *-hoz. Viszont ahelyett, hogy 0 vagy több karakterre illeszkedne, illeszkedik 1 vagy több karakterre. Alapvetően az "a*c" illeszkedik a "c"-re (0 "a", amelyet c követ), ugyanakkor az "a+c" nem. Az "a+" azt fejezi ki, hogy kell lennie "legalább" 1 "a"-nak. Így a "c"-re nem illeszkedik, de az "ac"-re és "aaaaaaaaac"-re igen.
|
||||
A + operátor nagyon hasonló a *-hoz. Viszont ez 0 vagy több karakter helyett 1 vagy több karakterre illeszkedik. Alapvetően tehát az "a*c" illeszkedik magára a "c"-re is (0 darab "a"-ra, amelyet egy "c" követ), ugyanakkor az "a+c" már nem. Az "a+" azt fejezi ki, hogy lennie kell "legalább" 1 "a"-nak. Így a "c"-re nem illeszkedik, de az "ac"-re és "aaaaaaaaac"-re igen.
|
||||
<p>
|
||||
A leghaladóbb ismétlő operátor "intervallum" néven ismert. Egy intervallum operátorral pontos megszorítást tehetünk arra, hogy az előző karakterből mennyinek kell lennie. Például lehet, hogy pontosan 8 "a" megkövetelésére van szükségünk, vagy legalább 8 "a"-ra vagy 3 és 5 közötti darabszámú "a"-ra. Egy intervallum operátorral ezek mindegyike megvalósítható. Az alapvető szintaktikája az "{M,N}", ahol M az alsó határ, és N a felső határ. Például 3 és 5 közötti darabszámú "a" egyeztetésére azt írjuk, hogy "a{3,5}". Mindamellett nem kötelező mindkét számot megadni. Ha "a{8}"-at írunk, az azt jelenti, hogy pontosan 8 darab "a"-nak kell lennie. Ezért az "a{8}" megegyezik az "aaaaaaaa"-val. Ahhoz, hogy a "legalább"-os példát valósítsuk meg, alapvetően egy olyan intervallumot adunk meg, aminek csak alsó határa van. Eképpen a legalább 8 "a"-ra azt írjuk, hogy "a{8,}".
|
||||
A legfejlettebb ismétlő operátor az "intervallum" néven ismert. Egy intervallum operátorral pontos megszorítást tehetünk arra, hogy az előző karakterből mennyinek kell lennie. Például lehet, hogy pontosan 8 darab "a" megkövetelésére van szükségünk, vagy legalább 8 "a"-ra vagy 3 és 5 közötti darabszámú "a"-ra. Egy intervallum operátorral ezek mindegyike megvalósítható. Az alapvető szintaktikája az "{M,N}", ahol M az alsó határ, és N a felső határ. Például 3 és 5 közötti darabszámú "a" egyeztetésére azt írjuk, hogy "a{3,5}". Mindamellett nem kötelező mindkét számot megadni. Ha "a{8}"-at írunk, az azt jelenti, hogy pontosan 8 darab "a"-nak kell lennie. Ezért az "a{8}" megegyezik az "aaaaaaaa"-val. Ahhoz, hogy a "legalább"-os példát valósítsuk meg, alapvetően egy olyan intervallumot adunk meg, aminek csak alsó határa van. Eképpen a legalább 8 "a"-ra azt írjuk, hogy "a{8,}".
|
||||
<p>
|
||||
Alapértelmezésben mindegyik ismétlő operátor "mohó". A mohóság egy kissé összetett fogalom. Alapvetően azt jelenti, hogy az operátor annyi karakterre illeszkedik, amennyire csak tud. Ezt a legkönnyebb elmagyarázni egy példával. <p>Mondjuk, van a következő szövegünk:<br>
|
||||
HELLO<br>
|
||||
És a következő regexünk:<br>
|
||||
.+L<p>
|
||||
Ebben a példában, lehet, hogy azt gondoljuk, hogy a .+ a "HE"-re illeszkedik. Azonban ez helytelen. Mivel a + mohó, a "HEL"-re illeszkedik. Az indok az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben mégis megengedi a teljes regexnek, hogy illeszkedjen. Ebben a példában azért választotta a "HEL"-t, mert az egyetlen másik követelmény csak az, hogy a ".+"-ra illeszkedő szöveg utáni karakternek "L"-nek kell lennie. Mivel a szöveg "HELLO", a "HEL"-t "L" követi, ezért illeszkedik. Néha viszont jól jön, ha egy operátort nem mohóvá tudunk tenni. Ezt úgy tehetjük meg, hogy "?"-et teszünk az ismétlő operátor után. A fentit módosítva ".+?L"-re, a .+? most már a "HE"-re illeszkedik, mintsem a "HEL"-re, mert nem mohó állapotba helyeztük. A ? bármilyen ismétlő karakter után helyezhető: ??, *?, +?, {M,N}?.</p></div>
|
||||
Ebben a példában, lehet, hogy azt gondoljuk, hogy a .+ a "HE"-re illeszkedik. Azonban ez helytelen. Mivel a + mohó, a "HEL"-re illeszkedik. Az oka az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben továbbra is megengedi a teljes regexnek, hogy illeszkedjen. Ebben a példában azért választotta a "HEL"-t, mert az egyetlen másik követelmény csak az, hogy a ".+"-ra illeszkedő karaktersorozat után lévő karakternek "L"-nek kell lennie. Mivel a szöveg "HELLO", a "HEL"-t "L" követi, ezért illeszkedik. Néha viszont jól jön, ha egy operátort nem mohóvá tudunk tenni. Ezt úgy tehetjük meg, hogy egy "?"-et teszünk az ismétlő operátor után. A fentit módosítva ".+?L"-re, a .+? most már a "HE"-re illeszkedik, mintsem a "HEL"-re, mert nem mohó állapotba helyeztük. A ? bármilyen ismétlő karakter után helyezhető: ??, *?, +?, {M,N}?.</p></div>
|
||||
|
||||
<p><font size="+2"><b>A.4 Zárójeles kifejezések<a name="regexbracket"></a></b></font></p>
|
||||
<div class="desc">A zárójeles kifejezések kényelmes módot nyújtanak ahhoz, hogy "vagy" műveletet végezzünk. Például ha azt szeretnénk mondani, hogy "illeszkedjen az a-ra vagy a b-re". A zárójeles kifejezés onnan kapja a nevét, hogy zárójelek ([]) közé tesszük. Az alapvető szintaktikája az, hogy ez a kifejezés magában foglal egy karaktersorozatot. Ezeket a karaktereket majd úgy kezeli, mintha "vagy" lenne közöttük. Például az "[abc]" kifejezés illeszkedik egy "a", egy "b" vagy egy "c" karakterre. Ezért az "a[bd]c" regex illeszkedik az "abc"-re és az "adc"-re, de az "acc"-re nem.
|
||||
|
||||
+66
-22
@@ -25,18 +25,18 @@
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
Dutch |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<br><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">Version: 3.2.5</font><br>
|
||||
<b>Laatste documentatie wijziging:</b> 2006-06-15</div>
|
||||
<font size="4">Version: 3.2.8</font><br>
|
||||
<b>Laatste documentatie wijziging:</b> 2009-01-03</div>
|
||||
|
||||
<br>
|
||||
<b>Hoofd programmeurs:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Medewerkers:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Documentatie:</b> CKnight^ / Syzop<br>
|
||||
<b>Nederlandse vertaling:</b> Mark (<a href="irc://irc.unrealircd.com/unreal-dutch">#unreal-dutch op irc.unrealircd.com</a>)<br>
|
||||
<b>Nederlandse vertaling:</b> Mark<br>
|
||||
<p>Om dit document te bekijken heb je een geschikte browser nodig, welke hier beneden staan. De meest
|
||||
recente documentatie staat op <a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">
|
||||
http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a> en een FAQ staat op
|
||||
@@ -194,7 +194,7 @@ Windows:<br>
|
||||
<li><b>*NIX versions:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9, 10)
|
||||
@@ -261,9 +261,11 @@ Windows:<br>
|
||||
gebruikt md5 intern en het eist dat je 3 set::cloak-keys:: gebruikt, bestaande uit een mix van
|
||||
kleine letters (a-z), grote letters (A-Z) en getallen (0-9) [bv: "AopAS6WQH2Os6hfosh4SFJHs"]. Zie
|
||||
Voorbeeld.conf voor een voorbeeld.<br>
|
||||
<p>Cloak keys MOETEN hetzelfde zijn op ALLE servers in een network. Ook moeten cloak keys geheim blijven,
|
||||
<p>Cloak keys MOETEN hetzelfde zijn op ALLE servers in een netwerk. Ook moeten cloak keys geheim blijven,
|
||||
omdat het mogelijk is om de echte hostname te achterhalen wanneer je de keys weet (wat gebruikersmode +x
|
||||
onbruikabar maakt).</p>
|
||||
<p>Tip: Wanneer je met een *NIX systeem werkt, kun je './unreal gencloak' gebruiken in
|
||||
je shell. Dit genereert 3 willekeurige strings die je kunt gebruiken.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.2 - Modules</b></font><a name="feature_modules"></a></p><div class="desc">
|
||||
@@ -602,17 +604,34 @@ Modules kunnen ook andere uitgebreide ban types toevoegen.<br>
|
||||
<b>set::spamfilter::ban-reason</b> geeft je de mogelijkheid een standaardreden op te geven (standaard: 'Spam/advertising')<br>
|
||||
<b>set::spamfilter::virus-help-channel</b> geeft je de mogelijkheid een kanaal te specificeren dat gejoined wordt door 'viruschan' (standaard: #help)<br>
|
||||
<b>set::spamfilter::virus-help-channel-deny</b> geeft je de mogelijkheid om normale joins in virus-help-channel te blokkeren (standaard: no)<br>
|
||||
</p></div>
|
||||
</p>
|
||||
<p>
|
||||
<font size="+1"><b>Slow Spamfilter Detection</b><a name="feature_spamfilter_slow"></a><br>
|
||||
Een spamfilter regex kan de IRCd aanzienlijk trager maken. Dit hangt
|
||||
sterk af van de regex die je gebruikt (en hoe de regex engine deze
|
||||
gebruikt). Sommige zijn erg snel en UnrealIRCd kan er duizenden
|
||||
uitvoeren per seconde. Anderen kunnen enorm traag zijn en de IRCd
|
||||
bevriezen.<br>
|
||||
Om dit tegen te gaan, heeft Unreal Slow Spamfilter Detection:
|
||||
voor elke spamfilter checkt Unreal, elke keer wanneer het uitgevoerd
|
||||
wordt, hoelang het uitvoeren duurt. Wanneer een bepaalde grens bereikt
|
||||
wordt, waarschuwt de IRCd of verwijdert de IRCd de complete spamfilter.<br>
|
||||
De waarschuwing wordt ingesteld door <b>set::spamfilter::slowdetect-warn</b>
|
||||
(standaard: 250ms) en het automatisch verwijderen wordt ingesteld door <b>set::spamfilter::slowdetect-fatal</b> (standaard: 500ms).
|
||||
Je kunt ze beiden op 0 (nul) zetten om de functies uit te schakelen.<br>
|
||||
Deze feature is momenteel niet beschikbaar voor Windows.<br>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
|
||||
<p>UnrealIRCD geeft je nu ook de mogelijkheid om IP reeksen te bannen, door middel van CIDR
|
||||
(Classess Interdomain Routing). IPs worden door ISPs uitgedeeld door middel van CIRD. Dit geeft
|
||||
je de mogelijkheid om heel makkelijk een ISP te bannen. CIDR wordt ondersteund voor zowel IPv4
|
||||
als IPv6. CIDR masks zijn toegestaan in allow::ip, ban user::mask, ban ip::mask, except ban::mask
|
||||
except throttle::mask, en except tkl::mask (for gzline, gline en shun). Tevens kan CIDR gebruikt
|
||||
worden met /kline, /gline, /zline, /gzline en shun. UnrealIRCd gebruikt de standaard syntax van
|
||||
IP/bits, zoals 127.0.0.0/8 (komt overeen met 127.0.0.0 - 127.255.255.255), en fe80:0:0:123::/64
|
||||
(komt overeen met fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
als IPv6. CIDR masks zijn toegestaan in allow::ip, oper::from::userhost, ban user::mask, ban ip::mask,
|
||||
except ban::mask, except throttle::mask, en except tkl::mask (for gzline, gline en shun).
|
||||
Tevens kan CIDR gebruikt worden met /kline, /gline, /zline, /gzline en shun.
|
||||
UnrealIRCd gebruikt de standaard syntax van IP/bits, zoals 127.0.0.0/8 (komt overeen met 127.0.0.0 - 127.255.255.255),
|
||||
en fe80:0:0:123::/64 (komt overeen met fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.16 - Nick Character Sets</b></font><a name="feature_nickchars"></a></p><div class="desc">
|
||||
<p>UnrealIRCd geeft je nu ook de mogelijkheid om te specificeren welke charsets/talen gebruikt morgen
|
||||
@@ -1470,7 +1489,7 @@ tld {
|
||||
channel <channel-name>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre></p>
|
||||
<p>Het TLD blok geeft je de mogelijkheid om een MOTD, rules en kanaal op te geven
|
||||
voor een gebruiker op basis van zijn/haar host. Dit is handig wanneer je MOTDs
|
||||
@@ -2014,17 +2033,20 @@ link <server-name> {
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
Een hub heeft meerdere servers aan zich gelinkt, een leaf heeft maar 1 server.. naar jou.
|
||||
Een server is of een hub, of een leaf, je kan ze niet mengen.
|
||||
Een server is altijd een leaf, tenzij je hub instelt. Ze is ook een leaf als je leaf * hebt, of leafdepth 1 is.
|
||||
</p>
|
||||
<p><b>hub</b> (optioneel)<br>
|
||||
De waarde is de mask van de servers waarmee deze hub mag verbinden (bijv. *.my.net)
|
||||
</p>
|
||||
<p><b>leaf</b> (optioneel)<br>
|
||||
De waarde is de mask van waartegen deze server zich als een leaf zal gedragen.
|
||||
De waarde is de mask waartegen deze hub <b>niet</b> mag verbinden. Als je * instelt krijg je hetzelfde
|
||||
effect als geen hub directive instellen.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (optioneel)<br>
|
||||
Wanneer leaf ingesteld is, moet dit ook worden ingesteld. De waarde is het aantal
|
||||
hops (aantal servers) welke deze server onder zich mag hebben.
|
||||
Deze waarde geeft aan hoeveel hops (aantal servers) deze server onder zich mag hebben. Bijvoorbeeld,
|
||||
1 betekent dat deze server geen enkele andere server onder zich mag hebben (een leaf). 2 betekent dat
|
||||
er gelinkt mag worden naar servers die geen servers onder zich hebben (een hub die alleen leafs linkt).
|
||||
De waarde 0 betekent geen limiet en is de standaard waarde.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
De class waarin de server geplaatst wordt. Meestal is er een aparte server-class.
|
||||
@@ -2439,12 +2461,12 @@ gemiddeld 2048:60=34 tekens per ban toe.</p>
|
||||
Een tijdsduur die specificeert hoelang een DNS server erover mag doen voordat
|
||||
er een timeout volgt. De tijd is een numerieke waarde, waarin de d voor dag staat,
|
||||
de h voor uur, m voor minute en s voor seconde. Voorbeeld: 1d2h3m betekent
|
||||
1 dag, 2 uur en 3 minuten.</p>
|
||||
1 dag, 2 uur en 3 minuten (NOG NIET INGEVOERD).</p>
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
Een numerieke waarde die instelt hoeveel keer er opnieuw geprobeerd moet worden
|
||||
een DNS lookup te voltooien.</p>
|
||||
een DNS lookup te voltooien (NOG NIET INGEVOERD).</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
De hostnaam die gebruikt moet worden voor een DNS lookup.</p>
|
||||
De hostnaam die gebruikt moet worden voor een DNS lookup (NOG NIET INGEVOERD).</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Het IP waaraan gebonden moet worden voor het resolven. Bijna nooit nodig.</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
@@ -2504,6 +2526,14 @@ gemiddeld 2048:60=34 tekens per ban toe.</p>
|
||||
Stelt in waar de SSL sleutel van de server staat.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <filename>;</font><br>
|
||||
Stelt in waar de certificaten van de vertrouwde CAs staan.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <cipherlist>;</font><br>
|
||||
Stelt in welke ciphers toegestaan worden, standaard laten we dit over aan OpenSSL.
|
||||
Zie <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">http://www.openssl.org/docs/apps/ciphers.html</a>
|
||||
hoe je een lijst van ciphers instelt.</p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <value>;</font><br>
|
||||
Stelt in na hoeveel bytes een SSL sessie opnieuw moet worden ingesteld (bijv: 20m voor 20 megabytes).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <timevalue>;</font><br>
|
||||
Stelt in na welke periode een SSL sessie opnieuw moet worden ingesteld (bijv: 1h voor 1 uur).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Gebruikers zonder certificaat worden geweigerd.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -2560,7 +2590,16 @@ gemiddeld 2048:60=34 tekens per ban toe.</p>
|
||||
<p><font class="set">set::spamfilter::except <target(s)></font><br>
|
||||
Deze kanalen worden niet gecontroleerd door spamfilters. Dit kan 1 kanaal zijn, of
|
||||
een reeks kanalen gescheiden door een komma (bijv: except "#help,#spamreport";).</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <value></font><br>
|
||||
Wanneer het uitvoeren van een spamfilter langer duurt dan de hier opgegeven tijd
|
||||
in milliseconden (1000ms = 1 seconde), wordt er een waarschuwing gestuurd naar alle
|
||||
opers (standaard: 250).
|
||||
Zie ook <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <value></font><br>
|
||||
Wanneer het uitvoeren van een spamfilter langer duurt dan de hier opgegeven tijd
|
||||
in milliseconden (1000ms = 1 seconde), wordt de spamfilter verwijderd (standaard: 500).
|
||||
Zie ook <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Wanneer de gebruiker zijn naam verandert, controleer of de NIEUWE nick gebanned zou
|
||||
worden. Zo ja, sta de naamsverandering niet toe. Standaard is dit 'yes'.</p>
|
||||
<p><font class="set">set::timesynch::enabled <yes|no></font><br>
|
||||
@@ -2573,8 +2612,13 @@ gemiddeld 2048:60=34 tekens per ban toe.</p>
|
||||
Maximale wachttijd voor een antwoord. Dit is een waarde tussen 1 en 5, hoger kan niet vanwege
|
||||
een te hoge incorrectheid. Standaard is dit 3, en er is waarschijnlijk geen goede reden
|
||||
om dit aan te passen.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Wanneer NOSPOOF aan staat (meestal op Windows), stuur dan een bericht naar de gebruiker
|
||||
om '/quote pong ..' te typen als ze problemen hebben met verbinden? Standaard is no</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Geeft je de mogelijkheid AWAY notificaties in WATCH aan/uit te zetten. Standaard is yes (ja).</p>
|
||||
|
||||
<p></p> </div>
|
||||
|
||||
<p><b><font size="+2">5 – Aanvullende bestanden<a name="addtlfiles"></a>
|
||||
</font></b></p><div class="desc">
|
||||
Als aanvulling op het configuariebestand heeft Unreal nog een aantal andere bestanden, zoals
|
||||
|
||||
+117
-54
@@ -13,21 +13,23 @@
|
||||
.desc { margin-left: 15px; }
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
<!-- $Id$ -->
|
||||
</head>
|
||||
<body>
|
||||
<A href="unreal32docs.html">English</A> | <A href="unreal32docs.de.html">German</A>
|
||||
| <A href="unreal32docs.es.html">Spanish</A> | <A href="unreal32docs.hu.html">Hungarian</A>
|
||||
| <A href="unreal32docs.fr.html">French</A> | <A href="unreal32docs.gr.html">Greek</A>
|
||||
| <A href="unreal32docs.nl.html">Dutch</A> | Russian |
|
||||
<a href="unreal32docs.tk.html">Turkish</a>
|
||||
| <A href="unreal32docs.nl.html">Dutch</A> | Russian | <a href="unreal32docs.tr.html">
|
||||
Turkish</a>
|
||||
<br>
|
||||
<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">Версия: 3.2.5</font><br>
|
||||
<b>Последнее обновление:</b> 2006-06-15</div>
|
||||
<font size="4">Версия: 3.2.8</font><br>
|
||||
<b>Последнее обновление:</b> 2009-01-03</div>
|
||||
<br>
|
||||
<b>Главные программисты:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<b>Главные программисты:</b> Stskeeps / codemastr / Syzop / Luke / aquanight /
|
||||
WolfSage<br>
|
||||
<b>Вкладчики:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel
|
||||
/ Griever / nighthawk<br>
|
||||
<b>Документация:</b> CKnight^ / Syzop
|
||||
@@ -226,7 +228,7 @@
|
||||
<li>
|
||||
Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>
|
||||
FreeBSD (4.*, 5.*)
|
||||
FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>
|
||||
NetBSD (2.*)
|
||||
<li>
|
||||
@@ -328,6 +330,10 @@
|
||||
<p>Эти ключи ДОЛЖНЫ быть одинаковыми на ВСЕХ СЕРВЕРАХ в сети. Также ключи должны
|
||||
храниться в секрете, потому что возможно получить реальный хост, зная эти ключи
|
||||
(что делает режим +x бесполезным).</p>
|
||||
<P>Подсказка: Если вы используете *NIX, то у вас есть возможность создать
|
||||
новые ключи: запустите './unreal gencloak' в шелле, результатом выполнения
|
||||
станет три строки сгенерированные случайно, которые вы сможете использовать в
|
||||
качестве ключей.</P>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.2 - Модули</b></font><a name="feature_modules"></a></p>
|
||||
<div class="desc">
|
||||
@@ -898,6 +904,24 @@
|
||||
<b>set::spamfilter::virus-help-channel-deny</b> позволяет запретить нормальный
|
||||
вход на virus-help-channel (по умолчанию: no)<br>
|
||||
</p>
|
||||
<p>
|
||||
<font size="+1"><B>Обнаружение медленного спамфильтра</B></font><a name="feature_spamfilter_slow"></a><br>
|
||||
Регулярное выражение спамфильтра может замедлить работу IRCd. Всё зависит от
|
||||
того, какое регулярное выражение вы использовали (и как движок регулярных
|
||||
выражений обрабатывает его). Некоторые из них очень быстро выполняются: и
|
||||
UnrealIRCd может выполнять их тысячами в секунду. Другие же очень медленны и
|
||||
может занять несколько секунд на выполнение, таким образом остановить
|
||||
выполнение IRCd.<br>
|
||||
Чтобы справиться с этим, в Unreal есть новая функция "Обнаружение медленного
|
||||
спамфильтра": Для каждого спамфильтра Unreal проверяет, сколько времени займёт
|
||||
его выполнение. Если это время превышает порог, заданный в конфигурации, IRCd
|
||||
предупредит или же удалит спамфильтр.<br>
|
||||
Показ предупреждения конфигурируется через <b>set::spamfilter::slowdetect-warn</b>
|
||||
(по умолчанию: 250ms) и автоматическое удаление через параметр <b>set::spamfilter::slowdetect-fatal</b>
|
||||
(по умолчанию: 500ms). Если вы хотите отключить "Обнаружение медленного
|
||||
спамфильтра", то установите оба значения в 0 (ноль).<br>
|
||||
Этот функционал сейчас не доступен в Windows.<br>
|
||||
</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p>
|
||||
<div class="desc">
|
||||
@@ -905,12 +929,12 @@
|
||||
позволяет банить диапазоны IP. Т.к. IP адреса провайдера размещены посредством
|
||||
CIDR, устанавливая баны с помощью CIDR, можно легко забанить провайдера. Unreal
|
||||
поддерживает CIDR для протоколов IPv4 и IPv6. CIDR маски можно использовать в
|
||||
allow::ip, ban user::mask, ban ip::mask, except ban::mask, except
|
||||
throttle::mask, и except tkl::mask (для gzline, gline и shun). Дополнительно,
|
||||
CIDR может быть использован в /kline, /gline, /zline, /gzline и /shun. Unreal
|
||||
использует стандартный синтакс для IP/bits, т.е., 127.0.0.0/8 (влияет на
|
||||
127.0.0.0 - 127.255.255.255), и fe80:0:0:123::/64 (влияет на
|
||||
fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p>
|
||||
allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except
|
||||
ban::mask, except throttle::mask, и except tkl::mask (для gzline, gline и
|
||||
shun). Дополнительно, CIDR может быть использован в /kline, /gline, /zline,
|
||||
/gzline и /shun. Unreal использует стандартный синтакс для IP/bits, т.е.,
|
||||
127.0.0.0/8 (влияет на 127.0.0.0 - 127.255.255.255), и fe80:0:0:123::/64
|
||||
(влияет на fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.16 - Использование национальных наборов символов в никах</b></font><a name="feature_nickchars"></a></p>
|
||||
<div class="desc">
|
||||
@@ -2159,7 +2183,7 @@ loadmodule "modules/cloak.dll";
|
||||
channel <имя-канала>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre>
|
||||
<P></P>
|
||||
<p>Блок tld позволяет вам определить сообщение дня(motd), правила и канал для
|
||||
@@ -2766,22 +2790,25 @@ deny channel {
|
||||
md5, sha1, ripemd-160). Вы можете не трогать тип авторизации и использовать
|
||||
пароль в текстовом виде. Часто этот пароль совпадает с password-connect.
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
<P><b>hub vs leaf</b><br>
|
||||
Хаб позволяет соединения с несколькими серверами, а лист - только с одним.
|
||||
Сервер может быть или хабом, или листом, нельзя комбинировать данные опции.
|
||||
</p>
|
||||
<p><b>hub</b> (необязателен)<br>
|
||||
Сервер является листом до тех пор, пока не имеет директивы hub. Сервер
|
||||
является листом также, если у него указана директива leaf * или
|
||||
директива leafdepth установлена 1.</P>
|
||||
<P><b>hub</b> (необязателен)<br>
|
||||
Значение - это маска, указывающая, какие сервера могут присоединиться к данному
|
||||
хабу (пример: *.my.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (необязателен)<br>
|
||||
Маска, с которой этот сервер может выступать как лист.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (необязателен)<br>
|
||||
Если определён этот параметр, то должен быть определён и leaf. Значение
|
||||
определяет глубину (количество переходов), которую не должен превышать данный
|
||||
сервер до указанного.
|
||||
</p>
|
||||
</P>
|
||||
<P><b>leaf</b> (необязателен)<br>
|
||||
Значение - это маска, указывающая с какими серверами данный сервер <STRONG>не</STRONG>
|
||||
будет хабом. Указывая значение в * будет равнозначным как неимение
|
||||
директивы hub.</P>
|
||||
<P><b>leafdepth</b> (необязателен)<br>
|
||||
Значение определяет глубину (количество переходов), которые может иметь данный
|
||||
сервер. Например, 1 - значит, что сервер не может иметь линков под собой
|
||||
(лист), 2 - значит, что сервер может иметь под собой ещё линки, но те сервера
|
||||
больше не могут (т.к. только хабы могут линковать листы). Значение 0 -
|
||||
определяет отсутствие ограничения и является значением по умолчанию.</P>
|
||||
<p><b>class</b><br>
|
||||
Класс сервера, для этого часто используется класс server.
|
||||
</p>
|
||||
@@ -3126,6 +3153,12 @@ cgiirc {
|
||||
<p><font class="set">set::modes-on-join <+режимы>;</font><br>
|
||||
Режимы, устанавливаемые на канале при его создании. Не все режимы возможно
|
||||
установить, используя эту опцию (+qaohvbeOAzlLk НЕЛЬЗЯ установить).</p>
|
||||
<p><font class="set">set::level-on-join <op|none>;</font><br>
|
||||
Пользователь, который первый зашёл на канал, получит указаннй статус. Это будет
|
||||
либо 'op' (оператор канала, по умолчанию), либо 'none' (т.е. вообще никакого).</p>
|
||||
<p><font class="set">set::level-on-join <op|none>;</font><br>
|
||||
Режим, который получит пользователь, первым зашедший на канал. Это может быть
|
||||
'op' (оператор канала, используется по умолчанию) либо 'none'.</p>
|
||||
<p><font class="set">set::restrict-usermodes <режимы></font><br>
|
||||
Запрещает пользователям устанавливать/снимать ссебя указанные режимы (не
|
||||
используйте + или -).<br>
|
||||
@@ -3255,13 +3288,13 @@ cgiirc {
|
||||
<p><font class="set">set::dns::timeout <интервал-времени>;</font><br>
|
||||
Интервал времени, определяющий таймаут DNS-сервера. Это строка, где d означает
|
||||
дни, h - часы, m - минуты и s - секунды. К примеру, 1d2h3m означает 1 день, 2
|
||||
часа и 3 минуты.</p>
|
||||
часа и 3 минуты (НЕ РЕАЛИЗОВАНО).</p>
|
||||
<p><font class="set">set::dns::retries <количество-повторов>;</font><br>
|
||||
Число, определяющее количество попыток запроса DNS перед выдачей сообщения об
|
||||
ошибке.</p>
|
||||
ошибке (НЕ РЕАЛИЗОВАНО).</p>
|
||||
<p><font class="set">set::dns::nameserver <имя-dns-сервера>;</font><br>
|
||||
Определяет имя сервера (hostname), который будет использован в качестве DNS
|
||||
запросов.</p>
|
||||
запросов (НЕ РЕАЛИЗОВАНО).</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Привязка к определенному IP для DNS-запросов, очень редко используется.</p>
|
||||
<p><font class="set">set::network-name <имя-сети>;</font><br>
|
||||
@@ -3326,6 +3359,16 @@ cgiirc {
|
||||
Определяет имя файла, в котором находится приватный ключ SSL.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <имя-файла>;</font><br>
|
||||
Определяет имя файла, где указаны сертификаты доверенных CA.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <cipherlist>;</font><br>
|
||||
Определяет разрешённые шифры, по умолчанию используются из OpenSSL. Чтобы
|
||||
ознакомиться со списком, посетите <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">
|
||||
http://www.openssl.org/docs/apps/ciphers.html</a></p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <значение>;</font><br>
|
||||
Определяет, через какое количество байт SSL-сессия должна быть переустановлена
|
||||
(пример: 20m для 20 мегабайт).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <длительность>;</font><br>
|
||||
Определяет, через какое количество времени SSL-сессия должна быть
|
||||
переустановлена (пример: 1h для 1 часа).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Запрещает пользователей без сертификата.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -3392,6 +3435,16 @@ cgiirc {
|
||||
Канал(-ы), которые исключаются от фильтрации спама (т.е. никаких действий
|
||||
предпринятоне будет). Это может быть один канал, либо несколько, разделённых
|
||||
запятыми. Пример: except "#help,#spamreport";</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <значение></font><br>
|
||||
Если выполнение спамфильтра занимает время большее, чем указано ( в
|
||||
милисекундах, 1 секунда = 1000 мс), то всем операторам будет отправлено
|
||||
уведомление (по умолчанию: 250). Смотрите также <a href="#feature_spamfilter_slow">Обнаружение
|
||||
медленного спамфильтра</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <значение></font><br>
|
||||
Если выполнение спамфильтра занимает время большее, чем указано ( в
|
||||
милисекундах, 1 секунда = 1000 мс), то спамфильтр удаляется (по умолчанию:
|
||||
500). Смотрите также <a href="#feature_spamfilter_slow">Обнаружение медленного
|
||||
спамфильтра</a>.</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no>;</font><br>
|
||||
Где бы пользователь не менял свой ник, будет происходить проверка на бан для
|
||||
НОВОГО ника. Если он будет попадать под бан, то ник не изменится. Значение по
|
||||
@@ -3408,6 +3461,13 @@ cgiirc {
|
||||
Максимальное время ожидания ответа от сервера. Переменная, принимающая значение
|
||||
от 1 до 5 (нет смысла величины большей, т.к. возникнет погрешность). По
|
||||
умолчанию установлено в 3 и, по большому счёту, нет смысла менять это значение.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Когда включён NOSPOOF (обычно в ОС Windows), то он посылает предупреждение
|
||||
каждому пользователю использовать '/quote pong ..', если он имеет проблемы с
|
||||
подключением. По умолчанию отключено (no).</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Позволяет включать/отключать нотификацию AWAY (ухода) в команде WATCH. По
|
||||
умолчанию включено (yes).</p>
|
||||
</div>
|
||||
<p><b><font size="+2">5 – Дополнительные файлы<a name="addtlfiles"></a> </font></b>
|
||||
</p>
|
||||
@@ -4164,12 +4224,12 @@ cgiirc {
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">globops <сообщение></td>
|
||||
<td>Отправляет сообщение всем операторам</td>
|
||||
<td>Отправляет сообщение всем глобальным операторам</td>
|
||||
<td>Оператор</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">chatops <сообщение></td>
|
||||
<td>Отправляет сообщение всем операторам с режимом +c</td>
|
||||
<td>Отправляет сообщение всем операторам (и глобальным, и локальным)</td>
|
||||
<td>Оператор</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -4616,12 +4676,10 @@ cgiirc {
|
||||
обслуживании". Большинство сетей имеют главный хаб-сервер, однако его забывают
|
||||
защитить от атак.<br>
|
||||
Я вам объясню:<br>
|
||||
1. Установите имя хаба, но<br>
|
||||
не добавляйте для него запись в dns. Данным образом, атакующий не сможет
|
||||
преобразовать хост и
|
||||
<br>
|
||||
не сможет его зафлудить. По этому просто соединяйте ваши сервера на хаб через<br>
|
||||
IP адрес или другим, непубличным хостнеймом.<br>
|
||||
1. Установите имя хаба, но не добавляйте для него запись в dns. Данным образом,
|
||||
атакующий не сможет преобразовать хост и не сможет его зафлудить. По этому
|
||||
просто соединяйте ваши сервера на хаб через IP адрес или другим, непубличным
|
||||
хостнеймом.<br>
|
||||
Пример 1: <i>link visibiblename.yournet.com { hostname 194.15.123.16; [etc] };</i>.<br>
|
||||
Пример 2: <i>link visibiblename.yournet.com { hostname
|
||||
thehostnamethatworks.yournet.com; [etc] };</i>.<br>
|
||||
@@ -4629,11 +4687,9 @@ cgiirc {
|
||||
что ваш dns сервер не позволяет передачу зон, но это уже совсем другая история
|
||||
;).<br>
|
||||
2. Другим важным шагом будет скрытие результата команды '/stats c' и другой
|
||||
stats информации, иначе<br>
|
||||
атакующие могут просто просмотреть ваши блоки соединений. Обычно, если вы
|
||||
параноик (как и я)<br>
|
||||
вы можете просто сделать: set { oper-only-stats "*"; }; чтобы ограничить
|
||||
использование /stats полностью.<br>
|
||||
stats информации, иначе атакующие могут просто просмотреть ваши блоки
|
||||
соединений. Обычно, если вы параноик (как и я), вы можете просто сделать: set {
|
||||
oper-only-stats "*"; }; чтобы ограничить использование /stats полностью.<br>
|
||||
Если вы не хотите этого, просто скройте "CdDlLXz". Более подробно об этом
|
||||
объяснено в следующей секции.<br>
|
||||
<br>
|
||||
@@ -4642,10 +4698,8 @@ cgiirc {
|
||||
чем если бы вы это сделали с самого начала, потому что IP адреса уже смогли
|
||||
узнать плохие парни.<br>
|
||||
Атакующие могут зафлудить сервера, не являющиеся хабами, однако это им доставит
|
||||
больше трудностей, чем
|
||||
<br>
|
||||
просто атаковать одну или 2 точки (хабы), и ваши хабы и сервисы будут
|
||||
оставаться живыми :).<br>
|
||||
больше трудностей, чем просто атаковать одну или 2 точки (хабы), и ваши хабы и
|
||||
сервисы будут оставаться живыми :).<br>
|
||||
</div>
|
||||
<P></P>
|
||||
<p><b><font size="+2">8.7 Раскрытие информации</font></b><a name="secinformation"></a><br>
|
||||
@@ -4702,18 +4756,27 @@ cgiirc {
|
||||
</div>
|
||||
<P></P>
|
||||
<p><b><font size="+2">8.8 Защита против эксплоитов</font></b><a name="secantiexploit"></a><br>
|
||||
<div class="desc">
|
||||
Патчи ядра усложняют задачу взлома от различных типов атак. По этому Unreal не
|
||||
является центральной точкой, которую будут атаковать, гораздо большая
|
||||
вероятность, что атака будет идти с другой стороны... по различным причинам.<br>
|
||||
<DIV class="desc">Патчи ядра усложняют задачу взлома от различных типов атак. По
|
||||
этому Unreal не является центральной точкой, которую будут атаковать, гораздо
|
||||
большая вероятность, что атака будет идти с другой стороны... по различным
|
||||
причинам.<br>
|
||||
</DIV>
|
||||
<DIV class="desc">Ещё один из способов обезопасить себя (только в *NIX системах) -
|
||||
chroot. При использовании данного средства, если сервер таки взломают, то
|
||||
злоумышленник не сможет выйти за пределы директории UnrealIRCd и,
|
||||
соответственно, не сможет причинить вреда другим файлам и системе. Данный
|
||||
способ требует прав доступа root, изменения файла include/config.h (поищите
|
||||
CHROOTDIR, а так же установите IRC_USER и IRC_GROUP) и перекомпилировании.
|
||||
<br>
|
||||
</DIV>
|
||||
<DIV class="desc">
|
||||
Первое, что вы должны сделать - это ВСЕГДА ИСПОЛЬЗОВАТЬ ПОСЛЕДНЮЮ ВЕРСИЮ,
|
||||
поэтому прямо сейчас подпишитесь на <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank">
|
||||
рассылку по уведомлениям от unreal</a>, и вы будете получать уведомления о
|
||||
релизах (unreal-notify служит только для релизов, т.е. одно письмо в X
|
||||
месяцев). Приходят уведомления об исправленных уязвимостях высокого риска,
|
||||
добавлениях обновлений для обеспечения безопасности.<br>
|
||||
</div>
|
||||
</DIV>
|
||||
<P></P>
|
||||
<p><b><font size="+2">8.9 Итоги</font></b><a name="secsummary"></a><br>
|
||||
<div class="desc">
|
||||
@@ -4728,7 +4791,7 @@ cgiirc {
|
||||
<P></P>
|
||||
<p><font size="+2"><b>9 – Часто задаваемые вопросы (ЧАВО)<a name="faq"></a></b></font></p>
|
||||
<div class="desc"><p>ЧАВО доступны в сети Интенет по <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">
|
||||
этому адресу</a></p>
|
||||
этому адресу</a>.</p>
|
||||
</div>
|
||||
<p></p>
|
||||
<p><font size="+2"><b>Регулярные выражения<a name="regex"></a></b></font></p>
|
||||
@@ -4770,8 +4833,8 @@ cgiirc {
|
||||
Оператор "?" означает повторение предыдущего символа 0 или 1 раз. Например,
|
||||
регекс "a?c" будет соответствовать образцам "ac" или "c" (т.е. символ "a" может
|
||||
быть, а может и не быть). Чтобы использовать "?" как в знакомых вам масках,
|
||||
применим оператор точки: регекс "a.?c" будет соответствовать образцу, в котором
|
||||
между символами "a" и "c" может быть (а может и нет) любой символ.
|
||||
применим оператор точки: регекс "a.c" будет соответствовать образцу, в котором
|
||||
между символами "a" и "c" будет любой символ.
|
||||
<p>
|
||||
Оператор "*" означает повторение предыдущего символа 0 или более раз. Например,
|
||||
регекс "a*c" будет соответствовать образцам "ac", "aaaaaaac" или "c" (символ
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -56,7 +56,9 @@ help Opercmds {
|
||||
" a specific command.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" ADCHAT GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" ADCHAT DNS NACHAT SETIDENT";
|
||||
" ADDMOTD GLINE OPER SHUN";
|
||||
" ADDOMOTD GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" CHATOPS GZLINE REHASH SQUIT";
|
||||
" CHGHOST HTM RESTART TEMPSHUN";
|
||||
" CHGIDENT KILL RPING TRACE";
|
||||
@@ -65,8 +67,6 @@ help Opercmds {
|
||||
" CONNECT LOCOPS SAPART WALLOPS";
|
||||
" DCCDENY MKPASSWD SDESC ZLINE";
|
||||
" DIE MODULE SETHOST";
|
||||
" DNS NACHAT SETIDENT";
|
||||
" GLINE OPER SHUN";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -79,11 +79,11 @@ help Svscmds {
|
||||
" a specific command.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSNO";
|
||||
" SVS2MODE SVSLUSERS SVSNOOP SVSWATCH";
|
||||
" SVS2SNO SVSMODE SVSO SWHOIS";
|
||||
" SVSFLINE SVSMOTD SVSPART UNSQLINE";
|
||||
" SVSJOIN SVSNICK SVSSILENCE";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSILENCE";
|
||||
" SVS2MODE SVSLUSERS SVSNOLAG SVSSNO";
|
||||
" SVS2SNO SVSMODE SVSNOOP SVSWATCH";
|
||||
" SVSFLINE SVSMOTD SVSO SWHOIS";
|
||||
" SVSJOIN SVSNICK SVSPART UNSQLINE";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -264,7 +264,7 @@ help Oflags {
|
||||
" r (can_rehash) Access to /REHASH server";
|
||||
" R (can_restart) Access to /RESTART server";
|
||||
" D (can_die) Access to /DIE server";
|
||||
" h (helpop) Oper is marked as availiable for help is not away";
|
||||
" h (helpop) Oper receives umode +h (helpop)";
|
||||
" g (can_globops) Oper can send /GLOBOPS";
|
||||
" w (can_wallops) Oper can send /WALLOPS";
|
||||
" n (can_localnotice) Oper can send Local Server Notices";
|
||||
@@ -282,6 +282,7 @@ help Oflags {
|
||||
" q (can_setq) Can use +q";
|
||||
" H (get_host) Gets +x on oper up";
|
||||
" W (get_umodew) Gets +W on oper up";
|
||||
" X (can_addline) Can use /ADDLINE";
|
||||
" d (can_dccdeny) Can use /DCCDENY";
|
||||
" ==-------------------------------oOo-----------------------------==";
|
||||
};
|
||||
@@ -901,8 +902,6 @@ help Rehash {
|
||||
" -opermotd - Rehashes the OPERMOTD";
|
||||
" -botmotd - Rehashes the BOTMOTD";
|
||||
" -garbage - Force garbage collection";
|
||||
" -ssl - Reload SSL certificate and primary key (if SSL enabled)";
|
||||
" -dns - Reload DNS information (from resolv.conf/registry)";
|
||||
};
|
||||
|
||||
help Restart {
|
||||
@@ -978,8 +977,8 @@ help Squit {
|
||||
" Usually used in routing of servers.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: SQUIT <server> [reason]";
|
||||
" Example: SQUIT leaf.* Goodbye";
|
||||
" Syntax: SQUIT <server>";
|
||||
" Example: SQUIT leaf.*";
|
||||
};
|
||||
|
||||
help Connect {
|
||||
@@ -1257,11 +1256,11 @@ help Svsnline {
|
||||
" Must be sent through an U:Lined server.";
|
||||
" The reason must be a single parameter therefore";
|
||||
" spaces are indicated by _, Unreal will internally";
|
||||
" translate these to spaces";
|
||||
" translate these to spaces.";
|
||||
" -";
|
||||
" Syntax: SVSNLINE + <reason_for_ban> :<realname>";
|
||||
" (adds realname ban for <realname>)";
|
||||
" SVSNLINE - :<realname> (removes ban for <realname>)";
|
||||
" Syntax: SVSNLINE + <reason_for_ban> :<realname> (To add a ban)";
|
||||
" SVSNLINE - :<realname> (To remove a ban)";
|
||||
" SVSNLINE * (To clear all bans)";
|
||||
" Example: SVSNLINE + sub7_drone :*sub7*";
|
||||
};
|
||||
|
||||
@@ -1305,9 +1304,24 @@ help Svs2sno {
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2SNO <nickname> <snomasks>";
|
||||
" Example: SVSSNO joe +Gc";
|
||||
" Example: SVS2SNO joe +Gc";
|
||||
};
|
||||
|
||||
help Svsnolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSNOLAG [+|-] <nickname>";
|
||||
" Example: SVSNOLAG + joe";
|
||||
};
|
||||
|
||||
help Svs2nolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2NOLAG [+|-] <nickname>";
|
||||
" Example: SVS2NOLAG + joe";
|
||||
};
|
||||
|
||||
help Spamfilter {
|
||||
" This command adds/removes global spam filters.";
|
||||
@@ -1322,7 +1336,7 @@ help Spamfilter {
|
||||
" 'kill', 'tempshun' (only shun current session), 'shun',";
|
||||
" 'kline', 'gline', 'zline', 'gzline', 'block' (blocks the msg),";
|
||||
" 'dccblock' (unable to send any dccs), 'viruschan' (part all channels";
|
||||
" and join the virus help chan).";
|
||||
" and join the virus help chan), 'warn' (warn for IRC Operators).";
|
||||
" [regex] this is the actual regex where we should block on";
|
||||
" [tkltime] the duration of the *LINEs placed by action (use '-' to use the default";
|
||||
" set::spamfilter::ban-time, this value is ignored for block/tempshun');";
|
||||
|
||||
@@ -30,14 +30,12 @@ typedef struct {
|
||||
#define AUTHTYPE_SHA1 3
|
||||
#define AUTHTYPE_SSL_CLIENTCERT 4
|
||||
#define AUTHTYPE_RIPEMD160 5
|
||||
#define AUTHTYPE_SSL_CERTFINGERPRINT_SHA1 6
|
||||
|
||||
/* md5 is always available and enabled as of Unreal3.2.1 */
|
||||
#define AUTHENABLE_MD5
|
||||
#ifdef USE_SSL
|
||||
#define AUTHENABLE_SHA1
|
||||
#define AUTHENABLE_SSL_CLIENTCERT
|
||||
#define AUTHENABLE_SSL_CERTFINGERPRINT
|
||||
#define AUTHENABLE_RIPEMD160
|
||||
/* OpenSSL provides a crypt() */
|
||||
#ifndef AUTHENABLE_UNIXCRYPT
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include "pcreposix.h"
|
||||
#include "tre/regex.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
/************************************************************************
|
||||
* Unreal Internet Relay Chat Daemon, include/class.h
|
||||
* Copyright (C) 1990 Darren Reed
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 1, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __class_include__
|
||||
#define __class_include__
|
||||
|
||||
typedef struct Class {
|
||||
int class;
|
||||
int conFreq;
|
||||
int pingFreq;
|
||||
int maxLinks;
|
||||
long maxSendq;
|
||||
int links;
|
||||
struct Class *next;
|
||||
} aClass;
|
||||
|
||||
#define Class(x) ((x)->class)
|
||||
#define ConFreq(x) ((x)->conFreq)
|
||||
#define PingFreq(x) ((x)->pingFreq)
|
||||
#define MaxLinks(x) ((x)->maxLinks)
|
||||
#define MaxSendq(x) ((x)->maxSendq)
|
||||
#define Links(x) ((x)->links)
|
||||
|
||||
#define ConfLinks(x) (Class(x)->links)
|
||||
#define ConfMaxLinks(x) (Class(x)->maxLinks)
|
||||
#define ConfClass(x) (Class(x)->class)
|
||||
#define ConfConFreq(x) (Class(x)->conFreq)
|
||||
#define ConfPingFreq(x) (Class(x)->pingFreq)
|
||||
#define ConfSendq(x) (Class(x)->maxSendq)
|
||||
|
||||
#define FirstClass() classes
|
||||
#define NextClass(x) ((x)->next)
|
||||
|
||||
extern aClass *classes;
|
||||
|
||||
extern aClass *find_class(int);
|
||||
extern int get_conf_class(aConfItem *);
|
||||
extern int get_client_class(aClient *);
|
||||
extern int get_client_ping(aClient *);
|
||||
extern int get_con_freq(aClass *);
|
||||
extern void add_class(int, int, int, int, long);
|
||||
extern void check_class(void);
|
||||
extern void initclass(void);
|
||||
|
||||
#endif /* __class_include__ */
|
||||
@@ -230,6 +230,8 @@ static char *StsMalloc(size_t size, char *file, long line)
|
||||
|
||||
#endif
|
||||
|
||||
extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
|
||||
/*
|
||||
* Protocol support text. DO NO CHANGE THIS unless you know what
|
||||
* you are doing.
|
||||
|
||||
+42
-9
@@ -70,11 +70,6 @@
|
||||
|
||||
#undef NO_FDLIST
|
||||
|
||||
/*
|
||||
* system have sockaddr_storage struct.
|
||||
*/
|
||||
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
|
||||
|
||||
/*
|
||||
* Defining this will allow all ircops to see people in +s channels
|
||||
* By default, only net/tech admins can see this
|
||||
@@ -114,6 +109,14 @@
|
||||
*/
|
||||
#undef STRIPBADWORDS_CHAN_ALWAYS
|
||||
|
||||
/*
|
||||
* THROTTLING
|
||||
* This will only allow 1 connection per ip in set::throttle::period time
|
||||
* NOTE: There's no reason to disable this (anymore) since it can be fully
|
||||
* configured in the unrealircd.conf. Keep the define...
|
||||
*/
|
||||
#define THROTTLING
|
||||
|
||||
/*
|
||||
* No spoof code
|
||||
*
|
||||
@@ -138,6 +141,13 @@
|
||||
*/
|
||||
#undef JOIN_INSTEAD_OF_SJOIN_ON_REMOTEJOIN
|
||||
|
||||
/*
|
||||
* So called 'smart' banning: if this is enabled and a ban on like *!*@*h.com is present,
|
||||
* then you cannot add a ban like *!*@*blah.com. In other words.. the ircd tries to be "smart".
|
||||
* In general this is considered quite annoying. This was on by default until Unreal 3.2.8.
|
||||
*/
|
||||
#undef SOCALLEDSMARTBANNING
|
||||
|
||||
/*
|
||||
** Freelinks garbage collector -Stskeeps
|
||||
**
|
||||
@@ -200,11 +210,7 @@
|
||||
* these are only the recommened names and paths. Change as needed.
|
||||
* You must define these to something, even if you don't really want them.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define CPATH "unrealircd.conf" /* server configuration file */
|
||||
#else
|
||||
extern char CPATH[262];
|
||||
#endif
|
||||
#define MPATH "ircd.motd" /* server MOTD file */
|
||||
#define SMPATH "ircd.smotd" /* short MOTD file */
|
||||
#define RPATH "ircd.rules" /* server rules file */
|
||||
@@ -382,6 +388,7 @@ extern char CPATH[262];
|
||||
* users this value is completely irrelevant.
|
||||
* The original value here was 60 (which was [hopefuly] never reached and was
|
||||
* stupid anyway), changed to 2.
|
||||
* DO NOT SET THIS TO ANYTHING MORE THAN 5. BETTER YET, JUST LEAVE IT AT 2!
|
||||
*/
|
||||
#define TIMESEC 2
|
||||
|
||||
@@ -425,6 +432,12 @@ extern char CPATH[262];
|
||||
*/
|
||||
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
|
||||
|
||||
/*
|
||||
* Use much faster badwords replace routine (>100 times faster).
|
||||
* Disabling this is not supported.
|
||||
*/
|
||||
#define FAST_BADWORD_REPLACE
|
||||
|
||||
/*
|
||||
* Forces Unreal to use compressed IPv6 addresses rather than expanding them
|
||||
*/
|
||||
@@ -450,6 +463,16 @@ extern char CPATH[262];
|
||||
*/
|
||||
#define JOINTHROTTLE
|
||||
|
||||
/* Detect slow spamfilters? This requires a little more cpu time when processing
|
||||
* any spamfilter (like on text/connect/..) but will save you from slowing down
|
||||
* your IRCd to a near-halt (well, in most cases.. there are still cases like when
|
||||
* it goes into a loop that it will still stall completely... forever..).
|
||||
* This is kinda experimental, and requires getrusage.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define SPAMFILTER_DETECTSLOW
|
||||
#endif
|
||||
|
||||
/* ------------------------- END CONFIGURATION SECTION -------------------- */
|
||||
#define MOTD MPATH
|
||||
#define RULES RPATH
|
||||
@@ -540,6 +563,16 @@ error You stuffed up config.h signals
|
||||
* whatever else. -4 allows "safety" margin of 1 and space reserved.
|
||||
*/
|
||||
#define MAXCLIENTS (MAXCONNECTIONS-4)
|
||||
#ifdef HAVECURSES
|
||||
# define DOCURSES
|
||||
#else
|
||||
# undef DOCURSES
|
||||
#endif
|
||||
#ifdef HAVETERMCAP
|
||||
# define DOTERMCAP
|
||||
#else
|
||||
# undef DOTERMCAP
|
||||
#endif
|
||||
# define stricmp strcasecmp
|
||||
# define strnicmp strncasecmp
|
||||
#if defined(CLIENT_FLOOD)
|
||||
|
||||
+30
-8
@@ -19,7 +19,7 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef DYNCONF_H
|
||||
|
||||
#define DYNCONF_H
|
||||
/* config level */
|
||||
#define DYNCONF_CONF_VERSION "1.5"
|
||||
@@ -52,6 +52,13 @@ struct ChMode {
|
||||
long extmodes;
|
||||
char *extparams[EXTCMODETABLESZ];
|
||||
#endif
|
||||
#ifdef NEWCHFLOODPROT
|
||||
ChanFloodProt floodprot;
|
||||
#else
|
||||
unsigned short msgs;
|
||||
unsigned short per;
|
||||
unsigned char kmode;
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef struct _OperStat {
|
||||
@@ -66,6 +73,7 @@ struct zConfiguration {
|
||||
unsigned flat_map:1;
|
||||
unsigned allow_chatops:1;
|
||||
unsigned webtv_support:1;
|
||||
unsigned no_oper_hiding:1;
|
||||
unsigned ident_check:1;
|
||||
unsigned fail_oper_warn:1;
|
||||
unsigned show_connect_info:1;
|
||||
@@ -79,8 +87,10 @@ struct zConfiguration {
|
||||
int host_retries;
|
||||
char *name_server;
|
||||
char *dns_bindip;
|
||||
#ifdef THROTTLING
|
||||
long throttle_period;
|
||||
char throttle_count;
|
||||
#endif
|
||||
char *kline_address;
|
||||
char *gline_address;
|
||||
long conn_modes;
|
||||
@@ -101,14 +111,13 @@ struct zConfiguration {
|
||||
char *x_server_cert_pem;
|
||||
char *x_server_key_pem;
|
||||
char *x_server_cipher_list;
|
||||
char *x_dh_pem;
|
||||
char *trusted_ca_file;
|
||||
long ssl_options;
|
||||
int ssl_renegotiate_bytes;
|
||||
int ssl_renegotiate_timeout;
|
||||
|
||||
#elif defined(_WIN32)
|
||||
void *bogus1, *bogus2, *bogus3, *bogus5, *bogus8;
|
||||
void *bogus1, *bogus2, *bogus3, *bogus5;
|
||||
long bogus4;
|
||||
int bogus6, bogus7;
|
||||
#endif
|
||||
@@ -120,6 +129,7 @@ struct zConfiguration {
|
||||
long unknown_flood_bantime;
|
||||
long unknown_flood_amount;
|
||||
struct ChMode modes_on_join;
|
||||
int level_on_join;
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
unsigned char away_count;
|
||||
long away_period;
|
||||
@@ -142,14 +152,16 @@ struct zConfiguration {
|
||||
char spamfilter_vchan_deny;
|
||||
SpamExcept *spamexcept;
|
||||
char *spamexcept_line;
|
||||
long spamfilter_detectslow_warn;
|
||||
long spamfilter_detectslow_fatal;
|
||||
int maxbans;
|
||||
int maxbanlength;
|
||||
int timesynch_enabled;
|
||||
int timesynch_timeout;
|
||||
char *timesynch_server;
|
||||
int pingpong_warning;
|
||||
int watch_away_notification;
|
||||
aNetwork network;
|
||||
int nicklen;
|
||||
};
|
||||
|
||||
#ifndef DYNCONF_C
|
||||
@@ -169,6 +181,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define MAXCHANNELSPERUSER iConf.maxchannelsperuser
|
||||
#define MAXDCCALLOW iConf.maxdccallow
|
||||
#define WEBTV_SUPPORT iConf.webtv_support
|
||||
#define NO_OPER_HIDING iConf.no_oper_hiding
|
||||
#define DONT_RESOLVE iConf.dont_resolve
|
||||
#define AUTO_JOIN_CHANS iConf.auto_join_chans
|
||||
#define OPER_AUTO_JOIN_CHANS iConf.oper_auto_join_chans
|
||||
@@ -209,12 +222,15 @@ extern MODVAR aConfiguration iConf;
|
||||
#define RESTRICT_USERMODES iConf.restrict_usermodes
|
||||
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
|
||||
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
|
||||
#ifdef THROTTLING
|
||||
#define THROTTLING_PERIOD iConf.throttle_period
|
||||
#define THROTTLING_COUNT iConf.throttle_count
|
||||
#endif
|
||||
#define USE_BAN_VERSION iConf.use_ban_version
|
||||
#define UNKNOWN_FLOOD_BANTIME iConf.unknown_flood_bantime
|
||||
#define UNKNOWN_FLOOD_AMOUNT iConf.unknown_flood_amount
|
||||
#define MODES_ON_JOIN iConf.modes_on_join.mode
|
||||
#define LEVEL_ON_JOIN iConf.level_on_join
|
||||
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
#define AWAY_PERIOD iConf.away_period
|
||||
@@ -247,6 +263,9 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SPAMFILTER_VIRUSCHAN iConf.spamfilter_virus_help_channel
|
||||
#define SPAMFILTER_VIRUSCHANDENY iConf.spamfilter_vchan_deny
|
||||
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
||||
#define SPAMFILTER_DETECTSLOW_WARN iConf.spamfilter_detectslow_warn
|
||||
#define SPAMFILTER_DETECTSLOW_FATAL iConf.spamfilter_detectslow_fatal
|
||||
|
||||
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
||||
|
||||
#define MAXBANS iConf.maxbans
|
||||
@@ -258,6 +277,8 @@ extern MODVAR aConfiguration iConf;
|
||||
|
||||
#define PINGPONG_WARNING iConf.pingpong_warning
|
||||
|
||||
#define WATCH_AWAY_NOTIFICATION iConf.watch_away_notification
|
||||
|
||||
/* Used for "is present?" and duplicate checking */
|
||||
struct SetCheck {
|
||||
unsigned has_show_opermotd:1;
|
||||
@@ -265,6 +286,7 @@ struct SetCheck {
|
||||
unsigned has_flat_map:1;
|
||||
unsigned has_allow_chatops:1;
|
||||
unsigned has_webtv_support:1;
|
||||
unsigned has_no_oper_hiding:1;
|
||||
unsigned has_ident_check:1;
|
||||
unsigned has_fail_oper_warn:1;
|
||||
unsigned has_show_connect_info:1;
|
||||
@@ -277,8 +299,10 @@ struct SetCheck {
|
||||
unsigned has_dns_retries:1;
|
||||
unsigned has_dns_nameserver:1;
|
||||
unsigned has_dns_bind_ip:1;
|
||||
#ifdef THROTTLING
|
||||
unsigned has_throttle_period:1;
|
||||
unsigned has_throttle_connections:1;
|
||||
#endif
|
||||
unsigned has_kline_address:1;
|
||||
unsigned has_gline_address:1;
|
||||
unsigned has_modes_on_connect:1;
|
||||
@@ -289,6 +313,7 @@ struct SetCheck {
|
||||
unsigned has_oper_auto_join:1;
|
||||
unsigned has_check_target_nick_bans:1;
|
||||
unsigned has_pingpong_warning:1;
|
||||
unsigned has_watch_away_notification:1;
|
||||
unsigned has_oper_only_stats:1;
|
||||
unsigned has_maxchannelsperuser:1;
|
||||
unsigned has_maxdccallow:1;
|
||||
@@ -301,7 +326,6 @@ struct SetCheck {
|
||||
unsigned has_ssl_key:1;
|
||||
unsigned has_ssl_trusted_ca_file:1;
|
||||
unsigned has_ssl_options:1;
|
||||
unsigned has_ssl_dh:1;
|
||||
unsigned has_renegotiate_timeout : 1;
|
||||
unsigned has_renegotiate_bytes : 1;
|
||||
#endif
|
||||
@@ -313,6 +337,7 @@ struct SetCheck {
|
||||
unsigned has_anti_flood_unknown_flood_bantime:1;
|
||||
unsigned has_anti_flood_unknown_flood_amount:1;
|
||||
unsigned has_modes_on_join:1;
|
||||
unsigned has_level_on_join:1;
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
unsigned has_anti_flood_away_count:1;
|
||||
unsigned has_anti_flood_away_period:1;
|
||||
@@ -363,9 +388,6 @@ struct SetCheck {
|
||||
int cgiirc_type; /* cheat :( */
|
||||
unsigned has_cgiirc_hosts:1;
|
||||
unsigned has_cgiirc_webpass:1;
|
||||
unsigned has_nicklen:1;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#define _IRCD_DOG3_FDLIST
|
||||
|
||||
/* $Id$ */
|
||||
#ifndef NEW_IO
|
||||
|
||||
typedef struct fdstruct {
|
||||
int entry[MAXCONNECTIONS + 2];
|
||||
@@ -17,425 +16,6 @@ void init_fdlist(fdlist * b);
|
||||
extern MODVAR fdlist oper_fdlist;
|
||||
#endif
|
||||
|
||||
#else /* ifndef NEW_IO */
|
||||
|
||||
/* Hybrid Support Headers Begin */
|
||||
#include <sys/resource.h>
|
||||
|
||||
#ifdef RLIMIT_FDMAX
|
||||
# define RLIMIT_FD_MAX RLIMIT_FDMAX
|
||||
#else
|
||||
# ifdef RLIMIT_NOFILE
|
||||
# define RLIMIT_FD_MAX RLIMIT_NOFILE
|
||||
# else
|
||||
# ifdef RLIMIT_OPEN_MAX
|
||||
# define RLIMIT_FD_MAX RLIMIT_OPEN_MAX
|
||||
# else
|
||||
# warning No file descriptor limit was found
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define COMM_SELECT_READ 1
|
||||
#define COMM_SELECT_WRITE 2
|
||||
|
||||
/* How long can comm_select() wait for network events [milliseconds] */
|
||||
#define SELECT_DELAY 500
|
||||
|
||||
#define LOWEST_SAFE_FD 4 /* skip stdin, stdout, stderr, and profiler */
|
||||
|
||||
/* Path to /dev/null */
|
||||
#define PATH_DEVNULL "/dev/null"
|
||||
|
||||
extern const unsigned char ToUpperTab[];
|
||||
#define ToUpper(c) (ToUpperTab[(unsigned char)(c)])
|
||||
|
||||
|
||||
/*
|
||||
* NOTE: The following functions are NOT the same as strcasecmp
|
||||
* and strncasecmp! These functions use the Finnish (RFC1459)
|
||||
* character set. Do not replace!
|
||||
*
|
||||
* irccmp - case insensitive comparison of s1 and s2
|
||||
*/
|
||||
extern int irccmp(const char *, const char *);
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct _dlink_node dlink_node;
|
||||
typedef struct _dlink_list dlink_list;
|
||||
|
||||
struct _dlink_node
|
||||
{
|
||||
void *data;
|
||||
dlink_node *prev;
|
||||
dlink_node *next;
|
||||
};
|
||||
|
||||
struct _dlink_list
|
||||
{
|
||||
dlink_node *head;
|
||||
dlink_node *tail;
|
||||
unsigned long length;
|
||||
};
|
||||
|
||||
extern void dlinkAdd(void *data, dlink_node * m, dlink_list * list);
|
||||
extern void dlinkAddBefore(dlink_node *b, void *data, dlink_node *m, dlink_list *list);
|
||||
extern void dlinkAddTail(void *data, dlink_node *m, dlink_list *list);
|
||||
extern void dlinkDelete(dlink_node *m, dlink_list *list);
|
||||
extern void dlinkMoveList(dlink_list *from, dlink_list *to);
|
||||
extern dlink_node *dlinkFind(dlink_list *m, void *data);
|
||||
extern dlink_node *dlinkFindDelete(dlink_list *m, void *data);
|
||||
|
||||
#ifndef NDEBUG
|
||||
void mem_frob(void *data, int len);
|
||||
#else
|
||||
#define mem_frob(x, y)
|
||||
#endif
|
||||
|
||||
/* These macros are basically swiped from the linux kernel
|
||||
* they are simple yet effective
|
||||
*/
|
||||
|
||||
/*
|
||||
* Walks forward of a list.
|
||||
* pos is your node
|
||||
* head is your list head
|
||||
*/
|
||||
#define DLINK_FOREACH(pos, head) for (pos = (head); pos != NULL; pos = pos->next)
|
||||
|
||||
/*
|
||||
* Walks forward of a list safely while removing nodes
|
||||
* pos is your node
|
||||
* n is another list head for temporary storage
|
||||
* head is your list head
|
||||
*/
|
||||
#define DLINK_FOREACH_SAFE(pos, n, head) for (pos = (head), n = pos ? pos->next : NULL; pos != NULL; pos = n, n = pos ? pos->next : NULL)
|
||||
#define DLINK_FOREACH_PREV(pos, head) for (pos = (head); pos != NULL; pos = pos->prev)
|
||||
|
||||
/* Returns the list length */
|
||||
#define dlink_list_length(list) (list)->length
|
||||
|
||||
/*
|
||||
* The functions below are included for the sake of inlining
|
||||
* hopefully this will speed up things just a bit
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* dlink_ routines are stolen from squid, except for dlinkAddBefore,
|
||||
* which is mine.
|
||||
* -- adrian
|
||||
*/
|
||||
extern inline void dlinkAdd(void *data, dlink_node * m, dlink_list * list)
|
||||
{
|
||||
m->data = data;
|
||||
m->prev = NULL;
|
||||
m->next = list->head;
|
||||
/* Assumption: If list->tail != NULL, list->head != NULL */
|
||||
if (list->head != NULL)
|
||||
list->head->prev = m;
|
||||
else if (list->tail == NULL)
|
||||
list->tail = m;
|
||||
list->head = m;
|
||||
list->length++;
|
||||
}
|
||||
|
||||
extern inline void dlinkAddBefore(dlink_node *b, void *data, dlink_node *m, dlink_list *list)
|
||||
{
|
||||
/* Shortcut - if its the first one, call dlinkAdd only */
|
||||
if (b == list->head)
|
||||
dlinkAdd(data, m, list);
|
||||
else {
|
||||
m->data = data;
|
||||
b->prev->next = m;
|
||||
m->prev = b->prev;
|
||||
b->prev = m;
|
||||
m->next = b;
|
||||
list->length++;
|
||||
}
|
||||
}
|
||||
|
||||
extern inline void dlinkAddTail(void *data, dlink_node *m, dlink_list *list)
|
||||
{
|
||||
m->data = data;
|
||||
m->next = NULL;
|
||||
m->prev = list->tail;
|
||||
/* Assumption: If list->tail != NULL, list->head != NULL */
|
||||
if (list->tail != NULL)
|
||||
list->tail->next = m;
|
||||
else if (list->head == NULL)
|
||||
list->head = m;
|
||||
list->tail = m;
|
||||
list->length++;
|
||||
}
|
||||
|
||||
/* Execution profiles show that this function is called the most
|
||||
* often of all non-spontaneous functions. So it had better be
|
||||
* efficient. */
|
||||
extern inline void dlinkDelete(dlink_node *m, dlink_list *list)
|
||||
{
|
||||
/* Assumption: If m->next == NULL, then list->tail == m
|
||||
* and: If m->prev == NULL, then list->head == m
|
||||
*/
|
||||
if (m->next)
|
||||
m->next->prev = m->prev;
|
||||
else {
|
||||
assert(list->tail == m);
|
||||
list->tail = m->prev;
|
||||
}
|
||||
if (m->prev)
|
||||
m->prev->next = m->next;
|
||||
else {
|
||||
assert(list->head == m);
|
||||
list->head = m->next;
|
||||
}
|
||||
/* Set this to NULL does matter */
|
||||
m->next = m->prev = NULL;
|
||||
list->length--;
|
||||
}
|
||||
|
||||
/*
|
||||
* dlinkFind
|
||||
* inputs - list to search
|
||||
* - data
|
||||
* output - pointer to link or NULL if not found
|
||||
* side effects - Look for ptr in the linked listed pointed to by link.
|
||||
*/
|
||||
extern inline dlink_node *dlinkFind(dlink_list *list, void *data)
|
||||
{
|
||||
dlink_node *ptr;
|
||||
|
||||
DLINK_FOREACH(ptr, list->head)
|
||||
{
|
||||
if (ptr->data == data)
|
||||
return(ptr);
|
||||
}
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
extern inline void dlinkMoveList(dlink_list *from, dlink_list *to)
|
||||
{
|
||||
/* There are three cases */
|
||||
/* case one, nothing in from list */
|
||||
|
||||
if (from->head == NULL)
|
||||
return;
|
||||
|
||||
/* case two, nothing in to list */
|
||||
/* actually if to->head is NULL and to->tail isn't, thats a bug */
|
||||
|
||||
if (to->head == NULL)
|
||||
{
|
||||
to->head = from->head;
|
||||
to->tail = from->tail;
|
||||
from->head = from->tail = NULL;
|
||||
to->length = from->length;
|
||||
from->length = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* third case play with the links */
|
||||
|
||||
from->tail->next = to->head;
|
||||
from->head->prev = to->head->prev;
|
||||
to->head->prev = from->tail;
|
||||
to->head = from->head;
|
||||
from->head = from->tail = NULL;
|
||||
to->length += from->length;
|
||||
from->length = 0;
|
||||
|
||||
/* I think I got that right */
|
||||
}
|
||||
|
||||
extern inline dlink_node *dlinkFindDelete(dlink_list *list, void *data)
|
||||
{
|
||||
dlink_node *m;
|
||||
|
||||
DLINK_FOREACH(m, list->head)
|
||||
{
|
||||
if (m->data == data)
|
||||
{
|
||||
if (m->next)
|
||||
m->next->prev = m->prev;
|
||||
else
|
||||
{
|
||||
assert(list->tail == m);
|
||||
list->tail = m->prev;
|
||||
}
|
||||
if (m->prev)
|
||||
m->prev->next = m->next;
|
||||
else
|
||||
{
|
||||
assert(list->head == m);
|
||||
list->head = m->next;
|
||||
}
|
||||
/* Set this to NULL does matter */
|
||||
m->next = m->prev = NULL;
|
||||
list->length--;
|
||||
|
||||
return(m);
|
||||
}
|
||||
}
|
||||
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
extern dlink_list callback_list; /* listing/debugging purposes */
|
||||
|
||||
typedef void *CBFUNC(va_list);
|
||||
|
||||
struct Callback
|
||||
{
|
||||
char *name;
|
||||
dlink_list chain;
|
||||
dlink_node node;
|
||||
unsigned int called;
|
||||
time_t last;
|
||||
};
|
||||
|
||||
extern struct Callback *register_callback(const char *, CBFUNC *);
|
||||
extern void *execute_callback(struct Callback *, ...);
|
||||
extern struct Callback *find_callback(const char *);
|
||||
extern dlink_node *install_hook(struct Callback *, CBFUNC *);
|
||||
extern void uninstall_hook(struct Callback *, CBFUNC *);
|
||||
extern void *pass_callback(dlink_node *, ...);
|
||||
extern void stats_hooks(struct Client *);
|
||||
|
||||
#define is_callback_present(c) (!!dlink_list_length(&c->chain))
|
||||
|
||||
/* Hybrid Support Headers End */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* tests show that about 7 fds are not registered by fdlist.c, these
|
||||
* include std* descriptors + some others (by OpenSSL etc.). Note this is
|
||||
* intentionally too high, we don't want to eat fds up to the last one */
|
||||
#define LEAKED_FDS 10
|
||||
|
||||
/* how many (privileged) clients can exceed max_clients */
|
||||
#define MAX_BUFFER 60
|
||||
|
||||
#define MAXCLIENTS_MAX (hard_fdlimit - LEAKED_FDS - MAX_BUFFER)
|
||||
#define MAXCLIENTS_MIN 32
|
||||
|
||||
#define FD_DESC_SZ 128 /* hostlen + comment */
|
||||
|
||||
/* enums better then defines for debugging issue */
|
||||
enum {
|
||||
COMM_OK,
|
||||
COMM_ERR_BIND,
|
||||
COMM_ERR_DNS,
|
||||
COMM_ERR_TIMEOUT,
|
||||
COMM_ERR_CONNECT,
|
||||
COMM_ERROR,
|
||||
COMM_ERR_MAX
|
||||
};
|
||||
|
||||
/* This is to get around the fact that some implementations have ss_len and
|
||||
* others do not
|
||||
*/
|
||||
struct irc_ssaddr
|
||||
{
|
||||
struct sockaddr_storage ss;
|
||||
unsigned char ss_len;
|
||||
in_port_t ss_port;
|
||||
};
|
||||
|
||||
|
||||
/* For Callback functions arguments */
|
||||
struct _fde;
|
||||
|
||||
/* Callback for completed IO events */
|
||||
typedef void PF(struct _fde *, void *);
|
||||
|
||||
/* Callback for completed connections */
|
||||
/* int fd, int status, void * */
|
||||
typedef void CNCB(struct _fde *, int, void *);
|
||||
|
||||
typedef struct _fde {
|
||||
/* New-school stuff, again pretty much ripped from squid */
|
||||
/*
|
||||
* Yes, this gives us only one pending read and one pending write per
|
||||
* filedescriptor. Think though: when do you think we'll need more?
|
||||
*/
|
||||
int fd; /* So we can use the fde_t as a callback ptr */
|
||||
int comm_index; /* where in the poll list we live */
|
||||
int evcache; /* current fd events as set up by the underlying I/O */
|
||||
char desc[FD_DESC_SZ];
|
||||
PF *read_handler;
|
||||
void *read_data;
|
||||
PF *write_handler;
|
||||
void *write_data;
|
||||
PF *timeout_handler;
|
||||
void *timeout_data;
|
||||
time_t timeout;
|
||||
PF *flush_handler;
|
||||
void *flush_data;
|
||||
time_t flush_timeout;
|
||||
/* struct DNSQuery *dns_query; at hybrid 7.2.2 */
|
||||
struct DNSReq *dns_query;
|
||||
struct {
|
||||
unsigned int open:1;
|
||||
unsigned int is_socket:1;
|
||||
#ifdef USE_SSL
|
||||
unsigned int pending_read:1;
|
||||
#endif
|
||||
} flags;
|
||||
|
||||
struct {
|
||||
/* We don't need the host here ? */
|
||||
struct irc_ssaddr S;
|
||||
struct irc_ssaddr hostaddr;
|
||||
CNCB *callback;
|
||||
void *data;
|
||||
/* We'd also add the retry count here when we get to that -- adrian */
|
||||
} connect;
|
||||
#ifdef USE_SSL
|
||||
SSL *ssl;
|
||||
#endif
|
||||
struct _fde *hnext;
|
||||
} fde_t;
|
||||
|
||||
#define CLIENT_HEAP_SIZE 1024
|
||||
#define FD_HASH_SIZE CLIENT_HEAP_SIZE
|
||||
|
||||
extern int number_fd;
|
||||
extern int hard_fdlimit;
|
||||
extern fde_t *fd_hash[];
|
||||
extern fde_t *fd_next_in_loop;
|
||||
extern struct Callback *fdlimit_cb;
|
||||
|
||||
extern void fdlist_init(void);
|
||||
extern fde_t *lookup_fd(int);
|
||||
extern void fd_open(fde_t *, int, int, const char *);
|
||||
extern void fd_close(fde_t *);
|
||||
extern void fd_dump(struct Client *);
|
||||
#ifndef __GNUC__
|
||||
extern void fd_note(fde_t *, const char *format, ...);
|
||||
#else
|
||||
extern void fd_note(fde_t *, const char *format, ...)
|
||||
__attribute__((format (printf, 2, 3)));
|
||||
#endif
|
||||
extern void close_standard_fds(void);
|
||||
extern void close_fds(fde_t *);
|
||||
extern void recalc_fdlimit(void *);
|
||||
|
||||
#endif /* ifndef NEW_IO */
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
|
||||
+37
-36
@@ -49,9 +49,9 @@ extern TS check_pings(TS now);
|
||||
extern TS TS2ts(char *s);
|
||||
extern MODVAR time_t timeofday;
|
||||
/* newconf */
|
||||
#define get_sendq(x) ((x)->cclass ? (x)->cclass->sendq : MAXSENDQLENGTH)
|
||||
#define get_sendq(x) ((x)->class ? (x)->class->sendq : MAXSENDQLENGTH)
|
||||
/* get_recvq is only called in send.c for local connections */
|
||||
#define get_recvq(x) ((x)->cclass->recvq ? (x)->cclass->recvq : CLIENT_FLOOD)
|
||||
#define get_recvq(x) ((x)->class->recvq ? (x)->class->recvq : CLIENT_FLOOD)
|
||||
|
||||
#define CMD_FUNC(x) int (x) (aClient *cptr, aClient *sptr, int parc, char *parv[])
|
||||
|
||||
@@ -104,12 +104,16 @@ extern MODVAR ConfigItem_offchans *conf_offchans;
|
||||
extern int completed_connection(aClient *);
|
||||
extern void clear_unknown();
|
||||
extern EVENT(e_unload_module_delayed);
|
||||
#ifdef THROTTLING
|
||||
extern EVENT(e_clean_out_throttling_buckets);
|
||||
#endif
|
||||
|
||||
extern void module_loadall(int module_load);
|
||||
extern long set_usermode(char *umode);
|
||||
extern char *get_modestr(long umodes);
|
||||
extern void config_error(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
extern void config_warn(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
|
||||
extern MODVAR int config_verbose;
|
||||
extern void config_progress(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
extern void ipport_seperate(char *string, char **ip, char **port);
|
||||
@@ -186,11 +190,6 @@ extern long get_access(aClient *, aChannel *);
|
||||
extern int is_chan_op(aClient *, aChannel *);
|
||||
extern int has_voice(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_extban(char *);
|
||||
#endif
|
||||
extern Ban *is_banned(aClient *, aChannel *, int);
|
||||
extern Ban *is_banned_with_nick(aClient *, aChannel *, int, char *);
|
||||
extern int parse_help(aClient *, char *, char *);
|
||||
@@ -212,7 +211,9 @@ extern void reset_help();
|
||||
extern MODVAR char *debugmode, *configfile, *sbrk0;
|
||||
extern char *getfield(char *);
|
||||
extern void get_sockhost(aClient *, char *);
|
||||
#ifdef _WIN32
|
||||
#ifndef _WIN32
|
||||
extern char *strerror(int);
|
||||
#else
|
||||
extern MODFUNC char *sock_strerror(int);
|
||||
#endif
|
||||
extern int dgets(int, char *, int);
|
||||
@@ -228,17 +229,15 @@ extern int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
|
||||
#ifdef _WIN32
|
||||
extern MODVAR int dbufalloc, dbufblocks, debuglevel;
|
||||
#else
|
||||
extern int dbufalloc, dbufblocks, debuglevel;
|
||||
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
|
||||
#endif
|
||||
|
||||
extern MODVAR short LastSlot; /* last used index in local client array */
|
||||
extern MODVAR int OpenFiles; /* number of files currently open */
|
||||
extern MODVAR int debuglevel, debugtty, maxusersperchannel;
|
||||
extern MODVAR int debuglevel, portnum, debugtty, maxusersperchannel;
|
||||
extern MODVAR int readcalls, udpfd, resfd;
|
||||
|
||||
#ifndef NEW_IO
|
||||
extern aClient *add_connection(aClient *, int);
|
||||
extern int add_listener(aConfItem *);
|
||||
extern void add_local_domain(char *, int);
|
||||
extern int check_client(aClient *, char *);
|
||||
extern int check_server(aClient *, struct hostent *, aConfItem *,
|
||||
aConfItem *, int);
|
||||
@@ -250,16 +249,16 @@ extern void get_my_name(aClient *, char *, int);
|
||||
extern int get_sockerr(aClient *);
|
||||
extern int inetport(aClient *, char *, int);
|
||||
extern void init_sys();
|
||||
extern void init_modef();
|
||||
|
||||
#ifdef NO_FDLIST
|
||||
extern int read_message(time_t);
|
||||
#else
|
||||
extern int read_message(time_t, fdlist *);
|
||||
#endif
|
||||
|
||||
extern void report_error(char *, aClient *);
|
||||
extern void set_non_blocking(int, aClient *);
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern int setup_ping();
|
||||
|
||||
extern void start_auth(aClient *);
|
||||
@@ -321,10 +320,13 @@ extern void sendto_snomask_normal_global(int snomask, char *pattern, ...) __attr
|
||||
extern void sendnotice(aClient *to, char *pattern, ...) __attribute__((format(printf,2,3)));
|
||||
extern MODVAR int writecalls, writeb[];
|
||||
extern int deliver_it(aClient *, char *, int);
|
||||
extern int check_for_chan_flood(aClient *cptr, aClient *sptr, aChannel *chptr);
|
||||
extern int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
||||
extern char *canonize(char *buffer);
|
||||
extern ConfigItem_deny_dcc *dcc_isforbidden(aClient *sptr, char *filename);
|
||||
extern ConfigItem_deny_dcc *dcc_isdiscouraged(aClient *sptr, char *filename);
|
||||
extern int check_registered(aClient *);
|
||||
extern int check_registered_user(aClient *);
|
||||
extern char *get_client_name(aClient *, int);
|
||||
extern char *get_client_host(aClient *);
|
||||
extern char *myctime(time_t), *date(time_t);
|
||||
@@ -356,12 +358,14 @@ extern void send_umode_out(aClient *, aClient *, long);
|
||||
extern void free_client(aClient *);
|
||||
extern void free_link(Link *);
|
||||
extern void free_ban(Ban *);
|
||||
extern void free_class(aClass *);
|
||||
extern void free_user(anUser *, aClient *);
|
||||
extern int find_str_match_link(Link *, char *);
|
||||
extern void free_str_list(Link *);
|
||||
extern Link *make_link();
|
||||
extern Ban *make_ban();
|
||||
extern anUser *make_user(aClient *);
|
||||
extern aClass *make_class();
|
||||
extern aServer *make_server();
|
||||
extern aClient *make_client(aClient *, aClient *);
|
||||
extern Link *find_user_link(Link *, aClient *);
|
||||
@@ -539,7 +543,7 @@ extern aClient *find_server_b64_or_real(char *name);
|
||||
extern aClient *find_server_by_base64(char *b64);
|
||||
extern int is_chanownprotop(aClient *cptr, aChannel *chptr);
|
||||
extern int is_skochanop(aClient *cptr, aChannel *chptr);
|
||||
extern char *make_virthost(aClient *sptr, char *curr, char *newhost, int mode);
|
||||
extern char *make_virthost(aClient *sptr, char *curr, char *new, int mode);
|
||||
extern int channel_canjoin(aClient *sptr, char *name);
|
||||
extern char *collapse(char *pattern);
|
||||
extern void dcc_sync(aClient *sptr);
|
||||
@@ -564,7 +568,6 @@ extern void flag_del(char ch);
|
||||
extern void init_dynconf(void);
|
||||
extern char *pretty_time_val(long);
|
||||
extern int init_conf(char *filename, int rehash);
|
||||
extern int global_test();
|
||||
extern void validate_configuration(void);
|
||||
extern void run_configuration(void);
|
||||
extern void rehash_motdrules();
|
||||
@@ -574,10 +577,8 @@ extern CMD_FUNC(m_server_remote);
|
||||
extern void send_proto(aClient *, ConfigItem_link *);
|
||||
extern char *xbase64enc(long i);
|
||||
extern void unload_all_modules(void);
|
||||
#ifndef NEW_IO
|
||||
extern void flush_fdlist_connections(fdlist * listp);
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern int set_blocking(int fd);
|
||||
extern void set_sock_opts(int fd, aClient *cptr);
|
||||
extern void iCstrip(char *line);
|
||||
extern time_t rfc2time(char *s);
|
||||
@@ -605,19 +606,22 @@ extern int extcmode_default_requirechop(aClient *, aChannel *, char *, int, int)
|
||||
extern int extcmode_default_requirehalfop(aClient *, aChannel *, char *, int, int);
|
||||
extern Cmode_t extcmode_get(Cmode *);
|
||||
extern void extcmode_init(void);
|
||||
extern void *extcmode_get_struct(aChannel *, char);
|
||||
extern CmodeParam *extcmode_get_struct(CmodeParam *, char);
|
||||
extern void make_extcmodestr();
|
||||
extern void extcmode_duplicate_paramlist(void **xi, void **xo);
|
||||
extern void extcmode_free_paramlist(void **ar);
|
||||
extern CmodeParam *extcmode_duplicate_paramlist(CmodeParam *);
|
||||
extern void extcmode_free_paramlist(CmodeParam *);
|
||||
#endif
|
||||
extern int do_chanflood(ChanFloodProt *, int);
|
||||
extern void do_chanflood_action(aChannel *, int, char *);
|
||||
extern char *channel_modef_string(ChanFloodProt *);
|
||||
extern void chmode_str(struct ChMode, char *, char *);
|
||||
extern char *get_cptr_status(aClient *);
|
||||
extern char *get_snostr(long);
|
||||
#ifdef _WIN32
|
||||
extern void InitDebug(void);
|
||||
extern int InitwIRCD(int argc, char **);
|
||||
#endif
|
||||
extern void SocketLoop(void *);
|
||||
#endif
|
||||
#ifdef STATIC_LINKING
|
||||
extern int l_commands_Init(ModuleInfo *);
|
||||
extern int l_commands_Test(ModuleInfo *);
|
||||
@@ -627,7 +631,6 @@ extern void sendto_chmodemucrap(aClient *, aChannel *, char *);
|
||||
extern void verify_opercount(aClient *, char *);
|
||||
extern int valid_host(char *host);
|
||||
extern int count_oper_sessions(char *);
|
||||
extern int file_exists(char* file);
|
||||
extern char *unreal_mktemp(char *dir, char *suffix);
|
||||
extern char *unreal_getpathname(char *filepath, char *path);
|
||||
extern char *unreal_getfilename(char *path);
|
||||
@@ -655,6 +658,7 @@ extern char *our_strcasestr(char *haystack, char *needle);
|
||||
extern int spamfilter_getconftargets(char *s);
|
||||
extern void remove_oper_snomasks(aClient *sptr);
|
||||
extern char *spamfilter_inttostring_long(int v);
|
||||
extern int check_channelmask(aClient *, aClient *, char *);
|
||||
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
||||
extern MODVAR char backupbuf[];
|
||||
extern void add_invite(aClient *, aChannel *);
|
||||
@@ -672,10 +676,7 @@ extern char *unreal_encodespace(char *s);
|
||||
extern char *unreal_decodespace(char *s);
|
||||
extern MODVAR Link *helpign;
|
||||
extern MODVAR aMotd *rules;
|
||||
#ifndef NEW_IO
|
||||
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
|
||||
#else /* ifndef NEW_IO */
|
||||
#endif /* ifndef NEW_IO */
|
||||
extern void DCCdeny_add(char *filename, char *reason, int type, int type2);
|
||||
extern void DCCdeny_del(ConfigItem_deny_dcc *deny);
|
||||
extern void dcc_wipe_services(void);
|
||||
@@ -731,7 +732,9 @@ extern MODVAR int (*place_host_ban)(aClient *sptr, int action, char *reason, lon
|
||||
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target, int flags, aTKline **rettk);
|
||||
extern MODVAR int (*dospamfilter_viruschan)(aClient *sptr, aTKline *tk, int type);
|
||||
extern MODVAR void (*send_list)(aClient *cptr, int numsend);
|
||||
extern MODVAR char *(*stripbadwords)(char *str, ConfigItem_badword *start_bw, int *blocked);
|
||||
extern MODVAR char *(*stripbadwords_channel)(char *str, int *blocked);
|
||||
extern MODVAR char *(*stripbadwords_message)(char *str, int *blocked);
|
||||
extern MODVAR char *(*stripbadwords_quit)(char *str, int *blocked);
|
||||
extern MODVAR unsigned char *(*StripColors)(unsigned char *text);
|
||||
extern MODVAR const char *(*StripControlCodes)(unsigned char *text);
|
||||
extern MODVAR void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr);
|
||||
@@ -742,7 +745,10 @@ extern MODVAR int max_connection_count;
|
||||
extern int add_listmode(Ban **list, aClient *cptr, aChannel *chptr, char *banid);
|
||||
extern int del_listmode(Ban **list, aChannel *chptr, char *banid);
|
||||
extern int Halfop_mode(long mode);
|
||||
extern void chanfloodtimer_add(aChannel *chptr, char mflag, long mbit, time_t when);
|
||||
extern void chanfloodtimer_del(aChannel *chptr, char mflag, long mbit);
|
||||
extern char *clean_ban_mask(char *, int, aClient *);
|
||||
extern void chanfloodtimer_stopchantimers(aChannel *chptr);
|
||||
extern int find_invex(aChannel *chptr, aClient *sptr);
|
||||
extern void DoMD5(unsigned char *mdout, unsigned char *src, unsigned long n);
|
||||
#ifdef JOINTHROTTLE
|
||||
@@ -774,12 +780,7 @@ extern char *unreal_time_synch_error(void);
|
||||
extern int unreal_time_synch(int timeout);
|
||||
extern int extban_is_banned_helper(char *buf);
|
||||
extern char *getcloak(aClient *sptr);
|
||||
extern unsigned char param_to_slot_mapping[256];
|
||||
extern char *cm_getparameter(aChannel *chptr, char mode);
|
||||
extern void cm_putparameter(aChannel *chptr, char mode, char *str);
|
||||
extern void cm_freeparameter(aChannel *chptr, char mode);
|
||||
extern char *cm_getparameter_ex(void **p, char mode);
|
||||
extern void cm_putparameter_ex(void **p, char mode, char *str);
|
||||
extern void cm_freeparameter_ex(void **p, char mode, char *str);
|
||||
extern void kick_insecure_users(aChannel *);
|
||||
extern int file_exists(char* file);
|
||||
extern void free_motd(aMotd *m);
|
||||
extern void fix_timers(void);
|
||||
|
||||
@@ -63,7 +63,9 @@ typedef struct hashentry {
|
||||
/*
|
||||
* Throttling
|
||||
*/
|
||||
#ifdef THROTTLING
|
||||
#define THROTTLING_HASH_SIZE 1019 /* prime number */
|
||||
#endif
|
||||
|
||||
|
||||
#define NullChn ((aChannel *)0)
|
||||
|
||||
@@ -58,29 +58,6 @@ extern __u_l inet_lnaof();
|
||||
#endif
|
||||
#undef __u_l
|
||||
|
||||
#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||
#ifdef SOCKADDR_IN_HAS_LEN /* BSD style sockaddr_storage for BSD style
|
||||
sockaddr_in */
|
||||
struct sockaddr_storage {
|
||||
unsigned char ss_len;
|
||||
sa_family_t ss_family;
|
||||
char __ss_pad1[((sizeof(int64_t)) - sizeof(unsigned char) -
|
||||
sizeof(sa_family_t) )];
|
||||
int64_t __ss_align;
|
||||
char __ss_pad2[(128 - sizeof(unsigned char) - sizeof(sa_family_t) -
|
||||
((sizeof(int64_t)) - sizeof(unsigned char) -
|
||||
sizeof(sa_family_t)) - (sizeof(int64_t)))];
|
||||
};
|
||||
#else /* Linux style for everything else (for now) */
|
||||
struct sockaddr_storage
|
||||
{
|
||||
sa_family_t ss_family;
|
||||
u_int32_t __ss_align;
|
||||
char __ss_padding[(128 - (2 * sizeof (u_int32_t)))];
|
||||
};
|
||||
#endif /* SOCKADDR_IN_HAS_LEN */
|
||||
#endif /* HAVE_STRUCT_SOCKADDR_STORAGE */
|
||||
|
||||
#ifndef INADDR_NONE
|
||||
#define INADDR_NONE 0xffffffff
|
||||
#endif
|
||||
|
||||
+46
-60
@@ -22,9 +22,9 @@
|
||||
#define MODULES_H
|
||||
#include "types.h"
|
||||
#define MAXCUSTOMHOOKS 30
|
||||
#define MAXHOOKTYPES 150
|
||||
#define MAXHOOKTYPES 100
|
||||
#define MAXCALLBACKS 30
|
||||
#define MAXEFUNCTIONS 100
|
||||
#define MAXEFUNCTIONS 60
|
||||
#if defined(_WIN32)
|
||||
#define MOD_EXTENSION "dll"
|
||||
#define DLLFUNC _declspec(dllexport)
|
||||
@@ -110,6 +110,7 @@ typedef struct {
|
||||
#define MOBJ_CALLBACK 0x0200
|
||||
#define MOBJ_ISUPPORT 0x0400
|
||||
#define MOBJ_EFUNCTION 0x0800
|
||||
#define MOBJ_CMODE 0x1000
|
||||
|
||||
typedef struct {
|
||||
long mode;
|
||||
@@ -135,7 +136,6 @@ typedef struct {
|
||||
#define EXSJ_SAME 0 /* Parameters are the same */
|
||||
#define EXSJ_WEWON 1 /* We won! w00t */
|
||||
#define EXSJ_THEYWON 2 /* They won :( */
|
||||
#define EXSJ_MERGE 3 /* Merging of modes.. neither won nor lost (merged params are in 'our' on return) */
|
||||
|
||||
/* return values for EXCHK_ACCESS*: */
|
||||
#define EX_DENY 0 /* Disallowed, except in case of operoverride */
|
||||
@@ -150,6 +150,13 @@ typedef struct {
|
||||
*/
|
||||
typedef unsigned long Cmode_t;
|
||||
|
||||
#define EXTCM_PAR_HEADER struct _CmodeParam *prev, *next; char flag;
|
||||
|
||||
typedef struct _CmodeParam {
|
||||
EXTCM_PAR_HEADER
|
||||
/** other fields are placed after this header in your own paramstruct */
|
||||
} CmodeParam;
|
||||
|
||||
typedef struct {
|
||||
/** mode character (like 'Z') */
|
||||
char flag;
|
||||
@@ -175,40 +182,36 @@ typedef struct {
|
||||
/** Store parameter in memory for channel.
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
* char *: the parameter.
|
||||
* RETURNS: nothing! ;p
|
||||
* return value: the head of the list, RTFS if you wonder why.
|
||||
* design notes: only alloc a new paramstruct if you need to, search for
|
||||
* any current one first (like in case of mode +y 5 and then +y 6 later without -y).
|
||||
*/
|
||||
void *(*put_param)(void *, char *);
|
||||
CmodeParam * (*put_param)(CmodeParam *, char *);
|
||||
|
||||
/** Get readable string version" of the stored parameter.
|
||||
* void *: the param data
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
* return value: a pointer to the string (temp. storage)
|
||||
*/
|
||||
char * (*get_param)(void *);
|
||||
char * (*get_param)(CmodeParam *);
|
||||
|
||||
/** Convert input parameter to output.
|
||||
* Like +l "1aaa" becomes "1".
|
||||
* char *: the input parameter.
|
||||
* aClient *: the client that the mode request came from:
|
||||
* 1. Can be NULL (eg: if called for set::modes-on-join
|
||||
* 2. Probably only used in rare cases, see also next remark
|
||||
* 3. ERRORS SHOULD NOT BE SENT BY conv_param BUT BY is_ok!
|
||||
* return value: pointer to output string (temp. storage)
|
||||
*/
|
||||
char * (*conv_param)(char *, aClient *);
|
||||
char * (*conv_param)(char *);
|
||||
|
||||
/** free and remove parameter from list.
|
||||
* aExtCMtableParam *: the list (usually chptr->mode.extmodeparams).
|
||||
*/
|
||||
void (*free_param)(void *);
|
||||
void (*free_param)(CmodeParam *);
|
||||
|
||||
/** duplicate a struct and return a pointer to duplicate.
|
||||
* This is usually just a malloc + memcpy.
|
||||
* aExtCMtableParam *: source struct itself (no list).
|
||||
* return value: pointer to newly allocated struct.
|
||||
*/
|
||||
void * (*dup_struct)(void *);
|
||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||
|
||||
/** Compares 2 parameters and decides who wins the sjoin fight.
|
||||
* When syncing channel modes (m_sjoin) a parameter conflict may occur, things like
|
||||
@@ -219,43 +222,31 @@ typedef struct {
|
||||
* aExtCMtableParam *: our parameter
|
||||
* aExtCMtableParam *: their parameter
|
||||
*/
|
||||
int (*sjoin_check)(aChannel *, void *, void *);
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
|
||||
/* Slot#.. Can be used instead of GETPARAMSLOT() */
|
||||
int slot;
|
||||
/** Is this mode being 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
|
||||
* module will popup to take this mode. This only happens during a rehash,
|
||||
* should never be 0 outside an internal rehash.
|
||||
*/
|
||||
char unloaded;
|
||||
|
||||
/** Module owner */
|
||||
Module *owner;
|
||||
} Cmode;
|
||||
|
||||
typedef struct {
|
||||
char flag;
|
||||
int paracount;
|
||||
int (*is_ok)(aClient *,aChannel *, char *para, int, int);
|
||||
void * (*put_param)(void *, char *);
|
||||
char * (*get_param)(void *);
|
||||
char * (*conv_param)(char *, aClient *);
|
||||
void (*free_param)(void *);
|
||||
void * (*dup_struct)(void *);
|
||||
int (*sjoin_check)(aChannel *, void *, void *);
|
||||
CmodeParam * (*put_param)(CmodeParam *, char *);
|
||||
char * (*get_param)(CmodeParam *);
|
||||
char * (*conv_param)(char *);
|
||||
void (*free_param)(CmodeParam *);
|
||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
} CmodeInfo;
|
||||
|
||||
/* Get a slot# for a param.. eg... GETPARAMSLOT('k') ;p */
|
||||
#define GETPARAMSLOT(x) param_to_slot_mapping[x]
|
||||
|
||||
/* Get a cmode handler by slot.. for example for [dont use this]: GETPARAMHANDLERBYSLOT(5)->get_param(chptr) */
|
||||
#define GETPARAMHANDLERBYSLOT(slotid) ParamTable[slotid]
|
||||
|
||||
/* Same as GETPARAMHANDLERBYSLOT but then by letter.. like [dont use this]: GETPARAMHANDLERBYSLOT('k')->get_param(chptr) */
|
||||
#define GETPARAMHANDLERBYLETTER(x) ParamTable[GETPARAMSLOT(x)]
|
||||
|
||||
/* Get paramter data struct.. for like: ((aModejEntry *)GETPARASTRUCT(chptr, 'j'))->t */
|
||||
#define GETPARASTRUCT(mychptr, mychar) chptr->mode.extmodeparams[GETPARAMSLOT(mychar)]
|
||||
|
||||
#define GETPARASTRUCTEX(v, mychar) v[GETPARAMSLOT(mychar)]
|
||||
|
||||
#define CMP_GETSLOT(x) GETPARAMSLOT(x)
|
||||
#define CMP_GETHANDLERBYSLOT(x) GETPARAMHANDLERBYSLOT(x)
|
||||
#define CMP_GETHANDLERBYLETTER(x) GETPARAMHANDLERBYLETTER(x)
|
||||
#define CMP_GETSTRUCT(x,y) GETPARASTRUCT(x,y)
|
||||
|
||||
#endif
|
||||
|
||||
/*** Extended bans ***/
|
||||
@@ -355,6 +346,7 @@ typedef struct _ModuleObject {
|
||||
Callback *callback;
|
||||
Efunction *efunction;
|
||||
Isupport *isupport;
|
||||
Cmode *cmode;
|
||||
} object;
|
||||
} ModuleObject;
|
||||
|
||||
@@ -547,7 +539,6 @@ Isupport *IsupportFind(const char *token);
|
||||
#define add_HookX(hooktype, func1, func2, func3) HookAddMain(NULL, hooktype, func1, func2, func3)
|
||||
|
||||
Hook *HookAddMain(Module *module, int hooktype, int (*intfunc)(), void (*voidfunc)(), char *(*pcharfunc)());
|
||||
Hook *HookAddCfg(Module *module, int hooktype, int (*intfunc)(ConfigFile *cf, ConfigEntry *ce, int type, int *errs));
|
||||
Hook *HookDel(Hook *hook);
|
||||
|
||||
Hooktype *HooktypeAdd(Module *module, char *string, int *type);
|
||||
@@ -603,8 +594,7 @@ extern Callback *CallbackDel(Callback *cb);
|
||||
extern Efunction *EfunctionAddMain(Module *module, int eftype, int (*intfunc)(), void (*voidfunc)(), void *(*pvoidfunc)(), char *(*pcharfunc)());
|
||||
extern Efunction *EfunctionDel(Efunction *cb);
|
||||
|
||||
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(aClient*, aClient*, int, char**), unsigned char params, int flags);
|
||||
Command *CommandAdd_Alias(Module *module, char *cmd, char *tok, int (*func)(aClient*, aClient*, int, char**, char *sentcmd), unsigned char params, int flags);
|
||||
Command *CommandAdd(Module *module, char *cmd, char *tok, int (*func)(), unsigned char params, int flags);
|
||||
void CommandDel(Command *command);
|
||||
int CommandExists(char *name);
|
||||
Cmdoverride *CmdoverrideAdd(Module *module, char *cmd, iFP function);
|
||||
@@ -660,15 +650,9 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define HOOKTYPE_REMOTE_KICK 45
|
||||
#define HOOKTYPE_LOCAL_SPAMFILTER 46
|
||||
#define HOOKTYPE_SILENCED 47
|
||||
#define HOOKTYPE_CAN_JOIN 48
|
||||
#define HOOKTYPE_CAN_SEND 49
|
||||
#define HOOKTYPE_CLEANUP_CLIENT 50
|
||||
#define HOOKTYPE_CLEANUP_USER 51
|
||||
#define HOOKTYPE_CLEANUP_USER2 52
|
||||
#define HOOKTYPE_PRE_CHANMSG 53
|
||||
#define HOOKTYPE_KNOCK 54
|
||||
#define HOOKTYPE_MODECHAR_FIXME 55
|
||||
#define HOOKTYPE_CAN_KICK 56
|
||||
#define HOOKTYPE_POST_SERVER_CONNECT 48
|
||||
#define HOOKTYPE_RAWPACKET_IN 49
|
||||
#define HOOKTYPE_LOCAL_NICKPASS 50
|
||||
|
||||
/* Hook return values */
|
||||
#define HOOK_CONTINUE 0
|
||||
@@ -708,11 +692,13 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define EFUNC_DOSPAMFILTER_VIRUSCHAN 25
|
||||
#define EFUNC_FIND_TKLINE_MATCH_ZAP_EX 26
|
||||
#define EFUNC_SEND_LIST 27
|
||||
#define EFUNC_STRIPBADWORDS 28
|
||||
#define EFUNC_STRIPCOLORS 29
|
||||
#define EFUNC_STRIPCONTROLCODES 30
|
||||
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 31
|
||||
#define EFUNC_IS_SILENCED 32
|
||||
#define EFUNC_STRIPBADWORDS_CHANNEL 28
|
||||
#define EFUNC_STRIPBADWORDS_MESSAGE 29
|
||||
#define EFUNC_STRIPBADWORDS_QUIT 30
|
||||
#define EFUNC_STRIPCOLORS 31
|
||||
#define EFUNC_STRIPCONTROLCODES 32
|
||||
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 33
|
||||
#define EFUNC_IS_SILENCED 34
|
||||
|
||||
/* Module flags */
|
||||
#define MODFLAG_NONE 0x0000
|
||||
|
||||
+1
-1
@@ -84,7 +84,6 @@
|
||||
#define ERR_SUMMONDISABLED 445
|
||||
#define ERR_USERSDISABLED 446
|
||||
#define ERR_NONICKCHANGE 447
|
||||
#define ERR_FORBIDDENCHANNEL 448
|
||||
|
||||
|
||||
#define ERR_NOTREGISTERED 451
|
||||
@@ -337,6 +336,7 @@
|
||||
* These are also in the range 600-799.
|
||||
*/
|
||||
|
||||
#define RPL_REAWAY 597
|
||||
#define RPL_GONEAWAY 598
|
||||
#define RPL_NOTAWAY 599
|
||||
#define RPL_LOGON 600
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
int sendmodeto_one(aClient *cptr, char *from, char *name, char *mode, char *param, TS creationtime);
|
||||
void make_cmodestr(void);
|
||||
|
||||
/* lusers.c */
|
||||
void init_ircstats(void);
|
||||
|
||||
/* match.c */
|
||||
char *collapse(char *pattern);
|
||||
|
||||
|
||||
+3
-3
@@ -183,6 +183,9 @@
|
||||
/* Define if you have crypt */
|
||||
#undef HAVE_CRYPT
|
||||
|
||||
/* Local hostname of the server */
|
||||
#undef DOMAINNAME
|
||||
|
||||
/* The default permissions for configuration files */
|
||||
#undef DEFAULT_PERMISSIONS
|
||||
|
||||
@@ -237,9 +240,6 @@
|
||||
/* Define if you want to disable /set* and /chg* */
|
||||
#undef DISABLE_USERMOD
|
||||
|
||||
/* Define to disable extended ban stacking (~q:~c:#chan, etc) */
|
||||
#undef DISABLE_STACKED_EXTBANS
|
||||
|
||||
/* Define if your system prepends an underscore to symbols */
|
||||
#undef UNDERSCORE
|
||||
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
* $Id$
|
||||
*
|
||||
* $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
|
||||
* Import of Unreal3.1-beta3
|
||||
*
|
||||
|
||||
+54
-21
@@ -65,7 +65,7 @@
|
||||
#endif
|
||||
#include "auth.h"
|
||||
#ifndef _WIN32
|
||||
#include "pcreposix.h"
|
||||
#include "tre/regex.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
@@ -138,11 +138,13 @@ typedef struct Server aServer;
|
||||
typedef struct SLink Link;
|
||||
typedef struct SBan Ban;
|
||||
typedef struct SMode Mode;
|
||||
typedef struct SChanFloodProt ChanFloodProt;
|
||||
typedef struct SRemoveFld RemoveFld;
|
||||
typedef struct ListOptions LOpts;
|
||||
typedef struct FloodOpt aFloodOpt;
|
||||
typedef struct MotdItem aMotd;
|
||||
typedef struct trecord aTrecord;
|
||||
typedef struct IRCCommand aCommand;
|
||||
typedef struct Command aCommand;
|
||||
typedef struct _cmdoverride Cmdoverride;
|
||||
typedef struct SMember Member;
|
||||
typedef struct SMembership Membership;
|
||||
@@ -158,6 +160,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#endif
|
||||
|
||||
#ifndef VMSP
|
||||
#include "class.h"
|
||||
#include "dbuf.h" /* THIS REALLY SHOULDN'T BE HERE!!! --msa */
|
||||
#endif
|
||||
|
||||
@@ -572,7 +575,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OFLAG_LNOTICE 0x00004000 /* Oper can send local serv notices */
|
||||
#define OFLAG_GNOTICE 0x00008000 /* Oper can send global notices */
|
||||
#define OFLAG_ADMIN 0x00010000 /* Admin */
|
||||
/* 0x00020000 is free, previously addline */
|
||||
#define OFLAG_ADDLINE 0x00020000 /* Oper can use /addline */
|
||||
#define OFLAG_ZLINE 0x00080000 /* Oper can use /zline and /unzline */
|
||||
#define OFLAG_NETADMIN 0x00200000 /* netadmin gets +N */
|
||||
#define OFLAG_COADMIN 0x00800000 /* co admin gets +C */
|
||||
@@ -596,6 +599,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPCanDCCDeny(x) ((x)->oflag & OFLAG_DCCDENY)
|
||||
#define OPCanTKL(x) ((x)->oflag & OFLAG_TKL)
|
||||
#define OPCanGZL(x) ((x)->oflag & OFLAG_GZL)
|
||||
#define OPCanAddline(x) ((x)->oflag & OFLAG_ADDLINE)
|
||||
#define OPCanZline(x) ((x)->oflag & OFLAG_ZLINE)
|
||||
#define OPCanRehash(x) ((x)->oflag & OFLAG_REHASH)
|
||||
#define OPCanDie(x) ((x)->oflag & OFLAG_DIE)
|
||||
@@ -682,6 +686,13 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
/* blah */
|
||||
#define IsSkoAdmin(sptr) (IsAdmin(sptr) || IsNetAdmin(sptr) || IsSAdmin(sptr))
|
||||
|
||||
/*
|
||||
* defines for curses in client
|
||||
*/
|
||||
#define DUMMY_TERM 0
|
||||
#define CURSES_TERM 1
|
||||
#define TERMCAP_TERM 2
|
||||
|
||||
/* Dcc deny types (see src/s_extra.c) */
|
||||
#define DCCDENY_HARD 0
|
||||
#define DCCDENY_SOFT 1
|
||||
@@ -897,6 +908,7 @@ extern void CmodeDel(Cmode *cmode);
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
EXTCM_PAR_HEADER
|
||||
unsigned short num;
|
||||
unsigned short t;
|
||||
} aModejEntry;
|
||||
@@ -904,7 +916,9 @@ typedef struct {
|
||||
#define LISTENER_NORMAL 0x000001
|
||||
#define LISTENER_CLIENTSONLY 0x000002
|
||||
#define LISTENER_SERVERSONLY 0x000004
|
||||
#define LISTENER_REMOTEADMIN 0x000008
|
||||
#define LISTENER_JAVACLIENT 0x000010
|
||||
#define LISTENER_MASK 0x000020
|
||||
#define LISTENER_SSL 0x000040
|
||||
#define LISTENER_BOUND 0x000080
|
||||
|
||||
@@ -980,7 +994,7 @@ struct Client {
|
||||
u_short sendB; /* counters to count upto 1-k lots of bytes */
|
||||
u_short receiveB; /* sent and received. */
|
||||
aClient *listener;
|
||||
ConfigItem_class *cclass; /* Configuration record associated */
|
||||
ConfigItem_class *class; /* Configuration record associated */
|
||||
int authfd; /* fd for rfc931 authentication */
|
||||
short slot; /* my offset in the local fd table */
|
||||
struct IN_ADDR ip; /* keep real ip# too */
|
||||
@@ -1100,10 +1114,8 @@ struct _configitem_admin {
|
||||
ConfigFlag flag;
|
||||
char *line;
|
||||
};
|
||||
#ifdef FAKELAG_CONFIGURABLE
|
||||
|
||||
#define CLASS_OPT_NOFAKELAG 0x1
|
||||
#endif
|
||||
#define CLASS_OPT_NOTARGETLAG 0x2
|
||||
|
||||
struct _configitem_class {
|
||||
ConfigItem *prev, *next;
|
||||
@@ -1121,7 +1133,6 @@ struct _configflag_allow {
|
||||
unsigned useip :1;
|
||||
unsigned ssl :1;
|
||||
unsigned nopasscont :1;
|
||||
unsigned wrongpasscont :1;
|
||||
};
|
||||
|
||||
struct _configitem_allow {
|
||||
@@ -1131,7 +1142,7 @@ struct _configitem_allow {
|
||||
anAuthStruct *auth;
|
||||
unsigned short maxperip;
|
||||
int port;
|
||||
ConfigItem_class *cclass;
|
||||
ConfigItem_class *class;
|
||||
struct irc_netmask *netmask;
|
||||
ConfigFlag_allow flags;
|
||||
};
|
||||
@@ -1141,7 +1152,7 @@ struct _configitem_oper {
|
||||
ConfigFlag flag;
|
||||
char *name, *swhois, *snomask;
|
||||
anAuthStruct *auth;
|
||||
ConfigItem_class *cclass;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem *from;
|
||||
unsigned long modes;
|
||||
long oflags;
|
||||
@@ -1204,7 +1215,7 @@ struct _configitem_link {
|
||||
u_short port, options;
|
||||
unsigned char leafdepth;
|
||||
int refcount;
|
||||
ConfigItem_class *cclass;
|
||||
ConfigItem_class *class;
|
||||
struct IN_ADDR ipnum;
|
||||
time_t hold;
|
||||
#ifdef USE_SSL
|
||||
@@ -1253,11 +1264,13 @@ struct _iplist {
|
||||
/* struct irc_netmask *netmask; */
|
||||
};
|
||||
|
||||
#ifdef FAST_BADWORD_REPLACE
|
||||
#define BADW_TYPE_INVALID 0x0
|
||||
#define BADW_TYPE_FAST 0x1
|
||||
#define BADW_TYPE_FAST_L 0x2
|
||||
#define BADW_TYPE_FAST_R 0x4
|
||||
#define BADW_TYPE_REGEX 0x8
|
||||
#endif
|
||||
|
||||
#define BADWORD_REPLACE 1
|
||||
#define BADWORD_BLOCK 2
|
||||
@@ -1266,7 +1279,9 @@ struct _configitem_badword {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *word, *replace;
|
||||
#ifdef FAST_BADWORD_REPLACE
|
||||
unsigned short type;
|
||||
#endif
|
||||
char action;
|
||||
regex_t expr;
|
||||
};
|
||||
@@ -1314,7 +1329,6 @@ struct _configitem_log {
|
||||
char *file;
|
||||
long maxsize;
|
||||
int flags;
|
||||
int logfd;
|
||||
};
|
||||
|
||||
struct _configitem_unknown {
|
||||
@@ -1367,7 +1381,6 @@ struct _configitem_include {
|
||||
#ifdef USE_LIBCURL
|
||||
char *url;
|
||||
char *errorbuf;
|
||||
char *bind_ip;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -1453,22 +1466,36 @@ struct ListOptions {
|
||||
|
||||
#define NUMFLD 6 /* 6 flood types */
|
||||
|
||||
/* Number of maximum paramter modes to allow.
|
||||
* Don't set it unnecessarily high.. we only use k, l, L, j and f at the moment. (FIXME)
|
||||
*/
|
||||
#define MAXPARAMMODES 12
|
||||
struct SRemoveFld {
|
||||
struct SRemoveFld *prev, *next;
|
||||
aChannel *chptr;
|
||||
char m; /* mode to be removed */
|
||||
time_t when; /* scheduled at */
|
||||
};
|
||||
|
||||
struct SChanFloodProt {
|
||||
unsigned short per; /* setting: per <XX> seconds */
|
||||
time_t t[NUMFLD]; /* runtime: timers */
|
||||
unsigned short c[NUMFLD]; /* runtime: counters */
|
||||
unsigned short l[NUMFLD]; /* setting: limit */
|
||||
unsigned char a[NUMFLD]; /* setting: action */
|
||||
unsigned char r[NUMFLD]; /* setting: remove-after <this> minutes */
|
||||
unsigned long timer_flags; /* if a "-m timer" is running this is & MODE_MODERATED etc.. */
|
||||
};
|
||||
|
||||
/* mode structure for channels */
|
||||
struct SMode {
|
||||
long mode;
|
||||
#ifdef EXTCMODE
|
||||
Cmode_t extmode;
|
||||
void *extmodeparams[MAXPARAMMODES+1];
|
||||
CmodeParam *extmodeparam;
|
||||
#endif
|
||||
int limit;
|
||||
char key[KEYLEN + 1];
|
||||
char link[LINKLEN + 1];
|
||||
#if 0
|
||||
#ifdef NEWCHFLOODPROT
|
||||
ChanFloodProt *floodprot;
|
||||
#else
|
||||
/* x:y */
|
||||
unsigned short msgs; /* x */
|
||||
unsigned short per; /* y */
|
||||
@@ -1621,9 +1648,11 @@ struct liststruct {
|
||||
#define MODE_NOCOLOR 0x40000
|
||||
#define MODE_OPERONLY 0x80000
|
||||
#define MODE_ADMONLY 0x100000
|
||||
#define MODE_NOKICKS 0x200000
|
||||
#define MODE_STRIP 0x400000
|
||||
#define MODE_NOKNOCK 0x800000
|
||||
#define MODE_NOINVITE 0x1000000
|
||||
#define MODE_FLOODLIMIT 0x2000000
|
||||
#define MODE_MODREG 0x4000000
|
||||
#define MODE_INVEX 0x8000000
|
||||
#define MODE_NOCTCP 0x10000000
|
||||
@@ -1734,7 +1763,7 @@ extern MODVAR char *gnulicense[];
|
||||
#endif
|
||||
#define EVENT_HASHES EVENT_DRUGS
|
||||
#include "events.h"
|
||||
struct IRCCommand {
|
||||
struct Command {
|
||||
aCommand *prev, *next;
|
||||
char *cmd;
|
||||
int (*func) ();
|
||||
@@ -1743,7 +1772,7 @@ struct IRCCommand {
|
||||
unsigned parameters : 5;
|
||||
unsigned long bytes;
|
||||
Module *owner;
|
||||
aCommand *partner; /* cmd if token, token if cmd */
|
||||
aCommand *friend; /* cmd if token, token if cmd */
|
||||
Cmdoverride *overriders;
|
||||
Cmdoverride *overridetail;
|
||||
#ifdef DEBUGMODE
|
||||
@@ -1759,6 +1788,8 @@ struct _cmdoverride {
|
||||
int (*func)();
|
||||
};
|
||||
|
||||
#ifdef THROTTLING
|
||||
|
||||
struct ThrottlingBucket
|
||||
{
|
||||
struct ThrottlingBucket *prev, *next;
|
||||
@@ -1817,6 +1848,8 @@ void add_throttling_bucket(struct IN_ADDR *in);
|
||||
void del_throttling_bucket(struct ThrottlingBucket *bucket);
|
||||
int throttle_can_connect(aClient *, struct IN_ADDR *in);
|
||||
|
||||
#endif
|
||||
|
||||
#define VERIFY_OPERCOUNT(clnt,tag) { if (IRCstats.operators < 0) verify_opercount(clnt,tag); } while(0)
|
||||
|
||||
#define MARK_AS_OFFICIAL_MODULE(modinf) do { if (modinf && modinf->handle) ModuleSetOptions(modinfo->handle, MOD_OPT_OFFICIAL); } while(0)
|
||||
|
||||
+10
-1
@@ -132,6 +132,13 @@ extern char *rindex(char *, char);
|
||||
#define dn_skipname __dn_skipname
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Mac OS X Tiger Support (Intel Only)
|
||||
*/
|
||||
#if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
|
||||
#define OSXTIGER
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32
|
||||
extern VOIDSIG dummy();
|
||||
#endif
|
||||
@@ -143,10 +150,12 @@ typedef unsigned long u_long;
|
||||
typedef unsigned int u_int;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define MYOSNAME OSName
|
||||
extern char OSName[256];
|
||||
#ifdef _WIN32
|
||||
#define PATH_MAX MAX_PATH
|
||||
#else
|
||||
#define MYOSNAME getosname()
|
||||
#endif
|
||||
#ifdef DEBUGMODE
|
||||
// #define ircsprintf sprintf
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@
|
||||
|
||||
int MODFUNC url_is_valid(char *);
|
||||
char MODFUNC *url_getfilename(char *);
|
||||
char MODFUNC *download_file(char *, char **, char *);
|
||||
void MODFUNC download_file_async(char *, time_t, vFP, char *);
|
||||
char MODFUNC *download_file(char *, char **);
|
||||
void MODFUNC download_file_async(char *, time_t, vFP);
|
||||
void MODFUNC url_do_transfers_async(void);
|
||||
void MODFUNC url_init(void);
|
||||
|
||||
|
||||
+9
-9
@@ -24,7 +24,7 @@
|
||||
/**/
|
||||
#define COMPILEINFO DEBUGMODESET DEBUGSET
|
||||
|
||||
/* Version info follows, current: Unreal3.2.3
|
||||
/* Version info follows
|
||||
* Please be sure to update ALL fields when changing the version.
|
||||
* Also don't forget to bump the protocol version every release.
|
||||
*/
|
||||
@@ -36,24 +36,24 @@
|
||||
/** The generation version number (eg: 3 for Unreal3*) */
|
||||
#define UNREAL_VERSION_GENERATION 3
|
||||
|
||||
/** The major version number (eg: 3 for Unreal3.2*) */
|
||||
#define UNREAL_VERSION_MAJOR 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 -99
|
||||
#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).
|
||||
* This is updated automatically on the CVS server every Monday. so don't touch it.
|
||||
*/
|
||||
#define UNREAL_VERSION_TIME 200631
|
||||
#define UNREAL_VERSION_TIME 200914
|
||||
|
||||
#define UnrealProtocol 2308
|
||||
#define UnrealProtocol 2309
|
||||
#define PATCH1 "3"
|
||||
#define PATCH2 ".3"
|
||||
#define PATCH3 "-willneverbereleased"
|
||||
#define PATCH2 ".2"
|
||||
#define PATCH3 ".8"
|
||||
#define PATCH4 ""
|
||||
#define PATCH5 ""
|
||||
#define PATCH5 ".1"
|
||||
#define PATCH6 ""
|
||||
#define PATCH7 ""
|
||||
#define PATCH8 COMPILEINFO
|
||||
|
||||
+159
-15
@@ -1,6 +1,7 @@
|
||||
/* $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
|
||||
@@ -18,26 +19,44 @@
|
||||
#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>
|
||||
|
||||
#if defined(_AIX) || defined(NETWARE)
|
||||
/* 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)
|
||||
#include <winsock.h>
|
||||
#include <windows.h>
|
||||
# ifndef WIN32_LEAN_AND_MEAN
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# endif
|
||||
# include <winsock.h>
|
||||
# include <windows.h>
|
||||
//# include <ws2tcpip.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -70,6 +89,10 @@ extern "C" {
|
||||
/* 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)
|
||||
@@ -90,6 +113,12 @@ extern "C" {
|
||||
#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)
|
||||
@@ -106,24 +135,92 @@ extern "C" {
|
||||
#define ARES_NI_LOOKUPSERVICE (1 << 9)
|
||||
/* Reserved for future use */
|
||||
#define ARES_NI_IDN (1 << 10)
|
||||
#define ARES_NI_ALLOW_UNASSIGNED (1 << 11)
|
||||
#define ARES_NI_USE_STD3_ASCII_RULES (1 << 12)
|
||||
#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;
|
||||
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;
|
||||
};
|
||||
|
||||
/** Public available config (readonly) interface for ares_get_config(). */
|
||||
struct ares_config_info {
|
||||
int timeout;
|
||||
int tries;
|
||||
@@ -136,18 +233,27 @@ struct timeval;
|
||||
struct sockaddr;
|
||||
struct ares_channeldata;
|
||||
typedef struct ares_channeldata *ares_channel;
|
||||
typedef void (*ares_callback)(void *arg, int status, unsigned char *abuf,
|
||||
int alen);
|
||||
typedef void (*ares_host_callback)(void *arg, int status,
|
||||
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,
|
||||
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,
|
||||
@@ -156,15 +262,21 @@ 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,
|
||||
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);
|
||||
@@ -172,16 +284,48 @@ 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 hostent **host,
|
||||
struct addrttl *addrttls, int *naddrttls);
|
||||
int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
|
||||
struct hostent **host);
|
||||
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
|
||||
|
||||
@@ -4,14 +4,22 @@
|
||||
#define ARES__VERSION_H
|
||||
|
||||
#define ARES_VERSION_MAJOR 1
|
||||
#define ARES_VERSION_MINOR 3
|
||||
#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.3.0"
|
||||
#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 */
|
||||
+113
-40
@@ -1,7 +1,9 @@
|
||||
#ifndef ARES_SETUP_H
|
||||
#define ARES_SETUP_H
|
||||
#ifndef __ARES_SETUP_H
|
||||
#define __ARES_SETUP_H
|
||||
|
||||
/* Copyright (C) 2004 - 2005 by Daniel Stenberg et al
|
||||
/* $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
|
||||
@@ -14,38 +16,98 @@
|
||||
* 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
|
||||
/* simple work-around for now, for systems without configure support */
|
||||
#define ssize_t int
|
||||
#define socklen_t int
|
||||
|
||||
#ifdef WIN32
|
||||
#include "config-win32.h"
|
||||
#endif
|
||||
|
||||
/* 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
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
|
||||
/* now typedef our socket type */
|
||||
#if defined(WIN32) && !defined(WATT32)
|
||||
#include <winsock.h>
|
||||
typedef SOCKET ares_socket_t;
|
||||
#define ARES_SOCKET_BAD INVALID_SOCKET
|
||||
#else
|
||||
typedef int ares_socket_t;
|
||||
#define ARES_SOCKET_BAD -1
|
||||
#endif
|
||||
|
||||
/* Assume a few thing unless they're set by configure
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER)
|
||||
|
||||
#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
|
||||
|
||||
@@ -57,18 +119,21 @@ typedef int ares_socket_t;
|
||||
#define HAVE_SYS_UIO_H
|
||||
#endif
|
||||
|
||||
#if (defined(WIN32) || defined(WATT32)) && \
|
||||
!(defined(__MINGW32__) || defined(NETWARE))
|
||||
/* protos for the functions we provide in windows_port.c */
|
||||
int ares_strncasecmp(const char *s1, const char *s2, int n);
|
||||
int ares_strcasecmp(const char *s1, const char *s2);
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
|
||||
/* use this define magic to prevent us from adding symbol names to the library
|
||||
that is a high-risk to collide with another libraries' attempts to do the
|
||||
same */
|
||||
#define strncasecmp(a,b,c) ares_strncasecmp(a,b,c)
|
||||
#define strcasecmp(a,b) ares_strcasecmp(a,b)
|
||||
#endif
|
||||
/*
|
||||
* 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)
|
||||
@@ -79,4 +144,12 @@ int ares_strcasecmp(const char *s1, const char *s2);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* ARES_SETUP_H */
|
||||
/*
|
||||
* 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 */
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#endif
|
||||
#define SPATH "."
|
||||
#define DPATH "."
|
||||
#define DOMAINNAME "irc.net"
|
||||
#define NO_U_TYPES
|
||||
#define NEED_U_INT32_T
|
||||
#define PREFIX_AQ
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
/* 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
|
||||
@@ -24,7 +26,7 @@
|
||||
#define TRE_APPROX 1
|
||||
|
||||
/* Define to enable multibyte character set support. */
|
||||
#undef TRE_MULTIBYTE
|
||||
#define TRE_MULTIBYTE 1
|
||||
|
||||
/* Define to the absolute path to the system regex.h */
|
||||
/* #undef TRE_SYSTEM_REGEX_H_PATH */
|
||||
@@ -37,10 +39,10 @@
|
||||
/* #undef TRE_USE_SYSTEM_REGEX_H */
|
||||
|
||||
/* Define to enable wide character (wchar_t) support. */
|
||||
#undef TRE_WCHAR
|
||||
#define TRE_WCHAR 1
|
||||
|
||||
/* TRE version string. */
|
||||
#define TRE_VERSION "0.7.2"
|
||||
#define TRE_VERSION "0.7.5"
|
||||
|
||||
/* TRE version level 1. */
|
||||
#define TRE_VERSION_1 0
|
||||
@@ -49,4 +51,4 @@
|
||||
#define TRE_VERSION_2 7
|
||||
|
||||
/* TRE version level 3. */
|
||||
#define TRE_VERSION_3 2
|
||||
#define TRE_VERSION_3 5
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@
|
||||
# These values shouldn't need to be changed
|
||||
|
||||
# The path to the ircd binary
|
||||
ircdexe="@BINDIR@/ircd"
|
||||
ircdexe="@BINDIR@"
|
||||
|
||||
# The path to the ircd pid file
|
||||
ircdname="@IRCDDIR@/ircd.pid"
|
||||
|
||||
+21
-6
@@ -4,6 +4,7 @@
|
||||
CC=cl
|
||||
LINK=link
|
||||
RC=rc
|
||||
MT=mt
|
||||
|
||||
############################ USER CONFIGURATION ############################
|
||||
|
||||
@@ -110,10 +111,12 @@ OPENSSL_LIB=/LIBPATH:"$(OPENSSL_LIB_DIR)"
|
||||
|
||||
!IFDEF DEBUGEXTRA
|
||||
DBGCFLAG=/MDd /Zi /Od
|
||||
DBGCFLAGST=/MTd /Zi /Od
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MDd /Zi
|
||||
!ELSE
|
||||
DBGCFLAG=/MD /Zi
|
||||
DBGCFLAGST=/MT /Zi
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MD /Zi
|
||||
!ENDIF
|
||||
@@ -121,6 +124,8 @@ MODDBGCFLAG=/LDd /MD /Zi
|
||||
FD_SETSIZE=/D FD_SETSIZE=16384
|
||||
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
|
||||
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
|
||||
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
|
||||
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \
|
||||
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
|
||||
@@ -143,7 +148,7 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
|
||||
SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
|
||||
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ \
|
||||
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ \
|
||||
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ \
|
||||
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
|
||||
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
|
||||
SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \
|
||||
SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \
|
||||
@@ -172,7 +177,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_KNOCK.C SRC/MODULES/M_UMODE2.C SRC/MODULES/M_SQUIT.C \
|
||||
SRC/MODULES/M_PROTOCTL.C SRC/MODULES/M_SJOIN.C SRC/MODULES/M_PASS.C \
|
||||
SRC/MODULES/M_USERHOST.C SRC/MODULES/M_ISON.C SRC/MODULES/M_SILENCE.C \
|
||||
SRC/MODULES/M_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
|
||||
SRC/MODULES/M_ADDLINE.C SRC/MODULES/M_ADDMOTD.C SRC/MODULES/M_ADDOMOTD.C \
|
||||
SRC/MODULES/M_WALLOPS.C SRC/MODULES/M_GLOBOPS.C SRC/MODULES/M_LOCOPS.C \
|
||||
SRC/MODULES/M_CHATOPS.C SRC/MODULES/M_ADMIN.C SRC/MODULES/M_TRACE.C \
|
||||
SRC/MODULES/M_NETINFO.C SRC/MODULES/M_LINKS.C SRC/MODULES/M_HELP.C \
|
||||
@@ -206,7 +211,7 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
||||
SRC/MODULES/M_TIME.DLL SRC/MODULES/M_SVSKILL.DLL SRC/MODULES/M_KNOCK.DLL \
|
||||
SRC/MODULES/M_UMODE2.DLL SRC/MODULES/M_SQUIT.DLL SRC/MODULES/M_PROTOCTL.DLL \
|
||||
SRC/MODULES/M_SJOIN.DLL SRC/MODULES/M_PASS.DLL SRC/MODULES/M_USERHOST.DLL \
|
||||
SRC/MODULES/M_ISON.DLL SRC/MODULES/M_SILENCE.DLL \
|
||||
SRC/MODULES/M_ISON.DLL SRC/MODULES/M_SILENCE.DLL SRC/MODULES/M_ADDLINE.DLL \
|
||||
SRC/MODULES/M_ADDMOTD.DLL SRC/MODULES/M_ADDOMOTD.DLL SRC/MODULES/M_WALLOPS.DLL \
|
||||
SRC/MODULES/M_GLOBOPS.DLL SRC/MODULES/M_LOCOPS.DLL SRC/MODULES/M_CHATOPS.DLL \
|
||||
SRC/MODULES/M_ADMIN.DLL SRC/MODULES/M_TRACE.DLL SRC/MODULES/M_NETINFO.DLL \
|
||||
@@ -239,7 +244,7 @@ CLEAN:
|
||||
-@erase src\modules\*.ilk >NUL
|
||||
|
||||
./UNREAL.EXE: SRC/UNREAL.OBJ SRC/WIN32/UNREAL.RES
|
||||
$(LINK) $(DBGLFLAG) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
$(LINK) $(DBGLFLAGST) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
|
||||
CONF:
|
||||
-@copy include\win32\setup.h include\setup.h >NUL
|
||||
@@ -249,8 +254,9 @@ CONF:
|
||||
|
||||
|
||||
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
|
||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB SRC/WIN32/ARESLIB.LIB /MAPINFO:LINES /MAP
|
||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB SRC/WIN32/ARESLIB.LIB /MAP
|
||||
-@erase src\win32\win32.res
|
||||
$(MT) -manifest WIRCD.EXE.manifest -outputresource:WIRCD.EXE;1
|
||||
!IFNDEF DEBUGEXTRA
|
||||
@echo Standard version built
|
||||
!ELSE
|
||||
@@ -296,6 +302,12 @@ src/support.obj: src/support.c $(INCLUDES)
|
||||
src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
|
||||
$(CC) $(CFLAGS) src/channel.c
|
||||
|
||||
src/class.obj: src/class.c $(INCLUDES) ./include/class.h
|
||||
$(CC) $(CFLAGS) src/class.c
|
||||
|
||||
src/lusers.obj: src/lusers.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/lusers.c
|
||||
|
||||
src/aln.obj: src/aln.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/aln.c
|
||||
|
||||
@@ -387,7 +399,7 @@ src/win32.obj: src/win32/win32.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/win32/win32.c
|
||||
|
||||
src/unreal.obj: src/win32/unreal.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/win32/unreal.c
|
||||
$(CC) $(CFLAGSST) src/win32/unreal.c
|
||||
|
||||
src/help.obj: src/help.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/help.c
|
||||
@@ -657,6 +669,9 @@ src/modules/m_squit.dll: src/modules/m_squit.c $(INCLUDES)
|
||||
src/modules/m_protoctl.dll: src/modules/m_protoctl.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_protoctl.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_addline.dll: src/modules/m_addline.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_addline.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_addmotd.dll: src/modules/m_addmotd.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_addmotd.c $(MODLFLAGS)
|
||||
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Network Configuration File Template
|
||||
* -----------------------------------------
|
||||
* Added-at: August 2000
|
||||
* Author: Anonymos
|
||||
* E-Mail: Anonymos@Global-IRC.de
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global";
|
||||
default-server "IRC.Global-IRC.de";
|
||||
services-server "Service.Global-IRC.de";
|
||||
stats-server "Stats.Global-IRC.de";
|
||||
help-channel "#Global-IRC-World";
|
||||
hiddenhost-prefix "GL-IRC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Local-IRC-OP.Global-IRC.de";
|
||||
global "Global-IRC-OP.Global-IRC.de";
|
||||
coadmin "CoAdmin.Global-IRC.de";
|
||||
admin "ServerAdmin.Global-IRC.de";
|
||||
servicesadmin "ServiceAdmin.Global-IRC.de";
|
||||
netadmin "NetworkAdmin.Global-IRC.de";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Global-IRC.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@global-irc.net
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global-IRC";
|
||||
default-server "irc.global-irc.net";
|
||||
services-server "services.global-irc.net";
|
||||
stats-server "stats.global-irc.net";
|
||||
help-channel "#Global";
|
||||
hiddenhost-prefix "global";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.global-irc.net";
|
||||
global "ircop.global-irc.net";
|
||||
coadmin "coadmin.global-irc.net";
|
||||
admin "admin.global-irc.net";
|
||||
servicesadmin "serviceop.global-irc.net";
|
||||
netadmin "netadmin.global-irc.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* GlobalChat (irc.Globalchat.ca) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 13 March 2001 19:38
|
||||
* Author: WebbyBoy
|
||||
* Email: nykoo@singnet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "GlobalChat";
|
||||
default-server "irc.Globalchat.ca";
|
||||
services-server "services.globalchat.ca";
|
||||
stats-server "services.globalchat.ca";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "GC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Locop.AsiaCom.GlobalChat.ca";
|
||||
global "Oper.AsiaCom.GlobalChat.ca";
|
||||
coadmin "CoAdmin.AsiaCom.GlobalChat.ca";
|
||||
admin "Admin.AsiaCom.GlobalChat.ca";
|
||||
servicesadmin "Csop.AsiaCom.GlobalChat.ca";
|
||||
netadmin "NetAdmin.AsiaCom.GlobalChat.ca";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* IceChat (irc.icechat.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 19 February 2002 16:55
|
||||
* Author: Rosco
|
||||
* Email: pssystem@home.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IceChat";
|
||||
default-server "irc.icechat.net";
|
||||
services-server "services.icechat.net";
|
||||
stats-server "stats.icechat.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "00";
|
||||
hosts {
|
||||
local "locop.icechat.net";
|
||||
global "oper.icechat.net";
|
||||
coadmin "coadmin.icechat.net";
|
||||
admin "admin.icechat.net";
|
||||
servicesadmin "csop.icechat.net";
|
||||
netadmin "netadmin.icechat.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
set {
|
||||
network-name "Infinity-IRC.org";
|
||||
default-server "irc.infinity-irc.org";
|
||||
services-server "services.infinity-irc.org";
|
||||
stats-server "stats.infinity-irc.org";
|
||||
help-channel "#Infinity";
|
||||
hiddenhost-prefix "Infinity";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LOCop.Infinity-IRC.org";
|
||||
global "IRCop.Infinity-IRC.org";
|
||||
coadmin "IRCop-CoAdmin.Infinity-IRC.org";
|
||||
admin "IRCop-Admin.Infinity-IRC.org";
|
||||
servicesadmin "IRCop-ServiceAdmin.Infinity-IRC.org";
|
||||
netadmin "IRCop-NetAdmin.Infinity-IRC.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* ROXnet (irc.rox.za.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@roxnet.org
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IRCsystems";
|
||||
default-server "irc.ircsystems.net";
|
||||
services-server "services.ircsystems.net";
|
||||
stats-server "stats.ircsystems.net";
|
||||
help-channel "#IRCsystems";
|
||||
hiddenhost-prefix "rox";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.ircsystems.net";
|
||||
global "ircop.ircsystems.net";
|
||||
coadmin "coadmin.ircsystems.net";
|
||||
admin "admin.ircsystems.net";
|
||||
servicesadmin "csops.ircsystems.net";
|
||||
netadmin "netadmin.ircsystems.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Isno (irc.isno.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 11 mars 2001 22:05
|
||||
* Author: Shad
|
||||
* Email: olivier@isno.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Isno";
|
||||
default-server "irc.isno.net";
|
||||
services-server "services.isno.net";
|
||||
stats-server "stats.isno.net";
|
||||
help-channel "#aide";
|
||||
hiddenhost-prefix "isno";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.isno.net";
|
||||
coadmin "coadmin.isno.net";
|
||||
admin "admin.isno.net";
|
||||
servicesadmin "csop.isno.net";
|
||||
netadmin "netadmin.isno.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* l33t-irc.com (irc.l33t-irc.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 January 2002 15:46
|
||||
* Author: [LW]FlOwBiE
|
||||
* Email: flowbie@l33t-irc.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "l33t-irc.com";
|
||||
default-server "irc.l33t-irc.com";
|
||||
services-server "services.l33t-irc.com";
|
||||
stats-server "stats.l33t-irc.com";
|
||||
help-channel "#l33t-irc.com";
|
||||
hiddenhost-prefix "l33t-irc.com";
|
||||
hosts {
|
||||
local "local.l33t-irc.com";
|
||||
global "l33t-irc";
|
||||
coadmin "coadmin.l33t-irc.com";
|
||||
admin "admin.l33t-irc.com";
|
||||
servicesadmin "servicesadmin.l33t-irc.com";
|
||||
netadmin "netadmin.l33t-irc.com";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* LCIrc (irc.lcirc.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 16 June 2001 11:22
|
||||
* Author: RaYmAn
|
||||
* Email: rayman@skumler.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "LCIrc";
|
||||
default-server "irc.lcirc.net";
|
||||
services-server "services.lcirc.net";
|
||||
stats-server "stats.lcirc.net";
|
||||
help-channel "#lcirc";
|
||||
hiddenhost-prefix "lcirc";
|
||||
hosts {
|
||||
local "locop.lcirc.net";
|
||||
global "oper.lcirc.net";
|
||||
coadmin "coadmin.lcirc.net";
|
||||
admin "admin.lcirc.net";
|
||||
servicesadmin "csop.lcirc.net";
|
||||
netadmin "netadmin.lcirc.net";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
Executable
+250
@@ -0,0 +1,250 @@
|
||||
#!/bin/sh
|
||||
|
||||
# makenet v1.0 - generates a network file for UnrealIRCd
|
||||
#
|
||||
# you may freely use this file with any other program as
|
||||
# long as the credits remain intact
|
||||
#
|
||||
# (c) 2000 codemastr (Dominick Meglio) and the UnrealIRCd Team
|
||||
|
||||
VERSION="2.2"
|
||||
DATE=`date "+%d %B %Y %H:%M"`
|
||||
FILE="mynet.network"
|
||||
EXISTS="y"
|
||||
NICK="MyNick"
|
||||
EMAIL="me@mynet.org"
|
||||
NETWORK="My IRC Network"
|
||||
DEFSERV="irc.mynet.org"
|
||||
SERVICES_NAME="services.mynet.org"
|
||||
OPER_HOST="oper.mynet.org"
|
||||
ADMIN_HOST="admin.mynet.org"
|
||||
LOCOP_HOST="locop.mynet.org"
|
||||
CSOP_HOST="csop.mynet.org"
|
||||
NETADMIN_HOST="netadmin.mynet.org"
|
||||
COADMIN_HOST="coadmin.mynet.org"
|
||||
HIDDEN_HOST="hide"
|
||||
NETDOMAIN="mynet.org"
|
||||
HELPCHAN="#help"
|
||||
STATS_SERVER="stats.mynet.org"
|
||||
INAH="1"
|
||||
SUBMIT="y"
|
||||
|
||||
# Checking out how to specify not to make a new line with the current OS
|
||||
c=''
|
||||
n=''
|
||||
2>/dev/null
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ]; then
|
||||
c='\c'
|
||||
else
|
||||
n='-n'
|
||||
fi
|
||||
|
||||
clear
|
||||
echo "Welcome to the UnrealIRCd network file generator"
|
||||
echo "If you need help to set the IRCd up,"
|
||||
echo "mail unreal-support@lists.sourceforge.net or ask"
|
||||
echo "at IRC: /server irc.ircsystems.net, /join #unrealircd"
|
||||
echo ""
|
||||
echo "For any sake, read Unreal.nfo and read doc/faq before asking"
|
||||
echo "questions"
|
||||
echo "[Enter to Begin]"
|
||||
read cc
|
||||
|
||||
echo ""
|
||||
echo "What do you want your network file to be called?"
|
||||
echo $n "[$FILE] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
FILE="$cc"
|
||||
fi
|
||||
|
||||
if [ -f $FILE ]; then
|
||||
echo ""
|
||||
echo "$FILE already exists do you want to override it?"
|
||||
echo $n "[$EXISTS] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EXISTS="$cc"
|
||||
fi
|
||||
case "$EXISTS" in
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your IRC nickname?"
|
||||
echo $n "[$NICK] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NICK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your email address?"
|
||||
echo $n "[$EMAIL] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EMAIL="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your IRC network?"
|
||||
echo $n "[$NETWORK] -> $c"
|
||||
read cc
|
||||
if [ ! -z "$cc" ]; then
|
||||
NETWORK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the default server for your network?"
|
||||
echo $n "[$DEFSERV] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
DEFSERV="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your services server?"
|
||||
echo $n "[$SERVICES_NAME] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
SERVICES_NAME="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host opers will get when they oper up?"
|
||||
echo $n "[$OPER_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
OPER_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host services opers will get when they oper up?"
|
||||
echo $n "[$CSOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
CSOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host admins will get when they oper up?"
|
||||
echo $n "[$ADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
ADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host local opers will get when they oper up?"
|
||||
echo $n "[$LOCOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
LOCOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host coadmins will get when they oper up?"
|
||||
echo $n "[$COADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
COADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host netadmins will get when they oper up?"
|
||||
echo $n "[$NETADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What do you want the prefix for the hidden hosts to be?"
|
||||
echo $n "[$HIDDEN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HIDDEN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's domain name?"
|
||||
echo $n "[$NETDOMAIN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETDOMAIN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's help channel?"
|
||||
echo $n "[$HELPCHAN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HELPCHAN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your stats server?"
|
||||
echo $n "[$STATS_SERVER] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
STATS_SERVER="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Do you want oper's hosts to be changed on /oper?"
|
||||
echo "1 = yes 0 = no"
|
||||
echo $n "[$INAH] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
INAH="$cc"
|
||||
fi
|
||||
|
||||
# write the actual conf
|
||||
|
||||
cat > $FILE << __EOF__
|
||||
/*
|
||||
* $NETWORK ($DEFSERV) Network Configuration File
|
||||
*
|
||||
* Added-at: $DATE
|
||||
* Author: $NICK
|
||||
* Email: $EMAIL
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "$NETWORK";
|
||||
default-server "$DEFSERV";
|
||||
services-server "$SERVICES_NAME";
|
||||
stats-server "$STATS_SERVER";
|
||||
help-channel "$HELPCHAN";
|
||||
hiddenhost-prefix "$HIDDEN_HOST";
|
||||
hosts {
|
||||
local "$LOCOP_HOST";
|
||||
global "$OPER_HOST";
|
||||
coadmin "$COADMIN_HOST";
|
||||
admin "$ADMIN_HOST";
|
||||
servicesadmin "$CSOP_HOST";
|
||||
netadmin "$NETADMIN_HOST";
|
||||
__EOF__
|
||||
if [ "$INAH" = "1" ]; then
|
||||
echo " host-on-oper-up yes;" >> $FILE
|
||||
fi
|
||||
if [ "$INAH" = "0" ]; then
|
||||
echo " host-on-oper-up no;" >> $FILE
|
||||
fi
|
||||
echo " };" >> $FILE
|
||||
echo "};" >> $FILE
|
||||
__EOF__
|
||||
|
||||
echo ""
|
||||
echo "" >> ../unrealircd.conf
|
||||
echo "// Added by makenet $DATE" >> ../unrealircd.conf
|
||||
echo "include \"networks/$FILE\";" >> ../unrealircd.conf
|
||||
echo "All done. I have added \"include \"networks/$FILE\"; to your unrealircd.conf"
|
||||
echo "You might want to edit it if you have done makenet before"
|
||||
echo "Thank you for choosing UnrealIRCd"
|
||||
exit
|
||||
@@ -0,0 +1,38 @@
|
||||
/* Networks index file - do not touch please
|
||||
* Please report outdated entries to unreal-networks@lists.sourceforge.net
|
||||
*
|
||||
* NOTE: These networks are in no way affiliated with UnrealIRCd other than the fact
|
||||
* that they use it. The UnrealIRCd Team takes no responsibility for the content
|
||||
* of these networks.
|
||||
*/
|
||||
|
||||
networks/awesomechristians.network: Awesome Christians Chat Network (http://www.awesomechristians.com)
|
||||
networks/axenet.network ..........: AXEnet (http://www.axenet.org)
|
||||
networks/bunker7.network .........: Bunker7 (http://www.bunker7.net)
|
||||
networks/burnnet.network .........: BuRnNET (http://www.burncycl.net)
|
||||
networks/cabonet.network .........: CaboNet (http://www.cabonet.org)
|
||||
networks/chatcrap.network ........: ChatCrap (http://www.chatcrap.com)
|
||||
networks/chatuniverse.network ....: ChatUniverse (http://www.chatuniverse.net)
|
||||
networks/ctcp.network ............: CTCP Networks (http://www.ctcp.net)
|
||||
networks/darkkaos.network ........: Dark Kaos Network (http://www.darkkaos.net)
|
||||
networks/digitalirc.network ......: DigitalIRC (http://www.digitalirc.net)
|
||||
networks/discussioni.network .....: Discussioni.org (http://www.discussioni.org)
|
||||
networks/dragonwings.network .....: DragonWings (http://www.dragonwings.org)
|
||||
networks/gamescafe.network .......: GamesCafe (http://www.gamerscafe.net)
|
||||
networks/german-elite.network ....: German-Elite (http://www.german-elite.net)
|
||||
networks/german-global-irc.network: German Global IRC (http://www.global-irc.de)
|
||||
networks/globalchat.network ......: GlobalChat (http://www.globalchat.ca)
|
||||
networks/global-irc.network ......: Global-IRC (http://www.global-irc.net)
|
||||
networks/icechat.network .........: IceChat (http://www.icechat.net)
|
||||
networks/infinity.network ........: Infinity-IRC.org (http://www.infinity-irc.org)
|
||||
networks/isno.network ............: Isno (http://www.isno.net)
|
||||
networks/l33t-irc.network ........: L33T-IRC (http://www.l33t-irc.com)
|
||||
networks/lcirc.network ...........: LCIrc (http://www.lcirc.net)
|
||||
networks/outsiderz.network .......: Outsiderz (http://www.outsiderz.com)
|
||||
networks/phazenet.network ........: PhazeNet (http://www.phazenet.com)
|
||||
networks/stormdancing.network ....: StormDancing (http://www.stormdancing.net)
|
||||
networks/thainet.network .........: Thai IRC Network
|
||||
networks/unitedirc-org.network ...: Unitedirc (http://www.unitedirc.org)
|
||||
networks/wazzza.network ..........: wazZza (http://www.wazzza.org)
|
||||
networks/x-irc.network ...........: x-irc (http://www.x-irc.net)
|
||||
networks/zirc.network ............: ZiRC (http://www.zirc.org)
|
||||
@@ -0,0 +1,26 @@
|
||||
*
|
||||
* Outsiderz.com (irc.Outsiderz.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 29 January 2002 07:35
|
||||
* Author: DrDeath
|
||||
* Email: DrDeath@hotmail.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Outsiderz.com";
|
||||
default-server "irc.Outsiderz.com";
|
||||
services-server "services.outsiderz.com";
|
||||
stats-server "stats.outsiderz.com";
|
||||
help-channel "#Outsiderz";
|
||||
hiddenhost-prefix "Outsiderz";
|
||||
hosts {
|
||||
local "LocOP.Outsiderz.com";
|
||||
global "IrcOP.Outsiderz.com";
|
||||
coadmin "CoAdmin.Outsiderz.com";
|
||||
admin "Admin.Outsiderz.com";
|
||||
servicesadmin "CsOP.Outsiderz.com";
|
||||
netadmin "NetAdmin.Outsiderz.com";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* PhazeNet (irc.phazenet.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 01 March 2001 02:00
|
||||
* Author: Lady_Rusty
|
||||
* Email: ladyrusty@phazenet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "PhazeNet";
|
||||
default-server "irc.phazenet.com";
|
||||
services-server "services.phazenet.com";
|
||||
stats-server "stats.phazenet.com";
|
||||
help-channel "#services";
|
||||
hiddenhost-prefix "PhazeNet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.phazenet.com";
|
||||
coadmin "coadmin.phazenet.com";
|
||||
admin "admin.phazenet.com";
|
||||
servicesadmin "csop.phazenet.com";
|
||||
netadmin "netadmin.phazenet.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
set {
|
||||
network-name "tormdancing.Net";
|
||||
default-server "irc.stormdancing.net";
|
||||
services-server "Services.Stormdancing.Net";
|
||||
stats-server "stats.ircnet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Stormdancing";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOp.Stormdancing.Net";
|
||||
global "IRCop.Stormdancing.Net";
|
||||
coadmin "CoAdmin.Stormdancing.Net";
|
||||
admin "Admin.Stormdancing.Net";
|
||||
servicesadmin "ServiceOp.Stormdancing.Net";
|
||||
netadmin "NetAdmin.Stormdancing.Net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
|
||||
set {
|
||||
network-name "IRC"; // sets the name of your network
|
||||
default-server "irc.ircnet.org"; // sets the address of your default server (like irc.dal.net)
|
||||
services-server "services.ircnet.org"; // sets the name of your services server
|
||||
stats-server "stats.ircnet.org"; // sets the name of your stats server
|
||||
help-channel "#IRC"; // sets the name of your help channel
|
||||
hiddenhost-prefix "mpx"; // sets the prefix for the hidden hosts
|
||||
prefix-quit "Quit:"; // sets the first word to be used in a quit message
|
||||
hosts {
|
||||
local "locop.ircnet.org"; // sets the host to be given to locops
|
||||
global "ircop.ircnet.org"; // sets the host to be given to global ops
|
||||
coadmin "coadmin.ircnet.org"; // sets the host to be given to coadmins
|
||||
admin "admin.ircnet.org"; // sets the host to be given to admins
|
||||
servicesadmin "serviceop.ircnet.org"; // sets the host to be given to services admins
|
||||
netadmin "netadmin.ircnet.org"; // sets the host to be given to netadmins
|
||||
host-on-oper-up "off"; // sets whether to assign the hosts on oper up
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,18 @@
|
||||
set {
|
||||
network-name "Thai IRC Network";
|
||||
default-server "irc.thai.com";
|
||||
services-server "services.thai.com";
|
||||
stats-server "stats.thai.com";
|
||||
help-channel "#Services";
|
||||
hiddenhost-prefix "ThaiNet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.thai.com";
|
||||
global "ircop.thai.com";
|
||||
coadmin "coadmin.thai.com";
|
||||
admin "admin.thai.com";
|
||||
servicesadmin "serviceop.thai.com";
|
||||
netadmin "netadmin.thai.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Unitedirc (irc.unitedirc.org) Network Configuration File
|
||||
*
|
||||
* Added-at: 09 May 2001 12:25
|
||||
* Author: sjowie
|
||||
* Email: sjowie@unitedirc.org
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Unitedirc";
|
||||
default-server "irc.unitedirc.org";
|
||||
services-server "cservices.unitedirc.org";
|
||||
stats-server "stats.unitedirc.org";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "unhide";
|
||||
hosts {
|
||||
local "locop.unitedirc.org";
|
||||
global "oper.unitedirc.org";
|
||||
coadmin "coadmin.unitedirc.prg";
|
||||
admin "admin.unitedirc.org";
|
||||
servicesadmin "csop.unitedirc.org";
|
||||
netadmin "netadmin.unitedirc.org";
|
||||
host-on-oper yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Unreal-Team () Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@tspre.org
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "TESTnet";
|
||||
default-server "irc.testnet.ircsystems.net";
|
||||
services-server "services.testnet.ircsystems.net";
|
||||
stats-server "stats.testnet.ircsystems.net";
|
||||
help-channel "#testnet";
|
||||
hiddenhost-prefix "unreal";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.testnet.ircsystems.net";
|
||||
global "ircop.testnet.ircsystems.net";
|
||||
coadmin "coadmin.testnet.ircsystems.net";
|
||||
admin "admin.testnet.ircsystems.net";
|
||||
servicesadmin "csops.testnet.ircsystems.net";
|
||||
netadmin "netadmin.testnet.ircsystems.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* wazZza (irc.wazzza.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 08 april 2001 18:33
|
||||
* Author: [ripper]
|
||||
* Email: ripper@wazzza.org
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "wazZza";
|
||||
default-server "irc.wazzza.org";
|
||||
services-server "services.wazzza.org";
|
||||
stats-server "stats.wazzza.org";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "wazzza";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.wazzza.org";
|
||||
global "oper.wazzza.org";
|
||||
coadmin "coadmin.wazzza.org";
|
||||
admin "admin.wazzza.org";
|
||||
servicesadmin "csop.wazzza.org";
|
||||
netadmin "netadmin.wazzza.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* x-irc.net (irc.x-irc.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 14 July 2001 19:40
|
||||
* Author: TheDarkOne
|
||||
* Email: admin@x-irc.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "x-irc.net";
|
||||
default-server "irc.x-irc.net";
|
||||
services-server "services.x-irc.net";
|
||||
stats-server "stats.x-irc.net";
|
||||
help-channel "#x-irc";
|
||||
hiddenhost-prefix "x-irc";
|
||||
hosts {
|
||||
local "locop.x-irc.net";
|
||||
global "globop.x-irc.net";
|
||||
coadmin "coadmin.x-irc.net";
|
||||
admin "admin.x-irc.net";
|
||||
servicesadmin "csop.x-irc.net";
|
||||
netadmin "netadmin.x-irc.net";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* ZiRC (irc.zirc.org) Network Configuration File
|
||||
*
|
||||
* Added-at: 18 June 2001 11:29
|
||||
* Author: BaTmAn
|
||||
* Email: BaTmAn@UnrealIRCd.org
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ZiRC";
|
||||
default-server "irc.zirc.org";
|
||||
services-server "services.zirc.org";
|
||||
stats-server "stats.zirc.org";
|
||||
help-channel "#ZiRC";
|
||||
hiddenhost-prefix "ZiRC";
|
||||
hosts {
|
||||
local "staff.zirc.org";
|
||||
global "staff.zirc.org";
|
||||
coadmin "staff.zirc.org";
|
||||
admin "staff.zirc.org";
|
||||
servicesadmin "staff.zirc.org";
|
||||
netadmin "staff.zirc.org";
|
||||
host-on-oper yes;
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user