diff --git a/.CHANGES.NEW b/.CHANGES.NEW index 97ac2f4bf..8ce7e1064 100644 --- a/.CHANGES.NEW +++ b/.CHANGES.NEW @@ -7,7 +7,7 @@ \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_| Configuration Program - for Unreal3.2.5 + for Unreal3.2.6 This program will help you to compile your IRC server, and ask you questions regarding the compile-time settings of it during the process. diff --git a/.RELEASE.NOTES b/.RELEASE.NOTES index 53d1445d7..f2e72331d 100644 --- a/.RELEASE.NOTES +++ b/.RELEASE.NOTES @@ -1,12 +1,6 @@ -Unreal3.2.5 Release Notes +Unreal3.2.6 Release Notes ========================== -If you are upgrading, please take a minute to read these release notes. -*NIX Users: PREFIX_AQ is now enabled by default. See under 'CHANGED' below. - -If you are a coder and want to help out with Unreal3.3* development, then check out -http://dev.unrealircd.com/ and http://dev.unrealircd.com/wiki/Coders_Contest - ==[ GENERAL INFORMATION ]== - If you are upgrading on *NIX, make sure you run 'make clean' and './Config' first before doing 'make' @@ -16,88 +10,95 @@ http://dev.unrealircd.com/ and http://dev.unrealircd.com/wiki/Coders_Contest 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.4). Upgrading from 3.2.3 is ok as well. + version (3.2.5). Upgrading from 3.2.3 or 3.2.4 should be ok as well. 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 80+ changes, and trying to mention them + all would be useless, see the Changelog for the full list of changes. ==[ NEW ]== -- CGI:IRC Host spoofing support. This means you can mark certain CGI:IRC gateways - as trusted, and then the IRCd will show the real IP/host everywhere for those - users, instead of the IP/host of the CGI:IRC gateway. See docs section 4.36. -- Time synchronization support. This is enabled by default and will synch the IRCd - clock when Unreal is started. This should get rid of most time differences, though - the clock can still be off 1-3 seconds. If for some reason no reply from the time - servers is received within 3 seconds, then the IRCd will continue to boot as usual. - Several set::timesynch::* settings have been added, including set::timesynch::enabled - which you can set to 'no' to disable time synching (eg: because you already run ntpd). -- NAMESX support. This (mostly) fixes a long-standing IRC protocol bug. If, for - example, a user was +vo and then deops (-o), other clients could not always - know the user was then still +v, now they can. Supported by XChat and newest mIRC. -- Chained SSL certificates support -- Russian doc/example.ru.conf and Turkish doc/unreal32docs.tk.html +- None. Except some behavior changes, see next. ==[ CHANGED ]== -- PREFIX_AQ (the ~ and & symbols for +q and +a) are now ENABLED BY DEFAULT on *NIX. - They have always been enabled on Windows, so it made sense to do the same for *NIX. - Pretty much all major clients support it now (mIRC, xchat, irssi, epic, PJIRC, - CGI:IRC, etc). -- If DNS info (*NIX: /etc/resolv.conf, Win: registry) is updated, a '/REHASH -dns' - now rereads this info, no restart needed anymore. -- me::numeric can now be changed without a restart, if no servers are linked. -- Improved windows crash info: we now create minidumps, this should aid debugging. -- '/quote dns i' (as an oper) now shows nameserver info again -- Local oper may now use /TRACE -- If channel is +m but -t, you now need at least voice (+v) to change the topic. -- When checking if someone is banned, we now always verify bans against the cloaked host, - even if the user has a vhost and the cloaked host is not visible / unused. -- Extra binary compatibility checks: (gcc) compiler version -- Allow /*LINE'ing of literalident@* (eg: gline clones@*). Things like *clones@* are - still denied though, and this will not be changed. Use services AKILL instead. -- Command aliases: made empty parameters work if the alias allows it (eg, the alias - uses .* as a regex and not .+) -- Moved another 2K lines from core to modules, this means 31K lines are now in modules - and can be upgraded on the fly. -- Real Command Aliases: This makes it possible to, for example, alias '/GLINEBOT' to - 'GLINE 2d Bots are not permitted on this network, etcetc'. For more information, - see the docs on the alias block and/or search for "glinebot" in doc/example.conf. -- /etc/hosts is no longer checked (it never did before 3.2.3 either) +- SSL: The server certificate and keys can now be reloaded via '/REHASH -ssl', no + restart needed anymore. +- IRCOps can now view the bans of a channel ("MODE #channel b") from the outside +- Moved failed /OPER attempt notices to snomask +o and made them sent to all servers. + This means all failed oper attempts can now be seen globally. Plus, the UID is now + always shown (like for incorrect host and maxlogin), unless trying an unknown oper acc. +- The annoying "please type /quote pong" message is now no longer shown on connect, unless + explicitly enabled by setting set::pingpong-warning to 'yes'. (mainly Windows) +- /INVITE's from people on the silence list are now silently ignored +- SAPART now works for multiple channels (again) +- Non-SSL users are now kicked when netsynching and channel is +z (SSL only) +- No longer showing server numerics in /MAP to non-opers (too confusing anyway) +- Updated ukrainian-w1251, belarussian-w1251 and catalan character sets +- Spamfilter + IPv6: for target 'u' (nick!user@host:realname bans), the 'host' part + is now in brackets if it's an IPv6 address (eg: blah!blah@[1:2:3:4:5:6:7:8]:hello) +- loadmodule errors are improved +- Snomask 'N' will no longer show nick changes of U-lined servers +- The set::dns block is now no longer mandatory, because it is actually not used + (except for set::dns::bind-ip) and fetched from /etc/resolv.conf (*NIX) or the + registry (Windows) instead. This has always been the case, but has never been documented. +- Various doc updates ('/HELPOP ?EXTBANS', and some unreal32docs improvements) ==[ MAJOR BUGS FIXED ]== -- Spamfilter was not always working properly -- MS Visual studio 2005 (8.x) was unable to compile Unreal and/or caused crashes -- Certain IPv6 listen blocks could crash the ircd on-boot/on-rehash +- Crash if link::options::quarantine was used +- Another crash which could happen in some rare cases +- Throttling was not always being applied correctly +- Windows 2003: Fixed crash on-boot if no nameserver was set +- Windows: Fixed /RESTART not always working properly (leaving the ircd dead) ==[ MINOR BUGS FIXED ]== -- "Looking up your hostname" message was missing if set::options::show-connect-notice - was enabled (other messages, like "looking up ident" were shown, however) -- It was sometimes impossible to update a link { } block: all old settings would still - be used, this happened if connfreq was low. This might also have caused crashes. -- Netsynch problem, which could cause the wrong modes to be applied to a channel in - some rare cases. -- Setting set::maxdccallow to 0 (or lower) still allowed one entry to be added -- Spamfilter oversized-checking is no longer done when removing a spamfilter -- Operator count bug (there might still be others...) -- Some chinese-* charsets could not be selected individually -- No longer requiring a C++ compiler (was caused by resolver in 3.2.4) -- Added workaround for "make: Permission denied" bug in some FreeBSD's - -==[ REMOVED ]== -- MS Visual Studio 6 support, but this did not work anymore anyway... +- Remote includes: should now work with latest curl again, due to c-ares upgrade +- a bunch of OperOverride bugs.. messages being sent when they shouldn't, some things + not being logged or broadcasted, and more. +- Sometimes no message was shown when a link to an SSL server failed +- Desynch problem caused by +Q +- SAJOIN now properly deals with +z channels +- "MODE #channel" showing extended channel mode parameters if not in channel +- Channel Mode 'f' did not properly eat a parameter on unset (even though it would + show like it did), this could have caused desynchs in some cases. +- Fixed handling of CNAME's once again (now showing original name instead of fwded name) +- The "looking up your hostname" message was always sent, regardless of show-connect-info +- deny link { } blocks were being ignored by autoconnect +- Windows: SSL private key prompt caused a crash +- Windows: Unable to write to service.log caused a crash +- set::allowed-nickchars could cause a segfault for some unknown languages +- If class::connfreq was omitted and used for a server link, this would cause a huge + connection flood when autoconnect was used. +- set::dns::bind-ip was seen as a duplicate when it actually wasn't +- And more... see Changelog ==[ KNOWN ISSUES ]== -- Windows 2003: Crashes directly on-boot have been reported, while other W2003 servers - work perfectly fine (including the one we used for testing). No pattern in this has - been found yet, but the bug is somewhere in the resolver (c-ares). - 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. - Regexes: Possessive quantifiers such as, for example, "++" (not to be confused with "+") are not safe to use, they can easily freeze the IRCd. -- Windows: The /RESTART command will work, but the second time you do a /RESTART the - IRCd will "crash" with a dialogbox. + +==[ SERVICES / CODERS ]== +- Note: this is a new section, it describes changes specifically for services coders + and unreal module coders. Note that other changes (such as new modes, etc) mentioned + elsewhere in this document might affect you as well. For more info about a particular + change mentioned below (such as a new hooktype), see the Changelog. +- New hooktype: HOOKTYPE_SILENCED (called when a message is not delivered due to silence) +- New hooktype: HOOKTYPE_POST_SERVER_CONNECT (called after users synched to remote server) +- Fixed CALLBACKTYPE_CLOAK_EX, wasn't working properly at all +- Fixed SVSNICK: cAsE cHaNgE no longer causes a collision, fixed QUIT not being sent +- SVSMODE/SVS2MODE: when doing -x on a user, the virthost is removed from memory. + This means services can now properly "unvhost" a user and give them back their cloaked + host by doing "SVSMODE User -x+x". +- Services timestamps for users are now properly treated as unsigned long, previously + some trouble could arise when netsynching for values larger than 2147483647. +- 'SVSMOTD !' now removes the svsmotd from memory as well. +- Fixed SVSMODE -b User not always removing all bans for that user (specifically, bans on + the cloaked host, when the user has a vhost). +- Fixed SVSO - not removing coadmin (+C) ==[ ADDITIONAL INFO ]== * See Changelog for more details diff --git a/Changes b/Changes index a4d28c591..4c27e044a 100644 --- a/Changes +++ b/Changes @@ -1257,3 +1257,175 @@ - Updated doc/technical/005.txt - Mass version change (no code changes) ** 3.2.5 release ** +- c-ares resolver: upgrade from 1.3.0 to 1.3.1. This mainly fixes compile problems, + including one reported by frigola on an old Sun Cobalt RAQ3. + It will probably also fix an issue with the just released curl 7.15.4, if compiling + with remote includes. + TODO: Update win32 (not urgent) +- Added HOOKTYPE_SILENCED: this is called whenever a message did not get delivered to a user + because the user was on the silence list. +- Added OpenBSD 3.9 to the supported OS list. +- Made it so undefining SHOW_SECRET (not the default) properly hides +s channels from ircops + (except netadmins), as it should. Reported and patch supplied by Jason (#0002965). +- Fixed tld::options:: not working properly, reported by DelGurth (#0003003). +- Fixed problem with oper as chanadmin kicking himself causing an operoverride notice, + reported by Bock (as part of #2889). +- Fixed desynch problem with +Q, reported by tabrisnet (#0002992). +- Updated doc/coding-guidelines +- Added bugs.* url to /info, was still showing some email address. +- Fixed forgotten operoverride logmessage (kick if chan +Q), reported in #2889. +- Fixed operoverride message if oper is +h and -h's himself, reported by Bock (#2889). +- 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). +- 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). +- 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. +- 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. +- 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. +- 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 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 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... +- 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, + instead of letting it magically reappear whenever +x is set. This means services can + now properly "unvhost" a user by sending a "SVSMODE User -x+x" (then any existing vhost + will be removed and user will have a cloaked host). Reported by avenger and others + (#0002933). +- [internal] Made a spamfilter_build_user_string function that will build the spamfilter + user target string (nick!user@host:info), insteaf of doing it at like 5 places. +- Spamfilter target 'u' (user): the host field (nick!user@HOST:realname) is now escaped + with brackets if it's an IPv6 address, eg: blah!blah@[1:2:3:4:5:6:7:8]:hello, reported + by aquanight and others (#0003010). +- Win32: SSL private key prompt should now no longer crash. Patch provided by Alexey + Markevich (#0002866). +- Win32: we now no longer crash if no access to write to service.log, suggested and + patch by Xuefer (#0002886). +- Services timestamps are now always treated as an unsigned long (0..2^32-1), instead + of accidently as signed long during netsynchs. This bug caused issues with values + larger than 2147483647. Reported by avenger (#0002980). +- If the 'crypt' algorithm is used, then passwords were/are truncated to 8 characters. + We now print a warning when this happens (both on the IRC command and command-line). + Suggested by JasonTik (#0002953). +- 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). +- set::dns::* block is now no longer mandatory. All info has always been read from + /etc/resolv.conf (*NIX) or the registry (Win32), and the set::dns block is ignored + (except for set::dns::bind-ip, but that's a special case). Suggested by many including + djGrrr to make things slightly more logical (#0003019). +- As a consequence of the above, set::dns blocks were removed from doc/example*conf. +- Added two more characters to Catalan charset, reported by rmh (#0002995). +- Added set::pingpong-warning [yes|no] which decides whether to send the "** If you are + having problems connecting due to ping timeouts, please type /quote pong .." message + to each client when NOSPOOF is enabled (usually on Win32). The default is NO. + Previously this message was always sent if NOSPOOF was on, which often caused + confusion among users. The message was intended for non-confirming clients, but these + should be fixed by now, and those that were not fixed (self-made bots/etc) did often + not understand the message anyway. Anyway, you can still turn it on ;). (#2680). +- /INVITE's from people on the silence list are now (silently) ignored, suggested by + White_Magic (#0002478). +- Fixed a couple of typos and other one-line-text fixes at various places: reported by + aegis (#3081), DanPMK (#2818), tabrisnet (#2974, #2970, #2467), penna (#2721), + Brad (#2488), vonitsanet (#2467). +- Made OpenSSL version dynamic, reported by buildsmart (#0002975). +- Rejecting fake +z modes in conf, reported by rve (#0002532). +- Changed some minor Makefile stuff +- Fixed belarussian-w1251 charset.. accidently copied a "'" which caused an internal + error, reported by Bock (#0003114). +- 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 + SeigHart, patch provided by Bock (#0003064). This also fixes SAPART now being + announced to all opers globally, just like SAJOIN. +- Finally fixed /RESTART issue on windows for good, should now always restart correctly. + Patch provided by BuHHunyx and Bock (#0002734). +- Fixed charsys config error message sometimes saying stuff about set::accept-language, + which should be set::allowed-nickchars (the former does not exist). Reported and + patch provided by avb (#0003122). +- Fixed compile bug on Solaris due to missing INADDR_NONE, fix provided by Schak + (#0003125). +- 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. +- 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). +- 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). +** 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). +** 3.2.6-rc3 release ** +- Updated release notes, mass-change of version number, no code changes. +** 3.2.6 release ** diff --git a/Unreal.nfo b/Unreal.nfo index 383be547d..bfa001816 100644 --- a/Unreal.nfo +++ b/Unreal.nfo @@ -1,5 +1,5 @@ =============================================== -= UnrealIRCd v3.2.5 = += UnrealIRCd v3.2.6 = =============================================== Was brought to you by: diff --git a/autoconf/configure.in b/autoconf/configure.in index a96510921..2f8a5f6e6 100644 --- a/autoconf/configure.in +++ b/autoconf/configure.in @@ -459,7 +459,7 @@ cd $cur_dir dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE! -cares_version="1.3.0" +cares_version="1.3.2" AC_MSG_RESULT(extracting c-ares resolver library) cur_dir=`pwd` cd extras diff --git a/configure b/configure index 204b478d3..b046f27e4 100755 --- a/configure +++ b/configure @@ -12701,7 +12701,7 @@ fi cd $cur_dir -cares_version="1.3.0" +cares_version="1.3.2" echo "$as_me:$LINENO: result: extracting c-ares resolver library" >&5 echo "${ECHO_T}extracting c-ares resolver library" >&6 cur_dir=`pwd` diff --git a/doc/coding-guidelines b/doc/coding-guidelines index 2d493d289..f7378de32 100644 --- a/doc/coding-guidelines +++ b/doc/coding-guidelines @@ -39,3 +39,48 @@ Some minor rules about patches & modifications to UnrealIRCd 8. We do NOT rip people off. If we use other people's code, it MUST be properly credited. +9. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces. + Some code is old and horrible and has a mix of tabs and spaces used for + spacing, that's something we do not want to have ;) + +10. Be careful about overflows. As you know a line from a user can never be longer + than 511 (510?) characters, sometimes you can use this knowledge to your + advantage. Whenever it's not safe or when you don't know what input size you + can expect, use strlcpy instead of strcpy. Do not ever use strncpy, this is + older, slower, and does not add proper zero termination. + For the same reason, use snprintf if really needed. Note though, that using + ircsprintf with a bigger buffer (eg: 1024 bytes) is MUCH faster, so preferably + use that instead of snprintf. The same can be true for strcpy vs strlcpy in + some circumstances as well. + +11. Speed. When optimizing or writing code, keep in mind that readability and + stability comes first, and after that comes speed. So we'd rather prefer some + readable code (even if difficult) over some odd highly optimized routine which + nobody understands, is difficult to extend, and might have several bugs. + As mentioned earlier: use ircsprintf, not sprintf (this is because ircsprintf + is optimized for simple strings like the ones we use). + Prefer ircsprintf with a bigger buffer over the use of snprintf, since + ircsprintf is much faster. + +12. Initialize your structs and use the proper memory calls. + In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free). + MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling + the memory area (eg: the struct) with zero's (a la calloc). + Use of MyMallocEx is suggested. In general you should not be using MyMalloc. + "But MyMalloc is faster!" you might say. This is true, but using MyMallocEx + has very little speed impact and enourmous benefits: people tend to forget + to set certain fields in the struct to NULL, or much more common: when + someone later on (eg: 1 year later) adds a field to a struct, there could + be several places he/she needs to update to make sure x->something is NULL + after allocating a new struct. Bad idea. + Little speed impact, huge stability benefits, easy decision ;). + +13. Comment your code! This should speak for itself... + Put comments wherever you think they are needed, to aid any further coders + with reading your code.. and, in fact, it will aid yourself as well if you + would look back at your code 2 years later. + If there's some obscure pitfall, do mention it! Don't just "hope" a next + author will see it like you did. + +14. Use enums whenever possible, rather than #define constants. Besides making + things more clean, it also aids debugging. diff --git a/doc/example.bg.conf b/doc/example.bg.conf deleted file mode 100644 index 62300ec42..000000000 --- a/doc/example.bg.conf +++ /dev/null @@ -1,766 +0,0 @@ -/* - * example.conf by Alexander Ganchev AKA Peace (unrealirc@gmail.com). - * $Id$ - * - * Prednaznachen e za Unreal3.2 i versii sled nego - * Dobre priqteli. Tova e noviqt example.conf.Izglejda kato nqkoi fail C++ (shega). - * Kakto i da e..vreme e da go configurirame. Trudnichko e kato za purvi put, no - * sus malko praktikuvane i chetene shte mu sviknete. - * - * Kopiraite tozi fail vuv vashata glavna direktoriq i go prekrustete na 'unrealircd.conf'. - * VAJNO: Vsichki linii (tova sa zavurshvashtite na vseki red), - * {trqbwa da zavurshvat sus ; a kraq na samata liniqta slagate i } - demek nakraq stava }; - * MOLQ PROCHETETE doc/unreal32docs.html!Online versiqta shte namerite tuk - - * www.vulnscan.org/UnrealIrcd/unreal32docs.html - * Sudurja dosta informaciq za config faila: dava vi informaciq za vseki blok,stoinost, i taka natatuka.. - */ - -/* Tipove Komentari */ -#Comment type 1 (Shell type) -// Comment type 2(C++ style) -/* Comment type 3 (C Style) */ -#tezi linii shte budat ignorirani ot ircd-to. - -/* - * UnrealIRCd poddurja modulite,clock.dll & commands.dll - * zavisimost ot vashata operacionna sistema izberete za Windows ili za *NIX shte izpolzvate - * Nezavisimo ot Operacionnata vi sistema trqbva da mahnete //- predi loadmodule i na 2-ta reda. - */ - -/* FOR *NIX, uncomment the following 2lines: */ -//loadmodule "src/modules/commands.so"; -//loadmodule "src/modules/cloak.so"; - -/* FOR Windows, uncomment the following 2 lines: */ -//loadmodule "modules/commands.dll"; -//loadmodule "modules/cloak.dll"; - -/* - * Sushto taka moje da vkliuchite i drugi configuracionni failove. - * help.conf vi se qvqva komadata /helpop text. The badwords.*.conf - * falovete sudurjat vsichki "badword kato slojite mod +G v kanal - * spamfilter.conf sudurja nqkoi dobri pravila za zabrani za puskane na troianski kone. - * Ako iskate mojete da gi vkliuchite tqh : - */ -include "help.conf"; -include "badwords.channel.conf"; -include "badwords.message.conf"; -include "badwords.quit.conf"; -include "spamfilter.conf"; - -/* NEW: me {} - * OLD: M:Line - * me {} opredelq imeto,opisanie i cifrata na vashiqt unrealircd server. - * Sintaksisut e kakto sledva : - * me { - * name "server.name"; - * info "Server Description"; - * numeric (server numeric*); - * }; - * Ako linkvate Servera si,Cifrata moje bi nqma da bude izpolzvaema ot drugite serveri vuv mrejata - * Sreshtu numeric napishete nqkakvo chislo (kolkoto po-malko - tolkova po-dobre) - */ -me -{ - name "Imeto Na Servera vi"; - info "Opisanie Na Servera"; - numeric 0; -}; - -/* - * NEW: admin {} - * OLD: A:Line - * Admin dava informaciq za server admin-a na mrejata. - * Mojete da slojite mnogo linii pod grafata 'admin {' ako iskate. - * Sintaksisa kakto sledva: - * admin { - * "Purva liniq"; - * "Vtora liniq"; - * [drugi] - * }; - */ -admin { - "TUk Slojete informaciq za admina"; - "Tuk mojete da slojite i ime ili email"; -}; - -/* - * NEW: class {} - * OLD: Y:line (old was confusing) - * Class e grupa nastroiki za vashata vruzka.Primer,Server connect-vane,max clienti i drugi. - * delqt se na 2 Class-a. Class Cliends & Servers. - * { - * pingfreq ((kolko chesto da pignesh user/server v sekundi); - * maxclients (vuzmojnite connekcii za opredelen 'Class'); - * sendq (maksimuma ot hora v edna opashka); - * recvq (maximum receive queue from a connection [flood control]); - * }; - */ - -class clients -{ - pingfreq 90; - maxclients 500; - sendq 100000; - recvq 8000; -}; - -class servers -{ - pingfreq 90; - maxclients 10; /* Maksimum serveri koito moje da se link-nat */ - sendq 1000000; - connfreq 100; /* Sekundite mejdu vseki opit za connect-vane */ - -}; - -/* - * NEW: allow {} - * OLD: I:Line - * Tazi Opciq opredelq koi shte ima pravo da vliza na servera vi... - * Mojete da kontrolirate vashite klienti,da im slagate paroli i drugi. - * control and/or set a password. - * Syntax is as follows: - * allow { - * ip (razresheno ip za izpolzvane); - * hostname (host mask); - * class (class to send them to [see class {}]); - * password "(parola)"; (po izbor) - * maxperip (pozvoleni vruzki ot edno ip); (optional) - * }; - */ - -allow { - ip *@*; - hostname *@*; - class clients; - maxperip 5; -}; - -/* Passworded allow line */ -allow { - ip *@255.255.255.255; - hostname *@*.passworded.ugly.people; - class clients; - password "Test"; - maxperip 1; -}; - -/* - * NEW: allow channel {} - * OLD: chrestrict - * Razreshenie na userite da vlizat v opredelen kanal... - * Syntax: - * allow channel { - * channel "imeto na kanala"; - * }; - */ -allow channel { - channel "#Free"; -}; - -/* - * NEW: oper {} - * OLD: O:Line - * Opredelete koi da bude IRC Operator na servera vi - * IRC operators tova sa tochno tezi hora koito da se grijat za servera, - * da go poddurjat i da se connect-vat redovno. - * Sinktaksisut e kakto sledva : - * oper (login) { - * class (class to put them in, if different from I, moves them to new - * class); - * from { - * userhost (ident@host); - * userhost (ident@host); - * }; - * flags - * { - * (tuk shte slagate flagovete*); - * }; - * OR - * flags "old type flags, like OAaRD"; (sushto moje da slagate i samo bukvite) - * }; - */ - -/* Za lista s oper flagovete, poglednete doc/unreal32docs.html#operblock - *[Zaduljitelno da se prochete] - */ - -oper admin { - class clients; - from { - userhost *@*; - }; - password "Test"; - flags - { - netadmin; - can_zline; - can_gzline; - can_gkline; - global; - coadmin; - can_globalkill; - can_kline; - can_unkline; - can_rehash; - can_globops; - can_localroute; - can_wallops; - can_localkill; - can_localnotice; - can_globalroute; - can_globalnotice; - can_dccdeny; - can_setq; - services-admin; - }; -}; - -/* - * NEW: listen {} - * OLD: P:Line - * Tuk shte opredelite porta na vasheto ircd prez koito - * da vlizat useri/serveri. - * Siktaksisut e kakto sledva : - * listen (ip):(nomera na porta) - * { - * options { - * (options here); - * }; - * }; - * or for a plain - * listen: listen (ip):(port); - * - * NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port; - * - * That works also. - */ - -/* Options for listen: - OLD | NEW - S serversonly - C clientsonly - J java - s ssl - * standard -*/ - -/* BELEJKI ZA SSL PORTOVE : SSL portovete sa dosta nestandartni, - * osven nomera na 'high-SSL portovete', nqkoi hora kazvat che mojej da gi startirash - * na 994 port, zashtoto tova e oficialniqt SSL port..no tova izskva root!Osven tova port 194 - * e oficialniqt irc port i mojete nqkoi put da probvate da vidite dali ircd-to e startirano - * na tozi port. - * Nashiqt suvet e da izpolzvate port 6697 za SSL, toi se izpolzva vuv nqkoi mreji i - * mojete da otvorite mnogo SSL portove ako iskate, no izpolzvaite i 6697 po standart. - */ - -listen *:6697 -{ - options - { - ssl; - clientsonly; - }; -}; - -listen *:8067; -listen *:6667; - -/* - * NEW: link {} - * OLD: C/N:Lines - * Tezi opcii sa za link-vane na serveri - * BELEJKA: Dva servera se nujdaqt ot LINK {} za da budat linknati bez problemi! - * Sintaksisut e kakto sledva: - * link (server name) - * { - * username (username, moshete da slojite sushto i * ); - * hostname (ip nomer/hostmask); - * bind-ip (kum koe ip da bude svurzano sled kato se connect-ne, ili slojete * ); - * port (port za svurzvane (moje da slojite vseki); - * hub (ako servera vi e hub,slojete * , ili servermask-a); - * [ili leaf *;] - * password-connect "(parola za svurzvane)"; - * password-receive "(povtorete parolata)"; - * class (class); - * options { - * (options here*); - * }; - * /* Ako izpolzvate SSL,vie mojete da izberete shifur za da izpolzvate SSL mode - * * Lista shte namerite vuv "openssl ciphers",samostoqtelen shifur sus :'s - * */ - * ciphers "DES-CBC3-MD5"; - * - * }; -*/ - -/* - options: - OLD | NEW - S ssl - Z zip - N/A autoconnect - N/A quarantine - N/A nodnscache -*/ - - -link services.Test.com -{ - username *; - hostname 1.2.3.4; - bind-ip *; - port 7029; - hub *; - password-connect "LiNk"; - password-receive "LiNk"; - class servers; - options { - /* Belejka: vie ne mojete da izpolzvate autoconnect kogato linkvate serveri */ - autoconnect; - ssl; - zip; - }; -}; -/* - * - * NEW: ulines {} - * OLD: U:Line - * U-liniite davat poveche komandi na serverut vi,Uliniite se slagat samo za services/stats - * serveri i NIKOGA za normalnite UnrealIRCd serveri! - * Sintaksisut e kakto sledva: - * ulines { - * (server to uline); - * (server to uline); - * [etc] - * }; -*/ -ulines { - services.Test.org; - stats.Test.org; -}; - -/* - * NEW: drpass {} - * OLD: X:Line - * Tuk shte slagate parolite za /die i /restart na servera. - * Sintaksusut e kakto sledva: - * drpass { - * restart "(parola za restart na servera)"; - * die "(parola za die na servera)"; - * }; - */ -drpass { - restart "restart"; - die "die"; -}; - -/* - * NEW: log {} OLD: nishto ne se kazva otnosno tova kude i kakvo da logva.Mojete - * gi slagate ako iskate - * - * FLAGS: errors, kills, tkl, connects, server-connects, kline, oper - * - * Syntax: - * log "log file" - * { - * flags - * { - * flag; - * flag; - * etc.. - * }; - * }; - */ - -log "ircd.log" { - /* Iztriite log faila i napravete nov koito da stiga do 2MB. - */ - maxsize 2097152; - flags { - oper; - kline; - connects; - server-connects; - kills; - errors; - sadmin-commands; - chg-commands; - oper-override; - spamfilter; - }; -}; - -/* - * NEW: alias {} - * OLD: N/A - * Chrez tezi nastroiki moje da napravite prehod ot /nickserv,/chanserv i drugi kum drugi nickove. - * FLAGS: services,stats,normal - * - ** Syntax: - * alias "Ime" { - * target "points to"; - * type aliastype; - * }; - * [BELEJKA: Mojete da vkliuchite i opredeleniq,za celta poglednete doc/unreal32docs.html section 2.9] - */ - -// Tova posochva komandata /nickserv-a na user-a NickServ koito e svurzan s set::services-server server -/*alias NickServ { - target "NickServ"; - type services; -};*/ - -// Ako iskate komandite da sa na drug nick mojete da promenite nick-a -//alias ChanServ {type services; }; - -// Posochva /StatServ na user-a StatServ koqto svurzva set::stats-server server -//alias StatServ {type stats; }; - -// Posochva /superbot na user-a SuperBot -//alias SuperBot {type normal; }; - -/* Standart Aliases */ -alias NickServ { type services; }; -alias ChanServ { type services; }; -alias OperServ { type services; }; -alias HelpServ { type services; }; -alias StatServ { type stats; }; - -/* - * NEW: alias {} - * OLD: N/A - * Tezi moje da posochite zamestiteli na /identify,/services, i drugi... - * Syntax: - * alias "Ime" { - * format "format string" { - * target "points to"; - * type aliastype; - * parameters "parameters to send"; - * }; - * type command; - * }; - */ -/* Tova se pokazva otdelno, zashtoto vypreki che ima syshtoto ime kato predishnata direktiva - *e dosta razlichno po otnoshenie na sintaksis, vypreki che osigurqva prosta funkciq i raz4ita na standartni alias-i za da raboti. - */ -/* -alias "identify" { - format "^#" { - target "chanserv"; - type services; - parameters "IDENTIFY %1-"; - }; - format "^[^#]" { - target "nickserv"; - type services; - parameters "IDENTIFY %1-"; - }; - type command; -}; -*/ -/* alias::format ditektivata e obichaen izraz.Pyrviq format se svyrzva s - * komandata /identify kogato pyrviq simvol e "#". Sled tova se izprashta do chanserv - * alias-a s parametri identify. %1-. Togava vtoriq ormat se svyrzva s komandata /identify - * kogato pyrviq simvol ne e "#". - * Togava se izprashta do nickserv alias-a s parametri identify %1-. -*/ - -/* Standard aliases */ -alias "services" { - format "^#" { - target "chanserv"; - type services; - parameters "%1-"; - }; - format "^[^#]" { - target "nickserv"; - type services; - parameters "%1-"; - }; - type command; -}; - -alias "identify" { - format "^#" { - target "chanserv"; - type services; - parameters "IDENTIFY %1-"; - }; - format "^[^#]" { - target "nickserv"; - type services; - parameters "IDENTIFY %1-"; - }; - type command; -}; - -/* - * NEW: tld {} - * OLD: T:Line - * Tezi nastroki sa za razlichni 'motd' i 'rules' failove - * v zavisimost ot klientskata hostmask-a. - * Sintaksisut e kakto sledva: - * tld { - * * mask (ident@host); - * motd "(motd file)"; - * rules "(rules file)"; - * }; - */ - -tld { - mask *@*; - motd "ircd.motd"; - rules "ircd.rules"; -}; - -/* BELEJKA: vzemete nqkoi fail primer - vzemete tao.of.irc.doc..sled tova go kopiraite v - * glavnata direktoriq na Unrealircd-to vi.Prekrustete go na irc.motd..Napravete po sushtiq - * nachin i ircd.rules (FAILOVETE SA ZADULJITELNI) - */ - -/* - * NEW: ban nick {} - * OLD: Q:Line - * Ako slojite ban na nickname to veche tozi nick stava neizpolzvaem. - * Sintaksisut e kakto sledva : - * ban nick { - * mask "(nick koito jelaete da zabranite)"; - * reason "(prichina)"; - * }; -*/ -ban nick { - mask "Test"; - reason "Test Nickname"; -}; -/* - * NEW: ban ip {} - * OLD: Z:Line - * Ban na ip. - * Sintaksis: - * ban ip { mask (ip nomer/hostmask); reason "(prichina)"; }; -*/ -ban ip { - mask 100.100.200.300; - reason "Wrong Ip"; -}; -/* - * NEW: ban server {} - * OLD: Server Q:Line - * Slagane na ban na server.Ako servera e link-nat kum otdalecheniq server - * (toest tozi) localniqt server shte se diskonect-ne avtormatichno. - * Syntax is as follows: - * ban server { - * mask "(Imeto na servera)"; - * reason "(Prichina)"; - * }; -*/ - -ban server { - mask irc.microsoft.com; - reason "Get out of here"; -}; -/* - * NEW: ban user {} - * OLD: K:Line - * Tazi opciq pozvolqva da zabranite dostupa na user do vashiqt server - * Sintaksis: - * ban user { mask (hostmask/ip nomer); reason "(Prichina)"; }; -*/ - -ban user { - mask *tirc@*.microsoft.com; - reason "Idiot"; -}; -/* - * NEW: ban realname {} - * OLD: n:Line - * Tazi opciq vi dava pravo da zabranite dostupa na user ot opredeleno 'realname'. - * Sintaksis: - * ban realname { - * mask "(real name)"; - * reason "(prichina)"; - * }; -*/ - -ban realname { - mask "test"; - reason "mIRKFORCE"; -}; - -ban realname { - mask "sub7"; - reason "virus"; -}; - -/* - * BELEJKA ZA VSICHKI BANOVE, mojete da povtarqte procedurata sus razlichni nickove! - * - * NEW: except ban {} - * OLD: E:Line - * Nick koito ne moje da bude bannat. - * Sintaksis: - * except ban { mask (ident@host); } - */ - -except ban { - /* don't ban stskeeps */ - mask *stskeeps@212.*; -}; -/* - * NEW: deny dcc {} - * OLD: dccdeny.conf - * Izpolzvaite go za da zabranite dcc.Predpazva vi ot virusi - * Syntax: - * deny dcc - * { - * filename "Fail koito shte blokirate (ie, *exe)"; - * reason "prichina"; - * }; - */ -deny dcc { - filename "Sub7"; - reason "Possible Sub7 Virus"; -}; - -/* - * NEW: deny channel {} - * OLD: N/A (NEW) - * Zabranqva kanali po vash izbor. - * Syntax: - * deny channel { - * channel "(kanal)"; - * reason "prichina"; - * }; -*/ -deny channel { - channel "hackers"; - reason "Warez is illegal"; -}; - -/* - * NEW: vhost {} - * OLD: Vhost.conf file - * Tazi nastroika vi slaga Falshivo ip.Slaga se za hora koito ne sa operatori - * ili puk za operatori (za po murzelivite /sethost :P - * Sintaksis: - * vhost { - * vhost (vhost.com); - * from { - * userhost (ident@host to allow to use it); - * }; - * login (login name); - * password (password); - * }; - * then to use this vhost, do /vhost (login) (password) in IRC - */ -vhost { - vhost i.hate.microsefrs.com; - from { - userhost *@*; - }; - login stskeeps; - password moocowsrulemyworld; -}; - -/* Mojete da vkliuchite i drugi konfiguracionni failove */ -/* vkliuchete "klines.conf"; */ - -/* Network configuration */ -set { - network-name "Imeto na Mrejata vi"; - default-server "Imeto na Servera"; - services-server "Services.servera"; - stats-server "Stats.Servera"; - help-channel "#Kanal za pomosht"; - hiddenhost-prefix "skrithost"; - /* prefix-quit "quit na userite"; */ - /* Cloak Keys se slagat na vsichki serveri ot mrejata. - * Te se izpolzvat za po golqma sigurnost.Trqbva da budat izbrani 3 reda - * ot 5-100 simvola i da sudurjat SMESENI golemi,malki bukvi i cifri... - * V primera e posocheno edin takuv 'Cloak Key'..napishete oshte 2 - */ - cloak-keys { - "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; - "Slojete Tuk Vashi Razburkani"; - "Slojete Tuk Vashi Razburkani"; - }; - /* on-oper host */ - hosts { - local "Host za localen operator"; - global "Host za globalen operator"; - coadmin "Host za coadmin"; - admin "Host za admin"; - servicesadmin "Host za services-admin"; - netadmin "Host za netadmin"; - host-on-oper-up "yes\no"; - }; -}; - -/* Server specific configuration */ - -set { - kline-address "slojete adres za kline"; - auto-join "#kanal za auto-join"; - modes-on-connect "+iw"; - modes-on-oper "+wgs"; - oper-auto-join "#Kanal za auto-join na operatorite"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; - options { - hide-ulines; - /* Ako jelaete da proverqva identa mahnete */ - /* identd-check; */ - show-connect-info; - }; - - maxchannelsperuser 10; - /* Tova e minimalnoto vreme v koeto user moje da se svurje sled kato izleze ot servera. - * Tova shte pomogne da se spre spam-a */ - anti-spam-quit-message-time 10s; - /* Napravete statichen quit koito da zamestva drugite quit-ove na userite. - custom quits are allowed on local server */ - /* static-quit "Client quit"; */ - - /* Mojete da blokirate 'Part-reason-ite' kato slojite nqkakuv text po vash izbor */ - /* static-part yes; */ - - /* Mojete da slagate 'stats' ili inache kazano nqkoi flagove da budat razresheni i - * izpolzvaemi samo ot operite. Primer za tova sa - klines,glines i shuns - */ - oper-only-stats "okfGsMRUEelLCXzdD"; - - /* Throttling: Dolniqt primer pokazva che mojete da slojite limit 3 svurzvaniq - za 60 sec (na host). */ - throttle { - connections 3; - period 60s; - }; - - /* Anti flood protection */ - anti-flood { - nick-flood 3:60; /* 3 smenqniq na nicka za 60 seconds (po default) */ - }; - - /* Spam filter */ - spamfilter { - ban-time 1d; /* vremetraeneto e po default *line ban set by spamfilter */ - ban-reason "Spam/Advertising"; /* default prichina */ - virus-help-channel "#help"; /* Kanal za skanirane na virusi */ - /* s izkliuchenie "#help"; drugite kanali se osvobojdavat ot filtrirane */ - }; -}; - - -/* - * Ako imate problem ili nujda ot pomosht? - * 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html - * 2) www.vulnscan.org/UnrealIrcd/faq/ <- sudurja 80% ot vuprosite vi! - * 3) Ako imate problem moje da se oburnete i kum irc.ircsystems.net #unreal-support, - * no purvo PROCHETETE HELP FAILA i 'FAQ'. - */ - diff --git a/doc/example.conf b/doc/example.conf index 60109a96f..01b2aeb55 100644 --- a/doc/example.conf +++ b/doc/example.conf @@ -737,11 +737,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* You can enable ident checking here if you want */ diff --git a/doc/example.de.conf b/doc/example.de.conf index ec6abaf2a..8da47621b 100644 --- a/doc/example.de.conf +++ b/doc/example.de.conf @@ -19,7 +19,8 @@ * 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)/ + * Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net) + */ /* Kommentar Typen */ #Kommentar Typ 1 (Shell Typ) @@ -727,11 +728,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* Man kann hier ident checking aktivieren, wenn man will */ @@ -741,7 +737,7 @@ set { maxchannelsperuser 10; /* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung - * senden darf (Das wird offentlich helfen, Spam zu verhindern */ + * 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 */ diff --git a/doc/example.fr.conf b/doc/example.fr.conf index 67e134170..791b9489f 100644 --- a/doc/example.fr.conf +++ b/doc/example.fr.conf @@ -744,11 +744,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* Vous pouvez enclencher la vérification des idents si vous voulez */ diff --git a/doc/example.hu.conf b/doc/example.hu.conf index 5aa359fb7..846c68ee1 100644 --- a/doc/example.hu.conf +++ b/doc/example.hu.conf @@ -754,11 +754,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#operek"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* Itt engedélyezhetjük az ident ellenõrzést, ha szeretnénk */ diff --git a/doc/example.nl.conf b/doc/example.nl.conf index aaf3e33ef..1bbc257a3 100644 --- a/doc/example.nl.conf +++ b/doc/example.nl.conf @@ -253,6 +253,7 @@ oper bobsmith { * 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 { @@ -325,7 +326,7 @@ link hub.mynet.com password-receive "LiNk"; class servers; options { - /* Note: Gebruik geen autoconnect naar Services */ + /* Opmerking: Gebruik geen autoconnect naar Services */ autoconnect; ssl; zip; @@ -415,7 +416,7 @@ log "ircd.log" { * type aliastype; * }; * - * [NOTE: Je kan ook een standaard alias bestand gebruiken, zie doc/unreal32docs.html sectie 2.9] + * [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 @@ -755,11 +756,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* Je kan hier ident checking aanzetten als je wilt */ diff --git a/doc/example.ru.conf b/doc/example.ru.conf index 89acc6e2a..16f87f231 100644 --- a/doc/example.ru.conf +++ b/doc/example.ru.conf @@ -734,11 +734,6 @@ set { modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; - dns { - nameserver 127.0.0.1; - timeout 2s; - retries 2; - }; options { hide-ulines; /* Åñëè æåëàåòå, âû ìîæåòå âêëş÷èòü ïğîâåğêó ident */ diff --git a/doc/example.tr.conf b/doc/example.tr.conf new file mode 100644 index 000000000..244c1a850 --- /dev/null +++ b/doc/example.tr.conf @@ -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 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! + */ diff --git a/doc/help.de.conf b/doc/help.de.conf index 6f64aa88f..e785e30d2 100644 --- a/doc/help.de.conf +++ b/doc/help.de.conf @@ -160,8 +160,9 @@ help Chmodes { " a = Gibt einem User Channel-Admin Status"; " q = Gibt einem User Owner-Status"; " -"; - " b = Bannt alle User, auf die die nick!ident@host-Maske passt [h]"; - " c = Blockt alle Nachrichten in denen mIRC FarbCodes enthalten sind [o]"; + " b = Bannt alle User, auf die die nick!ident@host-Maske passt"; + " Erweiterte Bann Typen werden unter /HELPOP EXTBANS beschrieben [h]"; + " c = Blockt alle Nachrichten in denen mIRC FarbCodes enthalten sind [o]"; " e = Nimmt passende User von einem Bann aus [h]"; " f = Schutz vor Flood (für weitere Informationen siehe /HELPOP CHMODEF) [o]"; " I nick!ident@host> = Nimmt passende User von +i aus [h]"; @@ -196,6 +197,37 @@ help Chmodes { " ==------------------------------oOo----------------------------=="; }; +help ExtBans { + " Erweiterte Banntypen: "; + " -"; + " ==-Typ---------Name---------------------------Beschreibung----------------------=="; + " | | User, auf die dieser Bann gesetzt wird, können joinen, "; + " ~q | Quiet | a´ber nichts schreiben, solange sich nicht +v oder "; + " | | höher haben. "; + " | | Beispiel: "; + " | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | User, auf die dieser Bann gesetzt ist, können ihren "; + " ~n | nickchange | Nick nicht ändern, solange sie nicht +v oder höher sind."; "; + " | | Beispiel: "; + " | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Wenn der User in diesem Channel ist, kann er/sie nicht "; + " | [prefix] | joinen. Es kann ein Prefix (+/%/@/&/~) angegeben werden."; + " ~ñ | channel | Dadurch gilt der Bann nur, wenn der User diese Rechte "; + " | | oder höher im angegebenen Channel hat. "; + " | | Beispiel: +b ~c:#lamers, +e ~c:@#trusted "; + "-----------------------------------------------------------------------------------"; + " | | Wenn der Bann auf den gegebenen Realnamen gesetzt ist, "; + " | | kann dieser User nicht joinen. "; + " ~r | realname | Beispiel: +b ~r:*Stupid_bot_script* "; + " | | ACHTUNG: Ein Unterstrich ('_') steht für Beides: ein "; + " | | Leerzeichen und auch ein Unterstrich ('_') "; + " | | Dieser Bann würde auch auf 'Stupid bot script v1.4'. "; + " | | passen. "; + " ==------------------------------------------------------------------------------=="; +}; + help Chmodef { " Der +f Channel Mode ermöglicht eienn umfangreichen Flood Schutz für einen"; " Channel. Durch diesen Modus ist es möglich, Floods durch join, nick change,"; @@ -210,7 +242,7 @@ help Chmodef { " ==-----Type-----Name--------Default Action---Other Actions-----=="; " c CTCP +C m, M"; " j Join +i R"; - " k Knock +k"; + " k Knock +K"; " m Messages +m M"; " n Nickchange +N"; " t Text kick b"; @@ -1153,7 +1185,7 @@ help Svskill { help Svsnoop { " Dieser Befehl aktiviert oder deaktiviert die Möglichkeit"; - " globaler IrcOp Funktonen auf dem angegebenen Server."; + " IrcOp Funktonen auf dem angegebenen Server."; " Muss durch einen U:Lined Server gesendet werden."; " -"; " Syntax: SVSNOOP <+/->"; @@ -1247,7 +1279,9 @@ help Svsnline { " sind Leerzeichen durch '_' zu ersetzen, Unreal"; " übersetzt diese zu Leerzeichen."; " -"; - " Syntax: SVSNLINE :"; + " Syntax: SVSNLINE : (um einen Bann zu setzen)"; + " SVSNLINE - (um einen Bann zu löschen)"; + " SVSNLINE * (um alle Banns zu löschen)"; " Beispiel: SVSNLINE sub7_drone :*sub7*"; }; diff --git a/doc/help.fr.conf b/doc/help.fr.conf index df53fbece..5a4272cd8 100644 --- a/doc/help.fr.conf +++ b/doc/help.fr.conf @@ -151,6 +151,38 @@ help Snomasks { " ==-------------------------oOo------------------------=="; }; +help ExtBans { + " Types de bans étendus: "; + " -"; + " ==-Type--------Nom----------------------------Explication-----------------------=="; + " | | Les personnes correspondants à ces bans peuvent joindre "; + " ~q | Quiet | mais ne sont pas capables de parler, à moins qu'ils ne "; + " | | soient +v ou supérieur. "; + " | | Exemple: "; + " | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Les personnes correspondants à ces bans ne peuvent pas "; + " ~n | nickchange | changer de pseudos , à moins qu'ils ne soient +v ou "; + " | | supérieur. "; + " | | Exemple: "; + " | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Si l'utilisateur est sur ce salon alors il/elle ne peut "; + " | [prefix] | joindre. Un préfixe peut également être specifié "; + " ~ñ | channel | (+/%/@/&/~) qui signifie qu'il va seulement correspondre"; + " | | à l'utilisateurt qui a ces droits ou plus sur le salon "; + " | | spécifié "; + " | | Exemple: +b ~c:#lamers, +e ~c:@#trusted "; + "-----------------------------------------------------------------------------------"; + " | | Si le realname de l'utilisateur correspond à celui-ci "; + " | | alors il/est incapable de joindre. "; + " ~r | realname | Example: +b ~r:*Stupid_bot_script* "; + " | | NOTE: un underscore ('_') correspond à un espace (' ') "; + " | | et à un underscore ('_'), donc ca ban correspondra à "; + " | | 'Stupid bot script v1.4'. "; + " ==------------------------------------------------------------------------------=="; +}; + help Chmodes { " Cette section liste tous les modes de salons possibles pouvant être utilisés avec /MODE"; " -"; @@ -161,7 +193,8 @@ help Chmodes { " a = Donne le status de Channel Admin à l'utilisateur"; " q = Donne le status d'Owner à l'utilisateur"; " -"; - " b = Banni le nick!ident@host pour le salon [h]"; + " b = Banni le nick!ident@host pour le salon"; + Types de bans étendus (pour plus d'info voir /HELPOP EXTBANS)[h]"; " c = Bloque les messages contenant des codes couleurs mIRC [o]"; " e = Overrides un ban pour les utilisateurs correspondants [h]"; " f = Protection contre le Flood (pour plus d'informations voir /HELPOP CHMODEF) [o]"; @@ -209,7 +242,7 @@ help Chmodef { " ==-----Type-----Nom--------Action par Défaut---Autres Actions-----=="; " c CTCP +C m, M"; " j Join +i R"; - " k Knock +k"; + " k Knock +K"; " m Messages +m M"; " n Nickchange +N"; " t Text kick b"; @@ -556,7 +589,7 @@ help Watch { " -"; " Syntaxe: WATCH +nick1 +nick2 +nick3 (Ajoute des pseudos)"; " WATCH -nick (Enlève un pseudo)"; - " WATCH (Affiche la watchlist)"; + " WATCH (Voir quels utilisateurs sont en ligne)"; }; help List { @@ -1137,7 +1170,7 @@ help Svskill { }; help Svsnoop { - " Active ou désactive la présence des fonctions Global IRCop"; + " Active ou désactive la présence des fonctions IRCop"; " sur le serveur en question."; " Doit être envoyé à travers un serveur avec U:Line."; " -"; @@ -1231,9 +1264,11 @@ help Svsnline { " Doit être envoyé à travers un serveur avec U:Line."; " La raison doit être un seul paramètre c'est pour quoi"; " les espaces sont indiqués par des _, Unreal les traduira"; - " en interne par des espaces."; + " en interne par des espaces"; " -"; - " Syntaxe: SVSNLINE +/- :"; + " Syntaxe: SVSNLINE + : (pour ajouter un ban)"; + " Syntaxe: SVSNLINE - : (pour retirer un ban)"; + " Syntaxe: SVSNLINE * (pour effacer tous les bans)"; " Exemple: SVSNLINE + sub7_drone :*sub7*"; }; @@ -1260,7 +1295,7 @@ help Svssilence { " Au contraire de la commande SILENCE, vous pouvez ajouter/enlever"; " de multiple entrées sur une seule ligne."; " Syntaxe: SVSSILENCE :"; - " Exemple: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; + " Exemple: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; }; help Svssno { @@ -1277,7 +1312,7 @@ help Svs2sno { " Doit être envoyé à travers un serveur avec U:Line."; " -"; " Syntaxe: SVS2SNO "; - " Exemple: SVSSNO joe +Gc"; + " Exemple: SVS2SNO joe +Gc"; }; diff --git a/doc/help.ru.conf b/doc/help.ru.conf index 85f23b8f3..517967863 100644 --- a/doc/help.ru.conf +++ b/doc/help.ru.conf @@ -124,7 +124,7 @@ help Umodes { " T = Çàïğåùàåò ïîëó÷åíèå CTCP çàïğîñîâ"; " V = Ïîìå÷àåò êëèåíòà êàê ïîëüçîâàòåëÿ WebTV"; " W = Ïîçâîëÿåò âèäåòü, êîãäà êòî-òî äåëàåò /WHOIS íà Âàø"; - " íèê (òîëüêî äëÿ IRC îïåğàòîğîâ)"; + " íèê (òîëüêî äëÿ IRC îïåğàòîğîâ)"; " ==---------------------------oOo---------------------------=="; }; @@ -173,7 +173,8 @@ help Chmodes { " a = Äà¸ò ïîëüçîâàòåëş ñòàòóñ àäìèíèñòğàòîğà êàíàëà"; " q = Äà¸ò ïîëüçîâàòåëş ñòàòóñ âëàäåëüöà êàíàëà"; " -"; - " b = Íàêëàäûâàåò 'áàí' íà nick!ident@host [h]"; + " b = Íàêëàäûâàåò 'áàí' íà nick!ident@host"; + " òàêæå ñóùåñòâóşò 'ğàñøèğåííûå áàíû' (ïîäğîáíåå /HELPOP EXTBANS) [h]"; " c = Áëîêèğóåò ñîîáùåíèÿ, ñîäåğæàùèå óïğàâëÿşùèå êîäû mIRC äëÿ"; " çàäàíèÿ öâåòà [o]"; " e = Íàêëàäûâàåò ìàñêó èñêëş÷åíèÿ íà 'áàí' äëÿ"; @@ -230,6 +231,33 @@ help Chmodes { " ==------------------------------oOo----------------------------=="; }; +help ExtBans { + " Ñóùåñòâóşò ñëåäóşùèå ğàñøèğåííûå òèïû áàíîâ: "; + " -"; + " ==-Òèï---------Èìÿ----------------------------Ğàçúÿñíåíèå-----------------------=="; + " | | Ëşäè, ïîïàäàşùèå ïîä áàí, ìîãóò çàõîäèòü íà êàíàë, íî "; + " ~q | Òèõèé | íå ìîãóò ãîâîğèòü, ïîêà ó íèõ íå áóäåò +v èëè âûøå. "; + " | | Ïğèìåğ: "; + " | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Ëşäè, ïîïàäàşùèå ïîä áàí, íå ìîãóò èçìåíèòü íèê, ïîêà "; + " ~n | Çàïğåò íà | ó íèõ íå áóäåò +v èëè âûøå. "; + " | ñìåíó íèêà | Ïğèìåğ: "; + " | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Åñëè ëşäè ñèäÿò íà óêàçàííîì êàíàëå, îíè íå ñìîãóò çàéòè"; + " | | Ïğåôèêñîì ìîæíî óêàçàòü (+/%/@/&/~), êàêèõ èìåííî "; + " ~ñ | [ïğåôèêñ] | ïîëüçîâàòåëåé íåîáõîäèìî áàíèòü. Áóäóò çàáàíåíû òå, ó "; + " | Êàíàë | ó êîãî ïğàâà íà óêàçàííîì êàíàëå ğàâíû èëè âûøå. "; + " | | Ïğèìåğ: +b ~c:#lamers, +e ~c:@#trusted "; + "-----------------------------------------------------------------------------------"; + " | | Åñëè íàñòîÿùåå èìÿ ïîëüçîâàòåëÿ ïîïàäàåò ïîä áàí, "; + " ~r | íàñòîÿùåå èìÿ | îí íå ñìîæåò çàéòè. Ïğèìåğ: +b ~r:*Stupid_bot_script* "; + " | | Äîïîëíåíèå: Ïîä÷¸ğêèâàíèå ('_') îáîçíà÷àåò è "; + " | | ïğîáåë (' '), è ïîä÷¸ğêèâàíèå ('_'). "; + " ==------------------------------------------------------------------------------=="; +}; + help Chmodef { " Ğåæèì êàíàëà +f ïğåäîñòàâëÿåò ãèáêèé ìåõàíèçì çàùèòû êàíàëà îò ôëóäà."; " Ğåæèì ïîçâîëÿåò âàì êîíòğîëèğîâàòü ôëóä êîìàíä âõîäà, ñìåíû íèêà, CTCP,"; @@ -244,7 +272,7 @@ help Chmodef { " ==-----Òèï------Èìÿ-------Äåéñòâèå-------Äîïîëíèòåëüíî-----=="; " c CTCP +C m, M"; " j Join +i R"; - " k Knock +k"; + " k Knock +K"; " m Messages +m M"; " n Nickchange +N"; " t Text kick b"; @@ -1225,7 +1253,7 @@ help Svskill { }; help Svsnoop { - " Âêëş÷àåò èëè îòêëş÷àåò ğåæèì îáùåñåòåâîãî IRC îïåğàòîğà"; + " Âêëş÷àåò èëè îòêëş÷àåò ğåæèì IRC îïåğàòîğà"; " âíå çàâèñèìîñòè îò òîãî, ïîçâîëÿåò ıòî ñäåëàòü óêàçàííûé"; " ñåğâåğ èëè íåò."; " Äîëæíî èñïîëüçîâàòüñÿ ÷åğåç ñåğâåğ, îïèñàííûé â U:Lines."; @@ -1321,7 +1349,9 @@ help Svsnline { " Óêàçàííàÿ ïğè÷èíà íå äîëæíà ñîäåğæàòü ïğîáåëîâ, ñåğâåğ"; " ñàì çàìåíèò íà ïğîáåëû çíàê _"; " -"; - " Ñèíòàêñèñ: SVSNLINE +/- <ïğè÷èíà_áàíà> :<èìÿ>"; + " Ñèíòàêñèñ: SVSNLINE + <ïğè÷èíà_áàíà> :<èìÿ> (÷òîáû äîáàâèòü áàí)"; + " SVSNLINE - :<èìÿ> (÷òîáû óäàëèòü áàí)"; + " SVSNLINE * (î÷èñòèòü âñå áàíû)"; " Ïğèìåğ: SVSNLINE + sub7_drone :*sub7*"; }; @@ -1348,7 +1378,7 @@ help Svssilence { "  îòëè÷èå îò êîìàíäû SILENCE, âû ìîæåòå äîáàâëÿòü/óäàëÿòü"; " íåñêîëüêî çàïèñåé îäíîé êîìàíäîé."; " Ñèíòàêñèñ: SVSSILENCE <èìÿ> :<ïàğàìåòğû>"; - " Ïğèìåğ: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; + " Ïğèìåğ: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; }; help Svssno { @@ -1365,7 +1395,7 @@ help Svs2sno { " Äîëæíî èñïîëüçîâàòüñÿ ÷åğåç ñåğâåğ, îïèñàííûé â U:Lines."; " -"; " Ñèíòàêñèñ: SVS2SNO "; - " Ïğèìåğ: SVSSNO joe +Gc"; + " Ïğèìåğ: SVS2SNO joe +Gc"; }; diff --git a/doc/help.tr.conf b/doc/help.tr.conf new file mode 100644 index 000000000..b37460425 --- /dev/null +++ b/doc/help.tr.conf @@ -0,0 +1,1347 @@ +/* UnrealIRCd3.2 Yardım Ayarları +* Orjinal yardım metnini yazan by hAtbLaDe +* Gözden geçiren by CC (07/2002) +* +* Güncelleştirilmiş bir /HELPOP sistemi. +* Unreal3.2 ve üzeri versionları kapsanmıştır. 8/24/02 (Beta12) +* +* Türkçe Çeviri: Diablo - (Serkan Sepetçi) +* İletişim: diablo@unrealircd.org - irc.mircturk.com:6667 +*/ + +help { + " Server komutlar yardımı."; + " Sorunuzu yöneltmeden önce /HELPOP komutunu kullanınız."; + " Serverınız ile ilgili tüm komut ve yardımı bulacaksınız."; + " Ekstra bilgi istiyorsanız, lütfen serverınızın help kanalını ziyaret edin"; + " veya müsait bir IRCop'a sorunuzu yöneltin."; + " -"; + " /HELPOP USERCMDS - Kullanıcı komutlarını listeler"; + " /HELPOP OPERCMDS - Oper komutlarını listeler"; + " /HELPOP SVSCMDS - U:Lined Server (Servisler)'den gönderilen komutları listeler"; + " /HELPOP UMODES - Kullanıcı modelerini listeler"; + " /HELPOP SNOMASKS - Snomask'ları listeler"; + " /HELPOP CHMODES - Kanal modelerini listeler"; + " /HELPOP OFLAGS - O:Line flaglarını listeler"; + " -"; + " ==-------------------------oOo--------------------------=="; +}; + +/* note: indexes were generated by cat somecmds|sort|column -c 70 +* along with tab->space conversion (tabwidth 8). +* Perhaps we should automate this step :). -- Syzop +*/ + +help Usercmds { + " Şu anda aşağıda belirtilmiş Kullanıcı komutları aktiftir."; + " Ayrıntılı bilgi için /HELPOP "; + " komutunu kullanınız."; + " -"; + " ==-------------------------oOo-------------------------=="; + " ADMIN LICENSE PART USERHOST"; + " AWAY LINKS PING USERIP"; + " CREDITS LIST PONG VERSION"; + " CYCLE LUSERS PRIVMSG VHOST"; + " DALINFO MAP QUIT WATCH"; + " DCCALLOW MODE RULES WHO"; + " INVITE MODULE SETNAME WHOIS"; + " ISON MOTD SILENCE WHOWAS"; + " JOIN NAMES STATS"; + " KICK NICK TIME"; + " KNOCK NOTICE TOPIC"; + " ==-------------------------oOo-------------------------=="; +}; + +help Opercmds { + " Bu bölümdeki komutları sadece IRC Operatorler kullanabilir."; + " Ayrıntılı bilgi için /HELPOP "; + " komutunu kullanınız."; + " -"; + " ==-------------------------oOo-------------------------=="; + " ADCHAT GLOBOPS OPERMOTD SPAMFILTER"; + " CHATOPS GZLINE REHASH SQUIT"; + " CHGHOST HTM RESTART TEMPSHUN"; + " CHGIDENT KILL RPING TRACE"; + " CHGNAME KLINE SAJOIN TSCTL"; + " CLOSE LAG SAMODE UNDCCDENY"; + " CONNECT LOCOPS SAPART WALLOPS"; + " DCCDENY MKPASSWD SDESC ZLINE"; + " DIE MODULE SETHOST"; + " DNS NACHAT SETIDENT"; + " GLINE OPER SHUN"; + " ==-------------------------oOo-------------------------=="; +}; + +help Svscmds { + " Servisler ile uygulanılan komutları listeler."; + " U:Lined Server gönderebileceğiniz komutlar."; + " Komut aşağıdaki şekilde gönderilir:"; + " /MSG OPERSERV RAW :services "; + " Ayrıntılı bilgi için /HELPOP "; + " komutunu kullanınız."; + " -"; + " ==-------------------------oOo-------------------------=="; + " SQLINE SVSKILL SVSNLINE SVSSNO"; + " SVS2MODE SVSLUSERS SVSNOOP SVSWATCH"; + " SVS2SNO SVSMODE SVSO SWHOIS"; + " SVSFLINE SVSMOTD SVSPART UNSQLINE"; + " SVSJOIN SVSNICK SVSSILENCE"; + " ==-------------------------oOo-------------------------=="; +}; + +help Umodes { + " Aktif olarak kullanılan Kullanıcı modeleri aşağıdakilerdir."; + " -"; + " ==---------------------------oOo---------------------------=="; + " o = Global IRC Operator"; + " O = Local IRC Operator"; + " a = Services Administrator"; + " A = Server Administrator"; + " N = Network Administrator"; + " C = Co Administrator"; + " -"; + " d = Kanalda yazılan mesajları görmenizi engeller"; + " g = GlobOps ve LocOps mesajlarını görmenizi sağlar"; + " h = Yardim görevlisi statüsü verir.(HelpOp)(Oper Bloğunda belirtilir)"; + " i = Görünmez kullanıcı (/who sorgusunda görünmez)"; + " p = /whois sorgusunda bulunduğunuz kanalları gizler"; + " q = Sadece U:Lines ile belirtilen serverlar tarafından kanallardan atılabilirsiniz.(Sadece Services ve Network Admin Statüsündeki kullanıcılar kullanabilir)"; + " r = Identify yada Kayıt edilmiş kullanıcı"; + " s = Server mesajlarını görmenizi sağlar"; + " t = /Vhost kullandığınızı belirtir"; + " v = Bloke edilmiş DCC mesajlarını görmenizi sağlar"; + " w = Wallop mesajlarını görmenizi sağlar"; + " x = Gizlenmiş host kullandığınızı belirtir (Güvenlik)"; + " z = Güvenli bağlantı (SSL) kullanıldığını belirtir"; + " B = Bot statüsündeki kullanıcı"; + " G = Badwords bloğunda belirtilen kötü kelimeler kullanıldığında sansürlenir."; + " H = IRCOp statüsüne sahipseniz /whois /who sorgusunda bu statünüz görünmez.(Sadece IRCop)"; + " R = Sadece nicki kayitli (+r) olan kullanıcılardan mesaj almanızı sağlar"; + " S = Servisler için koruma modu"; + " T = CTCP metinlerinin size gönderimini engeller"; + " V = Kullanıcının WebTV kullandığını belirtir"; + " W = Size /whois çekildiğinde whois çekeni görmenizi sağlar. (Sadece IRCOp statüsündeki kullanıcılar kullanabilir)"; + " ==---------------------------oOo---------------------------=="; +}; + +help Snomasks { + " Snomask açılımı 'Server Notice MASK', server bildirilerini kontrol eder."; + " Bir server duyurusu alacaksınız."; + " Kullanımı: /MODE nick +s "; + " Örnek: /MODE blah +s +cF-j"; + " Bu komut ile hangi Snomask alıp almak istemediğinizi ayarlayabilirsiniz." + " Tüm snomaskları yandaki komut ile kaldırabilirsiniz /MODE nick -s."; + "-"; + " Aşağıdaki mümkün snomaskların bir listesidir:"; + " ==-------------------------oOo-----------------------=="; + " c = Yerel serverdaki giriş/çıkışları gösterir."; + " e = /CHG* ve /SET* ile servislere gönderilen komutlari görmenizi sağlar"; + " f = Flood saldırı uyarılarını gösterir."; + " F = Uzak serverdaki giriş/çıkışları gösterir."; + " G = Gline/Gzline/Shun uyarılarını görmenizi sağlar."; + " j = Junk uyarı mesajlarını görmenizi sağlar"; + " k = Atilan /kill komutlarini görmenizi sağlar"; + " n = Yerel serverdaki nick değişimlerini görmenizi sağlar"; + " N = Uzak serverdaki nick değişimlerini görmenizi sağlar"; + " o = Oper açma uyarılarını görmenizi sağlar"; + " q = Q-line sebebi ile reddedilen nickleri görmenizi sağlar"; + " s = Genel uyarıları görmenizi sağlar"; + " S = Spamfilter uyarılarını görmenizi sağlar"; + " v = Vhost kullanım uyarılarını görmenizi sağlar"; + " ==-------------------------oOo------------------------=="; +}; + +help Chmodes { + " Kullanılabilen mümkün kanal modelerinin hepsini listeler. /MODE"; + " -"; + " ==------------------------------oOo----------------------------=="; + " v = Voice(+) almış kullanıcı (+m Kanallarda konuşabilen kişi)"; + " h = Halfop(%) almış kullanıcı (Op'tan daha az yetkisi olan kişi)"; + " o = Op(o) Kanalda +o almis kullanıcı."; + " a = Koruma(a) almış kullanıcı."; + " q = Kanal sahibi(q) almış kullanıcı."; + " -"; + " b = Belirtilen maske kanalda yasaklanır."; + " Detaylı ban çeşitleri (daha çok bilgi için /HELPOP EXTBANS) [h]"; + " c = Kanal icerisinde renk kullanımı engeller [o]"; + " e = Belirtilen maske kanalda yasaklı (ban) listesinde olsa dahi kanala girebilir. [h]"; + " I = Belirtilen maskeye sahip olan kullanıcılar, kanal +i modunda olsa dahi kanala girebilirler. [h]"; + " f = Kanal flood koruma modu. (Bilgi için /HELPOP CHMODEF) [o]"; + " i = Sadece davetle girilebilen kanal. [h]"; + " j = Belirtilen saniyede bir kanala giriş yapılmasını sağlar. [o]"; + " k <Şifre> = Kanala giriş icin gereken anahtar. [h]"; + " l = Kanala girebilicek olan maximum kullanıcı sayısını belirler. [o]"; + " m = Sadece +vhoaq modeleri almış kullanıcıların konuşabileceği bir kanal. [h]"; + " n = Kanalda bulunmayan birinden gelecek mesajların bloklandığı bir kanal. [h]"; + " p = Özel bir kanal olduğunu belirtir. [o]"; + " r = Kayıt edilmiş bir kanal. (Sadece Servisler tarafından kullanılır.)"; + " s = Gizli bir kanal. [o]"; + " t = Sadece +hoaq modeleri almış kullanıcıların /topic komutunu kullanabileceği bir kanal. [h]"; + " z = Sadece Güvenli Bağlanti (SSL) kullananların erişim sağlayabileceği bir kanal. [o]"; + " A = Sadece Server/Net Adminlerinin girebileceği bir kanal."; + " C = CTCP metinlerini engeller. [o]"; + " G = Yasak kelimelerin sansür edildiği bir kanal. [o]"; + " M = Sadece kayıtlı (+r) veya voice'si olan (+v) kullanıcıların yazabileceği bir kanal. [o]"; + " K = /KNOCK komutuna izin verilmeyen bir kanal. [o]"; + " L = Kanal linkleme. (Eğer +l kişi ile kanal doldurulursa, sonraki kullanıcı otomatik olarak ye girer. [q]"; + " N = Nick değişikliği yapılamayan bir kanal. [o]"; + " O = Sadece IRCopların girebileceği bir kanal. (sadece IRCop'lar için)"; + " Q = KICK Komutunun uygulanamayacağı bir kanal. [o]"; + " R = Sadece kayıtlı (+r) kullanıcıların girebileceği bir kanal. [o]"; + " S = Renkli yazıların, renkli kodlardan arındırıp kanala gönderilmesini sağlar. [o]"; + " T = Noticenin komutunun kullanilamayacagi kanal. [o]"; + " V = /INVITE 'in kapali oldugu kanal. [o]"; + " u = Kanal operatorlerinin modelerinin gizli oldugu bir kanal. (sadece op'lar /names ve /who #kanal komutunu kullanabilir.) [q]"; + " -"; + " [h] Halfop, [o] Kanal Operator, [q] Kanal Sahibi"; + " ==------------------------------oOo----------------------------=="; +}; + +help ExtBans { + " Detaylı ban çeşitleri: "; + " -"; + " ==-Tip--------İsim-----------------------------Açıklama-------------------------=="; + " | | Kullanıcı kanala girebilir fakat yazı yazamaz, "; + " ~q | Quiet | yazabilmesi için +v veya daha yükseği gerekmektedir. "; + " | | Örnek: "; + " | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Kullanıcı nick değişemez, değişebilmesi için "; + " ~n | nickchange | +v veya daha yükseği gerekmektedir. "; + " | | Örnek: "; + " | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | Eğer kullanıcı bu kanalda olduğunda diğer kanallara "; + " | [prefix] | giriş yapamaz. Öneki (+/%/@/&/~) olan kullanıcılar "; + " ~ñ | channel | veya daha üst yetkilere sahip olan kullanıcılar kanala "; + " | | giriş yapacaklardır. "; + " | | Örnek: +b ~c:#lamers, +e ~c:@#trusted "; + "-----------------------------------------------------------------------------------"; + " | | Kullanıcıların realnameleri eşleşiyorsa, diğer kanallara"; + " | | giriş gerçekleştiremez. "; + " ~r | realname | Örnek: +b ~r:*Stupid_bot_script* "; + " | | NOT: ('_') Karakteri (' ') karakterine denk gelir ve "; + " | | dolayısı ile ('_') karekteri, bu ban "; + " | | 'Stupid bot script v1.4' ile eşleşir. "; + " ==------------------------------------------------------------------------------=="; +}; + +help Chmodef { + " +f kanal modu kanallar için gelişmiş bir flood koruma sistemi sağlamaktadır."; + " Bu mode sizin CTCP, nick değişimi, JOIN ve Knock floodlarını engelleyebilmenizi sağlar."; + " Bu modelerin kullanımı ve parametreleri aşağıdaki gibidir:" + " -"; + " +f [{#}{,...}]:"; + " -"; + " Parametre türleri aşağıda belirtilmiştir:"; + " -"; + " ==----Tip------İsim------Hazır Hareket---Diğer Hareket-----=="; + " c CTCP +C m, M"; + " j Join +i R"; + " k Knock +K"; + " m Messages +m M"; + " n Nickchange +N"; + " t Text kick b"; + " -"; + " m ve t tipi arasındaki fark m tüm kanal için geçerli olur t ise sadece kişi başına geçerlidir." + " -"; + " Eğer olay başına haraket belirlerseniz, aynı zamanda haraketin ne kadar süre(dakika)"; + " sonrasında geçerliliğini kaybedeceğini seçebilirsiniz."; +}; + + + +help Oflags { + " O:Lines içinde yerleştirilebilen flaglar aşağıdaki gibidir."; + " -"; + " ==-------------------------------oOo-----------------------------=="; + " o (locop) Yerel Operator"; + " O (globop) Global Operator"; + " C (coadmin) +C modu almış oper. Co Administrator"; + " A (admin) +A modu almış oper. Server Administrator"; + " a (services-admin) +a modu almış oper. Services Administrator"; + " N (netadmin) +N modu almış oper. Network Administrator"; + " -"; + " r (can_rehash) /REHASH komutunu kullanabilme yetkisi verir"; + " R (can_restart) /RESTART komutunu kullanabilme yetkisi verir"; + " D (can_die) /DIE komutunu kullanabilme yetkisi verir"; + " h (helpop) Opere +h (helpop) kullanıcı modunu verir. (helpop)"; + " g (can_globops) /GLOBOPS ile mesaj gönderebilme yetkisi verir"; + " w (can_wallops) /WALLOPS ile mesaj gönderebilme yetkisi verir"; + " n (can_localnotice) Yerel server noticeleri gönderebilme yetkisi verir"; + " G (can_globalnotice) Global server noticeleri gönderebilme yetkisi verir"; + " c (can_localroute) Yerel /SQUIT ve /CONNECT komutlarını kullanabilme yetkisi verir"; + " L (can_globalroute) Global /SQUIT ve /CONNECT komutlarını kullanabilme yetkisi verir"; + " k (can_localkill) Yerel /KILL komutu kullanabilme yetkisi verir"; + " K (can_globalkill) Global /KILL komutu kullanabilme yetkisi verir"; + " b (can_kline) /KLINE komutunu kullanabilme yetkisi verir"; + " B (can_unkline) /KLINE -user@host komutunu kullanabilme yetkisi verir(kline silme yetkisi)"; + " z (can_zline) /ZLINE komutunu kullanabilme yetkisi verir"; + " Z (can_gzline) Global /ZLINE komutunu kullanabilme yetkisi verir"; + " t (can_gkline) /GLINE, /SHUN ve /SPAMFILTER komutlarını kullanabilme yetkisi verir"; + " v (can_override) OperOverride kullanabilme yetkisi verir"; + " q (can_setq) +q kullanıcı modunu kullanabilme yetkisi verir"; + " H (get_host) Oper açtığında kullanıcının oper hostu almasını sağlar"; + " W (get_umodew) Oper açtığında kullanıcının +W modunu almasını sağlar"; + " X (can_addline) /ADDLINE komutunu kullanabilme yetkisi verir"; + " d (can_dccdeny) /DCCDENY ve /UNDCCDENY komutlarını kullanabilme yetkisi verir"; + " ==-------------------------------oOo-----------------------------=="; +}; + + +help Nick { + " Server üzerinde NICK değiştirmenizi sağlar."; + " Bulunduğunuz kanallarda NICK değişiminiz"; + " diğer kullanıcılara görüntülenecektir."; + " -"; + " Kullanımı: NICK "; + " Örnek: NICK hAtbLaDe"; +}; + +help Whois { + " Sorgularda kullanıcının hakkında bilgi gösterir,"; + " İsim, bulunduğu kanallar, Host maskesi vs."; + " bilgileri gösterir."; + " -"; + " Kullanımı: WHOIS "; + " Örnek: WHOIS hAtbLaDe"; + " -"; + " Status Flaglar:"; + " WHOIS cevabında gösterilen kanalların listesi, bir veya daha çok kapsayabilir."; + " Durum, kanalın hakkında bilgiyi göstermeyi sağlar. Bunlar aşağıdaki flaglardır."; + " ~ - Kullanıcı Kanal Sahibi (+q)"; + " & - Kullanıcı Kanal Admin (+a)"; + " @ - Kullanıcı Kanal Operatoru (+o)"; + " % - Kullanıcı Kanal Halfop (+h)"; + " + - Kullanıcı voice modesine sahip (+v)"; + " ! - Kullanıcının, whoisinde (+p) saklanan kanalları var, ve senin bir IRCop olman gerekli"; + " ? - Gizlenmiş bir kanal (+s) ve senin bir IRCop olman gerekli"; +}; + +help Who { + " Kullanıcıların hakkında durum bilgisi gösterir."; + " -"; + " Kullanımı:"; + " /WHO [+|-][acghimnsuMRI] [args]"; + " Flaglar tıpkı kanal modeleri gibidir, kullanılabilen modeler ve açıklamaları:"; + " Pozitif bir Flag ile (+) ayni anda negatif bir flagda (-) kullanılabilir."; + " Kullanılabilir Flaglar:"; + " Flag a Away olan kullanıcı"; + " Flag c : kanal üzerindeki kullanıcıları listeler, wildcards kabul edilemez."; + " Flag g : içeren kullanıcıları listeler, wildcards kabul edilir. Sadece IRCop'lar için "; + " Flag h : içeren kullanıcıları listeler, wildcards kabul edilir."; + " Flag i : adresi içeren kullanıcıları listeler."; + " Flag m : içeren kullanıcıları listeler, OPER olmayanlar."; + " Flag n : içeren kullanıcıları listeler, wildcards kabul edilir."; + " Flag s : içerisindeki kullanıcıları listeler, wildcards kabul edilemez."; + " Flag u : içeren kullanıcıları listeler, wildcards kabul edilir."; + " Durum Flagları:"; + " Flag M: Kullanıcının sizinle aynı kanalda olup olmadığı kanalları gösterir."; + " Flag R: Kullanıcıların gerçek hostnamesini gösterir."; + " Flag I: Kullanıcıların gerçek IP adresini gösterir."; + " -"; + " Server uyumlu, /who 0 o komutu +o almış kullanıcıları gösterir."; + " Örnek: WHO +m o"; + " -"; + " Status Flagları:"; + " Komut, kullanıcının hakkında farklı bilgiyi göstermesi için dönmüş olan"; + " sonuçta birkaç flağı gösterir. Bu flaglar, aşağıda açıklanmıştır:"; + " G - Kullanıcı /away (YOK)"; + " H - Kullanıcı /away (Burada)"; + " r - Kullanıcı bir kayıtlı nicke sahip"; + " B - Kullanıcı bir bot (+B)"; + " * - Kullanıcı bir IRCOperator"; + " ~ - Kullanıcı bir kanal sahibi (+q)"; + " & - Kullanıcı bir kanal admini (+a)"; + " @ - Kullanıcı bir kanal Operatoru (+o)"; + " % - Kullanıcı bir Halfop (+h)"; + " + - Kullanıcı bir voice (+v)"; + " ! - Kullanıcının IRC Operator olduğunu gizler"; + " ? - Kullanıcı online bir IRC Operator"; +}; + +help Whowas { + " Kullanıcılar için geçmiş WHOIS bilgilerini listeler."; + " Belirtilen kullanıcı, kısa süre önce serverda bulunmuş olması gerekir."; + " -"; + " Kullanımı: WHOWAS "; + " WHOWAS "; + " Örnek: WHOWAS hAtbLaDe"; +}; + +help Cycle { + " Kanallarda çık-gir yapmasını sağlar. Bu komut"; + " PART/JOIN komutuyla eş değerde sayılır."; + " -"; + " Kullanımı: CYCLE ,,"; + " Örnek: CYCLE #help"; + " Örnek: CYCLE #main,#chat"; +}; + +help Dns { + " IRC Serverının DNS hakkında dönüş bilgisi görüntüler."; + " Not edilen, kullanıcıların çoğunun, bir builtin DNS emri olduğundan beri"; + " Sen muhtemelen, bunu kullanmak için /raw DNS komutunu kullanman gerekecek."; + " Ayrıca 2 diğer değişken vardır:"; + " 'DNS l' Sana DNS girişlerini gösterecek"; + " 'DNS i' Sana nameserver configin hakkında ayrıntıları verecek"; + " -"; + " Kullanımı: DNS [seçenek]"; +}; + +help Names { + " Belirtilen kanalda kullanıcıların listesini gösterir."; + " -"; + " Kullanımı: NAMES "; + " Örnek: NAMES #Support"; +}; + +help Ison { + " Bu komut, bir kullanıcı yada kullanıcıların online"; + " olup olmadığını gösterir."; + " -"; + " Kullanımı: ISON "; + " Örnek: ISON hAtbLaDe Stskeeps OperServ AOLBot"; +}; + +help Join { + " Bir IRC Server üzerinde bir veya daha çok kanallara girer."; + " Kanalın bütün kullanıcıları, senin kanala girişinden haberdar olacaklardır."; + " Bir parametrenin, bütün kanalları ayırman için seni yaptığın gibi 0'la yapmalısın."; + " Eğer sen, bir veya daha çok şifre belirtirsen, bir +k kanalına girmek için şifreyi bilmen gerekir."; + " -"; + " Kullanımı: JOIN ,, <şifre>,<şifre2>,<şifre3>"; + " JOIN 0 (tüm kanallardan cıkarır.)"; + " Örnek: JOIN #Support"; + " JOIN #Lobby,#IRCd"; + " JOIN #IRCd,#Support,#main letmein,somepass,anotherpass"; +}; + +help Part { + " Belirtilen kanal ya da kanallardan çıkmanızı sağlar."; + " Kanaldaki bütün kullanıcılar senin ayrılışından haberdar olacaklardır."; + " Eğer sen, bir sebebi belirtirsen o kanalda kullanıcılara gösterilecektir."; + " -"; + " Kullanımı: PART ,,, "; + " Örnek: PART #Support"; + " PART #Lobby,#IRCd Sonra görüşürüz!"; +}; + +help Motd { + " Bir IRC Serverın gününün mesajının olduğu dosyayı metin olarak gösterir."; + " -"; + " Kullanımı: MOTD"; + " MOTD "; +}; + +help Rules { + " Bir IRC Serverın kurallar dosyasını metin olarak gösterir."; + " -"; + " Kullanımı: RULES"; + " RULES "; +}; + +help Lusers { + " Yerel ve global kullanıcı bilgisini göstermesini sağlar."; + " Bilgiler Yerel ve Network server için geçerlidir."; + " -"; + " Kullanımı: LUSERS [server]"; +}; + +help Map { + " IRC Serverın grafiksel bir \"Network Map\" (Harita)sını gösterir."; + " -"; + " Kullanımı: MAP"; +}; + +help Quit { + " IRC Serverdan bağlantınızı koparır. Kanallardaki kullanıcılar"; + " senin serverdan ayrılışından haberdar olacaklardır."; + " Eğer sen, bir çıkış sebebi belirtmezsen, senin nickin sebeb olur."; + " -"; + " Kullanımı: QUIT "; + " Örnek: QUIT Leaving!"; +}; + +help Ping { + " PING komutu, aktif bir clientin varlığını test etmek için kullanılır veya"; + " serverın bağlantısını kontrol eder. Serverlar, düzenli aralarda PING"; + " mesajını yollar.Eğer hiçbir diğer faaliyet bir bağlantıdan gelmeyi"; + " bulmasaydı. Eğer bir bağlantı, bir yanıt vermekte başarısız olursa PING"; + " mesajına zamanında cevap gelmez ise, o bağlantı kapatılır."; + " PING mesajı yollanabilir bağlantı aktifse bile."; + " Bunun 'CTCP PING' komutundan farklı olduğunu unutmayınız.."; + " -"; + " Kullanımı: PING "; + " Örnek: PING irc.fyremoon.net"; + " PING hAtbLaDe"; + " PING hAtbLaDe irc2.dynam.ac"; +}; + +help Pong { + " PONG mesajı sonrasi verilen PING mesajı bir cevaptır.Eğer parametre ise"; + " bu mesaj, verilmiş hedefe iletilecek."; + " parametre, mesaj ses çıkarmaya yanıt veren"; + " ve bu mesajı oluşturan varlığın ismidir."; + " -"; + " Kullanımı: PONG "; + " Örnek: PONG irc.fyremoon.net irc2.dynam.ac"; + " (irc.fyremoon.net irc2.dynam.ac giden pong mesajı)"; +}; + +help Version { + " Kullanılan IRCd yazılımının uyarlama bilgisini gösterir."; + " -"; + " Kullanımı: VERSION"; + " VERSION "; +}; + +help Stats { + " Server hakkında kesin istatistiksel bilgiyi gösterir."; + " -"; + " Kullanımı: STATS "; + " Örnek: STATS u"; + " -"; + " Parametreler olmadan müsait flagların bir listesini görmen için /stats yazmalısın."; +}; + +help Links { + " Serverların hepsinin güncel olarak, şebekeye bağlandığı listeler."; + " U:lined Serverlarını sadece IRCop'lar görebilir."; + " -"; + " Kullanımı: LINKS"; +}; + +help Admin { + " Server hakkında yönetimsel olarak bilgi satırı gösterir."; + " -"; + " Kullanımı: ADMIN"; + " ADMIN "; +}; + +help Userhost { + " Bir kullanıcının USERHOST satırını gösterir."; + " Genellikle metinler veya botlar ile kullanılır."; + " -"; + " Kullanımı: USERHOST "; + " Örnek: USERHOST hAtbLaDe"; +}; + +help Userip { + " Bir kullanıcının IP adresini gösterir."; + " Genellikle metinler veya botlar ile kullanılır."; + " -"; + " Kullanımı: USERIP "; + " Örnek: USERIP codemastr"; +}; + +help Topic { + " Kanalın başlığını değiştirmeyi sağlar veya metin belirtilmez ise"; + " sadece önceden belirtilmiş güncel konuyu gösterir."; + " -"; + " Kullanımı: TOPIC (başlığı gösterir.)"; + " TOPIC (başlığı değiştirir.)"; + " Örnek: TOPIC #Operhelp"; + " TOPIC #Lobby Hoşgeldiniz #Lobby!!"; +}; + +help Invite { + " Özel bir kanala katılması için bir kullanıcıya bir davet yollar."; + " Eğer kanal +i de ise komutu kullanman için, operatör olmalısın."; + " Parametresiz kullanılan invite komutu ile hangi kanalların davet listesinde"; + " olduğunu görebilirsiniz."; + " -"; + " Kullanımı: INVITE [ ]"; + " Örnek: INVITE hAtbLaDe #Support"; + " Örnek: INVITE"; +}; + +help Kick { + " Kullanıcı yada Kullanıcıları kanaldan atmaya yarar."; + " Sadece, operatörler veya HalfOp'lar tarafından kullanılabilir."; + " -"; + " Kullanımı: KICK "; + " Örnek: KICK #Lobby foobar Lamer.."; +}; + +help Away { + " Bir sebeb belirttiğinizde sizi \"Away\", yani meşgul olarak gösterir."; + " -"; + " Kullanımı: AWAY (belirtilen nedenden dolayı sizi away(meşgul) yapar.)"; + " AWAY (Awaydan çıkartır.)"; + " Örnek: AWAY Öğle yemeği zamanı!"; +}; + +help Watch { + " Watch serverde hızlı çalışan bir bildiri sistemidir."; + " Eski tip bildiri sistemlerine göre daha az network kaynağı kullanır."; + " Watch listinizdeki herhangi bir nickname açık yada kapalı"; + " olduğunda (logs off) server size bir mesaj gönderecektir."; + " Watch listeniz oturumlar arasında kayıtlı kalmaz."; + " Her irc serverınızda nicklerinizi watch listinize eklemeniz gerekmektedir."; + " -"; + " Kullanımı: WATCH +nick +nick2 +nick3 (nickleri ekler.)"; + " WATCH -nick (nick siler.)"; + " WATCH (Watch listesindeki bağlı kullanıcıları görüntüler.)"; +}; + +help List { + " Serverdeki bütün kanalların tam olarak listelemesini sağlar."; + " Eğer bir arama maskesi, belirtilirse sadece ona denk,"; + " uyan maskedeki kanalları listeleyecekdir."; + " -"; + " Kullanımı: LIST "; + " Örnek: LIST"; + " LIST *ircd*"; + " -"; + " Bazı ekstra desteklenen flaglar."; + " sayı içerisinde belirttiğiniz fazla kullanıcısı olan kanalları listeler."; + " sayı içerisinde belirttiğiniz az kullanıcısı olan kanalları listeler."; + " !*maske* içerisinde belirttiğiniz *maske* geçmeyen kanalları listeler."; + " -"; + " Bunlar dışında başka flaglar kullanılabilir."; +}; + +help Privmsg { + " Belirlenen hedefe bir metin gönderir. Bu hedef, bir kanal ya da bir nick olabilir."; + " /PRIVMSG "; + " Özel bir mesaj gönderir."; + " Örn: /PRIVMSG Aim mrb, nasılsın?"; + " /PRIVMSG <#kanal> "; + " Belirlenen kanala mesaj gonderir."; + " Örn: /PRIVMSG #room Merhaba herkese"; + " /PRIVMSG <önek> <#kanal> "; + " <#kanal> içinde, sadece belirtilen <öneke> sahip kullanıcılara mesaj gönderir."; + " Örn: /PRIVMSG @#room (+oaq'lara gönderir)"; + " /PRIVMSG +#room (+vhoaq'lara gönderir)"; + " NOT: sen +#kanal/%#kanal/@#kanal şeklinde gönderebilmen için voice (+)"; + " ve &#kanal/~#kanal şeklinde gönderebilmen için op (@) ihtiyaç duyarsın."; + " /PRIVMSG $ "; + " Belirtilen de bulunan tüm kullanıcılara mesaj yollamanızı sağlar. [Sadece Operatorler]"; + " Bu mesaj genelde status penceresinde gösterilir."; + " Örn: /PRIVMSG $*.mynet.net Biz, gelecek saat serverımızı yükseltiyor olacağız"; + " Hizmetlerin çoğunu not olarak bildirir. (/OS GLOBAL) daha iyi bir alternatifdir."; + " -"; + " Birden fazla hedefe aynı mesajı göndermek isterseniz: /PRIVMSG ,, ."; + " -"; + " NOT : Bazı eski clientlerde (örneğin: ircll) /msg komutunu"; + " gibi gelişmiş özellikleri kullanamazsınız. Kullanabilmeniz için"; + " '/QUTOE PRIVMSG @#kanal selam' veya benzeri bir komut uygulamanız gerekir."; +}; + +help Notice { + " Belirtilen hedefe bir metini uyarı modunda gönderir."; + " /NOTICE "; + " Nicke notice gönderir."; + " Örn: /NOTICE Merhaba Merhaba Blah, nasılsın?"; + " /NOTICE <#kanal> "; + " Kanala bir notice gonderir."; + " Örn: /NOTICE #room Herkese selam"; + " /NOTICE <önek> <#kanal> "; + " <#kanal> içinde, sadece belirtilen <öneke> sahip kullanıcılara notice gönderir."; + " Örn: /NOTICE @#room (+oaq'lara gönderir)"; + " /NOTICE +#room (+vhoaq'lara gönderir)"; + " NOT: sen +#kanal/%#kanal/@#kanal şeklinde gönderebilmen için voice (+)"; + " ve &#kanal/~#kanal şeklinde gönderebilmen için op (@) ihtiyaç duyarsın."; + " /NOTICE $ "; + " Belirtilen de bulunan tüm kullanıcılara notice yollamanızı sağlar. [Sadece Operatorler]"; + " Bu mesaj genelde status penceresinde gösterilir."; + " Örn: /NOTICE $*.mynet.net Gelecek saat, serverımızı yükseltiyor olacağız"; + " Hizmetlerin çoğunu not olarak bildirir. (/OS GLOBAL) daha iyi bir alternatifdir."; + " -"; + " Birden fazla hedefe aynı mesajı göndermek isterseniz: /NOTICE ,,."; + " -"; + " NOT : Bazı eski clientlerde (örneğin: ircll) /notice komutunu"; + " gibi gelişmiş özellikleri kullanamazsınız. Kullanabilmeniz için"; + " '/QUTOE NOTICE @#kanal selam' veya benzeri bir komut uygulamanız gerekir."; +}; + +help Knock { + " Davetsel olan kanallar için, sadece sen \"Knock\" olan bir"; + " Kanalda rica etmek için, bir davetsel mesaj gönderirsin."; + " -"; + " Kullanımı: KNOCK "; + " Örnek: KNOCK #davetsel_kanal Ben opum, beni davet et!"; +}; + +help Setname { + " Tekrar bağlamadan kullanıcıların serverdaki \"Real name\" (GECOS)"; + " kısmını internet üzerinde değiştirmesi için kullanıcılara izin verir."; + " -"; + " Kullanımı: SETNAME "; +}; + +help Vhost { + " Gerçek hostadını sanal host adı ile değiştirmeye yarar."; + " IRC Serverlerinde uygulanır SETHOST komutu ile uygulanır."; + " -"; + " Kullanımı: VHOST <şifre>"; + " Örnek: VHOST openbsd ilovecypto"; +}; + +help Mode { + " Bir kanal veya nickin modesini değiştirir."; + " Bilgi için /HELPOP CHMODES veya /HELPOP UMODES yazarak modeleri listeleyebilirsiniz."; + " -"; + " Kullanımı: MODE "; + " Örnek: MODE #Support +tn"; + " MODE #Support +ootn hAtbLaDe XYZ"; +}; + +help Credits { + " Bu komut, UnrealIRCd'yı yapan, yardım eden bütün"; + " kişileri listeler."; + " -"; + " Kullanımı: CREDITS"; + " CREDITS "; +}; + +help Dalinfo { + " Bu komut, tarihsel kredileri gösterir. (ircu, vs..)"; + " -"; + " Kullanımı: DALINFO"; + " DALINFO "; +}; + +help License { + " Bu komut, UnrealIRCd'ın, altında bırakılan lisans bilgisini gösterir."; + " Kullanımı: LICENSE"; + " LICENSE "; +}; + +help Time { + " Serverın güncel tarihini ve zamanının olduğu bir bilgi satırı gösterir."; + " -"; + " Kullanımı: TIME"; + " TIME "; +}; + +help Silence { + " Bir kullanıcı eklendiği zaman mesaj gelmesini engeller, veya eklenen nickleri listeler."; + " -"; + " Kullanımı: SILENCE +nick (nick ekler.)"; + " SILENCE -nick (nick siler.)"; + " SILENCE (Silence listteki nickleri listeler.)"; +}; + +help Oper { + " Bir kullanıcının IRC operatör konumuna geçmesi için doğru bir"; + " nick ve şifre statusu belirler."; + " -"; + " Kullanımı: OPER <şifre>"; + " Not: Hem kullanıcı ID, hem de şifre, hassas bir olaydır."; + " Örnek: OPER hAtbLaDe foobar234"; +}; + +help Wallops { + " Umodesi +w olan bütün kullanıcılara mesaj göndermesini sağlar."; + " Sadece IRCop'lar gönderebilir, +w modesi olan herhangi birisi"; + " bunları görebilir."; + " -"; + " Kullanımı: WALLOPS "; +}; + +help Globops { + " Serverda bütün IRCops'lar global bir mesaj yollayabilir."; + " (Sadece IRCops'lar tarafından sadece görülebilir)."; + " -"; + " Kullanımı: GLOBOPS "; + " Örnek: GLOBOPS Kloneleri almaya izin ver .."; +}; + +help Locops { + " Bu komut, serverda bütün IRCop'lara bir mesaj yollamasını sağlar. (Yerel)."; + " -"; + " Kullanımı: LOCOPS "; + " Örnek: LOCOPS Gonna kullanıcısına k:line atın ..."; +}; + +help Chatops { + " Sadece yerel serverda bulunan IRCop'lara mesaj gönderilmesini sağlar. (Global)."; + " -"; + " Kullanımı: CHATOPS "; + " Örnek: Gonna kullanıcısına k:line atın ..."; +}; + +help Adchat { + " Online olan bütün Admin'lere mesaj gönderilmesini sağlar."; + " -"; + " Kullanımı: ADCHAT "; + " Örnek: ADCHAT Hey millet! Ben buradayım."; +}; + +help Nachat { + " Online olan bütün Network Admin'lere mesaj gönderilmesini sağlar."; + " -"; + " Kullanımı: NACHAT "; + " Örnek: NACHAT Hey millet! Her şey nasıl?"; +}; + +help Kill { + " Bir kullanıcıyı IRC serverda bağlantısını kesmek için kullanılan bir komuttur."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: KILL "; + " Örnek: KILL Jack16 Clone yasak!"; +}; + +help Kline { + " Bu komut, bir nicke zamanlı K:Lines atmanızı sağlar."; + " veya user@host kısmına K:Lines satırı ekler."; + " K:Lines için belirteceğiniz 0 süresi KLINE'yi kalıcı hale getirir."; + " Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: KLINE yada nick> [süre] (Kline ekler.)"; + " KLINE - (Kline siler.)"; + " Örnek: KLINE *@*.aol.com - Kötü kullanım (Süresiz kline ekler.)"; + " KLINE *@*.someisp.com 2d Kötü kullanım (2 günlük kline ekler.)"; + " KLINE Idiot 1d Kötü kullanım"; + " KLINE -*@*.aol.com"; +}; + +help Zline { + " Bu komut, bir nicke zamanlı Z:Lines atmanızı sağlar. Eğer bir nick Z:Lines'a uygun"; + " görülürse, tekrar servera bağlanması kaldırılmadığı taktirde imkansızdır."; + " Z:Lines için belirteceğiniz 0 süresi ZLINE'yi kalıcı hale getirir. (Süresiz olur)."; + " Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: ZLINE <*@ipmaskesi> [süre] (Zline ekler.)"; + " ZLINE -<*@ipmaskesi> (Zline siler.)"; + " Örnek: ZLINE *@127.0.0.1 - Kötü kullanım (Süresiz Zline ekler.)"; + " ZLINE *@127.0.0.1 2d Kötü kullanım (2 günlük Zline ekler.)"; + " ZLINE -*@127.0.0.1"; + " NOT: ZLINE atabilme flağına sahip olmaniz gerekir. (can_zline)"; +}; + +help Gline { + " Bu komut, bir nicke zamanlı G:Lines atmanızı sağlar. Eğer bir nick G:Lines'a uygun"; + " görülürse, tekrar servera bağlanması kaldırılmadığı taktirde imkansızdır."; + " G:Lines için belirteceğiniz 0 süresi GLINE'yi kalıcı hale getirir.(Süresiz olur)"; + " Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: GLINE [süre] "; + " (kullanıcı@hostmaskesi) kısmına Gline ekler.)"; + " GLINE - (Gline siler.)"; + " Örnek: GLINE *@*.idiot.net 900 Boş mesaj (15 dk Gline ekler)"; + " GLINE *@*.idiot.net 1d5h Boş mesaj (29 saat Gline ekler.)"; + " GLINE Idiot 1d Kötü kullanım"; + " GLINE -*@*.idiot.net"; + " NOT: GLINE atabilme flağına sahip olmaniz gerekir. (can_gkline)"; +}; + +help Shun { + " ADMIN hariçindeki bir kullanıcının herhangi bir komutu uygulamasını engeller"; + " ve server pinglerinden yanıt almamasını sağlar."; + " SHUN için belirteceğiniz 0 süresi SHUN'u kalıcı hale getirir."; + " Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir."; + " Sadece IRCop'lar kullanabilir."; + " -"); + " Kullanımı: SHUN : (Zamanli shun eklenir.)"; + " SHUN + : (kullanıcı@hostmaskesi'ne shun ekler.)"; + " SHUN - (Shun siler.)"; + " SHUN (SHUN listesini görmenizi sağlar.)"; + " -"; + " Örnek: SHUN +foobar@aol.com 600 :Boş mesaj"; + " (Shuns foobar@aol.com adresine Spam nedeni ile 10dk shun ekler.)"; + " SHUN +foobar@aol.com 1d6h :Boş mesaj (Spam nedeni ile 30 saat Shun ekler.)"; + " NOT: SHUN atabilme flağına sahip olmanız gerekir. (can_gkline)"; +}; + +help Gzline { + " Bu komut, bir nicke zamanlı Z:line atmanızı sağlar. Eğer bir nick Z:line'ya uygun"; + " görülürse, tekrar servera bağlanması kaldırılmadığı taktirde imkansızdır."; + " GZLINE için belirteceğiniz 0 süresi GZLINE'yi kalıcı hale getirir.(Süresiz olur)."; + " Ayrıca zaman dilimini 1d10h15m30s gibi formatlarda düzenlenebilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: GZLINE <*@ipmaske> :"; + " (Global Z:line ekler.)"; + " GZLINE -<*@ipmaske> (Global Z:line'i siler.)"; + " Örnek: GZLINE *@4.16.200.* 900 Boş mesaj (15 dk Global Z:line ekler.)"; + " GZLINE *@4.16.200.* 1d5h Boş mesaj (29 saat Global Z:line ekler.)"; + " NOT: Gzline atabilme flağına sahip olmanız gerekir. (can_gzline)"; +}; + +help Akill { + " Belirlenen bir kullanıcının *@hostmaskesi'ne otokill ekler. Bunun anlamı,"; + " o *@hostmaskesi'ne ait hiçbir kullanıcı servera bağlanamaz."; + " Bu bir DEPRICATED komutudur, ve sadece U:Lines (Servisler)'den eklenir.."; + " -"; + " Kullanımı: AKILL :"; + " Örnek: AKILL foo@aol.com :Boş mesaj!"; +}; + +help Rakill { + " Eklenmiş bir AKILL'i silmek için kullanılır."; + " Bu bir DEPRICATED komutudur, ve sadece U:Lines (Servis)'den eklenir."; + " -"; + " Kullanımı: RAKILL "; +}; + +help Rehash { + " Yerel bir serverın konfigurasyon dosya(larını) yeniden okumasını sağlar"; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: REHASH -"; + " REHASH -"; + " -"; + " Eğer server ismi ve flaglar, belirtilmezse,"; + " unrealircd.conf ve k:lines dosyası tekrar kullanır."; + " Eğer server ismi belirtilirse, server ismi config dosyalarını tekrar kullanmak için kullanılır."; + " Sadece NetAdmin'ler bir server ismini belirtebilir."; + " -"; + " Flaglar, diğer config dosyalarını tekrar kullanmak için kullanılır, aşağıdakiler geçerli flaglardır:"; + " -motd - Günün Mesajı ve Kurallar dosyasını yeniler."; + " -opermotd - Opermotd dosyasını yeniler."; + " -botmotd - Botmotd dosyasını yeniler."; + " -garbage - Cop toplaması yapar."; +}; + +help Restart { + " Serverın belirtilen şifre ile yeniden başlatılmasını sağlar."; + " Tüm kullanıcıların bağlantısı kesilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: RESTART"; + " RESTART <şifre>"; + " RESTART <şifre> "; +}; + +help Die { + " IRC Serverını, belirtilen şifre ile tamamen kapatmasını sağlar."; + " Tum kullanıcılarin bağlantisi kesilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: DIE"; + " DIE <şifre>"; +}; + +help Lag { + " Bu komut irc serverları için Traceroute benzeri bir komuttur."; + " Eğer /LAG irc.fyremoon.net şeklinde kullanırsanız."; + " Serverın lag durumunu görmüş olacaksınız."; + " -"; + " Kullanımı: LAG "; +}; + +help Sethost { + " Bu komut, kendinin veya bir kullanıcının virtual host kısmını değiştirmesini sağlar. (Vhost)"; + " Özel karakterler kullanılabilinir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: SETHOST "; + " Örnek: SETHOST i.have.hairy.armpits"; +}; + +help Setident { + " Bu komutla, kendinin veya bir kullanıcının Identini değiştirmesini sağlar. (Username.)"; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: SETIDENT "; + " Örnek: SETIDENT l33t"; +}; + +help Chghost { + " Güncel olarak IRC Serverda bir kullanıcının hostname kısmını değiştirmeyi sağlar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: CHGHOST "; + " Örnek: CHGHOST hAtbLaDe root.me.com"; +}; + +help Chgident { + " Güncel olarak IRC Serverda bir kullanıcının IDENT kısmını değiştirmesini sağlar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: CHGIDENT "; + " Örnek: CHGIDENT hAtbLaDe Koyun"; +}; + +help Chgname { + " Güncel olarak IRC Serverda bir kullanıcının \"IRC Name\" veya \"Real Name\" kısmını değiştirmeye yarar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: CHGNAME "; + " Örnek: CHGNAME hAtbLaDe Gotta yeni isim :)"; +}; + +help Squit { + " Network'dan bir IRC Serverın bağlantısının kopmasını sağlar."; + " Genellikle serverların yönlendirmelerden çıkması için kullanılır."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: SQUIT "; + " Örnek: SQUIT leaf.*"; +}; + +help Connect { + " Bir serverın, güncel olarak üzerinde olduğu başka bir IRC servera bağlar."; + " Uzak bağlantılarda, mümkün olabilir."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: CONNECT [port]"; + " CONNECT "; + " Örnek: CONNECT leaf.*"; + " CONNECT leaf.* 6667 hub.*"; +}; + +help Dccdeny { + " Belirlenen bir dosya uzantısına, DCC engeli koyar. uzantıyı"; + " taşıyan dosyaların, DCC ile gönderilmesini server engeller."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: DCCDENY "; +}; + +help Undccdeny { + " Belirlenen bir dosya uzantısında, DCC engeli varsa bu engeli kaldırmasını sağlar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: UNDCCDENY "; +}; + +help Sajoin { + " Bir kullanıcıyı, zorla kanal yada kanallara girmesini sağlar."; + " Sadece Servis Adminler'ler kullanabilir."; + " -"; + " Kullanımı: SAJOIN ,[]"; + " Örnek: SAJOIN hAtbLaDe #OperHelp"; + " SAJOIN hAtbLaDe #Support,#IRCHelp"; +}; + +help Sapart { + " Bir kullanıcıyı, zorla kanal yada kanallardan çıkmasını sağlar."; + " Sadece Servis Admin'ler kullanabilir."; + " -"; + " Kullanımı: SAPART ,[] []"; + " Örnek: SAPART hAtbLaDe #OperHelp"; + " SAPART hAtbLaDe #Support,#IRCHelp"; + " SAPART hAtbLaDe #Support,#IRCHelp Hoşcakal"; +}; + +help Samode { + " Operatör durumuna sahip olmadan bir kanalın"; + " modesini değiştirmenizi sağlar."; + " Sadece Servis Admin'ler kullanabilir."; + " -"; + " Kullanımı: SAMODE "; + " Örnek: SAMODE #Support +m"; +}; + +help Rping { + " Serverlar arasındaki geçikmeyi (Milisaniye) cinsinden hesaplamayı sağlar."; + " -"; + " Kullanımı: RPING "; +}; + +help Trace { + " TRACE komutunu serverlar veya clientler için kullanabilirsiniz."; + " Kullanıcı için uygularsanız size class ını ve lag durumunu gösterir."; + " Server için uygularsanız size class,version ve link bilgisini gösterir."; + " TRACE Komutu bazı zamanlarda karışabilir özellikle ilk defa kullanıyorsanız."; + " -"; + " Kullanımı: TRACE "; + " Örnek: TRACE irc.fyremoon.net"; +}; + +help Opermotd { + " IRC Operatorler için hazırlanan günün mesajını göstermeyi sağlar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: OPERMOTD"; +}; + +help Sdesc { + " Bu komutla sen, IRC Serverın bilgi satırını değiştirebilirsin."; + " SQUIT ve RESTART edilmesine gerek kalmaz."; + " Sadece Server Admin ve Co Admin'ler kullanabilir."; + " -"; + " Kullanımı: SDESC "; + " Örnek: SDESC Yüksekten uç"; +}; + +help Mkpasswd { + " Bu komut belirlenen bir hash komutu olarak geri döner." + " hash ı şifrelenmiş parolalarınızda veya ayar dosyalarınızda kullanabilirsiniz:"; + " Örn: oper::şifre, vhost::şifre, şeklinde."; + " *NIX: crypt, md5, sha1 [*], ripemd160 [*]"; + " Windows: crypt [*], md5, sha1, ripemd160 [*]"; + " [*: Sadece, eğer SSL desteğiyle derlenirse müsait olur]"; + " -"; + " Kullanımı: MKPASSWD <şifre>"; + " Örnek: MKPASSWD md5 IamTeh1337"; +}; + +help Module { + " Bu komut size yüklü olan modülleri listeler."; + " Bu komutta normal kullanıcıların ve yetkili kullanıcıların"; + " alacağı cevap farklıdır."; + " -- Normal Kullanıcı: --"; + " Komutun kullanım şekli: MODULE"; + " Komutun vereceği cevap: *** isim - (açıklama) [3 parti bileşenler]"; + " 3. parti bileşenler o modülün 3 parti bileşen içerip içermediğini gösterir."; + " -- IRCop: -- "; + " Komutun kullanım şekli: MODULE [server]"; + " Komutun vereceği cevap: *** isim - versiyon (açıklama) [opsiyonel flaglar]"; + " Flaglar şu şekilde olabilir:"; + " [PERM]: geçici modül (unload/reload yapmak mümkün değildir)"; + " [Unloading]: unloading olan modülleri listeler."; + " [3RD] 3. parti modül"; + " [Eski?] Mod_Version, eski bir beta* modülü tekrar derlemeyi unuttu?"; + " Sen buna ek olarak, farklı komutlar ve modüllerin listesini göreceksin."; +}; + +help Close { + " Bu komut, IRC serverından bütün bilinmeyen"; + " bağlantılarınızı kesmenizi sağlar."; + " -"; + " Kullanımı: CLOSE"; +}; + +help Tsctl { + " İleri düzey olan bu komut dahili irc saatini ayarlar."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: TSCTL OFFSET +|- (Dahili irc saatini ayarlar)"; + " TSCTL TIME (Aktif saati gösterir)"; + " TSCTL ALLTIME (Tüm serverın aktif saatini gösterir)"; + " TSCTL SVSTIME (Tüm serverın saatini ayarlar)"; +}; + +help Htm { + " Giriş çıkış Trafik modu için kullanılır."; + " HTM yi yüksek miktarda bilgi almak istediğinizde açabilirsiniz."; + " Sadece IRCop'lar kullanabilir."; + " -"; + " Kullanımı: HTM [özellik]"; + " -"; + " Herhangi bir özellik girilmez ise Aktif HTM durumunu gösterir"; + " Bir özellik girilmişse farklı görevler yapar, özellikleri aşağıdakiler gibidir:"; + " -"; + " ON - HTM Aktif kılar."; + " OFF - HTM Deaktif kılar."; + " NOISY - HTM ye girildiğinde veya çıkıldığında anons verir."; + " QUIET - HTM ye girildiğinde veya çıkıldığında verilen anonsu kapatır."; + " TO - Aktif HTM nin gelen derecesini ayarlar."; +}; + +help Svsnick { + " Bu komut, bir kullanıcının o an kullandığı nickin başka bir nicke dönüştürmesini sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSNICK "; + " Örnek: SVSNICK hAtbLaDe Foobar 963086432"; +}; + +help Svsmode { + " Bu komut, bir kullanıcının o an kullandığı modelerini değiştirmesini sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSMODE "; + " Örnek: SVSMODE hAtbLaDe +i"; +}; + +help Svskill { + " Bu komut, bir kullanıcının IRC serverındaki bağlantısının zorla kopmasını sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSKILL :"; + " Örnek: SVSKILL Lamer21 :Güle Güle"; +}; + +help Svsnoop { + " Bu komut, IRC serverındaki IRCop"; + " komutlarını iptal eder veya aktif eder."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSNOOP <+/->"; + " Örnek: SVSNOOP leaf.* -"; +}; + +help Svsjoin { + " Bu komut, bir kullanıcının kanal yada kanallara zorla girmesini sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSJOIN [,..] [şifre[,şifre2[..]]]"; + " Örnek: SVSJOIN hAtbLaDe #jail"; + " SVSJOIN hAtbLaDe #jail,#zoo"; +}; + +help Svspart { + " Bu komut, bir kullanıcının kanal yada kanallardan zorla çıkmasını sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSPART [,..] []"; + " Örnek: SVSPART hAtbLaDe #Hanson"; + " SVSPART hAtbLaDe #Hanson,#AOL"; + " SVSPART hAtbLaDe #Hanson,#AOL Sen çıkmalısın"; +}; + +help Svso { + " Bu komut, bir kullanıcıya O:lines yetkilisi gibi IRCop flagları verir."; + " Svsmode +o ve benzeri komutları hatırlayınız."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSO <+oper-flagları> (OPER flagları ekler.)"; + " SVSO - (O:Line flaglarını siler.)"; + " Örnek: SVSO SomeNick +bBkK"; +}; + +help Swhois { + " Bu komut, bir kullanıcının whois bilgisini değiştirmeyi sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SWHOIS : (Swhois ekler.)"; + " SWHOIS : (Swhois'i temizler.)"; + " Örnek: SWHOIS SomeNick :is a lamer"; +}; + +help Sqline { + " Bu komut, nick veya nick karakterlerini kullanan kullanıcıları yasaklamasını sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SQLINE :"; + " Örnek: SQLINE *Bot* :Botlara Hayır"; +}; + +help Unsqline { + " Bu komut, kullanımı yasaklanmış olan nick veya nick karekterlerinin yeniden kullanılmasını sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: UNSQLINE "; + " Örnek: UNSQLINE *Bot*"; +}; + +help Svs2mode { + " Bu komut, bir kullanıcının modelerini zorla değiştirmeyi sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVS2MODE "; + " Örnek: SVS2MODE hAtbLaDe +h"; +}; + +help Svsfline { + " DCCDENY'e verilmiş dosya adı maskesini ekler veya siler."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: :server SVSFLINE + dosya :sebeb (Dosya adı ekler.)"; + " :server SVSFLINE - dosya (Dosya adı siler.)"; + " :server SVSFLINE * (DCCDENY listesini temizler.)"; +}; + +help Svsmotd { + " Günün Servisler mesajını ekler veya siler."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " Kullanımı: SVSMOTD # : (Svsmotd ekler.)"; + " SVSMOTD ! (Motd siler.)"; + " SVSMOTD ! : (bulunan mesaji silip, yenisini ekler.)"; + " Örnek: SVSMOTD # :Services MOTD"; +}; + +help Svsnline { + " Global bir realname (isim) yasağını ekler."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " Bir parametre ile sebeb belirtilmelidir."; + " Kelime aralarında boşluk yerine _, kullanılmalıdır. Unreal otomatik olarak"; + " boşluk karaterine çevirecektir."; + " -"; + " Kullanımı: SVSNLINE +/- : (ban ekler.)"; + " SVSNLINE - : (eklenmiş bir banı kaldırır.)"; + " SVSNLINE * (eklenmiş tüm banları kaldırır.)"; + " Örnek: SVSNLINE + sub7_drone :*sub7*"; +}; + +help Svslusers { + " Global ve/veya Yerel maksimum kullanıcı sayısını değiştirir."; + " Eğer -1 değeri belirtilirse, varolan değerler saklanır/korunur."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSLUSERS "; + " Örnek: SVSLUSERS irc.test.com -1 200"; +}; + +help Svswatch { + " Bir kullanıcının, WATCH listesini değiştirmeyi sağlar."; + " Sadece U:Lined (Servis'den) gönderilebilir."; + " Kullanımı: SVSWATCH :"; + " Örnek: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com"; +}; + +help Svssilence { + " Bir kullanıcının, SILENCE listesini değiştirmeyi sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " Silence komutundan farklı, bir satırdan birden fazla"; + " ekleme/çıkarma yapabilirsiniz."; + " Kullanımı: SVSSILENCE :"; + " Örnek: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; +}; + +help Svssno { + " Bu komut, bir kullanıcının snomasklarını değiştirmesini sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVSSNO "; + " Örnek: SVSSNO joe +Gc"; +}; + +help Svs2sno { + " Bu komut, bir kullanıcının zorla snomasklarını"; + " değiştirmesini sağlar."; + " Sadece U:Lined (Servisler)'den gönderilebilir."; + " -"; + " Kullanımı: SVS2SNO "; + " Örnek: SVS2SNO joe +Gc"; +}; + + +help Spamfilter { + " Bu komut ekleme/temizleme olarak global boş mesajları filtreler."; + " Spamfilters ile boş mesajlardan kurtulur, bot ve benzeri clientleri temizler."; + " -"; + " Kullanım: /spamfilter [add|del|remove|+|-] [type] [action] [tkltime] [reason] [regex]"; + " [type] Hedef tipini belirtir. sen, çeşitli hedefleri belirtebilirsin:"; + " 'c' Kanal Mesajı, 'p' Private Mesaj, 'n' Private Notice,"; + " 'N' Kanal Notice, 'P' Part Mesajı, 'q' Çıkış Mesajı, 'd' DCC,"; + " 'a' Away, 't' Topic, 'u' Kullanıcı (nick!user@host:realname ban)"; + " [action] Alınması için hareketi belirtir. (Sadece 1 hareket, belirtilebilir):"; + " 'kill', 'tempshun' (Sadece güncel oturumdan kaçın), 'shun',"; + " 'kline', 'gline', 'zline', 'gzline', 'block' (mesajı blocklar),"; + " 'dccblock' (Dcc'leri herhangi şekilde yollamak mümkün değil.), 'viruschan' "; + " (Bütün kanallardan çıkarır ve virüs yardım kanalına sokar.)"; + " [regex] bizim, üzerinde engellemeli olduğumuz asıl regexdir."; + " [tkltime] *LINEs çizgilerin, hareket ile yerleştirdiği süre (süre belirtmek"; + " istemezseniz yerine '-' işareti belirtmek zorundasınız"; + " set::spamfilter::ban-time, ignore eder veya block/tempshun koyar');"; + " [reason] *LINE mesajın blocklanması için sebeb belirtmelisiniz, BOŞLUKLARI İÇERMEZ,"; + " '_' işareti boşluklara çevirilecektir. Eğer sen sebeb yerine,"; + " '-' işareti kullanırsan, (set::spamfilter::ban-reason) olarak yansıyacaktır."; + " - "; + " Birkaç örnek (Not: örnek komutlar satırlara bölünmüş olabilir):"; + " /spamfilter add p block - - Come watch me on my webcam"; + " /spamfilter add p block - Possible_virus_detected,_join_#help Come watch me on my webcam"; + " /spamfilter add p tempshun - - You_are_infected me\.mpg"; + " /spamfilter add p gline - - Come watch me on my webcam"; + " /spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam"; + " /spamfilter add p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam"; + " /spamfilter del p block - - Come watch me on my webcam*"; + " /spamfilter add cN gzline 1d No_advertising_please come to irc\..+\..+"; +}; + +help Tempshun { + " Geçici SHUN ekler/kaldırır.Geçici shun listesine eklenen nick"; + " Eğer serverdan çıkarsa otomatik olarak listeden silinir."; + " -"; + " Kullanımı: TEMPSHUN [+|-] [sebeb]"; + " Örnek: TEMPSHUN evilguy Rahatsızlık vermeyiniz!"; + " TEMPSHUN -niceguy"; +}; + +help DccAllow { + " DCCALLOW sistemi hakkında yardım almak için '/DCCALLOW HELP' yazınız."; + /* It would be useless and bad to include it here since that stuff quickly gets out of synch + * stuff quickly gets out-of-synch. + */ +}; diff --git a/doc/technical/serverprotocol.html b/doc/technical/serverprotocol.html index de5dafafa..ced561a47 100644 --- a/doc/technical/serverprotocol.html +++ b/doc/technical/serverprotocol.html @@ -5,15 +5,15 @@ Unreal 3.2 Protocol Documentation - -

Unreal 3.2 Protocol Documentation

-

Last update: 13 May 2006

-

Table of Contents

-

1 Introduction

-

2 Server Negotiation

-

2.1 PASS - Connection Password

-

2.2 PROTOCTL - Server Protocol Negotiation

-

2.3 SERVER - Server Negotiation

+ +

Unreal 3.2 Protocol Documentation

+

Last update: 29 November 2006

+

Table of Contents

+

1 Introduction

+

2 Server Negotiation

+

2.1 PASS - Connection Password

+

2.2 PROTOCTL - Server Protocol Negotiation

+

2.3 SERVER - Server Negotiation

2.4 EOS - End Of Synch

2.5 NETINFO - Network Information

3 User Operations

@@ -28,8 +28,8 @@

4 Server Operations

4.1 SERVER - Server Introduction

4.2 SQUIT - Server Removal

-

4.3 SDESC - Server Description

-

4.4 PING - Live Connection Query

+

4.3 SDESC - Server Description

+

4.4 PING - Live Connection Query

4.5 PONG - Live Connection Reply

5 Channel Operations

5.1 SJOIN - Channel Burst

@@ -41,6 +41,7 @@

5.7 SAJOIN - Channel Force Join

5.8 SAPART - Channel Force Part

5.9 SAMODE - Channel Force Mode

+

5.10 TOPIC - Chanel Topic

6 Services Commands

6.1 SVSKILL - Force Disconnect by Service

6.2 SVSMODE, SVS2MODE - Force User Mode Change

@@ -66,9 +67,9 @@

8.1.1 GLINE - Network-wide user@host ban

8.1.2 GZLINE - Network-wide IP ban

8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban

-

8.1.4 SPAMFILTER - Message Spam Filtration System

-

9 Base64 Tables

-

9.1 Table for SJB64 (NICK and SJOIN).

+

8.1.4 SPAMFILTER - Message Spam Filtration System

+

9 Base64 Tables

+

9.1 Table for SJB64 (NICK and SJOIN).

9.2 Table for NICKIP.


1 Introduction

@@ -83,7 +84,7 @@

Syntax: PASS :link password

The PASS command is used to transmit the password required for a server link. It must match the password specified in the remote server's link::password-receive (which can be crypted), otherwise the link will be rejected. This should be the first message sent.

2.2 PROTOCTL - Server Protocol Negotiation

-

Syntax: PROTOCTL :protocol options

+

Syntax: PROTOCTL protocol options

The PROTOCTL command sets several protocol options. The tokens supported are listed below.

  • NOQUIT : When a netsplit occurs, only send a SQUIT message for each server lost. This server will assume that clients on these servers were also lost and will send the appropriate QUIT messages to local clients and to any non-NOQUIT servers.
  • @@ -93,16 +94,16 @@
  • SJOIN : Supports SJOIN version 1 which is no longer in use. Use with SJ3.
  • SJOIN2 : Supports SJOIN version 2 which is no longer in use. Use with SJ3.
  • UMODE2 : Supports the UMODE2 command, which is a shortened version of MODE for usermode changes.
  • -
  • VL : Supports V:Line information. Extends the SERVER message to include version information used in deny version{} blocks. Note that this is assumed - unreal will always send it's own version information.
  • +
  • VL : Supports V:Line information. Extends the SERVER message to include version information used in deny version{} blocks. Note that this is assumed - unreal will always send its own version information.
  • SJ3 : Supports SJOIN version 3.
  • NS : Supports server numerics which provides a shorthand for server names. In any circumstance where a :server.name is permitted (the server is the message's real source), @servernumeric may be used instead. In addition, the server.name parameter in the NICK message may be simply the server's numeric. Requires VL support.
  • SJB64 : Timestamps in NICK and SJOIN are expressed in base64 rather than base10.
  • TKLEXT : Supports exntended TKL messages for spamfilter support.
  • NICKIP : Adds an IP parameter to the NICK message, which is the base64 encoding of the user's ip address (in network byte order). Requires NICKv2.
  • NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).
  • -
  • CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.
  • +
  • CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.
  • CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).
  • -
+

The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.

2.3 SERVER - Server Negotiation

Note: This message is also used for introducing additional servers, the format of this message in those cases is described later.

@@ -112,7 +113,9 @@

The literal 1 in the parameter list is the hopcount parameter. Since you are a direct link, your own hopcount will be 1.

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.

The following version numbers have been used previously:

-
    +
      +
    • 2309 - Unreal 3.2.6
    • +
    • 2308 - Unreal 3.2.5
    • 2307 - Unreal 3.2.4
    • 2306 - Unreal 3.2.3
    • 2305 - Unreal 3.2.2
    • @@ -149,21 +152,23 @@

    2.4 EOS - End Of Synch (TOKEN: ES)

    Syntax: ES

    -

    Marks the end of the synching process. This is really optionally, but it might be a good idea to send it anyway when you really are done synching.

    +

    Marks the end of the synching process. This is really optional, but it might be a good idea to send it anyway when you really are done synching. Once you send this, unreal will announce "Client connecting" or "Client exiting" notices (to those with snomask +F) for users (unless your server is U:Lined), and joins will be counted toward channel flood controls (chanmode +f).

    +

    Sending EOS only marks your server as synched, but does not do so for servers behind you. EOS would need to be sent on those servers' behalf as well.

    2.5 NETINFO - Network Information (TOKEN: AO)

    Syntax: AO maxglobal currenttime protocolversion cloakhash 0 0 0 :networkname

    This tells the other server your current network configuration. The max global is the highest number of concurrent users network-wide that this server has seen. The current time is a timestamp value. Protocolversion is the same as that in the SERVER command. Cloakhash is a hash representing the configured cloak keys. It may be a * if you are implementing services. The network name is that specified in set::network-name. The cloak-prefix is currently not sent here (and thus unreal won't generate warning for mismatching cloak prefixes, but they should be the same anyway).

    +

    It is NETINFO, not EOS, that triggers the "Link bla bla bla is now synched" notices, but NETINFO does not imply synching is actually complete (see EOS).


    3 User Operations

    One important function of servers is it must notify all other servers about all of the users behind it. These commands represent the operations that can result in the change of a user's global state.

    3.1 NICK - User Introduction and Nick Change (TOKEN: &)

    Syntax (nick change): :oldnick & newnick :timestamp

    This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.

    -

    Syntax (normal): :source.server & nick hopcount timestamp username hostname server servicestamp :realname

    -

    Syntax (NICKv2): :source.server & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost :realname

    -

    Syntax (NICKv2+CLK): :source.server & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost cloakhost :realname -

    Syntax (NICKv2+NICKIP): :source.server & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost nickipaddr :realname

    -

    Syntax (NICKv2+NICKIP+CLK): :source.server & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost cloakhost nickipaddr :realname +

    Syntax (normal): & nick hopcount timestamp username hostname server servicestamp :realname

    +

    Syntax (NICKv2): & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost :realname

    +

    Syntax (NICKv2+CLK): & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost cloakhost :realname +

    Syntax (NICKv2+NICKIP): & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost nickipaddr :realname

    +

    Syntax (NICKv2+NICKIP+CLK): & nick hopcount timestamp username hostname server servicestamp +usermodes virtualhost cloakhost nickipaddr :realname

    Note: Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.

    This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.

    3.1.1 Nick Collisions

    @@ -214,17 +219,17 @@

    4.3 SDESC - Server Description (TOKEN: AG)

    Syntax: :source AG :newdesc

    The server to which source is connected to should have it's description updated to newdesc. This does NOT include the VL inforamtion.

    -

    4.4 PING - Live Connection Query (TOKEN: 8)

    -

    Syntax: 8 source[ :destination]

    -

    Used to check if a connection is still live if it has been "quiet" for a certain amount of time. Typically, unreal will send PING requests at intervals determined by the class::pingfreq setting. PINGs originating from the direct uplink will use the token, but it seems PINGs originating from a distant server will not.

    -

    The response to a PING is sent with the PONG command.

    -

    When receiving a two-parameter PING, the second parameter is the target. If the target isn't you, you can either reply on behalf of that target (using its name instead of yours), or if there is a real connection representing the target, forward the PING to the target.

    -

    4.5 PONG - Live Connection Reply (TOKEN: 9)

    -

    Syntax: 9 source[ :destination]

    +

    4.4 PING - Live Connection Query (TOKEN: 8)

    +

    Syntax: 8 source[ :destination]

    +

    Used to check if a connection is still live if it has been "quiet" for a certain amount of time. Typically, unreal will send PING requests at intervals determined by the class::pingfreq setting. PINGs originating from the direct uplink will use the token, but it seems PINGs originating from a distant server will not.

    +

    The response to a PING is sent with the PONG command.

    +

    When receiving a two-parameter PING, the second parameter is the target. If the target isn't you, you can either reply on behalf of that target (using its name instead of yours), or if there is a real connection representing the target, forward the PING to the target.

    +

    4.5 PONG - Live Connection Reply (TOKEN: 9)

    +

    Syntax: 9 source[ :destination]

    Used to respond to a PING query.

    -

    Responding to a ping: Once a PING is received, you usually have an amount of time to respond equal to your class::pingfreq. The correct response will always have two parameters. If you received one parameter, then the received parameter becomes the second parameter of your response, and the first parameter is your server name. If you received two parameters, the response returns both parameters in reverse order.

    -

    For example, the response to 8 uplink.server is 9 my.name uplink.server, while the response to PING distant.server your.server is 9 your.server distant.server. Unreal typically includes a : prior to the last parameter. This isn't required if that parameter contains no spaces, but it is especially important to not include the colon when reversing the parameters, or else Unreal mistake it for a single-parameter PONG. -

    If a two-parameter PONG is received, the second parameter names the target. If the target is not you, and a real connection represents that target, you should forward the PONG message via that connection.

    +

    Responding to a ping: Once a PING is received, you usually have an amount of time to respond equal to your class::pingfreq. The correct response will always have two parameters. If you received one parameter, then the received parameter becomes the second parameter of your response, and the first parameter is your server name. If you received two parameters, the response returns both parameters in reverse order.

    +

    For example, the response to 8 uplink.server is 9 my.name uplink.server, while the response to PING distant.server your.server is 9 your.server distant.server. Unreal typically includes a : prior to the last parameter. This isn't required if that parameter contains no spaces, but it is especially important to not include the colon when reversing the parameters, or else Unreal mistake it for a single-parameter PONG. +

    If a two-parameter PONG is received, the second parameter names the target. If the target is not you, and a real connection represents that target, you should forward the PONG message via that connection.


    5 Channel Operations

    These commands deal with the state of channels across the network. Unreal only supports Network Channels, where the first character is a # character.

    @@ -275,6 +280,9 @@

    5.9 SAMODE - Channel Force Mode (TOKEN: o)

    Syntax: :source o #channel modechange modeparams

    This has the same parameters as for MODE. The only difference is that servers probably will never receive this (but is best to document just in case), and that absolutely NO permission checking is done on anything.

    +

    5.10 TOPIC - Channel Topic (TOKEN: ) )

    +

    Syntax: :source ) #channel nick timestamp :topic

    +

    Changes the channel topic information. This format is used when synching, as well as when a topic is changed normally. Nick is the user who changed the topic (depending on compile options, it can be just nick or a full nick!user@host), timestamp is when the change occured, and topic is the new topic text. Normally, only a newer timestamp will actually change the topic, but a U:Lined server can use an older timestamp as well (such as for TOPICLOCK).


    6 Services Commands

    These are commands typically employed by a service implementation, in addition to some of the normal commands. All of the commands listed here require the sender to be correctly U:Lined. This means that the services server name must appear within a ulines {} block in the unrealircd.conf configuration for ALL servers in the network. All servers and clients behind a U:Lined server are themselves U:Lined.

    @@ -386,62 +394,62 @@

    Proper use of spamfilter in TKL commands requires use of PROTOCTL TKLEXT, which increases the number of parameters allowed in TKL.

    Add Syntax (TKL): BD + F target(s) action source 0 settimestamp tklduration tklreason :regex

    Remove Syntax (TKL): BD - F target(s) action source 0 settimestap :regex

    -

    Adds and Removes network-wide spamfilters. The SPAMFILTER command itself must not be used. See http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter for a list of valid targets. For actions, a single character is used to identify the action to be taken:

    - @@ -336,7 +342,7 @@ name=installation>
  • Windows 2000 (Pro, Server, Advanced Server)
  • Windows XP (Home, Pro)
  • Windows 2003 -
+
  • Äïêéìáóìİíåò Áñ÷éôåêôïíéêİò:
    • ia32 (i386, i486, i586, i686) @@ -372,7 +378,7 @@ href="mailto://coders@lists.unrealircd.org">coders@lists.unrealircd.org
      name=features>

      ÌåñéêÜ áğï ôá ğéï âáóéêÜ/ùñáßá ÷áñáêôçñéóôéêÜ áíáëıïíôáé óå áõôŞí ôçí ğáñÜãñáöï. Ğáñİ÷åé ìéá ãåíéêŞ êÜôïøç, êáé ìåñéêİò öïñİò áíáöİñåôáé óôï áñ÷åßï åğéëïãşí (êáôé ğïõ ßóùò ãéá ôï ïğïßï äåí ãíùñßæåôå ôßğïôá áêïìá).

      -

      Ìğïñåßôå íá áãíïŞóåôå áõôŞí ôçí ğáñÜãñáöï, üìùò ğñïôåßíåôáé íá ôçí äéáâÜóåôå ğñßí/ìåôÜ áğï ôçí åãêáôÜóôáóç.

      +

      Ìğïñåßôå íá áãíïŞóåôå áõôŞí ôçí ğáñÜãñáöï, üìùò ğñïôåßíïõìå áíåğéöıëáêôá íá ôçí äéáâÜóåôå ğñßí/ìåôÜ áğï ôçí åãêáôÜóôáóç ãéáôé áëëéşò äåí èá ìğïñİóåôå íá êáôáëÜâåôå éäİåò üğùò cloaking','snomasks',êôëğ.

      3.1 - Cloaking

      name=feature_aliases>

      Ìå ôéò óõíôïìåıóåéò (Aliases) ìğïñåßôå íá óåôÜñåôå server-side åíôïëİò óõíôïìåıóçò. Ìğïñåßôå ãéá ğáñÜäåéãìá íá êÜíåôå ôï "/ns identify blah" íá ğñïùèåßôáé óôïí nickserv (èá ìåôáöñáóôåß óå: privmsg nickserv identify blah). Ìğïñåßôå áêüìá íá äçìéïõñãŞóåôå ğéï ğïëığëïêåò óõíôïìåıóåéò üğùò ôï /register íá ğñïùèåßôáé óôïí ChanServ ìüíï áí ôï ğñşôï üñéóìá áñ÷ßæåé ìå # áëëéşò íá ğñïùèåßôáé óôïí NickServ.

      -

      Ïé óõíôïìåıóåéò (Aliases) ïñßæïíôáé ìå ôçí åğéëïãŞ alias óôï áñ÷åßï åğéëïãşí, êáé ìğïñåßôå åğßóçò íá óõìğåñéëÜâåôå İíá áñ÷åßï ìå áñ÷éêİò óõíôïìåıóåéò ãéá ôéò õğçñåóßåò ğïõ ÷ñçóéìïğïéïıíôáé óõ÷íüôåñá.

      +

      Ïé óõíôïìåıóåéò (Aliases) ïñßæïíôáé ìå ôçí åğéëïãŞ alias blocks óôï áñ÷åßï åğéëïãşí, êáé ìğïñåßôå åğßóçò íá óõìğåñéëÜâåôå İíá áñ÷åßï ìå áñ÷éêİò óõíôïìåıóåéò ãéá ôéò õğçñåóßåò ğïõ ÷ñçóéìïğïéïıíôáé óõ÷íüôåñá.

      3.5 - Helpopban ĞáñÜäåéãìá 2, áí İ÷åôå ğåñéóóüôåñï êéíİæïõò ÷ñŞóôåò êáé èİëåôå íá åğéôñİøåôå "êáíïíéêïıò" êéíİæéêïõò ÷áñáêôŞñåò:

      set { allowed-nickchars { chinese-simp; chinese-trad; }; };
      -


      - 3.17–
      ¶ëëá ×áñáêôçñéóôéêÜ

      +


      +

      3.17 - Õğïóôßñçîç CGI:IRC

      +

      Ôï UnrealIRCd õğïóôéñßæåé ôéò êñõğôïãñáöçìİíåò äéåõèıíóåéò CGI:IRC, ğïõ óçìáßíåé ïôé ìğïñåßôå íá óçìåéşóåôå óõãêåêñéìİíïõò äéáıëïõò åğéêïéíùíßáò CGI:IRC + şò "åìğéóôåõüìåíåò" ğïõ èá áíáãêÜóåé ôï IRCd íá åìöáíßóåé ôçí ğñáãìáôéêŞ äéåıèõíóç ôïõ ÷ñŞóôç ğáíôïı óôï + IRC, áíôé ãéá ôçí äéåıèõíóç ôïõ äéáıëïõ åğéêïéíùíßáò CGI:IRC.

      +

      Äåßôå åğßóçò ÅğéëïãŞ cgiirc ãéá ğëçñïöïñßåò óôï ğşò íá ôï ğñïãñáììáôßóåôå.

      +
      + +

      3.18 - Óõã÷ñïíéóìüò ¿ñáò

      +

      Ôï íá õğÜñ÷åé óùóôŞ şñá óôï óıóôçìá åßíáé ğïëı óçìáíôéêü ãéá ôïõò äéáêïìéóôİò IRC. ×ùñßò óùóôŞ şñá, ôá êáíÜëéá ìğïñïıí íá áğïóõã÷ñïíéóôïıí, áèşïé ÷ñŞóôåò íá áğïóõíäåèïıí, ôá êáíÜëéá ßóùò äåí åìöáíéóôïıí óùóôÜ óôçí åíôïëŞ /LIST, ìå ëßãá ëüãéá: ôåñÜóôéï ğñüâëçìá èá äçìéïõñãçèåß.

      +

      Ôï UnrealIRCd İ÷åé åíóùìáôùìİíç êÜğïéá õğïóôßñéîç ãéá ôïí óõã÷ñïíéóìü ôçò şñáò. + Áí êáé áõôŞ äåí åßíáé ç éäáíéêŞ(ç şñá ìğïñåß íá åßíáé áêüìá ëáíèáóìİíç êáôá ìåñéêÜ äåõôåñüëåğôá), èá îåöïñôùèåß ôéò ğåñéóóüôåñåò äéáöïñİò şñáò. + Áí ìğïñåßôå, óõíçóôÜôáé áêüìá íá ÷ñçóéìïğïéåßóåôå ğñïãñÜììáôá óõã÷ñïíéóìïı şñáò üğùò ôï ntpd óôï *NIX Ş + ôçí õğçñåóßá óõã÷ñïíéóìïı ôçò şñáò óôá Windows (óå áõôŞí ôçí ğåñßğôùóç, ìğïñåßôå íá êëåßóåôå ôïí óõã÷ñïíéóìü şñáò ôïõ Unreal, ğåñéóóüôåñá ãéáõôü ğáñáêÜôù).

      +

      Áõôü ğïõ êÜíåé ôï UnrealIRCd (şò áñ÷éêŞ åğéëïãŞ) åßíáé íá êÜíåé ìéá ìïíáäéêŞ ğñïóğÜèåéá óõã÷ñïíéóìïı ôçí şñá ğïõ öïñôşíåé. Óôİëíåé (şò áñ÷éêŞ åğéëïãŞ) ìéá áßôçóç + óå ğïëëáğëïıò äéáêïìéóôİò óõã÷ñïíéóìïı êáé üôáí äå÷ôåß ôçí ğñşôç (ãñçãïñüôåñç) áğÜíôçóç, èá ğñïóáñìüóåé ôï åóùôåñéêü ñïëüé ôïõ ircd + (Ï×É ôï ñïëüé ôïõ óõóôŞìáôïò). Áí, ãéá êÜğïéïí ëüãï, ôï Unreal äåí äå÷ôåß êÜğïéá áğÜíôçóç áğï êÜğïéïí äéáêïìéóôŞ ìİóá óå 3 äåõôåñüëåğôá, + ôï IRCd èá óõíå÷ßóåé íá öïñôşíåé áãíïşíôáò ôï (óõìâáßíåé óğÜíéá).

      +

      Ï Óõã÷ñïíéóìüò ôçò şñáò ğñïóáñìüæåôáé (êáé ìğïñåß íá áğåíåñãïğïéçèåß) ìİóá áğï ôçí åğéëïãŞ set::timesynch, äåßôå + ôï set documentation ãéá ğåñéóóüôåñåò ğëçñïöïñßåò.

      +
      +

      3.19 ¶ëëá ×áñáêôçñéóôéêÜ

      Ôï UnrealIRCd İ÷åé ğïëëÜ ÷áñáêôçñéóôéêÜ ïğüôå äåí êáëığôïíôáé üëá åäş... Èá ôï êáôáëÜâåôå êáé áğï ìüíïé óáò.

      @@ -1019,8 +1043,10 @@ style="FONT-SIZE: 18pt">4.0 – name=configuringyourunrealircdconf>

      -

      Ğñşôá áğ’üëá, ôï íá äçìéïõñãŞóåôå İíá êáëü unrealircd.conf èá ğÜñåé áñêåôü ÷ñüíï, ğéèáíüôáôá ğåñßğïõ 10 – 60 ëåğôÜ. Ìğïñåßôå íá ğñïóğáèŞóåôå íá ôï îåêéíŞóåôå üóï ğéï ãñŞãïñá ìğïñåßôå êáé íá ôï âåëôéóôïğïéŞóåôå áñãüôåñá, Ş ìğïñåßôå íá ìÜèåôå ôéò óçìáíôéêüôåñåò ğáñáãñÜöïõò âŞìá âŞìá êÜôé ğïõ ğñïôåßíåôáé ;P. Áí İ÷åôå êÜğïéï ğñüâëçìá, åëİãîôå ôçí óıíôáîç, åëİãîôå ôï åã÷åéñßäéï êáé åëİãîôå ôï FAQ ğñéí æçôŞóåôå ïğïéáäŞğïôå âïŞèåéá/ôï õğïâÜëåôå şò bug.

      -
      +

      Ğñşôá áğ’üëá, ôï íá äçìéïõñãŞóåôå İíá êáëü unrealircd.conf èá ğÜñåé áñêåôü ÷ñüíï, ğéèáíüôáôá ğåñßğïõ 15 – 60 ëåğôÜ. Ç äçìéïõñãéá åíüò "óùóôïı" unrealircd.conf èá ğÜñåé áêüìá ğåñéóóüôåñç şñá. + Äåí ğñİğåé íá âéáóôåßôå íá öïñôşóåôå ôï IRCd, áëëá êáëıôåñá íá åëİãîåôå ôá ğñÜãìáôá ãñáììŞ-ãñáììŞ. Áí İ÷åôå êáíİíá ğñüâëçìá, åëİîôå ôï óõíôáêôéêü,åëİîôå áõôü ôï åã÷åéñßäéï + êáé åğßóçò åëİîôå ôï FAQ ğñßí æçôŞóåôå âïŞèåéá/åğéóçìÜíåôå İíá bug.

      +

      4.1 Ôï áñ÷åßï Åğéëïãşí áíáëõôéêÜ

      <block-name> Åßíáé ï ôığïò ôçò åğéëïãŞò, üğùò ôï me, Ş ôï admin. <block-value> ìåñéêİò öïñİò ïñßæåé ìéá ôéìŞ, üğùò óôï /oper login, áëëá Üëëåò öïñİò èá åßíáé İíáò õğï-ôığïò üğùò óôï ban user.

      <block-directive> Åßíáé ìéá ÷ùñéóôŞ ìåôáâëçôŞ áğïêëåéóôéêÜ ãéá ôçí åğéëïãŞ, êáé ôï <directive-value> åßíáé ç ôéìŞ ìå ôçí ïğïßá ó÷åôéæåôáé. Áí ôï <directive-value> ğåñéİ÷åé êåíÜ, Ş ÷áñáêôŞñåò ğïõ áíôéğñïóùğåıïõí İíá ó÷üëéï ğñİğåé íá ğåñéİ÷åôáé ìİóá óå ëáôéíéêÜ åéóáãùãéêÜ. Áí èİëåôå íá ÷ñçóéìïğïéŞóåôå İíáí åéóáãùãéêü ÷áñáêôŞñá ìİóá óå ìéÜ åéóáãùãéêŞ öñÜóç ÷ñçóéìïğïéŞóôå \" êáé ôï ğñüãñáììá èá ôï äå÷ôåß şò åéóáãùãéêü ÷áñáêôŞñá.

      Ôï <block-directive> ìğïñåß íá İ÷åé ïñßóìáôá ìİóá ôïõ, óå áõôŞí ôçí ğåñßğôùóç èá İ÷åé ğåñéİ÷åôáé ìİóá óå áãêıëåò. Ìåñéêİò åğéëïãİò äİí İ÷ïõí ïñßóìáôá êáé ïñßæïíôáé áğëşò ìå ôï <block-value>, üğùò ôï include. Áêüìá óçìåéşóôå ïôé äåí õğÜñ÷åé ìïñöïğïßçóç ìå set, ğïõ óçìáßíåé ïôé üëç ç åğéëïãŞ ìğïñåß íá åìöáíßæåôáé óå ìéÜ ãñáììŞ Ş óå ğåñéóóüôåñåò. Ç ìïñöïğïßçóç ğéï ğÜíù åßíáé áõôŞ ğïõ êáíïíéêÜ ÷ñçóéìïğïéåßôáé (êáé ğïõ èá ÷ñçóéìïğïéåßôáé óôï áñ÷åßï) ãéáôß åßíáé åıêïëï íá äéáâáóôåß.

      -

      Óçìåßùóç: Ôï áñ÷åßï åğéëïãşí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäŞ ôï BLOCK-NAME äåí åßíáé ôï ßäéï ìå ôï  block-name. ÕğÜñ÷åé åéäéêŞ óçìåßùóç ğïõ áíáöİñåôáé óôéò êáôá÷ùñŞóåéò óôï áñ÷åßï åğéëïãşí. Øéá ğáñÜäåéãìá, ìéëşíôáò ãéá ôï <directive-name> óôï ğáñÜäåéãìá ğáñáğÜíù, èá ëİãáôå <block-name>::<block-directive>, êáé áí áõôü ôï üñéóìá İ÷åé õğï-åğéëïãŞ ğïõ èİëåôå íá óõìğåñéëÜâåôå, èá ğñïóèİôáôå Üëëï İíá :: êáé ôï üíïìá ôïõ õğï ïñßóìáôïò.

      +

      Óçìåßùóç: Ôï áñ÷åßï åğéëïãşí åßíáé åõáßóèçôï óôá êåöáëáßá äçëáäŞ ôï BLOCK-NAME äåí åßíáé ôï ßäéï ìå ôï  block-name. ÕğÜñ÷åé åéäéêŞ óçìåßùóç ğïõ áíáöİñåôáé óôéò êáôá÷ùñŞóåéò óôï áñ÷åßï åğéëïãşí. Øéá ğáñÜäåéãìá, ìéëşíôáò ãéá ôï <directive-name> óôï ğáñÜäåéãìá ğáñáğÜíù, èá ëİãáôå <block-name>::<block-directive>, êáé áí áõôü ôï üñéóìá İ÷åé õğï-åğéëïãŞ ğïõ èİëåôå íá óõìğåñéëÜâåôå, èá ğñïóèİôáôå Üëëï İíá :: êáé ôï üíïìá ôïõ õğï ïñßóìáôïò.

      Øéá íá áíáöåñèåßôå óå İíá áíşíõìï üñéóìá èá êÜíáôå <block-name>:: ğïõ èá óŞìáéíå óå áõôçí ôçí ğåñßğôùóç <block-value>, Ş èá ìğïñïıóå íá åßíáé ìéá êáôá÷şñçóç óå ìéá õğï-åğéëïãŞ ÷ùñßò üíïìá.

      Ôñåßò ôığïé ó÷ïëßùí õğïóôéñßæïíôáé:

      # Ó÷üëéï ìéÜò ãñáììŞò
      // Ó÷üëéï ìéÜò ãñáììŞò
      /* Ó÷üëéï ğïëëşí
          ãñáììşí */

      -

      Ôşñá ğïõ ãíùñßæåôå ğşò ëåéôïõñãåß, äçìéïõñãŞóôå ôï äéêü óáò unrealircd.conf áğï ôçí áñ÷Ş ç áíôéãñÜøôå ôï doc/example.conf êáé áñ÷ßóôå íá ôï åğåîåñãÜæåóôå. ÓõóôŞíåôáé íá ğñï÷ùñŞóåôå âŞìá-âŞìá üëåò ôéò åğéëïãİò êáé íá ÷ñçóéìïğïéŞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.

      +

      Ôşñá ğïõ ãíùñßæåôå ğşò ëåéôïõñãåß, áíôéãñÜøôå ôï doc/example.conf óôïí öÜêåëï ôïõ UnrealIRCd (ğ.÷: /home/user/Unreal3.2) êáé ìåôïíïìÜóôå ôï óå unrealircd.conf (Ç äçìéïõñãŞóôå ôï äéêü óáò unrealircd.conf áğôçí áñ÷Ş). ÓõóôŞíåôáé íá ğñï÷ùñŞóåôå âŞìá-âŞìá üëåò ôéò åğéëïãİò êáé ñõèìßóåéò ôïõ áñ÷åßïõ åğéëïãşí êáé íá ÷ñçóéìïğïéŞóåôå áõôï ôï åã÷åéñßäéï ãéá áíáöïñÜ.

      password-receive
      Ï êùäéêüò ğïõ ÷ñçóéìïğïéåßôáé ãéá áíáãíşñéóç ôùí åéóåñ÷ïìİíùí óõíäİóåùí, ìğïñåß íá åßíáé êñõğôïãñáöçìİíïò(İãêõñïé ôñüğïé êñõğôïãñÜöçóçò åßíáé crypt, md5, sha1, ripemd-160). Ìğïñåßôå íá áãíïŞóåôå ôçí ğáñÜìåôñï ôığïõ áíáãíşñéóçò ãéá íá ÷ñçóéìïğïéŞóåôå ìŞ êñõğôïãñáöçìİíá ãñÜììáôá. Óõ÷íÜ áõôüò ï êùäéêüò åßíáé ï ßäéïò ìå ôïí êùäéêü óıíäåóçò.

      hub vs leaf
      - ¸íáò hub İ÷åé ğïëëïıò servers óõíäåäåìİíïõò ğÜíù ôïõ, åíş ï leaf İ÷åé ìüíï ìßá óıíäåóç... óå åóÜò. ¸íáò server åßíáé åßôå hub åßôå leaf, äåí ìğïñåßôå íá óõíäéÜóåôå áõôİò ôéò åğéëïãİò.

      + ¸íáò hub İ÷åé ğïëëïıò servers óõíäåäåìİíïõò ğÜíù ôïõ, åíş ï leaf İ÷åé ìüíï ìßá óıíäåóç... óå åóÜò. ¸íáò server åßíáé leaf, åêôşò êáé áí İ÷åé äçëùèåß ùò hub.Åßíáé åğßóçò leaf áí ç äŞëùóç ôïõ leaf directive åßíáé *, Ş ôï: leafdepth åßíáé 1.

      hub (ğñïáéñåôéêü)
      Ç ôéìŞ åßíáé ìéá ìÜóêá ôùí server óôïõò ïğïßïõò áõôüò ï hub åğéôñİğåôáé íá óõíäåèåß (ğ.÷: *.my.net).

      leaf (ğñïáéñåôéêü)
      - Ç ôéìŞ åßíáé ìéá ìÜóêá óôçí ïğïßá áõôüò ï server èá öİñåôáé óáí İíáò leaf.

      + Ç ôéìŞ åßíáé ìéá ìÜóêá ôùí server óôïõò ïğïßïõò áõôüò ï hub äåí åğéôñİğåôáé íá óõíäåèåß.Ëİãïíôáò * åäş èá Şôáí ôï ßäéï ìå ôï íá ìçí İ÷ïõìå åğéëïãŞ hub.

      leaf-depth (ğñïáéñåôéêü)
      - Áí ïñéóôåß ôüôå ğñİğåé åğßóçò íá ïñéóôåß êáé ï leaf. Ç ôéìŞ ïñßæåé ôï âÜèïò (áñéèìüò ôùí èİóåùí) ğïõ ï server ìğïñåß íá İ÷åé êÜôù áğï áõôüí.

      + Ç ôéìŞ äçëşíåé ôï âÜèïò (áñéèìüò áğïóôÜóåùí) ğïõ ìğïñåß íá İ÷åé áõôüò ï server "ğÜíù ôïõ". Ãéá ğáñÜäåéãìá, 1 óçìáßíåé ïôé ï server äåí ìğïñåß íá İ÷åé êáìßá óıíäåóç ğÜíù ôïõ (åßíáé leaf), 2 óçìáßíåé ïôé ìğïñåß íá İ÷åé servers ğÜíù ôïõ, áëëá áõôïß äåí ìğïñïıí íá İ÷ïõí óõíäåäåìİíï ôßğïôá Üëëï óôçí óõíİ÷åéá ğÜíù ôïõò (äçëáäŞ, áõôüò ï hub ìğïñåß íá óõíäİåôáé ìüíï ìå leaves). Ìéá ôéìŞ 0 óçìáßíåé ïôé äİí õğÜñ÷åé üñéï, êáé áõôŞ åéíáé ç áñ÷éêŞ åğéëïãŞ.

      class
      Ç êáôçãïñßá óôçí ïğïßá êáôáôÜóåôáé áõôüò ï server, óõ÷íÜ ìéá îå÷ùñéóôŞ êáôçãïñßá server ÷ñçóéìïğïéåßôáé ãéá áõôü.

      compression-level (ğñïáéñåôéêü)
      @@ -2479,19 +2505,27 @@ href="#includedirective">

      Ç åğéëïãŞ alias [standard alias] óáò åğéôñİğåé íá ğñïùèŞóåôå ìéá åíôïëŞ óå İíáí ÷ñŞóôç, ãéá ğáñÜäåéãìá /chanserv óôİëíåé İíá ìŞíõìá óôïí ÷ñŞóôç chanserv. Ôï alias:: ïñßæåé ôï üíïìá ôçò åíôïëŞò ç ïğïßá èá åßíáé ç óõíôüìåõóç (ğ.÷: chanserv), ôï alias::target åßíáé ôï üíïìá ç ôï êáíÜëé óôï ïğïßï èá ğñïùèçèåß ôï ìŞíõìá, Üí ôï alias:: åßíáé ôï ßäéï ìå ôï üíïìá, óôï ïğïßï èá ğñïùèçèåß, ôï alias::target åßíáé ğñïáéñåôéêü. Ôï alias::type ïñßæåé ôïí ôığï ôçò óõíôüìåõóçò, İãêõñïé ôığïé åßíáé services (ï ÷ñŞóôçò åßíáé óôïí server ôùí services), stats (ï ÷ñŞóôçò âñßóêåôáé óôïí server ôùí stats), normal (ï ÷ñŞóôçò åßíáé êáíïíéêüò ÷ñŞóôçò óå ïğïéïíäŞğïôå server), êáé channel (ï óôü÷ïò åßíáé üíïìá êáíáëéïı). Áí ôï alias::spamfilter (ìŞ áğáñáßôçôï) İ÷åé ïñéóôåß óå 'yes', ôüôå ôá spamfilters èá åëİã÷ïíôáé (ç áñ÷éêŞ åğéëïãŞ åéíáé 'no').
      Ç åğéëïãŞ alias İ÷åé åğßóçò êáé Üëëïí İíáí óêïğü ğïõ åîçãåßôáé ëåğôïìåñşò ğáñáêÜôù.

      Óıíôáîç [command alias]:

        
      -    alias <name> { 
      +    alias <name> {
      +	 /* Ãéá aliases ğïõ óôİëíïíôáé óå ÷ñŞóôåò/êáíÜëéá */
                 format <regex-expression> { 
                        target <nick-to-forward-to>; 
                        type <type-of-alias>; 
                        parameters <parameter-string>; 
                 }; 
      +    /* Ãéá 'ğñáãìáôéêÜ aliases' */
      +  	         format <regex-expression> {
      +  	                 command <command>;
      +  	                 type real;
      +  	                 parameters <parameter-string>;
      +  	         };
      +  	         /* Êôëğ... ìğïñåßôå íá İ÷åôå üóåò åğéëïãİò äéáìüñöùóçò åğéèõìåßôå.. */
                 format <regex-expression> { 
                        ... 
                 }; 
                 type command;
       	      spamfilter <yes|no>; 
           };
      -

      ¼ôáí ç åğéëïãŞ alias ÷ñçóéìïğïéåßôáé ìå áõôŞí ôçí ìïñöŞ, óáò åğéôñİğåé íá İ÷åôå ìéá ğéï åõñåßá ğåñéï÷Ş ÷ñŞóçò. Ãéá ğáñÜäåéãìá ìğïñåßôå íá äçìéïõñãŞóåôå óõíôïìåıóåéò üğùò ôï /identify. Ôï alias:: åßíáé ôï ßäéï ìå ğáñáğÜíù, ôï üíïìá ôçò åíôïëŞò óõíôüìåõóçò. Ôï alias::format ïñßæåé ìéá êáíïíéêŞ İêöñáóç ğïõ åëİã÷åôáé ìå ôçí ğñüôáóç ğïõ óôİëíåôáé óôçí åíôïëŞ alias, êáé áöïı ôáéñéÜîåé ìå ôçí õğï-êáôá÷şñçóç ôçò óõíôüìåõóçò ôï alias::format èá ÷ñçóéìïğïéçèåß, ìğïñåßôå íá İ÷åôå ğïëëáğëÜ alias::format's ãéá íá ïñßóåôå ôçí åíôïëŞ íá êÜíåé äéáöïñåôéêÜ ğñÜãìáôá áíÜëïãá ìå ôçí ğñüôáóç ğïõ óôİëíåôáé óå áõôŞí. Ôï alias::format::target åßíáé ï óôü÷ïò óôïí ïğïßï èá ğñïùèçèåß áõôŞ ç óõíôüìåõóç. Ôï alias::format::type ïñßæåé ôïí ôığï ôçò óõíôüìåõóçò ìå ôïí ïğïßï áõôü ôï ìŞíõìá èá ğñïùèçèåß. Ôï alias::format::parameters åßíáé ôéá èá óôáëèåß óÜí ğáñÜìåôñïò óå áõôŞí ôçí óõíôüìåõóç. Ãéá íá ïñßóåôå ìéÜ áğï ôéò ğáñáìİôñïõò ğïõ èá äùèåß óôçí óõíôüìåõóç åíôïëŞò ïñßóôå İíá % áêïëïõèïıìåíï áğï İíáí áñéèìü, ãéá ğáñÜäåéãìá, %1 åßíáé ç ğñşôç ğáñÜìåôñïò. Ãéá íá ïñßóåôå üëåò ôéò ğáñáìİôñïõò áğï ìßá ğáñÜìåôñï ìİ÷ñé ôï ôİëïò äşóôå % áêïëïõèïıìåíï áğï İíáí áñéèìü êáé İíá -, ãéá ğáñÜäåéãìá ôï %2- åğéóôñİöåé üëåò ôéò ğáñáìİôñïõò áğï ôï äåıôåñï ìİ÷ñé êáé ôï ôåëåõôáßï. Åğéğëİïí, ìğïñåßôå íá ïñßóåôå %n ôï ïğïßï èá áíôéêáôáóôáèåß ìå ôï nickname ôïõ ÷ñŞóôç ğïõ İäùóå ôçí åíôïëŞ. Ãéá ğáñáäåßãìáôá ÷ñŞóçò ôçò åğéëïãŞò óõíôüìåõóçò alias óå ìïñöŞ åíôïëşí, óõìâïõëåõôåßôå ôï doc/example.conf.

      +

      ¼ôáí ç åğéëïãŞ alias ÷ñçóéìïğïéåßôáé ìå áõôŞí ôçí ìïñöŞ, óáò åğéôñİğåé íá İ÷åôå ìéá ğéï åõñåßá ğåñéï÷Ş ÷ñŞóçò. Ãéá ğáñÜäåéãìá ìğïñåßôå íá äçìéïõñãŞóåôå óõíôïìåıóåéò üğùò ôï /identify. Ôï alias:: åßíáé ôï ßäéï ìå ğáñáğÜíù, ôï üíïìá ôçò åíôïëŞò óõíôüìåõóçò. Ôï alias::format ïñßæåé ìéá êáíïíéêŞ İêöñáóç ğïõ åëİã÷åôáé ìå ôçí ğñüôáóç ğïõ óôİëíåôáé óôçí åíôïëŞ alias, êáé áöïı ôáéñéÜîåé ìå ôçí õğï-êáôá÷şñçóç ôçò óõíôüìåõóçò ôï alias::format èá ÷ñçóéìïğïéçèåß, ìğïñåßôå íá İ÷åôå ğïëëáğëÜ alias::format's ãéá íá ïñßóåôå ôçí åíôïëŞ íá êÜíåé äéáöïñåôéêÜ ğñÜãìáôá áíÜëïãá ìå ôçí ğñüôáóç ğïõ óôİëíåôáé óå áõôŞí. Ôï alias::format::target åßíáé ï óôü÷ïò óôïí ïğïßï èá ğñïùèçèåß áõôŞ ç óõíôüìåõóç,üìùò óôçí ğåñßğôùóç ÷ñŞóçò åíüò "ğñáãìáôéêïı alias" ôï alias::format::command ÷ñçóéìïğïéåßôáé áíôßóôïé÷á. Ôï alias::format::type ïñßæåé ôïí ôığï ôçò óõíôüìåõóçò ìå ôïí ïğïßï áõôü ôï ìŞíõìá èá ğñïùèçèåß. Åêôşò áğï ôïõò ôığïõò ğïõ áíáöİñèçêáí ğñéí óôï "Syntax [standard alias]", åğéôñİğïõìå åğßóçò ôïí "ğñáãìáôéêü" ôığï åäş, ãéá ôá "ğñáãìáôéêÜ aliases". Ôï alias::format::parameters åßíáé ôé èá óôáëèåß óÜí ğáñÜìåôñïò óå áõôŞí ôçí óõíôüìåõóç. Ãéá íá ïñßóåôå ìéÜ áğï ôéò ğáñáìİôñïõò ğïõ èá äùèåß óôçí óõíôüìåõóç åíôïëŞò ïñßóôå İíá % áêïëïõèïıìåíï áğï İíáí áñéèìü, ãéá ğáñÜäåéãìá, %1 åßíáé ç ğñşôç ğáñÜìåôñïò. Ãéá íá ïñßóåôå üëåò ôéò ğáñáìİôñïõò áğï ìßá ğáñÜìåôñï ìİ÷ñé ôï ôİëïò äşóôå % áêïëïõèïıìåíï áğï İíáí áñéèìü êáé İíá -, ãéá ğáñÜäåéãìá ôï %2- åğéóôñİöåé üëåò ôéò ğáñáìİôñïõò áğï ôï äåıôåñï ìİ÷ñé êáé ôï ôåëåõôáßï. Åğéğëİïí, ìğïñåßôå íá ïñßóåôå %n ôï ïğïßï èá áíôéêáôáóôáèåß ìå ôï nickname ôïõ ÷ñŞóôç ğïõ İäùóå ôçí åíôïëŞ.

      Ãéá ğáñáäåßãìáôá ÷ñŞóçò ôçò åğéëïãŞò óõíôüìåõóçò alias óå ìïñöŞ åíôïëşí, óõìâïõëåõôåßôå ôï doc/example.conf.

            reason "No spamming allowed"; }; +

      4.36 - ÅğéëïãŞ Cgiirc + ĞÑÏÁÉÑÅÔÉÊÏ +

      +

      + Ç åğéëïãŞ cgiirc óáò åğéôñİğåé íá ñõèìßóåôå ôï spoofing äéåõèıíóåùí ãéá ôéò ğıëåò CGI:IRC ğïõ åìğéóôåıåóôå + (more info).

      + +

      Óıíôáîç:
      +

      +  	 cgiirc {
      +  	         type <webirc|old>;
      +  	         username <mask>; /* ğñïáéñåôéêü */
      +  	         hostname <mask>;
      +  	         password <password>; /* ìüíï ãéá ôığïõ webirc */
      +  	 };

      +

      type ìğïñåß íá ğÜñåé ôçí ôéìŞ 'webirc' Ş 'old'.
      + username óõãêñßíåôáé ìå ôï ident (áí õğÜñ÷åé). Áí äåí ïñéóèåß, ğáßñíåé ôçí ôéìŞ "*".
      + hostname åßíáé ç äéåıèõíóç ìå ôçí ïğïßá ğñİğåé íá ôáéñéÜæåé.
      + password åßíáé ï êùäéêüò webirc, ÷ñçóéìïğïéåßôáé ìüíï ãéá ôïí ôığï 'webirc'.
      +

      + +

      Ğşò íá ôï ñõèìßóåôå ìå ôçí ìİèïäï 'webirc' (ğñïôåéíüìåíç ìİèïäïò)
      + Óôï áñ÷åßï ñõèìßóåùí CGI:IRC (cgiirc.conf) ïñßæåôå ôï webirc_password óå İíá êáëü êùäéêü.
      + ¸ğåéôá, óôï unrealircd.conf ğñïóèİôåôå ìéá åğéëïãŞ cgiirc ãéá íá åğéôñİøåôå áõôçí ôçí äéåıèõíóç êáé ôïí êùäéêü êáé ïñßæåôå ôï + cgiirc::type óå "webirc".
      +
      + ĞáñÜäåéãìá:
      + Óôï áñ÷åßï ñõèìßóåùí CGI:IRC (cgiirc.conf) ğñïóèİôåôå: +

      webirc_password = LpT4xqPI5
      + ¸ğåéôá, óôï unrealircd.conf ğñïóèİôåôå ôçí åğéëïãŞ cgiirc: +
      cgiirc {
      +  	         type webirc;
      +  	         hostname "1.2.3.4";
      +  	         password "LpT4xqPI5";
      +  	 };

      + +

      Ğşò íá ôï ñõèìßóåôå ìå ôçí ìİèïäï 'old'
      + ÓÇÌÅÉÙÓÇ: ÁõôŞ äåí åéíáé ç ğñïôåéíüìåíç ìİèïäïò áöïõ İ÷åé äıï ìåéïíåêôŞìáôá: + áõôŞ ç ìİèïäïò èá óôåßëåé ôçí IP/äéåıèõíóç ğïõ èá ãßíåé spoof şò êùäéêüò äéáêïìéóôŞ, ğïõ óçìáßíåé ïôé äåí ìğïñåßôå íá ïñßóåôå İíáí êùäéêü äéáêïìéóôŞ şò İíáò CGI:IRC ÷ñŞóôçò. Åğéğëİïí, ï İëåã÷ïò ôçò ğñüóâáóçò åßíáé ìüíï âáóéóìİíïò óôçí äéåıèõíóç êáé äåí ÷ñåéÜæåôáé êùäéêü üğùò ç ìİèïäïò 'webirc'. Ìå ëßãá ëüãéá, + ßóùò äåí ğñİğåé íá ÷ñçóéìïğïéŞóåôå áõôŞí ôçí ìİèïäï åêôşò êáé áí õğÜñ÷åé êáëüò ëüãïò ãéá íá ôï êÜíåôå.
      +
      + Óôï áñ÷åßï åğéëïãşí CGI:IRC (cgiirc.conf) ïñßæåôå realhost_as_password óå 1.
      + ¸ğåéôá, óôï unrealircd.conf ğñïóèİôåôå ìéá åğéëïãŞ cgiirc ãéá íá åğéôñİøåôå áõôŞí ôçí äéåıèõíóç.
      +
      + ĞáñÜäåéãìá:
      + Óôï áñ÷åßï åğéëïãşí CGI:IRC (cgiirc.conf) ğñïóèİôåôå: +

      realhost_as_password = 1
      + ¸ğåéôá, óôï unrealircd.conf ğñïóèİôåôå ìéá åğéëïãŞ cgiirc: +
      cgiirc {
      +  	         type old;
      +  	         hostname "1.2.3.4";
      +  	 };

      +

      4.36 - ÅğéëïãŞ Set 4.37 - ÅğéëïãŞ Set REQUIRED include.

      set::options::fail-oper-warn;
      Áí õğÜñ÷åé, ï ÷ñŞóôçò èá åíçìåñşíåôáé üôé ïé áğïôõ÷çìİíåò ôïõ/ôçò ğñïóğÜèåéåò /oper İ÷ïõí êáôáãñáöåß.

      set::dns::timeout <timevalue>;
      - Ìéá ôéìŞ ğïõ ïñßæåé ôïí ÷ñüíï ğïõ İ÷åé İíáò DNS server ãéá íá áğáíôŞóåé ğñßí áãíïçèåß. Ìéá ôéìŞ ÷ñüíïõ åßíáé ìéá óõìâïëïóåéñÜ áñéèìşí ìå ôï d íá óçìáßíåé ìİñåò, h óçìáßíåé şñåò, m óçìáßíåé ëåğôÜ, êáé s óçìáßíåé äåõôåñüëåğôá, ãéá ğáñÜäåéãìá 1d2h3m óçìáßíåé 1 ìİñá, 2 şñåò, 3 ëåğôÜ.

      + Ìéá ôéìŞ ğïõ ïñßæåé ôïí ÷ñüíï ğïõ İ÷åé İíáò DNS server ãéá íá áğáíôŞóåé ğñßí áãíïçèåß. Ìéá ôéìŞ ÷ñüíïõ åßíáé ìéá óõìâïëïóåéñÜ áñéèìşí ìå ôï d íá óçìáßíåé ìİñåò, h óçìáßíåé şñåò, m óçìáßíåé ëåğôÜ, êáé s óçìáßíåé äåõôåñüëåğôá, ãéá ğáñÜäåéãìá 1d2h3m óçìáßíåé 1 ìİñá, 2 şñåò, 3 ëåğôÜ. (ÄÅÍ Å×ÅÉ ÕËÏĞÏÉÇÈÅÉ)

      set::dns::retries <number-of-retries>;
      - Ìéá áñéèìéôêŞ ôéìŞ ğïõ ïñßæåé ôïí áñéèìü ôùí ğñïóğáèåéşí ğïõ èá ãßíïíôáé óôïí DNS server ğñßí êáôá÷ùñçèåß şò áğïôõ÷ßá.

      + Ìéá áñéèìéôêŞ ôéìŞ ğïõ ïñßæåé ôïí áñéèìü ôùí ğñïóğáèåéşí ğïõ èá ãßíïíôáé óôïí DNS server ğñßí êáôá÷ùñçèåß şò áğïôõ÷ßá.(ÄÅÍ Å×ÅÉ ÕËÏĞÏÉÇÈÅÉ)

      set::dns::nameserver <name-of-dns-server>;
      - Ïñßæåé ôçí äéåıèõíóç ôïõ server ğïõ èá ÷ñçóéìïğïéçèåß ãéá ôéò áéôŞóåéò DNS.

      + Ïñßæåé ôçí äéåıèõíóç ôïõ server ğïõ èá ÷ñçóéìïğïéçèåß ãéá ôéò áéôŞóåéò DNS.(ÄÅÍ Å×ÅÉ ÕËÏĞÏÉÇÈÅÉ)

      set::dns::bind-ip <ip>;
      Ïñßæåé ôçí IP óôçí ïğïßá èá óõíäåèåß ãéá íá êÜíåé ôéò áéôŞóåéò óôïí ìåôáôñïğİá, ÷ñåéÜæåôáé óğÜíéá.

      set::network-name <name-of-network>;
      @@ -2777,8 +2863,18 @@ href="#includedirective">include.

      set::spamfilter::except <target(s)>
      Áõôïß ïé óôü÷ïé åßíáé åîáéñİóåéò áğï ôï spam filtering (êáìßá åíİñãåéá äåí èá ãßíåé), ìğïñåß íá åßíáé İíáò óôü÷ïò Ş ìéá ëßóôá äéá÷ùñéóìİíç áğï êüììáôá.. ğ.÷: except "#help,#spamreport"

      set::check-target-nick-bans <yes|no>
      - ¼ğïôå êÜğïéïò ÷ñŞóôçò áëëÜæåé ôï øåõäşíõìï ôïõ/ôçò, åëİã÷åé áí ôï ÍÅÏ øåõäşíõìï ğñİğåé íá ãßíåé ban. Áí ğñİğåé, äåí åğéôñİğåé ôçí áëëáãŞ ôïõ øåõäùíıìïõ. Ç áñ÷éêŞ åğéëïãŞ åßíáé yes.

      - + ¼ğïôå êÜğïéïò ÷ñŞóôçò áëëÜæåé ôï øåõäşíõìï ôïõ/ôçò, åëİã÷åé áí ôï ÍÅÏ øåõäşíõìï ğñİğåé íá ãßíåé ban. Áí ğñİğåé, äåí åğéôñİğåé ôçí áëëáãŞ ôïõ øåõäùíıìïõ. Ç áñ÷éêŞ åğéëïãŞ åßíáé yes.

      +

      set::timesynch::enabled <yes|no>
      + Åíåñãïğïéåß ç áğåíåñãïğïéåß ôïí óõã÷ñïíéóìü şñáò óôï öüñôùìá. Default is yes.

      +

      set::timesynch::server <IP>
      + Ïé äéáêïìéóôİò ìå ôïõò ïğïßïõò èá óõã÷ñïíßæåé ôçí şñá. Áõôü ìğïñåß íá áğïôåëåßôáé áğï ìİ÷ñé 4 IP's ÷ùñéóìİíåò ìå êüììá. + Ïé äéáêïìéóôİò ğñİğåé íá õğïóôéñßæïõí ôï ğñïôüêïëï NTP İêäïóç 4. Ç áñ÷éêŞ ôéìŞ åßíáé íá ÷ñçóéìïğïéïıíôáé 3 äéáêïìéóôİò óõã÷ñïíéóìïı (US, EU, + AU). ÁéôŞóåéò óå áõôïıò ôïõò äéáêïìéóôİò óôİëíïíôáé ğáñÜëëçëá,åíù ç ãñçãïñüôåñç áğÜíôçóç êåñäßæåé.

      +

      set::timesynch::timeout <time>
      + Ï ìåãáëıôåñïò ÷ñüíïò ğïõ èá ğåñéìİíåé İíáí äéáêïìéóôŞ ãéá íá áğáíôŞóåé. Áõôü åßíáé ìéá ôéìŞ ìåôáîı ôïõ 1 êáé ôïõ 5, ğåñéóóüôåñï äåí åßíáé äõíáôüí ãéáôé ğñïêáëåß ìåãÜëç áíáêñßâåéá. ÁõôŞ ç åğéëïãŞ İ÷åé áñ÷éêŞ ôéìŞ 3 êáé ìÜëëïí äåí õğÜñ÷åé êáëüò ëüãïò ãéá íá ôçí áëëÜîåôå.

      +

      set::pingpong-warning <yes|no>
      + ¼ôáí ç åğéëïãŞ NOSPOOF åßíáé åíåñãïğïéçìİíç (óõíŞèùò óôá Windows), óôİëíåé ìéá ğñïåéäïğïßçóç óå êÜèå ÷ñŞóôç íá ÷ñçóéìïğïéŞóåé + ôçí åíôïëŞ '/quote pong ..' Üí İ÷åé ğñüâëçìá íá óõíäåèåß. Ç áñ÷éêŞ åğéëïãŞ åßíáé no.

      5 – Åğéğëİïí áñ÷åßá

      @@ -3710,7 +3806,7 @@ style="FONT-SIZE: 18pt">8.8 Protecting against exploits

      -

      ÕğÜñ÷ïõí ôá kernel patches ôá ïğïßá êÜíïõí ğïëı äıóêïëç ôçí ëåéôïõñãßá êÜğïéùí stack- êáé heap-based exploits. Áõôü âİâáéá äåí ğñİğåé íá åßíáé ôï êıñéï óçìåßï åóôßáóçò ôçò ğñïóï÷Şò óáò, İ÷åôå İíáí ğïëõ ìåãáëıôåñï êßíäõíï íá ãßíåôå exploited ìİóù Üëëùí óçìåßùí åêôşò áğï áõôÜ... ãéá äéÜöïñïõò ëüãïõò.
      +

      ÕğÜñ÷ïõí ôá kernel patches ôá ïğïßá êÜíïõí ğïëı äıóêïëç ôçí ëåéôïõñãßá êÜğïéùí stack- êáé heap-based exploits. Áõôü åßíáé êáëü, üìùò äåí ğñİğåé íá åßíáé ôï êıñéï óçìåßï åóôßáóçò ôçò ğñïóï÷Şò óáò, İ÷åôå İíáí ğïëõ ìåãáëıôåñï êßíäõíï íá ãßíåôå exploited ìİóù Üëëùí óçìåßùí åêôşò áğï áõôÜ... ãéá äéÜöïñïõò ëüãïõò.

      ÕğÜñ÷åé êÜôé ğïõ ğñİğåé íá êÜíåôå âİâáéá, äçëáäŞ íá ×ÑÇÓÉÌÏĞÏÉÅÉÔÅ ĞÁÍÔÁ ÔÇÍ ÔÅËÅÕÔÁÉÁ ÅÊÄÏÓÇ, åããñáöåßôå óôçí 9 – Frequently Asked Questions (FAQ)

      -

      Ôï FAQ åßíáé äéáèİóçìï Ôï FAQ åßíáé äéáèİóçìï åäş

      diff --git a/doc/unreal32docs.html b/doc/unreal32docs.html index b502fdd4c..ac8977786 100644 --- a/doc/unreal32docs.html +++ b/doc/unreal32docs.html @@ -27,12 +27,12 @@ English | Greek | Dutch | Russian | -Turkish +Turkish

      UnrealIRCd
      http://www.unrealircd.com
      - Version: 3.2.5
      - Last doc update: 2006-06-15
      + Version: 3.2.6
      + Last doc update: 2006-12-22

      Head Coders: Stskeeps / codemastr / Syzop / Luke
      Contributors: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
      @@ -187,9 +187,9 @@ Windows:
    • *NIX versions:
      • Linux (2.2.*, 2.4.*, 2.6.*) -
      • FreeBSD (4.*, 5.*) +
      • FreeBSD (4.*, 5.*, 6.*)
      • NetBSD (2.*) -
      • OpenBSD (3.7, 3.8) +
      • OpenBSD (3.7, 3.8, 3.9)
      • Solaris (9, 10)
    • Windows version: @@ -1944,17 +1944,16 @@ link <server-name> {

      hub vs leaf
      A hub has multiple servers linked to it, a leaf has only one link... to you. - A server is either a hub or a leaf, you cannot combine these options. + A server is a leaf unless it has a hub directive. It is also a leaf if the leaf directive is *, or leafdepth is 1.

      hub (optional)
      The value is a mask of what servers this hub may connect (ex: *.my.net).

      leaf (optional)
      - The value is a mask that this server will act like a leaf towards. + The value is a mask of what servers this hub may not connect. Saying * here would be the same as not having a hub directive.

      -

      leaf-depth (optional)
      - If specified then leaf should be specified too. The value specifies the depth - (number of hops) this server may have beneath it. +

      leafdepth (optional)
      + The value specifies the depth (number of hops) this server may have beneath it. For example, 1 means the server can't have any links under it (a leaf), 2 means it can link servers but those servers can't link anything under them (that is, this hub can only link leaves). A value of 0 means no limit, and is the default.

      class
      The class this server is put into, often a separate server class is used for this. @@ -2366,12 +2365,12 @@ set { A time value specifying the length of time a DNS server has to respond before a timeout. A time value is a numeric string with d meaning days, h meaning hours, m meaning minutes, and s meaning seconds, for example 1d2h3m means 1 day, 2 - hours, 3 minutes.

      + hours, 3 minutes. (NOT IMPLEMENTED)

      set::dns::retries <number-of-retries>;
      A numeric value specifying the number of times the DNS lookup will be retried - if failure occurs.

      + if failure occurs. (NOT IMPLEMENTED)

      set::dns::nameserver <name-of-dns-server>;
      - Specifies the hostname of the server that will be used for DNS lookups.

      + Specifies the hostname of the server that will be used for DNS lookups. (NOT IMPLEMENTED)

      set::dns::bind-ip <ip>;
      Specifies the IP to bind to for the resolver, rarely ever needed.

      set::network-name <name-of-network>;
      @@ -2498,6 +2497,9 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.

      Maximum time to wait for a time server reply. This is a value between 1 and 5, more is not possible because it causes too much inaccuracy. This setting is 3 by default and there's probably no good reason to change it.

      +

      set::pingpong-warning <yes|no>
      + 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.

      5 – Additional Files

      diff --git a/doc/unreal32docs.hu.html b/doc/unreal32docs.hu.html index a5bcc83d5..c0f7f64f6 100644 --- a/doc/unreal32docs.hu.html +++ b/doc/unreal32docs.hu.html @@ -27,12 +27,12 @@ Hungarian | Greek | Dutch | Russian | -Turkish +Turkish

      UnrealIRCd
      http://www.unrealircd.com
      -  Verzió: 3.2.5
      -  Utolsó dokumentáció frissítés: 2006-06-15
      +  Verzió: 3.2.6
      +  Utolsó dokumentáció frissítés: 2006-12-22

      Fõ fejlesztõk: Stskeeps / codemastr / Syzop / Luke
      Munkatársak: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
      @@ -188,9 +188,9 @@ Windows:
    • *NIX verziók:
      • Linux (2.2.*, 2.4.*, 2.6.*) -
      • FreeBSD (4.*, 5.*) +
      • FreeBSD (4.*, 5.*, 6.*)
      • NetBSD (2.*) -
      • OpenBSD (3.7, 3.8) +
      • OpenBSD (3.7, 3.8, 3.9)
      • Solaris (9, 10)
    • Windows verzió: @@ -1910,10 +1910,10 @@ link <szervern ... }; };

      -

      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

      +

      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

      Elõször is, a szervernév 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).

      + 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).

      username
      Megadhatod ezt, ha identet használsz a felhasználónevek hitelesítésre, közönséges esetben állítsd "*"-ra.

      @@ -1929,39 +1929,37 @@ link <szervern

      bind-ip (szabadon választható)
      - 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á.

      port
      Azon port száma, ahová kapcsolódjon a szerver (amelyen a távoli szerver figyeli a kapcsolódásokat).

      password-connect
      - 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.

      password-receive
      - 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.

      hub vs leaf
      - 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.

      hub (szabadon választható)
      - 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).

      leaf (szabadon választható)
      - 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 nem kapcsolódhat. A *-nak ugyanolyan hatása van, mintha nem lenne hub direktíva.

      -

      leaf-mélység (szabadon választható)
      - 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. +

      leafdepth (szabadon választható)
      + 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.

      class
      - 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.

      compression-level (szabadon választható)
      - 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.

      ciphers (szabadon választható)
      Meghatározza, milyen SSL kódoló/visszafejtõ algoritmusok (cipherek) legyenek használatban ehhez a linkhez. A rendelkezésre álló @@ -1971,9 +1969,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á.
      - - +
      ssl ha SSL portra kapcsolódsz.
      autoconnect a szerver próbálkozni fog az automatikus kapcsolódással, a class::connfreq-ben +
      autoconnect 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)
      zip 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
      zip 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
      nodnscache 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.
      nohostcheck ne érvényesítse a távoli gazdanevet (link::hostname); használd ezt gyakran változó @@ -2367,12 +2365,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éldául az 1d2h3m jelentése 1 nap, 2 óra és 3 perc. (NINCS IMPLEMENTÁLVA)

      set::dns::retries <próbálkozások-száma>;
      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õ.

      + ha hiba fordul elõ. (NINCS IMPLEMENTÁLVA)

      set::dns::nameserver <dns-szerver-neve>;
      - Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét.

      + Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét. (NINCS IMPLEMENTÁLVA)

      set::dns::bind-ip <ip>;
      Meghatározza azt az IP címet, amelyre bindeljen a szerver a lekérdezésekhez; a lehetõ legritkábban van szükség rá.

      set::network-name <hálózat-neve>;
      @@ -2499,6 +2497,9 @@ 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.

      +

      set::pingpong-warning <yes|no>
      + 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".

      5 – További fájlok

      diff --git a/doc/unreal32docs.nl.html b/doc/unreal32docs.nl.html index 3feefbd06..b293dbaad 100644 --- a/doc/unreal32docs.nl.html +++ b/doc/unreal32docs.nl.html @@ -25,18 +25,18 @@ Greek | Dutch | Russian | -Turkish +Turkish

      UnrealIRCd
      http://www.unrealircd.com
      - Version: 3.2.5
      - Laatste documentatie wijziging: 2006-06-15
      + Version: 3.2.6
      + Laatste documentatie wijziging: 2006-12-22

      Hoofd programmeurs: Stskeeps / codemastr / Syzop / Luke
      Medewerkers: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
      Documentatie: CKnight^ / Syzop
      - Nederlandse vertaling: Mark (#dutch op irc.irc-chatters.net)
      + Nederlandse vertaling: Mark (#unreal-dutch op irc.unrealircd.com)

      Om dit document te bekijken heb je een geschikte browser nodig, welke hier beneden staan. De meest recente documentatie staat op http://www.vulnscan.org/UnrealIRCd/unreal32docs.html en een FAQ staat op @@ -194,9 +194,9 @@ Windows:

    • *NIX versions:
      • Linux (2.2.*, 2.4.*, 2.6.*) -
      • FreeBSD (4.*, 5.*) +
      • FreeBSD (4.*, 5.*, 6.*)
      • NetBSD (2.*) -
      • OpenBSD (3.7, 3.8) +
      • OpenBSD (3.7, 3.8, 3.9)
      • Solaris (9, 10)
    • Windows versie: @@ -2014,17 +2014,20 @@ link <server-name> {

      hub vs leaf
      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.

      hub (optioneel)
      De waarde is de mask van de servers waarmee deze hub mag verbinden (bijv. *.my.net)

      leaf (optioneel)
      - De waarde is de mask van waartegen deze server zich als een leaf zal gedragen. + De waarde is de mask waartegen deze hub niet> mag verbinden. Als je * instelt krijg je hetzelfde + effect als geen hub directive instellen.

      leaf-depth (optioneel)
      - 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.

      class
      De class waarin de server geplaatst wordt. Meestal is er een aparte server-class. @@ -2439,12 +2442,12 @@ gemiddeld 2048:60=34 tekens per ban toe.

      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.

      + 1 dag, 2 uur en 3 minuten (NOG NIET INGEVOERD).

      set::dns::retries <number-of-retries>;
      Een numerieke waarde die instelt hoeveel keer er opnieuw geprobeerd moet worden - een DNS lookup te voltooien.

      + een DNS lookup te voltooien (NOG NIET INGEVOERD).

      set::dns::nameserver <name-of-dns-server>;
      - De hostnaam die gebruikt moet worden voor een DNS lookup.

      + De hostnaam die gebruikt moet worden voor een DNS lookup (NOG NIET INGEVOERD).

      set::dns::bind-ip <ip>;
      Het IP waaraan gebonden moet worden voor het resolven. Bijna nooit nodig.

      set::network-name <name-of-network>;
      @@ -2573,8 +2576,11 @@ gemiddeld 2048:60=34 tekens per ban toe.

      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.

      -

      +

      set::pingpong-warning <yes|no>
      + 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

      +

      5 – Aanvullende bestanden

      Als aanvulling op het configuariebestand heeft Unreal nog een aantal andere bestanden, zoals diff --git a/doc/unreal32docs.ru.html b/doc/unreal32docs.ru.html index e58b6e30b..75eae0a1c 100644 --- a/doc/unreal32docs.ru.html +++ b/doc/unreal32docs.ru.html @@ -18,14 +18,14 @@ English | German | Spanish | Hungarian | French | Greek - | Dutch | Russian | - Turkish + | Dutch | Russian | + Turkish

      UnrealIRCd
      http://www.unrealircd.com
      - Âåğñèÿ: 3.2.5
      - Ïîñëåäíåå îáíîâëåíèå: 2006-06-15
      + Âåğñèÿ: 3.2.6
      + Ïîñëåäíåå îáíîâëåíèå: 2006-12-22

      Ãëàâíûå ïğîãğàììèñòû: Stskeeps / codemastr / Syzop / Luke
      Âêëàä÷èêè: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel @@ -226,11 +226,11 @@
    • Linux (2.2.*, 2.4.*, 2.6.*)
    • - FreeBSD (4.*, 5.*) + FreeBSD (4.*, 5.*, 6.*)
    • NetBSD (2.*)
    • - OpenBSD (3.7, 3.8) + OpenBSD (3.7, 3.8, 3.9)
    • Solaris (9, 10)
    • @@ -2766,22 +2766,25 @@ deny channel { md5, sha1, ripemd-160). Âû ìîæåòå íå òğîãàòü òèï àâòîğèçàöèè è èñïîëüçîâàòü ïàğîëü â òåêñòîâîì âèäå. ×àñòî ıòîò ïàğîëü ñîâïàäàåò ñ password-connect.

      -

      hub vs leaf
      +

      hub vs leaf
      Õàá ïîçâîëÿåò ñîåäèíåíèÿ ñ íåñêîëüêèìè ñåğâåğàìè, à ëèñò - òîëüêî ñ îäíèì. - Ñåğâåğ ìîæåò áûòü èëè õàáîì, èëè ëèñòîì, íåëüçÿ êîìáèíèğîâàòü äàííûå îïöèè. -

      -

      hub (íåîáÿçàòåëåí)
      + Ñåğâåğ ÿâëÿåòñÿ ëèñòîì äî òåõ ïîğ, ïîêà íå èìååò äèğåêòèâû hub.  Ñåğâåğ + ÿâëÿåòñÿ ëèñòîì òàêæå, åñëè ó íåãî óêàçàíà äèğåêòèâà leaf * èëè + äèğåêòèâà leafdepth óñòàíîâëåíà 1.

      +

      hub (íåîáÿçàòåëåí)
      Çíà÷åíèå - ıòî ìàñêà, óêàçûâàşùàÿ, êàêèå ñåğâåğà ìîãóò ïğèñîåäèíèòüñÿ ê äàííîìó õàáó (ïğèìåğ: *.my.net). -

      -

      leaf (íåîáÿçàòåëåí)
      - Ìàñêà, ñ êîòîğîé ıòîò ñåğâåğ ìîæåò âûñòóïàòü êàê ëèñò. -

      -

      leaf-depth (íåîáÿçàòåëåí)
      - Åñëè îïğåäåë¸í ıòîò ïàğàìåòğ, òî äîëæåí áûòü îïğåäåë¸í è leaf. Çíà÷åíèå - îïğåäåëÿåò ãëóáèíó (êîëè÷åñòâî ïåğåõîäîâ), êîòîğóş íå äîëæåí ïğåâûøàòü äàííûé - ñåğâåğ äî óêàçàííîãî. -

      +

      +

      leaf (íåîáÿçàòåëåí)
      + Çíà÷åíèå - ıòî ìàñêà, óêàçûâàşùàÿ ñ êàêèìè ñåğâåğàìè äàííûé ñåğâåğ íå + áóäåò õàáîì. Óêàçûâàÿ çíà÷åíèå â * áóäåò ğàâíîçíà÷íûì êàê íåèìåíèå + äèğåêòèâû hub.

      +

      leafdepth (íåîáÿçàòåëåí)
      + Çíà÷åíèå îïğåäåëÿåò ãëóáèíó (êîëè÷åñòâî ïåğåõîäîâ), êîòîğûå ìîæåò èìåòü äàííûé + ñåğâåğ. Íàïğèìåğ, 1 - çíà÷èò, ÷òî ñåğâåğ íå ìîæåò èìåòü ëèíêîâ ïîä ñîáîé + (ëèñò), 2 - çíà÷èò, ÷òî ñåğâåğ ìîæåò èìåòü ïîä ñîáîé åù¸ ëèíêè, íî òå ñåğâåğà + áîëüøå íå ìîãóò (ò.ê. òîëüêî õàáû ìîãóò ëèíêîâàòü ëèñòû). Çíà÷åíèå 0 - + îïğåäåëÿåò îòñóòñòâèå îãğàíè÷åíèÿ è ÿâëÿåòñÿ çíà÷åíèåì ïî óìîë÷àíèş.

      class
      Êëàññ ñåğâåğà, äëÿ ıòîãî ÷àñòî èñïîëüçóåòñÿ êëàññ server.

      @@ -3255,13 +3258,13 @@ cgiirc {

      set::dns::timeout <èíòåğâàë-âğåìåíè>;
      Èíòåğâàë âğåìåíè, îïğåäåëÿşùèé òàéìàóò DNS-ñåğâåğà. İòî ñòğîêà, ãäå d îçíà÷àåò äíè, h - ÷àñû, m - ìèíóòû è s - ñåêóíäû. Ê ïğèìåğó, 1d2h3m îçíà÷àåò 1 äåíü, 2 - ÷àñà è 3 ìèíóòû.

      + ÷àñà è 3 ìèíóòû (ÍÅ ĞÅÀËÈÇÎÂÀÍÎ).

      set::dns::retries <êîëè÷åñòâî-ïîâòîğîâ>;
      ×èñëî, îïğåäåëÿşùåå êîëè÷åñòâî ïîïûòîê çàïğîñà DNS ïåğåä âûäà÷åé ñîîáùåíèÿ îá - îøèáêå.

      + îøèáêå (ÍÅ ĞÅÀËÈÇÎÂÀÍÎ).

      set::dns::nameserver <èìÿ-dns-ñåğâåğà>;
      Îïğåäåëÿåò èìÿ ñåğâåğà (hostname), êîòîğûé áóäåò èñïîëüçîâàí â êà÷åñòâå DNS - çàïğîñîâ.

      + çàïğîñîâ (ÍÅ ĞÅÀËÈÇÎÂÀÍÎ).

      set::dns::bind-ip <ip>;
      Ïğèâÿçêà ê îïğåäåëåííîìó IP äëÿ DNS-çàïğîñîâ, î÷åíü ğåäêî èñïîëüçóåòñÿ.

      set::network-name <èìÿ-ñåòè>;
      @@ -3408,6 +3411,10 @@ cgiirc { Ìàêñèìàëüíîå âğåìÿ îæèäàíèÿ îòâåòà îò ñåğâåğà. Ïåğåìåííàÿ, ïğèíèìàşùàÿ çíà÷åíèå îò 1 äî 5 (íåò ñìûñëà âåëè÷èíû áîëüøåé, ò.ê. âîçíèêíåò ïîãğåøíîñòü). Ïî óìîë÷àíèş óñòàíîâëåíî â 3 è, ïî áîëüøîìó ñ÷¸òó, íåò ñìûñëà ìåíÿòü ıòî çíà÷åíèå.

      +

      set::pingpong-warning <yes|no>
      + Êîãäà âêëş÷¸í NOSPOOF (îáû÷íî â ÎÑ Windows), òî îí ïîñûëàåò ïğåäóïğåæäåíèå + êàæäîìó ïîëüçîâàòåëş èñïîëüçîâàòü '/quote pong ..', åñëè îí èìååò ïğîáëåìû ñ + ïîäêëş÷åíèåì. Ïî óìîë÷àíèş îòêëş÷åíî (no).

      5 – Äîïîëíèòåëüíûå ôàéëû

      diff --git a/doc/unreal32docs.tk.html b/doc/unreal32docs.tr.html similarity index 97% rename from doc/unreal32docs.tk.html rename to doc/unreal32docs.tr.html index a275c3d59..51e48241d 100644 --- a/doc/unreal32docs.tk.html +++ b/doc/unreal32docs.tr.html @@ -1,5110 +1,5112 @@ -
      -UnrealIRCd - 3.2 - Resmi Döküman - - - - -English | German | -Spanish | -Hungarian -| -French -| -Greek -| Dutch | -Russian | -Turkish -

      -
      UnrealIRCd
      http://www.unrealircd.com/
      Versiyon: 3.2.5
      En Son Güncelleme: -2006-06-15

      Head Coders: Stskeeps / codemastr / Syzop / -Luke
      Katkıda Bulunanlar: McSkaf / Zogg / NiQuiL / assyrian / chasm -/ DrBin / -llthangel / Griever / nighthawk
      Dökümantasyon: CKnight^ / -Syzop
      -Çeviri: oepidus (tt`), Strathmore (Timaeus) - irc.trsohbet.com
      -

      Bu dökümanı görüntüleyebilmeniz için aşağıda listelenmiş olan -tarayıcılardan birine sahip olmanız gerekir. Güncellenmiş dökümanlara http://www.vulnscan.org/UnrealIRCd/unreal32docs.tk.html -adresinden ulaşabilirsiniz ve ayrıca FAQ (Sıkça Sorulan Sorular) bölümüne -de -http://www.vulnscan.org/UnrealIRCd/faq/ -adresinden ulaşabilirsiniz.

      -

      Uyumlu Tarayıcılar:
      -

        -
      • Opera 6.02 -
      • Microsoft Internet Explorer 6.X / 5.5 -
      • Netscape Navigator 6.X -
      • Mozilla 1.2.X -
      • Lynx (to a point)
      -

      -

      DİZİN / İÇERİK TABLOSU
      1. Önsöz -& Notlar
      ---1.1. 3.1.x -> 3.2 yükseltme / uyum üzerine -notlar
      ---1.2. 3.2 versiyonları arasında yükseltme üzerine notlar -
      2. Kurulum
      3. -Özellikler
      -- -3.1. Gizleme (Cloaking)
      -- -3.2. Moduller
      -- -3.3. Snomasklar
      -- -3.4. Aliases
      -- -3.5. Helpop
      -- -3.6. Oper -erişim seviyeleri
      -- 3.7. Oper -komutları
      -- 3.8. SSL
      -- -3.9. IPv6
      -- -3.10. Zip -links
      -- 3.11. Dinamik DNS/IP bağlantı desteği
      -- 3.12. Anti-flood özellikleri
      -- 3.13. Ban -tipleri
      -- 3.14. Spamfilter
      -- -3.15. CIDR
      -- -3.16. Nick -Karakter Grupları
      -- 3.17. CGI:IRC -Desteği
      -- 3.18. Zaman Senkronizasyonu
      -- 3.19. Diğer özellikler
      4. unrealircd.conf dosyasının -konfigürasyonu
      ---4.1. Açıklamalı konfigürasyon -dosyası
      ---4.2. Me Bloğu -=- -(M:Line)
      ---4.3. Admin -Bloğu -=- (A:Line)
      ---4.4. Class -Bloğu -=- (Y:Line)
      ---4.5. Allow -Bloğu -=- (I:Line)
      ---4.6. Listen -Bloğu -=- (P:Line)
      ---4.7. Oper Bloğu --=- (O:Line)
      ---4.8. DRpass -Bloğu -=-(X:Line)
      ---4.9. Include -Yönergesi
      ---4.10. Loadmodule -Yönergesi
      ---4.11. Log -Bloğu
      ---4.12. TLD Bloğu --=- (T:Line)
      ---4.13. -Ban Nick Bloğu -=- (Q:Line)
      ---4.14. Ban User Bloğu -=- (K:Line)
      ---4.15. Ban IP Bloğu -=- (Z:Line)
      ---4.16. Ban Server Bloğu -=-(q:Line)
      ---4.17. Ban Realname Bloğu -=- (n:Line)
      ---4.18. Ban Version Bloğu
      ---4.19. Ban Exception Bloğu -=- (E:Line)
      ---4.20. -TKL Exception Bloğu
      ---4.21. Throttle Exception Bloğu
      ---4.22. Deny DCC Bloğu -=- (dccdeny.conf)
      ---4.23. Deny Version Bloğu -=- (V:Line)
      ---4.24. Deny Link Bloğu -=- (D:Line / d:Line)
      ---4.25. -Deny Channel Bloğu -=- -(chrestrict.conf)
      ---4.26. Allow Channel Bloğu
      ---4.27. Allow DCC Bloğu
      ---4.28. Vhost Bloğu -=- (vhost.conf)
      ---4.29. Badword Bloğu -=- (badwords.conf)
      ---4.30. Uline Bloğu -=- (U:Line)
      ---4.31. Link Bloğu -=- (C/N/H:Lines)
      ---4.32. Alias Bloğu
      ---4.33. Help Bloğu
      ---4.34. Official Channels Bloğu
      ---4.35. Spamfilter Bloğu
      ---4.36. Cgiirc Bloğu
      ---4.37. Set Bloğu -=- (networks/unrealircd.conf)
      5. Ek Dosyalar
      6. Kullanıcı & Kanal Modları
      7. Kullanıcı & Oper Komutları
      8. Güvenlik için tavsiyeler/kontrol listesi
      ---8.1. Şifreler
      ---8.2. Ircd ile alakalı olmayan zayıflıklar
      ---8.3. Konfigürasyon dosyası ve yetkilendirme
      ---8.4. -Kullanıcı-kaynaklı problemler
      ---8.5. SSL/SSH & sniffing
      ---8.6. -Denial of Service attacks (DoS) [veya: hubumu nasıl -koruyabilirim?]
      ---8.7. Bilgilendirme
      ---8.8. Exploitlere karşı korunma
      ---8.9. Özet
      9. Sıkça Sorulan -Sorular (FAQ)
      A. -Düzenli İfadeler
      ---A.1. Değişmezler
      ---A.2. Nokta İşleci
      ---A.3. Yineleme İşleçleri
      ---A.4. Parantez İfadeleri
      ---A.5. Demirleme İşleçleri
      ---A.6. Veya İşleci
      ---A.7. Gruplama İşleçleri (Alt ifadeler)
      ---A.8. Grup Adresleme İşleci
      ---A.9. -Büyük/küçük harf duyarlılığı

      -

      1.0 – Önsöz & Notlar

      -
      -

      Bu döküman UnrealIRCd ile özel kullanım için -yazılmıştır. Bu dökümanın, UnrealIRCd Geliştirme Grubunun yazılı izni -olmadan, -başka bir yazılım paketi ile kullanımı veya başka bir yazılım paketi ile -dağıtılması kesinlikle yasaktır. Bu dökümanı, UnrealIRCd ile kullanılması -koşulu -ile ve dökümanın üzerinde hiçbir şekilde değişiklik yapmamak koşulu ile, -istediğiniz miktarda kopyasını çıkarabilir / bastırabilir / çoğaltabilir / -yayınlayabilirsiniz. - Copyright (telif Hakkı) UnrealIRCd Geliştirme Grubu -2002-2006

      -

      Yardım istemeden önce lütfen bu klavuzu okuyun, ayrıca -FAQ -(Sıkça Sorulan Sorular) kısmına GERÇEKTEN göz atın -ki bu kısımda sorularınızın/sorunlarınızın yaklaşık olarak %80 'i -cevaplanmıştır/çözülmüştür. Eğer hala yardıma ihtiyacınız varsa, -irc.ircsystem.net (port 6667) sunucusunda #unreal-support kanalından yardım -için -istekte bulunabilirsiniz. (not: belgeleri ve faq kısmını okumuş olduğunuzu -kabul -ediyoruz ve UnrealIRCd hakkında yardım edebiliriz, servisler hakkında -değil!). -Eğer bir açık varsa (bug, hata) bunu http://bugs.unrealircd.org/ adresine -bildirin.

      -

      1.1 – 3.1.x -> 3.2 uyum / yükseltme üzerine notlar -

      -
      -

      Unreal3.1.x den Unreal3.2 ye yükseltme yaptığınızda var -olan konfigürasyon dosyasının değişmiş olduğuna dair uyarılacaksınız, -başlangıçta bu değişimi yapmak size zor gözükebilir, fakat değişim olduğunda -bunu daha iyi bulacaksınız!

      -

      Aynı zamanda 3.1.x’de olan özellikleri bilmenize rağmen -özellikler hakkında ki bölüm 3’ü okumayı unutmayın, çünkü birkaç yeni -özellik -mutlaka vardır.

      -

      3.1.x ile 3.2 uyum/link açısından uygun değildir, fakat -eğer gerçekten bunu yapmak istiyorsanız, en düşük 3.1.4’e ihtiyacanız -vardır, -fakat 3.1.5.1 şiddetle önerilir.

      -

      1.2 – 3.2 versiyonları arasında yükseltme üzerine -notlar

      -
      -

      Yükseltme için önerilen yol:
      Linux:
      -

        -
      • Eski UnrealIRCd klasörünü yeniden adlandırın (aksi - takdirde bir sonraki adımda bu klasörün üzerine yazım gerçekleşecektir) -
      • Yeni UnrealIRCd versiyonunu extract edin ve ./Config - ve make komutlarını kullanın -
      • Eski konfigürasyon dosyalarınızı (unrealircd.conf, - motd, rules, server.* [SSL certs], network dosyası,vs) yeni klasöre - kopyalayın. -

      Windows:
      -
        -
      • Bütün konfigürasyon dosyalarınızı geçici bir konuma - kopyalayın. -
      • Kurulu olan eski Unreal versiyonu için uninstaller’ı - çalıştırın. -
      • Yeni Unreal versiyonu için installer’ı çalıştırın. -
      • Eski konfigürasyon dosyalarınızı yeni klasöre - kopyalayın.
      -

      Aynı zamanda lütfen .RELEASE.NOTES dosyasını nelerin -değiştiğini görmek için kontrol edin. Eğer versiyonlar arasında ki değişim -için -bir hata (bug) bildirecekseniz; bunun bir bug olduğunu bildirmeden önce -.RELEASE.NOTES kısmını okuduğunuza emin olun.

      -

      2.0 - Kurulum
      -


      Test edilmiş & Desteklenen İşletim -Sistemleri:
      -
        -
      • *NIX versiyonları: -
          -
        • Linux (2.2.*, 2.4.*, 2.6.*) -
        • FreeBSD (4.*, 5.*) -
        • NetBSD (2.*) -
        • OpenBSD (3.7, 3.8) -
        • Solaris (9, 10)
        -
      • Windows versiyonları: -
          -
        • Windows 2000 (Pro, Server, Advanced Server) -
        • Windows XP (Home, Pro) -
        • Windows 2003
        -
      • Test Edilmiş Mimariler: -
          -
        • ia32 (i386, i486, i586, i686) -
        • ia64 -
        • amd64 -
        • alpha

      Eğer -sizin kurduğunuz Unreal3.2 diğer bir işletim sistemi ile düzgün olarak -çalışıyorsa lütfen ayrıntıları aşağıdaki adrese bildirin: coders@lists.unrealircd.org
      -

      -

      Kurulum Yönergeleri
      Linux:
      -

        -
      1. gunzip -d Unreal3.2.X.tar.gz -
      2. tar xvf Unreal3.2.X.tar -
      3. cd Unreal3.2 -
      4. ./Config -
      5. En iyi bilginizle bu soruları cevaplayın, genellikle; - eğer emin değilseniz, başlangış ayarları iyi çalışacaktır! -
      6. make -
      7. Şimdi unrealircd.conf dosyasını ve diğer - konfigürasyon dosyalarını oluşturun, Bölüm 4’e bakın.
      -

      Windows:
      -

        -
      1. Unreal installer ‘ı çalıştırın -
      2. unrealircd.conf ve diğer konfigürasyon dosyalarınızı - oluşturun, Bölüm 4’e bakın.
      -

      -

      -

      3.0 - Özellikler

      -
      -

      Bu bölümde bazı ana/kullanışlı özellikler anlatılmıştır. -Bu bölüm için genel bir bilgi gerekmektedir ve bazen de konfigürasyon -dosyalarından bahsedilecektir (hakkında henüz bir fikir sahibi olmadığınız -şeyler).

      -

      Bu bölümü atlayabilirsiniz, bununla birlikte bu bölümü -kurulumdan önce ve sonra okumanız tavsiye edilir. Aksi takdirde 'cloaking', -'snomasks' vs. gibi özelliklerin genel mantığını -anlayamayacaksınız.

      -

      3.1 - Gizleme (Cloaking)

      -
      -

      Gizleme(cloaking) kullanıcıların gerçek hostname’lerinin -gizlenmesi için bir yoldur, örneğin eğer gerçek hostname’iniz -d5142341.cable.wanadoo.nl, ise, bu (giriş, çıkış ve -whois ‘de, vs) rox-2DCA3201.cable.wanadoo.nl olarak -görülecektir. Bu özellik kullanıcıların, gerçek host/IP’yi -göremeyeceklerinden, -birbirlerine saldırı yapmalarını engellemeye yardımcı olur..

      -

      Bu +x kullanıcı modu ile kontrol edilir. (örnek: /mode -nickiniz +x), aynı zamanda adminler, +x kipini default kipi olarak veya -kullanıcıların –x yapamamaları için belirtebilirler.

      -

      Gizlenmiş bir host, gizleme (cloaking) modülü tarafından -oluşturulur (en az bir tane yüklenmesi zorunludur), şu an için sadece 1 -modul -içermektedir:
      cloak: Bu -modül 3.2.1’den bu yana resmi gizleme modulüdür, eski algoritmaya nazaran -daha -güvenlidir, dahili olarak md5 kullanır ve 3 adet; küçük karakter olarak -(a-z) -arası karakterleri içeren, büyük karakter olarak (A-Z) arası karakterleri -içeren -ve rakam olarak (0-9) arası rakamları içeren set::cloak-keys:: belirtmenizi -gerektirir. [ör: "AopAS6WQH2Os6hfosh4SFJHs"]. Örnek için example.conf -dosyasına -bakın.
      -

      Gizleme anahtarları (cloak keys) bir ağdaki bütün -sunucular için aynı olmak zorundadır. Aynı zamanda gizleme anahtarları -(cloak -keys) gizli tutulmalıdır, çünkü gizleme anahtarlarının bilinmesi halinde -gerçek -hostun bulunabilmesi olasıdır.

      -

      3.2 - Moduller

      -
      -

      UnrealIRCd modül özelliğini destekler, bu:
      - Ircd çalışırken -yükleyebilirsiniz/yeniden -yükleyebilirsiniz/iptal edebilirsiniz  (/rehash ile). Bu bazı açıkların -saptanmasını veya yeni özelliklerin restart atmadan eklenmesini -sağlamaktadır.
      - Diğer kişiler yeni komutlar,yeni -kullanıcı modları ve hatta yeni kanal modları içeren (3. parti) moduller -oluşturabilirler.
      Sebeplerinden dolayı çok iyi bir -özelliktir. UnrealIRCd sadece birkaç modül ile başlar. www.unrealircd.com --> -modules kısmına bir göz atın veya 3. parti modulleri bulabilmek için google -arama motorunu kullanın. -

      En az 2 modulü yüklemeniz (load) zorunludur, aksi -taktirde boot işlemini gerçekleştiremezsiniz!:
      - -komutlar modulü: commands.so (windows için commands.dll)
      - gizleme -modulü: çoğunlukla cloak.so (windows için -cloak.dll).

      -

      3.3 - Snomasklar

      -
      -

      Snomasklar sunucu uyarı maskeleridir, kullanıcı modunun -özel bir tipidir ki bu hangi sunucu uyarılarını alacağınızı belirler/kontrol -eder. (çoğunlukla operler tarafından kullanılır)

      -

      Şu şekilde belirtilebilir: /mode nickiniz +s SNOMASK, -örneğin: /mode nickiniz +s +cF
      Kullandığınız snomask’ın -kaldırılması için: /mode nickiniz +s -c
      Veya -kullandığınız bütün snomask’ları: /mode nickiniz –s yazarak -kaldırabilirsiniz.

      -

      Mevcut SNOMASKlar:
      c - Yerel -sunucudaki giris/cikislari gosterir
      F - Uzak sunucudaki -giris/cikislari gosterir
      f - Flood saldiri uyarilarini -gosterir
      k - Atilan /kill komutlarini gormenizi -saglar.[*]
      e - /CHG* ve /SET* ile servislere gonderilen -komutlari gormenizi saglar
      j - Junk uyarı mesajlarını -gormenizi saglar.
      v - vhost kullanım uyarılarını -görmenizi sağlar
      G - gline/shun uyarılarını görmenizi -sağlar
      n - Yerel sunucudaki nick degisimlerini gormenizi -saglar
      N - Uzak sunucudaki nick degisimlerini gormenizi -saglar
      q - Q-line sebebi ile reddedilen nickleri -gormenizi saglar
      s - Genel uyarıları gormenizi -saglar.[*]
      S - Spamfilter eslesmelerinin uyarılarını -görmenizi sağlar
      o - oper açma uyarılarını görmenizi -sağlar
      [*: ircop olmayanlarda kullanabilir]

      -

      Otomatik olarak alınacak snomaskları -(set::snomask-on-connect) ile ve oper açıldığı anda alınacak snomaskları -(set::snomask-on-oper, oper::snomask) ile belirtebilirsiniz.

      -

      Başlangış ayarı olarak, bir kullanıcı +s modunu -kullanıyorsa, belirtilmiş snomasklar kullanılır. Oper olmayanlar için -snomasklar -+ks, oper olanlar için ise +kscfvGqo.

      -

      3.4 - Aliases

      -
      -

      Aliases ile sunucu-taraflı alias komutlarını -düzenleyebilirsiniz. Örneğin nickserv’e identify komutunu "/ns identify -blah" -komutunu kullanarak gönderebilirsiniz. (bu: privmsg nickserv identify blah -olarak değerlendirilecektir). Hatta daha kompleks yapılarda kisaltmalar -(aliases) yapabilirsiniz; /register ‘in register’dan sonra gelecek ilk -parametrenin # işareti olduğu durumlarda ChanServ’e olmadığı durumlarda ise -NickServ’e gönderilmesi gibi.

      -

      Kısaltmalar (aliases) konfigürasyon dosyasındaki alias blokları ile düzenlenir, aynı zamanda bu -alias’ları bir dosya ile de belirtebilirsiniz.

      -

      3.5 - Helpop

      -
      -

      UnrealIRCd bünyesinde /helpop ile erişilebilinen bir -yardım sistemine sahiptir. /helpop komutu tamamıyla, konfigürasyon -dosyasında ki -help bloğu aracılığıyla kullanıcı tarafından düzenlenebilir. Ek olarak tüm -komutlar için bazı temel kullanımları içeren bir help.conf dosyası da dahil -edilmiştir.
      Örneğin /helpop -chmodes size UnrealIRCD’in sahip olduğu bütün kanal modlarını -gösterecektir.
      Eğer IRCOp veya (helpop) yardım operatörü -iseniz kelimenin başına ‘?’ karakteri koymanız gerektiğini unutmayın, bu -durumda -/helpop için /helpop ? -ve /helpop chmodes için de /helpop ?chmodes vs. kullanmanız -gerekecektir.

      -

      3.6 - Oper erişim seviyeleri

      -
      -

      UnrealIRCd ‘de birkaç oper seviyesi vardır ve bunların -herbirine yetki eklemesi (örneğin /gline kullanma yetkisi gibi) -yapabilirsiniz, -böylelikle her opere ihtiyacı olduğu erişimi sağlayabilirsiniz.

      -

      Bu oper bloğundaki oper flagları ile kontrol edilir. -Daha fazla bilgi için oper bloğuna bakın.

      -

      3.7 - Oper komutları

      -
      -

      UnrealIRCd’de, birçok etkili oper komutu vardır. Bunlar -Kullanıcı & Oper Komutları kısmında -açıklanmıştır, -kurulumdan sonra okumak isteyebilirsiniz :).

      -

      3.8 - SSL

      -
      -

      Açılımı Secure Socket Layer olan SSL ile güvenli -şifrelenmiş bağlantılar yapabilirsiniz. Bu sunucu<->sunucu trafiğini -şifrelemek için kullanılabilir, fakat aynı zamanda istemci<->sunucu -trafiği de şifrelenebilir. SSL özelliğini korsanlığa (veri korsanlığı) karşı -korunmada veya güvenlik için kullanabilirsiniz.

      -

      Bu özelliği kullanabilmeniz için IRC sunucunuzun SSL -desteği ile derlenmiş olması gerekmektedir. SSL portunu listen::options::ssl -yönergesi ile belirtebilirsiniz.

      -

      SSL portundan normal bağlantı sağlayamazsınız (bu yüzden -SSL portunu 6667 olarak belirtmeyin!), aynı zamanda SSL protokolunu -destekleyen -bir yazılım kullanmanız gerekmektedir.

      -

      SSL desteği olan yazılımlar: XChat, irssi, mIRC (6.14 ve -üzeri, aynı zamanda birkaç ek adım gerektirmektedir)

      -

      SSL desteği olmayan yazılımlar için ise stunnel -gibi bir gecit kullanabilirsiniz, aşağıda örnekte bir stunnel.conf -verilmiştir -(stunnel 4.x için):

         client = yes
      -   [irc]
      -   accept = 127.0.0.1:6667
      -   connect = irc.myserv.com:6697
      -
      Eğer 127.0.0.1'e 6667 portundan bağlanırsanız, trafiğiniz -şifrelenecektir -ve irc.myserv.com port 6697 'ye yönlendirilecektir. (SSL portu). -

      -

      Aynı zamanda sunuculara bağlanırken sertifakaları -doğrulamalısınız ve körü körüne onaylamamalısınız aksi takdirde "aktif veri -korsanlığı" saldırılarına karşı korunmanız hala zayıf kalacaktır. Bu konu bu -başlığın konusunun dışında bir konudur. (SSL hakkında bilgi edinin, bize -sormayın). [mIRC ve xchat yazılımları sertifikayı onaylayıp -onaylamayacağınıza -dair bir pop up açmaktadır, dolayısıyle bu iyidir.]

      -

      3.9 - IPv6

      -
      -

      UnrealIRCd IPv6 özelliğini, beta15'den beri devamlı -olarak desteklemektedir.
      Bu özelliği kullanabilmeniz -için işletim sisteminizin IPv6 özelliğini desteklemesi ve UnrealIRCd'de -./Config -sırasında IPv6 desteğini aktif etmeniz gerekmektedir.
      -

      Microsoft'un w2k/XP için deneme aşamasında olan IPv6 -uygulaması olmasına rağmen, bu (henüz) UnrealIRCd tarafından -desteklenmemektedir.

      -

      3.10 - Zip links

      -
      -

      Zip links sunucu<->sunucu linkleri için aktif -edilebilir, bu özellikle data zlib kullanılarak sıkıştırma yapılır. Bu -özellik -sayesinde bant genişliğinin 60-80% 'i saklanabilir... Bu nedenle bu özellik, -küçük bant genişlikli linkler için veya çok kullanıcılı linkler için oldukça -kullanışlıdır.

      -

      Zip links desteğini aktif etmek için ./Config sırasında -karşılaşacağınız zlib sorusuna YES cevabı vermeniz ve bunu -link::options::zip -ile belirtmeniz gerekmektedir.(her iki tarafta da)

      -

      3.11 - Dinamik DNS/IP link desteği

      -
      -

      UnrealIRCd'in, dinamik DNS (blah.dyndns.org gibi) -kulanan dinamik IP'li kullanıcılara yardımcı olan birkaç (yeni) güzel -özellikleri vardır. Eğer iki dinamik DNS kullanan hostu linkliyorsanız, bunu -link::options::nodnscache ve link::options::nohostcheck ile -belirtmelisiniz.

      -

      3.12 - Anti-Flood özellikleri

      -
      -

      Throttling
      Throttling bir kullanıcının sunucunuzdan -bağlantısını -kesmesinin ve yeniden sunucunuza bağlanmasının ne kadar hızla -gerçekleşebileceğini sınırlayabilmenizi sağlayan bir metotdur. Bunu -konfigürasyon dosyasında ki set::throttle bloğunda belirtebilirsiniz.Burada -X, -YY saniye içinde ki aynı IP ‘ye sahip bağlantı sayısıdır.
      Kanal -Modları
      Aynı zamanda flood saldırılarına karşı çok etkili olan -kanal modları da vardır. Bazıları:
      K = /knock kullanılamaz kanal, -N = Nick değiştirelemez kanal, C = CTCP’lerin izinli olmadığı -kanal, M = sadece kayıtlı nicklerin konuşabildiği kanal, j = -süreye ilişkin giriş kısıtlama -(kullanıcı-başına)
      beta18’deki gibi aynı zamanda daha da -geliştirilmiş olan +f kanal modu vardır...
      f kanal modu
      Kanalı -flood -saldırılarına karşı korumak için script ve bot kullanmak yerine bu özellik -kullanılabilir.
      +f modunun kullanımına bir örnek: *** Blah sets mode: -+f [10j]:15
      Bunun manası bu kanal, her 15 saniye için 10 giriş -izinlidir, eğer limit aşılırsa kanal otomatik olarak +i moduna -alınacaktır.
      Belirtilen flood tipleri mevcuttur:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      tip:isim:sabit eylem:diğer eylem(ler):yorumlama
      cCTCPotomatik +Cm, M 
      jjoinotomatik +iR 
      kknockotomatik +K (sadece yerel - bağlantıları kapsar)
      mmesaj/noticeotomatik +mM 
      nnickdeğişiklikleriotomatik +N  
      ttextkickbeski +f'de olduğu gibi kullanıcı-başına - mesaj/notice. kullanıcı atılır veya -banlanır.
      -

        Örnek:

      *** ChanOp sets mode: +f 
      -[20j,50m,7n]:15
      -<ChanOp> lalala
      -*** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined 
      -#test
      -*** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
      -*** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
      -*** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined 
      -#test
      --- snip XX lines --
      -*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has 
      -joined #test
      --server1.test.net:#test *** Channel joinflood detected 
      -(limit is 20 per 15 seconds), putting +i
      -*** server1.test.net sets mode: +i
      -<Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      -<Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      -<Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      -<Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      -<Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      --- snip XX lines --
      --server1.test.net:#test *** Channel msg/noticeflood 
      -detected (limit is 50 per 15 seconds), putting +m
      -*** server1.test.net sets mode: +m
      -*** Evil1 is now known as Hmmm1
      -*** Evil2 is now known as Hmmm2
      -*** Evil3 is now known as Hmmm3
      -*** Evil4 is now known as Hmmm4
      -*** Evil5 is now known as Hmmm5
      -*** Evil6 is now known as Hmmm6
      -*** Evil7 is now known as Hmmm7
      -*** Evil8 is now known as Hmmm8
      --server1.test.net:#test *** Channel nickflood detected 
      -(limit is 7 per 15 seconds), putting +N
      -*** server1.test.net sets mode: +N
      -
      Gerçekte daha karışık, daha komplike bir şekil alabilir:
      Ayrı ayrı -belirtmek yerine, flood tiplerini başka bir -biçimde de belirtebilirsiniz, örneğin: +f -[20j#R,50m#M]:15
      Bu; eğer join limiti aşılırsa -kanalın +R moduna (burada limit 15 saniye içinde 20 join) ve eğer mesaj -limiti -aşılırsa kanalın +M moduna (burada limit 15 saniye içinde 50 mesaj) -alınmasını -sağlayacaktır.

      Aynı zamanda “X -dakika sonra modu kaldır” özelliği de vardır: +f -[20j#R5]:15 limit aşıldığı takdirde kanal +R moduna alınacaktır ve 5 -dakika -sonra kanal –R moduna alınacaktır.
      Bir sunucu için, -belirli bir süre sonra modun kaldırılması özelliği, -(set::modef-default-unsettime) başlangıç değeri olarak bir değere sahip -olabilir, yani eğer +f [20j]:15 olarak belirtirseniz -bu sunucu tarafından +f [20j#i10]:15, olarak -algılanabilir, bu sadece bir başlangıç değeridir, hala [20j#i2]:15 olarak -belirtebilirsiniz. Aynı zamanda; ör: [20j#i0]:15 şeklinde belirterek modun -kaldırılması özelliğini iptal edebilirsiniz.

      Aynı zamanda eski +f -modu (kullanıcı başına mesaj floodu) -'t' olarak mevcuttur, +f 10:6 modu +f [10t]:6 olarak yorumlanır ve +f *20:10 -modu +f [20t#b]:10 olarak yorumlanır. Ircd, bu modu kullanıldığı anda -otomatik -olarak yeni +f modu tipine çevirecektir. Not: ‘t’ ban’ları için ban kaldırma -zamanı yoktur.(Ör: [20t#b30]:15 işlevi yoktur).

      Bir kanalda +f -modundan en iyi şekilde yararlanmak nelere -dayanır... kanalın kaç kullanıcısı var? Kanalınız kullanıcıların çokça -mesajlaşması gerektiği bir kanal mı (ör: trivia) veya kullanıcılar sık sık -popup -kullanıyorlar mı? Bu tarz bir ana kanal mı veya auto-join kanalı mı? -vs..
      Bütün kanallar için iyi olabilecek mükemmel bir +f modu -kullanımı yoktur ama başlangıç için aşağıdaki örneğe bakıp ihtiyaçlarınıza -göre -değiştirebilirsiniz:
      +f -[30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
      her 15 -saniye için 30 join, limit aşılırsa kanal otomatik olarak 10 dakikalığına +i -moduna alınır
      her 15 saniye için 40 mesaj, eğer limit -aşılırsa kanal otomatik olarak 10 dakikalığına +m moduna alınır
      her 15 -saniye için 7 CTCP, eğer limit aşılırsa kanal -otomatik olarak 15 dakikalığına +C moduna alınır
      her 15 -saniye için 15 nick değişimi, eğer limit aşılırsa kanal otomatik olarak 15 -dakikalığına +N moduna alınır
      her 15 saniye için 30 -knock, eğer limit aşılırsa kanal otomatik olarak 10 dakikalığına +K moduna -alınır
      Eğer söz konusu kanal büyük bir kanal ise (ör: -kullanıcı sayısı>75) join duyarlılığını (örneğin: 50) ve mesaj limitini -(örneğin: 60 veya 75) arttırabilirsiniz.
      Özellikle modun -kaldırılma süresi bir deneme yanılma işidir.. Böyle düşünebilirsiniz.. Eğer -kanalda duruma el koyabilecek bir op olmazsa, kanalı 15 dakikalığına -kitlemeli -miyim (=kullanıcılar için hoş olmaz) veya 5 dakikalığına (=saldırıyı -yapanlar 5 -dakika bekleyip daha sonra saldırıya devam edebilirler). Bu aynı zamanda -flood -tipine de bağlıdır, kullanıcıların kanala girememesi (+i) veya kanalda -konuşamaması (+m) nick değiştirememelerinden (+N) veya kanala CTCP (+C) -gönderememelerinden daha kötü bir durumdur bu nedenle herbir flood tipi için -ayrı ayrı mod kaldırılma süresi belirtmek isteyebilirsiniz
      j kanal -modu
      +f modu join flood’ları engelleme özelliğini de -kapsamaktadır, bununla birlikte bu özellik "geniş kapsamlıdır". Örneğin, -eğer -5:10 belirtilirse ve 5 farklı kullanıcı 10 saniye -içinde kanala girerse, flood koruması tetiklenecektir. +j kanal modu -farklıdır. -Bu mod kullanıcı-başına esasıyla çalışır. Join flood saldırılarına karşın -korunma amacından ziyade, join-part flood saldırılarından korunma amacıyla -tasarlanmıştır (revolving door floods). Mod: X join (giriş) sayısını -belirtmek -üzere ve Y saniye sayısını belirtmek üzere X:Y olarak belirtilir. Eğer bir -kullanıcı bu limit aşarsa , onun kanala girişi engellenecektir.
      -

      3.13 - Ban tipleri

      -
      -

      Ana bantipleri ve gizlenmiş -(cloaked) hostlar
      UnrealIRCd +b nick!user@host gibi ana -bantiplerini -desteklemektedir.
      Aynı zamanda, eğer bir kullanıcı -'rox-ACB17294.isp.com' gibi bir gizlenmiş hosta sahipse ve siz -*!*@rox-ACB17294.isp.com şeklinde bir ban belirtmişseniz, bu durumda -kullanıcı --x (böylelikle hostu 'dial-123.isp.com' olacaktır(örneğin)) moduna geçse -dahi -belirtilen ban hala eşleşecektir. Banlar herzaman gerçek ve gizlenmiş -hostlarla -eşleşir.
      Bununla birlikte IP ban da vardır (ör : -*!*@128.*).

      Gizlenmiş IP’lere -ban için birkaç açıklama gereklidir:
      Eğer kullanıcının -IP’si 1.2.3.4 ise gizlenmiş IP’si 341C6CEC.8FC6128B.303AEBC6.IP -olabilir.
      Eğer *!*@341C6CEC.8FC6128B.303AEBC6.IP şeklinde ban -atarsanız bu ban *!*@1.2.3.4 şekline eşdeğerdir (bu açıktır...)
      Eğer -*!*@*.8FC6128B.303AEBC6.IP şeklinde ban atarsanız bu -ban *!*@1.2.3.* şekline eşdeğerdir.
      Eğer -*!*@*.303AEBC6.IP şeklinde ban atarsanız bu ban *!*@1.2.* şekline -eşdeğerdir.
      Bu bilgilendirme atılacak bir banın ne kadarlık bir -kapsaması olduğuna karar verirken size yardımcı -olacaktır.

      Genişletilmiş bantipleri
      Genişletilmiş banlar -~[!]<tip>:<parametre> -şeklindedir. Mevcut tipler:
      - - - - - - - - - - - - - - - - - - - - - -
      tip:isimaçıklama:
      ~qquietBu ban ile eşleşen kullanıcı kanala girebilir - ancak +v veya daha yükseğine sahip değilse konuşamaz. Ör: ~q:*!*@blah.blah.com
      ~nnickchangeBu ban ile eşleşen kullanıcı +v veya daha - yükseğine sahip değilse nick değiştiremez. Ör: - ~n:*!*@*.aol.com
      ~c[prefix]channelEğer kullanıcı belirtilen kanalda ise ban konulan - kanala giremez. Bununla birlikte burada önek olarak (+/%/@/&/~) - belirtilebilir.Önek belirtilirse kanalda belirtilen öneke sahip veya -daha - yükseğine sahip olan kullanıcı kanala giremez. Ör: - +b ~c:#lamers, +e ~c:@#trusted
      ~rrealnameEğer kullanıcının realname kısmı eşleşirse - kullanıcı kanala giremez.
      Ör: ~r:*Stupid_bot_script*
      NOT: alt çizgi ('_') hem boşluk (' ') hemde ('_') ile - eşleşir, bu sebepten bu ban 'Stupid bot script v1.4' ile - eşleşecektir.
      Bu ban tipleri aynı zamanda kanal -kabul -modunda da (+e) desteklenmektedir.
      Aynı zamanda Moduller -ile de başka ban tipleri de eklenebilir.

      -

      3.14 - Spamfilter

      -
      -

      Spamfilter spam,reklam,worm ve diğer türlerde ki -istenmeyen durumlara karşı yeni bir sistemdir. Badwords sistemi ile benzer -çalışır fakat birçok avantajı vardır.

      -

      Spamfilter kullanımı aşağıda gösterilmiştir:
      /spamfilter -[add|del|remove|+|-] -[tip] [eylem] [tklsüresi] [sebep] [düzenli-ifade]
      - - - - - - - - - - - - - - - - -
      [tip]Hedef tipini belirtir:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Karakter:Konfig.Dosyasında - Tanımı:Açıklama:
      cchannelKanal mesajları
      pprivateÖzel mesajlar - (kullanıcı->kullanıcı)
      nprivate-noticeÖzel notice
      Nchannel-noticeKanala notice
      PpartPart sebebi
      qquitQuit sebebi
      ddccDCC dosya ismi
      aawayAway mesajı
      ttopicBelirtilen topic
      uuserKullanıcı banı, nick!user@host:realname ile - eşleşecektir
      Çoklu hedefler -belirtebilirsiniz, - cpNn gibi.
      [eylem]Eşleşme gerçekleştiği takdirde uygulanacak eylem - (sadece 1 eylem belirtilebilir).
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      killKullanıcıya kill atılır
      tempshunKullanıcının o anlık oturumuna shun atılır - (eğer yeniden bağlanırsa shun kalkacaktır)
      shunHosta shun atılır
      klineHost için kline eklenir
      glineHost için gline eklenir
      zlineHost için zline eklenir
      gzlineHost için gzline (global zline) - eklenir
      blockSadece mesaj bloklanır
      dccblockKullanıcı işaretlenir böylelikle kullanıcı - DCC gönderimi yapamaz
      viruschanBütün kanallardan çıkartılır, - set::spamfilter::virus-help-channel ile belirtilen kanala giriş - yaptırılır, PONG, ADMIN , ve set::spamfilter::virus-help-channel -ile - belirtilen kanala msg/notice hariç hiçbir komutu - kullanamaz
      [tklsüresi]Spamfilter tarafından eklenen *line/shun için - geçerli olma süresidir, başlangıç değeri için '-' kullanın veya -atlayın - (Ör: eğer eylem = 'block' ise)
      [sebep]Block/*line/shun sebebidir. Burada belirtilen - sebep içinde boşluk kullanamazsınız, alt çizgiler ('_') boşluk olarak - değerlendirilir. Ve çift altçizgi ('__') ('_') olarak değerlendirilir. - Yine aynı şekilde başlangıç değeri için, '-' kullanın.
      [düzenli ifade]bu kısım, hangi ifadenin veya 'yasak kelime'nin - kullanıldığında belirtilen eylemin uygulanacağını bildirilen kısımdır. -

      İşte bir örnek: /spamfilter add pc gline -- - Come watch me on my -webcam
      Eğer metin come watch -me on my webcam (özel mesajda veya kanal mesajında) ise mesaj bloke -edilecek -ve ardından gline eklenecektir.
      Diğer bir örnek: /spamfilter add pc -block - - come to irc\..+\..+
      Burda belirtilen ifade Hi, come to -irc.blah.net metniyle eşleşecektir.vs..
      Ve -süre/sebep belirtilmiş bir örnek:
      /spamfilter add p gline 3h -Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my -webcam
      Eğer özel mesajda come watch me on my webcam metnine -rastlanırsa -kullanıcı 3 saat süreliğine belirtilen Please go to -www.viruscan.xx/nicepage/virus=blahsebebinden dolayı gline'lı olarak -kalacaktır .

      /spamfilter -komutuyla eklenmiş spam filtreleri bütün ağ boyunca geçerlidir. -Kullanıcı/kanal -+G modunda olsun olmasın muhakkak çalışacaktır, sadece operler ve servisler -(uline) filtrelemeden etkilenmezler.

      -

      Aynı zamanda spam filtrelerini konfigürasyon dosyasından -da ekleyebilirsiniz fakat bunlar yerel sunucuda geçerli olacaktır(bütün ağ -kapsamında değil). Bu spamfilter { } bloğunun kullanımı burada açıklanmıştır.
      Örnek:

      spamfilter {
      -	regex "//write \$decode\(.+\|.+load -rs";
      -	target { private; channel; };
      -	reason "Generic $decode exploit";
      -	action block;
      -};
      -

      -

      set::spamfilter::ban-time -spamfilter ile eklenen *line/shun için ban süresinin default değerini -değiştirebilmenize olanak sağlar.(default değeri: 1 -gün)
      set::spamfilter::ban-reason -Default değeri olarak bir sebep belirtmenize olanak sağlar.(default değeri: -'Spam/advertising')
      set::spamfilter::virus-help-channel belirtilen -'viruschan' eylemi için bir kanal belirtmenize olanak sağlar. (default: -#help)
      set::spamfilter::virus-help-channel-deny yukarıda -belirttiğiniz kanala yapılacak bütün normal girişleri bloklamanıza olanak -sağlar.(default değeri: no)

      -

      3.15 - CIDR

      -
      -

      UnrealIRCd şimdi CIDR (Classless Interdomain Routing) -özelliğini de desteklemektedir. CIDR IP dizilerine ban atmanıza olanak -sağlar. -Unreal CIDR desteği hem IPv4 hem de IPv6 için geçerlidir. CIDR maskeleri -allow::ip, ban user::mask, ban ip::mask, except ban::mask, except -throttle::mask -ve except tkl::mask (gzline, gline ve shun için) yönergeleri içinde -kullanılabilir. Ek olarak yine CIDR maskeleri /kline, /gline, /zline ve -/shun -komutları kullanılırken de belirtilebilir. Unreal standart IP/bit -sözdizimini -kullanır, ör. 127.0.0.0/8 (127.0.0.0 - 127.255.255.255 arasındaki bütün -IP'lerle -eşleşir).

      -

      3.16 - Nick Karakter Grupları

      -
      -

      UnrealIRCd şimdi belirtilen karakter grubu/dil ile o -gruba/dile ait karakterlerden oluşabilen nick kullanımını da -desteklemektedir. -Bunu set::allowed-nickchars ile yapabilirsiniz.
      Bütün olası -seçeneklerin tablosu:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      İsim:Açıklama:Karakter - seti/encoding:
      catalanKatalancaya ilişkin karakterleriso8859-1 (latin1)
      danishDancaya ilişkin karakterleriso8859-1 (latin1)
      dutchFlemenkçeye ilişkin karakterleriso8859-1 (latin1)
      frenchFransızcaya ilişkin karakterleriso8859-1 (latin1)
      germanAlmancaya ilişkin karakterleriso8859-1 (latin1)
      swiss-germanİsviçre-Alman diline ilişkin karakterler (no - es-zett)iso8859-1 (latin1)
      icelandicIzlandacaya ilişkin karakterleriso8859-1 (latin1)
      italianİtalyancaya ilişkin karakterleriso8859-1 (latin1)
      spanishİspanyolcaya ilişkin karakterleriso8859-1 (latin1)
      swedishİsveç diline ilişkin karakterleriso8859-1 (latin1)
      latin1catalan, danish, dutch, french, german, - swiss-german, spanish, icelandic, italian, swedish karakter gruplarına - ilişkin bütün karakterleriso8859-1 (latin1)
      hungarianMacarcaya ilişkin karakterleriso8859-2 (latin2), windows-1250
      polishLehçeye ilişkin karakterleriso8859-2 (latin2)
      romanianRomenceye ilişkin karakterleriso8859-2 (latin2), windows-1250, -iso8859-16
      latin2hungarian, polish, romanian karakter gruplarına - ilişkin bütün karakterleriso8859-2 (latin2)
      polish-w1250Lehçeye ilişkin karakterler, windows - biçiminde(maalesef iso'ya nazaran daha çok karşılaşılır)windows-1250
      slovak-w1250Slovakçaya ilişkin karakterler, windows - biçimindewindows-1250
      czech-w1250Çek diline ilişkin karakterler, windows - biçimindewindows-1250
      windows-1250lehçe-w1250, slovakça-w1250, çek-w1250, macarca, - romencewindows-1250
      greekYunancaya ilişkin karakterleriso8859-7
      turkishTürkçeye ilişkin karakterleriso8859-9
      russian-w1251Rusçaya ilişkin karakterlerwindows-1251
      belarussian-w1251Belarusçaya ilişkin karakterlerwindows-1251
      ukrainian-w1251Ukraynacaya ilişkin karakterlerwindows-1251
      windows-1251rusça-w1251, belarussian-w1251, -ukraynaca-w1251windows-1251
      hebrewİbraniceye ilişkin karakterleriso8859-8-I/windows-1255
      chinese-simpBasitleştirilmiş Çinceye ilişkin karakterlerMultibyte: GBK/GB2312
      chinese-tradGeleneksel Çinceye ilişkin karakterlerMultibyte: GBK
      chinese-jaJaponcaya ilişkin karakterler -(Hiragana/Pinyin)Multibyte: GBK
      chineseçince-*Multibyte: GBK
      gbkçince-*Multibyte: GBK
      -

      NOT 1: Bazı kombinasyonlar problemlere neden olabilir. -Örneğin, latin* ve chinese-* dillerinin kombinasyonunda Unreal hata -verebilir. -Diğer karakter setlerinin kombinasyonu da görüntü problemlerine neden -olabilir, -eğer latin1/latin2/yunanca/diğer gibi uyumsuz grupların kombinasyonunu -kullanırsanız Unreal bir uyarı mesajı verecektir.

      -

      NOT 2: Karakter haritaları US-ASCII tablosuna göre -hazırlanmıştır, bunun manası ise şudur: o" ile O" karakterleri aynı -karakterler -olarak yorumlanmaz. Bu nedenle birisi B"ar nickini kullanırken aynı anda bir -başkası da BA"r nickini kullanabilir. Bu kısa bir süre sonra çözülemeyecek, -mevcut sistemin ve IRCd standartlarının, bir sınırlamasıdır. Kişiler bu -sınırlamadan haberdar olmalılardır. Bu anlatılanlar kanal isimleri içinde -geçerlidir.

      -

      NOT 3: Temel nick karakterleri (a-z A-Z 0-9 [ \ ] ^ _ - -{ | }) herzaman kullanılabilir ve kapsam içindedir.

      Örnek 1, batı avrupa -kullanıcıları için:
      set { allowed-nickchars { latin1; }; 
      -};
      Örnek 2, -eğer çok sayıda çinli kullanıcınız varsa:
      set { allowed-nickchars { 
      -chinese-simp; chinese-trad; }; };
      -

      -

      3.17 - CGI:IRC Desteği

      -
      -

      UnrealIRCd CGI:IRC bağlantıları için host yanıltma -özelliğini destekler. Bunun manası belirli CGI:IRC ağ geçitlerini -"güvenilir" -olarak işaretleyebilirsiniz böylelikle belirtilen ağ geçidinden bağlanan -kullanıcıların kullandıkları CGI:IRC ağ geçidinin sahip olduğu host/ip'si -yerine -kullanıcıların gerçek host/ip'si görülecektir.

      -

      Yapılandırma hakkında bilgi edinmek için cgiirc bloğuna bakın.

      -

      3.18 - Zaman Senkronizasyonu

      -
      -

      Zamanlamanın doğru olmasının IRC sunucular açısından son -derece önemlidir. Zamanlamanın sunucularda doğru olmaması, kanal arasında eş -zamansızlığa, masum insanların sunucudan bağlantısının kesilmesine (kill), -bazı -kanalların /LIST komutu sorgusunda listede bulunmamasına sebep olabilir, -kısaca -istenmeyen durumlar meydana gelebilir.

      -

      UnrealIRCd kendi bünyesinde zaman senkronizasyonu -özelliğine bir bakıma destekler, fakat optimal değildir (hala birkaç saniye -uyumsuzluk yaşanabilir), bu da büyük zaman farklarına yol açabilir. Eğer -yapabilirseniz, bir zaman senkronizyonu programı kullanmanız önerilir, *NIX -platformunda ntpd gibi veya Windowsta zaman senkronizyon servisi gibi. (eğer -böyle bir yazılım kullanırsanız, Unreal’in zaman senkronizasyon özelliğini -devre -dışı bırakabilirsiniz).

      -

      UnrealIRCd (default olarak) başlatıldığı anda zaman -senkronizyonunu sağlar. Çoklu zaman sunucularına istek gönderir ve ilk -aldığı -cevaba göre (en hızlı olanı) dahili ircd saatini ayarlar (sistem saatini -DEĞİL). -Eğer herhangi bir sebepten dolayı 3 saniye içinde zaman sunucusundan cevap -alınamazsa, IRCd açılmaya devam edecektir. (bu olaya nadiren rastlanır)

      -

      Zaman senkronizasyonu set::timesynch bloğu ile yapılandırılır, -daha fazla -bilgi için set dökümanına bakın..

      -

      3.19 - Diğer Özellikler

      -
      -

      UnrealIRCd buraya sığamayacak kadar çok özelliğe -sahiptir... Bu özellikleri kendiniz bulacaksınız.

      -

      -

      4.0 - unrealircd.conf dosyasının -konfigürasyonu -

      -
      -

      İlk olarak, iyi bir unrealircd.conf oluşturmak biraz -zaman alacaktır, 10 – 60dak gibi. Yapabildiğiniz kadar çabuk bir biçimde -boot -etmeyi deneyebilirsiniz ve daha sonra geniş olarak konfigürasyon dosyasını -inceleyebilirsiniz, veya adım adım ana kısımları öğrenebilirsiniz ki bu -tercih -edilen yoldur. ;P. Eğer bir sorunla karşılaşırsanız, yardım istemeden önce -yazımınızı (syntax), klavuzu ve FAQ -kısmını kontrol edin.

      -

      4.1 Açıklamalı Konfigürasyon Dosyası
      -

      -

      -

      Yeni sistem blok-tabanlı bir format kullanır. Yeni -biçimde herbir girişin, veya bloğun kendine özgü bir formatı vardır. Biçim -genel -olarak şu şekildedir:

      <blok-ismi> <blok-değeri> {
      -	<blok-yönergesi> <yönerge-değeri>;
      -};
      -
      -

      -

      <blok-ismi> bloğun tipidir, me veya admin gibi. -<blok-değeri> kimi zamanlarda özel bir değer olabilir, /oper login -gibi, -fakat kimi zamanlarda da ban user ‘da olduğu gibi alt bir tip olacaktır.

      -

      <blok-yönergesi> bloğa özgü özel bir değişkendir -ve <yönerge-değeri> ise birleşik değerdir. Eğer <yönerge-değeri> -,boşluk karakterini içeriyorsa veya bir açıklama tarzı bir ifade içeriyorsa -, -çift tırnak içerisinde belirtilmelidir. Eğer tırnak karakterini çift tırnak -içine alınmış bir ifade içinde kullanmak istiyorsanız \" kullanın, bu tırnak -karakteri olarak algılanacaktır.

      -

      Bir <blok-yönergesi> kendi içinde yönergelere -sahip olabilir. Bazı bloklarda yönerge bulunmaz ve sadece -<blok-değeri> -ile belirtilir, include bloğunda olduğu gibi. Aynı zamanda sabit belirli bir -formatı yoktur, bunun manası sözü edilen blok 1 satır olarak da görülebilir -veya -1 satırdan fazla da olabilir. Normal kullanım formatı (dosyada kullanılacak -format) yukarıdaki gibidir, çünkü bunun okunması kolaydır.

      -

      Not: konfigürasyon dosyası büyük ve küçük harf -duyarlıdır, yani BLOK-İSMİ yazımı blok-ismi yazımıyla eş -değildir. Konfigürasyon -dosyasında, yapılan girişlerden bahsederken özel bir notasyon kullanılır. -Örneğin, yukarıda ki örnek için bu notasyon -<blok-ismi>::<blok-yönergesi> şeklindedir ve eğer bu yönergenin -alt -bir bloğu varsa bunun içinde diğer bir :: ekleyip ardından alt yönergenin -ismini -ekleyebilirsiniz.

      -

      Yönerge ismi belirtilmeden gösterim şekli ise -<blok-ismi>:: şeklindedir, bu bir <blok-değeri>'de olabilir, -veya -alt bloklardan herhangi birini de belirtebilir.

      -

      Açıklama yaparken desteklenen 3 tip vardır:

      -

      # 1 satırlık açıklama
      // 1 -satırlık açıklama
      /* 1 veya daha fazla -
          satırlık açıklama */

      -

      Şimdi konfigürasyon dosyasının nasıl işlediğini -biliyorsunuz, doc/example.conf dosyasını UnrealIRCd -'in bulunduğu klasöre (ör: /home/user/Unreal3.2) kopyalayın ve -unrealircd.conf olarak yeniden isimlendirin. -Konfigürasyon dosyanızı oluşturmak için bütün blok tipleri ve ayarlamalar -için -adım adım ilerlemeniz ve bu klavuzu referans almanız önerilir.

      -

      -

      4.2 - -Me Bloğu GEREKLİ (Önceden bilinen -M:Line) -

      -

      -

      Kullanımı:

      me {
      -	name <sunucu-ismi>;
      -	info <sunucu-için-açıklama>;
      -	numeric <sunucu-numerik-değeri>;
      -};
      -
      -

      -

      Bu değerler çok açıktır. name ile sunucu ismi belirtilir, -info ile sunucu için bir açıklama belirtilir, numeric ile ise -sunucuyu tanıtan sayısal bir değer -belirtilir. Bu değer 0 ile 254 arasında olmak zorundadır ve burda belirtilen -sayısal değere ağda ki diğer hiçbir sunucu sahip olamaz.

      -

      Örnek:

      me {
      -	name "irc.foonet.com";
      -	info "FooNet Server";
      -	numeric 1;
      -};
      -
      -

      -

      -

      4.3 - -Admin Bloğu GEREKLİ (Önceden bilinen -A:Line) -

      -

      -

      Kullanımı:

      admin {
      -	<metin>;
      -	<metin>;
      -};
      -
      -

      -

      -

      Admin bloğu /admin sorgusunda görüntülenecek metni -belirler. Burada ki satırları istediğiniz oranda çoğaltabilirsiniz ve bu -satırlar istediğiniz bilgiyi içerebilir, ancak genel olarak minimum admin -nicki -ile email adresi girilir. Diğer bilgiler ise yazmak istediğiniz herhangi -diğer -bir iletişim bilgileri de olabilir.

      -

      Örnek:

      admin {
      -	"Bob Smith";
      -	"bob";
      -	"widely@used.name";
      -};
      -
      -

      -

      -

      4.4 - -Class Bloğu GEREKLI (Önceden bilinen -Y:Line) -

      -

      -

      Kullanımı:

      class <isim> {
      -	pingfreq <ping-frekansı>;
      -	connfreq <bağlantı-frekansı>;
      -	maxclients <maximum-istemci>;
      -	sendq <send-queue>;
      -	recvq <recv-queue>;
      -};
      -
      -

      -

      -

      Class blokları bağlantıların yerleştirileceği sınıfları -belirler (örneğin allow bloğuyla gelen bağlantılar veya link bloğuyla gelen -sunucu bağlantıları gibi.), genel olarak çoklu class blokları -kullanılır.(ör: -sunucular için, kullanıcılar, operler için).

      -

      name "clients" veya -"servers" gibi bir tanımlayıcı isimdir, bu isim bu sınıfı -allow/link/oper/vs. -bloklarıyla ilişkilendirmek için kullanılır

      -

      pingfreq sunucudan gelen -PING'ler arasında ki saniye olarak süredir.(90 ile 180 arasında ki bir değer -önerilir.)

      -

      connfreq sunucular için -kullanılır ve eğer otomatik bağlantı aktif ise bağlantı denemeleri arasında -ki -saniye olarak süredir

      -

      maxclients bu sınıfta -maksimum (toplamda) kaç istemci/sunucu sayısı olabileceğini belirler

      -

      sendq gönderim dizisi içinde -ne kadar miktarda veri olabileceğini belirtir. (düşük bant genişlikli -sunucular -için çok yüksektir, istemciler (clients) için ise orta bir değerdir.)

      -

      recvq alınan veri dizisinde -ne kadar miktarda veri olabileceğini belirler ve bu flood kontrolu için -kullanılır. (bu değer sadece normal kullanıcılara uygulanır, 3000-8000 -arasında -bir değeri deneyebilirsiniz, default değer 8000'dir.).

      -

      Örnekler:

      class clients {
      -	pingfreq 90;
      -	maxclients 500;
      -	sendq 100000;
      -	recvq 8000;
      -};
      -
      -class servers{
      -	pingfreq 90;
      -	maxclients 10; /* Bir kerede linkleyebileceğimiz max sunucu sayısı */
      -	sendq 1000000;
      -	connfreq 100; /* herbir bağlantı girişimi arasında ki saniye olarak süre */
      -};
      -
      -

      -

      -

      4.5 - -Allow Bloğu GEREKLİ (Önceden bilinen -I:Line) -

      -

      -

      Kullanımı:

      allow {
      -	ip <kullanıcı@ip-bağlantı-maskesi>;
      -	hostname <kullanıcı@host-bağlantı-maskesi>;
      -	class <bağlantı-sınıfı>;
      -	password <bağlantı-şifresi> { <auth-tipi>; };
      -	maxperip <ip-başına-max-bağlantı>;
      -	redirect-server <yönlendirilecek-sunucu>;
      -	redirect-port <yönlendirilecek-port>;
      -	options {
      -		<tercih>;
      -		<tercih>;
      -		...
      -	};
      -};
      -
      -

      -

      Allow bloğu ile sunucunuza kimlerin bağlanabileceğini -belirtebilirsiniz, bir veya daha fazla allow bloğunuz olabilir.

      -

      Eşleşme hakkında
      Giriş kontrolu ip eşleşmeleri veya host -eşlemeleri ile -yapılır. Yani "hostname *@*" ;ve "ip *@1.2.3.4" ise bu herzaman -eşleşecektir. -Aynı zamanda allow blokları yukarıdan aşağıya doğru okunarak -değerlendirilir, bu -nedenle genel *@* allow bloklarından sonra açık host/ip 'ler -belirtmelisiniz. Ek -olarak sadece IP tabanlı eşleşme yapmasını istediğiniz bir blok oluşturmak -isterseniz, hostname kısmına geçersiz herhangi birşey belirtin, "hostname -NOBODY;" gibi, bu bloğun sadece IP tabanlı eşleşme yapmasına olanak -sağlayacaktır.

      -

      ip
      IP maskesi kullanıcı@ip formundadır, kullanıcı kısmı burada -idente karşılık gelir ve genellikle * olarak belirtilir, ip ise ip -kalıbıdır. -Birkaç örnek: *@* (herhangi bi yerden), *@192.168.* (sadece ip adresi -192.168 -ile başlayanlar), vs..

      -

      host
      yine hostmaskesi kullanıcı@host formundadır. kullanıcı -kısmı genelde * olarak belirtilir. Birkaç örnek: *@* (heryerden), -*@*.wanadoo.fr -(sadece wanadu.fr 'den).

      -

      password (isteğe bağlı)
      eğer belirtilirse bağlanabilmek için -şifre gerekir. Aynı -zamanda burada yeniden şifreleme metodu ile oluşturdugunuz bir şifre de -belirtebilirsiniz.

      -

      class
      Bu allow bloğunu kullanan bağlantıların yerleştirileceği -sınıfı belirtir.

      -

      maxperip (isteğe bağlı, -ancak önerilir)
      Sunucu için IP başına nekadar bağlantıya -izin verileceğini belirtir.(ör: maxperip 4;).

      -

      redirect-server (isteğe -bağlı)
      Eğer belirtilen sınıf full ise, kullanıcılar -burada belirtilen sunucuya yönlendirilirler.(eğer istemci yazılımı da -destekliyorsa [mIRC 6 destekliyor]).

      -

      redirect-port (isteğe -bağlı)
      Eğer redirect-server belirtilmişse bu kısma portu -belirtebilirsiniz, aksi takdirde 6667 olarak varsayılacaktır

      -

      options bloğu (isteğe -bağlı)
      Geçerli tercihler:
         useip -hostname yerine herzaman IP görüntülenir
         noident -ident -kullanılmaz fakat client'in belirlediği username -kullanılır
         ssl sadece -SSL ile bağlanan istemciler -bağlanabilir
         nopasscont -eğer şifre belirtilmemişse eşleşme devam eder. -

      Örnekler:

      allow {
      -	ip *;
      -	hostname *;
      -	class clients;
      -	maxperip 5;
      -};
      -
      -allow {
      -	ip *@*;
      -	hostname *@*.passworded.ugly.people;
      -	class clients;
      -	password "f00Ness";
      -	maxperip 1;
      -};
      -
      -

      -

       

      -

      4.6 - -Listen Bloğu GEREKLI (Önceden bilinen -P:Line) -

      -

      -

      Kullanımı:

      listen <ip:port> {
      -	options {
      -		<tercih>;
      -		<tercih>;
      -		...
      -	};
      -};
      -
      -

      -

      -

      Bu blok IRCD'in hangi portları dinleyeceğini -belirtmenizi sağlar. Eğer seçilmesi gereken hiçbir seçenek yoksa, bu bloğu -sadece listen <ip:port>; şeklinde belirtebilirsiniz.

      -

      ip and port
      Kullanılabilir bütün IP'lere bağlanmak için IP -kısmını * -olarak belirtebilirsiniz, veya bağlanılacak tek IP -belirtebilirsiniz.(çoğunlukla -shell sağlayıcıları için gerekir). Belirtilecek port ise dinlemek -istediğiniz -porttur. Tek port yerine belirli port aralıklarını da belirtebilirsiniz. -Örneğin -6660-6669 şeklinde belirttiğiniz zaman 6660 dan 6669 (dahil) 'a kadar bütün -portları belirtmiş olursunuz. IPv6 kullanıcıları için aşağıda açıklama -yapılmıştır.

      -

      IPv6 kullanıcıları için -bilgi
      Eğer IPv6 desteği açık bir sunucunuz varsa -IP'yi parantez ifadesi içinde belirtmelisiniz. [::1]:6667 gibi. Eğer IPv6 -kullanıyorsanız ve belirli bir IPv4 adresini dinlemek istiyorsanız -::ffff:ipv4ip -şeklinde belirtme yapmalısınız. Örnek: [::ffff:203.123.67.1]:6667 ile -203.123.67.1 IP'sini 6667 portu üzerinden dinlemek için. Elbette burada -sadece * -da belirtebilirsiniz.

      -

      options bloğu (isteğe -bağlı)
      Kullanılacak port için özel tercihler de -belirtebilirsiniz, geçerli tercihler:
      - - - - - - - - - - - - - -
      -
      clientsonly
      sadece istemciler için
      -
      serversonly
      sadece sunucular için
      -
      java
      CR javachat desteği
      -
      ssl
      SSL kullanan bağlantılar -için

      -

      Örnekler:

      listen *:6601 {
      -	options {
      -		ssl;
      -		clientsonly;
      -	};
      -};
      -
      -
      -

      -

      Veya tercih belirtilmemiş şekil:

      -

      listen *:8067;
      listen -213.12.31.126:6667;
      listen *:6660-6669;

      -

      4.7 - -Oper Bloğu ÖNERİLİR (Önceden bilinen O:Line) -

      -

      -

      oper <isim> {
      -	from {
      -		userhost <hostmaskesi>;
      -		userhost <hostmaskesi>;
      -	};
      -	password <şifre> { <auth-tipi>; };
      -	class <class-ismi>;
      -	flags <flaglar>;
      -	flags {
      -		<flag>;
      -		<flag>;
      -		...
      -	};
      -	swhois <whois bilgisi>;
      -	snomask <snomask>;
      -	modes <modlar>;
      -	maxlogins <num>;
      -};
      -
      -

      -

      Oper bloğu IRC Operatörleri atamanızı sağlar. oper:: kısmı /oper -kullanımında ki login ismini -belirtir. oper::from::userhost kısmı ile -belirtilecek kullanıcı@host maskesi kullanıcının eşleşeceği maskedir, burada -birden çok oper::from::userhost belirtebilirsiniz. oper::password -kısmında belirttiğiniz şifre ise -kullanıcının belirteceği şifredir, oper::password:: kısmında ise bu şifre -için -bir auth metodu belirtebilirsiniz, kullanılan auth tipleri: crypt, md5 ve -sha1, -ripemd-160. Eğer düz-metin bir şifre kullanmak istiyorsanız bu alt bloğu -kullanmayın.

      -

      Lütfen login ismi kısmının ve şifre kısmının büyük-küçük -harfe duyarlı olduğunu unutmayın

      -

      oper::class yönergesinde ise -oper bloğunun kullanacağı daha önceden anlatılmış olan class ismi -belirtilir.

      -

      oper::flags yönergesinin iki -formatı vardır. Eğer eski stil oper flaglarını kullanmak istiyorsanız, -örneğin; -OAa, bunu flags <flags>metodu ile belirtebilirsiniz, eğer yeni stili -kullanmak istiyorsanız, örneğin; services-admin, bunu flags { <flag>; -} -metodu ile belirtebilirsiniz. Aşağıda (her iki format için) flaglar ve -işlevleri -listelenmiştir.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      Eski - Flag
      -
      Yeni - Flag
      Açıklama
      -
      o
      -
      local
      Sizi local operator yapar
      -
      O
      -
      global
      Sizi global operator yapar
      -
      C
      -
      coadmin
      Sizi coadmin yapar
      -
      A
      -
      admin
      Sizi admin yapar
      -
      a
      -
      services-admin
      Sizi servisler admini yapar
      -
      N
      -
      netadmin
      Sizi ağ admini yapar
      -
      r
      -
      can_rehash
      /rehash komutunu kullanabilme yetkisi verir
      -
      D
      -
      can_die
      /die komutunu kullanabilme yetkisi verir
      -
      R
      -
      can_restart
      /restart komutunu kullanabilme yetkisi -verir
      -
      h
      -
      helpop
      Opere +h (helpop) kullanıcı modunu verir
      -
      w
      -
      can_wallops
      /wallops ile mesaj gönderebilme yetkisi - verir
      -
      g
      -
      can_globops
      /globops ile mesaj gönderebilme yetkisi - verir
      -
      c
      -
      can_localroute
      Yerel /SQUIT ve /CONNECT komutlarını kullanabilme - yetkisi verir
      -
      L
      -
      can_globalroute
      Global /SQUIT ve /CONNECT komutlarını - kullanabilme yetkisi verir
      -
      k
      -
      can_localkill
      Yerel /kill komutu kullanabilme yetkisi - verir
      -
      K
      -
      can_globalkill
      Global /kill komutu kullanabilme yetkisi - verir
      -
      b
      -
      can_kline
      /kline komutunu kullanabilme yetkisi verir
      -
      B
      -
      can_unkline
      /kline -u@h komutunu kullanabilme yetkisi - verir(kline silme yetkisi)
      -
      n
      -
      can_localnotice
      Yerel sunucu noticeleri gönderebilme yetkisi - verir
      -
      G
      -
      can_globalnotice
      Global sunucu noticeleri gönderebilme yetkisi - verir
      -
      z
      -
      can_zline
      /zline komutunu kullanabilme yetkisi verir
      -
      t
      -
      can_gkline
      /gline, /shun ve /spamfilter komutlarını - kullanabilme yetkisi verir
      -
      Z
      -
      can_gzline
      /gzline komutunu kullanabilme yetkisi verir
      -
      W
      -
      get_umodew
      Oper açtığında kullanıcının +W modunu almasını - sağlar
      -
      H
      -
      get_host
      Oper açtığında kullanıcının oper hostu almasını - sağlar
      -
      v
      -
      can_override
      OperOverride kullanabilme yetkisi verir
      -
      q
      -
      can_setq
      +q kullanıcı modunu kullanabilme yetkisi - verir
      -
      X
      -
      can_addline
      /addline komutunu kullanabilme yetkisi -verir
      -
      d
      -
      can_dccdeny
      /dccdeny ve /undccdeny komutlarını kullanabilme - yetkisi verir
      -

      Belirli flaglar default olarak diğer flagları da -verir:

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      localglobaladmin/coadminservices-adminnetadmin
      can_rehashcan_rehashcan_rehashcan_rehashcan_rehash
      helpophelpophelpophelpophelpop
      can_globopscan_globopscan_globopscan_globopscan_globops
      can_wallopscan_wallopscan_wallopscan_wallopscan_wallops
      can_localroutecan_localroutecan_localroutecan_localroutecan_localroute
      can_localkillcan_localkillcan_localkillcan_localkillcan_localkill
      can_klinecan_klinecan_klinecan_klinecan_kline
      can_unklinecan_unklinecan_unklinecan_unklinecan_unkline
      can_localnoticecan_localnoticecan_localnoticecan_localnoticecan_localnotice
       can_globalroutecan_globalroutecan_globalroutecan_globalroute
       can_globalkillcan_globalkillcan_globalkillcan_globalkill
       can_globalnoticecan_globalnoticecan_globalnoticecan_globalnotice
        globalglobalglobal
        can_dccdenycan_dccdenycan_dccdeny
         can_setqcan_setq
          admin
          services-admin
      -

      oper::swhois yönergesi oper -whois bilgisine ekstra bir satır eklemenize olanak sağlar. [isteğe bağlı]

      -

      oper::snomask yönergesi ise -oper açıldığında hangi snomaskların alınacağını belirlemenizi sağlar. -Kullanılabilir SNOMASKlar için Bölüm 3.3'e bakın. [isteğe -bağlı]

      -

      oper::modes yönergesi ise -oper açıldığında alınacak modları belirlemenizi sağlar. [isteğe bağlı]

      -

      oper::maxlogins yönergesi -ise belirtilen hosttan max kaç oper logini olabileceğini belirlemenizi -sağlar. -Örneğin bunu 1 olarak belirtmişseniz belirttiğiniz hosttan sadece tek bir -kullanıcı oper açabilir. [isteğe -bağlı]

      -

      Örnek:

      oper bobsmith {
      -	class clients;
      -	from {
      -		userhost bob@smithco.com;
      -		userhost boblaptop@somedialupisp.com;
      -	};
      -	password "f00";
      -	flags {
      -		netadmin;
      -		can_gkline;
      -		can_gzline;
      -		can_zline;
      -		can_restart;
      -		can_die;
      -		global;
      -	};
      -	swhois "Example of a whois mask";
      -	snomask frebWqFv;
      -};
      -
      -

      OperOverride hakkında kısa bir -bilgilendirme:
      OperOverride ile: +ikl modlarında olan kanallara -girebilirsiniz veya banları yok sayıp kanallara giriş yapabilirsiniz (ilk -önce -/invite komutuyla kendinizi davet etmeniz gerekir), bir kanalda kendinizi op -yapabilirsiniz vs.
      can_override oper flagı, oper -yetkisini kötüye kullanma girişimlerinin önüne geçmek için eklenmiştir. -Default -ayarı olarak can_override flagını eklemedikçe, hiç bir oper override yapma -yetkisine sahip değildir. -

      -

      4.8 - -DRpass Bloğu ÖNERİLİR (Önceden bilinen X:Line) -

      -

      -

      Kullanımı:

      drpass {
      -	restart <restart-şifresi> { <auth-tipi>; };
      -	die <die-şifresi> { <auth-tipi>; };
      -};
      -

      -

      Bu blok ile /restart ve /die şifrelerini drpass::restart -ve drpass::die yönergeleriyle belirtebilirsiniz. drpass::restart:: ve -drpass::die:: kısımları bu şifreler için auth tipini belirtmenize olanak -verir. -Geçerli auth tipleri: crypt, md5 ve sha1, ripemd-160.

      -

      Örnek:

      drpass {
      -	restart "I-love-to-restart";
      -	die "die-you-stupid";
      -};
      -
      -

      -

      -

      4.9 - -Include Yönergesi -

      -

      -

      Kullanımı:
      include -<dosya-ismi>;

      -

      Bu yönergeyle yüklenecek ayrı bir konfigürasyon dosyası -belirtebilirsiniz. Bu dosya konfigürasyon bloklarından herhangi birini -içerebilir veya diğer herhangi bir dosya da olabilir. Dosya isminde birçok -dosyayı tek seferde yükleyebilmek için (?) (*) (!) işaretlerinin kullanımı -desteklenmektedir.

      -

      örnek 1: bir network (ağ) -dosyası

      include mynetwork.network;
      -

      -

      Ayrı bir network dosyası kullanmak istiyorsanız bu -şekilde belirtebilirsiniz. Network dosyası artık gerekli değildir; bütün -network -ayarları direkt olarak unrealircd.conf'ta belirtilebilmektedir. Veya bu -ayarları -include ifadesi ile belirttiğiniz, yüklenecek dosya içinde de -belirtebilirsiniz.

      -

      örnek 2: aliases

      include aliases/ircservices.conf
      -

      -

      Bu yönergeye diğer bir örnek ise alias bloklarını içeren -dosyaların belirtilmesi örneğidir, UnrealIRCd bir çok servis ile uyumlu olan -aliaslar içerir:
      -

        -
      • aliases/ircservices.conf (IRCServices, Daylight) -
      • aliases/epona.conf (Epona) -
      • aliases/anope.conf (Anope) -
      • aliases/auspice.conf (Auspice) -
      • aliases/generic.conf (Magick, Sirius, Wrecked) -
      • aliases/cygnus.conf (Cygnus) -
      • aliases/operstats.conf (OperStats) -
      • aliases/genericstats.conf (GeoStats, NeoStats) -
      -

      -

      -

      4.10 - -LoadModule Yönergesi -GEREKLİ -

      -

      -

      Kullanımı:
      loadmodule -<dosya-ismi>;

      -

      Modüllerin neden kullanışlı olduklarını öğrenmek için buraya tıklayın.

      -

      Unreal3.2 ile birlikte gelen standart modüller:

      -

      commands.so / commands.dll - Bütün komutlar (henüz hepsi -değil, ama sonuç olarak hepsi olacak GEREKLİ
      cloak.so / cloak.dll -- Gizleme modülü GEREKLİ (veya -herhangi bir gizleme modülü)

      -

      Bu modüllerin yüklendiğinden emin olmanız gerekir:

      loadmodule 
      -"src/modules/commands.so";
      -loadmodule "src/modules/cloak.so";
      -
      -

      veya windows için:

      loadmodule "modules/commands.dll";
      -loadmodule "modules/cloak.dll";
      -
      -

      4.11 - -Log Bloğu ÖNERİLİR -

      -

      -

      Kullanımı:

      log <dosya-ismi> {
      -	maxsize <max-dosya-boyutu>;
      -	flags {
      -		<flag>;
      -		<flag>;
      -		...
      -	};
      -};
      -
      -

      -

      Log bloğu farklı amaçlar için farklı kayıt dosyaları -tahsis etmenize olanak sağlar. log:: kayıt -dosyasının ismini içerir. log::maxsize ise isteğe -bağlı bir yönergedir, dosya bu yönergede belirtilen boyuta ulaştığında -temizlenir ve dosyaya yeniden yazım başlar. Buraya belirteceğiniz değerde -megabyte için MB, kilobyte için KB, gigabyte için GB şeklinde kullanım -yapabilirsiniz. log::flags ile ne tür bilginin -kaydedileceğini belirtebilirsiniz. Aşağıda geçerli mevcut flagların listesi -verilmiştir.

      -

      Aynı zamanda farklı şeyleri farklı kayıt dosyalarında -tutmak için birden fazla log bloğu oluşturabilirsiniz.

      -

      Mevcut Flaglar:
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      errorsself explanatory
      kills/kill noticelerini kaydeder
      tkl*line, shun ve spamfilter - (ekleme/kaldırma/zamanaşımı) bilgilerini kaydeder
      connectskullanıcı giriş/çıkışlarını kaydeder
      server-connectssunucu bağlantılarını/çıkışlarını kaydeder
      kline/kline komutunun kullanımlarını kaydeder
      operoper açma denemelerini kaydeder (hem başarılı - olanları hem de başarısız olanları)
      sadmin-commands/sa* (samode, sajoin, sapart, vs.) komutlarının - kullanımlarını kaydeder
      chg-commands/chg* (chghost, chgname, chgident, vs.) - komutlarının kullanımlarını kaydeder
      oper-overrideoperoverride kullanımlarını kaydeder
      spamfilterspamfilter eşleşmelerini -kaydeder

      -

      Örnek:

      log ircd.log {
      -	maxsize 5MB;
      -	flags {
      -		errors;
      -		kills;
      -		oper;
      -		kline;
      -		tkl;
      -	};
      -};
      -
      -

      -

      -

      4.12 - -TLD Bloğu İSTEĞE BAĞLI (Önceden bilinen T:Line) -

      -

      -

      Kullanımı:

      tld {
      -	mask <hostmaskesi>;
      -	motd <motd-dosyası>;
      -	rules <kurallar-dosyası>;
      -	shortmotd <kısamotd-dosyası>;
      -	opermotd <opermotd-dosyası>;
      -	botmotd <botmotd-dosyası>;
      -	channel <kanal-ismi>;
      -	options {
      -		ssl;
      -	}
      -};
      -

      -

      Tld bloğu kullanıcıların hostuna göre, kullanıcılara, -belirli bir motd dosyası, kurallar dosyası veya kanal ataması yapmanızı -sağlar. -Farklı diller için farklı motdler istiyorsanız, tld bloğu kullanışlıdır. -tld::mask ile belirttiğiniz kullanıcı@host maskesi -kullanıcının kullanıcı adı(username) ve host (hostname) kısmıyla -uyuşmalıdır. -Belirttiğiniz hostmaskesine görüntülenecek motd, kısamotd, opermotd, botmotd -ve -kurallar dosyalarını sırasıyla tld::motd, tld::shortmotd, -tld::opermotd, tld::botmotd, and tld::rules -kısımlarında belirleyebilirsiniz. -tld::shortmotd, tld::opermotd ve tld::botmotd kısımları isteğe bağlıdır. -tld::channel kısmı da isteğe bağlıdır, bu belirtilen -hostmaskesine sahip kullanıcıların bağlandıkları anda girecekleri kanalı -belirler. Eğer bu belirtilirse default oto giriş kanalı, belirtilen -hostmaskesinde ki kullanıcılar için geçerli olmayacaktır. -tld::options bloğu ise ek olarak seçenek belirtmenizi -sağlar, şu an için tek mevcut seçenek ssl seçeneğidir.

      -

      TLD girişleri eşleşmesi yukarıdan aşağıya doğrudur.

      -

      Örnek:

      tld {
      -	mask *@*.fr;
      -	motd "ircd.motd.fr";
      -	rules "ircd.rules.fr";
      -};
      -

      -

      -

      4.13 - -Ban Nick Bloğu İSTEĞE BAĞLI (Önceden bilinen Q:Line) -

      -

      -

      Kullanımı:

      ban nick {
      - mask <nick>; - reason <yasaklama-için-sebep>; -};
      -

      -

      Ban nick bloğu bir nickin sunucuda kullanımını -yasaklamanıza olanak sağlar. ban::mask kısmında birden çok nick -belirtilebilmesi -için (*), (!), (?) işaretleri kullanılabilir ve ban::reason kısmında ise bu -yasaklama için gerekçe belirtilir. Çoğunlukla bu bloklar Network -Servislerinin -kullandığı nicklerin kullanımını yasaklamak için kullanılır.

      -

      Example:

      ban nick {
      -	mask "*C*h*a*n*S*e*r*v*";
      -	reason "Reserved for Services";
      -};
      -

      -

      -

      4.14 - -Ban User Bloğu İSTEĞE BAĞLI (Önceden bilinen K:Line) -

      -

      -

      Kullanımı:

      ban user {
      -	mask <hostmaskesi>;
      -	reason <ban-için-sebep>;
      -};
      -

      -

      Bu blok belirtilen kullanıcı@host hostmaskesine sahip -kullanıcıların sunucuya girişlerini engellemek için kullanılır. ban::mask -kısmında belirtilecek kullanıcı@host maskesinde (?), (*), (!) işaretleri -kullanılabilir, ve ban::reason kısmında ise ban için sebep belirtilir. Not, -burada atılacak ban yerel bir bandır, kullanıcı ağdaki diğer bir sunucuya -bağlantı sağlayabilir.

      -

      Örnek:

      ban user {
      -	mask *tirc@*.saturn.bbn.com;
      -	reason "Idiot";
      -};
      -

      -

      -

      4.15 - -Ban IP Bloğu İSTEĞE BAĞLI (Önceden bilinen Z:Line) -

      -

      -

      Kullanımı:

      ban ip {
      -	mask <ipmaskesi>;
      -	reason <ban-için-sebep>;
      -};
      -

      -

      Ban ip bloğu belirtilen ip maskesinin sunucuya erişimini -yasaklamak için kullanılır. Bu bağlantı deneyen kullanıcıları ve sunucuları -da -içerir. ban::mask parametresi (?), (*), (!) işaretlerini de içerebilecek bir -IP'dir, ban::reason kısmında ise ban gerekçesi belirtilir. Bu ban sunucuları -da -kapsadığından çok dikkatli kullanılmalıdır.

      -

      Örnek:

      ban ip {
      -	mask 192.168.1.*;
      -	reason "Get a real ip u lamer!";
      -};
      -

      -

      -

      4.16 - -Ban Server Bloğu İSTEĞE BAĞLI (Önceden bilinen q:Line) -

      -

      -

      Kullanımı:

      ban server {
      -	mask <sunucu-ismi>;
      -	reason <ban-için-sebep>;
      -};
      -

      -

      Bu blok belirtilen sunucunun ağa bağlantısını engellemek -için kullanılır. Eğer belirtilen sunucu direkt olarak sunucunuza -linklenirse, -link reddedilir. Eğer belirtilen sunucu uzak sunucuya linklenirse, yerel -sunucunun ağdan bağlantısı kesilir. ban::mask kısmında bağlantısı -engellenecek -sunucu ismi belirtilir, burada (?), (*), (!) işaretleri kullanılabilir ve -ban::reason kısmında ise bu engelleme için gerekçe belirtilir.

      -

      Örnek:

      ban server {
      -	mask broken.server.my.network.com;
      -	reason "Its broken!";
      -};
      -

      -

      -

      4.17 - -Ban RealName Bloğu -İSTEĞE BAĞLI (Önceden bilinen n:Line) -

      -

      -

      Kullanımı:

      ban realname {
      -	mask <realname-maskesi>;
      -	reason <ban-için-sebep>;
      -};
      -

      -

      Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas -alınarak, banlamanıza olanak sağlar. Bu clone saldırılarını durdurmada -yardımcı -olacaktır, çünkü çoğunlukla saldırılarda ki clone botlar aynı realname 'e -sahiptir. ban::mask kısmında banlanacak realname belirtilir. Bu kısımda (*), -(?), (!) işaretleri kullanılabilir. ban::reason kısmında ise ban gerekçesi -belirtilir.

      -

      Örnek:

      ban realname {
      -	mask "Bob*";
      -	reason "Bob sucks!";
      -};
      -

      -

      -

      4.18 - -Ban Version Bloğu -İSTEĞE BAĞLI -

      -

      -

      Kullanımı:

      ban version {
      -	mask <versiyon-maskesi>;
      -	reason <ban-için-sebep>;
      -	action [kill|tempshun|shun|kline|zline|gline|gzline];
      -};
      -

      -

      Ban version bloğu bir kullanıcıya, kullandığı IRC client -yazılımı esas alınarak, ban atmanıza olanak verir. Bu, kullanıcıların CTCP -version 'a karşı verdikleri cevap kullanılarak yapılır. Bu yüzden eğer -kullanıcı -CTCP version'a cevap vermezse ban işlevi geçerli olmayacaktır. Bu özellik -kötü -niyetli scriptleri bloke etmek için tasarlanmıştır. ban::mask -kısmında banlanacak versiyon belirtilir. Bu -kısımda (?), (*), (!) işaretleri kullanılabilir. ban::reason kısmında -ise ban gerekçesi belirtilir. Aynı -zamanda ban::action kısmında, kill default değeri olmak üzere, -tempshun/shun/kline/zline/gline/gzline eylemlerini de, -(*@IPADDR) şeklinde uygulanmak üzere belirtebilirsiniz. Burada atılacak -banın -süresi set::ban-version-tkl-time kısmında belirtilen değerdir ve default -değeri -1 gündür.

      -

      Örnek:

      ban version {
      -	mask "*SomeLameScript*";
      -	reason "SomeLameScript contains backdoors";
      -};
      ban version {
      -	mask "*w00tZombie*";
      -	reason "I hate those hundreds of zombies";
      -	action zline;
      -};
      -

      -

      -

      4.19 - -Ban Exceptions Bloğu -İSTEĞE BAĞLI (Önceden bilinen E:Line) -

      -

      -

      Kullanımı:

      except ban {
      -	mask <hostmaskesi>;
      -};
      -

      -

      Except ban bloğu, ban atılsa dahi, atılan ban -kaldırılmaksızın sunucuya giriş yapabilecek kullanıcı@host 'ları -belirtmenizi -sağlar. Belirli bir ISP için bütün ip'lere ban atmak istediğinizde bu -özellik -yararlı olacaktır, çünkü o ISP üzerinden bağlantı sağlayan, sunucuya -girebilmelerini istediğiniz kullanıcıların bu blok ile sunucuya girişleri -mümkün -olacaktır. except::mask yönergesi ile sunucuya bu şekilde girmelerine izin -verilecek kullanıcıların maskelerini kullanıcı@host şeklinde -belirtebilirsiniz.

      -

      Örnek:

      except ban {
      -	mask myident@my.isp.com;
      -};
      -

      -

      -

      4.20 - -TKL Exceptions Bloğu -İSTEĞE BAĞLI -

      -

      -

      Kullanımı:

      except tkl {
      -	mask <hostmaskesi>;
      -	type <tip>;
      -	type {
      -		<tip>;
      -		<tip>;
      -		...
      -	};
      -};
      -

      -

      Except tkl bloğu , belirtilen tip(ler)de atılan bir ban -kaldırılmaksızın, sunucuya giriş yapabilecek kullanıcı@host 'ları -belirtmenizi -sağlar. Eğer belirli bir ISP için bütün IPlere ban atmak istiyorsanız ve -hala bu -ISP üzerinden belirli kullanıcıların girebilmesini istiyorsanız bu blokla -bunu -mümkün kılabilirsiniz. except::mask yönergesi ile bağlantısına izin -verilecek -kullanıcı@host maskesi belirtilir. except::type yönergesi ile hangi bandan -etkilenilmeyeceği belirtilir. Geçerli tipler: gline, gzline, qline, gqline, -ve -shun, eğer type {} formatı kullanılırsa birden fazla tip belirtilebilir.

      -

      Örnek:

      except tkl {
      -	mask myident@my.isp.com;
      -	type gline;
      -};
      -

      -

      -

      4.21 - -Throttle Exceptions -Bloğu İSTEĞE BAĞLI -

      -
      -

      Kullanımı:

      except throttle {
      -	mask <ipmaskesi>;
      -};
      -

      -

      Except throttle bloğu ile throttling sisteminden -etkilenmiyecek IP maskelerini belirtebilirsiniz. Bu blok ancak throttling -özelliğini aktif ederseniz işlem görecektir. except::mask yönergesi ile bu -sistemden etkilenmeyecek IP maskesi belirtilir.

      -

      Örnek

      except throttle {
      -	mask 192.168.1.*;
      -};
      -

      -

      -

      4.22 - -Deny DCC Bloğu İSTEĞE BAĞLI (Önceden bilinen dccdeny.conf)

      -
      -

      Kullanımı:

      deny dcc {
      -	filename <bloke-edilecek-dosya-ismi>;
      -	reason <bloke-için-gerekçe>;
      -	soft [yes|no];
      -};
      -

      -

      Deny dcc bloğu sunucu üzerinden DCC yoluyla -gönderilmesine izin verilmeyecek dosya isimlerini belirtmenize olanak -sağlar. Bu -trojanların ve virüslerin yayılmasını engellemeye yardımcı olacaktır.

      -

      deny::filename yönergesi ile -gönderimine izin verilmeyecek dosya ismi belirtilir, burada (?), (*), (!) -işaretleri kullanılabilir, deny::reason yönergesi -ile gönderimi bloklama gerekçesi belirtilir.

      -

      Aynı zamanda birde deny::soft seçeneği vardır, eğer bu yönerge -değeri -'yes' olarak belirtilirse karşı taraf dosyayı /DCCALLOW -+göndermeyi-deneyen-nick -komutuyla alabilir. Daha fazla bilgi için dccallow.conf dosyasına göz -atın.

      -

      Örnek

      deny dcc {
      -	filename virus.exe;
      -	reason "This is a GD Virus";
      -};
      -
      -deny dcc {
      -	filename "*.exe";
      -	reason "Executable content";
      -	soft yes;
      -};
      -

      -

      -

      4.23 - -Deny Version Bloğu -İSTEĞE BAĞLI (Önceden bilinen V:Line) -

      -

      -

      Kullanımı:

      deny version {
      -	mask <sunucu-ismi>;
      -	version <versiyon-numarası>;
      -	flags <derleme-flagları>;
      -};
      -

      -

      Bu blok, bir sunucudan gelecek linki, sunucunun -kulandığı Unreal versiyonuna ve derleme zamanı flag seçeneklerine göre -reddetmenize olanak sağlar. Bu blok format olarak biraz kompleks bir yapıya -sahiptir ama düzenlemesi o kadar zor değildir. deny::mask yönergesi ile -linki, -kullandığı unreal versiyonu sebebiyle reddedilecek sunucu maskesi -belirtilir, -burada (?), (*), (!) işaretleri kullanılabilir. deny::version yönergesi ile -sözü -edilen unreal versiyonunun protokol numarası belirtilir.

      -

      Örneğin, 3.0 versiyonu için bu numara 2301, 3.1.1/3.1.2 -için 2302, 3.2 için 2303 olarak belirtilebilir. Bu parametrenin ilk -karakteri -olarak >, <, =, ! işaretleri belirtilebilir. Bu karakterle IRCd'e, -belirtilecek versiyonu nasıl yorumlağacağı bildirilir. Eğer ilk karakter -olarak -> işareti belirtilmişse, versiyon numarası belirtilen versiyondan büyük -olan -bütün versiyonların linki reddedilecektir. Eğer ilk karakter olarak < -işareti -belirtilmişse, versiyon numarası belirtilen versiyondan küçük olan bütün -versiyonların linki reddedilecektir. Eğer ilk karakter olarak = işareti -belirtilmişse sadece o versiyonun linki reddedilecektir, ve eğer ! işareti -belirtilmişse ilk karakter olarak, belirtilen versiyon haricinde ki bütün -versiyonların linki reddedilecektir. deny::flags yönergesi ile sunucunun -olabilecek veya olamayacak derleme zamanı flagları belirtilir. Flaglar -aralarında boşluk olmadan ardarda belirtilir, eğer başında ! karakteri -belirtilirse, belirtilen flaglar haricindeki flaglara sahip versiyonların -linki -reddedilecektir. Eğer ! işareti yoksa sadece belirtilen flaglarla derlenmiş -versiyona sahip sunucuların linki reddedilecektir.

      -

      -

      4.24 - -Deny Link Bloğu İSTEĞE BAĞLI (Önceden bilinen D/d:Line) -

      -

      -

      Kullanımı:

      deny link {
      -	mask <sunucu-ismi>;
      -	rule <ifade>;
      -	type <reddetme-tipi>;
      -};
      -

      -

      Bu blok bir sunucudan gelecek linkin belirli kurallara -göre reddedilmesine olanak sağlar. deny::mask yönergesi ile belirtilecek -kurallarla örtüşen sunucu ismi maskesi belirtilir, burada (!),(*),(?) -işaretleri -kullanılabilir. deny::rule yönergesi çok kompleks bir yapıya sahiptir. Bu -yönerge sayesinde linki çok büyük bir ayrıntıyla kontrol edebilirsiniz. Bu -yönerge ile 4 operator belirtilebilir, connected(<sunucumaskesi>), -eğer -belirtilen sunucumaskesi bağlı olan bir sunucu ile eşleşirse bu yönergenin -dönüş -değeri lojik 1'dir, directcon(<sunucumaskesi>), eğer belirtilen sunucu -maskesi direkt bağlantı ile sunucuya linkli ise bu yönergenin dönüş değeri -lojik -1'dir, via(<viamaskesi>,<sunucumaskesi>), eğer belirtilen -sunucumaskesi, viamaskesi ile eşleşmiş bir sunucu tarafından bağlantı -kuruyorsa -bu yönergenin dönüş değeri lojik 1'dir, ve directop(), eğer link /connect -komutu -ile direkt olarak gerçeklendiyse dönüş değeri yine lojik 1'dir. Bu -operatörler -&& (ve) ve || (veya) karakterleri ile birleştirilebilir, öğeler -gruplama -sağlamak için parantez içinde de belirtilebilir. Ek olarak bir operatörden -önce -! karakteri belirtilirse bu, bu karakter kullanılmadan önce ki dönüş değeri -1 -ise bunu 0 yapar. Eğer dönüş değeri lojik olarak 1se link reddedilecektir. -deny::type yönergesi iki farklı değere izin verir, auto (otomatik -bağlantılar, -/connect hala kullanılabilir) ve all (bütün bağlantı denemeleri).

      -

      -

      4.25 - -Deny Channel Bloğu -İSTEĞE BAĞLI (Önceden bilinen chrestrict.conf)

      -
      -

      Kullanımı:

      deny channel {
      -	channel "<kanal-maskesi>";
      -	reason <yasaklama-için-gerekçe>;
      -	redirect "<kanal-ismi>";
      -	warn [on|off];
      -};
      -

      -

      -

      Deny channel bloğu, kullanıcıların belirli kanallara -girmesini engellemenize olanak sağlar. deny::channel -yönergesi ile girilemeyecek kanal maskesi belirtilir, burda (*),(?),(!) -işaretleri kullanılabilir. deny::reason yönergesi -ile kanala neden girilemeyeceğinin gerekçesi belirtilir. Ek olarak, -deny::redirect yönergesini de kullanabilirsiniz. Eğer -bu yönerge ile bir kanal ismi belirtirseniz, kullanıcı deny::channel -yönergesi -ile belirttiğiniz kanala girmeyi denerse otomatik olarak deny::redirect -yönergesinde belirttiğiniz kanala yönlendirilecektir. Aynı zamanda -deny::warn yönergesini de ,belirtilen kanala girme -denendiğinde, operlere uyarı gitmesi için (eğer on olarak belirtirseniz) -kullanabilirsiniz.

      -

      Örnek

      deny channel {
      -	channel "#unrealsucks";
      -	reason "No it don't!";
      -};
      -
      -deny channel {
      -	channel "#*teen*sex*";
      -	reason "You == dead";
      -	warn on;
      -};
      -
      -deny channel {
      -	channel "#operhelp";
      -	reason "Our network help channel is #help, not #operhelp";
      -	redirect "#help";
      -};
      -

      -

      -

      4.26 - -Allow Channel Bloğu -İSTEĞE BAĞLI

      -
      -

      Kullanımı:

      allow channel {
      -	channel "<kanal-maskesi>";
      -};
      -

      -

      Allow channel bloğu ile kullanıcıların girebileceği -belirli kanallar belirtebilirsiniz. allow::channel yönergesi ile kanal -maskesi -belirtilir, burada (*),(?),(!) işaretleri kullanılabilir.

      -

      Örnek:

      allow channel {
      -	channel "#something";
      -};
      -

      -

      -

      4.27 - -Allow DCC Bloğu İSTEĞE BAĞLI

      -
      -

      Kullanımı:

      allow dcc {
      -	filename "<dosyaismi-maskesi>";
      -	soft [yes|no];
      -};
      -

      -

      Allow dcc bloğu , deny dcc bloğunun kapsamı dışında -tutulacak dosya isimleri belirtebilmenize olanak sağlar. Burada (*),(?),(!) -işaretleri kullanılabilir. Eğer allow dcc::soft -yönergesini 'yes' olarak belirtirseniz 'soft dcc bans' listesi kullanılır, -eğer -'no' olarak belirtirseniz normal ('hard') dcc ban listesi kullanılır.

      -

      Örnek:

      allow dcc {
      -	filename "*.jpg"; /* Görüntü dosyaları genelde güvenilirdir. */
      -	soft yes;
      -};
      -

      -

      -

      4.28 - -Vhost Bloğu İSTEĞE BAĞLI (Önceden bilinen vhosts.conf)

      -
      -

      Kullanımı:

      vhost {
      -	vhost <vhost>;
      -	from {
      -		userhost <hostmaskesi>;
      -		userhost <hostmaskesi>;
      -		...
      -	};
      -	login <login-ismi>;
      -	password <şifre> { <auth-tipi>; };
      -	swhois "<swhois bilgisi>";
      -};
      -

      -

      Vhost bloğu, /vhost komutuyla host alabilmek için -kullanılacak login/şifreyi belirlemenize olanak sağlar. vhost::vhost -parametre -olarak user@host biçiminde olabilir veya sadece host biçiminde de olabilir. -Bu -yönergeyle kullanıcının /vhost komutunu kullandığında alacağı hostu -belirtebilirsiniz. vhost::from::userhost yönergesiyle vhost kullanım hakkı -olacak user@host 'ları belirtebilirsiniz, burda belirteceğiniz maskenin -vhost -komutunu kullanacak kullanıcının maskesiyle eşleşmesi gereklidir. Birden -fazla -hostmaskesi belirtebilirsiniz. vhost::login yönergesi ile kullanıcının -girmesi -gereken login ismini, vhost::password yönergesi ile kullanıcının girmesi -gereken -şifreyi belirtebilirsiniz. vhost::password:: yönergesi ile belirtilen şifre -için -auth tipini de belirtebilirsiniz. Geçerli auth tipleri: crypt, md5, and -sha1, -ripemd-160. Son olarak vhost::swhois yönergesi, vhost kullanacak -kullanıcının -whois bilgisine ekstra bir satır eklemenize olanak sağlar, kullanımı ise -oper::swhois yönergesindeki kullanım şekli ile aynıdır.

      -

      Örnek:

      vhost {
      -	vhost my.own.personal.vhost.com;
      -	from {
      -		userhost my@isp.com;
      -		userhost myother@isp.com;
      -	};
      -	login mynick;
      -	password mypassword;
      -	swhois "Im Special";
      -};
      -

      -

      -

      4.29 - -Badword Bloğu İSTEĞE BAĞLI (Önceden bilinen badwords.*.conf)

      -
      -

      Kullanımı:

      badword <type> {
      -	word <eşleşecek-metin>;
      -	replace <yerine-gelecek-metin>;
      -	action <replace|block>;
      -};
      -

      -

      Badword bloğu, kullanıcı ve kanal modu olan +G modu için -gönderimi engellenecek "badwords" (kötü kelimeler) listesini yönetmenize -olanak -sağlar. badword:: yönergesi ile tip belirtilir, geçerli tipler: channel, -message, quit ve all. channel: kanal modu +G için "badwords" listesi için, -message: kullanıcı modu +G için "badwords" listesi için, quit: çıkış -mesajlarını -sansürlemek için, ve all: her 3 liste için kullanılabilir. badword::word -yönergesi ile sade bir kelime belirtebilirsiniz veya bir ifade (regex) de -belirtebilirsiniz. badword::replace ile badword::word yönergesiyle -belirtilen -ifade veya kelime eşleşmesi gerçekleşmesi durumunda, bu ifade veya metnin -yerine -gönderilecek metni belirtebilirsiniz. Eğer badword::replace yönergesi -belirtilmezse, metin eşleşmesi durumunda metin <censored> ile -değiştirilecektir. badword::action yönergesi ile, kötü kelimeler listesi -içinde -bulunan bir ifade kullanılması halinde uygulanacak eylem belirtilir. Eğer -burda -replace belirtilirse ifade badword::replace yönergesiyle belirtilen metinle -değiştirilecektir, eğer block belirtilirse ifade bloklanacaktır. Eğer burda -hiçbirşey belirtmezseniz geçerli eylem replace eylemi olacaktır.

      -

      Örnek:

      badword channel {
      -	word shit;
      -	replace shoot;
      -};
      -

      -

      -

      4.30 - -ULines Bloğu İSTEĞE BAĞLI (Önceden bilinen U:Line) -

      -

      -

      Kullanımı:

      ulines {
      -	<sunucu-ismi>;
      -	<sunucu-ismi>;
      -	...
      -};
      -

      -

      Ulines bloğu, belli sunuculara ekstra yetkiler vermenize -olanak sağlar. Bu sadece servisler ve stats sunucuları için kullanılmalıdır. -Normal bir sunucu burda belirtilmemelidir.

      -

      Örnek

      ulines {
      -	services.mynetwork.com;
      -	stats.mynetwork.com;
      -};
      -

      -

      -

      4.31 - -Link Bloğu İSTEĞE BAĞLI (Önceden bilinen C/N/H:Lines)

      -
      -

      Kullanımı:

      link <sunucu-ismi> {
      -	username <kullanıcımaskesi>;
      -	hostname <ipmaskesi>;
      -	bind-ip <bağlanılacak-ip>;
      -	port <bağlantı-için-kullanılacak-port>;
      -	password-connect <bağlantı-için-gereken-şifre>;
      -	password-receive <onaylanacak-şifre> { <auth-tipi>; };
      -	hub <hub-maskesi>;
      -	leaf <leaf-maskesi>;
      -	leafdepth <depth>;
      -	class <sınıf-ismi>;
      -	ciphers <ssl-anahtarları>;
      -	options {
      -		<tercih>;
      -		<tercih>;
      -		...
      -	};
      -};
      -

      -

      Bu sunucuları linklemek için gerekli bloktur, lütfen -burda yazılan açıklamaları okumaya zaman ayırın, çünkü bu zor işlemlerden -bir -tanesidir ve kullanıcılar genellikle bu kısımda hata yaparlar ;P

      -

      İlk olarak sunucu-ismi ile -uzak sunucu ismi belirtilir, uzak sunucu ismi, o sunucunun me { } bloğunda -belirtilen isimdir, hub.blah.com gibi (IP olamaz ve uzak sunucunun -hostname'inden farklı olabilir).

      -

      username
      Eğer kimlik denetimi için sunucunuzda identi -kullanıyorsanız bu kısmı belirtebilirsiniz, normalde "*" olarak belirtilir. -

      -

      hostname
      Uzak sunucunun IP'si veya hostudur. Bu hem bağlantı -hem de -kimlik denetimi/doğrulaması için kullanılır. Birkaç örnek:
      - - - - - - - - - - - - - -
      1.2.3.4normal IP
      hub.blah.comsadece giden bağlantılar için, gelen - bağlantılarda, link::options::nohostcheckhost yönergesi ile -belirtilmeden, - kabul edilemez
      *doğru şifre kullanıldığı sürece link hangi - hostname'den gelirse gelsin bağlanmasına izin verilecektir
      ::ffff:1.2.3.4ipv6 özelliğini kullanan bir sunucuyu ipv4 - özelliğini kullanan bir sunucuya linklemek için -kullanılır

      -

      bind-ip (isteğe bağlı)
      Belirli bir IP'ye bağlamak için -kullanılabilir (ör: -192.168.0.1) , hemen hemen neredeyse hiç kullanılmaz.

      -

      port
      Link için bağlantı portu.

      -

      password-connect
      Uzak sunucuya bağlanmak için gerekli olan -şifre, sade-metin -şeklinde olmalı.

      -

      password-receive
      Gelen linkleri doğrulamak (onaylamak) için -gerekli şifre. -Geçerli metodların biri ile yeniden şifrelenebilir.(geçerli metodlar: crypt, -md5, sha1, ripemd-160). Şifre olarak sade-metin belirtmek için auth-tipi -parametresini kullanmayın. Bu şifre genellikle uzak sunucuya bağlanmak için -gerekli olan şifre ile aynıdır.

      -

      hub vs leaf
      Birçok sunucunun linklendiği sunucu bir hubdur, -leaf ise -tek bir linke sahiptir...Bir sunucu ya hubdur, yada leafdir, bu 2 seçeneği -beraber kullanamazsınız.

      -

      hub (isteğe bağlı)
      hub olarak bağlanacak sunucuların maskesidir -(ör: -*.my.net).

      -

      leaf (isteğe bağlı)
      leaf olarak bağlanacak sunucuların -maskesidir.

      -

      leaf-depth (isteğe bağlı)
      Eğer bu belirtilirse leaf de -belirtilmelidir. Belirtilen -sunucu için sıçrama sayısıdır.

      -

      class
      Sunucunun bulunacağı sınıftır (class), genellikle bunun -için ayrı bir sunucu sınıfı kullanılır (server class).

      -

      compression-level (isteğe -bağlı)
      Bu link için sıkıştırma düzeyini belirtir (1-9 -arasında olmalıdır). Sadece, daha önceden link::options::zip yönergesi -belirtildiyse kullanılır.

      -

      ciphers (isteğe bağlı)
      Bu linkte kullanılacak SSL anahtarlarını -belirtir. Mevcut -geçerli anahtarları görmek için `openssl ciphers` komutunu kullanın. -Anahtarlar -: işareti ile ayrılarak ayrı ayrı belirtilebilir.

      -

      options bloğu
      Sunucuyla bağlantı sırasında bir veya daha çok -tercih -kullanılır, bazen de gerekmez.
      - - - - - - - - - - - - - - - - - - - -
      sslEğer SSL portundan bağlanıyorsanız bu seçeneği - tercih edebilirsiniz.
      autoconnectSunucu, bağlanmayı otomatik olarak deneyecekse - (bunu tek taraflı olarak aktif etmeniz önerilir leaf->hub) bu -seçeneği - tercih edebilirsiniz.
      zipEğer sıkıştırılmış linkler istiyorsanız (derleme - sırasında belirtilmeli + her iki tarafta da tercih edilmeli) bu -seçeneği - tercih edebilirsiniz.
      nodnscachegiden sunucu bağlantısında IP gizlemesinin - olmasını istemiyorsanız bu seçeneği tercih edebilirsiniz. Bunu eğer -host - sık sık değişiyorsa kullanın (dyndns.org gibi).
      nohostcheckuzakta host (link::hostname yönergesi ile - belirtilen host)doğrulaması yapılsın istemiyorsanız bu seçeneği tercih - edebilirsiniz. Bunu eğer host sık sık değişiyorsa kullanın (dyndns.org - gibi).
      quarantineBu sunucuda ki operler GLOBAL oper yetkilerine - sahip olamazlar, linkleri test etmek gibi eylemlerde - kullanılır.

      -

      Örnek:

      link hub.mynet.com {
      -	username *;
      -	hostname 1.2.3.4;
      -	bind-ip *;
      -	port 7029;
      -	hub *;
      -	password-connect "LiNk";
      -	password-receive "LiNk";
      -	class servers;
      -	options {
      -		autoconnect;
      -		ssl;
      -		zip;
      -	};
      -};
      -

      -

      -

      4.32 - -Alias Bloğu İSTEĞE BAĞLI

      -
      -

      Kullanımı [standard alias]:

      alias <isim> {
      -	target <yönlenilecek-nick>;
      -	type <alias-tipi>;
      -	spamfilter <yes|no>;
      -};
      -

      -

      (Not: aynı zamanda UnrealIRCd'in sahip olduğu standart -alias dosyalarını görmek için buraya tıklayın.)

      -

      Alias bloğu [standard alias] bir kullanıcıya bir komutu -yönlendirmenize olanak sağlar, örneğin /chanserv komutu chanserv nickli -kullanıcıya mesaj gönderir. alias:: ile alias olacak komut ismi -belirtilir(ör: -chanserv), alias::target yönergesi ile hedef olarak komutun yönlendirileceği -nick veya kanal belirtilir, eğer alias:: kısmı belirtilen hedef ile aynı -olacaksa, bu durumda alias::target belirtilmeyebilir. alias::type yönergesi -ile -alias'ın tipi belirtilir, geçerli tipler: services (hedef servisler -kullanıcısı -ise), stats (hedef istatistik sunucusu kullanıcısı ise), normal (hedef -ağdaki -herhangi bir sunucudaki herhangi bir kullanıcı ise), ve channel (hedef bir -kanal -ismi ise). Eğer alias::spamfilter (isteğe bağlı) yönergesi değeri 'yes' -olarak -belirtilirse, spam filtre sistemi gönderilecek mesajı kontrol edecektir, bu -yönerge için default değeri 'no' 'dur.
      Alias bloğunun, -aşağıda açıklandığı üzere, diğer bir formatı da vardır.

      -

      Kullanımı [command alias]:

      alias <isim> {
      -	format <düzenli-ifade> {
      -		target <yönlenilecek-nick>;
      -		type <alias-tipi>;
      -		parameters <parametre-dizisi>;
      -	};
      -	format <düzenli-ifade> {
      -		command <komut>;
      -		type real;
      -		parameters <parametre-dizisi>;
      -	};
      -	format <düzenli-ifade> {
      -		...
      -	};
      -	type command;
      -	spamfilter <yes|no>;
      -};
      -

      -

      Alias bloğunun bu formatta kullanımı size daha geniş bir -etki alanı sağlar. Örneğin /identify gibi bir alias oluşturabilirsiniz. -alias:: -yukarıda anlatıldığı ile aynı formdadır, alias komutunun ismidir. -alias::format -ile, alias komutuna gönderilecek metinle karşılaştırılması yapılacak ifade -belirtilir, alias komutunun, gönderilecek metine göre farklı şeyler -yapmasını -birden fazla alias::format yönergesi belirterek -sağlayabilirsiniz. alias::format::target -yönergesiyle bu alias komutunun yönlendirileceği hedef belirtilir, "gerçek -alias" ta bu yönerge yerine alias::format::command -yönergesi kullanılır. alias::format::type ile -yönlendirilecek mesajın tipini belirtebilirsiniz, burada aynı zamanda tip -olarak -"gerçek alias" için "real" olarak belirtme yapabiliriz. -alias::format::parameters bu aliasa gönderilecek -parametreleri belirtmenizi sağlar. Bu parametreleri % işaretini takip eden -bir -sayıyla belirtebilirsiniz, örneğin %1 ilk parametreyi temsil eder. Bütün -parametreleri belirli bir parametreden sona doğru belirtmek için % işareti, -ardından gelen bir sayı ve ardından da - işaretini belirterek -sağlayabilirsiniz, -örneğin %2- bütün parametreleri 2. parçadan itibaren sona doğru belirtir. -Komutlar için alias bloğunun kullanımına örnekler için, doc/example.conf -dosyasına bakın.

      -

      -

      4.33 - -Help Bloğu İSTEĞE BAĞLI

      -
      -

      Kullanımı:

      help <komut> {
      -	<metin-dizisi>;
      -	<metin-dizisi>;
      -	...
      -};
      -

      -

      (Note: normally you just include help.conf)

      -

      Help bloğu /helpop komutunda kullanılmak üzere girişler -oluşturmanıza olanak sağlar. help:: /helpop ile belirtilmesi gereken -parametre -değeridir, eğer bu kısım belirtilmezse metin dizileri tek /helpop komutu -kullanımında (parametresiz kullanımında) görüntülenecektir. Bu blokta -belirtilen -metin dizileri /helpop komutunun belirtilen parametre ile kullanılması -durumunda -kullanıcıya gönderilecektir.

      -

      -

      4.34 - -Official Channels -Bloğu İSTEĞE -BAĞLI

      -
      -

      Kullanımı:

      official-channels {
      -	"#channel" { topic "The default topic"; };
      -};
      -

      -

      Bu blokta belirtilecek kanallar; kanallarda kullanıcı -bulunmasa dahi /list komutu uygulandığında kanal listesinde gözükecektir. -topic ise isteğe bağlı olarak belirtilebilir. Burda -belirtilen topic sadece kanalda kullanıcı bulunmadığında ve /list komutunun -uygulanması durumunda gösterilecektir.

      -

      Örnek:

      official-channels {
      -	"#Help" { topic "The official help channel, if nobody is present type 
      -/helpop helpme"; };
      -	"#Home";
      -	"#Main" { topic "The main channel"; };
      -};
      -

      -

      4.35 - -Spamfilter Bloğu İSTEĞE BAĞLI

      -
      -

      Spamfilter bloğu ile lokal (yerel) spam filtreleri -ekleyebilirsiniz. (ağ çapında değil).
      Spam filtreleri -hakkında daha fazla bilgi edinmek için Özellikler - Spamfilter bölümüne -bakınız.

      -

      Kullanımı:

      spamfilter {
      -	regex <kelime>;
      -	target { <hedef(ler)> };
      -	action <eylem>;
      -	reason <sebep>;
      -	ban-time <süre>;
      -};
      -

      -

      regex ile filtrelenecek -ifade belirtilir.
      target ile -hedef(ler) belirtilir, olası hedef tiplerini görmek için buraya tıklayınız. (ör: -'channel')
      action ile uygulanacak eylem -belirtilir, olası eylem tiplerini görmek için buraya tıklayınız. (ör: -'gline').
      reason isteğe bağlı: yasaklama -(ban) veya bloke etme gerekçesi belirtilir. eğer belirtilmezse default -değeri -gerekçe olarak görüntülenecektir.
      ban-time isteğe bağlı: *line ban -veya shun için süre -belirtmenize olanak sağlar, eğer belirtilmezse default değeri -uygulanır.(default -değeri: 1 gün).

      -

      Örnekler:

      spamfilter {
      -	regex "Come watch me on my webcam";
      -	target { private; channel; };
      -	action gline;
      -	reason "You are infected, please go to 
      -www.antivirus.xx/blah/virus=GrrTrojan";
      -	ban-time 6h;
      -};
      -
      -spamfilter {
      -	regex "come to irc\..+\..+";
      -	target { private; channel; };
      -	action gline;
      -	action gline;
      -	reason "No spamming allowed";
      -};
      -
      -

      -

      4.36 - -Cgiirc Bloğu İSTEĞE BAĞLI

      -
      -

      Cgiirc bloğu, güvendiğiniz CGI:IRC ağ gecitleri için, -host spoofing özelliğini yapılandırmanıza olanak sağlar (daha fazla bilgi).

      -

      Kullanımı:

      cgiirc {
      -	type <webirc|old>;
      -	username <maske>; /* isteğe bağlı */
      -	hostname <maske>;
      -	password <şifre>; /* sadece webirc tipi için */
      -};
      -

      -

      type ya 'webirc' ya da 'old' -olarak belirtilir.
      username -kısmı ident ile eşleşir(eğer kullanılıyorsa). eğer belirtilmezse, değer, "*" -olarak varsayılır.
      hostname -eşleşmeye karşı düşecek maskedir.
      password webirc şifresidir, -sadece type kısmında -'webirc' değerinin belirtilmesi durumunda kullanılır.

      -

      'webirc' metoduyla nasıl -yapılandırılır (önerilen metod)
      CGI:IRC -konfigürasyon dosyanızda (cgiirc.conf) webirc_password kısmında uygun bir -şifre -belirtin.
      Daha sonra unrealircd.conf dosyanızın içinde -cgiirc bloğuna bu hostu ve şifreyi ve cgi::type yönergesiyle de "webirc" -değerini belirtin.

      Örnek:
      CGI:IRC konfigürasyon dosyanıza -(cgiirc.conf) ekleyeceğiniz -kısım:

      webirc_password = LpT4xqPI5
      daha sonra, -unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:
      cgiirc {
      -	type webirc;
      -	hostname "1.2.3.4";
      -	password "LpT4xqPI5";
      -};
      -

      -

      'old' metoduyla nasıl -yapılandırılır
      NOT: İki dezavantajı olması nedeniyle -bu metod önerilmez. Dezavantajları: bu metod spoof için gönderilecek IP/host -'u -bir sunucu şifresi gibi gönderir, yani bir CGI:IRC kullanıcısı bağlantı için -bir -sunucu şifresi belirtemez. Ek olarak erişim kontrolu sadece IP-tabanlıdır ve -'webirc' metodunda olduğu gibi ekstradan bir şifre gerektirmez. Kısacası -eğer -gerçekten geçerli bir sebebiniz yoksa bu metodu kullanmayın.

      CGI:IRC -konfigürasyon dosyanızda -(cgiirc.conf) set realhost_as_password kısmınının değerini 1 olarak -belirtin.
      Daha sonra bu hosta izin vermek için unrealircd.conf -dosyanıza cgiirc bloğunu ekleyin.

      Örnek:
      CGI:IRC konfigürasyon -dosyanıza (cgiirc.conf) ekleyeceğiniz kısım:

      realhost_as_password = 
      -1
      Daha sonra -unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:
      cgiirc {
      -	type old;
      -	hostname "1.2.3.4";
      -};
      -

      -

      4.37 - -Set Bloğu GEREKLİ (Önceden bilinen -unrealircd.conf/networks file)

      -
      -

      Tek sunuculu ağlarda, bütün set deyimlerini -unrealircd.conf dosyanızda belirtebilirsiniz. Çok sunuculu ağlarda ise her -bir -sunucu için ayrı bir set dosyası kullanmanız önerilir.

      -

      Eğer sunucunuz bir ağa bağlı ise, bu durumda ağ ile aynı -Set ayarlarını kullanacaksınız. Bu sebeple böyle bir durumda include yönergesiyle yüklenecek bir ağ dosyası -oluşturmanız daha mantıklıdır. Aşağıda mevcut bütün set yönergelerini ve -açıklamalarını bulabilirsiniz.

      -

      Dökümanın bu kısmında ayarların / yönergelerin -<blok-ismi>::<blok-yönergesi> formatında olduğundan bahsetmek -istiyoruz. Bu format direkt olarak konfigürasyon dosyasında belirtilemez. -Dolayısıyla konfigürasyon dosyasında belirtilebilmesi için aşağıdaki formata -çevirilmesi ZORUNLUDUR.

      -

      Kullanımı:

      set {
      -	<giriş> <değer>;
      -	<giriş> <değer>;
      -	...
      -};
      -

      -

      Set bloğuyla sunucuda kullanılacak özellikler/tercihler -teker teker belirtirilir. Her bir girişin farklı anlamı vardır ve bu nedenle -herbiri aşağıda açıklanmıştır. Bazı yönergelerin ise, yine açıklanacak, alt -blokları vardır. Bütün özelliklerin karşılanması için birçok set ifadesi -vardır, -bütün ifadeler aşağıda listelenmiştir, herbiri 1 set ifadesi altında -belirtilebilir.
      Örnek:

      set {
      -	kline-address my@emailaddress.com;
      -	auto-join #welcome;
      -	options {
      -		hide-ulines;
      -	};
      -	hosts {
      -		local LocalOp.MyNet.com;
      -		global globalop.mynet.com;
      -	};
      -};
      -

      -

      Eğer set ifadelerini ayırmak istiyorsanız, aşağıdaki -formatı kullanabilirsiniz.
      Örnek:
      set { options { hide-ulines; -no-stealth; }; };

      -

      set::kline-address -<email-adresi>;
      Burada iletişim için, -K:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi -belirtilir. Burada belirtilen adres K:line komutu uygulandığında sunucudan -bağlantısı kesilen kullanıcıya görüntülenecektir. Bu değer belirtilmek -zorundadır.

      -

      set::gline-address -<email-adresi>;
      Burada iletişim için, -G:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi -belirtilir.

      -

      set::modes-on-connect -<+modlar>;
      Kullanıcının sunucuya bağlandığı anda alacağı -modları -belirtir.

      -

      set::snomask-on-connect -<+modlar>
      Kullanıcının sunucuya bağlandığı anda alacağı -snomaskları -belirtir.

      -

      set::modes-on-oper -<+modlar>;
      Oper açıldığı anda alınacak -modları belirtir.

      -

      set::snomask-on-oper <+modlar>;
      Oper -açıldığı anda alınacak snomaskları belirtir.

      -

      set::modes-on-join -<+modlar>;
      Kanalın, kanal ilk olarak -(oluşturulduğu) kullanıldığı anda, alacağı modları belirtir. Bu yönergeyle -mevcut bütün modlar belirtilemez, +qaohvbeOAzlLk modları bu yönergeyle -verilemez.

      -

      set::restrict-usermodes <modlar>
      Burada -belirtilen modların kullanıcılar tarafından -kullanımını kısıtlar ( + veya - kullanmayın).
      Örneğin -modes-on-connect kısmında +G modunu ve restrict-usermodes kısmında da yine G -modunu belirtirseniz, bütün kullanıcılar, sunucuya bağlandıkları anda +G -modunu -alacaklardır ve bu modu -G yaparak kaldıramayacaklardır.

      -

      set::restrict-channelmodes -<modlar>
      Burada belirtilen kanal modlarının kullanıcılar -tarafından -kullanımını kısıtlar ( + veya - kullanmayın).
      Örneğin -modes-on-join kısmında +G modunu ve restrict-channelmodes kısmında da yine G -modunu belirtirseniz, oluşturulacak bütün yeni kanallar +G modunu -alacaklardır -ve bu mod -G yaparak kaldırılamayacaktır.

      -

      set::restrict-extendedbans -<tipler|*>
      Kullanıcıların kapsamlı ban (extended ban) -atmalarını -kısıtlar. Eğer ("*") belirtilirse kullanıcılar hiçbir tipte kapsamlı ban -atamaz, -eğer bir tip belirtilirse sadece belirtilen kapsamlı ban tipi -kullanılamaz.(ör: -"qc").

      -

      set::auto-join -<kanal(lar)>;
      Kullanıcın sunucuya -bağlandığı anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal -belirtmek için kanalları virgül ile ayırın.
      [Not: tırnak -işareti kullanmayı unutmayın, auto-join "#kanal"; gibi]

      -

      set::oper-auto-join -<kanal(lar)>;
      Kullanıcının /oper açtığı -anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal belirtmek -için -kanalları virgül ile ayırın.
      [Not: tırnak işareti -kullanmayı unutmayın, oper-auto-join "#kanal"; gibi]

      -

      set::anti-spam-quit-message-time -<zaman-değeri>;
      /quit mesajının -görüntülenebilmesi için, bir kullanıcının sunucuya ne kadar süre bağlı -kalması -zorunda olduğunu belirtmenize olanak sağlar.(zaman değeridir). Spam'ı -engellemek -için kullanılır. Burada belirtilecek zaman değeri için; d günü, h saati, m -dakikayı ve s ise saniyeyi temsil eder. Örneğin 1d2h3m gibi bir değerin -anlamı 1 -gün, 2 saat ve 3 dakikadır.

      -

      set::prefix-quit -<çıkış-mesajı-için-önek>;
      Burda belirtilen -önek çıkış mesaj metninin başlangıcına eklenir. Eğer burda değer 0 olarak -belirtilirse standart olarak "Quit:" kullanılır.

      -

      set::static-quit -<çıkış-mesajı>;
      Kullanıcıların, ağdan -çıkarken görüntülenen, çıkış mesajlarını sabitler. Sabitlenecek çıkış -mesajlarına HATA mesajları dahil değildir.

      -

      set::static-part -<no|yes|çıkış-mesajı>;
      Eğer değer olarak -'yes' belirtilirse kanaldan çıkışlarda çıkış mesajı (part mesajı) -görüntülenmeyecektir, eğer değer olarak 'no' belirtilirse çıkışlarda -belirtilen -çıkış mesajları olağan şekilde görüntülenecektir, eğer değer olarak bir part -mesajı belirtilirse kanallardan çıkarken görüntülenecek çıkış mesajları -burda -belirtilen çıkış mesajına sabitlenecektir. (ör: static-part "Bye!")

      -

      set::who-limit -<limit>;
      /who komutu kullanımında -listelenecek eşleşmelerin max sayısını belirtir. Eğer belirtilmezse -listelenecek -eşleşmelerin herhangi bir limit olmayacaktır.

      -

      set::silence-limit -<limit>;
      SILENCE listesinde bulunabilecek -maksimum giriş sayısını belirler. Eğer bu yönerge belirtilmezse limit 15 -olarak -varsayılır.

      -

      set::maxbans -<limit>;
      Her kanal için izin verilen max -ban (+b) sayısını belirtir. Default değeri 60'dır. Eğer bunu -değiştirirseniz, -set::maxbanlength yönergesini de gözden geçirdiğinize emin olun.(bir sonraki -yönerge).

      -

      set::maxbanlength -<limit>;
      Yukarıdaki yönergeye benzerdir, -ancak bütün banların toplamı için maksimum karakter sayısını belirtir, -böylelikle basit bir şekilde kanalda belirtilen bir banın (ortalama olarak) -maksimum bellekte ne kadar yer kaplayacağını sınırlar.

      -

      set::oper-only-stats -<stats-listesi>;
      /stats komutunda kullanılacak, sadece oper -statüsünde olan -kullanıcıların kullanabileceği flagları belirtir. Eğer belirtilmezse statü -gözetilmeksizin bütün kullanıcılar bütün flagları kullanabilirler. Eğer * -olarak -belirtilirse bütün flaglar sadece operler tarafından kullanılabilir. Sadece -kısa -stats flaglarında kullanılabilir.

      -

      set::oper-only-stats {<stats-flagı>; -<stats-flagı>;};
      /stats komutunda -kullanılacak, sadece oper statüsünde olan kullanıcıların kullanabileceği -flagları belirtir. Sadece uzun stats flagları belirtilebilir.

      -

      set::maxchannelsperuser -<kanal-sayısı>;
      Bir kullanıcının aynı anda bulunabileceği -maksimum kanal -sayısını belirler.

      -

      set::maxdccallow -<giriş-sayısı>;
      Kullanıcının DCCALLOW -listesinde bulunabilecek maksimum giriş sayısını belirler.

      -

      set::channel-command-prefix -<komut-önekleri>;
      Servisler için "kanal -komutlarında" kullanılacak önek karakterlerini belirtmenize olanak sağlar. -Burda -belirtilen karakterlerden herhangi biriyle başlayacak mesaj kullanıcı +d -modunda -dahi olsa gönderilecektir. Default değeri "`!" olarak belirlenmiştir.

      -

      set::allowed-nickchars { <liste> -};
      Nicklerde farklı karakter gruplarının / dillerin -kullanımına olanak sağlar, Nick Karakter Gruplarına bakın.

      -

      set::allow-userhost-change -[never|always|not-on-channels|force-rejoin]
      (+x/-x/chghost/chgident/setident/vhost/vs) -gibi komutların -ne koşullarda kullanılabileceğini/kullanılamayacağını belirtmenizi -sağlar.
      never olarak belirtilirse bu -komutlardan hiçbiri kullanılamaz, eğer always olarak -belirtilirse bu komutlar her durumda kullanılabilir, eğer -not-on-channels olarak belirtilirse kullanıcı bu -komutları sadece ve sadece hiçbir kanala bağlı değilse kullanabilir, eğer -force-rejoin belirtilirse kullanıcı bu komutlardan -herhangi birini kullandığında bulunduğu kanallardan çıkıp tekrar girmeye -zorlanacaktır.

      -

      set::options::hide-ulines;
      Eğer belirtilirse -Uline olarak belirtilen sunucular, oper -statusunde olmayan kullanıcılar tarafından yapılan /links komutu sorgusunda -görüntülenmeyecektir.

      -

      set::options::flat-map;
      Eğer -belirtilirse, ağdaki bütün sunucular /map ve /links komutları sorgusunda -direkt -linkli olarak görünecektir, böylelikle hangi sunucunun hangisine linkli -olduğunu -göremezsiniz. Bu (D)DoS ataklarına karşı ufak bi önlemdir çünkü kötü niyetli -kişiler bu yönergenin belirtilmesiyle 'zayıf nokta'ları kolaylıkla -göremeyeceklerdir.

      -

      set::options::show-opermotd;
      Eğer belirtilirse -kullanıcılara, oper hesaplarını -açtıklarında, OPERMOTD dosyası gösterilecektir.

      -

      set::options::identd-check;
      Eğer belirtilirse -kullanıcı sunucuya bağlanırken identd -sunucusu kontrolünden geçecektir ve bu kontrol kullanıcının username kısmı -cevabı olarak geri dönecektir. Eğer bu kontrol sonucunda cevap dönüşü -olmazsa -kullanıcının username kısmına ~ öneki eklenecektir. Eğer belirtilmezse böyle -bir -kontrol söz konusu olmayacaktır.

      -

      set::options::show-connect-info;
      Eğer -belirtilirse, bir kullanıcı sunucuya bağlanacağı zaman -"ident request", "hostname lookup", vs. gibi ifadeler kullanıcıya -gösterilicektir.

      -

      set::options::dont-resolve;
      Eğer belirtilirse, -gelen kullanıcıların hostları -çözümlenmez.
      Not: Çözümleme işlemi yapılmayacaksa, host -tabanlı allow bloklarınız da olamaz.

      -

      set::options::mkpasswd-for-everyone;
      /mkpasswd -bütün kullanıcılar tarafından kullanılabilmesine -olanak sağlar.

      -

      set::options::allow-part-if-shunned;
      Shun'lı -kullanıcının /part komutunu kullanabilmesine olanak -sağlar.

      -

      set::options::fail-oper-warn;
      Eğer -belirtilirse, /oper komutu kullanımı başarısız olduğu -takdirde, kullanıcıya oper denemesinin kayıt edildiğine dair uyarı -gönderilir.

      -

      set::dns::timeout -<zaman-değeri>;
      Bir DNS sunucusunun, -bağlantısının zaman aşımı olarak değerlendirilip, kesilmemesi için, ne -kadarlık -bir zaman dilimi içerisinde yanıt göndermesi gerektiğini belirtmenize olanak -sağlar. Burada belirtilecek numerik değerde d günü, h saati, m dakikayı, s -ise -saniyeyi temsil eder, örneğin 1d2h3m olarak belirtilen zaman değeri 1 gün, 2 -saat ve 3 dakikayı temsil eder.

      -

      set::dns::retries -<number-of-retries>;
      A numeric value -specifying the number of times the DNS lookup will be retried if failure -occurs.

      -

      set::dns::nameserver -<dns-sunucu-ismi>;
      DNS aramalarında kullanılacak, sunucunun -hostname'ini -belirtir.

      -

      set::dns::bind-ip -<ip>;
      Çözümleyici için bağlanılacak IP'yi -belirtir, genellikle belirtilmeye gerek duyulmaz.

      -

      set::network-name -<ağ-ismi>;
      Sunucunun bulunduğu ağ adını -belirtmeye olanak sağlar. Burda belirtilen ağ ismi ağ üzerinde ki bütün -sunucularda aynı belirtilmek zorundadır.

      -

      set::default-server -<sunucu-ismi>;
      Sunucu full kapasitede -kullanıcıya sahip olduğunda, bağlanmayı deneyecek kullanıcılara default -sunucu -adının gösterilmesine olanak sağlar.

      -

      set::services-server -<sunucu-ismi>;
      Servisler sunucusunun ismini belirtir. -Gereklidir, eğer -servis sunucunuz yoksa, services.sizinaginiz.com gibi bir sunucu ismi -belirtmeniz gerekir.

      -

      set::stats-server -<sunucu-ismi>;
      Stats sunucusu botlarının -yerleştirileceği sunucu ismini belirtir. Eğer stats sunucunuz yoksa burayı -belirtmeyebilirsiniz.

      -

      set::help-channel -<ağ-yardım-kanalı>;
      Ağınız için yardım -kanalını (help) belirtmenize olanak sağlar.

      -

      set::cloak-keys { -"anahtar1"; "anahtar2"; "anahtar3"; };
      Hostun -gizlenmesi için, yeni hostların oluşturulmasında kullanılacak anahtarları -belirtir. Bu anahtarlar ağdaki bütün sunucular için aynı olarak -belirtilmelidir. -Her bir anahtar en az 5 en çok 100 karakter içerebilir (10-20 arası -önerilir) ve -anahtarlar küçük karakter olarak (a-z) arası harfleri, büyük karakter olarak -(A-Z) arası harfleri ve rakam olarak da (0-9) arası rakamları içerebilir. Bu -kriterlerin yüklediğiniz gizleme modülüne göre değişebileceğine dikkat -edin.

      -

      set::hiddenhost-prefix -<önek-değeri>;
      Gizlenmiş hostlara eklenecek (+x) öneki -belirtmenize olanak -sağlar. Burada genellikle ağ ismini simgeleyen 3 veya 4 harf belirtilir.

      -

      set::hosts::local -<locop-hostu>;
      Yerel operatör statüsüne -erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe -bağlı -olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      -

      set::hosts::global -<globop-hostu>;
      Global operatör statüsüne -erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe -bağlı -olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      -

      set::hosts::coadmin -<coadmin-hostu>;
      Co-admin statüsüne erişen -bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı -olarak -buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      -

      set::hosts::admin -<admin-hostu>;
      Admin statüsüne erişen bir -kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak -buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      -

      set::hosts::servicesadmin -<servicesadmin-hostu>;
      Services -Administrator statüsüne erişen bir kullanıcının alacağı hostu belirtmenize -olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak -belirtebilirsiniz.

      -

      set::hosts::netadmin -<netadmin-hostu>;
      Net Administrator statüsüne erişen bir -kullanıcın alacağı -hostu belirtmenize olanak sağlar.İsteğe bağlı olarak burdaki değeri -kullanıcı@host olarak belirtebilirsiniz.

      -

      set::hosts::host-on-oper-up -<yes/no>;
      Eğer yes olarak belirtilirse, oper yetkisini açan -kullanıcı -(eğer H/get_host flagına sahipse), otomatik olarak, statüsüne göre hostunu -alacaktır. Eğer no olarak belirtilirse host alma işlemini oper yetkisini -açtıktan sonra manual olarak gerçekleştirecektir.

      -

      set::ssl::egd -<dosya-ismi>;
      EGD (Entropy Gathering -Daemon) desteğinin aktif olduğunu belirtir. Eğer OpenSSL 0.9.7 veya daha üst -bir -versiyonunu kullanıyorsanız bu durumda /var/run/egd-pool, /dev/egd-pool, -/etc/egd-pool ve /etc/entropy buradaki dosya ismi için default konumlar -olarak -kabul edilip aranacaktır. Dolayısıyla burada herhangi bir dosya ismi -belirtmeyip -set::ssl::egd yönergesine herhangi bir değer atamadan kullanabilirsiniz. -Eğer -OpenSSL 0.9.7 'den daha önceki bir versiyonu kullanıyorsanız yukarıda ki -belirtilen yerler haricinde dosya için başka yerlerde belirtebilirsiniz.

      -

      set::ssl::certificate -<dosya-ismi>;
      Sunucu SSL sertifikası dosyasının yerini -belirtmenizi -sağlar.

      -

      set::ssl::key -<dosya-ismi>;
      Sunucu SSL anahtarı -dosyasının yerini belirtmenizi sağlar.

      -

      set::ssl::trusted-ca-file -<dosya-ismi>;
      Güvenilen CA sertifika dosyasının yerini -belirtmenizi -sağlar.

      -

      set::ssl::options::fail-if-no-clientcert;
      Sertifakaya -sahip olmayan kullanıcıların bağlantısının -reddedilmeye zorlanmasını sağlar.

      -

      set::ssl::options::no-self-signed;
      Self-signed -sertifikalı kullanıcıların bağlantılarına izin -vermemenizi sağlar.

      -

      set::ssl::options::verify-certificate;
      Bağlantı -yetkilendirilmeden önce Unreal'in kullanılan SSL -sertifikasının geçerliliğini doğrulamasına olanak verir.

      -

      set::throttle::period -<zaman-değeri>
      set::throttle::connections yönergesinde -belirtilen bağlantı -sayısı aşıldığında kullanıcının yeniden bağlanabilmesi için ne kadar süre -beklemek zorunda olduğunu belirtir.

      -

      set::throttle::connections -<miktar>;
      Bağlantının throttle sistemine takılması için aynı -hosttan -kaç kez bağlantı isteği gelmesi gerektiğini belirtir.

      -

      set::ident::connect-timeout <miktar>;
      Ne -kadar saniye beklendikten sonra ident sunucu -bağlantısının iptal edileceğini belirtir.(default: 10s).

      -

      set::ident::read-timeout <miktar>;
      Ne -kadar saniye geçtikten sonra yanıt için vazgeçileceğini -belirtir. (default: 30s).

      -

      set::anti-flood::unknown-flood-bantime -<zaman-değeri>;
      Bilinmeyen bir bağlantıdan -flood saldırısı algılandığı zaman atılacak banın süresini belirler.

      -

      set::anti-flood::unknown-flood-amount -<miktar>;
      Bilinmeyen bir bağlantının -gönderdiği veri miktarı burada belirtilen miktarı (KiloByte cinsinden) -aştığı -zaman sunucudan bağlantısı kesilecektir.(kill)

      -

      set::anti-flood::away-flood -<miktar>:<periyot>
      Away flood -koruması: belirtilen 'periyot' başına /away komutu kullanımını belirtilen -'sayı'ya sınırlar. Ancak bu korumanın aktif olabilmesi için config.h -dosyasında -NO_FLOOD_AWAY'in aktif edilmesi gereklidir. Örnek: away-flood 5:60s; -60 saniye süresince 5 /away komutu -kullanılabilir.

      -

      set::anti-flood::nick-flood -<miktar>:<periyot>
      Nickflood -koruması: belirtilen 'periyot' başına nick değişimini belirtilen 'sayı'ya -sınırlar. Örnek: nick-flood 4:90 90 saniye süresince -4 kez nick değiştirilebilir, default değeri 60 saniye süresince 3 nick -değişimidir.

      -

      set::default-bantime <süre>
      /kline, -/gline, /zline, /shun, vs gibi yasaklama (ban) -komutlarının zaman belirtilmeden kullanıldığında (/gline *@some.nasty.isp -gibi), -banın ne kadar süre geçerli olacağını belirtir. Örnek: default-bantime -90d;

      -

      set::modef-default-unsettime -<değer>
      Kanalmodu +f için değişikliğin ne kadar süre -süreceğini -belirtmenizi sağlar. Eğer değer olarak örneğin 10 belirtirseniz bu durumda -+f -[5j]:15 gibi bir mod uygulaması [5j#i10]:15 şeklinde yorumlanacaktır.

      -

      set::modef-max-unsettime -<değer>
      Kanalmodu +f kullanılırken (ör. +f -[5j#i<süre>]:15) -belirtilebilecek maksimum süre miktarını (dakika cinsinden) belirlemenizi -sağlar. Bu değer 0 ile 255 arasında olabilir. Default değeri ise 60'dır (=1 -saat).

      -

      set::ban-version-tkl-time <değer>
      Ban -version bloğunda zline/gline/vs. gibi bir 'eylem' -belirtildiğinde bu eylem ile atılacak yasaklamanın (ban) ne kadar süreli -aktif -kalacağını belirtmenize olanak sağlar. Default değeri 86400'dür (1 gün).

      -

      set::spamfilter::ban-time -<değer>
      Yukarıda anlatılan ile aynıdır ancak bu sefer -belirtilecek -değer spamfilter tarafından *line/shun eylemleri uygulandığında -geçerlidir.

      -

      set::spamfilter::ban-reason -<gerekçe>
      Spamfilter tarafından eklenen girişlerde -gösterilecek -sebebi belirlemenize olanak sağlar.

      -

      set::spamfilter::virus-help-channel -<kanal>
      Spamfilter'da 'viruschan' eylemi için kullanılacak -kanalı -belirtir.

      -

      set::spamfilter::virus-help-channel-deny -<yes|no>
      Eğer yes (veya 1) olarak -belirtilirse, virus-help-channel ile belirtilen kanala normal bir kullanıcı -girmeyi denerse kullanıcıya 'invite only' gibi bir ibare gönderilir. Sadece -operler, spamfilter sistemi tarafından saptanan kullanıcılar ve kanala -/invite -komutuyla davet edilecek kullanıcılar giriş yapabilir.

      -

      set::spamfilter::except <hedef(ler)>
      Bu -yönergeyle belirtilecek hedef(ler) spam filtrelemesinden -muaf tutulacak(lar)dır, aralarına virgül konularak birden fazla hedef -belirtilebilir. Ör: except "#help,#spamreport"

      -

      set::check-target-nick-bans -<yes|no>
      Kullanıcı(lar) nick(ler)ini değiştirdiği zaman, -yeni nick -için yasaklama (ban) olup olmadığının kontrol edilmesine olanak sağlar. Eğer -yeni nick adına yasaklama mevcutsa nick değişimine izin verilmeyecektir. -Default -değeri yes 'dir.

      -

      set::timesynch::enabled <yes|no>
      Sunucu -başlatılırken zaman senkronizasyonu özelliğini açık -ya da kapalı olarak belirtmenize olanak sağlar. Default değeri yes’dir.

      -

      set::timesynch::server -<IP>
      Senkronizasyonun sağlanacağı sunucuları belirtmenizi -sağlar. Burada 4 IP’yi aralarında virgül kullanarak belirtebilirsiniz. -Burada -belirtilen sunucular NTP protokolu versiyon 4’ü desteklemek zorundadırlar. -Default olarak 3 zaman sunucusu kullanılır (US, EU, AU). Bu sunuculara istek -paralel olarak gönderilir, en hızlı cevap gönderen kazanır.

      -

      set::timesynch::timeout <süre>
      Sunucudan -gelecek cevap için maksimum bekleme süresini -belirtmenize olanak sağlar. Burada 1 ve 5 arasında bir değer -belirtilmelidir, -beşten büyük sayılar belirtilemez. Default değeri 3’tür ve eğer iyi bir -sebebiniz yoksa bunu değiştirmeyin.

      -

      -

      5 – Ek Dosyalar -

      -
      Konfigürasyon dosyasına ek olarak MOTD, -OperMOTD, BotMOTD ve Rules dosyaları gibi birkaç dosya daha vardır. Aşağıda -bu -dosyalar ve kullanımları listelenmiştir.
      Motd dosyaları -(bütün tiplerde ki) ve kurallar (rules) dosyaları aynı zamanda bir tld bloğu -ile -de belirtilebilir. -

        - - - - - - - - - - - - - - - - -
      ircd.motd/motd komutu sorgusunda ve kullanıcı sunucuya - bağlandığı an görüntülenir.(eğer ircd.smotd belirtilmediyse)
      ircd.smotdSadece sunucuya bağlantı sırasında - görüntülenir.(kısa MOTD)
      ircd.rules/rules komutu sorgusunda görüntülenir
      oper.motd/opermotd sorgusunda ve kullanıcı oper açtığında - görüntülenir
      bot.motd/botmotd komutu sorgusunda - görüntülenir
      -

      -

      6 – Kullanıcı & Kanal Modları

      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      Mod
      -
      Açıklama
      -
      Kanal - Modları
      -
      A
      Sadece +A kullanıcı moduna sahip kullanıcılar - (admin) girebilir
      -
      a <nick>
      Belirtilen nick kanalda kick komutuna karşı - korumaya sahip olur.
      -
      b <nick!kullanıcı@host>
      Belirtilen maske kanalda yasaklanır (ban)
      -
      c
      Kanal icerisinde renk kullanimini engeller
      -
      C
      CTCP içerikli metinlerin gönderimini - engeller
      -
      e - <nick!kullanıcı@host>
      Belirtilen maske kanalda yasaklı (ban) listesinde - olsa dahi kanala girebilir
      -
      f - [<numara><tip>]:<saniye>
      Kanal flood koruma modu. Daha fazla açıklama - için. Daha fazla bilgi için bölüm 3.12'ye bakın
      -
      G
      Badword Bloğunda belirtilen kötü kelimelerin - (badwords) sansürleneceği kanal
      -
      h <nick>
      Belirtilen nick halfop statüsüne sahip olur
      -
      i
      Sadece davetle girilebilen kanal
      -
      I <nick!kullanıcı@host>
      Belirtilen maskeye sahip olan kullanıcılar, kanal - +i modunda olsa dahi kanala girebilirler
      -
      j <giriş:saniye>
      Belirtilen saniyede bir kanala giris yapilmasini - saglar
      -
      K
      /knock komutu kullanılamaz kanal
      -
      k <anahtar>
      Kanala giriş için anahtar gereken kanal
      -
      l <##>
      Kanala girebilecek maksimum kullanıcı sayısını - belirler
      -
      L <kanal>
      +l ile belirtilen kanala girebilecek maksimum - kullanıcı sayısı aşıldığında, kullanıcıların yönlendirileceği kanalı - belirtir
      -
      M
      Yalnızca kayıtlı ve tanıtılmış nick (+r) kullanan - kullanıcıların konuşabileceği kanal
      -
      m
      Yalnızca +v/o/h modlarına sahip kullanıcıların - konuşabileceği kanal
      -
      N
      Nick değiştirilemez kanal
      -
      n
      Dışarıdan gönderilen mesajların kabul edilmediği - kanal
      -
      O
      Yalnızca +O modunda ki kullanıcıların (IRCOp) - girebileceği kanal
      -
      o <nick>
      Kanalda belirtilen kullanıcıya operatör statüsü - verir
      -
      p
      Özel bir kanal
      -
      q <nick>
      Kanalda belirtilen nicke founder (kanal sahibi) - statüsü verir
      -
      Q
      Kick atılamayan kanal (U:Line sunucular - atabilir)
      -
      R
      Sadece kayıtlı (+r) kullanıcıların girebileceği - kanal
      -
      S
      Renkli yazıların, renk kodlarından arındırılıp - kanala gönderilmesini sağlar
      -
      s
      Gizli kanal
      -
      t
      Topiğin sadece operatör statüsünde ki - kullanıcılar tarafından değiştirilebileceği kanal
      -
      T
      NOTICE komutunun kullanılamayacağı kanal
      -
      u
      Auditorium – /names ve /who #kanal komutları - sorgusunda yalnızca kanal operatörleri görüntülenir
      -
      V
      /invite komutu kullanılamaz kanal
      -
      v <nick>
      Kanal +m modunda olsa dahi konuşabilecek - kullanıcıları belirtmenizi sağlar
      -
      z
      Sadece Güvenli Bağlantı (SSL) kullananların - girebileceği kanal
      -

       

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      Mod
      -
      Açıklama
      -
      Kullanıcı - Modları
      -
      A
      Server Administrator Statüsündeki kullanıcı (Oper - Bloğunda belirtilir)
      -
      a
      Services Administrator Statüsündeki kullanıcı - (Oper Bloğunda belirtilir)
      -
      B
      Bot statüsündeki kullanıcı
      -
      C
      Co Administrator Statüsündeki kullanıcı (Oper - Bloğunda belirtilir)
      -
      d
      Kanalda yazılan mesajları görmenizi -engeller
      -
      G
      Badwords bloğunda belirtilen kötü kelimeler - kullanıldığında sansürlenir
      -
      g
      GlobOps ve LocOps mesajlarını görmenizi - sağlar
      -
      H
      IRCOp statüsüne sahipseniz /whois /who sorgusunda - bu statünüz görünmez.(Sadece IRCop)
      -
      h
      Yardim görevlisi statüsü verir.(HelpOp)(Oper - Bloğunda belirtilir)
      -
      i
      Görünmez kullanıcı (/who sorgusunda görünmeyen - kullanıcı)
      -
      N
      Network Administrator Statüsündeki kullanıcı - (Oper Bloğunda belirtilir)
      -
      O
      Local IRC Operator Statüsündeki kullanıcı (Oper - Bloğunda belirtilir)
      -
      o
      Global IRC Operator Statüsündeki kullanıcı (Oper - Bloğunda belirtilir)
      -
      p
      /whois sorgusunda bulunduğunuz kanalları - gizler
      -
      q
      Sadece U:Lines ile belirtilen sunucular - tarafından kanallardan atılabilirsiniz.(Sadece Services Administrator - Statüsündeki kullanıcılar kullanabilir)
      -
      R
      Sadece nicki kayitli (+r) olan kullanıcılardan - mesaj almanızı sağlar
      -
      r
      Kayıtlı kullanıcı
      -
      S
      Servisler için koruma modu
      -
      s
      Sunucu mesajlarını görmenizi sağlar (daha fazla - bilgi için bölüm 3.3'e bakın)
      -
      T
      CTCP metinlerinin size gönderimini engeller
      -
      t
      /vhost kullandığınızı belirtir
      -
      V
      Kullanıcının WebTV kullandığını belirtir
      -
      v
      Bloke edilmiş DCC mesajlarını görmenizi - sağlar
      -
      W
      Size /whois çekildiğinde whois çekeni görmenizi - sağlar. (Sadece IRCOp statüsündeki kullanıcılar -kullanabilir)
      -
      w
      Wallop mesajlarını görmenizi sağlar
      -
      x
      Gizlenmiş host kullandığınızı belirtir
      -
      z
      Güvenli bağlantı (SSL) kullanıldığını - belirtir
      -

      -

      7 – Kullanıcı & Oper Komutları Tablosu

      -
      -

      NOT: /helpop dökümanı bu dökümandan daha günceldir, bir -komut hakkında bilgi almak için the /helpop komut (veya operseniz /helpop -?komut) komutunu kullanın.

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -
      Komut
      -
      Açıklama
      -
      Kimler - Kullanabilir
      nick <yeninick>Sunucudaki rumuzunuzu degistirir. Bulundugunuz - butun kanallarda rumuzunuzun degisimi haber verilir
      Herkes
      whois <nick>Belirtilen nick için; kullanıcı ismi, host, - bulunduğu kanallar vs. gibi bilgileri görüntüler
      Herkes
      who <maske>Kullanıcılarla ilgili bilgileri gösterir. Maske - kısmına nick, #kanal, hostmaskesi (*.attbi.com gibi) belirtilebilir
      Herkes
      whowas <nick> <max cevap - sayısı>Sunucudan çıkmış bir nick için geçmiş whois - bilgilerini görüntüler. <max cevap sayısı> kısmı isteğe göre - belirtilebilir ve kaç tane kaydın görüntüleneceğini belirler.
      Herkes
      ison <nick1 nick2 nick3 ...>Belirtilen kullanıcı veya kullanıcıların online - olup olmadıklarını gösterir
      Herkes
      join <kanal1,kanal2, ...>Belirtilen kanal yada kanallara girmenize olanak - sağlar. Birden fazla kanal belirterek birdefada belirttiğiniz bütün - kanallara girebilirsiniz. /join 0 komutu ise bütün kanallardan -ayrılmanızı - sağlar.Herkes
      cycle <kanal1, kanal2, ...>Belirtilen kanal(lar)da çık-gir (cycle) yapmanıza - olanak sağlar.Herkes
      motd <sunucu>Belirtilen sunucu için motd dosyasının - görüntülenmesine olanak sağlar.
      Herkes
      rules <sunucu>Belirtilen sunucunun kurallar(rules) dosyasının - görüntülenmesine olanak sağlarHerkes
      lusers <sunucu> Belirtilen sunucu için çevrimiçi (online) - kullanıcı sayısı, en fazla baglanan kullanıcı sayısı bilgileri yerel - sunucu ve de tum ağ icin belirtir.
      Herkes
      mapAğ haritasını görüntülerHerkes
      quit <sebep>Belirtilen sebep ile IRC oturumunuzun - sonlandırılmasına olanak sağlar. Eğer bir sebep belirtirseniz bu - bulundugunuz bütün kanalda görüntülenirHerkes
      ping <kullanıcı>Belirtilen kullanıcıya PING göndermenize olanak - sağlar. Bağlantıyı ve gecikmeyi kontrol etmek için kullanılır.
      Herkes
      version <nick>Belirtilen nicke CTCP Version sorgusu gönderir. - Eğer client bunun için yapılandırılmışsa nickden versiyon cevabı - alınır.
      Herkes
      linksAğa linkli bütün sunucuların listesini - görüntülerHerkes
      Admin <sunucu>Belirtilen sunucu hakkında yöentimsel bilgi - görüntülenir.
      Herkes
      userhost <nick>Belirtilen nickin kullanıcı hostu görüntülenir
      Herkes
      topic <kanal> <topic>Topic <kanal> belirtilen kanalın o anki - topic bilgisini görüntüler. Topic <kanal> <topic> ise - belirtilen kanalın topic bilgisinin değiştirilmesine olanak sağlar.
      Herkes
      invite <nick> <kanal>Belirtilen kanala belirtilen nicki davet etmek - için kullanılır. (komutu kullanın kanalda operator olması şarttır.)
      Kanal Operatorleri
      kick <kanal, kanal> - <kullanıcı, kullanıcı> <sebep>Belirtilen kullanıcıyı yada kullanıcıları - belirtilen kanaldan yada kanallardan belirtilen sebepten dolayı -atmanıza - olanak sağlar.
      Kanal Operatorleri
      away <sebep>Sebep ile kullanıldığında sizi (away), yani - uzakta olarak belirtir. Eğer sebep belirtmezseniz (away) den çıkmış - olursunuz.
      Herkes
      Watch +-<nick> +-<nick>
      Watch UnrealIRCd 'de yeni bir uyarı sistemidir. - Bu sistem eski-stil uyarı sistemine nazaran daha hızlıdır ve ağ - kaynaklarını daha az kullanır. Watch (izleme) listenize eklediğiniz -nick - IRC oturumu açtığında veya kapadığında sunucu size uyarı mesajı - gönderecektir. İzleme listeniz her oturum açıp kapamanızda sıfırlanır, -bu - sebepten sunucuya her bağlandığınızda izleme listenizi yeniden - düzenlemelisiniz.
      Herkes
      helpop ?<komut> or - !<komut>
      HelpOp IRC Sunucu yardımı almak için yeni bir - sistemdir. /HELPOP ? <komut> veya /HELPOP ! <soru> -şeklinde - kullanabilirsiniz. /HELPOP komutunda "?" kullanılmasıyla yardım -sistemine - bilgi isteği gönderilir eğer bir sonuca ulaşamazsanız '!' işareti ile - kullanmayı deneyin. Bu durumda belirttiğiniz konu veya soru direkt -olarak - çevirimiçi help operatörlerine iletilecektir. Eğer ne ? işareti ne de -! - işareti kullanmazsanız, bu durumda bilgi isteğiniz yardım sistemine - gönderilecek ve eğer sonuç alınamazsa direkt olarak çevirimiçi help - operatörlerine iletilecektir.Herkes
      list <dizgi>Eğer bir maske belirtmezseniz, aktüel kanal - listesi görüntülenir. Aşağıda kullanabileceğiniz dizgiler ve bunların - kullanılması durumunda görüntülenecek kanal listesinde hangi -kanalların - görüntüleneceği açıklanmıştır.
      >sayı içerisinde - belirttiğiniz <sayı>'dan fazla kullanıcıya sahip olan kanallar - listelenir.
      <sayı içerisinde belirttiğiniz - <sayı>'dan az kullanıcıya sahip olan kanallar listelenir.
      C>sayı son <sayı> dakika içerisinde - oluşturulmuş kanalları listeler.
      C<sayı son - <sayı> dakikanın öncesinde oluşturulmuş kanalları listeler.
      T>sayı kanal topiği son <sayı> dakikadan - önce atılmış kanalları listeler.
      T<sayı kanal - topiği son <sayı> dakika içerisinde atılmış olan kanalları - listeler.
      *maske* belirtilen *maske* ile eşleşen - kanalları listeler
      !*maske* belirtilen *maske* ile - eşleşmeyen kanalları listeler
      Herkes
      Knock <kanal> <mesaj>
      Davetsel (invite only) konumunda olan bir kanal - için knock komutunu kullanarak, kanala giriş için sizi kanala davet - etmelerini isteyebilirsiniz. Eğer kanal +K +V modlarında ise bu komut - işlem görmeyecektir. Aynı zamanda kanaldan banlı iseniz bu komut yine - işlem görmeyecektir
      Herkes
      setnameSunucuya tekrar bağlanmaya gerek kalmadan - kullanıcıların isim kısımlarını değiştirmelerine olanak sağlar
      Herkes
      vhost <login> <şifre>Hostname kısmınızı daha önceden belirtilen, - sunucu tarafından sağlanan bir sahte hostla gizlemenize olanak -sağlar.
      Herkes
      mode <kanal/nick> <mod>
      Belirtilen kanal veya nick için kullanılan - modları düzenlemeye/değiştirmeye olanak sağlar. Mevcut kullanıcı ve -kanal - modları listesi için Kullanıcı & Kanal Modları kısmına bakın.
      Herkes
      creditsUnrealIRCd'in oluşturulmasında yardımı bulunan - kişilerin listesini görüntüler
      Herkes
      licenseGNU lisansını görüntülerHerkes
      time <sunucu>Belirtilen sunucunun tarihini ve zamanını - gösterir.
      Herkes
      botmotd <sunucu>
      Sunucunun bot.motd dosyasını görüntülerHerkes
      identify <şifre>Nickinizi tanıtmanız için servisler sistemine - şifrenizi gönderir.
      Herkes
      identify <kanal> <şifre>Belirtilen kanalın founderi olarak tanıtılmanız - için servisler sistemine şifrenizi gönderir.
      Herkes
      dns <tercih>Sunucunun DNS önbelleklemesi hakkında bilgi - görüntülenir. Birçok yazılım DNS komutuna sahiptir (bu dns komutu -değildir - fakat), bu yüzden /raw DNS yazarak kullanın. Operler l karakterini DNS - önbellekleme girişlerinin listesini görebilmek için ilk parametre -olarak - belirtebilirler.Herkes
      userip <nick>
      Belirtilen nickin IP Adres bilgisini gösterir.Herkes
      oper <kullanıcı adı> - <şifre>
      Oper Bloğunda belirtilen nick ve şifre ile bu - komutla belirtilen kullanıcı adı ve şifre uyuştuğu takdirde -kullanıcının - oper statüsüne geçmesine olanak sağlar
      IRC Operatörler
      wallops <mesaj>+w kullanıcı modunda olan bütün kullanıcılara - belirtilen mesajı gönderirIRC Operatörler
      globops <mesaj>Bütün IRC Operatörlere belirtilen mesajı - gönderirIRC Operatörler
      chatops <mesaj>+c kullanıcı modununda olan bütün IRC - Operatörlere belirtilen mesajı gönderirIRC Operatörler
      locops <mesaj>Yerel (local) IRC Operatörlere belirtilen mesajı - gönderirIRC Operatörler
      adchat <mesaj>Bütün adminlere belirtilen mesajı gönderirIRC Operatörler
      nachat <mesaj>Net Admin statüsündeki bütün adminlere belirtilen - mesajı gönderirIRC Operatörler
      kill <nick> <sebep>Belirtilen nickin ağdan bağlantısını keserIRC Operatörler
      kline [+|-]<kullanıcı@host | - nick> [<ban süresi> <gerekçe>]Belirtilen hostmaskesini sunucudan banlar. Kline - global bir yasaklama (ban) değildir.
      ban süresi a) saniye cinsinden bir değer, b) bir - zaman değeri, '1d' gibi (1 gün) veya c) kalıcı olması için '0' gibi -bir - değer olabilir. Süre ve sebep isteğe bağlıdır, eğer belirtilmezlerse - set::default-bantime yönergesi ile belirlenmiş olan süre ban süresi -olarak - geçerlidir ve sebep olarak da 'no reason' görüntülenecektir. Bir -kline'ı - kaldırmak için /kline -kullanıcı@host komutunu kullanın
      IRC Operatörler
      zline [+|-]<*@ip> [<ban - süresi> <gerekçe>]Belirtilen IP adresini yerel sunucudan banlar - (global değildir). Daha fazla kullanım bilgisi için kline kısmına -bakın. - Bir zline'ı kaldırmak için /zline -*@ip komutunu kullanın
      IRC Operatörler
      gline [+|-]<kullanıcı@host | - nick> [<ban süresi> <gerekçe>]
      Belirtilen kullanıcı@host ile eşleşme - gerçekleştiği sürece ağda bulunan hiç bir sunucuya bağlantı -sağlanamaz. - Daha fazla kullanım bilgisi için kline kısmına bakın. Bir gline'ı - kaldırmak için /gline -kullanıcı@host komutunu kullanın.
      IRC Operatörler
      shun [+|-]<kullanıcı@host | nick> - [<shun süresi> <gerekçe>]
      Belirtilen maskenin hiçbir komutu kullanamamasını - ve hiçbir şekilde mesaj gönderememesini sağlar. Shun bütün ağın bütün - sunucularında geçerlidir (gline gibi). Daha fazla kullanım bilgisi -için - kline kısmına bakın. Bir shun'ı kaldırmak için /shun -kullanıcı@host - komutunu kullanın.
      IRC Operatörler
      gzline [+|-]<ip> <ban - süresi> :<gerekçe>
      Ağın bütün sunucularında geçerli olacak bir zline - ekler. Daha fazla kullanım bilgisi için kline kısmına bakın. Bir -gzline'ı - kaldırmak için /gzline -*@ip komutunu kullanın.
      IRC Operatörler
      rehash <sunucu> - –<flaglar>Belirtilen sunucunun konfigürasyon dosyasının - yeniden okunmasını sağlar. Mevcut flaglar:
      -motd - - Sadece bütün MOTD ve RULES dosyaları yeniden okunur. (tld {} bloğu - kapsamında ki dosyalar)
      -opermotd - Sadece - OPERMOTD dosyası yeniden okunur
      -botmotd - Sadece - BOTMOTD dosyası yeniden okunur
      -garbage - Çöp - toplaması yapılır
      -
      IRC Operatörler
      restart <şifre> - <gerekçe>
      IRCD işlemini yeniden başlatır. Eğer drpass { } - bloğu belirtilmişse şifrenin de belirtilmesi gereklidir. Aynı zamanda - gerekçe kısmı ile bir sebep de belirtebilirsiniz.
      IRC Operatörler
      die <şifre>
      IRCD işlemini sonlandırır. Eğer drpass { } bloğu - belirtilmişse şifrenin de belirtilmesi gereklidir.IRC Operatörler
      lag <sunucu>
      Bu komut IRC Sunucusu için bir Traceroute veya - Sonar gibi düşünülebilir. Örnek olarak /LAG irc.fyremoon.net olarak bu - komutu belirttiğinizde belirtilen sunucuya ulaşmak için geçilen bütün - sunuculardan komut cevaplanacaktır. Bu komut gecikmenin hangi -sunucudan - kaynaklandığını bulmak için faydalıdır
      IRC Operatörler
      sethost <yenihost>Kullandığınız host kısmını (vhost) istediğiniz - bir host ile değiştirebilmenize olanak sağlar.
      IRC Operatörler
      setident <yeniident>
      Kullandığınız ident kısmını istediğiniz bir ident - ile değiştriebilmenize olanak sağlar
      IRC Operatörler
      chghost <nick> - <yenihost>
      Sistemde bulunan bir kullanıcının kullandığı host - kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      chgident <nick> - <yeniident>
      Sistemde bulunan bir kullanıcının kullandığı - ident kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      chgname <nick> - <yeniisim>
      Sistemde bulunan bir kullanıcının kullandığı isim - kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      squit <sunucu>
      Belirtilen sunucunun ağdan bağlantısını keser
      IRC Operatörler
      connect <sunucu> <port> - <sunucu>Eğer sadece tek sunucu belirtilirse bulunduğunuz - sunucuyu belirtilen sunucuya bağlamayı deneyecektir. Eğer iki sunucu - belirtilirse, belirtilen iki sunucuyu birbirlerine bağlamayı -deneyecektir. - İlk olarak leaf olan sunucuyu ikinci olaraksa hub olan sunucuyu - belirtin.
      IRC Operatörler
      dccdeny <dosya-maskesi> - <gerekçe>
      Belirtilen maskeyle eşleşen dosya isimleri için - DCC engeli koyar. Bu dosyaların gönderimi engellenir.
      IRC Operatörler
      undccdeny <dosya-maskesi>
      Belirtilen maskeyle eşleşen dosya isimleri için - DCC engelini kaldırırIRC Operatörler
      sajoin <nick> <kanal>, - <kanal>
      Bir kullanıcıyı belirtilen kanal(lar)a girmeye - zorlar. Sadece Services & Network Admin statüsünde ki IRC -operatörler - kullanabilirIRC Operatörler
      sapart <nick> <kanal>, - <kanal>
      Bir kullanıcıyı belirtilen kanal(lar)dan - ayrılmaya zorlar. Sadece services & network Admin statüsünde ki -IRC - operatörler kullanabilir.
      IRC Operatörler
      samode <kanal> <mod>
      Network & Services Admin statüsünde ki IRC - Operatörlerin kanalda operatör olmadan kanal modlarını - değiştirebilmelerine olanak sağlar.
      IRC Operatörler
      rping <sunucumaskesi>
      Sunucular arasında ki var olan gecikmeyi - milisaniyeler mertebesinde görüntülenmesine olanak sağlar
      IRC Operatörler
      trace <sunucumaskesi|nick>
      Bir kullanıcı (nick) için kullanıldığında, - belirtilen nick için gecikme ve sınıf bilgisini görüntüler. Eğer bir - sunucu için kullanılırsa, belirtilen sunucu için sınıf/versiyon/link - bilgisini görüntüler.
      IRC Operatörler
      opermotd
      Sunucunun OperMotd dosyasını görüntüler
      IRC Operatörler
      addmotd :<metin>
      Motd dosyasının sonuna belirtilen metni ekler
      IRC Operatörler
      addomotd :<metin>
      OperMotd dosyasının sonuna belirtilen metni - ekler
      IRC Operatörler
      sdesc <açıklama>
      Server Admin statusunde ki IRC Operatörlerin, - sunucunun yeniden başlatılması gerekmeden, açıklama satırını - değiştirebilmelerine olanak sağlar.
      IRC Operatörler
      addline <metin>
      unrealircd.conf'a belirtilen metni ekler
      IRC Operatörler
      mkpasswd <şifre>
      Sade metin halindeki bir şifreyi, - unrealircd.conf'a eklemek için, yeniden şifreler (encrypt)
      IRC Operatörler
      tsctl offset +/- <zaman>
      IRCD'in dahili saatini ayarlar (Ne işe yaradığını - TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN)
      IRC Operatörler
      tsctl time
      TS Raporunu görüntülerIRC Operatörler
      tsctl alltimeBütün sunucular için TS Raporunu görüntülerIRC Operatörler
      tsctl svstime <timestamp>
      Bütün sunucular için TS zamanını belirtmenize - sağlar (Ne işe yaradığını TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN)
      IRC Operatörler
      htm <tercih>
      Yüksek trafik moduna ilişkin özelliklerin kontrol - edilmesini sağlar. Yüksek Trafik Modu (HTM) list whois who vs. gibi - belirli kullanıcı komutlarını deaktif eder. tercih kısmında:
      -ON Sunucuyu Yüksek Trafik Moduna (HTM) girmeye - zorlar
      -OFF Sunucuyu Yüksek Trafik Modundan (HTM) - çıkmaya zorlar
      -NOISY Sunucunun HTM'ye girişinde - ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri mesajı - gönderilmesini sağlar
      -QUIET Sunucunun HTM'ye - girişinde ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri -mesajı - gönderilmemesini sağlar
      -TO <değer> Sunucuya - HTM'yi hangi gelen veri hızında aktif edeceğini belirtir
      IRC Operatörler
      stats <flag>
      B - banversion - Yasaklı versiyonların - listelenmesini sağlar
      b - badword - Kötü - kelimelerin (badwords) listelenmesini sağlar
      C - - link - Link bloğunda (bloklarında) belirtilmiş içerikler -görüntülenir
      d - denylinkauto - deny link (otomatik olarak - reddedilen) bloğunda (bloklarında) belirtilmiş içerikler -görüntülenir
      D - denylinkall - deny link (hepsi) bloğunda - (bloklarında) belirtilmiş içerikler görüntülenir
      e - - exceptthrottle - except throttle bloğunda (bloklarında) belirtilmiş - içerikler görüntülenir
      E - exceptban - except ban - ve except tkl bloklarında belirtilmiş içerikler görüntülenir
      f - spamfilter - filtrenen içeriklerin listesi - görüntülenir (spamfilter)
      F - denydcc - Deny dcc - bloğu (blokları) içerikleri görüntülenir
      G - gline - - gline ve gzline listesi görüntülenir
        Genişletilmiş Flaglar: [+/-mrs] [maske] - [sebep] [ekleyen]
          m - belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) - gline'lar listelenir
          r - belirtilen sebep ile eşleşen/eşleşmeyen gline'lar listelenir
          s belirtilen [ekleyen] ile - eşleşen/eşleşmeyen gline'lar listelenir
      I - allow - - Allow bloğu (blokları) içerikleri görüntülenir
      j - - officialchans - Resmi kanallar (official channels) listesi - görüntülenir
      K - kline - ban user/ban ip/except - ban blokları içerikleri listelenir. Ayrıca bu bloklarda belirtilmemiş - ancak kline zline vs. gibi ban komutlarıyla atılmış *line'larda - listelenir.
      l - linkinfo - link bilgisi - görüntülenir
      L - linkinfoall - Mevcut bütün - linklerin bilgileri görüntülenir
      M - command - - Kullanılan her komutun ve kaç kez kullanıldıklarının listesi - görüntülenir
      n - banrealname - Ban realname bloğu - (blokları) içeriği görüntülenir
      O - oper - Oper - bloğu (blokları) içeriği görüntülenir
      P - port - - Portlarla ilgili bilgi görüntülenir
      q - sqline - - SQLINE listesi görüntülenir
      Q - bannick - Ban nick - bloğu (blokları) içeriği görüntülenir
      r - - chanrestrict - channel deny/allow blokları içerikleri görüntülenir
      R - usage - Kullanım bilgisi görüntülenir
      S - set - Set bloğu içeriği görüntülenir
      s - shun - Shun listesi görüntülenir
        Genişletilmiş Flaglar: [+/-mrs] [maske] - [sebep] [ekleyen]
          m - belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) - shun'lar listelenir
          r - belirtilen sebep ile eşleşen/eşleşmeyen shun'lar listelenir
          s belirtilen [ekleyen] ile - eşleşen/eşleşmeyen shun'lar listelenir
      t - tld - - tld bloğu (blokları) içeriği görüntülenir
      T - - traffic - Sunucu Trafik bilgisi görüntülenir
      u - - uptime - Sunucunun ne kadar süredir hizmet verdiği ve bağlantı sayısı - görüntülenir
      U - uline - Uline bloğu içeriği - görüntülenir
      v - denyver - Deny version bloğu - içeriği görüntülenir
      V - vhost - Vhost bloğu - içeriği görüntülenir
      X - notlink - Link bloğunda - var olan fakat henüz linki gerçekleşmemiş sunucular listesi - görüntülenir
      Y - class - Class bloğu içeriği - görüntülenir
      z - zip - SZiplinked sunucular - hakkında ki sıkıştırma bilgisi görüntülenir
      Z - - mem - Bellek kullanım bilgisi görüntülenir
      Herkes
      module
      Yüklü olan bütüm modüllerin listesinin - görüntülenmesini sağlar Herkes
      close
      Tanımlanamayan bütün bağlantıların IRC Sunucusu - ile bağlantılarını kesmenize olanak sağlar. IRC Operatörler
      -

      -

      8 – Güvenlik İçin Tavsiyeler/Kontrol Listesi

      -
      -

      Eğer güvenlik ile ilgileniyorsanız (ki -ilgilenmelisiniz!), bu bölüm mevcut riskler hakkında genel bir bilgi -edinmenize -yardımcı olacaktır. Bu sebeple ağınızı daha güvenli bir hale getirmek -amacıyla -adım adım ilerleyeceğiniz bir "kontrol listesi" kullanabilirsiniz.

      -

      Listedeki öğeler popularite/risk düzeyi/genelde -kullanılan saldırı metodları sırasıyla dizilmiştir:

      -

      -

      8.1 Şifreler
      -

      Belirteceğiniz oper şifrelerinin, link -şifrelerinin vs. daha güvenli olması için:
      - harf ve -rakam kombinasyonlarından oluşan şifreler ("Whbviwf5" gibi) veya uzun -şifreler -kullanın ("blaheatsafish", "AlphaBeta555" gibi).
      - -Link/oper şifrelerini mail hesabınızın şifreleriyle veya bu tarz -kullandığınız -başka hesapların şifreleriyle aynı şifreler olarak BELİRTMEYİN.
      -

      -

      8.2 Ircd ile alakalı olmayan zayıflıklar
      -

      UnrealIRCd 'in ircd ile alakalı olmayan bir -zayıflıktan dolayı hacklenmesi olasılığı, UnrealIRCd'de bulunan bir bugdan -dolayı hacklenmesi olasılığına nazaran çok daha büyüktür. Örnek olarak http, -smtp, dns ve ftp sunucularınızı aynı konumdan koşturuyorsanız büyük bir -hacklenme riskine sahipsiniz demektir. Aynı zamanda eğer çok kullanıcılı bir -sistemde iseniz (ör: shell aldıysanız) bu durumda ise yerel exploitlere -karşı -hacklenme riskiniz olacaktır. Bu sebepten dolayı shell sağlayıcınızı -seçerken -dikkatli olun.
      -

      -

      8.3 Konfigürasyon dosyası ve yetkilendirme
      -

      Herzaman home dizininizin ve UnrealIRCd'in -bulunduğu dizinin doğru yetkilendirmeye sahip olduğundan emin olun. Aksi -takdirde yerel bir kullanıcı konfigürasyon dosyanızı basitlikle elde -edebilir ve -şifreleri görebilir...Eğer bundan emin değilseniz kısaca: chmod -R go-rwx -/path/to/Unreal3.2 komutunu -kullanın.Hiçbir zaman UnrealIRCd'i webroot veya bu türden paylaştırılmış bir -dizinde bulundurmayın ve yedekleme için doğru yetkilendirmeye sahip -olduğunuzdan -da emin olun.
      Aynı zamanda mümkün olduğunca yeniden -şifrelenmiş (encrypted) şifreler kullanın, Eğer OpenSSL desteği ile derleme -yaptıysanız size şifreleme metodu olarak sha1 veya ripemd160 metodunu -kullanmanızı öneririm, diğer bir metod olarak md5 metodunu da -kullanabilirsiniz. -Eğer daha önce kullandığınız 3.2.1 veya daha önceki versiyonlarda -belirttiğiniz -yeniden şifrelenmiş şifreler varsa (oper bloklarında) size bu şifreleri -yeniden -şifrelemenizi (sadece /mkpasswd komutunu kullanarak) öneririm, çünkü 3.2.1 -'de -bazı önemli anti-crack özellikleri ilk kez kullanıldı.

      Bu -anlatılanların 'güvenlik için -diğer bir katman' olduğunu unutmayın, eğer zayıf şifreler kullanıyorsanız, -bunlar kolaylıkla çözülebilir. Eğer birisi konfigürasyon dosyanızı eline -geçirirmeyi başarırsa, bu dosyada bir saldırganın saldırıyı yapmasına -yardımcı -olacak bir çok bilginin mevcut olduğunu da unutmayın. -(link::password-connect -gibi).
      -

      -

      8.4 Kullanıcı kaynaklı problemler
      -

      Yöneticinizleri herzaman akıllıca seçin, ve -bir zincirin zayıf halkası kavramını da unutmayın. Çok dikkatli -olabilirsiniz ve -hatta bu dökümanda yazılan herşeyi uygulamış olabilirsiniz, fakat yönetici -olarak seçtiğiniz arkadaşlarınızdan birisi aptalca bir hareket yapabilir. Bu -hareket sizin kontrolunuz altında gelişmeyebilir. Bu hareket apaçık olarak -şifre -belirtmesi, harddiskini netbios/kazaa/morpheus aracılığıyla paylaşıma açması -gibi eylemler olabilir. Sadece yapmanız gereken kime hangi yetkileri -vereceğinizi belirlerken dikkatli olmak. (oper::flags).
      -

      -

      8.5 SSL/SSH & sniffing
      -

      Bir oper olarak ve sunucular arası -bağlantılarda SSL kullanmanız sizi "veri korsanlığı"na karşı koruyacaktır. -Veri -korsanlığı saldırganın kullanıcı ile sunucu arasında bir konumu -hacklemesiyle -mümkün olur, böylelikle saldırgan bütün ağ trafiğini görebilir, bütün -konuşmaları görebilir ve bütün şifreleri yaklayabilir. Yine aynı sebepten -dolayı -herzaman telnet yerine SSH kullanın.
      -

      -

      8.6 Denial of Service attacks (DoS) [or: veya: hubumu -nasıl -koruyabilirim?]
      -

      Birçok ağ bir floodun veya (D)DoS -saldırısının ne kadar "eğlenceli" olduğu konusunda tecrübe sahibi olmuştur, -yinede bu saldırılardan doğacak zararı azaltmak için birşeyler -yapabilirsiniz. -Birçok ağ bir hub sunucusuna sahiptir, ve birçok kişinin gözden kaçırdığı -nokta -hub olan sunucunun saldırılara karşı korunmasının oldukça kolay -olduğudur.
      Burada açıklayacağım:
      1. Hub ismini -varolmayan bir hostname olarak belirtin, ör 'hub.yournet.com', -fakat
          bu belirttiğiniz hostname için bir dns -kaydı eklemeyin. Böylelikle saldırgan hostu
          -çözemeyecek ve böylelikle flood -yapamayacaktır. Daha sonra huba sunucuları sadece
          -IP'yi belirterek linkleyin.
          Örnek 1: link -visibiblename.yournet.com { hostname 194.15.123.16; [vs] -};.
          Örnek 2: link -visibiblename.yournet.com { hostname thehostnamethatworks.yournet.com; [vs] -};.
          Bir dipnot düşmek gerekirse, -son örnekte belirttiğiniz sunucu isimlerinin zone transferlerine izin -vermeyeceğinden emin olun, fakat bu bu konunun çok dışında bir olay -;).
      2. Diğer bir önemli adım ise, normal kullanıcıların '/stats -c' komutunu kullanmalarını engellemenizdir
          aksi -takdirde saldırgan kolaylıkla link -bloğunun içeriğini listeleyebilecektir. Eğer bu konuda -endişeleriniz
          varsa (benim gibi) bunu set { -oper-only-stats "*"; }; yönergesiyle kolaylıkla sağlayabilirsiniz. -Böylelikle
          normal kullanıcılar tarafından bütün -stats flaglarının kullanımını engellemiş olacaksınız. Eğer böyle yapmak -istemiyorsanız en azından "CdDlLXz" flaglarının kullanımını engelleyin. Bu -konuyla ilgili daha fazla bilgi bir sonraki bölümde -bulunmaktadır.

      Elbette bu anlatılan adımlar bu -atakların sürekli olarak uygulanması halinde (ör: bir kaç ay) başlangıca -göre -daha düşük oranda yararlı olacaktır, çünkü IP'ler bazı kötü niyetli -kullanıcılar -tarafından bilinebilir.. Aynı zamanda saldırganların, bu adımları -uygulasanız -dahi, hala hub olmayan sunuculara saldırabileceklerini gözardı etmeyin, -fakat bu -1 veya 2 zayıf noktadan (hublara) saldırmaya kıyasla daha fazla çaba -gerektirir, -aynı zamanda böylelikle hubunuz & servisleriniz canlı kalacaktır -:).
      -

      -

      8.7 Bilgilendirme
      -

      STATS
      /stats komutu çok bilgi verici bir komuttur, -olabildiğince -bu komutun kullanımını kısıtlamak isteyebilirsiniz. Bu konuda kendinize -sormanız -gereken soru "kullanıcılarımın görmelerini istediklerim bilgiler neler?" -sorusudur. Birçok büyük ağ bu soruya "hiçbir şey" olarak cevap verir, -bazıları -ise '/stats g' ve '/stats k' harici kullanımları kısıtlar. Size bütün stats -flaglarının oper olmayanlar tarafından kullanımını engellemek için set { -oper-only-stats "*"; }; yapmanızı öneririm, fakat bunu yapmak -istemiyorsanız, -'/stats' yazarak mevcut bütün flagların listesine bir göz atmanızı -öneririm.(eğer kuşkucuysanız, sadece kısıtlayın.. neden bütün bilgileri -görme -ihtiyacı duysunlar?)
      Birkaç örnek vermek gerekirse:
      - /stats o: oper -nicklerini ve hostmaskelerini gösterir.
      - /stats c: sunucu linkleri -hakkında bilgi verir.
      - /stats g, /stats k: genellikle proxy ile -bağlanmayı -deneyen saldırganların listesini görüntüler.
      - /stats E, -/stats e: bir saldırgan bu flagı kullanabilirse buradaki hostmaskelerini -kullanabilir
      - /stats i, /stats y: izinli bağlantı -sağlayan hostları bulmasında saldırgana yardımcı olabilir.
      - /stats P: -Sadece sunucu bağlantılarının gerçekleştiği -portları bulmasında saldırgana yardımcı olabilir
      vs -vs...

      MAP / LINKS
      Birçok kişi /map -veya /links komutunu deaktif etmenin bir yolu olup olmadığını sormuştur. -Bizim -buna cevabımız; böyle bir şey yapmak saçmadır ve güvenlik için yanlış bir -yaklaşımdır, açıklamama izin verin... Kullanıcılar tarafından kullanılan -sunucuları gizlemek, kullanıcıların zaten üzerinde bulundukları sunucuları -bilmelerinden dolayı yararsızdır. Bu konu için bölüm 8.6'ya bakın.
      Şimdi -ne yapaBİLİRSİNİZ? 3.2.1 verisyonundan beri 'flat -map' özelliği mevcuttur (set::options::flat-map), bu özellik bütün -sunucuları -/map be /links komutu uygulamalarında direkt linkli olarak gösterecektir, -böylelikle kullanıcılar hangi sunucunun hangisine linkli olduğunu -anlayamayacaklardır... Bu korunma ve güvenlik için iyi bir özelliktir çünkü -bu -özellikle aynı zamanda 'zayıf nokta'lar kolaylıkla belirlenemeyecektir. Bu -yüzden bu özelliği kullanmanız önerilir. Fakat bu korumanında kusursuz -olmadığını unutmayın... Eğer bir ayrılma (split) meydana gelirse bu durumda -kötü -niyetli kullanıcılar hangi sunucunun hangisine linkli olduğunu -görebilir.

      NORMAL -KULLANICILAR & SNOMASK
      Birçok kişi tarafından -bilinmeyen bir özellikte, normal kullanıcıların bazı snomaskları -kullanabilmesidir, +s +sk gibi. Bu yolla kullanıcılar rehash, kill ve diğer -tipte bazı mesajları görebilirler.
      Bunu önlemek için -set::restrict-usermodes yönergesini: set { -restrict-usermodes "s"; }; şeklinde -belirtebilirsiniz.


      Elbette -bu anlatıların hepsi "bilgi gizleme" olarak nitelendirilir, dolayısıyla bu -"gerçek" güvenlik değildir. Fakat bu sunucunuzun hacklenmesi için gerekecek -çabayı arttırmaya yöneliktir.
      -

      -

      8.8 Exploitlere karşı korunma
      -

      Yığın tabanlı exploitlerin çalışmasını -zorlaştıracak kernel yamaları vardır. Bu iyidir, fakat bu sizin ana odak -noktanız olmamalıdır, diğer başka yollarla exploit saldırılarına -uğrayabileceğinizi unutmayın ve bu büyük bir risktir.. çeşitli -sebeplerle.

      Yapmanız gereken tek şey vardır, -HERZAMAN EN SON VERSİYONU KULLANIN, bunun için unreal-notify mailinglist listesine abone olun -böylelikle yayınlanan yeni versiyon duyurularını alabilirsiniz. -(unreal-uyarısı -sadece yeni versiyon duyuruları içindir, dolayısıyla her X ayda 1 mail -gönderilir.)
      -

      -

      8.9 Özet
      -

      Umarım, hiçbir zaman %100 güvende -olamayacağınızı anlamışsınızdır. Siz (ve biz) burda belirtilmeyen bütün -açıkları -bulup&onaracağız, bir saldırganın ihtiyacı olduğu tek şey sadece 1 -açıkla -bir sunucu bulmaktır. Burada açıklananlar mevcut riskleri minimuma -indirmenize -yardımcı olacaktır. Ağ güvenliğiniz için zaman ayırın ve yöneticilerinizi -eğitin. Birçok kişi hacklenene kadar güvenliğe önem vermez, böyle bir tutum -sergilemeyin :).
      -

      -

      9 – Sıkça sorulan Sorular (FAQ)

      -
      -

      FAQ kısmına çevirimiçi olarak buradan -ulaşabilirsiniz.

      -

      -

      A Düzenli İfadeler

      -
      -

      Düzenli ifadeler Unreal'de bir çok yerde kullanılır, -badwords, spamfilter ve aliases'lerde olduğu gibi. Düzenli ifadeler kalıp -eşleşmesi için kullanılan çok kompleks araçlardır. Bunlar bazen "regexp" -bazen -de "regex" olarak kullanılır. Unreal bu ifadeler için TRE düzenli ifadeler -kütüphanesini kullanır. Bu kütüphane çok kompleks ve kimi zaman karışık -olabilecek ileri düzey ifadeleri destekler. Aşağıda anlatılanlar regexp'nin -çalışma mantığı hakkında size bilgi verecektir. Eğer regexp kullanımı -hakkında -daha fazla bilgiye sahip olmak istiyorsanız ve bu konuyla ilgileniyorsanız -burayı tıklayın -(TRE homepage).

      -

      A.1 Değişmezler

      -
      -

      Değişmezler bir regexp'nin en temel bileşenidir. Basit -olarak değişmezler sade-metinde görülen karakterlerdir. Örneğin; "test" -ifadesi -4 adet değişmez içerir: "t", "e", "s", "t". Unreal'de değişmezler -büyük-küçük -karakter duyarlı değildir, dolayısıyla örnekde verilen ifade "TEST" ile de -eşdeğerdir. "Meta karakter" olmayan bütün karakterler değişmez sayılır. Aynı -zamanda bir karakteri tersbölü (\) karakterini kullanarak da değişmez -yapabilirsiniz. Örneğin nokta (.) bir metakarakterdir. Eğer . 'yı bir -değişmez -olarak kullanmak isterseniz yapmanız gereken .'yı \. olarak belirtmektir ve -Unreal bunu nokta olarak yorumlayacaktır. Aynı zamanda ASCII karakter 3 -(renk) -gibi bir karakteri de kontrol etmek isteyebilirsiniz. Bunu \x şeklinde -bildiri -yaparak sağlayabilirsiniz. Örneğin \x3 olarak bildiri yaptığınızda bu ASCII -karakter 3'e (renk). Burada \x ifadesinden sonra onaltılık bir sayıda -belirtebilirsiniz ve bu \x0'dan \xFF 'e kadar belirtilebilir.

      -

      A.2 Nokta İşleci

      -
      -

      Nokta işleci (.) "herhangi bir karakter"le eşleşme için -kullanılır. Herhangi bir değere sahip tek bir karakterle eşleşir. Örneğin, -"a.c" -düzenli ifadesi "abc", "adc" vs. gibi ifadelerle eşleşecektir. Fakat "abd" -ile -eşleşemeyecektir çünkü "a" ve "c" birer değişmezdir ve karşılaştıracak -ifadeyle -bunların eşleşmesi zorunludur.

      -

      A.3 Yineleme İşleçleri

      -
      -

      Regex'de ençok yapılan hatalardan biri yineleme -işleçlerinin tam anlamıyla joker karakterler olarak kullanılmasıdır. Bu -doğrudur, * ve ? karakterleri joker karakterler olarak kullanılabilir ancak -bunların regexdeki manası tam anlamıyla joker karakterler değildir. Ek -olarak, -düzenli ifadeler daha ileri düzeyde yineleme metodlarını da destekler. -

      En temel yineleme işleci ? işlecidir. Sıfır veya bir -kere eşleşme işlecidir. Joker karakter olarak kullanımında, örneğin "a?c" -ifadesinde yineleme işleci "a"yı takip eden ve "c"den önce gelen herhangi -bir -karakterle eşleşecektir. Fakat regexdeki kullanımında anlamı farklıdır. Bu -durumda "a?c" ifadesi "ac" ifadesi ve "c" ifadesi haricinde hiçbir ifadeyle -eşleşmeyecektir. Dolayısıyle ? işleci; belirtilen düzenli ifadede kendinden -önce -gelen karakterin eşeleşecek ifadede var olup olmamasına göre eşleşme -yapacaktır. -Eğer düzenli ifadede bu işleç joker karakter olarak kullanılmak istenirse bu -durumda aynı ifadeyi "a.?c" şeklinde belirtmeniz gerekir. Bu durumda ? -işleci -"a"yı takip eden ve "c"den önce gelen herhangi bir karakterle eşleşecektir. -

      Bir yineleme işleci de * işlecidir. Aynı şekilde bu -işleçte joker karakter olarak kullanılabilir. Aynı zamanda sıfır veya daha -fazlasıyla eşleştirme işlecidir. * işleci; belirtilen düzenli ifadede -kendinden -önce gelen karakterin 0 ya da daha fazla bulunması durumlarıyla eşleşir. -Örneğin -"a*c" düzenli ifadesi "c" ile sonlandırılmış 0 veya daha fazla "a" içeren -ifadelerle işleşecektir. Misal "aaaaaac" ifadesiyle eşleşir. Eğer joker -karakter -olarak kullanılmak istenirse "a.*c" şeklinde belirtmeniz gerekecektir. -

      + işlecinin yorumlanması * işlecinin yorumlanmasına çok -benzer. Ancak sıfır veya daha fazlazıyla değil 1 veya daha fazlasıyla -eşleştirme -işlecidir. "a+c" düzenli ifadesi "ac" veya daha fazla ardarda "a" içeren -"aaaaaaaaac" gibi bir ifadeyle eşleşecektir. -

      En ileri düzeyde yineleme işleci ise sınırlı sayıda -yineleme işlecidir. Bir sınırlı sayıda yineleme işleciyle kendinden önce -gelen -karakterin kaç kez tekrarlanacağını kesin olarak belirtebilirsiniz. Örneğin, -8 a -içeren veya en az 8 a bulunduran veya 3-5 a bulunduran bir ifadeyle -eşleştirme -yapabilirsiniz. Temel kullanımı {M,N} şeklindedir, burada M sınırlamada -belirtilecek sayılardan küçüğünü, N ise büyüğünü temsil etmektedir. Örneğin -3 ve -5 arasındaki bir sayıda a içeren bir eşleşme için "a{3,5}" şeklinde -belirtmelisiniz. Bununla birlikte M sayısı N sayısına eşit olamaz. Bu -durumda -eğer tam 8 a içeren bir eşleşme için "a{8]" şeklinde belirtmelisiniz. Bu -"aaaaaaaa" ile eşleşmeye denktir. En az 8 a içeren bir ifadeyle eşleşme için -"a{8,}" şeklinde belirtmelisiniz. -

      Default olarak, bütün yineleme işleçleri aç gözlüdür. -Temel olarak bunun anlamı bir yineleme işleci olabildiğince çok karakterle -eşleşir. Bu bir örnekle daha iyi açıklanabilir. -

      Aşağıdaki ifade gibi bir metnimiz olsun:
      HELLO
      Belirtilen düzenli -ifade de -aşağıdaki olsun:
      .+L -

      Bu örnekte, .+ işlecinin "HE." ile eşleşeceğini -düşünmelisiniz. Bununla birlikte bu doğru değildir. Çünkü + işleci aç -gözlüdür, -dolayısıyla "HEL." ile eşleşecektir. Bunun sebebi, bu işlecin giriş metninde -bulunan eşleşecek en büyük parçayı seçmesidir. Bu örnekte bu işleç "HEL" -parçasıyla eşleşti. Metin "HELLO" olduğundan, "HEL" ifadesini bir "L" takip -ettiğinden, eşleşme gerçekleşti. Bununla birlikte bazen de bir işleç, -yineleme -işlecinden sonra ? karakteri kullanılarak bu durumdan kurtarılabilir. -Yukarıdaki -örneğe göre düzenli ifade ".+?L" şeklinde değiştirilirse bu durumda .+? -işleci -"HE" ile eşleşecektir. ? karakteri herhangi bir yineleme işlecine -eklenebilir: -??, *?, +?, {M,N}?.

      -

      A.4 Parantez İfadeleri

      -
      Parantez ifadeleri kullanmak "veya" -operatörü oluşturmak için uygun bir yoldur. Örneğin, eğer "bir a ile veya a -b -ile eşleş" şeklinde söylemek istiyorsanız. Parantez ifadeleri ismini ([]) -karakterlerinin kullanılmasından alır. Temel kullanımıyla parantez ifadeleri -bir -seri karakteri içerebilir. Böylelikle bu karakterler aralarında "veya" -operatörü -varmış gibi değerlendirilir. Bir örnek olarak, "[abc]" ifadesi "a,", "b," -veya -"c." ile eşleşir. Bu nedenle "a[bd]c" düzenli ifadesi ise "abc" ve "adc" -eşleşir -fakat "acc." ile eşleşmez. -

      Bu ifadeler uygulamada ençok bir harf veya bir rakam -kontrolunde kullanılır. Birer birer belirtmekten, yani "[0123456789]" -şeklinde -belirtmekten daha ziyade parantez ifadeleri içinde aralık belirtebilirsiniz. -Bu -aralıkları başlangıç değeri ve bitiş değeri arasına - karakteri koyarak -belirtebilirsiniz. Böylelikle bir rakam kontrolu için en basit şekliyle -"[0-9]" -şeklinde belirtme yapabilirsiniz. Bu türdeki belirtme harfler için ve ASCII -değerleri içinde geçerlidir. Eğer bir harf eşleşmesi yapmak istiyorsanız -basitçe -"[a-z]" şeklinde belirtebilirsiniz, Unreal büyük-küçük harf duyarlılığına -sahip -olmadığından bu bütün (büyük/küçük) karakterleri kapsayacaktır. Aynı zamanda -aynı ifadede çoklu aralıklar da belirtebilirsiniz. Bir harfle veya bir -rakamla -eşleşme yapmak istiyorsanız, "[0-9a-z]" şeklinde belirtmelisiniz. - -karakterinin -parantez ifadelerinde özel bir karakter olduğunu unutmayın. - değişmeziyle -bir -eşleşme yapmak istiyorsanız, bu değişmezi parantez ifadesinin ya ilk -karakteri -olarak ya da son karakteri olarak belirtin. Örneğin "[0-9-]" ifadesi -herhangi -bir rakam veya - karakteriyle eşleşecektir. -

      Bunları daha da sadeleştirmek için, parantez -ifadelerinde kullanılmak üzere "karakter sınıfları" vardır. Bu karakter -sınıfları ihtiyaç duyulan belirli aralıkları tanımlamak için kullanılır. -Karakter sınıfları parantez ifadesi içinde, isimlerinin başına ve sonuna : -karakteri eklenerek kullanılır. Örneğin "[0-9]" gibi bir ifade "[:isdigit:]" -şeklinde yazılabilir. Aşağıda mevcut karakter sınıfları ve işlevler -belirtilmiştir: -

        -
      • alnum - sadece - alfanumerik karakterler -
      • alpha - alfabetik - karakterler -
      • blank - boşluk - karakterleri -
      • cntrl - kontrol - karakterleri -
      • digit - onluk tabanda - rakam değerleri (0 'dan 9 'a kadar) -
      • graph - boşluk - karakteri hariç bütün basılabilir karakterler -
      • lower - sadece küçük - harfleri gözönünde bulunduran kriter -
      • print - boşluk - karakteri dahil bütün basılabilir karakterler -
      • punct - boşluk - karakteri ve alfanumerik karakterler hariç basılabilir karakterler -
      • space - white-space - characters -
      • upper - sadece büyük - harfleri göz önünde bulunduran kriter -
      • xdigit - onaltılık - tabanda rakam değerleri
      Karakter sınıfları ile ilgili bir diğer -önemli -nokta ise, karakter sınıfları parantez ifadesi içinde tek eleman olmalı, -yani -başka bir elemanla birlikte kullanılamaz. Örneğin, "[:isdigit:-]" geçersiz -bir -kullanımdır. Bunun için "[[:isdigit:]-]" şeklinde kullanın. -

      Parantez ifadelerinin son özelliği olumsuzlamadır. Bazı -zamanlarda "bu karakterler haricinde herhangi bir karakter" gibi bir ifadeyi -belirtmek isteyebilirsiniz. Örneğin eğer "harf olmayan" bir karakteri -kontrol -etmek isterseniz, burada a-z harici karakterlerden bahsedildiği açıktır, -bunu -ifadenin başına ^ karakterini ekleyerek belirtebilirsiniz. Dolayısıyla bu -durumda "[^a-z]" ifadesi harf olmayan herhangi bir karakterle eşleşir. - -karakterinde olduğu gibi, eğer ^ karakterini bir değişmez olarak belirtmek -isterseniz, bu değişmezi ilk karakter pozisyonunda kullanmayın, "[a-z^]" -ifadesinde olduğu gibi kullanın. Karakter sınıfları içinde aynı uygulama -geçerlidir, "[^[:isdigit:]]" ifadesiyle rakam olmayan bütün karakterler -belirtilmiştir.

      -

      A.5 Demirleme İşleçleri

      -
      Demirleme işleçleri dizilerinin -belirtilemeyeceği koşullarda, bazı genel parantez ifadeleri için kısayollar -belirtmek için kullanılır. -

      ^ karakteri belirtilecek düzenli ifadenin başında -kullanıldığında, eşleşme yalnızca kontrol edilen metnin belirtilen düzenli -ifade -ile başlamasıyla gerçekleşecektir. Örneğin düzenli ifade "test" olarak -belirtilirse bu ifade "test" ifadesini içerdiğinden, "this is a test" metni -ile -eşleşecektir. Ancak düzenli ifadeyi "^test" olarak belirtirseniz bu sefer -eşleşme gerçekleşebilmesi için metin "test" ile başlamak zorundadır. Ek -olarak $ -karakteri ise belirtilecek düzenli ifadenin sonunda kullanıldığında, eşleşme -yalnızca kontrol edilen metnin belirtilen düzenli ifade ile sonlandığı -durumlarda gerçekleşecektir. Örnek olarak "^test$" düzenli ifadesi, yalnızca -"test." metniyle eşleşecektir. -

      Diğer bütün demirleme işleçleri belirli bir karakterin -başına \ konulmasıyla kullanılır. Örneğin, bir kelimenin başını ve sonunu -kontrol etmek için, \< ve \> kullanabilirsiniz. -

      Geriye kalan demirleme işleçleri ise biri pozitif biri -negatif değeri temsil etmek üzere 2 formdadır. Bu işleçler aşağıda -listelenmiştir: -

        -
      • \b - Kelime sınırı -
      • \B - Non-word boundary -
      • \d - Rakam karakterleri - ([[:digit:]] ifadesine denktir) -
      • \D - Rakam olmayan - karakterler ([^[:digit:]] ifadesine denktir) -
      • \s - Boşluk karakteri - ([[:space:]] ifadesine denktir) -
      • \S - Boşluk-olmayan - karakter ([^[:space:]] ifadesine denktir) -
      • \w - İşaret - karakterleri ([[:alnum:]_] ifadesine denktir) -
      • \W - İşaret-olamayan - karakterler ([^[:alnum:]_] ifadesine denktir) -
      -

      A.6 Veya İşleci

      -
      Veya işleci | karakteridir. Örneğin "a veya -b" gibi bir ifade belirtmek için "a|b" bildirimini yapabilirsiniz.
      -

      A.7 Gruplama İşleçleri (Alt İfadeler)

      -
      Gruplama işleçleri alt ifadelerdir. Bir alt -ifade oluşturmanın 2 yolu vardır. 2 metod "grup adresleme işleci" açısından -bakıldığında farklılık göstermektedir. Grup adresleme işleci kullanan bir -alt -ifade bildirmek için, açık parantez yerine "(?:" ifadesini kullanın. Örneğin -"([a-z])" ifadesini bir alt ifade olarak bildirmek için "(?:[a-z])" şeklinde -belirtmelisiniz. Bütün yineleme işleçleri alt ifadelerde "alt ifadenin 1 -veya -daha fazla tekrarlanması" şeklinde kullanılabilir. Örneğin "[0-9][a-z][0-9]" -gibi bir düzenli ifademiz varsa ve bu ifadenin iki kez tekrarlanması -durumlarında eşleşme yapmak istiyorsak bunu "([0-9][a-z][0-9]){2}" şeklinde -belirtebilirsiniz.
      -

      A.8 Grup Adresleme İşleci

      -
      Grup adresleme işleçleri düzenli ifadenin -önceden belirtilmiş bir alt ifadesiyle bir adresi eşleştirmenize olanak -sağlar. -Bir grup adresleme işlecini tersbölü karakteri (\) ve ardından da 0-9 -arasında -bir rakam belirterek kullanabilirsiniz, örneğin \1. \0 grup adresleme işleci -özel bir işleçtir, bu işleçle düzenli ifadenin tamamını kapsatabilirsiniz. -Grup -adresleme işleçlerinden, aynı diziyi 2 kere içeren bir metni eşleştirmek -istediğinizde faydalanabilirsiniz. Örneğin, nick!user@host gibi bir maske -olsun. -Ve "[0-9][a-z]{5}" düzenli ifadesi ile eşleşen bir nick ve kullanıcı adı -kullanan bir trojan olsun ve aynı nicki ve identi kullansın. Bu durumda -"[0-9][a-z]{5}![0-9][a-z]{5}@.+" ifadesi ile eşleşme yapamazsınız çünkü bu -ifade -nick ve ident kısmının farklı oldugu durumlara izin verebilir. Örneğin nick -labcde ve identte 2fghij olabilir. Grup adresleme işleçleri ile bu -limtlemenin -üstesinden gelebilirsiniz. Bunun için (bu örnek için) -"([0-9][a-z]{5})!\1@.+" -şeklinde ifade belirtmeniz yeterli olacaktır. -

      9 tane grup adresleme işleci olduğundan (?:) notasyonu -kullanışlıdır. Bu size grup adresleme işleci boşa kullanılmaksızın alt ifade -oluşturmanıza izin verir.

      -

      A.9 Büyük/Küçük Harf Duyarlılığı

      -
      Bahsedildiği üzere, Unreal bütün düzenli -ifadeleri büyük/küçük harf duyarsız olarak kullanır. Bunun için temel -gerekçe; -bir ifadeyle daha fazla eşleşme yapmak isteyebilirsiniz. Örneğin -"www.test.com" -metnini bloklamak isteyebilirsiniz, bunun için “WWW.TEST.COM” ifadesini -belirtmek zorunda kalmayacaksınız.. Bununla birlikte, büyük/küçük harf -duyarlılığının aktif olması gereken durumlar da olabilir. Örneğin belirli -trojanların eşleşmesinde. Bu durumda büyük/küçük harf duyarlılığını aktif -edebilirsiniz. Bu duyarlılığı açmak için "(?-i)" ifadesini, kapamak için ise -"(?i)" ifadesini kullanabilirsiniz. Örneğin, "(?-i)[a-z](?i)[a-z]" ifadesi -yalnızca küçük harflerle eşleşecektir.
      - +
      +UnrealIRCd - 3.2 - Resmi Döküman + + + + +English | German | +Spanish | +Hungarian +| +French +| +Greek +| Dutch | +Russian | +Turkish +

      +
      UnrealIRCd
      http://www.unrealircd.com/
      Versiyon: 3.2.6
      En Son Güncelleme: +2006-12-22

      Head Coders: Stskeeps / codemastr / Syzop / +Luke
      Katkıda Bulunanlar: McSkaf / Zogg / NiQuiL / assyrian / chasm +/ DrBin / +llthangel / Griever / nighthawk
      Dökümantasyon: CKnight^ / +Syzop
      +Çeviri: oepidus (tt`), Strathmore (Timaeus) - irc.trsohbet.com
      +

      Bu dökümanı görüntüleyebilmeniz için aşağıda listelenmiş olan +tarayıcılardan birine sahip olmanız gerekir. Güncellenmiş dökümanlara http://www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html +adresinden ulaşabilirsiniz ve ayrıca FAQ (Sıkça Sorulan Sorular) bölümüne +de +http://www.vulnscan.org/UnrealIRCd/faq/ +adresinden ulaşabilirsiniz.

      +

      Uyumlu Tarayıcılar:
      +

        +
      • Opera 6.02 +
      • Microsoft Internet Explorer 6.X / 5.5 +
      • Netscape Navigator 6.X +
      • Mozilla 1.2.X +
      • Lynx (to a point)
      +

      +

      DİZİN / İÇERİK TABLOSU
      1. Önsöz +& Notlar
      ---1.1. 3.1.x -> 3.2 yükseltme / uyum üzerine +notlar
      ---1.2. 3.2 versiyonları arasında yükseltme üzerine notlar +
      2. Kurulum
      3. +Özellikler
      -- +3.1. Gizleme (Cloaking)
      -- +3.2. Moduller
      -- +3.3. Snomasklar
      -- +3.4. Aliases
      -- +3.5. Helpop
      -- +3.6. Oper +erişim seviyeleri
      -- 3.7. Oper +komutları
      -- 3.8. SSL
      -- +3.9. IPv6
      -- +3.10. Zip +links
      -- 3.11. Dinamik DNS/IP bağlantı desteği
      -- 3.12. Anti-flood özellikleri
      -- 3.13. Ban +tipleri
      -- 3.14. Spamfilter
      -- +3.15. CIDR
      -- +3.16. Nick +Karakter Grupları
      -- 3.17. CGI:IRC +Desteği
      -- 3.18. Zaman Senkronizasyonu
      -- 3.19. Diğer özellikler
      4. unrealircd.conf dosyasının +konfigürasyonu
      ---4.1. Açıklamalı konfigürasyon +dosyası
      ---4.2. Me Bloğu -=- +(M:Line)
      ---4.3. Admin +Bloğu -=- (A:Line)
      ---4.4. Class +Bloğu -=- (Y:Line)
      ---4.5. Allow +Bloğu -=- (I:Line)
      ---4.6. Listen +Bloğu -=- (P:Line)
      ---4.7. Oper Bloğu +-=- (O:Line)
      ---4.8. DRpass +Bloğu -=-(X:Line)
      ---4.9. Include +Yönergesi
      ---4.10. Loadmodule +Yönergesi
      ---4.11. Log +Bloğu
      ---4.12. TLD Bloğu +-=- (T:Line)
      ---4.13. +Ban Nick Bloğu -=- (Q:Line)
      ---4.14. Ban User Bloğu -=- (K:Line)
      ---4.15. Ban IP Bloğu -=- (Z:Line)
      ---4.16. Ban Server Bloğu -=-(q:Line)
      ---4.17. Ban Realname Bloğu -=- (n:Line)
      ---4.18. Ban Version Bloğu
      ---4.19. Ban Exception Bloğu -=- (E:Line)
      ---4.20. +TKL Exception Bloğu
      ---4.21. Throttle Exception Bloğu
      ---4.22. Deny DCC Bloğu -=- (dccdeny.conf)
      ---4.23. Deny Version Bloğu -=- (V:Line)
      ---4.24. Deny Link Bloğu -=- (D:Line / d:Line)
      ---4.25. +Deny Channel Bloğu -=- +(chrestrict.conf)
      ---4.26. Allow Channel Bloğu
      ---4.27. Allow DCC Bloğu
      ---4.28. Vhost Bloğu -=- (vhost.conf)
      ---4.29. Badword Bloğu -=- (badwords.conf)
      ---4.30. Uline Bloğu -=- (U:Line)
      ---4.31. Link Bloğu -=- (C/N/H:Lines)
      ---4.32. Alias Bloğu
      ---4.33. Help Bloğu
      ---4.34. Official Channels Bloğu
      ---4.35. Spamfilter Bloğu
      ---4.36. Cgiirc Bloğu
      ---4.37. Set Bloğu -=- (networks/unrealircd.conf)
      5. Ek Dosyalar
      6. Kullanıcı & Kanal Modları
      7. Kullanıcı & Oper Komutları
      8. Güvenlik için tavsiyeler/kontrol listesi
      ---8.1. Şifreler
      ---8.2. Ircd ile alakalı olmayan zayıflıklar
      ---8.3. Konfigürasyon dosyası ve yetkilendirme
      ---8.4. +Kullanıcı-kaynaklı problemler
      ---8.5. SSL/SSH & sniffing
      ---8.6. +Denial of Service attacks (DoS) [veya: hubumu nasıl +koruyabilirim?]
      ---8.7. Bilgilendirme
      ---8.8. Exploitlere karşı korunma
      ---8.9. Özet
      9. Sıkça Sorulan +Sorular (FAQ)
      A. +Düzenli İfadeler
      ---A.1. Değişmezler
      ---A.2. Nokta İşleci
      ---A.3. Yineleme İşleçleri
      ---A.4. Parantez İfadeleri
      ---A.5. Demirleme İşleçleri
      ---A.6. Veya İşleci
      ---A.7. Gruplama İşleçleri (Alt ifadeler)
      ---A.8. Grup Adresleme İşleci
      ---A.9. +Büyük/küçük harf duyarlılığı

      +

      1.0 – Önsöz & Notlar

      +
      +

      Bu döküman UnrealIRCd ile özel kullanım için +yazılmıştır. Bu dökümanın, UnrealIRCd Geliştirme Grubunun yazılı izni +olmadan, +başka bir yazılım paketi ile kullanımı veya başka bir yazılım paketi ile +dağıtılması kesinlikle yasaktır. Bu dökümanı, UnrealIRCd ile kullanılması +koşulu +ile ve dökümanın üzerinde hiçbir şekilde değişiklik yapmamak koşulu ile, +istediğiniz miktarda kopyasını çıkarabilir / bastırabilir / çoğaltabilir / +yayınlayabilirsiniz. - Copyright (telif Hakkı) UnrealIRCd Geliştirme Grubu +2002-2006

      +

      Yardım istemeden önce lütfen bu klavuzu okuyun, ayrıca +FAQ +(Sıkça Sorulan Sorular) kısmına GERÇEKTEN göz atın +ki bu kısımda sorularınızın/sorunlarınızın yaklaşık olarak %80 'i +cevaplanmıştır/çözülmüştür. Eğer hala yardıma ihtiyacınız varsa, +irc.ircsystem.net (port 6667) sunucusunda #unreal-support kanalından yardım +için +istekte bulunabilirsiniz. (not: belgeleri ve faq kısmını okumuş olduğunuzu +kabul +ediyoruz ve UnrealIRCd hakkında yardım edebiliriz, servisler hakkında +değil!). +Eğer bir açık varsa (bug, hata) bunu http://bugs.unrealircd.org/ adresine +bildirin.

      +

      1.1 – 3.1.x -> 3.2 uyum / yükseltme üzerine notlar +

      +
      +

      Unreal3.1.x den Unreal3.2 ye yükseltme yaptığınızda var +olan konfigürasyon dosyasının değişmiş olduğuna dair uyarılacaksınız, +başlangıçta bu değişimi yapmak size zor gözükebilir, fakat değişim olduğunda +bunu daha iyi bulacaksınız!

      +

      Aynı zamanda 3.1.x’de olan özellikleri bilmenize rağmen +özellikler hakkında ki bölüm 3’ü okumayı unutmayın, çünkü birkaç yeni +özellik +mutlaka vardır.

      +

      3.1.x ile 3.2 uyum/link açısından uygun değildir, fakat +eğer gerçekten bunu yapmak istiyorsanız, en düşük 3.1.4’e ihtiyacanız +vardır, +fakat 3.1.5.1 şiddetle önerilir.

      +

      1.2 – 3.2 versiyonları arasında yükseltme üzerine +notlar

      +
      +

      Yükseltme için önerilen yol:
      Linux:
      +

        +
      • Eski UnrealIRCd klasörünü yeniden adlandırın (aksi + takdirde bir sonraki adımda bu klasörün üzerine yazım gerçekleşecektir) +
      • Yeni UnrealIRCd versiyonunu extract edin ve ./Config + ve make komutlarını kullanın +
      • Eski konfigürasyon dosyalarınızı (unrealircd.conf, + motd, rules, server.* [SSL certs], network dosyası,vs) yeni klasöre + kopyalayın. +

      Windows:
      +
        +
      • Bütün konfigürasyon dosyalarınızı geçici bir konuma + kopyalayın. +
      • Kurulu olan eski Unreal versiyonu için uninstaller’ı + çalıştırın. +
      • Yeni Unreal versiyonu için installer’ı çalıştırın. +
      • Eski konfigürasyon dosyalarınızı yeni klasöre + kopyalayın.
      +

      Aynı zamanda lütfen .RELEASE.NOTES dosyasını nelerin +değiştiğini görmek için kontrol edin. Eğer versiyonlar arasında ki değişim +için +bir hata (bug) bildirecekseniz; bunun bir bug olduğunu bildirmeden önce +.RELEASE.NOTES kısmını okuduğunuza emin olun.

      +

      2.0 - Kurulum
      +


      Test edilmiş & Desteklenen İşletim +Sistemleri:
      +
        +
      • *NIX versiyonları: +
          +
        • Linux (2.2.*, 2.4.*, 2.6.*) +
        • FreeBSD (4.*, 5.*, 6.*) +
        • NetBSD (2.*) +
        • OpenBSD (3.7, 3.8, 3.9) +
        • Solaris (9, 10)
        +
      • Windows versiyonları: +
          +
        • Windows 2000 (Pro, Server, Advanced Server) +
        • Windows XP (Home, Pro) +
        • Windows 2003
        +
      • Test Edilmiş Mimariler: +
          +
        • ia32 (i386, i486, i586, i686) +
        • ia64 +
        • amd64 +
        • alpha

      Eğer +sizin kurduğunuz Unreal3.2 diğer bir işletim sistemi ile düzgün olarak +çalışıyorsa lütfen ayrıntıları aşağıdaki adrese bildirin: coders@lists.unrealircd.org
      +

      +

      Kurulum Yönergeleri
      Linux:
      +

        +
      1. gunzip -d Unreal3.2.X.tar.gz +
      2. tar xvf Unreal3.2.X.tar +
      3. cd Unreal3.2 +
      4. ./Config +
      5. En iyi bilginizle bu soruları cevaplayın, genellikle; + eğer emin değilseniz, başlangış ayarları iyi çalışacaktır! +
      6. make +
      7. Şimdi unrealircd.conf dosyasını ve diğer + konfigürasyon dosyalarını oluşturun, Bölüm 4’e bakın.
      +

      Windows:
      +

        +
      1. Unreal installer ‘ı çalıştırın +
      2. unrealircd.conf ve diğer konfigürasyon dosyalarınızı + oluşturun, Bölüm 4’e bakın.
      +

      +

      +

      3.0 - Özellikler

      +
      +

      Bu bölümde bazı ana/kullanışlı özellikler anlatılmıştır. +Bu bölüm için genel bir bilgi gerekmektedir ve bazen de konfigürasyon +dosyalarından bahsedilecektir (hakkında henüz bir fikir sahibi olmadığınız +şeyler).

      +

      Bu bölümü atlayabilirsiniz, bununla birlikte bu bölümü +kurulumdan önce ve sonra okumanız tavsiye edilir. Aksi takdirde 'cloaking', +'snomasks' vs. gibi özelliklerin genel mantığını +anlayamayacaksınız.

      +

      3.1 - Gizleme (Cloaking)

      +
      +

      Gizleme(cloaking) kullanıcıların gerçek hostname’lerinin +gizlenmesi için bir yoldur, örneğin eğer gerçek hostname’iniz +d5142341.cable.wanadoo.nl, ise, bu (giriş, çıkış ve +whois ‘de, vs) rox-2DCA3201.cable.wanadoo.nl olarak +görülecektir. Bu özellik kullanıcıların, gerçek host/IP’yi +göremeyeceklerinden, +birbirlerine saldırı yapmalarını engellemeye yardımcı olur..

      +

      Bu +x kullanıcı modu ile kontrol edilir. (örnek: /mode +nickiniz +x), aynı zamanda adminler, +x kipini default kipi olarak veya +kullanıcıların –x yapamamaları için belirtebilirler.

      +

      Gizlenmiş bir host, gizleme (cloaking) modülü tarafından +oluşturulur (en az bir tane yüklenmesi zorunludur), şu an için sadece 1 +modul +içermektedir:
      cloak: Bu +modül 3.2.1’den bu yana resmi gizleme modulüdür, eski algoritmaya nazaran +daha +güvenlidir, dahili olarak md5 kullanır ve 3 adet; küçük karakter olarak +(a-z) +arası karakterleri içeren, büyük karakter olarak (A-Z) arası karakterleri +içeren +ve rakam olarak (0-9) arası rakamları içeren set::cloak-keys:: belirtmenizi +gerektirir. [ör: "AopAS6WQH2Os6hfosh4SFJHs"]. Örnek için example.conf +dosyasına +bakın.
      +

      Gizleme anahtarları (cloak keys) bir ağdaki bütün +sunucular için aynı olmak zorundadır. Aynı zamanda gizleme anahtarları +(cloak +keys) gizli tutulmalıdır, çünkü gizleme anahtarlarının bilinmesi halinde +gerçek +hostun bulunabilmesi olasıdır.

      +

      3.2 - Moduller

      +
      +

      UnrealIRCd modül özelliğini destekler, bu:
      - Ircd çalışırken +yükleyebilirsiniz/yeniden +yükleyebilirsiniz/iptal edebilirsiniz  (/rehash ile). Bu bazı açıkların +saptanmasını veya yeni özelliklerin restart atmadan eklenmesini +sağlamaktadır.
      - Diğer kişiler yeni komutlar,yeni +kullanıcı modları ve hatta yeni kanal modları içeren (3. parti) moduller +oluşturabilirler.
      Sebeplerinden dolayı çok iyi bir +özelliktir. UnrealIRCd sadece birkaç modül ile başlar. www.unrealircd.com +-> +modules kısmına bir göz atın veya 3. parti modulleri bulabilmek için google +arama motorunu kullanın. +

      En az 2 modulü yüklemeniz (load) zorunludur, aksi +taktirde boot işlemini gerçekleştiremezsiniz!:
      - +komutlar modulü: commands.so (windows için commands.dll)
      - gizleme +modulü: çoğunlukla cloak.so (windows için +cloak.dll).

      +

      3.3 - Snomasklar

      +
      +

      Snomasklar sunucu uyarı maskeleridir, kullanıcı modunun +özel bir tipidir ki bu hangi sunucu uyarılarını alacağınızı belirler/kontrol +eder. (çoğunlukla operler tarafından kullanılır)

      +

      Şu şekilde belirtilebilir: /mode nickiniz +s SNOMASK, +örneğin: /mode nickiniz +s +cF
      Kullandığınız snomask’ın +kaldırılması için: /mode nickiniz +s -c
      Veya +kullandığınız bütün snomask’ları: /mode nickiniz –s yazarak +kaldırabilirsiniz.

      +

      Mevcut SNOMASKlar:
      c - Yerel +sunucudaki giris/cikislari gosterir
      F - Uzak sunucudaki +giris/cikislari gosterir
      f - Flood saldiri uyarilarini +gosterir
      k - Atilan /kill komutlarini gormenizi +saglar.[*]
      e - /CHG* ve /SET* ile servislere gonderilen +komutlari gormenizi saglar
      j - Junk uyarı mesajlarını +gormenizi saglar.
      v - vhost kullanım uyarılarını +görmenizi sağlar
      G - gline/shun uyarılarını görmenizi +sağlar
      n - Yerel sunucudaki nick degisimlerini gormenizi +saglar
      N - Uzak sunucudaki nick degisimlerini gormenizi +saglar
      q - Q-line sebebi ile reddedilen nickleri +gormenizi saglar
      s - Genel uyarıları gormenizi +saglar.[*]
      S - Spamfilter eslesmelerinin uyarılarını +görmenizi sağlar
      o - oper açma uyarılarını görmenizi +sağlar
      [*: ircop olmayanlarda kullanabilir]

      +

      Otomatik olarak alınacak snomaskları +(set::snomask-on-connect) ile ve oper açıldığı anda alınacak snomaskları +(set::snomask-on-oper, oper::snomask) ile belirtebilirsiniz.

      +

      Başlangış ayarı olarak, bir kullanıcı +s modunu +kullanıyorsa, belirtilmiş snomasklar kullanılır. Oper olmayanlar için +snomasklar ++ks, oper olanlar için ise +kscfvGqo.

      +

      3.4 - Aliases

      +
      +

      Aliases ile sunucu-taraflı alias komutlarını +düzenleyebilirsiniz. Örneğin nickserv’e identify komutunu "/ns identify +blah" +komutunu kullanarak gönderebilirsiniz. (bu: privmsg nickserv identify blah +olarak değerlendirilecektir). Hatta daha kompleks yapılarda kisaltmalar +(aliases) yapabilirsiniz; /register ‘in register’dan sonra gelecek ilk +parametrenin # işareti olduğu durumlarda ChanServ’e olmadığı durumlarda ise +NickServ’e gönderilmesi gibi.

      +

      Kısaltmalar (aliases) konfigürasyon dosyasındaki alias blokları ile düzenlenir, aynı zamanda bu +alias’ları bir dosya ile de belirtebilirsiniz.

      +

      3.5 - Helpop

      +
      +

      UnrealIRCd bünyesinde /helpop ile erişilebilinen bir +yardım sistemine sahiptir. /helpop komutu tamamıyla, konfigürasyon +dosyasında ki +help bloğu aracılığıyla kullanıcı tarafından düzenlenebilir. Ek olarak tüm +komutlar için bazı temel kullanımları içeren bir help.conf dosyası da dahil +edilmiştir.
      Örneğin /helpop +chmodes size UnrealIRCD’in sahip olduğu bütün kanal modlarını +gösterecektir.
      Eğer IRCOp veya (helpop) yardım operatörü +iseniz kelimenin başına ‘?’ karakteri koymanız gerektiğini unutmayın, bu +durumda +/helpop için /helpop ? +ve /helpop chmodes için de /helpop ?chmodes vs. kullanmanız +gerekecektir.

      +

      3.6 - Oper erişim seviyeleri

      +
      +

      UnrealIRCd ‘de birkaç oper seviyesi vardır ve bunların +herbirine yetki eklemesi (örneğin /gline kullanma yetkisi gibi) +yapabilirsiniz, +böylelikle her opere ihtiyacı olduğu erişimi sağlayabilirsiniz.

      +

      Bu oper bloğundaki oper flagları ile kontrol edilir. +Daha fazla bilgi için oper bloğuna bakın.

      +

      3.7 - Oper komutları

      +
      +

      UnrealIRCd’de, birçok etkili oper komutu vardır. Bunlar +Kullanıcı & Oper Komutları kısmında +açıklanmıştır, +kurulumdan sonra okumak isteyebilirsiniz :).

      +

      3.8 - SSL

      +
      +

      Açılımı Secure Socket Layer olan SSL ile güvenli +şifrelenmiş bağlantılar yapabilirsiniz. Bu sunucu<->sunucu trafiğini +şifrelemek için kullanılabilir, fakat aynı zamanda istemci<->sunucu +trafiği de şifrelenebilir. SSL özelliğini korsanlığa (veri korsanlığı) karşı +korunmada veya güvenlik için kullanabilirsiniz.

      +

      Bu özelliği kullanabilmeniz için IRC sunucunuzun SSL +desteği ile derlenmiş olması gerekmektedir. SSL portunu listen::options::ssl +yönergesi ile belirtebilirsiniz.

      +

      SSL portundan normal bağlantı sağlayamazsınız (bu yüzden +SSL portunu 6667 olarak belirtmeyin!), aynı zamanda SSL protokolunu +destekleyen +bir yazılım kullanmanız gerekmektedir.

      +

      SSL desteği olan yazılımlar: XChat, irssi, mIRC (6.14 ve +üzeri, aynı zamanda birkaç ek adım gerektirmektedir)

      +

      SSL desteği olmayan yazılımlar için ise stunnel +gibi bir gecit kullanabilirsiniz, aşağıda örnekte bir stunnel.conf +verilmiştir +(stunnel 4.x için):

         client = yes
      +   [irc]
      +   accept = 127.0.0.1:6667
      +   connect = irc.myserv.com:6697
      +
      Eğer 127.0.0.1'e 6667 portundan bağlanırsanız, trafiğiniz +şifrelenecektir +ve irc.myserv.com port 6697 'ye yönlendirilecektir. (SSL portu). +

      +

      Aynı zamanda sunuculara bağlanırken sertifakaları +doğrulamalısınız ve körü körüne onaylamamalısınız aksi takdirde "aktif veri +korsanlığı" saldırılarına karşı korunmanız hala zayıf kalacaktır. Bu konu bu +başlığın konusunun dışında bir konudur. (SSL hakkında bilgi edinin, bize +sormayın). [mIRC ve xchat yazılımları sertifikayı onaylayıp +onaylamayacağınıza +dair bir pop up açmaktadır, dolayısıyle bu iyidir.]

      +

      3.9 - IPv6

      +
      +

      UnrealIRCd IPv6 özelliğini, beta15'den beri devamlı +olarak desteklemektedir.
      Bu özelliği kullanabilmeniz +için işletim sisteminizin IPv6 özelliğini desteklemesi ve UnrealIRCd'de +./Config +sırasında IPv6 desteğini aktif etmeniz gerekmektedir.
      +

      Microsoft'un w2k/XP için deneme aşamasında olan IPv6 +uygulaması olmasına rağmen, bu (henüz) UnrealIRCd tarafından +desteklenmemektedir.

      +

      3.10 - Zip links

      +
      +

      Zip links sunucu<->sunucu linkleri için aktif +edilebilir, bu özellikle data zlib kullanılarak sıkıştırma yapılır. Bu +özellik +sayesinde bant genişliğinin 60-80% 'i saklanabilir... Bu nedenle bu özellik, +küçük bant genişlikli linkler için veya çok kullanıcılı linkler için oldukça +kullanışlıdır.

      +

      Zip links desteğini aktif etmek için ./Config sırasında +karşılaşacağınız zlib sorusuna YES cevabı vermeniz ve bunu +link::options::zip +ile belirtmeniz gerekmektedir.(her iki tarafta da)

      +

      3.11 - Dinamik DNS/IP link desteği

      +
      +

      UnrealIRCd'in, dinamik DNS (blah.dyndns.org gibi) +kulanan dinamik IP'li kullanıcılara yardımcı olan birkaç (yeni) güzel +özellikleri vardır. Eğer iki dinamik DNS kullanan hostu linkliyorsanız, bunu +link::options::nodnscache ve link::options::nohostcheck ile +belirtmelisiniz.

      +

      3.12 - Anti-Flood özellikleri

      +
      +

      Throttling
      Throttling bir kullanıcının sunucunuzdan +bağlantısını +kesmesinin ve yeniden sunucunuza bağlanmasının ne kadar hızla +gerçekleşebileceğini sınırlayabilmenizi sağlayan bir metotdur. Bunu +konfigürasyon dosyasında ki set::throttle bloğunda belirtebilirsiniz.Burada +X, +YY saniye içinde ki aynı IP ‘ye sahip bağlantı sayısıdır.
      Kanal +Modları
      Aynı zamanda flood saldırılarına karşı çok etkili olan +kanal modları da vardır. Bazıları:
      K = /knock kullanılamaz kanal, +N = Nick değiştirelemez kanal, C = CTCP’lerin izinli olmadığı +kanal, M = sadece kayıtlı nicklerin konuşabildiği kanal, j = +süreye ilişkin giriş kısıtlama +(kullanıcı-başına)
      beta18’deki gibi aynı zamanda daha da +geliştirilmiş olan +f kanal modu vardır...
      f kanal modu
      Kanalı +flood +saldırılarına karşı korumak için script ve bot kullanmak yerine bu özellik +kullanılabilir.
      +f modunun kullanımına bir örnek: *** Blah sets mode: ++f [10j]:15
      Bunun manası bu kanal, her 15 saniye için 10 giriş +izinlidir, eğer limit aşılırsa kanal otomatik olarak +i moduna +alınacaktır.
      Belirtilen flood tipleri mevcuttur:
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      tip:isim:sabit eylem:diğer eylem(ler):yorumlama
      cCTCPotomatik +Cm, M 
      jjoinotomatik +iR 
      kknockotomatik +K (sadece yerel + bağlantıları kapsar)
      mmesaj/noticeotomatik +mM 
      nnickdeğişiklikleriotomatik +N  
      ttextkickbeski +f'de olduğu gibi kullanıcı-başına + mesaj/notice. kullanıcı atılır veya +banlanır.
      +

        Örnek:

      *** ChanOp sets mode: +f 
      +[20j,50m,7n]:15
      +<ChanOp> lalala
      +*** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined 
      +#test
      +*** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
      +*** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
      +*** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined 
      +#test
      +-- snip XX lines --
      +*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has 
      +joined #test
      +-server1.test.net:#test *** Channel joinflood detected 
      +(limit is 20 per 15 seconds), putting +i
      +*** server1.test.net sets mode: +i
      +<Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      +<Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      +<Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      +<Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      +<Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
      +-- snip XX lines --
      +-server1.test.net:#test *** Channel msg/noticeflood 
      +detected (limit is 50 per 15 seconds), putting +m
      +*** server1.test.net sets mode: +m
      +*** Evil1 is now known as Hmmm1
      +*** Evil2 is now known as Hmmm2
      +*** Evil3 is now known as Hmmm3
      +*** Evil4 is now known as Hmmm4
      +*** Evil5 is now known as Hmmm5
      +*** Evil6 is now known as Hmmm6
      +*** Evil7 is now known as Hmmm7
      +*** Evil8 is now known as Hmmm8
      +-server1.test.net:#test *** Channel nickflood detected 
      +(limit is 7 per 15 seconds), putting +N
      +*** server1.test.net sets mode: +N
      +
      Gerçekte daha karışık, daha komplike bir şekil alabilir:
      Ayrı ayrı +belirtmek yerine, flood tiplerini başka bir +biçimde de belirtebilirsiniz, örneğin: +f +[20j#R,50m#M]:15
      Bu; eğer join limiti aşılırsa +kanalın +R moduna (burada limit 15 saniye içinde 20 join) ve eğer mesaj +limiti +aşılırsa kanalın +M moduna (burada limit 15 saniye içinde 50 mesaj) +alınmasını +sağlayacaktır.

      Aynı zamanda “X +dakika sonra modu kaldır” özelliği de vardır: +f +[20j#R5]:15 limit aşıldığı takdirde kanal +R moduna alınacaktır ve 5 +dakika +sonra kanal –R moduna alınacaktır.
      Bir sunucu için, +belirli bir süre sonra modun kaldırılması özelliği, +(set::modef-default-unsettime) başlangıç değeri olarak bir değere sahip +olabilir, yani eğer +f [20j]:15 olarak belirtirseniz +bu sunucu tarafından +f [20j#i10]:15, olarak +algılanabilir, bu sadece bir başlangıç değeridir, hala [20j#i2]:15 olarak +belirtebilirsiniz. Aynı zamanda; ör: [20j#i0]:15 şeklinde belirterek modun +kaldırılması özelliğini iptal edebilirsiniz.

      Aynı zamanda eski +f +modu (kullanıcı başına mesaj floodu) +'t' olarak mevcuttur, +f 10:6 modu +f [10t]:6 olarak yorumlanır ve +f *20:10 +modu +f [20t#b]:10 olarak yorumlanır. Ircd, bu modu kullanıldığı anda +otomatik +olarak yeni +f modu tipine çevirecektir. Not: ‘t’ ban’ları için ban kaldırma +zamanı yoktur.(Ör: [20t#b30]:15 işlevi yoktur).

      Bir kanalda +f +modundan en iyi şekilde yararlanmak nelere +dayanır... kanalın kaç kullanıcısı var? Kanalınız kullanıcıların çokça +mesajlaşması gerektiği bir kanal mı (ör: trivia) veya kullanıcılar sık sık +popup +kullanıyorlar mı? Bu tarz bir ana kanal mı veya auto-join kanalı mı? +vs..
      Bütün kanallar için iyi olabilecek mükemmel bir +f modu +kullanımı yoktur ama başlangıç için aşağıdaki örneğe bakıp ihtiyaçlarınıza +göre +değiştirebilirsiniz:
      +f +[30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
      her 15 +saniye için 30 join, limit aşılırsa kanal otomatik olarak 10 dakikalığına +i +moduna alınır
      her 15 saniye için 40 mesaj, eğer limit +aşılırsa kanal otomatik olarak 10 dakikalığına +m moduna alınır
      her 15 +saniye için 7 CTCP, eğer limit aşılırsa kanal +otomatik olarak 15 dakikalığına +C moduna alınır
      her 15 +saniye için 15 nick değişimi, eğer limit aşılırsa kanal otomatik olarak 15 +dakikalığına +N moduna alınır
      her 15 saniye için 30 +knock, eğer limit aşılırsa kanal otomatik olarak 10 dakikalığına +K moduna +alınır
      Eğer söz konusu kanal büyük bir kanal ise (ör: +kullanıcı sayısı>75) join duyarlılığını (örneğin: 50) ve mesaj limitini +(örneğin: 60 veya 75) arttırabilirsiniz.
      Özellikle modun +kaldırılma süresi bir deneme yanılma işidir.. Böyle düşünebilirsiniz.. Eğer +kanalda duruma el koyabilecek bir op olmazsa, kanalı 15 dakikalığına +kitlemeli +miyim (=kullanıcılar için hoş olmaz) veya 5 dakikalığına (=saldırıyı +yapanlar 5 +dakika bekleyip daha sonra saldırıya devam edebilirler). Bu aynı zamanda +flood +tipine de bağlıdır, kullanıcıların kanala girememesi (+i) veya kanalda +konuşamaması (+m) nick değiştirememelerinden (+N) veya kanala CTCP (+C) +gönderememelerinden daha kötü bir durumdur bu nedenle herbir flood tipi için +ayrı ayrı mod kaldırılma süresi belirtmek isteyebilirsiniz
      j kanal +modu
      +f modu join flood’ları engelleme özelliğini de +kapsamaktadır, bununla birlikte bu özellik "geniş kapsamlıdır". Örneğin, +eğer +5:10 belirtilirse ve 5 farklı kullanıcı 10 saniye +içinde kanala girerse, flood koruması tetiklenecektir. +j kanal modu +farklıdır. +Bu mod kullanıcı-başına esasıyla çalışır. Join flood saldırılarına karşın +korunma amacından ziyade, join-part flood saldırılarından korunma amacıyla +tasarlanmıştır (revolving door floods). Mod: X join (giriş) sayısını +belirtmek +üzere ve Y saniye sayısını belirtmek üzere X:Y olarak belirtilir. Eğer bir +kullanıcı bu limit aşarsa , onun kanala girişi engellenecektir.
      +

      3.13 - Ban tipleri

      +
      +

      Ana bantipleri ve gizlenmiş +(cloaked) hostlar
      UnrealIRCd +b nick!user@host gibi ana +bantiplerini +desteklemektedir.
      Aynı zamanda, eğer bir kullanıcı +'rox-ACB17294.isp.com' gibi bir gizlenmiş hosta sahipse ve siz +*!*@rox-ACB17294.isp.com şeklinde bir ban belirtmişseniz, bu durumda +kullanıcı +-x (böylelikle hostu 'dial-123.isp.com' olacaktır(örneğin)) moduna geçse +dahi +belirtilen ban hala eşleşecektir. Banlar herzaman gerçek ve gizlenmiş +hostlarla +eşleşir.
      Bununla birlikte IP ban da vardır (ör : +*!*@128.*).

      Gizlenmiş IP’lere +ban için birkaç açıklama gereklidir:
      Eğer kullanıcının +IP’si 1.2.3.4 ise gizlenmiş IP’si 341C6CEC.8FC6128B.303AEBC6.IP +olabilir.
      Eğer *!*@341C6CEC.8FC6128B.303AEBC6.IP şeklinde ban +atarsanız bu ban *!*@1.2.3.4 şekline eşdeğerdir (bu açıktır...)
      Eğer +*!*@*.8FC6128B.303AEBC6.IP şeklinde ban atarsanız bu +ban *!*@1.2.3.* şekline eşdeğerdir.
      Eğer +*!*@*.303AEBC6.IP şeklinde ban atarsanız bu ban *!*@1.2.* şekline +eşdeğerdir.
      Bu bilgilendirme atılacak bir banın ne kadarlık bir +kapsaması olduğuna karar verirken size yardımcı +olacaktır.

      Genişletilmiş bantipleri
      Genişletilmiş banlar +~[!]<tip>:<parametre> +şeklindedir. Mevcut tipler:
      + + + + + + + + + + + + + + + + + + + + + +
      tip:isimaçıklama:
      ~qquietBu ban ile eşleşen kullanıcı kanala girebilir + ancak +v veya daha yükseğine sahip değilse konuşamaz. Ör: ~q:*!*@blah.blah.com
      ~nnickchangeBu ban ile eşleşen kullanıcı +v veya daha + yükseğine sahip değilse nick değiştiremez. Ör: + ~n:*!*@*.aol.com
      ~c[prefix]channelEğer kullanıcı belirtilen kanalda ise ban konulan + kanala giremez. Bununla birlikte burada önek olarak (+/%/@/&/~) + belirtilebilir.Önek belirtilirse kanalda belirtilen öneke sahip veya +daha + yükseğine sahip olan kullanıcı kanala giremez. Ör: + +b ~c:#lamers, +e ~c:@#trusted
      ~rrealnameEğer kullanıcının realname kısmı eşleşirse + kullanıcı kanala giremez.
      Ör: ~r:*Stupid_bot_script*
      NOT: alt çizgi ('_') hem boşluk (' ') hemde ('_') ile + eşleşir, bu sebepten bu ban 'Stupid bot script v1.4' ile + eşleşecektir.
      Bu ban tipleri aynı zamanda kanal +kabul +modunda da (+e) desteklenmektedir.
      Aynı zamanda Moduller +ile de başka ban tipleri de eklenebilir.

      +

      3.14 - Spamfilter

      +
      +

      Spamfilter spam,reklam,worm ve diğer türlerde ki +istenmeyen durumlara karşı yeni bir sistemdir. Badwords sistemi ile benzer +çalışır fakat birçok avantajı vardır.

      +

      Spamfilter kullanımı aşağıda gösterilmiştir:
      /spamfilter +[add|del|remove|+|-] +[tip] [eylem] [tklsüresi] [sebep] [düzenli-ifade]
      + + + + + + + + + + + + + + + + +
      [tip]Hedef tipini belirtir:
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Karakter:Konfig.Dosyasında + Tanımı:Açıklama:
      cchannelKanal mesajları
      pprivateÖzel mesajlar + (kullanıcı->kullanıcı)
      nprivate-noticeÖzel notice
      Nchannel-noticeKanala notice
      PpartPart sebebi
      qquitQuit sebebi
      ddccDCC dosya ismi
      aawayAway mesajı
      ttopicBelirtilen topic
      uuserKullanıcı banı, nick!user@host:realname ile + eşleşecektir
      Çoklu hedefler +belirtebilirsiniz, + cpNn gibi.
      [eylem]Eşleşme gerçekleştiği takdirde uygulanacak eylem + (sadece 1 eylem belirtilebilir).
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      killKullanıcıya kill atılır
      tempshunKullanıcının o anlık oturumuna shun atılır + (eğer yeniden bağlanırsa shun kalkacaktır)
      shunHosta shun atılır
      klineHost için kline eklenir
      glineHost için gline eklenir
      zlineHost için zline eklenir
      gzlineHost için gzline (global zline) + eklenir
      blockSadece mesaj bloklanır
      dccblockKullanıcı işaretlenir böylelikle kullanıcı + DCC gönderimi yapamaz
      viruschanBütün kanallardan çıkartılır, + set::spamfilter::virus-help-channel ile belirtilen kanala giriş + yaptırılır, PONG, ADMIN , ve set::spamfilter::virus-help-channel +ile + belirtilen kanala msg/notice hariç hiçbir komutu + kullanamaz
      [tklsüresi]Spamfilter tarafından eklenen *line/shun için + geçerli olma süresidir, başlangıç değeri için '-' kullanın veya +atlayın + (Ör: eğer eylem = 'block' ise)
      [sebep]Block/*line/shun sebebidir. Burada belirtilen + sebep içinde boşluk kullanamazsınız, alt çizgiler ('_') boşluk olarak + değerlendirilir. Ve çift altçizgi ('__') ('_') olarak değerlendirilir. + Yine aynı şekilde başlangıç değeri için, '-' kullanın.
      [düzenli ifade]bu kısım, hangi ifadenin veya 'yasak kelime'nin + kullanıldığında belirtilen eylemin uygulanacağını bildirilen kısımdır. +

      İşte bir örnek: /spamfilter add pc gline +- - Come watch me on my +webcam
      Eğer metin come watch +me on my webcam (özel mesajda veya kanal mesajında) ise mesaj bloke +edilecek +ve ardından gline eklenecektir.
      Diğer bir örnek: /spamfilter add pc +block - - come to irc\..+\..+
      Burda belirtilen ifade Hi, come to +irc.blah.net metniyle eşleşecektir.vs..
      Ve +süre/sebep belirtilmiş bir örnek:
      /spamfilter add p gline 3h +Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my +webcam
      Eğer özel mesajda come watch me on my webcam metnine +rastlanırsa +kullanıcı 3 saat süreliğine belirtilen Please go to +www.viruscan.xx/nicepage/virus=blahsebebinden dolayı gline'lı olarak +kalacaktır .

      /spamfilter +komutuyla eklenmiş spam filtreleri bütün ağ boyunca geçerlidir. +Kullanıcı/kanal ++G modunda olsun olmasın muhakkak çalışacaktır, sadece operler ve servisler +(uline) filtrelemeden etkilenmezler.

      +

      Aynı zamanda spam filtrelerini konfigürasyon dosyasından +da ekleyebilirsiniz fakat bunlar yerel sunucuda geçerli olacaktır(bütün ağ +kapsamında değil). Bu spamfilter { } bloğunun kullanımı burada açıklanmıştır.
      Örnek:

      spamfilter {
      +	regex "//write \$decode\(.+\|.+load -rs";
      +	target { private; channel; };
      +	reason "Generic $decode exploit";
      +	action block;
      +};
      +

      +

      set::spamfilter::ban-time +spamfilter ile eklenen *line/shun için ban süresinin default değerini +değiştirebilmenize olanak sağlar.(default değeri: 1 +gün)
      set::spamfilter::ban-reason +Default değeri olarak bir sebep belirtmenize olanak sağlar.(default değeri: +'Spam/advertising')
      set::spamfilter::virus-help-channel belirtilen +'viruschan' eylemi için bir kanal belirtmenize olanak sağlar. (default: +#help)
      set::spamfilter::virus-help-channel-deny yukarıda +belirttiğiniz kanala yapılacak bütün normal girişleri bloklamanıza olanak +sağlar.(default değeri: no)

      +

      3.15 - CIDR

      +
      +

      UnrealIRCd şimdi CIDR (Classless Interdomain Routing) +özelliğini de desteklemektedir. CIDR IP dizilerine ban atmanıza olanak +sağlar. +Unreal CIDR desteği hem IPv4 hem de IPv6 için geçerlidir. CIDR maskeleri +allow::ip, ban user::mask, ban ip::mask, except ban::mask, except +throttle::mask +ve except tkl::mask (gzline, gline ve shun için) yönergeleri içinde +kullanılabilir. Ek olarak yine CIDR maskeleri /kline, /gline, /zline ve +/shun +komutları kullanılırken de belirtilebilir. Unreal standart IP/bit +sözdizimini +kullanır, ör. 127.0.0.0/8 (127.0.0.0 - 127.255.255.255 arasındaki bütün +IP'lerle +eşleşir).

      +

      3.16 - Nick Karakter Grupları

      +
      +

      UnrealIRCd şimdi belirtilen karakter grubu/dil ile o +gruba/dile ait karakterlerden oluşabilen nick kullanımını da +desteklemektedir. +Bunu set::allowed-nickchars ile yapabilirsiniz.
      Bütün olası +seçeneklerin tablosu:
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      İsim:Açıklama:Karakter + seti/encoding:
      catalanKatalancaya ilişkin karakterleriso8859-1 (latin1)
      danishDancaya ilişkin karakterleriso8859-1 (latin1)
      dutchFlemenkçeye ilişkin karakterleriso8859-1 (latin1)
      frenchFransızcaya ilişkin karakterleriso8859-1 (latin1)
      germanAlmancaya ilişkin karakterleriso8859-1 (latin1)
      swiss-germanİsviçre-Alman diline ilişkin karakterler (no + es-zett)iso8859-1 (latin1)
      icelandicIzlandacaya ilişkin karakterleriso8859-1 (latin1)
      italianİtalyancaya ilişkin karakterleriso8859-1 (latin1)
      spanishİspanyolcaya ilişkin karakterleriso8859-1 (latin1)
      swedishİsveç diline ilişkin karakterleriso8859-1 (latin1)
      latin1catalan, danish, dutch, french, german, + swiss-german, spanish, icelandic, italian, swedish karakter gruplarına + ilişkin bütün karakterleriso8859-1 (latin1)
      hungarianMacarcaya ilişkin karakterleriso8859-2 (latin2), windows-1250
      polishLehçeye ilişkin karakterleriso8859-2 (latin2)
      romanianRomenceye ilişkin karakterleriso8859-2 (latin2), windows-1250, +iso8859-16
      latin2hungarian, polish, romanian karakter gruplarına + ilişkin bütün karakterleriso8859-2 (latin2)
      polish-w1250Lehçeye ilişkin karakterler, windows + biçiminde(maalesef iso'ya nazaran daha çok karşılaşılır)windows-1250
      slovak-w1250Slovakçaya ilişkin karakterler, windows + biçimindewindows-1250
      czech-w1250Çek diline ilişkin karakterler, windows + biçimindewindows-1250
      windows-1250lehçe-w1250, slovakça-w1250, çek-w1250, macarca, + romencewindows-1250
      greekYunancaya ilişkin karakterleriso8859-7
      turkishTürkçeye ilişkin karakterleriso8859-9
      russian-w1251Rusçaya ilişkin karakterlerwindows-1251
      belarussian-w1251Belarusçaya ilişkin karakterlerwindows-1251
      ukrainian-w1251Ukraynacaya ilişkin karakterlerwindows-1251
      windows-1251rusça-w1251, belarussian-w1251, +ukraynaca-w1251windows-1251
      hebrewİbraniceye ilişkin karakterleriso8859-8-I/windows-1255
      chinese-simpBasitleştirilmiş Çinceye ilişkin karakterlerMultibyte: GBK/GB2312
      chinese-tradGeleneksel Çinceye ilişkin karakterlerMultibyte: GBK
      chinese-jaJaponcaya ilişkin karakterler +(Hiragana/Pinyin)Multibyte: GBK
      chineseçince-*Multibyte: GBK
      gbkçince-*Multibyte: GBK
      +

      NOT 1: Bazı kombinasyonlar problemlere neden olabilir. +Örneğin, latin* ve chinese-* dillerinin kombinasyonunda Unreal hata +verebilir. +Diğer karakter setlerinin kombinasyonu da görüntü problemlerine neden +olabilir, +eğer latin1/latin2/yunanca/diğer gibi uyumsuz grupların kombinasyonunu +kullanırsanız Unreal bir uyarı mesajı verecektir.

      +

      NOT 2: Karakter haritaları US-ASCII tablosuna göre +hazırlanmıştır, bunun manası ise şudur: o" ile O" karakterleri aynı +karakterler +olarak yorumlanmaz. Bu nedenle birisi B"ar nickini kullanırken aynı anda bir +başkası da BA"r nickini kullanabilir. Bu kısa bir süre sonra çözülemeyecek, +mevcut sistemin ve IRCd standartlarının, bir sınırlamasıdır. Kişiler bu +sınırlamadan haberdar olmalılardır. Bu anlatılanlar kanal isimleri içinde +geçerlidir.

      +

      NOT 3: Temel nick karakterleri (a-z A-Z 0-9 [ \ ] ^ _ - +{ | }) herzaman kullanılabilir ve kapsam içindedir.

      Örnek 1, batı avrupa +kullanıcıları için:
      set { allowed-nickchars { latin1; }; 
      +};
      Örnek 2, +eğer çok sayıda çinli kullanıcınız varsa:
      set { allowed-nickchars { 
      +chinese-simp; chinese-trad; }; };
      +

      +

      3.17 - CGI:IRC Desteği

      +
      +

      UnrealIRCd CGI:IRC bağlantıları için host yanıltma +özelliğini destekler. Bunun manası belirli CGI:IRC ağ geçitlerini +"güvenilir" +olarak işaretleyebilirsiniz böylelikle belirtilen ağ geçidinden bağlanan +kullanıcıların kullandıkları CGI:IRC ağ geçidinin sahip olduğu host/ip'si +yerine +kullanıcıların gerçek host/ip'si görülecektir.

      +

      Yapılandırma hakkında bilgi edinmek için cgiirc bloğuna bakın.

      +

      3.18 - Zaman Senkronizasyonu

      +
      +

      Zamanlamanın doğru olmasının IRC sunucular açısından son +derece önemlidir. Zamanlamanın sunucularda doğru olmaması, kanal arasında eş +zamansızlığa, masum insanların sunucudan bağlantısının kesilmesine (kill), +bazı +kanalların /LIST komutu sorgusunda listede bulunmamasına sebep olabilir, +kısaca +istenmeyen durumlar meydana gelebilir.

      +

      UnrealIRCd kendi bünyesinde zaman senkronizasyonu +özelliğine bir bakıma destekler, fakat optimal değildir (hala birkaç saniye +uyumsuzluk yaşanabilir), bu da büyük zaman farklarına yol açabilir. Eğer +yapabilirseniz, bir zaman senkronizyonu programı kullanmanız önerilir, *NIX +platformunda ntpd gibi veya Windowsta zaman senkronizyon servisi gibi. (eğer +böyle bir yazılım kullanırsanız, Unreal’in zaman senkronizasyon özelliğini +devre +dışı bırakabilirsiniz).

      +

      UnrealIRCd (default olarak) başlatıldığı anda zaman +senkronizyonunu sağlar. Çoklu zaman sunucularına istek gönderir ve ilk +aldığı +cevaba göre (en hızlı olanı) dahili ircd saatini ayarlar (sistem saatini +DEĞİL). +Eğer herhangi bir sebepten dolayı 3 saniye içinde zaman sunucusundan cevap +alınamazsa, IRCd açılmaya devam edecektir. (bu olaya nadiren rastlanır)

      +

      Zaman senkronizasyonu set::timesynch bloğu ile yapılandırılır, +daha fazla +bilgi için set dökümanına bakın..

      +

      3.19 - Diğer Özellikler

      +
      +

      UnrealIRCd buraya sığamayacak kadar çok özelliğe +sahiptir... Bu özellikleri kendiniz bulacaksınız.

      +

      +

      4.0 - unrealircd.conf dosyasının +konfigürasyonu +

      +
      +

      İlk olarak, iyi bir unrealircd.conf oluşturmak biraz +zaman alacaktır, 10 – 60dak gibi. Yapabildiğiniz kadar çabuk bir biçimde +boot +etmeyi deneyebilirsiniz ve daha sonra geniş olarak konfigürasyon dosyasını +inceleyebilirsiniz, veya adım adım ana kısımları öğrenebilirsiniz ki bu +tercih +edilen yoldur. ;P. Eğer bir sorunla karşılaşırsanız, yardım istemeden önce +yazımınızı (syntax), klavuzu ve FAQ +kısmını kontrol edin.

      +

      4.1 Açıklamalı Konfigürasyon Dosyası
      +

      +

      +

      Yeni sistem blok-tabanlı bir format kullanır. Yeni +biçimde herbir girişin, veya bloğun kendine özgü bir formatı vardır. Biçim +genel +olarak şu şekildedir:

      <blok-ismi> <blok-değeri> {
      +	<blok-yönergesi> <yönerge-değeri>;
      +};
      +
      +

      +

      <blok-ismi> bloğun tipidir, me veya admin gibi. +<blok-değeri> kimi zamanlarda özel bir değer olabilir, /oper login +gibi, +fakat kimi zamanlarda da ban user ‘da olduğu gibi alt bir tip olacaktır.

      +

      <blok-yönergesi> bloğa özgü özel bir değişkendir +ve <yönerge-değeri> ise birleşik değerdir. Eğer <yönerge-değeri> +,boşluk karakterini içeriyorsa veya bir açıklama tarzı bir ifade içeriyorsa +, +çift tırnak içerisinde belirtilmelidir. Eğer tırnak karakterini çift tırnak +içine alınmış bir ifade içinde kullanmak istiyorsanız \" kullanın, bu tırnak +karakteri olarak algılanacaktır.

      +

      Bir <blok-yönergesi> kendi içinde yönergelere +sahip olabilir. Bazı bloklarda yönerge bulunmaz ve sadece +<blok-değeri> +ile belirtilir, include bloğunda olduğu gibi. Aynı zamanda sabit belirli bir +formatı yoktur, bunun manası sözü edilen blok 1 satır olarak da görülebilir +veya +1 satırdan fazla da olabilir. Normal kullanım formatı (dosyada kullanılacak +format) yukarıdaki gibidir, çünkü bunun okunması kolaydır.

      +

      Not: konfigürasyon dosyası büyük ve küçük harf +duyarlıdır, yani BLOK-İSMİ yazımı blok-ismi yazımıyla eş +değildir. Konfigürasyon +dosyasında, yapılan girişlerden bahsederken özel bir notasyon kullanılır. +Örneğin, yukarıda ki örnek için bu notasyon +<blok-ismi>::<blok-yönergesi> şeklindedir ve eğer bu yönergenin +alt +bir bloğu varsa bunun içinde diğer bir :: ekleyip ardından alt yönergenin +ismini +ekleyebilirsiniz.

      +

      Yönerge ismi belirtilmeden gösterim şekli ise +<blok-ismi>:: şeklindedir, bu bir <blok-değeri>'de olabilir, +veya +alt bloklardan herhangi birini de belirtebilir.

      +

      Açıklama yaparken desteklenen 3 tip vardır:

      +

      # 1 satırlık açıklama
      // 1 +satırlık açıklama
      /* 1 veya daha fazla +
          satırlık açıklama */

      +

      Şimdi konfigürasyon dosyasının nasıl işlediğini +biliyorsunuz, doc/example.conf dosyasını UnrealIRCd +'in bulunduğu klasöre (ör: /home/user/Unreal3.2) kopyalayın ve +unrealircd.conf olarak yeniden isimlendirin. +Konfigürasyon dosyanızı oluşturmak için bütün blok tipleri ve ayarlamalar +için +adım adım ilerlemeniz ve bu klavuzu referans almanız önerilir.

      +

      +

      4.2 - +Me Bloğu GEREKLİ (Önceden bilinen +M:Line) +

      +

      +

      Kullanımı:

      me {
      +	name <sunucu-ismi>;
      +	info <sunucu-için-açıklama>;
      +	numeric <sunucu-numerik-değeri>;
      +};
      +
      +

      +

      Bu değerler çok açıktır. name ile sunucu ismi belirtilir, +info ile sunucu için bir açıklama belirtilir, numeric ile ise +sunucuyu tanıtan sayısal bir değer +belirtilir. Bu değer 0 ile 254 arasında olmak zorundadır ve burda belirtilen +sayısal değere ağda ki diğer hiçbir sunucu sahip olamaz.

      +

      Örnek:

      me {
      +	name "irc.foonet.com";
      +	info "FooNet Server";
      +	numeric 1;
      +};
      +
      +

      +

      +

      4.3 - +Admin Bloğu GEREKLİ (Önceden bilinen +A:Line) +

      +

      +

      Kullanımı:

      admin {
      +	<metin>;
      +	<metin>;
      +};
      +
      +

      +

      +

      Admin bloğu /admin sorgusunda görüntülenecek metni +belirler. Burada ki satırları istediğiniz oranda çoğaltabilirsiniz ve bu +satırlar istediğiniz bilgiyi içerebilir, ancak genel olarak minimum admin +nicki +ile email adresi girilir. Diğer bilgiler ise yazmak istediğiniz herhangi +diğer +bir iletişim bilgileri de olabilir.

      +

      Örnek:

      admin {
      +	"Bob Smith";
      +	"bob";
      +	"widely@used.name";
      +};
      +
      +

      +

      +

      4.4 - +Class Bloğu GEREKLI (Önceden bilinen +Y:Line) +

      +

      +

      Kullanımı:

      class <isim> {
      +	pingfreq <ping-frekansı>;
      +	connfreq <bağlantı-frekansı>;
      +	maxclients <maximum-istemci>;
      +	sendq <send-queue>;
      +	recvq <recv-queue>;
      +};
      +
      +

      +

      +

      Class blokları bağlantıların yerleştirileceği sınıfları +belirler (örneğin allow bloğuyla gelen bağlantılar veya link bloğuyla gelen +sunucu bağlantıları gibi.), genel olarak çoklu class blokları +kullanılır.(ör: +sunucular için, kullanıcılar, operler için).

      +

      name "clients" veya +"servers" gibi bir tanımlayıcı isimdir, bu isim bu sınıfı +allow/link/oper/vs. +bloklarıyla ilişkilendirmek için kullanılır

      +

      pingfreq sunucudan gelen +PING'ler arasında ki saniye olarak süredir.(90 ile 180 arasında ki bir değer +önerilir.)

      +

      connfreq sunucular için +kullanılır ve eğer otomatik bağlantı aktif ise bağlantı denemeleri arasında +ki +saniye olarak süredir

      +

      maxclients bu sınıfta +maksimum (toplamda) kaç istemci/sunucu sayısı olabileceğini belirler

      +

      sendq gönderim dizisi içinde +ne kadar miktarda veri olabileceğini belirtir. (düşük bant genişlikli +sunucular +için çok yüksektir, istemciler (clients) için ise orta bir değerdir.)

      +

      recvq alınan veri dizisinde +ne kadar miktarda veri olabileceğini belirler ve bu flood kontrolu için +kullanılır. (bu değer sadece normal kullanıcılara uygulanır, 3000-8000 +arasında +bir değeri deneyebilirsiniz, default değer 8000'dir.).

      +

      Örnekler:

      class clients {
      +	pingfreq 90;
      +	maxclients 500;
      +	sendq 100000;
      +	recvq 8000;
      +};
      +
      +class servers{
      +	pingfreq 90;
      +	maxclients 10; /* Bir kerede linkleyebileceğimiz max sunucu sayısı */
      +	sendq 1000000;
      +	connfreq 100; /* herbir bağlantı girişimi arasında ki saniye olarak süre */
      +};
      +
      +

      +

      +

      4.5 - +Allow Bloğu GEREKLİ (Önceden bilinen +I:Line) +

      +

      +

      Kullanımı:

      allow {
      +	ip <kullanıcı@ip-bağlantı-maskesi>;
      +	hostname <kullanıcı@host-bağlantı-maskesi>;
      +	class <bağlantı-sınıfı>;
      +	password <bağlantı-şifresi> { <auth-tipi>; };
      +	maxperip <ip-başına-max-bağlantı>;
      +	redirect-server <yönlendirilecek-sunucu>;
      +	redirect-port <yönlendirilecek-port>;
      +	options {
      +		<tercih>;
      +		<tercih>;
      +		...
      +	};
      +};
      +
      +

      +

      Allow bloğu ile sunucunuza kimlerin bağlanabileceğini +belirtebilirsiniz, bir veya daha fazla allow bloğunuz olabilir.

      +

      Eşleşme hakkında
      Giriş kontrolu ip eşleşmeleri veya host +eşlemeleri ile +yapılır. Yani "hostname *@*" ;ve "ip *@1.2.3.4" ise bu herzaman +eşleşecektir. +Aynı zamanda allow blokları yukarıdan aşağıya doğru okunarak +değerlendirilir, bu +nedenle genel *@* allow bloklarından sonra açık host/ip 'ler +belirtmelisiniz. Ek +olarak sadece IP tabanlı eşleşme yapmasını istediğiniz bir blok oluşturmak +isterseniz, hostname kısmına geçersiz herhangi birşey belirtin, "hostname +NOBODY;" gibi, bu bloğun sadece IP tabanlı eşleşme yapmasına olanak +sağlayacaktır.

      +

      ip
      IP maskesi kullanıcı@ip formundadır, kullanıcı kısmı burada +idente karşılık gelir ve genellikle * olarak belirtilir, ip ise ip +kalıbıdır. +Birkaç örnek: *@* (herhangi bi yerden), *@192.168.* (sadece ip adresi +192.168 +ile başlayanlar), vs..

      +

      host
      yine hostmaskesi kullanıcı@host formundadır. kullanıcı +kısmı genelde * olarak belirtilir. Birkaç örnek: *@* (heryerden), +*@*.wanadoo.fr +(sadece wanadu.fr 'den).

      +

      password (isteğe bağlı)
      eğer belirtilirse bağlanabilmek için +şifre gerekir. Aynı +zamanda burada yeniden şifreleme metodu ile oluşturdugunuz bir şifre de +belirtebilirsiniz.

      +

      class
      Bu allow bloğunu kullanan bağlantıların yerleştirileceği +sınıfı belirtir.

      +

      maxperip (isteğe bağlı, +ancak önerilir)
      Sunucu için IP başına nekadar bağlantıya +izin verileceğini belirtir.(ör: maxperip 4;).

      +

      redirect-server (isteğe +bağlı)
      Eğer belirtilen sınıf full ise, kullanıcılar +burada belirtilen sunucuya yönlendirilirler.(eğer istemci yazılımı da +destekliyorsa [mIRC 6 destekliyor]).

      +

      redirect-port (isteğe +bağlı)
      Eğer redirect-server belirtilmişse bu kısma portu +belirtebilirsiniz, aksi takdirde 6667 olarak varsayılacaktır

      +

      options bloğu (isteğe +bağlı)
      Geçerli tercihler:
         useip +hostname yerine herzaman IP görüntülenir
         noident +ident +kullanılmaz fakat client'in belirlediği username +kullanılır
         ssl sadece +SSL ile bağlanan istemciler +bağlanabilir
         nopasscont +eğer şifre belirtilmemişse eşleşme devam eder. +

      Örnekler:

      allow {
      +	ip *;
      +	hostname *;
      +	class clients;
      +	maxperip 5;
      +};
      +
      +allow {
      +	ip *@*;
      +	hostname *@*.passworded.ugly.people;
      +	class clients;
      +	password "f00Ness";
      +	maxperip 1;
      +};
      +
      +

      +

       

      +

      4.6 - +Listen Bloğu GEREKLI (Önceden bilinen +P:Line) +

      +

      +

      Kullanımı:

      listen <ip:port> {
      +	options {
      +		<tercih>;
      +		<tercih>;
      +		...
      +	};
      +};
      +
      +

      +

      +

      Bu blok IRCD'in hangi portları dinleyeceğini +belirtmenizi sağlar. Eğer seçilmesi gereken hiçbir seçenek yoksa, bu bloğu +sadece listen <ip:port>; şeklinde belirtebilirsiniz.

      +

      ip and port
      Kullanılabilir bütün IP'lere bağlanmak için IP +kısmını * +olarak belirtebilirsiniz, veya bağlanılacak tek IP +belirtebilirsiniz.(çoğunlukla +shell sağlayıcıları için gerekir). Belirtilecek port ise dinlemek +istediğiniz +porttur. Tek port yerine belirli port aralıklarını da belirtebilirsiniz. +Örneğin +6660-6669 şeklinde belirttiğiniz zaman 6660 dan 6669 (dahil) 'a kadar bütün +portları belirtmiş olursunuz. IPv6 kullanıcıları için aşağıda açıklama +yapılmıştır.

      +

      IPv6 kullanıcıları için +bilgi
      Eğer IPv6 desteği açık bir sunucunuz varsa +IP'yi parantez ifadesi içinde belirtmelisiniz. [::1]:6667 gibi. Eğer IPv6 +kullanıyorsanız ve belirli bir IPv4 adresini dinlemek istiyorsanız +::ffff:ipv4ip +şeklinde belirtme yapmalısınız. Örnek: [::ffff:203.123.67.1]:6667 ile +203.123.67.1 IP'sini 6667 portu üzerinden dinlemek için. Elbette burada +sadece * +da belirtebilirsiniz.

      +

      options bloğu (isteğe +bağlı)
      Kullanılacak port için özel tercihler de +belirtebilirsiniz, geçerli tercihler:
      + + + + + + + + + + + + + +
      +
      clientsonly
      sadece istemciler için
      +
      serversonly
      sadece sunucular için
      +
      java
      CR javachat desteği
      +
      ssl
      SSL kullanan bağlantılar +için

      +

      Örnekler:

      listen *:6601 {
      +	options {
      +		ssl;
      +		clientsonly;
      +	};
      +};
      +
      +
      +

      +

      Veya tercih belirtilmemiş şekil:

      +

      listen *:8067;
      listen +213.12.31.126:6667;
      listen *:6660-6669;

      +

      4.7 - +Oper Bloğu ÖNERİLİR (Önceden bilinen O:Line) +

      +

      +

      oper <isim> {
      +	from {
      +		userhost <hostmaskesi>;
      +		userhost <hostmaskesi>;
      +	};
      +	password <şifre> { <auth-tipi>; };
      +	class <class-ismi>;
      +	flags <flaglar>;
      +	flags {
      +		<flag>;
      +		<flag>;
      +		...
      +	};
      +	swhois <whois bilgisi>;
      +	snomask <snomask>;
      +	modes <modlar>;
      +	maxlogins <num>;
      +};
      +
      +

      +

      Oper bloğu IRC Operatörleri atamanızı sağlar. oper:: kısmı /oper +kullanımında ki login ismini +belirtir. oper::from::userhost kısmı ile +belirtilecek kullanıcı@host maskesi kullanıcının eşleşeceği maskedir, burada +birden çok oper::from::userhost belirtebilirsiniz. oper::password +kısmında belirttiğiniz şifre ise +kullanıcının belirteceği şifredir, oper::password:: kısmında ise bu şifre +için +bir auth metodu belirtebilirsiniz, kullanılan auth tipleri: crypt, md5 ve +sha1, +ripemd-160. Eğer düz-metin bir şifre kullanmak istiyorsanız bu alt bloğu +kullanmayın.

      +

      Lütfen login ismi kısmının ve şifre kısmının büyük-küçük +harfe duyarlı olduğunu unutmayın

      +

      oper::class yönergesinde ise +oper bloğunun kullanacağı daha önceden anlatılmış olan class ismi +belirtilir.

      +

      oper::flags yönergesinin iki +formatı vardır. Eğer eski stil oper flaglarını kullanmak istiyorsanız, +örneğin; +OAa, bunu flags <flags>metodu ile belirtebilirsiniz, eğer yeni stili +kullanmak istiyorsanız, örneğin; services-admin, bunu flags { <flag>; +} +metodu ile belirtebilirsiniz. Aşağıda (her iki format için) flaglar ve +işlevleri +listelenmiştir.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      Eski + Flag
      +
      Yeni + Flag
      Açıklama
      +
      o
      +
      local
      Sizi local operator yapar
      +
      O
      +
      global
      Sizi global operator yapar
      +
      C
      +
      coadmin
      Sizi coadmin yapar
      +
      A
      +
      admin
      Sizi admin yapar
      +
      a
      +
      services-admin
      Sizi servisler admini yapar
      +
      N
      +
      netadmin
      Sizi ağ admini yapar
      +
      r
      +
      can_rehash
      /rehash komutunu kullanabilme yetkisi verir
      +
      D
      +
      can_die
      /die komutunu kullanabilme yetkisi verir
      +
      R
      +
      can_restart
      /restart komutunu kullanabilme yetkisi +verir
      +
      h
      +
      helpop
      Opere +h (helpop) kullanıcı modunu verir
      +
      w
      +
      can_wallops
      /wallops ile mesaj gönderebilme yetkisi + verir
      +
      g
      +
      can_globops
      /globops ile mesaj gönderebilme yetkisi + verir
      +
      c
      +
      can_localroute
      Yerel /SQUIT ve /CONNECT komutlarını kullanabilme + yetkisi verir
      +
      L
      +
      can_globalroute
      Global /SQUIT ve /CONNECT komutlarını + kullanabilme yetkisi verir
      +
      k
      +
      can_localkill
      Yerel /kill komutu kullanabilme yetkisi + verir
      +
      K
      +
      can_globalkill
      Global /kill komutu kullanabilme yetkisi + verir
      +
      b
      +
      can_kline
      /kline komutunu kullanabilme yetkisi verir
      +
      B
      +
      can_unkline
      /kline -u@h komutunu kullanabilme yetkisi + verir(kline silme yetkisi)
      +
      n
      +
      can_localnotice
      Yerel sunucu noticeleri gönderebilme yetkisi + verir
      +
      G
      +
      can_globalnotice
      Global sunucu noticeleri gönderebilme yetkisi + verir
      +
      z
      +
      can_zline
      /zline komutunu kullanabilme yetkisi verir
      +
      t
      +
      can_gkline
      /gline, /shun ve /spamfilter komutlarını + kullanabilme yetkisi verir
      +
      Z
      +
      can_gzline
      /gzline komutunu kullanabilme yetkisi verir
      +
      W
      +
      get_umodew
      Oper açtığında kullanıcının +W modunu almasını + sağlar
      +
      H
      +
      get_host
      Oper açtığında kullanıcının oper hostu almasını + sağlar
      +
      v
      +
      can_override
      OperOverride kullanabilme yetkisi verir
      +
      q
      +
      can_setq
      +q kullanıcı modunu kullanabilme yetkisi + verir
      +
      X
      +
      can_addline
      /addline komutunu kullanabilme yetkisi +verir
      +
      d
      +
      can_dccdeny
      /dccdeny ve /undccdeny komutlarını kullanabilme + yetkisi verir
      +

      Belirli flaglar default olarak diğer flagları da +verir:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      localglobaladmin/coadminservices-adminnetadmin
      can_rehashcan_rehashcan_rehashcan_rehashcan_rehash
      helpophelpophelpophelpophelpop
      can_globopscan_globopscan_globopscan_globopscan_globops
      can_wallopscan_wallopscan_wallopscan_wallopscan_wallops
      can_localroutecan_localroutecan_localroutecan_localroutecan_localroute
      can_localkillcan_localkillcan_localkillcan_localkillcan_localkill
      can_klinecan_klinecan_klinecan_klinecan_kline
      can_unklinecan_unklinecan_unklinecan_unklinecan_unkline
      can_localnoticecan_localnoticecan_localnoticecan_localnoticecan_localnotice
       can_globalroutecan_globalroutecan_globalroutecan_globalroute
       can_globalkillcan_globalkillcan_globalkillcan_globalkill
       can_globalnoticecan_globalnoticecan_globalnoticecan_globalnotice
        globalglobalglobal
        can_dccdenycan_dccdenycan_dccdeny
         can_setqcan_setq
          admin
          services-admin
      +

      oper::swhois yönergesi oper +whois bilgisine ekstra bir satır eklemenize olanak sağlar. [isteğe bağlı]

      +

      oper::snomask yönergesi ise +oper açıldığında hangi snomaskların alınacağını belirlemenizi sağlar. +Kullanılabilir SNOMASKlar için Bölüm 3.3'e bakın. [isteğe +bağlı]

      +

      oper::modes yönergesi ise +oper açıldığında alınacak modları belirlemenizi sağlar. [isteğe bağlı]

      +

      oper::maxlogins yönergesi +ise belirtilen hosttan max kaç oper logini olabileceğini belirlemenizi +sağlar. +Örneğin bunu 1 olarak belirtmişseniz belirttiğiniz hosttan sadece tek bir +kullanıcı oper açabilir. [isteğe +bağlı]

      +

      Örnek:

      oper bobsmith {
      +	class clients;
      +	from {
      +		userhost bob@smithco.com;
      +		userhost boblaptop@somedialupisp.com;
      +	};
      +	password "f00";
      +	flags {
      +		netadmin;
      +		can_gkline;
      +		can_gzline;
      +		can_zline;
      +		can_restart;
      +		can_die;
      +		global;
      +	};
      +	swhois "Example of a whois mask";
      +	snomask frebWqFv;
      +};
      +
      +

      OperOverride hakkında kısa bir +bilgilendirme:
      OperOverride ile: +ikl modlarında olan kanallara +girebilirsiniz veya banları yok sayıp kanallara giriş yapabilirsiniz (ilk +önce +/invite komutuyla kendinizi davet etmeniz gerekir), bir kanalda kendinizi op +yapabilirsiniz vs.
      can_override oper flagı, oper +yetkisini kötüye kullanma girişimlerinin önüne geçmek için eklenmiştir. +Default +ayarı olarak can_override flagını eklemedikçe, hiç bir oper override yapma +yetkisine sahip değildir. +

      +

      4.8 - +DRpass Bloğu ÖNERİLİR (Önceden bilinen X:Line) +

      +

      +

      Kullanımı:

      drpass {
      +	restart <restart-şifresi> { <auth-tipi>; };
      +	die <die-şifresi> { <auth-tipi>; };
      +};
      +

      +

      Bu blok ile /restart ve /die şifrelerini drpass::restart +ve drpass::die yönergeleriyle belirtebilirsiniz. drpass::restart:: ve +drpass::die:: kısımları bu şifreler için auth tipini belirtmenize olanak +verir. +Geçerli auth tipleri: crypt, md5 ve sha1, ripemd-160.

      +

      Örnek:

      drpass {
      +	restart "I-love-to-restart";
      +	die "die-you-stupid";
      +};
      +
      +

      +

      +

      4.9 - +Include Yönergesi +

      +

      +

      Kullanımı:
      include +<dosya-ismi>;

      +

      Bu yönergeyle yüklenecek ayrı bir konfigürasyon dosyası +belirtebilirsiniz. Bu dosya konfigürasyon bloklarından herhangi birini +içerebilir veya diğer herhangi bir dosya da olabilir. Dosya isminde birçok +dosyayı tek seferde yükleyebilmek için (?) (*) (!) işaretlerinin kullanımı +desteklenmektedir.

      +

      örnek 1: bir network (ağ) +dosyası

      include mynetwork.network;
      +

      +

      Ayrı bir network dosyası kullanmak istiyorsanız bu +şekilde belirtebilirsiniz. Network dosyası artık gerekli değildir; bütün +network +ayarları direkt olarak unrealircd.conf'ta belirtilebilmektedir. Veya bu +ayarları +include ifadesi ile belirttiğiniz, yüklenecek dosya içinde de +belirtebilirsiniz.

      +

      örnek 2: aliases

      include aliases/ircservices.conf
      +

      +

      Bu yönergeye diğer bir örnek ise alias bloklarını içeren +dosyaların belirtilmesi örneğidir, UnrealIRCd bir çok servis ile uyumlu olan +aliaslar içerir:
      +

        +
      • aliases/ircservices.conf (IRCServices, Daylight) +
      • aliases/epona.conf (Epona) +
      • aliases/anope.conf (Anope) +
      • aliases/auspice.conf (Auspice) +
      • aliases/generic.conf (Magick, Sirius, Wrecked) +
      • aliases/cygnus.conf (Cygnus) +
      • aliases/operstats.conf (OperStats) +
      • aliases/genericstats.conf (GeoStats, NeoStats) +
      +

      +

      +

      4.10 - +LoadModule Yönergesi +GEREKLİ +

      +

      +

      Kullanımı:
      loadmodule +<dosya-ismi>;

      +

      Modüllerin neden kullanışlı olduklarını öğrenmek için buraya tıklayın.

      +

      Unreal3.2 ile birlikte gelen standart modüller:

      +

      commands.so / commands.dll - Bütün komutlar (henüz hepsi +değil, ama sonuç olarak hepsi olacak GEREKLİ
      cloak.so / cloak.dll +- Gizleme modülü GEREKLİ (veya +herhangi bir gizleme modülü)

      +

      Bu modüllerin yüklendiğinden emin olmanız gerekir:

      loadmodule 
      +"src/modules/commands.so";
      +loadmodule "src/modules/cloak.so";
      +
      +

      veya windows için:

      loadmodule "modules/commands.dll";
      +loadmodule "modules/cloak.dll";
      +
      +

      4.11 - +Log Bloğu ÖNERİLİR +

      +

      +

      Kullanımı:

      log <dosya-ismi> {
      +	maxsize <max-dosya-boyutu>;
      +	flags {
      +		<flag>;
      +		<flag>;
      +		...
      +	};
      +};
      +
      +

      +

      Log bloğu farklı amaçlar için farklı kayıt dosyaları +tahsis etmenize olanak sağlar. log:: kayıt +dosyasının ismini içerir. log::maxsize ise isteğe +bağlı bir yönergedir, dosya bu yönergede belirtilen boyuta ulaştığında +temizlenir ve dosyaya yeniden yazım başlar. Buraya belirteceğiniz değerde +megabyte için MB, kilobyte için KB, gigabyte için GB şeklinde kullanım +yapabilirsiniz. log::flags ile ne tür bilginin +kaydedileceğini belirtebilirsiniz. Aşağıda geçerli mevcut flagların listesi +verilmiştir.

      +

      Aynı zamanda farklı şeyleri farklı kayıt dosyalarında +tutmak için birden fazla log bloğu oluşturabilirsiniz.

      +

      Mevcut Flaglar:
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      errorsself explanatory
      kills/kill noticelerini kaydeder
      tkl*line, shun ve spamfilter + (ekleme/kaldırma/zamanaşımı) bilgilerini kaydeder
      connectskullanıcı giriş/çıkışlarını kaydeder
      server-connectssunucu bağlantılarını/çıkışlarını kaydeder
      kline/kline komutunun kullanımlarını kaydeder
      operoper açma denemelerini kaydeder (hem başarılı + olanları hem de başarısız olanları)
      sadmin-commands/sa* (samode, sajoin, sapart, vs.) komutlarının + kullanımlarını kaydeder
      chg-commands/chg* (chghost, chgname, chgident, vs.) + komutlarının kullanımlarını kaydeder
      oper-overrideoperoverride kullanımlarını kaydeder
      spamfilterspamfilter eşleşmelerini +kaydeder

      +

      Örnek:

      log ircd.log {
      +	maxsize 5MB;
      +	flags {
      +		errors;
      +		kills;
      +		oper;
      +		kline;
      +		tkl;
      +	};
      +};
      +
      +

      +

      +

      4.12 - +TLD Bloğu İSTEĞE BAĞLI (Önceden bilinen T:Line) +

      +

      +

      Kullanımı:

      tld {
      +	mask <hostmaskesi>;
      +	motd <motd-dosyası>;
      +	rules <kurallar-dosyası>;
      +	shortmotd <kısamotd-dosyası>;
      +	opermotd <opermotd-dosyası>;
      +	botmotd <botmotd-dosyası>;
      +	channel <kanal-ismi>;
      +	options {
      +		ssl;
      +	}
      +};
      +

      +

      Tld bloğu kullanıcıların hostuna göre, kullanıcılara, +belirli bir motd dosyası, kurallar dosyası veya kanal ataması yapmanızı +sağlar. +Farklı diller için farklı motdler istiyorsanız, tld bloğu kullanışlıdır. +tld::mask ile belirttiğiniz kullanıcı@host maskesi +kullanıcının kullanıcı adı(username) ve host (hostname) kısmıyla +uyuşmalıdır. +Belirttiğiniz hostmaskesine görüntülenecek motd, kısamotd, opermotd, botmotd +ve +kurallar dosyalarını sırasıyla tld::motd, tld::shortmotd, +tld::opermotd, tld::botmotd, and tld::rules +kısımlarında belirleyebilirsiniz. +tld::shortmotd, tld::opermotd ve tld::botmotd kısımları isteğe bağlıdır. +tld::channel kısmı da isteğe bağlıdır, bu belirtilen +hostmaskesine sahip kullanıcıların bağlandıkları anda girecekleri kanalı +belirler. Eğer bu belirtilirse default oto giriş kanalı, belirtilen +hostmaskesinde ki kullanıcılar için geçerli olmayacaktır. +tld::options bloğu ise ek olarak seçenek belirtmenizi +sağlar, şu an için tek mevcut seçenek ssl seçeneğidir.

      +

      TLD girişleri eşleşmesi yukarıdan aşağıya doğrudur.

      +

      Örnek:

      tld {
      +	mask *@*.fr;
      +	motd "ircd.motd.fr";
      +	rules "ircd.rules.fr";
      +};
      +

      +

      +

      4.13 - +Ban Nick Bloğu İSTEĞE BAĞLI (Önceden bilinen Q:Line) +

      +

      +

      Kullanımı:

      ban nick {
      + mask <nick>; + reason <yasaklama-için-sebep>; +};
      +

      +

      Ban nick bloğu bir nickin sunucuda kullanımını +yasaklamanıza olanak sağlar. ban::mask kısmında birden çok nick +belirtilebilmesi +için (*), (!), (?) işaretleri kullanılabilir ve ban::reason kısmında ise bu +yasaklama için gerekçe belirtilir. Çoğunlukla bu bloklar Network +Servislerinin +kullandığı nicklerin kullanımını yasaklamak için kullanılır.

      +

      Example:

      ban nick {
      +	mask "*C*h*a*n*S*e*r*v*";
      +	reason "Reserved for Services";
      +};
      +

      +

      +

      4.14 - +Ban User Bloğu İSTEĞE BAĞLI (Önceden bilinen K:Line) +

      +

      +

      Kullanımı:

      ban user {
      +	mask <hostmaskesi>;
      +	reason <ban-için-sebep>;
      +};
      +

      +

      Bu blok belirtilen kullanıcı@host hostmaskesine sahip +kullanıcıların sunucuya girişlerini engellemek için kullanılır. ban::mask +kısmında belirtilecek kullanıcı@host maskesinde (?), (*), (!) işaretleri +kullanılabilir, ve ban::reason kısmında ise ban için sebep belirtilir. Not, +burada atılacak ban yerel bir bandır, kullanıcı ağdaki diğer bir sunucuya +bağlantı sağlayabilir.

      +

      Örnek:

      ban user {
      +	mask *tirc@*.saturn.bbn.com;
      +	reason "Idiot";
      +};
      +

      +

      +

      4.15 - +Ban IP Bloğu İSTEĞE BAĞLI (Önceden bilinen Z:Line) +

      +

      +

      Kullanımı:

      ban ip {
      +	mask <ipmaskesi>;
      +	reason <ban-için-sebep>;
      +};
      +

      +

      Ban ip bloğu belirtilen ip maskesinin sunucuya erişimini +yasaklamak için kullanılır. Bu bağlantı deneyen kullanıcıları ve sunucuları +da +içerir. ban::mask parametresi (?), (*), (!) işaretlerini de içerebilecek bir +IP'dir, ban::reason kısmında ise ban gerekçesi belirtilir. Bu ban sunucuları +da +kapsadığından çok dikkatli kullanılmalıdır.

      +

      Örnek:

      ban ip {
      +	mask 192.168.1.*;
      +	reason "Get a real ip u lamer!";
      +};
      +

      +

      +

      4.16 - +Ban Server Bloğu İSTEĞE BAĞLI (Önceden bilinen q:Line) +

      +

      +

      Kullanımı:

      ban server {
      +	mask <sunucu-ismi>;
      +	reason <ban-için-sebep>;
      +};
      +

      +

      Bu blok belirtilen sunucunun ağa bağlantısını engellemek +için kullanılır. Eğer belirtilen sunucu direkt olarak sunucunuza +linklenirse, +link reddedilir. Eğer belirtilen sunucu uzak sunucuya linklenirse, yerel +sunucunun ağdan bağlantısı kesilir. ban::mask kısmında bağlantısı +engellenecek +sunucu ismi belirtilir, burada (?), (*), (!) işaretleri kullanılabilir ve +ban::reason kısmında ise bu engelleme için gerekçe belirtilir.

      +

      Örnek:

      ban server {
      +	mask broken.server.my.network.com;
      +	reason "Its broken!";
      +};
      +

      +

      +

      4.17 - +Ban RealName Bloğu +İSTEĞE BAĞLI (Önceden bilinen n:Line) +

      +

      +

      Kullanımı:

      ban realname {
      +	mask <realname-maskesi>;
      +	reason <ban-için-sebep>;
      +};
      +

      +

      Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas +alınarak, banlamanıza olanak sağlar. Bu clone saldırılarını durdurmada +yardımcı +olacaktır, çünkü çoğunlukla saldırılarda ki clone botlar aynı realname 'e +sahiptir. ban::mask kısmında banlanacak realname belirtilir. Bu kısımda (*), +(?), (!) işaretleri kullanılabilir. ban::reason kısmında ise ban gerekçesi +belirtilir.

      +

      Örnek:

      ban realname {
      +	mask "Bob*";
      +	reason "Bob sucks!";
      +};
      +

      +

      +

      4.18 - +Ban Version Bloğu +İSTEĞE BAĞLI +

      +

      +

      Kullanımı:

      ban version {
      +	mask <versiyon-maskesi>;
      +	reason <ban-için-sebep>;
      +	action [kill|tempshun|shun|kline|zline|gline|gzline];
      +};
      +

      +

      Ban version bloğu bir kullanıcıya, kullandığı IRC client +yazılımı esas alınarak, ban atmanıza olanak verir. Bu, kullanıcıların CTCP +version 'a karşı verdikleri cevap kullanılarak yapılır. Bu yüzden eğer +kullanıcı +CTCP version'a cevap vermezse ban işlevi geçerli olmayacaktır. Bu özellik +kötü +niyetli scriptleri bloke etmek için tasarlanmıştır. ban::mask +kısmında banlanacak versiyon belirtilir. Bu +kısımda (?), (*), (!) işaretleri kullanılabilir. ban::reason kısmında +ise ban gerekçesi belirtilir. Aynı +zamanda ban::action kısmında, kill default değeri olmak üzere, +tempshun/shun/kline/zline/gline/gzline eylemlerini de, +(*@IPADDR) şeklinde uygulanmak üzere belirtebilirsiniz. Burada atılacak +banın +süresi set::ban-version-tkl-time kısmında belirtilen değerdir ve default +değeri +1 gündür.

      +

      Örnek:

      ban version {
      +	mask "*SomeLameScript*";
      +	reason "SomeLameScript contains backdoors";
      +};
      ban version {
      +	mask "*w00tZombie*";
      +	reason "I hate those hundreds of zombies";
      +	action zline;
      +};
      +

      +

      +

      4.19 - +Ban Exceptions Bloğu +İSTEĞE BAĞLI (Önceden bilinen E:Line) +

      +

      +

      Kullanımı:

      except ban {
      +	mask <hostmaskesi>;
      +};
      +

      +

      Except ban bloğu, ban atılsa dahi, atılan ban +kaldırılmaksızın sunucuya giriş yapabilecek kullanıcı@host 'ları +belirtmenizi +sağlar. Belirli bir ISP için bütün ip'lere ban atmak istediğinizde bu +özellik +yararlı olacaktır, çünkü o ISP üzerinden bağlantı sağlayan, sunucuya +girebilmelerini istediğiniz kullanıcıların bu blok ile sunucuya girişleri +mümkün +olacaktır. except::mask yönergesi ile sunucuya bu şekilde girmelerine izin +verilecek kullanıcıların maskelerini kullanıcı@host şeklinde +belirtebilirsiniz.

      +

      Örnek:

      except ban {
      +	mask myident@my.isp.com;
      +};
      +

      +

      +

      4.20 - +TKL Exceptions Bloğu +İSTEĞE BAĞLI +

      +

      +

      Kullanımı:

      except tkl {
      +	mask <hostmaskesi>;
      +	type <tip>;
      +	type {
      +		<tip>;
      +		<tip>;
      +		...
      +	};
      +};
      +

      +

      Except tkl bloğu , belirtilen tip(ler)de atılan bir ban +kaldırılmaksızın, sunucuya giriş yapabilecek kullanıcı@host 'ları +belirtmenizi +sağlar. Eğer belirli bir ISP için bütün IPlere ban atmak istiyorsanız ve +hala bu +ISP üzerinden belirli kullanıcıların girebilmesini istiyorsanız bu blokla +bunu +mümkün kılabilirsiniz. except::mask yönergesi ile bağlantısına izin +verilecek +kullanıcı@host maskesi belirtilir. except::type yönergesi ile hangi bandan +etkilenilmeyeceği belirtilir. Geçerli tipler: gline, gzline, qline, gqline, +ve +shun, eğer type {} formatı kullanılırsa birden fazla tip belirtilebilir.

      +

      Örnek:

      except tkl {
      +	mask myident@my.isp.com;
      +	type gline;
      +};
      +

      +

      +

      4.21 - +Throttle Exceptions +Bloğu İSTEĞE BAĞLI +

      +
      +

      Kullanımı:

      except throttle {
      +	mask <ipmaskesi>;
      +};
      +

      +

      Except throttle bloğu ile throttling sisteminden +etkilenmiyecek IP maskelerini belirtebilirsiniz. Bu blok ancak throttling +özelliğini aktif ederseniz işlem görecektir. except::mask yönergesi ile bu +sistemden etkilenmeyecek IP maskesi belirtilir.

      +

      Örnek

      except throttle {
      +	mask 192.168.1.*;
      +};
      +

      +

      +

      4.22 - +Deny DCC Bloğu İSTEĞE BAĞLI (Önceden bilinen dccdeny.conf)

      +
      +

      Kullanımı:

      deny dcc {
      +	filename <bloke-edilecek-dosya-ismi>;
      +	reason <bloke-için-gerekçe>;
      +	soft [yes|no];
      +};
      +

      +

      Deny dcc bloğu sunucu üzerinden DCC yoluyla +gönderilmesine izin verilmeyecek dosya isimlerini belirtmenize olanak +sağlar. Bu +trojanların ve virüslerin yayılmasını engellemeye yardımcı olacaktır.

      +

      deny::filename yönergesi ile +gönderimine izin verilmeyecek dosya ismi belirtilir, burada (?), (*), (!) +işaretleri kullanılabilir, deny::reason yönergesi +ile gönderimi bloklama gerekçesi belirtilir.

      +

      Aynı zamanda birde deny::soft seçeneği vardır, eğer bu yönerge +değeri +'yes' olarak belirtilirse karşı taraf dosyayı /DCCALLOW ++göndermeyi-deneyen-nick +komutuyla alabilir. Daha fazla bilgi için dccallow.conf dosyasına göz +atın.

      +

      Örnek

      deny dcc {
      +	filename virus.exe;
      +	reason "This is a GD Virus";
      +};
      +
      +deny dcc {
      +	filename "*.exe";
      +	reason "Executable content";
      +	soft yes;
      +};
      +

      +

      +

      4.23 - +Deny Version Bloğu +İSTEĞE BAĞLI (Önceden bilinen V:Line) +

      +

      +

      Kullanımı:

      deny version {
      +	mask <sunucu-ismi>;
      +	version <versiyon-numarası>;
      +	flags <derleme-flagları>;
      +};
      +

      +

      Bu blok, bir sunucudan gelecek linki, sunucunun +kulandığı Unreal versiyonuna ve derleme zamanı flag seçeneklerine göre +reddetmenize olanak sağlar. Bu blok format olarak biraz kompleks bir yapıya +sahiptir ama düzenlemesi o kadar zor değildir. deny::mask yönergesi ile +linki, +kullandığı unreal versiyonu sebebiyle reddedilecek sunucu maskesi +belirtilir, +burada (?), (*), (!) işaretleri kullanılabilir. deny::version yönergesi ile +sözü +edilen unreal versiyonunun protokol numarası belirtilir.

      +

      Örneğin, 3.0 versiyonu için bu numara 2301, 3.1.1/3.1.2 +için 2302, 3.2 için 2303 olarak belirtilebilir. Bu parametrenin ilk +karakteri +olarak >, <, =, ! işaretleri belirtilebilir. Bu karakterle IRCd'e, +belirtilecek versiyonu nasıl yorumlağacağı bildirilir. Eğer ilk karakter +olarak +> işareti belirtilmişse, versiyon numarası belirtilen versiyondan büyük +olan +bütün versiyonların linki reddedilecektir. Eğer ilk karakter olarak < +işareti +belirtilmişse, versiyon numarası belirtilen versiyondan küçük olan bütün +versiyonların linki reddedilecektir. Eğer ilk karakter olarak = işareti +belirtilmişse sadece o versiyonun linki reddedilecektir, ve eğer ! işareti +belirtilmişse ilk karakter olarak, belirtilen versiyon haricinde ki bütün +versiyonların linki reddedilecektir. deny::flags yönergesi ile sunucunun +olabilecek veya olamayacak derleme zamanı flagları belirtilir. Flaglar +aralarında boşluk olmadan ardarda belirtilir, eğer başında ! karakteri +belirtilirse, belirtilen flaglar haricindeki flaglara sahip versiyonların +linki +reddedilecektir. Eğer ! işareti yoksa sadece belirtilen flaglarla derlenmiş +versiyona sahip sunucuların linki reddedilecektir.

      +

      +

      4.24 - +Deny Link Bloğu İSTEĞE BAĞLI (Önceden bilinen D/d:Line) +

      +

      +

      Kullanımı:

      deny link {
      +	mask <sunucu-ismi>;
      +	rule <ifade>;
      +	type <reddetme-tipi>;
      +};
      +

      +

      Bu blok bir sunucudan gelecek linkin belirli kurallara +göre reddedilmesine olanak sağlar. deny::mask yönergesi ile belirtilecek +kurallarla örtüşen sunucu ismi maskesi belirtilir, burada (!),(*),(?) +işaretleri +kullanılabilir. deny::rule yönergesi çok kompleks bir yapıya sahiptir. Bu +yönerge sayesinde linki çok büyük bir ayrıntıyla kontrol edebilirsiniz. Bu +yönerge ile 4 operator belirtilebilir, connected(<sunucumaskesi>), +eğer +belirtilen sunucumaskesi bağlı olan bir sunucu ile eşleşirse bu yönergenin +dönüş +değeri lojik 1'dir, directcon(<sunucumaskesi>), eğer belirtilen sunucu +maskesi direkt bağlantı ile sunucuya linkli ise bu yönergenin dönüş değeri +lojik +1'dir, via(<viamaskesi>,<sunucumaskesi>), eğer belirtilen +sunucumaskesi, viamaskesi ile eşleşmiş bir sunucu tarafından bağlantı +kuruyorsa +bu yönergenin dönüş değeri lojik 1'dir, ve directop(), eğer link /connect +komutu +ile direkt olarak gerçeklendiyse dönüş değeri yine lojik 1'dir. Bu +operatörler +&& (ve) ve || (veya) karakterleri ile birleştirilebilir, öğeler +gruplama +sağlamak için parantez içinde de belirtilebilir. Ek olarak bir operatörden +önce +! karakteri belirtilirse bu, bu karakter kullanılmadan önce ki dönüş değeri +1 +ise bunu 0 yapar. Eğer dönüş değeri lojik olarak 1se link reddedilecektir. +deny::type yönergesi iki farklı değere izin verir, auto (otomatik +bağlantılar, +/connect hala kullanılabilir) ve all (bütün bağlantı denemeleri).

      +

      +

      4.25 - +Deny Channel Bloğu +İSTEĞE BAĞLI (Önceden bilinen chrestrict.conf)

      +
      +

      Kullanımı:

      deny channel {
      +	channel "<kanal-maskesi>";
      +	reason <yasaklama-için-gerekçe>;
      +	redirect "<kanal-ismi>";
      +	warn [on|off];
      +};
      +

      +

      +

      Deny channel bloğu, kullanıcıların belirli kanallara +girmesini engellemenize olanak sağlar. deny::channel +yönergesi ile girilemeyecek kanal maskesi belirtilir, burda (*),(?),(!) +işaretleri kullanılabilir. deny::reason yönergesi +ile kanala neden girilemeyeceğinin gerekçesi belirtilir. Ek olarak, +deny::redirect yönergesini de kullanabilirsiniz. Eğer +bu yönerge ile bir kanal ismi belirtirseniz, kullanıcı deny::channel +yönergesi +ile belirttiğiniz kanala girmeyi denerse otomatik olarak deny::redirect +yönergesinde belirttiğiniz kanala yönlendirilecektir. Aynı zamanda +deny::warn yönergesini de ,belirtilen kanala girme +denendiğinde, operlere uyarı gitmesi için (eğer on olarak belirtirseniz) +kullanabilirsiniz.

      +

      Örnek

      deny channel {
      +	channel "#unrealsucks";
      +	reason "No it don't!";
      +};
      +
      +deny channel {
      +	channel "#*teen*sex*";
      +	reason "You == dead";
      +	warn on;
      +};
      +
      +deny channel {
      +	channel "#operhelp";
      +	reason "Our network help channel is #help, not #operhelp";
      +	redirect "#help";
      +};
      +

      +

      +

      4.26 - +Allow Channel Bloğu +İSTEĞE BAĞLI

      +
      +

      Kullanımı:

      allow channel {
      +	channel "<kanal-maskesi>";
      +};
      +

      +

      Allow channel bloğu ile kullanıcıların girebileceği +belirli kanallar belirtebilirsiniz. allow::channel yönergesi ile kanal +maskesi +belirtilir, burada (*),(?),(!) işaretleri kullanılabilir.

      +

      Örnek:

      allow channel {
      +	channel "#something";
      +};
      +

      +

      +

      4.27 - +Allow DCC Bloğu İSTEĞE BAĞLI

      +
      +

      Kullanımı:

      allow dcc {
      +	filename "<dosyaismi-maskesi>";
      +	soft [yes|no];
      +};
      +

      +

      Allow dcc bloğu , deny dcc bloğunun kapsamı dışında +tutulacak dosya isimleri belirtebilmenize olanak sağlar. Burada (*),(?),(!) +işaretleri kullanılabilir. Eğer allow dcc::soft +yönergesini 'yes' olarak belirtirseniz 'soft dcc bans' listesi kullanılır, +eğer +'no' olarak belirtirseniz normal ('hard') dcc ban listesi kullanılır.

      +

      Örnek:

      allow dcc {
      +	filename "*.jpg"; /* Görüntü dosyaları genelde güvenilirdir. */
      +	soft yes;
      +};
      +

      +

      +

      4.28 - +Vhost Bloğu İSTEĞE BAĞLI (Önceden bilinen vhosts.conf)

      +
      +

      Kullanımı:

      vhost {
      +	vhost <vhost>;
      +	from {
      +		userhost <hostmaskesi>;
      +		userhost <hostmaskesi>;
      +		...
      +	};
      +	login <login-ismi>;
      +	password <şifre> { <auth-tipi>; };
      +	swhois "<swhois bilgisi>";
      +};
      +

      +

      Vhost bloğu, /vhost komutuyla host alabilmek için +kullanılacak login/şifreyi belirlemenize olanak sağlar. vhost::vhost +parametre +olarak user@host biçiminde olabilir veya sadece host biçiminde de olabilir. +Bu +yönergeyle kullanıcının /vhost komutunu kullandığında alacağı hostu +belirtebilirsiniz. vhost::from::userhost yönergesiyle vhost kullanım hakkı +olacak user@host 'ları belirtebilirsiniz, burda belirteceğiniz maskenin +vhost +komutunu kullanacak kullanıcının maskesiyle eşleşmesi gereklidir. Birden +fazla +hostmaskesi belirtebilirsiniz. vhost::login yönergesi ile kullanıcının +girmesi +gereken login ismini, vhost::password yönergesi ile kullanıcının girmesi +gereken +şifreyi belirtebilirsiniz. vhost::password:: yönergesi ile belirtilen şifre +için +auth tipini de belirtebilirsiniz. Geçerli auth tipleri: crypt, md5, and +sha1, +ripemd-160. Son olarak vhost::swhois yönergesi, vhost kullanacak +kullanıcının +whois bilgisine ekstra bir satır eklemenize olanak sağlar, kullanımı ise +oper::swhois yönergesindeki kullanım şekli ile aynıdır.

      +

      Örnek:

      vhost {
      +	vhost my.own.personal.vhost.com;
      +	from {
      +		userhost my@isp.com;
      +		userhost myother@isp.com;
      +	};
      +	login mynick;
      +	password mypassword;
      +	swhois "Im Special";
      +};
      +

      +

      +

      4.29 - +Badword Bloğu İSTEĞE BAĞLI (Önceden bilinen badwords.*.conf)

      +
      +

      Kullanımı:

      badword <type> {
      +	word <eşleşecek-metin>;
      +	replace <yerine-gelecek-metin>;
      +	action <replace|block>;
      +};
      +

      +

      Badword bloğu, kullanıcı ve kanal modu olan +G modu için +gönderimi engellenecek "badwords" (kötü kelimeler) listesini yönetmenize +olanak +sağlar. badword:: yönergesi ile tip belirtilir, geçerli tipler: channel, +message, quit ve all. channel: kanal modu +G için "badwords" listesi için, +message: kullanıcı modu +G için "badwords" listesi için, quit: çıkış +mesajlarını +sansürlemek için, ve all: her 3 liste için kullanılabilir. badword::word +yönergesi ile sade bir kelime belirtebilirsiniz veya bir ifade (regex) de +belirtebilirsiniz. badword::replace ile badword::word yönergesiyle +belirtilen +ifade veya kelime eşleşmesi gerçekleşmesi durumunda, bu ifade veya metnin +yerine +gönderilecek metni belirtebilirsiniz. Eğer badword::replace yönergesi +belirtilmezse, metin eşleşmesi durumunda metin <censored> ile +değiştirilecektir. badword::action yönergesi ile, kötü kelimeler listesi +içinde +bulunan bir ifade kullanılması halinde uygulanacak eylem belirtilir. Eğer +burda +replace belirtilirse ifade badword::replace yönergesiyle belirtilen metinle +değiştirilecektir, eğer block belirtilirse ifade bloklanacaktır. Eğer burda +hiçbirşey belirtmezseniz geçerli eylem replace eylemi olacaktır.

      +

      Örnek:

      badword channel {
      +	word shit;
      +	replace shoot;
      +};
      +

      +

      +

      4.30 - +ULines Bloğu İSTEĞE BAĞLI (Önceden bilinen U:Line) +

      +

      +

      Kullanımı:

      ulines {
      +	<sunucu-ismi>;
      +	<sunucu-ismi>;
      +	...
      +};
      +

      +

      Ulines bloğu, belli sunuculara ekstra yetkiler vermenize +olanak sağlar. Bu sadece servisler ve stats sunucuları için kullanılmalıdır. +Normal bir sunucu burda belirtilmemelidir.

      +

      Örnek

      ulines {
      +	services.mynetwork.com;
      +	stats.mynetwork.com;
      +};
      +

      +

      +

      4.31 - +Link Bloğu İSTEĞE BAĞLI (Önceden bilinen C/N/H:Lines)

      +
      +

      Kullanımı:

      link <sunucu-ismi> {
      +	username <kullanıcımaskesi>;
      +	hostname <ipmaskesi>;
      +	bind-ip <bağlanılacak-ip>;
      +	port <bağlantı-için-kullanılacak-port>;
      +	password-connect <bağlantı-için-gereken-şifre>;
      +	password-receive <onaylanacak-şifre> { <auth-tipi>; };
      +	hub <hub-maskesi>;
      +	leaf <leaf-maskesi>;
      +	leafdepth <depth>;
      +	class <sınıf-ismi>;
      +	ciphers <ssl-anahtarları>;
      +	options {
      +		<tercih>;
      +		<tercih>;
      +		...
      +	};
      +};
      +

      +

      Bu sunucuları linklemek için gerekli bloktur, lütfen +burda yazılan açıklamaları okumaya zaman ayırın, çünkü bu zor işlemlerden +bir +tanesidir ve kullanıcılar genellikle bu kısımda hata yaparlar ;P

      +

      İlk olarak sunucu-ismi ile +uzak sunucu ismi belirtilir, uzak sunucu ismi, o sunucunun me { } bloğunda +belirtilen isimdir, hub.blah.com gibi (IP olamaz ve uzak sunucunun +hostname'inden farklı olabilir).

      +

      username
      Eğer kimlik denetimi için sunucunuzda identi +kullanıyorsanız bu kısmı belirtebilirsiniz, normalde "*" olarak belirtilir. +

      +

      hostname
      Uzak sunucunun IP'si veya hostudur. Bu hem bağlantı +hem de +kimlik denetimi/doğrulaması için kullanılır. Birkaç örnek:
      + + + + + + + + + + + + + +
      1.2.3.4normal IP
      hub.blah.comsadece giden bağlantılar için, gelen + bağlantılarda, link::options::nohostcheckhost yönergesi ile +belirtilmeden, + kabul edilemez
      *doğru şifre kullanıldığı sürece link hangi + hostname'den gelirse gelsin bağlanmasına izin verilecektir
      ::ffff:1.2.3.4ipv6 özelliğini kullanan bir sunucuyu ipv4 + özelliğini kullanan bir sunucuya linklemek için +kullanılır

      +

      bind-ip (isteğe bağlı)
      Belirli bir IP'ye bağlamak için +kullanılabilir (ör: +192.168.0.1) , hemen hemen neredeyse hiç kullanılmaz.

      +

      port
      Link için bağlantı portu.

      +

      password-connect
      Uzak sunucuya bağlanmak için gerekli olan +şifre, sade-metin +şeklinde olmalı.

      +

      password-receive
      Gelen linkleri doğrulamak (onaylamak) için +gerekli şifre. +Geçerli metodların biri ile yeniden şifrelenebilir.(geçerli metodlar: crypt, +md5, sha1, ripemd-160). Şifre olarak sade-metin belirtmek için auth-tipi +parametresini kullanmayın. Bu şifre genellikle uzak sunucuya bağlanmak için +gerekli olan şifre ile aynıdır.

      +

      hub vs leaf
      Birçok sunucunun linklendiği sunucu bir hubdur, +leaf ise +tek bir linke sahiptir...Bir sunucu ya hubdur, yada leafdir, bu 2 seçeneği +beraber kullanamazsınız.

      +

      hub (isteğe bağlı)
      hub olarak bağlanacak sunucuların maskesidir +(ör: +*.my.net).

      +

      leaf (isteğe bağlı)
      leaf olarak bağlanacak sunucuların +maskesidir.

      +

      leafdepth (isteğe bağlı)
      Eğer bu belirtilirse leaf de +belirtilmelidir. Belirtilen +sunucu için sıçrama sayısıdır.

      +

      class
      Sunucunun bulunacağı sınıftır (class), genellikle bunun +için ayrı bir sunucu sınıfı kullanılır (server class).

      +

      compression-level (isteğe +bağlı)
      Bu link için sıkıştırma düzeyini belirtir (1-9 +arasında olmalıdır). Sadece, daha önceden link::options::zip yönergesi +belirtildiyse kullanılır.

      +

      ciphers (isteğe bağlı)
      Bu linkte kullanılacak SSL anahtarlarını +belirtir. Mevcut +geçerli anahtarları görmek için `openssl ciphers` komutunu kullanın. +Anahtarlar +: işareti ile ayrılarak ayrı ayrı belirtilebilir.

      +

      options bloğu
      Sunucuyla bağlantı sırasında bir veya daha çok +tercih +kullanılır, bazen de gerekmez.
      + + + + + + + + + + + + + + + + + + + +
      sslEğer SSL portundan bağlanıyorsanız bu seçeneği + tercih edebilirsiniz.
      autoconnectSunucu, bağlanmayı otomatik olarak deneyecekse + (bunu tek taraflı olarak aktif etmeniz önerilir leaf->hub) bu +seçeneği + tercih edebilirsiniz.
      zipEğer sıkıştırılmış linkler istiyorsanız (derleme + sırasında belirtilmeli + her iki tarafta da tercih edilmeli) bu +seçeneği + tercih edebilirsiniz.
      nodnscachegiden sunucu bağlantısında IP gizlemesinin + olmasını istemiyorsanız bu seçeneği tercih edebilirsiniz. Bunu eğer +host + sık sık değişiyorsa kullanın (dyndns.org gibi).
      nohostcheckuzakta host (link::hostname yönergesi ile + belirtilen host)doğrulaması yapılsın istemiyorsanız bu seçeneği tercih + edebilirsiniz. Bunu eğer host sık sık değişiyorsa kullanın (dyndns.org + gibi).
      quarantineBu sunucuda ki operler GLOBAL oper yetkilerine + sahip olamazlar, linkleri test etmek gibi eylemlerde + kullanılır.

      +

      Örnek:

      link hub.mynet.com {
      +	username *;
      +	hostname 1.2.3.4;
      +	bind-ip *;
      +	port 7029;
      +	hub *;
      +	password-connect "LiNk";
      +	password-receive "LiNk";
      +	class servers;
      +	options {
      +		autoconnect;
      +		ssl;
      +		zip;
      +	};
      +};
      +

      +

      +

      4.32 - +Alias Bloğu İSTEĞE BAĞLI

      +
      +

      Kullanımı [standard alias]:

      alias <isim> {
      +	target <yönlenilecek-nick>;
      +	type <alias-tipi>;
      +	spamfilter <yes|no>;
      +};
      +

      +

      (Not: aynı zamanda UnrealIRCd'in sahip olduğu standart +alias dosyalarını görmek için buraya tıklayın.)

      +

      Alias bloğu [standard alias] bir kullanıcıya bir komutu +yönlendirmenize olanak sağlar, örneğin /chanserv komutu chanserv nickli +kullanıcıya mesaj gönderir. alias:: ile alias olacak komut ismi +belirtilir(ör: +chanserv), alias::target yönergesi ile hedef olarak komutun yönlendirileceği +nick veya kanal belirtilir, eğer alias:: kısmı belirtilen hedef ile aynı +olacaksa, bu durumda alias::target belirtilmeyebilir. alias::type yönergesi +ile +alias'ın tipi belirtilir, geçerli tipler: services (hedef servisler +kullanıcısı +ise), stats (hedef istatistik sunucusu kullanıcısı ise), normal (hedef +ağdaki +herhangi bir sunucudaki herhangi bir kullanıcı ise), ve channel (hedef bir +kanal +ismi ise). Eğer alias::spamfilter (isteğe bağlı) yönergesi değeri 'yes' +olarak +belirtilirse, spam filtre sistemi gönderilecek mesajı kontrol edecektir, bu +yönerge için default değeri 'no' 'dur.
      Alias bloğunun, +aşağıda açıklandığı üzere, diğer bir formatı da vardır.

      +

      Kullanımı [command alias]:

      alias <isim> {
      +	format <düzenli-ifade> {
      +		target <yönlenilecek-nick>;
      +		type <alias-tipi>;
      +		parameters <parametre-dizisi>;
      +	};
      +	format <düzenli-ifade> {
      +		command <komut>;
      +		type real;
      +		parameters <parametre-dizisi>;
      +	};
      +	format <düzenli-ifade> {
      +		...
      +	};
      +	type command;
      +	spamfilter <yes|no>;
      +};
      +

      +

      Alias bloğunun bu formatta kullanımı size daha geniş bir +etki alanı sağlar. Örneğin /identify gibi bir alias oluşturabilirsiniz. +alias:: +yukarıda anlatıldığı ile aynı formdadır, alias komutunun ismidir. +alias::format +ile, alias komutuna gönderilecek metinle karşılaştırılması yapılacak ifade +belirtilir, alias komutunun, gönderilecek metine göre farklı şeyler +yapmasını +birden fazla alias::format yönergesi belirterek +sağlayabilirsiniz. alias::format::target +yönergesiyle bu alias komutunun yönlendirileceği hedef belirtilir, "gerçek +alias" ta bu yönerge yerine alias::format::command +yönergesi kullanılır. alias::format::type ile +yönlendirilecek mesajın tipini belirtebilirsiniz, burada aynı zamanda tip +olarak +"gerçek alias" için "real" olarak belirtme yapabiliriz. +alias::format::parameters bu aliasa gönderilecek +parametreleri belirtmenizi sağlar. Bu parametreleri % işaretini takip eden +bir +sayıyla belirtebilirsiniz, örneğin %1 ilk parametreyi temsil eder. Bütün +parametreleri belirli bir parametreden sona doğru belirtmek için % işareti, +ardından gelen bir sayı ve ardından da - işaretini belirterek +sağlayabilirsiniz, +örneğin %2- bütün parametreleri 2. parçadan itibaren sona doğru belirtir. +Komutlar için alias bloğunun kullanımına örnekler için, doc/example.conf +dosyasına bakın.

      +

      +

      4.33 - +Help Bloğu İSTEĞE BAĞLI

      +
      +

      Kullanımı:

      help <komut> {
      +	<metin-dizisi>;
      +	<metin-dizisi>;
      +	...
      +};
      +

      +

      (Note: normally you just include help.conf)

      +

      Help bloğu /helpop komutunda kullanılmak üzere girişler +oluşturmanıza olanak sağlar. help:: /helpop ile belirtilmesi gereken +parametre +değeridir, eğer bu kısım belirtilmezse metin dizileri tek /helpop komutu +kullanımında (parametresiz kullanımında) görüntülenecektir. Bu blokta +belirtilen +metin dizileri /helpop komutunun belirtilen parametre ile kullanılması +durumunda +kullanıcıya gönderilecektir.

      +

      +

      4.34 - +Official Channels +Bloğu İSTEĞE +BAĞLI

      +
      +

      Kullanımı:

      official-channels {
      +	"#channel" { topic "The default topic"; };
      +};
      +

      +

      Bu blokta belirtilecek kanallar; kanallarda kullanıcı +bulunmasa dahi /list komutu uygulandığında kanal listesinde gözükecektir. +topic ise isteğe bağlı olarak belirtilebilir. Burda +belirtilen topic sadece kanalda kullanıcı bulunmadığında ve /list komutunun +uygulanması durumunda gösterilecektir.

      +

      Örnek:

      official-channels {
      +	"#Help" { topic "The official help channel, if nobody is present type 
      +/helpop helpme"; };
      +	"#Home";
      +	"#Main" { topic "The main channel"; };
      +};
      +

      +

      4.35 - +Spamfilter Bloğu İSTEĞE BAĞLI

      +
      +

      Spamfilter bloğu ile lokal (yerel) spam filtreleri +ekleyebilirsiniz. (ağ çapında değil).
      Spam filtreleri +hakkında daha fazla bilgi edinmek için Özellikler - Spamfilter bölümüne +bakınız.

      +

      Kullanımı:

      spamfilter {
      +	regex <kelime>;
      +	target { <hedef(ler)> };
      +	action <eylem>;
      +	reason <sebep>;
      +	ban-time <süre>;
      +};
      +

      +

      regex ile filtrelenecek +ifade belirtilir.
      target ile +hedef(ler) belirtilir, olası hedef tiplerini görmek için buraya tıklayınız. (ör: +'channel')
      action ile uygulanacak eylem +belirtilir, olası eylem tiplerini görmek için buraya tıklayınız. (ör: +'gline').
      reason isteğe bağlı: yasaklama +(ban) veya bloke etme gerekçesi belirtilir. eğer belirtilmezse default +değeri +gerekçe olarak görüntülenecektir.
      ban-time isteğe bağlı: *line ban +veya shun için süre +belirtmenize olanak sağlar, eğer belirtilmezse default değeri +uygulanır.(default +değeri: 1 gün).

      +

      Örnekler:

      spamfilter {
      +	regex "Come watch me on my webcam";
      +	target { private; channel; };
      +	action gline;
      +	reason "You are infected, please go to 
      +www.antivirus.xx/blah/virus=GrrTrojan";
      +	ban-time 6h;
      +};
      +
      +spamfilter {
      +	regex "come to irc\..+\..+";
      +	target { private; channel; };
      +	action gline;
      +	action gline;
      +	reason "No spamming allowed";
      +};
      +
      +

      +

      4.36 - +Cgiirc Bloğu İSTEĞE BAĞLI

      +
      +

      Cgiirc bloğu, güvendiğiniz CGI:IRC ağ gecitleri için, +host spoofing özelliğini yapılandırmanıza olanak sağlar (daha fazla bilgi).

      +

      Kullanımı:

      cgiirc {
      +	type <webirc|old>;
      +	username <maske>; /* isteğe bağlı */
      +	hostname <maske>;
      +	password <şifre>; /* sadece webirc tipi için */
      +};
      +

      +

      type ya 'webirc' ya da 'old' +olarak belirtilir.
      username +kısmı ident ile eşleşir(eğer kullanılıyorsa). eğer belirtilmezse, değer, "*" +olarak varsayılır.
      hostname +eşleşmeye karşı düşecek maskedir.
      password webirc şifresidir, +sadece type kısmında +'webirc' değerinin belirtilmesi durumunda kullanılır.

      +

      'webirc' metoduyla nasıl +yapılandırılır (önerilen metod)
      CGI:IRC +konfigürasyon dosyanızda (cgiirc.conf) webirc_password kısmında uygun bir +şifre +belirtin.
      Daha sonra unrealircd.conf dosyanızın içinde +cgiirc bloğuna bu hostu ve şifreyi ve cgi::type yönergesiyle de "webirc" +değerini belirtin.

      Örnek:
      CGI:IRC konfigürasyon dosyanıza +(cgiirc.conf) ekleyeceğiniz +kısım:

      webirc_password = LpT4xqPI5
      daha sonra, +unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:
      cgiirc {
      +	type webirc;
      +	hostname "1.2.3.4";
      +	password "LpT4xqPI5";
      +};
      +

      +

      'old' metoduyla nasıl +yapılandırılır
      NOT: İki dezavantajı olması nedeniyle +bu metod önerilmez. Dezavantajları: bu metod spoof için gönderilecek IP/host +'u +bir sunucu şifresi gibi gönderir, yani bir CGI:IRC kullanıcısı bağlantı için +bir +sunucu şifresi belirtemez. Ek olarak erişim kontrolu sadece IP-tabanlıdır ve +'webirc' metodunda olduğu gibi ekstradan bir şifre gerektirmez. Kısacası +eğer +gerçekten geçerli bir sebebiniz yoksa bu metodu kullanmayın.

      CGI:IRC +konfigürasyon dosyanızda +(cgiirc.conf) set realhost_as_password kısmınının değerini 1 olarak +belirtin.
      Daha sonra bu hosta izin vermek için unrealircd.conf +dosyanıza cgiirc bloğunu ekleyin.

      Örnek:
      CGI:IRC konfigürasyon +dosyanıza (cgiirc.conf) ekleyeceğiniz kısım:

      realhost_as_password = 
      +1
      Daha sonra +unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:
      cgiirc {
      +	type old;
      +	hostname "1.2.3.4";
      +};
      +

      +

      4.37 - +Set Bloğu GEREKLİ (Önceden bilinen +unrealircd.conf/networks file)

      +
      +

      Tek sunuculu ağlarda, bütün set deyimlerini +unrealircd.conf dosyanızda belirtebilirsiniz. Çok sunuculu ağlarda ise her +bir +sunucu için ayrı bir set dosyası kullanmanız önerilir.

      +

      Eğer sunucunuz bir ağa bağlı ise, bu durumda ağ ile aynı +Set ayarlarını kullanacaksınız. Bu sebeple böyle bir durumda include yönergesiyle yüklenecek bir ağ dosyası +oluşturmanız daha mantıklıdır. Aşağıda mevcut bütün set yönergelerini ve +açıklamalarını bulabilirsiniz.

      +

      Dökümanın bu kısmında ayarların / yönergelerin +<blok-ismi>::<blok-yönergesi> formatında olduğundan bahsetmek +istiyoruz. Bu format direkt olarak konfigürasyon dosyasında belirtilemez. +Dolayısıyla konfigürasyon dosyasında belirtilebilmesi için aşağıdaki formata +çevirilmesi ZORUNLUDUR.

      +

      Kullanımı:

      set {
      +	<giriş> <değer>;
      +	<giriş> <değer>;
      +	...
      +};
      +

      +

      Set bloğuyla sunucuda kullanılacak özellikler/tercihler +teker teker belirtirilir. Her bir girişin farklı anlamı vardır ve bu nedenle +herbiri aşağıda açıklanmıştır. Bazı yönergelerin ise, yine açıklanacak, alt +blokları vardır. Bütün özelliklerin karşılanması için birçok set ifadesi +vardır, +bütün ifadeler aşağıda listelenmiştir, herbiri 1 set ifadesi altında +belirtilebilir.
      Örnek:

      set {
      +	kline-address my@emailaddress.com;
      +	auto-join #welcome;
      +	options {
      +		hide-ulines;
      +	};
      +	hosts {
      +		local LocalOp.MyNet.com;
      +		global globalop.mynet.com;
      +	};
      +};
      +

      +

      Eğer set ifadelerini ayırmak istiyorsanız, aşağıdaki +formatı kullanabilirsiniz.
      Örnek:
      set { options { hide-ulines; +no-stealth; }; };

      +

      set::kline-address +<email-adresi>;
      Burada iletişim için, +K:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi +belirtilir. Burada belirtilen adres K:line komutu uygulandığında sunucudan +bağlantısı kesilen kullanıcıya görüntülenecektir. Bu değer belirtilmek +zorundadır.

      +

      set::gline-address +<email-adresi>;
      Burada iletişim için, +G:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi +belirtilir.

      +

      set::modes-on-connect +<+modlar>;
      Kullanıcının sunucuya bağlandığı anda alacağı +modları +belirtir.

      +

      set::snomask-on-connect +<+modlar>
      Kullanıcının sunucuya bağlandığı anda alacağı +snomaskları +belirtir.

      +

      set::modes-on-oper +<+modlar>;
      Oper açıldığı anda alınacak +modları belirtir.

      +

      set::snomask-on-oper <+modlar>;
      Oper +açıldığı anda alınacak snomaskları belirtir.

      +

      set::modes-on-join +<+modlar>;
      Kanalın, kanal ilk olarak +(oluşturulduğu) kullanıldığı anda, alacağı modları belirtir. Bu yönergeyle +mevcut bütün modlar belirtilemez, +qaohvbeOAzlLk modları bu yönergeyle +verilemez.

      +

      set::restrict-usermodes <modlar>
      Burada +belirtilen modların kullanıcılar tarafından +kullanımını kısıtlar ( + veya - kullanmayın).
      Örneğin +modes-on-connect kısmında +G modunu ve restrict-usermodes kısmında da yine G +modunu belirtirseniz, bütün kullanıcılar, sunucuya bağlandıkları anda +G +modunu +alacaklardır ve bu modu -G yaparak kaldıramayacaklardır.

      +

      set::restrict-channelmodes +<modlar>
      Burada belirtilen kanal modlarının kullanıcılar +tarafından +kullanımını kısıtlar ( + veya - kullanmayın).
      Örneğin +modes-on-join kısmında +G modunu ve restrict-channelmodes kısmında da yine G +modunu belirtirseniz, oluşturulacak bütün yeni kanallar +G modunu +alacaklardır +ve bu mod -G yaparak kaldırılamayacaktır.

      +

      set::restrict-extendedbans +<tipler|*>
      Kullanıcıların kapsamlı ban (extended ban) +atmalarını +kısıtlar. Eğer ("*") belirtilirse kullanıcılar hiçbir tipte kapsamlı ban +atamaz, +eğer bir tip belirtilirse sadece belirtilen kapsamlı ban tipi +kullanılamaz.(ör: +"qc").

      +

      set::auto-join +<kanal(lar)>;
      Kullanıcın sunucuya +bağlandığı anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal +belirtmek için kanalları virgül ile ayırın.
      [Not: tırnak +işareti kullanmayı unutmayın, auto-join "#kanal"; gibi]

      +

      set::oper-auto-join +<kanal(lar)>;
      Kullanıcının /oper açtığı +anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal belirtmek +için +kanalları virgül ile ayırın.
      [Not: tırnak işareti +kullanmayı unutmayın, oper-auto-join "#kanal"; gibi]

      +

      set::anti-spam-quit-message-time +<zaman-değeri>;
      /quit mesajının +görüntülenebilmesi için, bir kullanıcının sunucuya ne kadar süre bağlı +kalması +zorunda olduğunu belirtmenize olanak sağlar.(zaman değeridir). Spam'ı +engellemek +için kullanılır. Burada belirtilecek zaman değeri için; d günü, h saati, m +dakikayı ve s ise saniyeyi temsil eder. Örneğin 1d2h3m gibi bir değerin +anlamı 1 +gün, 2 saat ve 3 dakikadır.

      +

      set::prefix-quit +<çıkış-mesajı-için-önek>;
      Burda belirtilen +önek çıkış mesaj metninin başlangıcına eklenir. Eğer burda değer 0 olarak +belirtilirse standart olarak "Quit:" kullanılır.

      +

      set::static-quit +<çıkış-mesajı>;
      Kullanıcıların, ağdan +çıkarken görüntülenen, çıkış mesajlarını sabitler. Sabitlenecek çıkış +mesajlarına HATA mesajları dahil değildir.

      +

      set::static-part +<no|yes|çıkış-mesajı>;
      Eğer değer olarak +'yes' belirtilirse kanaldan çıkışlarda çıkış mesajı (part mesajı) +görüntülenmeyecektir, eğer değer olarak 'no' belirtilirse çıkışlarda +belirtilen +çıkış mesajları olağan şekilde görüntülenecektir, eğer değer olarak bir part +mesajı belirtilirse kanallardan çıkarken görüntülenecek çıkış mesajları +burda +belirtilen çıkış mesajına sabitlenecektir. (ör: static-part "Bye!")

      +

      set::who-limit +<limit>;
      /who komutu kullanımında +listelenecek eşleşmelerin max sayısını belirtir. Eğer belirtilmezse +listelenecek +eşleşmelerin herhangi bir limit olmayacaktır.

      +

      set::silence-limit +<limit>;
      SILENCE listesinde bulunabilecek +maksimum giriş sayısını belirler. Eğer bu yönerge belirtilmezse limit 15 +olarak +varsayılır.

      +

      set::maxbans +<limit>;
      Her kanal için izin verilen max +ban (+b) sayısını belirtir. Default değeri 60'dır. Eğer bunu +değiştirirseniz, +set::maxbanlength yönergesini de gözden geçirdiğinize emin olun.(bir sonraki +yönerge).

      +

      set::maxbanlength +<limit>;
      Yukarıdaki yönergeye benzerdir, +ancak bütün banların toplamı için maksimum karakter sayısını belirtir, +böylelikle basit bir şekilde kanalda belirtilen bir banın (ortalama olarak) +maksimum bellekte ne kadar yer kaplayacağını sınırlar.

      +

      set::oper-only-stats +<stats-listesi>;
      /stats komutunda kullanılacak, sadece oper +statüsünde olan +kullanıcıların kullanabileceği flagları belirtir. Eğer belirtilmezse statü +gözetilmeksizin bütün kullanıcılar bütün flagları kullanabilirler. Eğer * +olarak +belirtilirse bütün flaglar sadece operler tarafından kullanılabilir. Sadece +kısa +stats flaglarında kullanılabilir.

      +

      set::oper-only-stats {<stats-flagı>; +<stats-flagı>;};
      /stats komutunda +kullanılacak, sadece oper statüsünde olan kullanıcıların kullanabileceği +flagları belirtir. Sadece uzun stats flagları belirtilebilir.

      +

      set::maxchannelsperuser +<kanal-sayısı>;
      Bir kullanıcının aynı anda bulunabileceği +maksimum kanal +sayısını belirler.

      +

      set::maxdccallow +<giriş-sayısı>;
      Kullanıcının DCCALLOW +listesinde bulunabilecek maksimum giriş sayısını belirler.

      +

      set::channel-command-prefix +<komut-önekleri>;
      Servisler için "kanal +komutlarında" kullanılacak önek karakterlerini belirtmenize olanak sağlar. +Burda +belirtilen karakterlerden herhangi biriyle başlayacak mesaj kullanıcı +d +modunda +dahi olsa gönderilecektir. Default değeri "`!" olarak belirlenmiştir.

      +

      set::allowed-nickchars { <liste> +};
      Nicklerde farklı karakter gruplarının / dillerin +kullanımına olanak sağlar, Nick Karakter Gruplarına bakın.

      +

      set::allow-userhost-change +[never|always|not-on-channels|force-rejoin]
      (+x/-x/chghost/chgident/setident/vhost/vs) +gibi komutların +ne koşullarda kullanılabileceğini/kullanılamayacağını belirtmenizi +sağlar.
      never olarak belirtilirse bu +komutlardan hiçbiri kullanılamaz, eğer always olarak +belirtilirse bu komutlar her durumda kullanılabilir, eğer +not-on-channels olarak belirtilirse kullanıcı bu +komutları sadece ve sadece hiçbir kanala bağlı değilse kullanabilir, eğer +force-rejoin belirtilirse kullanıcı bu komutlardan +herhangi birini kullandığında bulunduğu kanallardan çıkıp tekrar girmeye +zorlanacaktır.

      +

      set::options::hide-ulines;
      Eğer belirtilirse +Uline olarak belirtilen sunucular, oper +statusunde olmayan kullanıcılar tarafından yapılan /links komutu sorgusunda +görüntülenmeyecektir.

      +

      set::options::flat-map;
      Eğer +belirtilirse, ağdaki bütün sunucular /map ve /links komutları sorgusunda +direkt +linkli olarak görünecektir, böylelikle hangi sunucunun hangisine linkli +olduğunu +göremezsiniz. Bu (D)DoS ataklarına karşı ufak bi önlemdir çünkü kötü niyetli +kişiler bu yönergenin belirtilmesiyle 'zayıf nokta'ları kolaylıkla +göremeyeceklerdir.

      +

      set::options::show-opermotd;
      Eğer belirtilirse +kullanıcılara, oper hesaplarını +açtıklarında, OPERMOTD dosyası gösterilecektir.

      +

      set::options::identd-check;
      Eğer belirtilirse +kullanıcı sunucuya bağlanırken identd +sunucusu kontrolünden geçecektir ve bu kontrol kullanıcının username kısmı +cevabı olarak geri dönecektir. Eğer bu kontrol sonucunda cevap dönüşü +olmazsa +kullanıcının username kısmına ~ öneki eklenecektir. Eğer belirtilmezse böyle +bir +kontrol söz konusu olmayacaktır.

      +

      set::options::show-connect-info;
      Eğer +belirtilirse, bir kullanıcı sunucuya bağlanacağı zaman +"ident request", "hostname lookup", vs. gibi ifadeler kullanıcıya +gösterilicektir.

      +

      set::options::dont-resolve;
      Eğer belirtilirse, +gelen kullanıcıların hostları +çözümlenmez.
      Not: Çözümleme işlemi yapılmayacaksa, host +tabanlı allow bloklarınız da olamaz.

      +

      set::options::mkpasswd-for-everyone;
      /mkpasswd +bütün kullanıcılar tarafından kullanılabilmesine +olanak sağlar.

      +

      set::options::allow-part-if-shunned;
      Shun'lı +kullanıcının /part komutunu kullanabilmesine olanak +sağlar.

      +

      set::options::fail-oper-warn;
      Eğer +belirtilirse, /oper komutu kullanımı başarısız olduğu +takdirde, kullanıcıya oper denemesinin kayıt edildiğine dair uyarı +gönderilir.

      +

      set::dns::timeout +<zaman-değeri>;
      Bir DNS sunucusunun, +bağlantısının zaman aşımı olarak değerlendirilip, kesilmemesi için, ne +kadarlık +bir zaman dilimi içerisinde yanıt göndermesi gerektiğini belirtmenize olanak +sağlar. Burada belirtilecek numerik değerde d günü, h saati, m dakikayı, s +ise +saniyeyi temsil eder, örneğin 1d2h3m olarak belirtilen zaman değeri 1 gün, 2 +saat ve 3 dakikayı temsil eder. (TAMAMLANMADI)

      +

      set::dns::retries +<number-of-retries>;
      DNS cozumlenmesinin basarisiz +olmasi durumda DNS cozumlemesinin kac kez tekrarlanacagini belirtir. (TAMAMLANMADI)

      +

      set::dns::nameserver +<dns-sunucu-ismi>;
      DNS aramalarında kullanılacak, sunucunun +hostname'ini +belirtir. (TAMAMLANMADI)

      +

      set::dns::bind-ip +<ip>;
      Çözümleyici için bağlanılacak IP'yi +belirtir, genellikle belirtilmeye gerek duyulmaz.

      +

      set::network-name +<ağ-ismi>;
      Sunucunun bulunduğu ağ adını +belirtmeye olanak sağlar. Burda belirtilen ağ ismi ağ üzerinde ki bütün +sunucularda aynı belirtilmek zorundadır.

      +

      set::default-server +<sunucu-ismi>;
      Sunucu full kapasitede +kullanıcıya sahip olduğunda, bağlanmayı deneyecek kullanıcılara default +sunucu +adının gösterilmesine olanak sağlar.

      +

      set::services-server +<sunucu-ismi>;
      Servisler sunucusunun ismini belirtir. +Gereklidir, eğer +servis sunucunuz yoksa, services.sizinaginiz.com gibi bir sunucu ismi +belirtmeniz gerekir.

      +

      set::stats-server +<sunucu-ismi>;
      Stats sunucusu botlarının +yerleştirileceği sunucu ismini belirtir. Eğer stats sunucunuz yoksa burayı +belirtmeyebilirsiniz.

      +

      set::help-channel +<ağ-yardım-kanalı>;
      Ağınız için yardım +kanalını (help) belirtmenize olanak sağlar.

      +

      set::cloak-keys { +"anahtar1"; "anahtar2"; "anahtar3"; };
      Hostun +gizlenmesi için, yeni hostların oluşturulmasında kullanılacak anahtarları +belirtir. Bu anahtarlar ağdaki bütün sunucular için aynı olarak +belirtilmelidir. +Her bir anahtar en az 5 en çok 100 karakter içerebilir (10-20 arası +önerilir) ve +anahtarlar küçük karakter olarak (a-z) arası harfleri, büyük karakter olarak +(A-Z) arası harfleri ve rakam olarak da (0-9) arası rakamları içerebilir. Bu +kriterlerin yüklediğiniz gizleme modülüne göre değişebileceğine dikkat +edin.

      +

      set::hiddenhost-prefix +<önek-değeri>;
      Gizlenmiş hostlara eklenecek (+x) öneki +belirtmenize olanak +sağlar. Burada genellikle ağ ismini simgeleyen 3 veya 4 harf belirtilir.

      +

      set::hosts::local +<locop-hostu>;
      Yerel operatör statüsüne +erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe +bağlı +olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      +

      set::hosts::global +<globop-hostu>;
      Global operatör statüsüne +erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe +bağlı +olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      +

      set::hosts::coadmin +<coadmin-hostu>;
      Co-admin statüsüne erişen +bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı +olarak +buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      +

      set::hosts::admin +<admin-hostu>;
      Admin statüsüne erişen bir +kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak +buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

      +

      set::hosts::servicesadmin +<servicesadmin-hostu>;
      Services +Administrator statüsüne erişen bir kullanıcının alacağı hostu belirtmenize +olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak +belirtebilirsiniz.

      +

      set::hosts::netadmin +<netadmin-hostu>;
      Net Administrator statüsüne erişen bir +kullanıcın alacağı +hostu belirtmenize olanak sağlar.İsteğe bağlı olarak burdaki değeri +kullanıcı@host olarak belirtebilirsiniz.

      +

      set::hosts::host-on-oper-up +<yes/no>;
      Eğer yes olarak belirtilirse, oper yetkisini açan +kullanıcı +(eğer H/get_host flagına sahipse), otomatik olarak, statüsüne göre hostunu +alacaktır. Eğer no olarak belirtilirse host alma işlemini oper yetkisini +açtıktan sonra manual olarak gerçekleştirecektir.

      +

      set::ssl::egd +<dosya-ismi>;
      EGD (Entropy Gathering +Daemon) desteğinin aktif olduğunu belirtir. Eğer OpenSSL 0.9.7 veya daha üst +bir +versiyonunu kullanıyorsanız bu durumda /var/run/egd-pool, /dev/egd-pool, +/etc/egd-pool ve /etc/entropy buradaki dosya ismi için default konumlar +olarak +kabul edilip aranacaktır. Dolayısıyla burada herhangi bir dosya ismi +belirtmeyip +set::ssl::egd yönergesine herhangi bir değer atamadan kullanabilirsiniz. +Eğer +OpenSSL 0.9.7 'den daha önceki bir versiyonu kullanıyorsanız yukarıda ki +belirtilen yerler haricinde dosya için başka yerlerde belirtebilirsiniz.

      +

      set::ssl::certificate +<dosya-ismi>;
      Sunucu SSL sertifikası dosyasının yerini +belirtmenizi +sağlar.

      +

      set::ssl::key +<dosya-ismi>;
      Sunucu SSL anahtarı +dosyasının yerini belirtmenizi sağlar.

      +

      set::ssl::trusted-ca-file +<dosya-ismi>;
      Güvenilen CA sertifika dosyasının yerini +belirtmenizi +sağlar.

      +

      set::ssl::options::fail-if-no-clientcert;
      Sertifakaya +sahip olmayan kullanıcıların bağlantısının +reddedilmeye zorlanmasını sağlar.

      +

      set::ssl::options::no-self-signed;
      Self-signed +sertifikalı kullanıcıların bağlantılarına izin +vermemenizi sağlar.

      +

      set::ssl::options::verify-certificate;
      Bağlantı +yetkilendirilmeden önce Unreal'in kullanılan SSL +sertifikasının geçerliliğini doğrulamasına olanak verir.

      +

      set::throttle::period +<zaman-değeri>
      set::throttle::connections yönergesinde +belirtilen bağlantı +sayısı aşıldığında kullanıcının yeniden bağlanabilmesi için ne kadar süre +beklemek zorunda olduğunu belirtir.

      +

      set::throttle::connections +<miktar>;
      Bağlantının throttle sistemine takılması için aynı +hosttan +kaç kez bağlantı isteği gelmesi gerektiğini belirtir.

      +

      set::ident::connect-timeout <miktar>;
      Ne +kadar saniye beklendikten sonra ident sunucu +bağlantısının iptal edileceğini belirtir.(default: 10s).

      +

      set::ident::read-timeout <miktar>;
      Ne +kadar saniye geçtikten sonra yanıt için vazgeçileceğini +belirtir. (default: 30s).

      +

      set::anti-flood::unknown-flood-bantime +<zaman-değeri>;
      Bilinmeyen bir bağlantıdan +flood saldırısı algılandığı zaman atılacak banın süresini belirler.

      +

      set::anti-flood::unknown-flood-amount +<miktar>;
      Bilinmeyen bir bağlantının +gönderdiği veri miktarı burada belirtilen miktarı (KiloByte cinsinden) +aştığı +zaman sunucudan bağlantısı kesilecektir.(kill)

      +

      set::anti-flood::away-flood +<miktar>:<periyot>
      Away flood +koruması: belirtilen 'periyot' başına /away komutu kullanımını belirtilen +'sayı'ya sınırlar. Ancak bu korumanın aktif olabilmesi için config.h +dosyasında +NO_FLOOD_AWAY'in aktif edilmesi gereklidir. Örnek: away-flood 5:60s; +60 saniye süresince 5 /away komutu +kullanılabilir.

      +

      set::anti-flood::nick-flood +<miktar>:<periyot>
      Nickflood +koruması: belirtilen 'periyot' başına nick değişimini belirtilen 'sayı'ya +sınırlar. Örnek: nick-flood 4:90 90 saniye süresince +4 kez nick değiştirilebilir, default değeri 60 saniye süresince 3 nick +değişimidir.

      +

      set::default-bantime <süre>
      /kline, +/gline, /zline, /shun, vs gibi yasaklama (ban) +komutlarının zaman belirtilmeden kullanıldığında (/gline *@some.nasty.isp +gibi), +banın ne kadar süre geçerli olacağını belirtir. Örnek: default-bantime +90d;

      +

      set::modef-default-unsettime +<değer>
      Kanalmodu +f için değişikliğin ne kadar süre +süreceğini +belirtmenizi sağlar. Eğer değer olarak örneğin 10 belirtirseniz bu durumda ++f +[5j]:15 gibi bir mod uygulaması [5j#i10]:15 şeklinde yorumlanacaktır.

      +

      set::modef-max-unsettime +<değer>
      Kanalmodu +f kullanılırken (ör. +f +[5j#i<süre>]:15) +belirtilebilecek maksimum süre miktarını (dakika cinsinden) belirlemenizi +sağlar. Bu değer 0 ile 255 arasında olabilir. Default değeri ise 60'dır (=1 +saat).

      +

      set::ban-version-tkl-time <değer>
      Ban +version bloğunda zline/gline/vs. gibi bir 'eylem' +belirtildiğinde bu eylem ile atılacak yasaklamanın (ban) ne kadar süreli +aktif +kalacağını belirtmenize olanak sağlar. Default değeri 86400'dür (1 gün).

      +

      set::spamfilter::ban-time +<değer>
      Yukarıda anlatılan ile aynıdır ancak bu sefer +belirtilecek +değer spamfilter tarafından *line/shun eylemleri uygulandığında +geçerlidir.

      +

      set::spamfilter::ban-reason +<gerekçe>
      Spamfilter tarafından eklenen girişlerde +gösterilecek +sebebi belirlemenize olanak sağlar.

      +

      set::spamfilter::virus-help-channel +<kanal>
      Spamfilter'da 'viruschan' eylemi için kullanılacak +kanalı +belirtir.

      +

      set::spamfilter::virus-help-channel-deny +<yes|no>
      Eğer yes (veya 1) olarak +belirtilirse, virus-help-channel ile belirtilen kanala normal bir kullanıcı +girmeyi denerse kullanıcıya 'invite only' gibi bir ibare gönderilir. Sadece +operler, spamfilter sistemi tarafından saptanan kullanıcılar ve kanala +/invite +komutuyla davet edilecek kullanıcılar giriş yapabilir.

      +

      set::spamfilter::except <hedef(ler)>
      Bu +yönergeyle belirtilecek hedef(ler) spam filtrelemesinden +muaf tutulacak(lar)dır, aralarına virgül konularak birden fazla hedef +belirtilebilir. Ör: except "#help,#spamreport"

      +

      set::check-target-nick-bans +<yes|no>
      Kullanıcı(lar) nick(ler)ini değiştirdiği zaman, +yeni nick +için yasaklama (ban) olup olmadığının kontrol edilmesine olanak sağlar. Eğer +yeni nick adına yasaklama mevcutsa nick değişimine izin verilmeyecektir. +Default +değeri yes 'dir.

      +

      set::timesynch::enabled <yes|no>
      Sunucu +başlatılırken zaman senkronizasyonu özelliğini açık +ya da kapalı olarak belirtmenize olanak sağlar. Default değeri yes’dir.

      +

      set::timesynch::server +<IP>
      Senkronizasyonun sağlanacağı sunucuları belirtmenizi +sağlar. Burada 4 IP’yi aralarında virgül kullanarak belirtebilirsiniz. +Burada +belirtilen sunucular NTP protokolu versiyon 4’ü desteklemek zorundadırlar. +Default olarak 3 zaman sunucusu kullanılır (US, EU, AU). Bu sunuculara istek +paralel olarak gönderilir, en hızlı cevap gönderen kazanır.

      +

      set::timesynch::timeout <süre>
      Sunucudan +gelecek cevap için maksimum bekleme süresini +belirtmenize olanak sağlar. Burada 1 ve 5 arasında bir değer +belirtilmelidir, +beşten büyük sayılar belirtilemez. Default değeri 3’tür ve eğer iyi bir +sebebiniz yoksa bunu değiştirmeyin.

      +

      set::pingpong-warning <yes|no>
      +NOSPOOF ozelligi aktif iken (genellikle Windows), baglanirken sorun yasayan her kullaniciya '/quote pong ..' uyarisinin +gonderilmesini ya da gonderilmemesini saglar. Default degeri no'dur.

      +

      +

      5 – Ek Dosyalar +

      +
      Konfigürasyon dosyasına ek olarak MOTD, +OperMOTD, BotMOTD ve Rules dosyaları gibi birkaç dosya daha vardır. Aşağıda +bu +dosyalar ve kullanımları listelenmiştir.
      Motd dosyaları +(bütün tiplerde ki) ve kurallar (rules) dosyaları aynı zamanda bir tld bloğu +ile +de belirtilebilir. +

        + + + + + + + + + + + + + + + + +
      ircd.motd/motd komutu sorgusunda ve kullanıcı sunucuya + bağlandığı an görüntülenir.(eğer ircd.smotd belirtilmediyse)
      ircd.smotdSadece sunucuya bağlantı sırasında + görüntülenir.(kısa MOTD)
      ircd.rules/rules komutu sorgusunda görüntülenir
      oper.motd/opermotd sorgusunda ve kullanıcı oper açtığında + görüntülenir
      bot.motd/botmotd komutu sorgusunda + görüntülenir
      +

      +

      6 – Kullanıcı & Kanal Modları

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      Mod
      +
      Açıklama
      +
      Kanal + Modları
      +
      A
      Sadece +A kullanıcı moduna sahip kullanıcılar + (admin) girebilir
      +
      a <nick>
      Belirtilen nick kanalda kick komutuna karşı + korumaya sahip olur.
      +
      b <nick!kullanıcı@host>
      Belirtilen maske kanalda yasaklanır (ban)
      +
      c
      Kanal icerisinde renk kullanimini engeller
      +
      C
      CTCP içerikli metinlerin gönderimini + engeller
      +
      e + <nick!kullanıcı@host>
      Belirtilen maske kanalda yasaklı (ban) listesinde + olsa dahi kanala girebilir
      +
      f + [<numara><tip>]:<saniye>
      Kanal flood koruma modu. Daha fazla açıklama + için. Daha fazla bilgi için bölüm 3.12'ye bakın
      +
      G
      Badword Bloğunda belirtilen kötü kelimelerin + (badwords) sansürleneceği kanal
      +
      h <nick>
      Belirtilen nick halfop statüsüne sahip olur
      +
      i
      Sadece davetle girilebilen kanal
      +
      I <nick!kullanıcı@host>
      Belirtilen maskeye sahip olan kullanıcılar, kanal + +i modunda olsa dahi kanala girebilirler
      +
      j <giriş:saniye>
      Belirtilen saniyede bir kanala giris yapilmasini + saglar
      +
      K
      /knock komutu kullanılamaz kanal
      +
      k <anahtar>
      Kanala giriş için anahtar gereken kanal
      +
      l <##>
      Kanala girebilecek maksimum kullanıcı sayısını + belirler
      +
      L <kanal>
      +l ile belirtilen kanala girebilecek maksimum + kullanıcı sayısı aşıldığında, kullanıcıların yönlendirileceği kanalı + belirtir
      +
      M
      Yalnızca kayıtlı ve tanıtılmış nick (+r) kullanan + kullanıcıların konuşabileceği kanal
      +
      m
      Yalnızca +v/o/h modlarına sahip kullanıcıların + konuşabileceği kanal
      +
      N
      Nick değiştirilemez kanal
      +
      n
      Dışarıdan gönderilen mesajların kabul edilmediği + kanal
      +
      O
      Yalnızca +O modunda ki kullanıcıların (IRCOp) + girebileceği kanal
      +
      o <nick>
      Kanalda belirtilen kullanıcıya operatör statüsü + verir
      +
      p
      Özel bir kanal
      +
      q <nick>
      Kanalda belirtilen nicke founder (kanal sahibi) + statüsü verir
      +
      Q
      Kick atılamayan kanal (U:Line sunucular + atabilir)
      +
      R
      Sadece kayıtlı (+r) kullanıcıların girebileceği + kanal
      +
      S
      Renkli yazıların, renk kodlarından arındırılıp + kanala gönderilmesini sağlar
      +
      s
      Gizli kanal
      +
      t
      Topiğin sadece operatör statüsünde ki + kullanıcılar tarafından değiştirilebileceği kanal
      +
      T
      NOTICE komutunun kullanılamayacağı kanal
      +
      u
      Auditorium – /names ve /who #kanal komutları + sorgusunda yalnızca kanal operatörleri görüntülenir
      +
      V
      /invite komutu kullanılamaz kanal
      +
      v <nick>
      Kanal +m modunda olsa dahi konuşabilecek + kullanıcıları belirtmenizi sağlar
      +
      z
      Sadece Güvenli Bağlantı (SSL) kullananların + girebileceği kanal
      +

       

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      Mod
      +
      Açıklama
      +
      Kullanıcı + Modları
      +
      A
      Server Administrator Statüsündeki kullanıcı (Oper + Bloğunda belirtilir)
      +
      a
      Services Administrator Statüsündeki kullanıcı + (Oper Bloğunda belirtilir)
      +
      B
      Bot statüsündeki kullanıcı
      +
      C
      Co Administrator Statüsündeki kullanıcı (Oper + Bloğunda belirtilir)
      +
      d
      Kanalda yazılan mesajları görmenizi +engeller
      +
      G
      Badwords bloğunda belirtilen kötü kelimeler + kullanıldığında sansürlenir
      +
      g
      GlobOps ve LocOps mesajlarını görmenizi + sağlar
      +
      H
      IRCOp statüsüne sahipseniz /whois /who sorgusunda + bu statünüz görünmez.(Sadece IRCop)
      +
      h
      Yardim görevlisi statüsü verir.(HelpOp)(Oper + Bloğunda belirtilir)
      +
      i
      Görünmez kullanıcı (/who sorgusunda görünmeyen + kullanıcı)
      +
      N
      Network Administrator Statüsündeki kullanıcı + (Oper Bloğunda belirtilir)
      +
      O
      Local IRC Operator Statüsündeki kullanıcı (Oper + Bloğunda belirtilir)
      +
      o
      Global IRC Operator Statüsündeki kullanıcı (Oper + Bloğunda belirtilir)
      +
      p
      /whois sorgusunda bulunduğunuz kanalları + gizler
      +
      q
      Sadece U:Lines ile belirtilen sunucular + tarafından kanallardan atılabilirsiniz.(Sadece Services Administrator + Statüsündeki kullanıcılar kullanabilir)
      +
      R
      Sadece nicki kayitli (+r) olan kullanıcılardan + mesaj almanızı sağlar
      +
      r
      Kayıtlı kullanıcı
      +
      S
      Servisler için koruma modu
      +
      s
      Sunucu mesajlarını görmenizi sağlar (daha fazla + bilgi için bölüm 3.3'e bakın)
      +
      T
      CTCP metinlerinin size gönderimini engeller
      +
      t
      /vhost kullandığınızı belirtir
      +
      V
      Kullanıcının WebTV kullandığını belirtir
      +
      v
      Bloke edilmiş DCC mesajlarını görmenizi + sağlar
      +
      W
      Size /whois çekildiğinde whois çekeni görmenizi + sağlar. (Sadece IRCOp statüsündeki kullanıcılar +kullanabilir)
      +
      w
      Wallop mesajlarını görmenizi sağlar
      +
      x
      Gizlenmiş host kullandığınızı belirtir
      +
      z
      Güvenli bağlantı (SSL) kullanıldığını + belirtir
      +

      +

      7 – Kullanıcı & Oper Komutları Tablosu

      +
      +

      NOT: /helpop dökümanı bu dökümandan daha günceldir, bir +komut hakkında bilgi almak için the /helpop komut (veya operseniz /helpop +?komut) komutunu kullanın.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      Komut
      +
      Açıklama
      +
      Kimler + Kullanabilir
      nick <yeninick>Sunucudaki rumuzunuzu degistirir. Bulundugunuz + butun kanallarda rumuzunuzun degisimi haber verilir
      Herkes
      whois <nick>Belirtilen nick için; kullanıcı ismi, host, + bulunduğu kanallar vs. gibi bilgileri görüntüler
      Herkes
      who <maske>Kullanıcılarla ilgili bilgileri gösterir. Maske + kısmına nick, #kanal, hostmaskesi (*.attbi.com gibi) belirtilebilir
      Herkes
      whowas <nick> <max cevap + sayısı>Sunucudan çıkmış bir nick için geçmiş whois + bilgilerini görüntüler. <max cevap sayısı> kısmı isteğe göre + belirtilebilir ve kaç tane kaydın görüntüleneceğini belirler.
      Herkes
      ison <nick1 nick2 nick3 ...>Belirtilen kullanıcı veya kullanıcıların online + olup olmadıklarını gösterir
      Herkes
      join <kanal1,kanal2, ...>Belirtilen kanal yada kanallara girmenize olanak + sağlar. Birden fazla kanal belirterek birdefada belirttiğiniz bütün + kanallara girebilirsiniz. /join 0 komutu ise bütün kanallardan +ayrılmanızı + sağlar.Herkes
      cycle <kanal1, kanal2, ...>Belirtilen kanal(lar)da çık-gir (cycle) yapmanıza + olanak sağlar.Herkes
      motd <sunucu>Belirtilen sunucu için motd dosyasının + görüntülenmesine olanak sağlar.
      Herkes
      rules <sunucu>Belirtilen sunucunun kurallar(rules) dosyasının + görüntülenmesine olanak sağlarHerkes
      lusers <sunucu> Belirtilen sunucu için çevrimiçi (online) + kullanıcı sayısı, en fazla baglanan kullanıcı sayısı bilgileri yerel + sunucu ve de tum ağ icin belirtir.
      Herkes
      mapAğ haritasını görüntülerHerkes
      quit <sebep>Belirtilen sebep ile IRC oturumunuzun + sonlandırılmasına olanak sağlar. Eğer bir sebep belirtirseniz bu + bulundugunuz bütün kanalda görüntülenirHerkes
      ping <kullanıcı>Belirtilen kullanıcıya PING göndermenize olanak + sağlar. Bağlantıyı ve gecikmeyi kontrol etmek için kullanılır.
      Herkes
      version <nick>Belirtilen nicke CTCP Version sorgusu gönderir. + Eğer client bunun için yapılandırılmışsa nickden versiyon cevabı + alınır.
      Herkes
      linksAğa linkli bütün sunucuların listesini + görüntülerHerkes
      Admin <sunucu>Belirtilen sunucu hakkında yöentimsel bilgi + görüntülenir.
      Herkes
      userhost <nick>Belirtilen nickin kullanıcı hostu görüntülenir
      Herkes
      topic <kanal> <topic>Topic <kanal> belirtilen kanalın o anki + topic bilgisini görüntüler. Topic <kanal> <topic> ise + belirtilen kanalın topic bilgisinin değiştirilmesine olanak sağlar.
      Herkes
      invite <nick> <kanal>Belirtilen kanala belirtilen nicki davet etmek + için kullanılır. (komutu kullanın kanalda operator olması şarttır.)
      Kanal Operatorleri
      kick <kanal, kanal> + <kullanıcı, kullanıcı> <sebep>Belirtilen kullanıcıyı yada kullanıcıları + belirtilen kanaldan yada kanallardan belirtilen sebepten dolayı +atmanıza + olanak sağlar.
      Kanal Operatorleri
      away <sebep>Sebep ile kullanıldığında sizi (away), yani + uzakta olarak belirtir. Eğer sebep belirtmezseniz (away) den çıkmış + olursunuz.
      Herkes
      Watch +-<nick> +-<nick>
      Watch UnrealIRCd 'de yeni bir uyarı sistemidir. + Bu sistem eski-stil uyarı sistemine nazaran daha hızlıdır ve ağ + kaynaklarını daha az kullanır. Watch (izleme) listenize eklediğiniz +nick + IRC oturumu açtığında veya kapadığında sunucu size uyarı mesajı + gönderecektir. İzleme listeniz her oturum açıp kapamanızda sıfırlanır, +bu + sebepten sunucuya her bağlandığınızda izleme listenizi yeniden + düzenlemelisiniz.
      Herkes
      helpop ?<komut> or + !<komut>
      HelpOp IRC Sunucu yardımı almak için yeni bir + sistemdir. /HELPOP ? <komut> veya /HELPOP ! <soru> +şeklinde + kullanabilirsiniz. /HELPOP komutunda "?" kullanılmasıyla yardım +sistemine + bilgi isteği gönderilir eğer bir sonuca ulaşamazsanız '!' işareti ile + kullanmayı deneyin. Bu durumda belirttiğiniz konu veya soru direkt +olarak + çevirimiçi help operatörlerine iletilecektir. Eğer ne ? işareti ne de +! + işareti kullanmazsanız, bu durumda bilgi isteğiniz yardım sistemine + gönderilecek ve eğer sonuç alınamazsa direkt olarak çevirimiçi help + operatörlerine iletilecektir.Herkes
      list <dizgi>Eğer bir maske belirtmezseniz, aktüel kanal + listesi görüntülenir. Aşağıda kullanabileceğiniz dizgiler ve bunların + kullanılması durumunda görüntülenecek kanal listesinde hangi +kanalların + görüntüleneceği açıklanmıştır.
      >sayı içerisinde + belirttiğiniz <sayı>'dan fazla kullanıcıya sahip olan kanallar + listelenir.
      <sayı içerisinde belirttiğiniz + <sayı>'dan az kullanıcıya sahip olan kanallar listelenir.
      C>sayı son <sayı> dakika içerisinde + oluşturulmuş kanalları listeler.
      C<sayı son + <sayı> dakikanın öncesinde oluşturulmuş kanalları listeler.
      T>sayı kanal topiği son <sayı> dakikadan + önce atılmış kanalları listeler.
      T<sayı kanal + topiği son <sayı> dakika içerisinde atılmış olan kanalları + listeler.
      *maske* belirtilen *maske* ile eşleşen + kanalları listeler
      !*maske* belirtilen *maske* ile + eşleşmeyen kanalları listeler
      Herkes
      Knock <kanal> <mesaj>
      Davetsel (invite only) konumunda olan bir kanal + için knock komutunu kullanarak, kanala giriş için sizi kanala davet + etmelerini isteyebilirsiniz. Eğer kanal +K +V modlarında ise bu komut + işlem görmeyecektir. Aynı zamanda kanaldan banlı iseniz bu komut yine + işlem görmeyecektir
      Herkes
      setnameSunucuya tekrar bağlanmaya gerek kalmadan + kullanıcıların isim kısımlarını değiştirmelerine olanak sağlar
      Herkes
      vhost <login> <şifre>Hostname kısmınızı daha önceden belirtilen, + sunucu tarafından sağlanan bir sahte hostla gizlemenize olanak +sağlar.
      Herkes
      mode <kanal/nick> <mod>
      Belirtilen kanal veya nick için kullanılan + modları düzenlemeye/değiştirmeye olanak sağlar. Mevcut kullanıcı ve +kanal + modları listesi için Kullanıcı & Kanal Modları kısmına bakın.
      Herkes
      creditsUnrealIRCd'in oluşturulmasında yardımı bulunan + kişilerin listesini görüntüler
      Herkes
      licenseGNU lisansını görüntülerHerkes
      time <sunucu>Belirtilen sunucunun tarihini ve zamanını + gösterir.
      Herkes
      botmotd <sunucu>
      Sunucunun bot.motd dosyasını görüntülerHerkes
      identify <şifre>Nickinizi tanıtmanız için servisler sistemine + şifrenizi gönderir.
      Herkes
      identify <kanal> <şifre>Belirtilen kanalın founderi olarak tanıtılmanız + için servisler sistemine şifrenizi gönderir.
      Herkes
      dns <tercih>Sunucunun DNS önbelleklemesi hakkında bilgi + görüntülenir. Birçok yazılım DNS komutuna sahiptir (bu dns komutu +değildir + fakat), bu yüzden /raw DNS yazarak kullanın. Operler l karakterini DNS + önbellekleme girişlerinin listesini görebilmek için ilk parametre +olarak + belirtebilirler.Herkes
      userip <nick>
      Belirtilen nickin IP Adres bilgisini gösterir.Herkes
      oper <kullanıcı adı> + <şifre>
      Oper Bloğunda belirtilen nick ve şifre ile bu + komutla belirtilen kullanıcı adı ve şifre uyuştuğu takdirde +kullanıcının + oper statüsüne geçmesine olanak sağlar
      IRC Operatörler
      wallops <mesaj>+w kullanıcı modunda olan bütün kullanıcılara + belirtilen mesajı gönderirIRC Operatörler
      globops <mesaj>Bütün IRC Operatörlere belirtilen mesajı + gönderirIRC Operatörler
      chatops <mesaj>+c kullanıcı modununda olan bütün IRC + Operatörlere belirtilen mesajı gönderirIRC Operatörler
      locops <mesaj>Yerel (local) IRC Operatörlere belirtilen mesajı + gönderirIRC Operatörler
      adchat <mesaj>Bütün adminlere belirtilen mesajı gönderirIRC Operatörler
      nachat <mesaj>Net Admin statüsündeki bütün adminlere belirtilen + mesajı gönderirIRC Operatörler
      kill <nick> <sebep>Belirtilen nickin ağdan bağlantısını keserIRC Operatörler
      kline [+|-]<kullanıcı@host | + nick> [<ban süresi> <gerekçe>]Belirtilen hostmaskesini sunucudan banlar. Kline + global bir yasaklama (ban) değildir.
      ban süresi a) saniye cinsinden bir değer, b) bir + zaman değeri, '1d' gibi (1 gün) veya c) kalıcı olması için '0' gibi +bir + değer olabilir. Süre ve sebep isteğe bağlıdır, eğer belirtilmezlerse + set::default-bantime yönergesi ile belirlenmiş olan süre ban süresi +olarak + geçerlidir ve sebep olarak da 'no reason' görüntülenecektir. Bir +kline'ı + kaldırmak için /kline -kullanıcı@host komutunu kullanın
      IRC Operatörler
      zline [+|-]<*@ip> [<ban + süresi> <gerekçe>]Belirtilen IP adresini yerel sunucudan banlar + (global değildir). Daha fazla kullanım bilgisi için kline kısmına +bakın. + Bir zline'ı kaldırmak için /zline -*@ip komutunu kullanın
      IRC Operatörler
      gline [+|-]<kullanıcı@host | + nick> [<ban süresi> <gerekçe>]
      Belirtilen kullanıcı@host ile eşleşme + gerçekleştiği sürece ağda bulunan hiç bir sunucuya bağlantı +sağlanamaz. + Daha fazla kullanım bilgisi için kline kısmına bakın. Bir gline'ı + kaldırmak için /gline -kullanıcı@host komutunu kullanın.
      IRC Operatörler
      shun [+|-]<kullanıcı@host | nick> + [<shun süresi> <gerekçe>]
      Belirtilen maskenin hiçbir komutu kullanamamasını + ve hiçbir şekilde mesaj gönderememesini sağlar. Shun bütün ağın bütün + sunucularında geçerlidir (gline gibi). Daha fazla kullanım bilgisi +için + kline kısmına bakın. Bir shun'ı kaldırmak için /shun -kullanıcı@host + komutunu kullanın.
      IRC Operatörler
      gzline [+|-]<ip> <ban + süresi> :<gerekçe>
      Ağın bütün sunucularında geçerli olacak bir zline + ekler. Daha fazla kullanım bilgisi için kline kısmına bakın. Bir +gzline'ı + kaldırmak için /gzline -*@ip komutunu kullanın.
      IRC Operatörler
      rehash <sunucu> + –<flaglar>Belirtilen sunucunun konfigürasyon dosyasının + yeniden okunmasını sağlar. Mevcut flaglar:
      -motd + - Sadece bütün MOTD ve RULES dosyaları yeniden okunur. (tld {} bloğu + kapsamında ki dosyalar)
      -opermotd - Sadece + OPERMOTD dosyası yeniden okunur
      -botmotd - Sadece + BOTMOTD dosyası yeniden okunur
      -garbage - Çöp + toplaması yapılır
      +
      IRC Operatörler
      restart <şifre> + <gerekçe>
      IRCD işlemini yeniden başlatır. Eğer drpass { } + bloğu belirtilmişse şifrenin de belirtilmesi gereklidir. Aynı zamanda + gerekçe kısmı ile bir sebep de belirtebilirsiniz.
      IRC Operatörler
      die <şifre>
      IRCD işlemini sonlandırır. Eğer drpass { } bloğu + belirtilmişse şifrenin de belirtilmesi gereklidir.IRC Operatörler
      lag <sunucu>
      Bu komut IRC Sunucusu için bir Traceroute veya + Sonar gibi düşünülebilir. Örnek olarak /LAG irc.fyremoon.net olarak bu + komutu belirttiğinizde belirtilen sunucuya ulaşmak için geçilen bütün + sunuculardan komut cevaplanacaktır. Bu komut gecikmenin hangi +sunucudan + kaynaklandığını bulmak için faydalıdır
      IRC Operatörler
      sethost <yenihost>Kullandığınız host kısmını (vhost) istediğiniz + bir host ile değiştirebilmenize olanak sağlar.
      IRC Operatörler
      setident <yeniident>
      Kullandığınız ident kısmını istediğiniz bir ident + ile değiştriebilmenize olanak sağlar
      IRC Operatörler
      chghost <nick> + <yenihost>
      Sistemde bulunan bir kullanıcının kullandığı host + kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      chgident <nick> + <yeniident>
      Sistemde bulunan bir kullanıcının kullandığı + ident kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      chgname <nick> + <yeniisim>
      Sistemde bulunan bir kullanıcının kullandığı isim + kısmını değiştirebilmenize olanak sağlar
      IRC Operatörler
      squit <sunucu>
      Belirtilen sunucunun ağdan bağlantısını keser
      IRC Operatörler
      connect <sunucu> <port> + <sunucu>Eğer sadece tek sunucu belirtilirse bulunduğunuz + sunucuyu belirtilen sunucuya bağlamayı deneyecektir. Eğer iki sunucu + belirtilirse, belirtilen iki sunucuyu birbirlerine bağlamayı +deneyecektir. + İlk olarak leaf olan sunucuyu ikinci olaraksa hub olan sunucuyu + belirtin.
      IRC Operatörler
      dccdeny <dosya-maskesi> + <gerekçe>
      Belirtilen maskeyle eşleşen dosya isimleri için + DCC engeli koyar. Bu dosyaların gönderimi engellenir.
      IRC Operatörler
      undccdeny <dosya-maskesi>
      Belirtilen maskeyle eşleşen dosya isimleri için + DCC engelini kaldırırIRC Operatörler
      sajoin <nick> <kanal>, + <kanal>
      Bir kullanıcıyı belirtilen kanal(lar)a girmeye + zorlar. Sadece Services & Network Admin statüsünde ki IRC +operatörler + kullanabilirIRC Operatörler
      sapart <nick> <kanal>, + <kanal>
      Bir kullanıcıyı belirtilen kanal(lar)dan + ayrılmaya zorlar. Sadece services & network Admin statüsünde ki +IRC + operatörler kullanabilir.
      IRC Operatörler
      samode <kanal> <mod>
      Network & Services Admin statüsünde ki IRC + Operatörlerin kanalda operatör olmadan kanal modlarını + değiştirebilmelerine olanak sağlar.
      IRC Operatörler
      rping <sunucumaskesi>
      Sunucular arasında ki var olan gecikmeyi + milisaniyeler mertebesinde görüntülenmesine olanak sağlar
      IRC Operatörler
      trace <sunucumaskesi|nick>
      Bir kullanıcı (nick) için kullanıldığında, + belirtilen nick için gecikme ve sınıf bilgisini görüntüler. Eğer bir + sunucu için kullanılırsa, belirtilen sunucu için sınıf/versiyon/link + bilgisini görüntüler.
      IRC Operatörler
      opermotd
      Sunucunun OperMotd dosyasını görüntüler
      IRC Operatörler
      addmotd :<metin>
      Motd dosyasının sonuna belirtilen metni ekler
      IRC Operatörler
      addomotd :<metin>
      OperMotd dosyasının sonuna belirtilen metni + ekler
      IRC Operatörler
      sdesc <açıklama>
      Server Admin statusunde ki IRC Operatörlerin, + sunucunun yeniden başlatılması gerekmeden, açıklama satırını + değiştirebilmelerine olanak sağlar.
      IRC Operatörler
      addline <metin>
      unrealircd.conf'a belirtilen metni ekler
      IRC Operatörler
      mkpasswd <şifre>
      Sade metin halindeki bir şifreyi, + unrealircd.conf'a eklemek için, yeniden şifreler (encrypt)
      IRC Operatörler
      tsctl offset +/- <zaman>
      IRCD'in dahili saatini ayarlar (Ne işe yaradığını + TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN)
      IRC Operatörler
      tsctl time
      TS Raporunu görüntülerIRC Operatörler
      tsctl alltimeBütün sunucular için TS Raporunu görüntülerIRC Operatörler
      tsctl svstime <timestamp>
      Bütün sunucular için TS zamanını belirtmenize + sağlar (Ne işe yaradığını TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN)
      IRC Operatörler
      htm <tercih>
      Yüksek trafik moduna ilişkin özelliklerin kontrol + edilmesini sağlar. Yüksek Trafik Modu (HTM) list whois who vs. gibi + belirli kullanıcı komutlarını deaktif eder. tercih kısmında:
      -ON Sunucuyu Yüksek Trafik Moduna (HTM) girmeye + zorlar
      -OFF Sunucuyu Yüksek Trafik Modundan (HTM) + çıkmaya zorlar
      -NOISY Sunucunun HTM'ye girişinde + ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri mesajı + gönderilmesini sağlar
      -QUIET Sunucunun HTM'ye + girişinde ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri +mesajı + gönderilmemesini sağlar
      -TO <değer> Sunucuya + HTM'yi hangi gelen veri hızında aktif edeceğini belirtir
      IRC Operatörler
      stats <flag>
      B - banversion - Yasaklı versiyonların + listelenmesini sağlar
      b - badword - Kötü + kelimelerin (badwords) listelenmesini sağlar
      C - + link - Link bloğunda (bloklarında) belirtilmiş içerikler +görüntülenir
      d - denylinkauto - deny link (otomatik olarak + reddedilen) bloğunda (bloklarında) belirtilmiş içerikler +görüntülenir
      D - denylinkall - deny link (hepsi) bloğunda + (bloklarında) belirtilmiş içerikler görüntülenir
      e + - exceptthrottle - except throttle bloğunda (bloklarında) belirtilmiş + içerikler görüntülenir
      E - exceptban - except ban + ve except tkl bloklarında belirtilmiş içerikler görüntülenir
      f - spamfilter - filtrenen içeriklerin listesi + görüntülenir (spamfilter)
      F - denydcc - Deny dcc + bloğu (blokları) içerikleri görüntülenir
      G - gline + - gline ve gzline listesi görüntülenir
        Genişletilmiş Flaglar: [+/-mrs] [maske] + [sebep] [ekleyen]
          m + belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) + gline'lar listelenir
          r + belirtilen sebep ile eşleşen/eşleşmeyen gline'lar listelenir
          s belirtilen [ekleyen] ile + eşleşen/eşleşmeyen gline'lar listelenir
      I - allow + - Allow bloğu (blokları) içerikleri görüntülenir
      j + - officialchans - Resmi kanallar (official channels) listesi + görüntülenir
      K - kline - ban user/ban ip/except + ban blokları içerikleri listelenir. Ayrıca bu bloklarda belirtilmemiş + ancak kline zline vs. gibi ban komutlarıyla atılmış *line'larda + listelenir.
      l - linkinfo - link bilgisi + görüntülenir
      L - linkinfoall - Mevcut bütün + linklerin bilgileri görüntülenir
      M - command - + Kullanılan her komutun ve kaç kez kullanıldıklarının listesi + görüntülenir
      n - banrealname - Ban realname bloğu + (blokları) içeriği görüntülenir
      O - oper - Oper + bloğu (blokları) içeriği görüntülenir
      P - port - + Portlarla ilgili bilgi görüntülenir
      q - sqline - + SQLINE listesi görüntülenir
      Q - bannick - Ban nick + bloğu (blokları) içeriği görüntülenir
      r - + chanrestrict - channel deny/allow blokları içerikleri görüntülenir
      R - usage - Kullanım bilgisi görüntülenir
      S - set - Set bloğu içeriği görüntülenir
      s - shun - Shun listesi görüntülenir
        Genişletilmiş Flaglar: [+/-mrs] [maske] + [sebep] [ekleyen]
          m + belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) + shun'lar listelenir
          r + belirtilen sebep ile eşleşen/eşleşmeyen shun'lar listelenir
          s belirtilen [ekleyen] ile + eşleşen/eşleşmeyen shun'lar listelenir
      t - tld - + tld bloğu (blokları) içeriği görüntülenir
      T - + traffic - Sunucu Trafik bilgisi görüntülenir
      u - + uptime - Sunucunun ne kadar süredir hizmet verdiği ve bağlantı sayısı + görüntülenir
      U - uline - Uline bloğu içeriği + görüntülenir
      v - denyver - Deny version bloğu + içeriği görüntülenir
      V - vhost - Vhost bloğu + içeriği görüntülenir
      X - notlink - Link bloğunda + var olan fakat henüz linki gerçekleşmemiş sunucular listesi + görüntülenir
      Y - class - Class bloğu içeriği + görüntülenir
      z - zip - SZiplinked sunucular + hakkında ki sıkıştırma bilgisi görüntülenir
      Z - + mem - Bellek kullanım bilgisi görüntülenir
      Herkes
      module
      Yüklü olan bütüm modüllerin listesinin + görüntülenmesini sağlar Herkes
      close
      Tanımlanamayan bütün bağlantıların IRC Sunucusu + ile bağlantılarını kesmenize olanak sağlar. IRC Operatörler
      +

      +

      8 – Güvenlik İçin Tavsiyeler/Kontrol Listesi

      +
      +

      Eğer güvenlik ile ilgileniyorsanız (ki +ilgilenmelisiniz!), bu bölüm mevcut riskler hakkında genel bir bilgi +edinmenize +yardımcı olacaktır. Bu sebeple ağınızı daha güvenli bir hale getirmek +amacıyla +adım adım ilerleyeceğiniz bir "kontrol listesi" kullanabilirsiniz.

      +

      Listedeki öğeler popularite/risk düzeyi/genelde +kullanılan saldırı metodları sırasıyla dizilmiştir:

      +

      +

      8.1 Şifreler
      +

      Belirteceğiniz oper şifrelerinin, link +şifrelerinin vs. daha güvenli olması için:
      - harf ve +rakam kombinasyonlarından oluşan şifreler ("Whbviwf5" gibi) veya uzun +şifreler +kullanın ("blaheatsafish", "AlphaBeta555" gibi).
      - +Link/oper şifrelerini mail hesabınızın şifreleriyle veya bu tarz +kullandığınız +başka hesapların şifreleriyle aynı şifreler olarak BELİRTMEYİN.
      +

      +

      8.2 Ircd ile alakalı olmayan zayıflıklar
      +

      UnrealIRCd 'in ircd ile alakalı olmayan bir +zayıflıktan dolayı hacklenmesi olasılığı, UnrealIRCd'de bulunan bir bugdan +dolayı hacklenmesi olasılığına nazaran çok daha büyüktür. Örnek olarak http, +smtp, dns ve ftp sunucularınızı aynı konumdan koşturuyorsanız büyük bir +hacklenme riskine sahipsiniz demektir. Aynı zamanda eğer çok kullanıcılı bir +sistemde iseniz (ör: shell aldıysanız) bu durumda ise yerel exploitlere +karşı +hacklenme riskiniz olacaktır. Bu sebepten dolayı shell sağlayıcınızı +seçerken +dikkatli olun.
      +

      +

      8.3 Konfigürasyon dosyası ve yetkilendirme
      +

      Herzaman home dizininizin ve UnrealIRCd'in +bulunduğu dizinin doğru yetkilendirmeye sahip olduğundan emin olun. Aksi +takdirde yerel bir kullanıcı konfigürasyon dosyanızı basitlikle elde +edebilir ve +şifreleri görebilir...Eğer bundan emin değilseniz kısaca: chmod -R go-rwx +/path/to/Unreal3.2 komutunu +kullanın.Hiçbir zaman UnrealIRCd'i webroot veya bu türden paylaştırılmış bir +dizinde bulundurmayın ve yedekleme için doğru yetkilendirmeye sahip +olduğunuzdan +da emin olun.
      Aynı zamanda mümkün olduğunca yeniden +şifrelenmiş (encrypted) şifreler kullanın, Eğer OpenSSL desteği ile derleme +yaptıysanız size şifreleme metodu olarak sha1 veya ripemd160 metodunu +kullanmanızı öneririm, diğer bir metod olarak md5 metodunu da +kullanabilirsiniz. +Eğer daha önce kullandığınız 3.2.1 veya daha önceki versiyonlarda +belirttiğiniz +yeniden şifrelenmiş şifreler varsa (oper bloklarında) size bu şifreleri +yeniden +şifrelemenizi (sadece /mkpasswd komutunu kullanarak) öneririm, çünkü 3.2.1 +'de +bazı önemli anti-crack özellikleri ilk kez kullanıldı.

      Bu +anlatılanların 'güvenlik için +diğer bir katman' olduğunu unutmayın, eğer zayıf şifreler kullanıyorsanız, +bunlar kolaylıkla çözülebilir. Eğer birisi konfigürasyon dosyanızı eline +geçirirmeyi başarırsa, bu dosyada bir saldırganın saldırıyı yapmasına +yardımcı +olacak bir çok bilginin mevcut olduğunu da unutmayın. +(link::password-connect +gibi).
      +

      +

      8.4 Kullanıcı kaynaklı problemler
      +

      Yöneticinizleri herzaman akıllıca seçin, ve +bir zincirin zayıf halkası kavramını da unutmayın. Çok dikkatli +olabilirsiniz ve +hatta bu dökümanda yazılan herşeyi uygulamış olabilirsiniz, fakat yönetici +olarak seçtiğiniz arkadaşlarınızdan birisi aptalca bir hareket yapabilir. Bu +hareket sizin kontrolunuz altında gelişmeyebilir. Bu hareket apaçık olarak +şifre +belirtmesi, harddiskini netbios/kazaa/morpheus aracılığıyla paylaşıma açması +gibi eylemler olabilir. Sadece yapmanız gereken kime hangi yetkileri +vereceğinizi belirlerken dikkatli olmak. (oper::flags).
      +

      +

      8.5 SSL/SSH & sniffing
      +

      Bir oper olarak ve sunucular arası +bağlantılarda SSL kullanmanız sizi "veri korsanlığı"na karşı koruyacaktır. +Veri +korsanlığı saldırganın kullanıcı ile sunucu arasında bir konumu +hacklemesiyle +mümkün olur, böylelikle saldırgan bütün ağ trafiğini görebilir, bütün +konuşmaları görebilir ve bütün şifreleri yaklayabilir. Yine aynı sebepten +dolayı +herzaman telnet yerine SSH kullanın.
      +

      +

      8.6 Denial of Service attacks (DoS) [or: veya: hubumu +nasıl +koruyabilirim?]
      +

      Birçok ağ bir floodun veya (D)DoS +saldırısının ne kadar "eğlenceli" olduğu konusunda tecrübe sahibi olmuştur, +yinede bu saldırılardan doğacak zararı azaltmak için birşeyler +yapabilirsiniz. +Birçok ağ bir hub sunucusuna sahiptir, ve birçok kişinin gözden kaçırdığı +nokta +hub olan sunucunun saldırılara karşı korunmasının oldukça kolay +olduğudur.
      Burada açıklayacağım:
      1. Hub ismini +varolmayan bir hostname olarak belirtin, ör 'hub.yournet.com', +fakat
          bu belirttiğiniz hostname için bir dns +kaydı eklemeyin. Böylelikle saldırgan hostu
          +çözemeyecek ve böylelikle flood +yapamayacaktır. Daha sonra huba sunucuları sadece
          +IP'yi belirterek linkleyin.
          Örnek 1: link +visibiblename.yournet.com { hostname 194.15.123.16; [vs] +};.
          Örnek 2: link +visibiblename.yournet.com { hostname thehostnamethatworks.yournet.com; [vs] +};.
          Bir dipnot düşmek gerekirse, +son örnekte belirttiğiniz sunucu isimlerinin zone transferlerine izin +vermeyeceğinden emin olun, fakat bu bu konunun çok dışında bir olay +;).
      2. Diğer bir önemli adım ise, normal kullanıcıların '/stats +c' komutunu kullanmalarını engellemenizdir
          aksi +takdirde saldırgan kolaylıkla link +bloğunun içeriğini listeleyebilecektir. Eğer bu konuda +endişeleriniz
          varsa (benim gibi) bunu set { +oper-only-stats "*"; }; yönergesiyle kolaylıkla sağlayabilirsiniz. +Böylelikle
          normal kullanıcılar tarafından bütün +stats flaglarının kullanımını engellemiş olacaksınız. Eğer böyle yapmak +istemiyorsanız en azından "CdDlLXz" flaglarının kullanımını engelleyin. Bu +konuyla ilgili daha fazla bilgi bir sonraki bölümde +bulunmaktadır.

      Elbette bu anlatılan adımlar bu +atakların sürekli olarak uygulanması halinde (ör: bir kaç ay) başlangıca +göre +daha düşük oranda yararlı olacaktır, çünkü IP'ler bazı kötü niyetli +kullanıcılar +tarafından bilinebilir.. Aynı zamanda saldırganların, bu adımları +uygulasanız +dahi, hala hub olmayan sunuculara saldırabileceklerini gözardı etmeyin, +fakat bu +1 veya 2 zayıf noktadan (hublara) saldırmaya kıyasla daha fazla çaba +gerektirir, +aynı zamanda böylelikle hubunuz & servisleriniz canlı kalacaktır +:).
      +

      +

      8.7 Bilgilendirme
      +

      STATS
      /stats komutu çok bilgi verici bir komuttur, +olabildiğince +bu komutun kullanımını kısıtlamak isteyebilirsiniz. Bu konuda kendinize +sormanız +gereken soru "kullanıcılarımın görmelerini istediklerim bilgiler neler?" +sorusudur. Birçok büyük ağ bu soruya "hiçbir şey" olarak cevap verir, +bazıları +ise '/stats g' ve '/stats k' harici kullanımları kısıtlar. Size bütün stats +flaglarının oper olmayanlar tarafından kullanımını engellemek için set { +oper-only-stats "*"; }; yapmanızı öneririm, fakat bunu yapmak +istemiyorsanız, +'/stats' yazarak mevcut bütün flagların listesine bir göz atmanızı +öneririm.(eğer kuşkucuysanız, sadece kısıtlayın.. neden bütün bilgileri +görme +ihtiyacı duysunlar?)
      Birkaç örnek vermek gerekirse:
      - /stats o: oper +nicklerini ve hostmaskelerini gösterir.
      - /stats c: sunucu linkleri +hakkında bilgi verir.
      - /stats g, /stats k: genellikle proxy ile +bağlanmayı +deneyen saldırganların listesini görüntüler.
      - /stats E, +/stats e: bir saldırgan bu flagı kullanabilirse buradaki hostmaskelerini +kullanabilir
      - /stats i, /stats y: izinli bağlantı +sağlayan hostları bulmasında saldırgana yardımcı olabilir.
      - /stats P: +Sadece sunucu bağlantılarının gerçekleştiği +portları bulmasında saldırgana yardımcı olabilir
      vs +vs...

      MAP / LINKS
      Birçok kişi /map +veya /links komutunu deaktif etmenin bir yolu olup olmadığını sormuştur. +Bizim +buna cevabımız; böyle bir şey yapmak saçmadır ve güvenlik için yanlış bir +yaklaşımdır, açıklamama izin verin... Kullanıcılar tarafından kullanılan +sunucuları gizlemek, kullanıcıların zaten üzerinde bulundukları sunucuları +bilmelerinden dolayı yararsızdır. Bu konu için bölüm 8.6'ya bakın.
      Şimdi +ne yapaBİLİRSİNİZ? 3.2.1 verisyonundan beri 'flat +map' özelliği mevcuttur (set::options::flat-map), bu özellik bütün +sunucuları +/map be /links komutu uygulamalarında direkt linkli olarak gösterecektir, +böylelikle kullanıcılar hangi sunucunun hangisine linkli olduğunu +anlayamayacaklardır... Bu korunma ve güvenlik için iyi bir özelliktir çünkü +bu +özellikle aynı zamanda 'zayıf nokta'lar kolaylıkla belirlenemeyecektir. Bu +yüzden bu özelliği kullanmanız önerilir. Fakat bu korumanında kusursuz +olmadığını unutmayın... Eğer bir ayrılma (split) meydana gelirse bu durumda +kötü +niyetli kullanıcılar hangi sunucunun hangisine linkli olduğunu +görebilir.

      NORMAL +KULLANICILAR & SNOMASK
      Birçok kişi tarafından +bilinmeyen bir özellikte, normal kullanıcıların bazı snomaskları +kullanabilmesidir, +s +sk gibi. Bu yolla kullanıcılar rehash, kill ve diğer +tipte bazı mesajları görebilirler.
      Bunu önlemek için +set::restrict-usermodes yönergesini: set { +restrict-usermodes "s"; }; şeklinde +belirtebilirsiniz.


      Elbette +bu anlatıların hepsi "bilgi gizleme" olarak nitelendirilir, dolayısıyla bu +"gerçek" güvenlik değildir. Fakat bu sunucunuzun hacklenmesi için gerekecek +çabayı arttırmaya yöneliktir.
      +

      +

      8.8 Exploitlere karşı korunma
      +

      Yığın tabanlı exploitlerin çalışmasını +zorlaştıracak kernel yamaları vardır. Bu iyidir, fakat bu sizin ana odak +noktanız olmamalıdır, diğer başka yollarla exploit saldırılarına +uğrayabileceğinizi unutmayın ve bu büyük bir risktir.. çeşitli +sebeplerle.

      Yapmanız gereken tek şey vardır, +HERZAMAN EN SON VERSİYONU KULLANIN, bunun için unreal-notify mailinglist listesine abone olun +böylelikle yayınlanan yeni versiyon duyurularını alabilirsiniz. +(unreal-uyarısı +sadece yeni versiyon duyuruları içindir, dolayısıyla her X ayda 1 mail +gönderilir.)
      +

      +

      8.9 Özet
      +

      Umarım, hiçbir zaman %100 güvende +olamayacağınızı anlamışsınızdır. Siz (ve biz) burda belirtilmeyen bütün +açıkları +bulup&onaracağız, bir saldırganın ihtiyacı olduğu tek şey sadece 1 +açıkla +bir sunucu bulmaktır. Burada açıklananlar mevcut riskleri minimuma +indirmenize +yardımcı olacaktır. Ağ güvenliğiniz için zaman ayırın ve yöneticilerinizi +eğitin. Birçok kişi hacklenene kadar güvenliğe önem vermez, böyle bir tutum +sergilemeyin :).
      +

      +

      9 – Sıkça sorulan Sorular (FAQ)

      +
      +

      FAQ kısmına çevirimiçi olarak buradan +ulaşabilirsiniz.

      +

      +

      A Düzenli İfadeler

      +
      +

      Düzenli ifadeler Unreal'de bir çok yerde kullanılır, +badwords, spamfilter ve aliases'lerde olduğu gibi. Düzenli ifadeler kalıp +eşleşmesi için kullanılan çok kompleks araçlardır. Bunlar bazen "regexp" +bazen +de "regex" olarak kullanılır. Unreal bu ifadeler için TRE düzenli ifadeler +kütüphanesini kullanır. Bu kütüphane çok kompleks ve kimi zaman karışık +olabilecek ileri düzey ifadeleri destekler. Aşağıda anlatılanlar regexp'nin +çalışma mantığı hakkında size bilgi verecektir. Eğer regexp kullanımı +hakkında +daha fazla bilgiye sahip olmak istiyorsanız ve bu konuyla ilgileniyorsanız +burayı tıklayın +(TRE homepage).

      +

      A.1 Değişmezler

      +
      +

      Değişmezler bir regexp'nin en temel bileşenidir. Basit +olarak değişmezler sade-metinde görülen karakterlerdir. Örneğin; "test" +ifadesi +4 adet değişmez içerir: "t", "e", "s", "t". Unreal'de değişmezler +büyük-küçük +karakter duyarlı değildir, dolayısıyla örnekde verilen ifade "TEST" ile de +eşdeğerdir. "Meta karakter" olmayan bütün karakterler değişmez sayılır. Aynı +zamanda bir karakteri tersbölü (\) karakterini kullanarak da değişmez +yapabilirsiniz. Örneğin nokta (.) bir metakarakterdir. Eğer . 'yı bir +değişmez +olarak kullanmak isterseniz yapmanız gereken .'yı \. olarak belirtmektir ve +Unreal bunu nokta olarak yorumlayacaktır. Aynı zamanda ASCII karakter 3 +(renk) +gibi bir karakteri de kontrol etmek isteyebilirsiniz. Bunu \x şeklinde +bildiri +yaparak sağlayabilirsiniz. Örneğin \x3 olarak bildiri yaptığınızda bu ASCII +karakter 3'e (renk). Burada \x ifadesinden sonra onaltılık bir sayıda +belirtebilirsiniz ve bu \x0'dan \xFF 'e kadar belirtilebilir.

      +

      A.2 Nokta İşleci

      +
      +

      Nokta işleci (.) "herhangi bir karakter"le eşleşme için +kullanılır. Herhangi bir değere sahip tek bir karakterle eşleşir. Örneğin, +"a.c" +düzenli ifadesi "abc", "adc" vs. gibi ifadelerle eşleşecektir. Fakat "abd" +ile +eşleşemeyecektir çünkü "a" ve "c" birer değişmezdir ve karşılaştıracak +ifadeyle +bunların eşleşmesi zorunludur.

      +

      A.3 Yineleme İşleçleri

      +
      +

      Regex'de ençok yapılan hatalardan biri yineleme +işleçlerinin tam anlamıyla joker karakterler olarak kullanılmasıdır. Bu +doğrudur, * ve ? karakterleri joker karakterler olarak kullanılabilir ancak +bunların regexdeki manası tam anlamıyla joker karakterler değildir. Ek +olarak, +düzenli ifadeler daha ileri düzeyde yineleme metodlarını da destekler. +

      En temel yineleme işleci ? işlecidir. Sıfır veya bir +kere eşleşme işlecidir. Joker karakter olarak kullanımında, örneğin "a?c" +ifadesinde yineleme işleci "a"yı takip eden ve "c"den önce gelen herhangi +bir +karakterle eşleşecektir. Fakat regexdeki kullanımında anlamı farklıdır. Bu +durumda "a?c" ifadesi "ac" ifadesi ve "c" ifadesi haricinde hiçbir ifadeyle +eşleşmeyecektir. Dolayısıyle ? işleci; belirtilen düzenli ifadede kendinden +önce +gelen karakterin eşeleşecek ifadede var olup olmamasına göre eşleşme +yapacaktır. +Eğer düzenli ifadede bu işleç joker karakter olarak kullanılmak istenirse bu +durumda aynı ifadeyi "a.?c" şeklinde belirtmeniz gerekir. Bu durumda ? +işleci +"a"yı takip eden ve "c"den önce gelen herhangi bir karakterle eşleşecektir. +

      Bir yineleme işleci de * işlecidir. Aynı şekilde bu +işleçte joker karakter olarak kullanılabilir. Aynı zamanda sıfır veya daha +fazlasıyla eşleştirme işlecidir. * işleci; belirtilen düzenli ifadede +kendinden +önce gelen karakterin 0 ya da daha fazla bulunması durumlarıyla eşleşir. +Örneğin +"a*c" düzenli ifadesi "c" ile sonlandırılmış 0 veya daha fazla "a" içeren +ifadelerle işleşecektir. Misal "aaaaaac" ifadesiyle eşleşir. Eğer joker +karakter +olarak kullanılmak istenirse "a.*c" şeklinde belirtmeniz gerekecektir. +

      + işlecinin yorumlanması * işlecinin yorumlanmasına çok +benzer. Ancak sıfır veya daha fazlazıyla değil 1 veya daha fazlasıyla +eşleştirme +işlecidir. "a+c" düzenli ifadesi "ac" veya daha fazla ardarda "a" içeren +"aaaaaaaaac" gibi bir ifadeyle eşleşecektir. +

      En ileri düzeyde yineleme işleci ise sınırlı sayıda +yineleme işlecidir. Bir sınırlı sayıda yineleme işleciyle kendinden önce +gelen +karakterin kaç kez tekrarlanacağını kesin olarak belirtebilirsiniz. Örneğin, +8 a +içeren veya en az 8 a bulunduran veya 3-5 a bulunduran bir ifadeyle +eşleştirme +yapabilirsiniz. Temel kullanımı {M,N} şeklindedir, burada M sınırlamada +belirtilecek sayılardan küçüğünü, N ise büyüğünü temsil etmektedir. Örneğin +3 ve +5 arasındaki bir sayıda a içeren bir eşleşme için "a{3,5}" şeklinde +belirtmelisiniz. Bununla birlikte M sayısı N sayısına eşit olamaz. Bu +durumda +eğer tam 8 a içeren bir eşleşme için "a{8]" şeklinde belirtmelisiniz. Bu +"aaaaaaaa" ile eşleşmeye denktir. En az 8 a içeren bir ifadeyle eşleşme için +"a{8,}" şeklinde belirtmelisiniz. +

      Default olarak, bütün yineleme işleçleri aç gözlüdür. +Temel olarak bunun anlamı bir yineleme işleci olabildiğince çok karakterle +eşleşir. Bu bir örnekle daha iyi açıklanabilir. +

      Aşağıdaki ifade gibi bir metnimiz olsun:
      HELLO
      Belirtilen düzenli +ifade de +aşağıdaki olsun:
      .+L +

      Bu örnekte, .+ işlecinin "HE." ile eşleşeceğini +düşünmelisiniz. Bununla birlikte bu doğru değildir. Çünkü + işleci aç +gözlüdür, +dolayısıyla "HEL." ile eşleşecektir. Bunun sebebi, bu işlecin giriş metninde +bulunan eşleşecek en büyük parçayı seçmesidir. Bu örnekte bu işleç "HEL" +parçasıyla eşleşti. Metin "HELLO" olduğundan, "HEL" ifadesini bir "L" takip +ettiğinden, eşleşme gerçekleşti. Bununla birlikte bazen de bir işleç, +yineleme +işlecinden sonra ? karakteri kullanılarak bu durumdan kurtarılabilir. +Yukarıdaki +örneğe göre düzenli ifade ".+?L" şeklinde değiştirilirse bu durumda .+? +işleci +"HE" ile eşleşecektir. ? karakteri herhangi bir yineleme işlecine +eklenebilir: +??, *?, +?, {M,N}?.

      +

      A.4 Parantez İfadeleri

      +
      Parantez ifadeleri kullanmak "veya" +operatörü oluşturmak için uygun bir yoldur. Örneğin, eğer "bir a ile veya a +b +ile eşleş" şeklinde söylemek istiyorsanız. Parantez ifadeleri ismini ([]) +karakterlerinin kullanılmasından alır. Temel kullanımıyla parantez ifadeleri +bir +seri karakteri içerebilir. Böylelikle bu karakterler aralarında "veya" +operatörü +varmış gibi değerlendirilir. Bir örnek olarak, "[abc]" ifadesi "a,", "b," +veya +"c." ile eşleşir. Bu nedenle "a[bd]c" düzenli ifadesi ise "abc" ve "adc" +eşleşir +fakat "acc." ile eşleşmez. +

      Bu ifadeler uygulamada ençok bir harf veya bir rakam +kontrolunde kullanılır. Birer birer belirtmekten, yani "[0123456789]" +şeklinde +belirtmekten daha ziyade parantez ifadeleri içinde aralık belirtebilirsiniz. +Bu +aralıkları başlangıç değeri ve bitiş değeri arasına - karakteri koyarak +belirtebilirsiniz. Böylelikle bir rakam kontrolu için en basit şekliyle +"[0-9]" +şeklinde belirtme yapabilirsiniz. Bu türdeki belirtme harfler için ve ASCII +değerleri içinde geçerlidir. Eğer bir harf eşleşmesi yapmak istiyorsanız +basitçe +"[a-z]" şeklinde belirtebilirsiniz, Unreal büyük-küçük harf duyarlılığına +sahip +olmadığından bu bütün (büyük/küçük) karakterleri kapsayacaktır. Aynı zamanda +aynı ifadede çoklu aralıklar da belirtebilirsiniz. Bir harfle veya bir +rakamla +eşleşme yapmak istiyorsanız, "[0-9a-z]" şeklinde belirtmelisiniz. - +karakterinin +parantez ifadelerinde özel bir karakter olduğunu unutmayın. - değişmeziyle +bir +eşleşme yapmak istiyorsanız, bu değişmezi parantez ifadesinin ya ilk +karakteri +olarak ya da son karakteri olarak belirtin. Örneğin "[0-9-]" ifadesi +herhangi +bir rakam veya - karakteriyle eşleşecektir. +

      Bunları daha da sadeleştirmek için, parantez +ifadelerinde kullanılmak üzere "karakter sınıfları" vardır. Bu karakter +sınıfları ihtiyaç duyulan belirli aralıkları tanımlamak için kullanılır. +Karakter sınıfları parantez ifadesi içinde, isimlerinin başına ve sonuna : +karakteri eklenerek kullanılır. Örneğin "[0-9]" gibi bir ifade "[:isdigit:]" +şeklinde yazılabilir. Aşağıda mevcut karakter sınıfları ve işlevler +belirtilmiştir: +

        +
      • alnum - sadece + alfanumerik karakterler +
      • alpha - alfabetik + karakterler +
      • blank - boşluk + karakterleri +
      • cntrl - kontrol + karakterleri +
      • digit - onluk tabanda + rakam değerleri (0 'dan 9 'a kadar) +
      • graph - boşluk + karakteri hariç bütün basılabilir karakterler +
      • lower - sadece küçük + harfleri gözönünde bulunduran kriter +
      • print - boşluk + karakteri dahil bütün basılabilir karakterler +
      • punct - boşluk + karakteri ve alfanumerik karakterler hariç basılabilir karakterler +
      • space - white-space + characters +
      • upper - sadece büyük + harfleri göz önünde bulunduran kriter +
      • xdigit - onaltılık + tabanda rakam değerleri
      Karakter sınıfları ile ilgili bir diğer +önemli +nokta ise, karakter sınıfları parantez ifadesi içinde tek eleman olmalı, +yani +başka bir elemanla birlikte kullanılamaz. Örneğin, "[:isdigit:-]" geçersiz +bir +kullanımdır. Bunun için "[[:isdigit:]-]" şeklinde kullanın. +

      Parantez ifadelerinin son özelliği olumsuzlamadır. Bazı +zamanlarda "bu karakterler haricinde herhangi bir karakter" gibi bir ifadeyi +belirtmek isteyebilirsiniz. Örneğin eğer "harf olmayan" bir karakteri +kontrol +etmek isterseniz, burada a-z harici karakterlerden bahsedildiği açıktır, +bunu +ifadenin başına ^ karakterini ekleyerek belirtebilirsiniz. Dolayısıyla bu +durumda "[^a-z]" ifadesi harf olmayan herhangi bir karakterle eşleşir. - +karakterinde olduğu gibi, eğer ^ karakterini bir değişmez olarak belirtmek +isterseniz, bu değişmezi ilk karakter pozisyonunda kullanmayın, "[a-z^]" +ifadesinde olduğu gibi kullanın. Karakter sınıfları içinde aynı uygulama +geçerlidir, "[^[:isdigit:]]" ifadesiyle rakam olmayan bütün karakterler +belirtilmiştir.

      +

      A.5 Demirleme İşleçleri

      +
      Demirleme işleçleri dizilerinin +belirtilemeyeceği koşullarda, bazı genel parantez ifadeleri için kısayollar +belirtmek için kullanılır. +

      ^ karakteri belirtilecek düzenli ifadenin başında +kullanıldığında, eşleşme yalnızca kontrol edilen metnin belirtilen düzenli +ifade +ile başlamasıyla gerçekleşecektir. Örneğin düzenli ifade "test" olarak +belirtilirse bu ifade "test" ifadesini içerdiğinden, "this is a test" metni +ile +eşleşecektir. Ancak düzenli ifadeyi "^test" olarak belirtirseniz bu sefer +eşleşme gerçekleşebilmesi için metin "test" ile başlamak zorundadır. Ek +olarak $ +karakteri ise belirtilecek düzenli ifadenin sonunda kullanıldığında, eşleşme +yalnızca kontrol edilen metnin belirtilen düzenli ifade ile sonlandığı +durumlarda gerçekleşecektir. Örnek olarak "^test$" düzenli ifadesi, yalnızca +"test." metniyle eşleşecektir. +

      Diğer bütün demirleme işleçleri belirli bir karakterin +başına \ konulmasıyla kullanılır. Örneğin, bir kelimenin başını ve sonunu +kontrol etmek için, \< ve \> kullanabilirsiniz. +

      Geriye kalan demirleme işleçleri ise biri pozitif biri +negatif değeri temsil etmek üzere 2 formdadır. Bu işleçler aşağıda +listelenmiştir: +

        +
      • \b - Kelime sınırı +
      • \B - Non-word boundary +
      • \d - Rakam karakterleri + ([[:digit:]] ifadesine denktir) +
      • \D - Rakam olmayan + karakterler ([^[:digit:]] ifadesine denktir) +
      • \s - Boşluk karakteri + ([[:space:]] ifadesine denktir) +
      • \S - Boşluk-olmayan + karakter ([^[:space:]] ifadesine denktir) +
      • \w - İşaret + karakterleri ([[:alnum:]_] ifadesine denktir) +
      • \W - İşaret-olamayan + karakterler ([^[:alnum:]_] ifadesine denktir) +
      +

      A.6 Veya İşleci

      +
      Veya işleci | karakteridir. Örneğin "a veya +b" gibi bir ifade belirtmek için "a|b" bildirimini yapabilirsiniz.
      +

      A.7 Gruplama İşleçleri (Alt İfadeler)

      +
      Gruplama işleçleri alt ifadelerdir. Bir alt +ifade oluşturmanın 2 yolu vardır. 2 metod "grup adresleme işleci" açısından +bakıldığında farklılık göstermektedir. Grup adresleme işleci kullanan bir +alt +ifade bildirmek için, açık parantez yerine "(?:" ifadesini kullanın. Örneğin +"([a-z])" ifadesini bir alt ifade olarak bildirmek için "(?:[a-z])" şeklinde +belirtmelisiniz. Bütün yineleme işleçleri alt ifadelerde "alt ifadenin 1 +veya +daha fazla tekrarlanması" şeklinde kullanılabilir. Örneğin "[0-9][a-z][0-9]" +gibi bir düzenli ifademiz varsa ve bu ifadenin iki kez tekrarlanması +durumlarında eşleşme yapmak istiyorsak bunu "([0-9][a-z][0-9]){2}" şeklinde +belirtebilirsiniz.
      +

      A.8 Grup Adresleme İşleci

      +
      Grup adresleme işleçleri düzenli ifadenin +önceden belirtilmiş bir alt ifadesiyle bir adresi eşleştirmenize olanak +sağlar. +Bir grup adresleme işlecini tersbölü karakteri (\) ve ardından da 0-9 +arasında +bir rakam belirterek kullanabilirsiniz, örneğin \1. \0 grup adresleme işleci +özel bir işleçtir, bu işleçle düzenli ifadenin tamamını kapsatabilirsiniz. +Grup +adresleme işleçlerinden, aynı diziyi 2 kere içeren bir metni eşleştirmek +istediğinizde faydalanabilirsiniz. Örneğin, nick!user@host gibi bir maske +olsun. +Ve "[0-9][a-z]{5}" düzenli ifadesi ile eşleşen bir nick ve kullanıcı adı +kullanan bir trojan olsun ve aynı nicki ve identi kullansın. Bu durumda +"[0-9][a-z]{5}![0-9][a-z]{5}@.+" ifadesi ile eşleşme yapamazsınız çünkü bu +ifade +nick ve ident kısmının farklı oldugu durumlara izin verebilir. Örneğin nick +labcde ve identte 2fghij olabilir. Grup adresleme işleçleri ile bu +limtlemenin +üstesinden gelebilirsiniz. Bunun için (bu örnek için) +"([0-9][a-z]{5})!\1@.+" +şeklinde ifade belirtmeniz yeterli olacaktır. +

      9 tane grup adresleme işleci olduğundan (?:) notasyonu +kullanışlıdır. Bu size grup adresleme işleci boşa kullanılmaksızın alt ifade +oluşturmanıza izin verir.

      +

      A.9 Büyük/Küçük Harf Duyarlılığı

      +
      Bahsedildiği üzere, Unreal bütün düzenli +ifadeleri büyük/küçük harf duyarsız olarak kullanır. Bunun için temel +gerekçe; +bir ifadeyle daha fazla eşleşme yapmak isteyebilirsiniz. Örneğin +"www.test.com" +metnini bloklamak isteyebilirsiniz, bunun için “WWW.TEST.COM” ifadesini +belirtmek zorunda kalmayacaksınız.. Bununla birlikte, büyük/küçük harf +duyarlılığının aktif olması gereken durumlar da olabilir. Örneğin belirli +trojanların eşleşmesinde. Bu durumda büyük/küçük harf duyarlılığını aktif +edebilirsiniz. Bu duyarlılığı açmak için "(?-i)" ifadesini, kapamak için ise +"(?i)" ifadesini kullanabilirsiniz. Örneğin, "(?-i)[a-z](?i)[a-z]" ifadesi +yalnızca küçük harflerle eşleşecektir.
      +
      \ No newline at end of file diff --git a/extras/c-ares.tar.gz b/extras/c-ares.tar.gz index 5a0311bad..6171a598f 100644 Binary files a/extras/c-ares.tar.gz and b/extras/c-ares.tar.gz differ diff --git a/help.conf b/help.conf index 1377d5be6..7a6e36f3e 100644 --- a/help.conf +++ b/help.conf @@ -159,7 +159,8 @@ help Chmodes { " a = Gives Channel Admin to the user"; " q = Gives Owner status to the user"; " -"; - " b = Bans the nick!ident@host from the channel [h]"; + " b = Bans the nick!ident@host from the channel"; + " Extended bantypes (for more info see /HELPOP EXTBANS) [h]"; " c = Block messages containing mIRC color codes [o]"; " e = Overrides a ban for matching users [h]"; " I = Overrides +i for matching users [h]"; @@ -194,6 +195,35 @@ help Chmodes { " ==------------------------------oOo----------------------------=="; }; +help ExtBans { + " Extended bantypes: "; + " -"; + " ==-Type--------Name---------------------------Explanation-----------------------=="; + " | | People matching these bans can join but are unable to "; + " ~q | Quiet | speak, unless they have +v or higher. "; + " | | Example: "; + " | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | People matching these bans cannot change nicks, unless "; + " ~n | nickchange | they have +v or higher. "; + " | | Example: "; + " | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* "; + "-----------------------------------------------------------------------------------"; + " | | If the user is in this channel then (s)he is unable to "; + " | [prefix] | join. A prefix can also be specified (+/%/@/&/~) which "; + " ~ñ | channel | means that it will only match if the user has that "; + " | | rights or higher on the specified channel. "; + " | | Example: +b ~c:#lamers, +e ~c:@#trusted "; + "-----------------------------------------------------------------------------------"; + " | | If the realname of a user matches this then (s)he is "; + " | | unable to join. "; + " ~r | realname | Example: +b ~r:*Stupid_bot_script* "; + " | | NOTE: an underscore ('_') matches both a space (' ') and"; + " | | an underscore ('_'), so this ban would "; + " | | match 'Stupid bot script v1.4'. "; + " ==------------------------------------------------------------------------------=="; +}; + help Chmodef { " The +f channel mode provides comprehensive flood protection for a channel."; " This mode allows you to prevent join, nick change, CTCP, text, and knock"; @@ -207,7 +237,7 @@ help Chmodef { " ==-----Type-----Name--------Default Action---Other Actions-----=="; " c CTCP +C m, M"; " j Join +i R"; - " k Knock +k"; + " k Knock +K"; " m Messages +m M"; " n Nickchange +N"; " t Text kick b"; @@ -1132,7 +1162,7 @@ help Svskill { }; help Svsnoop { - " Enables or disables whether Global IRCop functions"; + " Enables or disables whether IRCop functions"; " exist on the server in question or not."; " Must be sent through an U:Lined server."; " -"; @@ -1226,9 +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 +/- :"; + " Syntax: SVSNLINE + : (To add a ban)"; + " SVSNLINE - : (To remove a ban)"; + " SVSNLINE * (To clear all bans)"; " Example: SVSNLINE + sub7_drone :*sub7*"; }; @@ -1244,18 +1276,18 @@ help Svslusers { help Svswatch { " Changes the WATCH list of a user."; - " Must be sent trough an U:Lined server."; + " Must be sent through an U:Lined server."; " Syntax: SVSWATCH :"; " Example: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com"; }; help Svssilence { " Changes the SILENCE list of a user."; - " Must be sent trough an U:Lined server."; + " Must be sent through an U:Lined server."; " In contrast to the SILENCE command, you can add/remove"; " multiple entries in one line."; " Syntax: SVSSILENCE :"; - " Example: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; + " Example: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk"; }; help Svssno { @@ -1272,7 +1304,7 @@ help Svs2sno { " Must be sent through an U:Lined server."; " -"; " Syntax: SVS2SNO "; - " Example: SVSSNO joe +Gc"; + " Example: SVS2SNO joe +Gc"; }; diff --git a/include/config.h b/include/config.h index 587e0e049..cbb4e4db6 100644 --- a/include/config.h +++ b/include/config.h @@ -429,13 +429,6 @@ */ #define FAST_BADWORD_REPLACE -/* - * Only important for people using IPv6 (default should be ok for now) -Onliner - * Because ip6.arpa is still not delegated for the 6bone (3ffe::/16) - * this options allows you to still resolve it using ip6.int. - */ -#define SIXBONE_HACK - /* * Forces Unreal to use compressed IPv6 addresses rather than expanding them */ diff --git a/include/dynconf.h b/include/dynconf.h index f8e1b5350..7aec0b8f2 100644 --- a/include/dynconf.h +++ b/include/dynconf.h @@ -151,6 +151,7 @@ struct zConfiguration { int timesynch_enabled; int timesynch_timeout; char *timesynch_server; + int pingpong_warning; aNetwork network; }; @@ -261,6 +262,7 @@ extern MODVAR aConfiguration iConf; #define TIMESYNCH_TIMEOUT iConf.timesynch_timeout #define TIMESYNCH_SERVER iConf.timesynch_server +#define PINGPONG_WARNING iConf.pingpong_warning /* Used for "is present?" and duplicate checking */ struct SetCheck { @@ -280,6 +282,7 @@ struct SetCheck { unsigned has_dns_timeout:1; 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; @@ -293,6 +296,7 @@ struct SetCheck { unsigned has_auto_join:1; unsigned has_oper_auto_join:1; unsigned has_check_target_nick_bans:1; + unsigned has_pingpong_warning:1; unsigned has_oper_only_stats:1; unsigned has_maxchannelsperuser:1; unsigned has_maxdccallow:1; diff --git a/include/h.h b/include/h.h index 11141b9b3..54ee608fc 100644 --- a/include/h.h +++ b/include/h.h @@ -112,6 +112,8 @@ 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); @@ -735,6 +737,8 @@ 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); +extern MODVAR int (*is_silenced)(aClient *sptr, aClient *acptr); /* /Efuncs */ extern MODVAR aMotd *opermotd, *svsmotd, *motd, *botmotd, *smotd; extern MODVAR int max_connection_count; @@ -776,3 +780,6 @@ 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 void kick_insecure_users(aChannel *); +extern int file_exists(char* file); +extern void free_motd(aMotd *m); diff --git a/include/inet.h b/include/inet.h index 21f593172..e3aa99662 100644 --- a/include/inet.h +++ b/include/inet.h @@ -57,3 +57,7 @@ extern __u_l inet_network(); extern __u_l inet_lnaof(); #endif #undef __u_l + +#ifndef INADDR_NONE +#define INADDR_NONE 0xffffffff +#endif diff --git a/include/modules.h b/include/modules.h index ecdb2aecd..ee5721e6e 100644 --- a/include/modules.h +++ b/include/modules.h @@ -636,6 +636,8 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch #define HOOKTYPE_REMOTE_PART 44 #define HOOKTYPE_REMOTE_KICK 45 #define HOOKTYPE_LOCAL_SPAMFILTER 46 +#define HOOKTYPE_SILENCED 47 +#define HOOKTYPE_POST_SERVER_CONNECT 48 /* Hook return values */ #define HOOK_CONTINUE 0 @@ -680,6 +682,8 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch #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 diff --git a/include/struct.h b/include/struct.h index ba1e330a1..5a8962148 100644 --- a/include/struct.h +++ b/include/struct.h @@ -613,6 +613,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */ #define OPIsNetAdmin(x) ((x)->oflag & OFLAG_NETADMIN) #define OPIsCoAdmin(x) ((x)->oflag & OFLAG_COADMIN) #define OPIsWhois(x) ((x)->oflag & OFLAG_WHOIS) +#ifdef SHOW_SECRET +#define OPCanSeeSecret(x) IsAnOper(x) +#else +#define OPCanSeeSecret(x) IsNetAdmin(x) +#endif #define OPSetRehash(x) ((x)->oflag |= OFLAG_REHASH) #define OPSetDie(x) ((x)->oflag |= OFLAG_DIE) diff --git a/include/version.h b/include/version.h index 19a29402e..5d7381d61 100644 --- a/include/version.h +++ b/include/version.h @@ -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. */ @@ -40,18 +40,18 @@ #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 5 +#define UNREAL_VERSION_MINOR 6 /** 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 200624 +#define UNREAL_VERSION_TIME 200651 -#define UnrealProtocol 2308 +#define UnrealProtocol 2309 #define PATCH1 "3" #define PATCH2 ".2" -#define PATCH3 ".5" +#define PATCH3 ".6" #define PATCH4 "" #define PATCH5 "" #define PATCH6 "" diff --git a/makefile.win32 b/makefile.win32 index 709e2f4d6..5483d5548 100644 --- a/makefile.win32 +++ b/makefile.win32 @@ -120,14 +120,14 @@ 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 _USE_32BIT_TIME_T + $(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \ dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \ $(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \ /nologo $(DBGLFLAG) /out:WIRCD.EXE MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \ /Fosrc/modules/ /nologo $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \ - DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _USE_32BIT_TIME_T + DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \ $(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB) diff --git a/src/channel.c b/src/channel.c index 713ac6c0a..a06db9ac2 100644 --- a/src/channel.c +++ b/src/channel.c @@ -898,10 +898,15 @@ void channel_modes(aClient *cptr, char *mbuf, char *pbuf, aChannel *chptr) { aCtab *tab = &cFlagTab[0]; char bcbuf[1024]; + int ismember; #ifdef EXTCMODE int i; #endif + ismember = (IsMember(cptr, chptr) || IsServer(cptr) || IsULine(cptr)) ? 1 : 0; + + *pbuf = '\0'; + *mbuf++ = '+'; /* Paramless first */ while (tab->mode != 0x0) @@ -922,15 +927,13 @@ void channel_modes(aClient *cptr, char *mbuf, char *pbuf, aChannel *chptr) if (chptr->mode.limit) { *mbuf++ = 'l'; - if (IsMember(cptr, chptr) || IsServer(cptr) - || IsULine(cptr)) + if (ismember) (void)ircsprintf(pbuf, "%d ", chptr->mode.limit); } if (*chptr->mode.key) { *mbuf++ = 'k'; - if (IsMember(cptr, chptr) || IsServer(cptr) - || IsULine(cptr)) + if (ismember) { /* FIXME: hope pbuf is long enough */ (void)snprintf(bcbuf, sizeof bcbuf, "%s ", chptr->mode.key); @@ -940,8 +943,7 @@ void channel_modes(aClient *cptr, char *mbuf, char *pbuf, aChannel *chptr) if (*chptr->mode.link) { *mbuf++ = 'L'; - if (IsMember(cptr, chptr) || IsServer(cptr) - || IsULine(cptr)) + if (ismember) { /* FIXME: is pbuf long enough? */ (void)snprintf(bcbuf, sizeof bcbuf, "%s ", chptr->mode.link); @@ -956,8 +958,7 @@ void channel_modes(aClient *cptr, char *mbuf, char *pbuf, aChannel *chptr) #endif { *mbuf++ = 'f'; - if (IsMember(cptr, chptr) || IsServer(cptr) - || IsULine(cptr)) + if (ismember) { #ifdef NEWCHFLOODPROT ircsprintf(bcbuf, "%s ", channel_modef_string(chptr->mode.floodprot)); @@ -978,8 +979,11 @@ void channel_modes(aClient *cptr, char *mbuf, char *pbuf, aChannel *chptr) (chptr->mode.extmode & Channelmode_Table[i].mode)) { *mbuf++ = Channelmode_Table[i].flag; - strcat(pbuf, Channelmode_Table[i].get_param(extcmode_get_struct(chptr->mode.extmodeparam, Channelmode_Table[i].flag))); - strcat(pbuf, " "); + if (ismember) + { + strcat(pbuf, Channelmode_Table[i].get_param(extcmode_get_struct(chptr->mode.extmodeparam, Channelmode_Table[i].flag))); + strcat(pbuf, " "); + } } } #endif diff --git a/src/charsys.c b/src/charsys.c index 66c3bd375..54c4d2f24 100644 --- a/src/charsys.c +++ b/src/charsys.c @@ -372,7 +372,7 @@ int charsys_postconftest(void) int x=0; if ((langav & LANGAV_ASCII) && (langav & LANGAV_GBK)) { - config_error("ERROR: set::accept-language specifies incorrect combination " + config_error("ERROR: set::allowed-nickchars specifies incorrect combination " "of languages: high-ascii languages (such as german, french, etc) " "cannot be mixed with chinese/.."); return -1; @@ -393,7 +393,7 @@ int x=0; x++; if (x > 1) { - config_status("WARNING: set::accept-language: " + config_status("WARNING: set::allowed-nickchars: " "Mixing of charsets (eg: latin1+latin2) can cause display problems"); } return 1; @@ -408,7 +408,7 @@ int mid; while (start <= stop) { mid = (start+stop)/2; - if (smycmp(name, langlist[mid].directive) < 0) + if (!langlist[mid].directive || smycmp(name, langlist[mid].directive) < 0) stop = mid-1; else if (strcmp(name, langlist[mid].directive) == 0) return &langlist[mid]; @@ -430,7 +430,7 @@ LangList *l = charsys_find_language(name); } if (!strcmp(name, "euro-west")) { - config_error("set::accept-language: ERROR: 'euro-west' got renamed to 'latin1'"); + config_error("set::allowed-nickchars: ERROR: 'euro-west' got renamed to 'latin1'"); return 0; } return 0; @@ -553,8 +553,8 @@ char latin1=0, latin2=0, w1250=0, w1251=0, chinese=0; if (latin1 || !strcmp(name, "catalan")) { /* supplied by Trocotronic */ - /* a`, A`, e`, E`, e', E', i', I', o`, O`, o', O', u', U', i", I", u", U" */ - charsys_addallowed("àÀèÈéÉíÍòÒóÓúÚïÏüÜ"); + /* a`, A`, e`, weird-c, weird-C, E`, e', E', i', I', o`, O`, o', O', u', U', i", I", u", U", weird-dot */ + charsys_addallowed("àÀçÇèÈéÉíÍòÒóÓúÚïÏüÜ"); } if (latin1 || !strcmp(name, "swedish")) { @@ -618,18 +618,20 @@ char latin1=0, latin2=0, w1250=0, w1251=0, chinese=0; if (w1251 || !strcmp(name, "belarussian-w1251")) { - /* supplied by Anton Samets & ss: + /* supplied by Bock (Samets Anton) & ss: * 128-159, 161, 162, 178, 179 and 223-254 + * Corrected 01.11.2006 to more "correct" behavior by Bock */ - charsys_addallowed("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ¨¸¡¢²³"); + charsys_addallowed("ÀÁÂÃÄŨÆÇ²ÉÊËÌÍÎÏĞÑÒÓ¡ÔÕÖרÛÜİŞßàáâãä叿ç³éêëìíîïğñòó¢ôõö÷øûüışÿ"); } if (w1251 || !strcmp(name, "ukrainian-w1251")) { /* supplied by Anton Samets & ss: * 128-159, 170, 175, 178, 179, 186, 191 and 223-254 + * Corrected 01.11.2006 to more "correct" behavior by core */ - charsys_addallowed("ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ¨¸²³ªº¯¿"); + charsys_addallowed("ÀÁÂÃ¥ÄŪÆÇȲ¯ÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÜŞßàáâã´äåºæç賿éêëìíîïğñòóôõö÷øùüşÿ"); } /* [GREEK] */ diff --git a/src/cloak.c b/src/cloak.c index a1605faae..70610aeb6 100644 --- a/src/cloak.c +++ b/src/cloak.c @@ -164,13 +164,13 @@ char host[256], *mask, *x, *p, *q; /* Call the cloaking layer */ if (RCallbacks[CALLBACKTYPE_CLOAK_EX]) - mask = RCallbacks[CALLBACKTYPE_CLOAK]->func.pcharfunc(sptr, host); + mask = RCallbacks[CALLBACKTYPE_CLOAK_EX]->func.pcharfunc(sptr, host); else mask = RCallbacks[CALLBACKTYPE_CLOAK]->func.pcharfunc(host); if (mode == 0) { - strncpyzt(new, mask, HOSTLEN); /* */ + strlcpy(new, mask, HOSTLEN + 1); return NULL; } if (new) diff --git a/src/hash.c b/src/hash.c index a54d07072..ea09cddfa 100644 --- a/src/hash.c +++ b/src/hash.c @@ -869,9 +869,9 @@ int throttle_can_connect(aClient *sptr, struct IN_ADDR *in) { if (Find_except(sptr, Inet_ia2p(in), CONF_EXCEPT_THROTTLE)) return 2; - b->count++; - if (b->count > (THROTTLING_COUNT ? THROTTLING_COUNT : 3)) + if (b->count+1 > (THROTTLING_COUNT ? THROTTLING_COUNT : 3)) return 0; + b->count++; return 2; } } diff --git a/src/ircd.c b/src/ircd.c index 5e647d19d..30f381d24 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -166,7 +166,11 @@ extern void init_glines(void); extern void tkl_init(void); MODVAR TS last_garbage_collect = 0; +#ifndef _WIN32 MODVAR char **myargv; +#else +LPCSTR cmdLine; +#endif int portnum = -1; /* Server port number, listening this */ char *configfile = CONFIGFILE; /* Server configuration file */ int debuglevel = 10; /* Server debug level */ @@ -357,7 +361,7 @@ void server_reboot(char *mesg) if (!IsService) { CleanUp(); - (void)execv(myargv[0], myargv); + WinExec(cmdLine, SW_SHOWDEFAULT); } #endif #ifndef _WIN32 @@ -486,7 +490,7 @@ static TS try_connections(TS currenttime) && crule_eval(deny->rule)) break; - if (connect_server(aconf, (aClient *)NULL, + if (!deny && connect_server(aconf, (aClient *)NULL, (struct hostent *)NULL) == 0) sendto_realops ("Connection to %s[%s] activated.", @@ -845,7 +849,7 @@ int error = 0; #ifdef ZIP_LINKS runtime = zlibVersion(); compiledfor = ZLIB_VERSION; - if (strcasecmp(compiledfor, runtime)) + if (*compiledfor != *runtime) { version_check_logerror("Zlib version mismatch: compiled for '%s', library is '%s'", compiledfor, runtime); @@ -998,7 +1002,11 @@ int InitwIRCD(int argc, char *argv[]) exit(5); } #endif /*CHROOTDIR*/ +#ifndef _WIN32 myargv = argv; +#else + cmdLine = GetCommandLine(); +#endif #ifndef _WIN32 (void)umask(077); /* better safe than sorry --SRB */ #else @@ -1096,6 +1104,14 @@ int InitwIRCD(int argc, char *argv[]) } p = *++argv; argc--; +#ifdef AUTHENABLE_UNIXCRYPT + if ((type == AUTHTYPE_UNIXCRYPT) && (strlen(p) > 8)) + { + printf("WARNING: Password truncated to 8 characters due to 'crypt' algorithm. " + "You are suggested to use the 'md5' algorithm instead."); + p[8] = '\0'; + } +#endif if (!(result = Auth_Make(type, p))) { printf("Authentication failed\n"); exit(0); @@ -1222,7 +1238,7 @@ int InitwIRCD(int argc, char *argv[]) fprintf(stderr, " v%s\n", VERSIONONLY); fprintf(stderr, " using %s\n", tre_version()); #ifdef USE_SSL - fprintf(stderr, " using %s\n", OPENSSL_VERSION_TEXT); + fprintf(stderr, " using %s\n", SSLeay_version(SSLEAY_VERSION)); #endif #ifdef ZIP_LINKS fprintf(stderr, " using zlib %s\n", zlibVersion()); diff --git a/src/modules.c b/src/modules.c index 85ae16d4e..e263be270 100644 --- a/src/modules.c +++ b/src/modules.c @@ -114,6 +114,8 @@ char *(*stripbadwords_message)(char *str, int *blocked); char *(*stripbadwords_quit)(char *str, int *blocked); unsigned char *(*StripColors)(unsigned char *text); const char *(*StripControlCodes)(unsigned char *text); +void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr); +int (*is_silenced)(aClient *sptr, aClient *acptr); static const EfunctionsList efunction_table[MAXEFUNCTIONS] = { /* 00 */ {NULL, NULL}, @@ -149,8 +151,8 @@ static const EfunctionsList efunction_table[MAXEFUNCTIONS] = { /* 30 */ {"stripbadwords_quit", (void *)&stripbadwords_quit}, /* 31 */ {"StripColors", (void *)&StripColors}, /* 32 */ {"StripControlCodes", (void *)&StripControlCodes}, -/* 33 */ {NULL, NULL}, -/* 34 */ {NULL, NULL}, +/* 33 */ {"spamfilter_build_user_string", (void *)&spamfilter_build_user_string}, +/* 34 */ {"is_silenced", (void *)&is_silenced}, /* 35 */ {NULL, NULL} }; @@ -330,14 +332,25 @@ char *Module_Create(char *path_) strcpy(path, "./"); strcat(path, path_); } + + if (!file_exists(path)) + { + snprintf(errorbuf, sizeof(errorbuf), "Cannot open module file: %s", strerror(errno)); + return errorbuf; + } #ifdef __OpenBSD__ /* For OpenBSD, do not do a hardlinkink attempt first because it checks inode * numbers to see if a certain module is already loaded. -- Syzop */ - unreal_copyfileex(path, tmppath, 0); + ret = unreal_copyfileex(path, tmppath, 0); #else - unreal_copyfileex(path, tmppath, 1); + ret = unreal_copyfileex(path, tmppath, 1); #endif + if (!ret) + { + snprintf(errorbuf, sizeof(errorbuf), "Failed to copy module file."); + return errorbuf; + } if ((Mod = irc_dlopen(tmppath, RTLD_NOW))) { /* We have engaged the borg cube. Scan for lifesigns. */ diff --git a/src/modules/Makefile.in b/src/modules/Makefile.in index 3fc135a83..ba6d986d8 100644 --- a/src/modules/Makefile.in +++ b/src/modules/Makefile.in @@ -32,8 +32,6 @@ INCLUDES = ../include/auth.h ../include/badwords.h ../include/channel.h \ ../include/threads.h ../include/types.h ../include/url.h \ ../include/version.h ../include/whowas.h ../include/zip.h -#just changing this to cloak.so could be a ./Config option... -#R_MODULES=cloak.so R_MODULES= \ m_sethost.so m_chghost.so m_chgident.so m_setname.so \ m_setident.so m_sdesc.so m_svsmode.so m_swhois.so\ @@ -55,7 +53,7 @@ R_MODULES= \ m_svsfline.so m_dccdeny.so m_undccdeny.so m_whowas.so \ m_connect.so m_dccallow.so m_userip.so m_nick.so m_user.so \ m_mode.so m_watch.so m_part.so m_join.so m_motd.so m_opermotd.so \ - m_botmotd.so m_lusers.so cloak.so + m_botmotd.so m_lusers.so m_names.so #note change of .c to .o COMMANDS=m_sethost.o m_chghost.o m_chgident.o m_setname.o m_setident.o \ @@ -80,7 +78,7 @@ COMMANDS=m_sethost.o m_chghost.o m_chgident.o m_setname.o m_setident.o \ m_botmotd.o m_lusers.o m_names.o -MODULES=commands.so $(R_MODULES) +MODULES=commands.so cloak.so $(R_MODULES) MODULEFLAGS=@MODULEFLAGS@ all: build diff --git a/src/modules/m_chgname.c b/src/modules/m_chgname.c index 5b54c5406..db8b204c0 100644 --- a/src/modules/m_chgname.c +++ b/src/modules/m_chgname.c @@ -72,7 +72,7 @@ DLLFUNC int MOD_INIT(m_chgname)(ModuleInfo *modinfo) * We call our add_Command crap here */ add_Command(MSG_CHGNAME, TOK_CHGNAME, m_chgname, 2); - add_Command(MSG_SVSNAME, TOK_CHGNAME, m_chgname, 2); + add_Command(MSG_SVSNAME, NULL, m_chgname, 2); MARK_AS_OFFICIAL_MODULE(modinfo); return MOD_SUCCESS; } @@ -93,7 +93,7 @@ DLLFUNC int MOD_UNLOAD(m_chgname)(int module_unload) sendto_realops("Failed to delete command chgname when unloading %s", MOD_HEADER(m_chgname).name); } - if (del_Command(MSG_SVSNAME, TOK_CHGNAME, m_chgname) < 0) + if (del_Command(MSG_SVSNAME, NULL, m_chgname) < 0) { sendto_realops("Failed to delete command svsname when unloading %s", MOD_HEADER(m_chgname).name); diff --git a/src/modules/m_help.c b/src/modules/m_help.c index c8e5c2fdf..e4e359967 100644 --- a/src/modules/m_help.c +++ b/src/modules/m_help.c @@ -62,7 +62,7 @@ ModuleHeader MOD_HEADER(m_help) DLLFUNC int MOD_INIT(m_help)(ModuleInfo *modinfo) { add_Command(MSG_HELP, TOK_HELP, m_help, 1); - add_Command(MSG_HELPOP, TOK_HELP, m_help, 1); + add_Command(MSG_HELPOP, NULL, m_help, 1); MARK_AS_OFFICIAL_MODULE(modinfo); return MOD_SUCCESS; } @@ -79,7 +79,7 @@ DLLFUNC int MOD_UNLOAD(m_help)(int module_unload) sendto_realops("Failed to delete commands when unloading %s", MOD_HEADER(m_help).name); } - if (del_Command(MSG_HELPOP, TOK_HELP, m_help) < 0) + if (del_Command(MSG_HELPOP, NULL, m_help) < 0) { sendto_realops("Failed to delete commands when unloading %s", MOD_HEADER(m_help).name); diff --git a/src/modules/m_invite.c b/src/modules/m_invite.c index b5672acf3..6179ba4f0 100644 --- a/src/modules/m_invite.c +++ b/src/modules/m_invite.c @@ -337,8 +337,9 @@ DLLFUNC CMD_FUNC(m_invite) add_invite(acptr, chptr); } } - sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], - acptr->name, ((chptr) ? (chptr->chname) : parv[2])); + if (!is_silenced(sptr, acptr)) + sendto_prefix_one(acptr, sptr, ":%s INVITE %s :%s", parv[0], + acptr->name, ((chptr) ? (chptr->chname) : parv[2])); return 0; } diff --git a/src/modules/m_kick.c b/src/modules/m_kick.c index d57b5b225..dfb9bcb9a 100644 --- a/src/modules/m_kick.c +++ b/src/modules/m_kick.c @@ -179,6 +179,8 @@ CMD_FUNC(m_kick) { if (!op_can_override(sptr)) { + if (!MyClient(sptr)) + goto attack; /* lag? yes.. kick crossing +Q... allow */ sendto_one(sptr, err_str(ERR_CANNOTDOCOMMAND), me.name, sptr->name, "KICK", "channel is +Q"); @@ -188,6 +190,9 @@ CMD_FUNC(m_kick) "*** OperOverride -- %s (%s@%s) KICK %s %s (%s)", sptr->name, sptr->user->username, sptr->user->realhost, chptr->chname, who->name, comment); + ircd_log(LOG_OVERRIDE,"OVERRIDE: %s (%s@%s) KICK %s %s (%s)", + sptr->name, sptr->user->username, sptr->user->realhost, + chptr->chname, who->name, comment); goto attack; /* No reason to continue.. */ } /* Store "who" access flags */ @@ -219,6 +224,8 @@ CMD_FUNC(m_kick) /* victim is +a or +q, we are not +q */ if ((who_flags & (CHFL_CHANOWNER|CHFL_CHANPROT) || IsServices(who)) && !(sptr_flags & CHFL_CHANOWNER)) { + if (sptr == who) + goto attack; /* kicking self == ok */ if (op_can_override(sptr)) /* (and f*ck local ops) */ { /* IRCop kicking owner/prot */ sendto_snomask(SNO_EYES, diff --git a/src/modules/m_list.c b/src/modules/m_list.c index 73dd17363..0fe5a9f1b 100644 --- a/src/modules/m_list.c +++ b/src/modules/m_list.c @@ -269,7 +269,7 @@ DLLFUNC CMD_FUNC(m_list) else /* Just a normal channel */ { chptr = find_channel(name, NullChn); - if (chptr && (ShowChannel(sptr, chptr) || IsAnOper(sptr))) { + if (chptr && (ShowChannel(sptr, chptr) || OPCanSeeSecret(sptr))) { #ifdef LIST_SHOW_MODES modebuf[0] = '['; channel_modes(sptr, &modebuf[1], parabuf, chptr); @@ -364,7 +364,7 @@ void _send_list(aClient *cptr, int numsend) { if (SecretChannel(chptr) && !IsMember(cptr, chptr) - && !IsAnOper(cptr)) + && !OPCanSeeSecret(cptr)) continue; /* Much more readable like this -- codemastr */ @@ -405,7 +405,7 @@ void _send_list(aClient *cptr, int numsend) else strlcat(modebuf, "]", sizeof modebuf); #endif - if (!IsAnOper(cptr)) + if (!OPCanSeeSecret(cptr)) sendto_one(cptr, rpl_str(RPL_LIST), me.name, cptr->name, diff --git a/src/modules/m_map.c b/src/modules/m_map.c index 93d65f2ea..db32b7e61 100644 --- a/src/modules/m_map.c +++ b/src/modules/m_map.c @@ -100,7 +100,7 @@ static void dump_map(aClient *cptr, aClient *server, char *mask, int prompt_leng { sendto_one(cptr, rpl_str(RPL_MAP), me.name, cptr->name, prompt, length, server->name, server->serv->users, - (server->serv->numeric ? (char *)my_itoa(server->serv-> + ((IsAnOper(cptr) && server->serv->numeric) ? (char *)my_itoa(server->serv-> numeric) : "")); cnt = 0; } diff --git a/src/modules/m_message.c b/src/modules/m_message.c index 0b2f7cbf3..5d0b04cc3 100644 --- a/src/modules/m_message.c +++ b/src/modules/m_message.c @@ -44,7 +44,7 @@ #endif #include "badwords.h" -static int is_silenced(aClient *, aClient *); +int _is_silenced(aClient *, aClient *); char *_stripbadwords_channel(char *str, int *blocked); char *_stripbadwords_message(char *str, int *blocked); char *_stripbadwords_quit(char *str, int *blocked); @@ -80,6 +80,7 @@ DLLFUNC int MOD_TEST(m_message)(ModuleInfo *modinfo) EfunctionAddPChar(modinfo->handle, EFUNC_STRIPBADWORDS_QUIT, _stripbadwords_quit); EfunctionAddPChar(modinfo->handle, EFUNC_STRIPCOLORS, _StripColors); EfunctionAddPChar(modinfo->handle, EFUNC_STRIPCONTROLCODES, _StripControlCodes); + EfunctionAdd(modinfo->handle, EFUNC_IS_SILENCED, _is_silenced); return MOD_SUCCESS; } @@ -222,6 +223,9 @@ int ret; return CANPRIVMSG_CONTINUE; return CANPRIVMSG_SEND; + } else { + /* Silenced */ + RunHook4(HOOKTYPE_SILENCED, cptr, sptr, acptr, notice); } return CANPRIVMSG_CONTINUE; } @@ -675,7 +679,7 @@ DLLFUNC int m_notice(aClient *cptr, aClient *sptr, int parc, char *parv[]) * but more over, if this is detected on a server not local to sptr * the SILENCE mask is sent upstream. */ -static int is_silenced(aClient *sptr, aClient *acptr) +int _is_silenced(aClient *sptr, aClient *acptr) { Link *lp; anUser *user; diff --git a/src/modules/m_mkpasswd.c b/src/modules/m_mkpasswd.c index d989e69bf..08d1b67c0 100644 --- a/src/modules/m_mkpasswd.c +++ b/src/modules/m_mkpasswd.c @@ -128,6 +128,15 @@ int m_mkpasswd(aClient *cptr, aClient *sptr, int parc, char *parv[]) return 0; } +#ifdef AUTHENABLE_UNIXCRYPT + if ((type == AUTHTYPE_UNIXCRYPT) && (strlen(parv[2]) > 8)) + { + sendnotice(sptr, "WARNING: Password truncated to 8 characters due to 'crypt' algorithm. " + "You are suggested to use the 'md5' algorithm instead."); + parv[2][8] = '\0'; + } +#endif + if (!(result = Auth_Make(type, parv[2]))) { sendto_one(sptr, diff --git a/src/modules/m_mode.c b/src/modules/m_mode.c index 698d856d2..6a34a1953 100644 --- a/src/modules/m_mode.c +++ b/src/modules/m_mode.c @@ -169,7 +169,7 @@ CMD_FUNC(m_mode) && parv[2][1] == '\0') || (parv[2][1] == 'b' && parv[2][2] == '\0' && (*parv[2] == '+' || *parv[2] == '-')))) { - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsAnOper(sptr)) return 0; /* send ban list */ for (ban = chptr->banlist; ban; ban = ban->next) @@ -186,7 +186,7 @@ CMD_FUNC(m_mode) && parv[2][1] == '\0') || (parv[2][1] == 'e' && parv[2][2] == '\0' && (*parv[2] == '+' || *parv[2] == '-')))) { - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsAnOper(sptr)) return 0; /* send exban list */ for (ban = chptr->exlist; ban; ban = ban->next) @@ -203,7 +203,7 @@ CMD_FUNC(m_mode) && parv[2][1] == '\0') || (parv[2][1] == 'q' && parv[2][2] == '\0' && (*parv[2] == '+' || *parv[2] == '-')))) { - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsAnOper(sptr)) return 0; { Member *member; @@ -229,7 +229,7 @@ CMD_FUNC(m_mode) && parv[2][1] == '\0') || (parv[2][1] == 'a' && parv[2][2] == '\0' && (*parv[2] == '+' || *parv[2] == '-')))) { - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsAnOper(sptr)) return 0; { Member *member; @@ -256,7 +256,7 @@ CMD_FUNC(m_mode) && parv[2][1] == '\0') || (parv[2][1] == 'I' && parv[2][2] == '\0' && (*parv[2] == '+' || *parv[2] == '-')))) { - if (!IsMember(sptr, chptr)) + if (!IsMember(sptr, chptr) && !IsAnOper(sptr)) return 0; for (ban = chptr->invexlist; ban; ban = ban->next) sendto_one(sptr, rpl_str(RPL_INVEXLIST), me.name, @@ -1679,7 +1679,7 @@ int do_mode_char(aChannel *chptr, long modetype, char modechar, char *param, /* bounce.. */ tmpstr = param; } - retval = 0; /* ??? copied from previous +f code. */ + retval = 1; } #endif @@ -1942,8 +1942,15 @@ DLLFUNC void _set_mode(aChannel *chptr, aClient *cptr, int parc, char *parv[], u { if ((Halfop_mode(modetype) == FALSE) && opermode == 2 && htrig != 1) { - opermode = 0; - htrig = 1; + /* YUCK! */ + if ((foundat.flag == 'h') && !(parc <= paracount) && parv[paracount] && + (find_person(parv[paracount], NULL) == cptr)) + { + /* ircop with halfop doing a -h on himself. no warning. */ + } else { + opermode = 0; + htrig = 1; + } } } #ifdef EXTCMODE diff --git a/src/modules/m_names.c b/src/modules/m_names.c index 74bfa1dce..addf65162 100644 --- a/src/modules/m_names.c +++ b/src/modules/m_names.c @@ -126,7 +126,7 @@ DLLFUNC CMD_FUNC(m_names) chptr = find_channel(para, (aChannel *)NULL); - if (!chptr || (!ShowChannel(sptr, chptr) && !IsAnOper(sptr))) + if (!chptr || (!ShowChannel(sptr, chptr) && !OPCanSeeSecret(sptr))) { sendto_one(sptr, rpl_str(RPL_ENDOFNAMES), me.name, parv[0], para); diff --git a/src/modules/m_nick.c b/src/modules/m_nick.c index 8f35573f0..f31573543 100644 --- a/src/modules/m_nick.c +++ b/src/modules/m_nick.c @@ -181,6 +181,20 @@ DLLFUNC CMD_FUNC(m_nick) return 0; } + /* Kill quarantined opers early... */ + if (IsServer(cptr) && (sptr->from->flags & FLAGS_QUARANTINE) && + (parc >= 11) && strchr(parv[8], 'o')) + { + ircstp->is_kill++; + /* Send kill to uplink only, hasn't been broadcasted to the rest, anyway */ + sendto_one(cptr, ":%s KILL %s :%s (Quarantined: no global oper privileges allowed)", + me.name, parv[1], me.name); + sendto_realops("QUARANTINE: Oper %s on server %s killed, due to quarantine", + parv[1], sptr->name); + /* (nothing to exit_client or to free, since user was never added) */ + return 0; + } + /* ** Protocol 4 doesn't send the server as prefix, so it is possible ** the server doesn't exist (a lagged net.burst), in which case @@ -248,8 +262,7 @@ DLLFUNC CMD_FUNC(m_nick) if (MyClient(sptr)) /* local client changin nick afterwards.. */ { int xx; - ircsprintf(spamfilter_user, "%s!%s@%s:%s", - nick, sptr->user->username, sptr->user->realhost, sptr->info); + spamfilter_build_user_string(spamfilter_user, nick, sptr); xx = dospamfilter(sptr, spamfilter_user, SPAMF_USER, NULL, 0, NULL); if (xx < 0) return xx; @@ -643,11 +656,15 @@ DLLFUNC CMD_FUNC(m_nick) } else sptr->user->flood.nick_c++; - sendto_snomask(SNO_NICKCHANGE, "*** Notice -- %s (%s@%s) has changed his/her nickname to %s", sptr->name, sptr->user->username, sptr->user->realhost, nick); + sendto_snomask(SNO_NICKCHANGE, "*** Notice -- %s (%s@%s) has changed his/her nickname to %s", + sptr->name, sptr->user->username, sptr->user->realhost, nick); RunHook2(HOOKTYPE_LOCAL_NICKCHANGE, sptr, nick); } else { - sendto_snomask(SNO_FNICKCHANGE, "*** Notice -- %s (%s@%s) has changed his/her nickname to %s", sptr->name, sptr->user->username, sptr->user->realhost, nick); + if (!IsULine(sptr)) + sendto_snomask(SNO_FNICKCHANGE, "*** Notice -- %s (%s@%s) has changed his/her nickname to %s", + sptr->name, sptr->user->username, sptr->user->realhost, nick); + RunHook3(HOOKTYPE_REMOTE_NICKCHANGE, cptr, sptr, nick); } /* @@ -682,10 +699,13 @@ DLLFUNC CMD_FUNC(m_nick) * Generate a random string for them to pong with. */ sptr->nospoof = getrandom32(); - sendto_one(sptr, ":%s NOTICE %s :*** If you are having problems" - " connecting due to ping timeouts, please" - " type /quote pong %X or /raw pong %X now.", - me.name, nick, sptr->nospoof, sptr->nospoof); + + if (PINGPONG_WARNING) + sendto_one(sptr, ":%s NOTICE %s :*** If you are having problems" + " connecting due to ping timeouts, please" + " type /quote pong %X or /raw pong %X now.", + me.name, nick, sptr->nospoof, sptr->nospoof); + sendto_one(sptr, "PING :%X", sptr->nospoof); #endif /* NOSPOOF */ #ifdef CONTACT_EMAIL @@ -706,7 +726,8 @@ DLLFUNC CMD_FUNC(m_nick) /* Copy password to the passwd field if it's given after NICK * - originally by taz, modified by Wizzu */ - if ((parc > 2) && (strlen(parv[2]) <= PASSWDLEN)) + if ((parc > 2) && (strlen(parv[2]) <= PASSWDLEN) + && !(sptr->listener->umodes & LISTENER_JAVACLIENT)) { if (sptr->passwd) MyFree(sptr->passwd); @@ -1005,7 +1026,7 @@ int _register_user(aClient *cptr, aClient *sptr, char *nick, char *username, cha * yet (at all). * -- Syzop */ - ircsprintf(spamfilter_user, "%s!%s@%s:%s", sptr->name, sptr->user->username, sptr->user->realhost, sptr->info); + spamfilter_build_user_string(spamfilter_user, sptr->name, sptr); xx = dospamfilter(sptr, spamfilter_user, SPAMF_USER, NULL, 0, &savetkl); if ((xx < 0) && (xx != -5)) return xx; diff --git a/src/modules/m_oper.c b/src/modules/m_oper.c index 64997cf49..f4d7320ab 100644 --- a/src/modules/m_oper.c +++ b/src/modules/m_oper.c @@ -186,8 +186,8 @@ DLLFUNC int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) { if (!(aconf = Find_oper(name))) { sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); - sendto_realops - ("Failed OPER attempt by %s (%s@%s) [unknown oper]", + sendto_snomask_global + (SNO_OPER, "Failed OPER attempt by %s (%s@%s) [unknown oper]", parv[0], sptr->user->username, sptr->sockhost); ircd_log(LOG_OPER, "OPER UNKNOWNOPER (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); @@ -202,9 +202,9 @@ DLLFUNC int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) { break; if (!oper_from) { sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); - sendto_realops - ("Failed OPER attempt by %s (%s@%s) [host doesnt match]", - parv[0], sptr->user->username, sptr->sockhost); + sendto_snomask_global + (SNO_OPER, "Failed OPER attempt by %s (%s@%s) using UID %s [host doesnt match]", + parv[0], sptr->user->username, sptr->sockhost, name); ircd_log(LOG_OPER, "OPER NOHOSTMATCH (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); sptr->since += 7; @@ -221,9 +221,9 @@ DLLFUNC int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) { sendto_one(sptr, err_str(ERR_NOOPERHOST), me.name, parv[0]); sendto_one(sptr, ":%s NOTICE %s :Your maximum number of concurrent oper logins has been reached (%d)", me.name, sptr->name, aconf->maxlogins); - sendto_realops - ("Failed OPER attempt by %s (%s@%s) [maxlogins reached]", - parv[0], sptr->user->username, sptr->sockhost); + sendto_snomask_global + (SNO_OPER, "Failed OPER attempt by %s (%s@%s) using UID %s [maxlogins reached]", + parv[0], sptr->user->username, sptr->sockhost, name); ircd_log(LOG_OPER, "OPER TOOMANYLOGINS (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); sptr->since += 4; @@ -300,7 +300,7 @@ DLLFUNC int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) { iNAH_host(sptr, locop_host); SetHidden(sptr); } - sendto_ops("%s (%s@%s) is now a local operator (o)", + sendto_snomask(SNO_OPER, "%s (%s@%s) is now a local operator (o)", parv[0], sptr->user->username, GetHost(sptr)); } @@ -365,13 +365,9 @@ DLLFUNC int m_oper(aClient *cptr, aClient *sptr, int parc, char *parv[]) { IsWebTV(sptr) ? "PRIVMSG" : "NOTICE", sptr->name); ircd_log(LOG_OPER, "OPER FAILEDAUTH (%s) by (%s!%s@%s)", name, parv[0], sptr->user->username, sptr->sockhost); - sendto_realops - ("Failed OPER attempt by %s (%s@%s) using UID %s [FAILEDAUTH]", + sendto_snomask_global + (SNO_OPER, "Failed OPER attempt by %s (%s@%s) using UID %s [FAILEDAUTH]", parv[0], sptr->user->username, sptr->sockhost, name); - sendto_serv_butone(&me, - ":%s GLOBOPS :Failed OPER attempt by %s (%s@%s) using UID %s [---]", - me.name, parv[0], sptr->user->username, sptr->sockhost, - name); sptr->since += 7; } /* Belay that order, number One. (-2) */ diff --git a/src/modules/m_sajoin.c b/src/modules/m_sajoin.c index 31e47f499..92489e23e 100644 --- a/src/modules/m_sajoin.c +++ b/src/modules/m_sajoin.c @@ -92,6 +92,7 @@ DLLFUNC CMD_FUNC(m_sajoin) { aClient *acptr; char jbuf[BUFSIZE]; + int did_anything = 0; if (!IsSAdmin(sptr) && !IsULine(sptr)) { @@ -168,6 +169,7 @@ DLLFUNC CMD_FUNC(m_sajoin) if (*name == '0' && !atoi(name)) { + did_anything = 1; while ((lp = acptr->user->channel)) { chptr = lp->chptr; @@ -189,21 +191,31 @@ DLLFUNC CMD_FUNC(m_sajoin) chptr = get_channel(acptr, name, CREATE); if (chptr && (lp = find_membership_link(acptr->user->channel, chptr))) continue; - + if ((chptr->mode.mode & MODE_ONLYSECURE) && !IsSecure(acptr)) + { + sendnotice(sptr, "You cannot SAJOIN %s to %s because the channel is +z and the user is not connected via SSL", + acptr->name, chptr->chname); + continue; + } join_channel(chptr, acptr, acptr, flags); + did_anything = 1; if (*jbuf) (void)strlcat(jbuf, ",", sizeof jbuf); (void)strlncat(jbuf, name, sizeof jbuf, sizeof(jbuf) - i - 1); i += strlen(name) + 1; } - sendnotice(acptr, "*** You were forced to join %s", jbuf); - sendto_realops("%s used SAJOIN to make %s join %s", sptr->name, acptr->name, - jbuf); - sendto_serv_butone(&me, ":%s GLOBOPS :%s used SAJOIN to make %s join %s", - me.name, sptr->name, acptr->name, jbuf); - /* Logging function added by XeRXeS */ - ircd_log(LOG_SACMDS,"SAJOIN: %s used SAJOIN to make %s join %s", - sptr->name, parv[1], jbuf); + + if (did_anything) + { + sendnotice(acptr, "*** You were forced to join %s", jbuf); + sendto_realops("%s used SAJOIN to make %s join %s", sptr->name, acptr->name, + jbuf); + sendto_serv_butone(&me, ":%s GLOBOPS :%s used SAJOIN to make %s join %s", + me.name, sptr->name, acptr->name, jbuf); + /* Logging function added by XeRXeS */ + ircd_log(LOG_SACMDS,"SAJOIN: %s used SAJOIN to make %s join %s", + sptr->name, parv[1], jbuf); + } } else { diff --git a/src/modules/m_sapart.c b/src/modules/m_sapart.c index 0c85526d7..df2d4f62d 100644 --- a/src/modules/m_sapart.c +++ b/src/modules/m_sapart.c @@ -89,13 +89,18 @@ DLLFUNC int MOD_UNLOAD(m_sapart)(int module_unload) parv[2] - channel(s) to part parv[3] - comment */ + DLLFUNC CMD_FUNC(m_sapart) { aClient *acptr; aChannel *chptr; Membership *lp; + char *name, *p = NULL; + int i; char *comment = (parc > 3 && parv[3] ? parv[3] : NULL); char commentx[512]; + char jbuf[BUFSIZE]; + if (!IsSAdmin(sptr) && !IsULine(sptr)) { sendto_one(sptr, err_str(ERR_NOPRIVILEGES), me.name, parv[0]); @@ -113,23 +118,42 @@ DLLFUNC CMD_FUNC(m_sapart) sendto_one(sptr, err_str(ERR_NOSUCHNICK), me.name, parv[0], parv[1]); return 0; } - if (!(chptr = get_channel(acptr, parv[2], 0))) + + /* Now works like m_join */ + *jbuf = 0; + + for (i = 0, name = strtoken(&p, parv[2], ","); name; name = strtoken(&p, + NULL, ",")) { - sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], - parv[2]); - return 0; - } - if (!(lp = find_membership_link(acptr->user->channel, chptr))) - { - sendto_one(sptr, err_str(ERR_USERNOTINCHANNEL), me.name, parv[0], - parv[1], parv[2]); - return 0; + if (!(chptr = get_channel(acptr, name, 0))) + { + sendto_one(sptr, err_str(ERR_NOSUCHCHANNEL), me.name, parv[0], + name); + continue; + } + if (!(lp = find_membership_link(acptr->user->channel, chptr))) + { + sendto_one(sptr, err_str(ERR_USERNOTINCHANNEL), me.name, parv[0], + parv[1], name); + continue; + } + if (*jbuf) + (void)strlcat(jbuf, ",", sizeof jbuf); + (void)strlncat(jbuf, name, sizeof jbuf, sizeof(jbuf) - i - 1); + i += strlen(name) + 1; } + + if (!*jbuf) + return -1; + + strcpy(parv[2], jbuf); if (comment) { sendto_realops("%s used SAPART to make %s part %s (%s)", sptr->name, parv[1], parv[2], comment); + sendto_serv_butone(&me, ":%s GLOBOPS :%s used SAPART to make %s part %s (%s)", + me.name, sptr->name, parv[1], parv[2], comment); /* Logging function added by XeRXeS */ ircd_log(LOG_SACMDS,"SAPART: %s used SAPART to make %s part %s (%s)", sptr->name, parv[1], parv[2], comment); @@ -140,6 +164,8 @@ DLLFUNC CMD_FUNC(m_sapart) { sendto_realops("%s used SAPART to make %s part %s", sptr->name, parv[1], parv[2]); + sendto_serv_butone(&me, ":%s GLOBOPS :%s used SAPART to make %s part %s", + me.name, sptr->name, parv[1], parv[2]); /* Logging function added by XeRXeS */ ircd_log(LOG_SACMDS,"SAPART: %s used SAPART to make %s part %s", sptr->name, parv[1], parv[2]); diff --git a/src/modules/m_server.c b/src/modules/m_server.c index 4f97a2ee1..bf88f70ec 100644 --- a/src/modules/m_server.c +++ b/src/modules/m_server.c @@ -596,6 +596,7 @@ CMD_FUNC(m_server_remote) acptr->name, hop + 1, acptr->info); } } + RunHook(HOOKTYPE_POST_SERVER_CONNECT, acptr); return 0; } @@ -942,6 +943,7 @@ int m_server_synch(aClient *cptr, long numeric, ConfigItem_link *aconf) ircd_log(LOG_ERROR, "[EOSDBG] m_server_synch: sending to justlinked '%s' with src ME...", cptr->name); #endif + RunHook(HOOKTYPE_POST_SERVER_CONNECT, cptr); return 0; } diff --git a/src/modules/m_silence.c b/src/modules/m_silence.c index c1eb1c5c1..7214aac87 100644 --- a/src/modules/m_silence.c +++ b/src/modules/m_silence.c @@ -103,7 +103,7 @@ DLLFUNC CMD_FUNC(m_silence) if (parc < 2 || *parv[1] == '\0' || (acptr = find_person(parv[1], NULL))) { - if (!(acptr->user)) + if (acptr != sptr) return 0; for (lp = acptr->user->silence; lp; lp = lp->next) sendto_one(sptr, rpl_str(RPL_SILELIST), me.name, diff --git a/src/modules/m_sjoin.c b/src/modules/m_sjoin.c index 8f283ce72..ee8b48f2a 100644 --- a/src/modules/m_sjoin.c +++ b/src/modules/m_sjoin.c @@ -583,6 +583,8 @@ docontinue: chptr->creationtime); sendto_channel_butserv(chptr, sptr, ":%s MODE %s %s %s", sptr->name, chptr->chname, modebuf, paraback); + if (chptr->mode.mode & MODE_ONLYSECURE) + kick_insecure_users(chptr); } if (merge && !nomode) { @@ -687,6 +689,8 @@ docontinue: Addsingle('S'); /* - */ queue_c = 1; } + if (!(oldmode.mode & MODE_ONLYSECURE) && (chptr->mode.mode & MODE_ONLYSECURE)) + kick_insecure_users(chptr); /* Add single char modes... */ for (acp = cFlagTab; acp->mode; acp++) { diff --git a/src/modules/m_svsmode.c b/src/modules/m_svsmode.c index 94a521b4a..4c5360486 100644 --- a/src/modules/m_svsmode.c +++ b/src/modules/m_svsmode.c @@ -87,6 +87,120 @@ DLLFUNC int MOD_UNLOAD(m_svsmode)(int module_unload) return MOD_SUCCESS; } +void unban_user(aClient *sptr, aChannel *chptr, aClient *acptr, char chmode) +{ + Extban *extban; + Ban *ban, *bnext; + Ban **banlist; + char uhost[NICKLEN+USERLEN+HOSTLEN+6], vhost[NICKLEN+USERLEN+HOSTLEN+6]; + char ihost[NICKLEN+USERLEN+HOSTLEN+6], chost[NICKLEN+USERLEN+HOSTLEN+6]; + + /* BUILD HOSTS */ + + *uhost = *vhost = *ihost = *chost = '\0'; + + strlcpy(uhost, make_nick_user_host(acptr->name, + acptr->user->username, acptr->user->realhost), + sizeof uhost); + + if (GetIP(acptr)) /* only if we actually have an IP */ + strlcpy(ihost, make_nick_user_host(acptr->name, + acptr->user->username, GetIP(acptr)), + sizeof ihost); + + /* The next could have been an IsSetHost(), but I'm playing it safe with regards to backward compat. */ + if (IsHidden(acptr) && + !(*acptr->user->cloakedhost && !strcasecmp(acptr->user->virthost, acptr->user->cloakedhost))) + { + strlcpy(vhost, make_nick_user_host(acptr->name, + acptr->user->username, acptr->user->virthost), + sizeof vhost); + } + + if (*acptr->user->cloakedhost) /* only if we know the cloaked host */ + strlcpy(chost, make_nick_user_host(acptr->name, + acptr->user->username, acptr->user->cloakedhost), + sizeof chost); + + /* SELECT BANLIST */ + + switch (chmode) + { + case 'b': + banlist = &chptr->banlist; + break; + case 'e': + banlist = &chptr->exlist; + break; + case 'I': + banlist = &chptr->invexlist; + break; + default: + abort(); + } + + /* DO THE ACTUAL WORK */ + + for (ban = *banlist; ban; ban = bnext) + { + bnext = ban->next; + if (!match(ban->banstr, uhost) || + (*vhost && !match(ban->banstr, vhost)) || + (*ihost && !match(ban->banstr, ihost)) || + (*chost && !match(ban->banstr, chost))) + { + add_send_mode_param(chptr, sptr, '-', chmode, + ban->banstr); + del_listmode(banlist, chptr, ban->banstr); + } + else if (chmode != 'I' && *ban->banstr == '~' && (extban = findmod_by_bantype(ban->banstr[1]))) + { + if (extban->options & EXTBOPT_CHSVSMODE) + { + if (extban->is_banned(acptr, chptr, ban->banstr, BANCHK_JOIN)) + { + add_send_mode_param(chptr, acptr, '-', chmode, ban->banstr); + del_listmode(banlist, chptr, ban->banstr); + } + } + } + } +} + +void clear_bans(aClient *sptr, aChannel *chptr, char chmode) +{ + Extban *extban; + Ban *ban, *bnext; + Ban **banlist; + + switch (chmode) + { + case 'b': + banlist = &chptr->banlist; + break; + case 'e': + banlist = &chptr->exlist; + break; + case 'I': + banlist = &chptr->invexlist; + break; + default: + abort(); + } + + for (ban = *banlist; ban; ban = bnext) + { + bnext = ban->next; + if (chmode != 'I' && (*ban->banstr == '~') && (extban = findmod_by_bantype(ban->banstr[1]))) + { + if (!(extban->options & EXTBOPT_CHSVSMODE)) + continue; + } + add_send_mode_param(chptr, sptr, '-', chmode, ban->banstr); + del_listmode(banlist, chptr, ban->banstr); + } +} + int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) { aChannel *chptr; @@ -197,8 +311,6 @@ int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) Extban *extban; Ban *ban, *bnext; if (parc >= i) { - char uhost[NICKLEN+USERLEN+HOSTLEN+6], vhost[NICKLEN+USERLEN+HOSTLEN+6]; - char ihost[NICKLEN+USERLEN+HOSTLEN+6]; if (!(acptr = find_person(parv[i-1], NULL))) { i++; break; @@ -209,53 +321,10 @@ int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) } i++; - strlcpy(uhost, make_nick_user_host(acptr->name, - acptr->user->username, acptr->user->realhost), - sizeof uhost); - strlcpy(vhost, make_nick_user_host(acptr->name, - acptr->user->username, GetHost(acptr)), - sizeof vhost); - strlcpy(ihost, make_nick_user_host(acptr->name, - acptr->user->username, GetIP(acptr)), - sizeof ihost); - ban = chptr->banlist; - while (ban) { - bnext = ban->next; - if (*ban->banstr == '~' && (extban = findmod_by_bantype(ban->banstr[1]))) - { - if (extban->options & EXTBOPT_CHSVSMODE) - { - if (extban->is_banned(acptr, chptr, ban->banstr, BANCHK_JOIN)) - { - add_send_mode_param(chptr, acptr, '-', 'b', ban->banstr); - del_listmode(&chptr->banlist, chptr, ban->banstr); - } - } - } - else if (!match(ban->banstr, uhost) || !match(ban->banstr, vhost) || !match(ban->banstr, ihost)) { - add_send_mode_param(chptr, sptr, '-', 'b', - ban->banstr); - del_listmode(&chptr->banlist, chptr, ban->banstr); - } - ban = bnext; - } + unban_user(sptr, chptr, acptr, 'b'); } else { - ban = chptr->banlist; - while (ban) { - bnext = ban->next; - if (*ban->banstr == '~' && (extban = findmod_by_bantype(ban->banstr[1]))) - { - if (!(extban->options & EXTBOPT_CHSVSMODE)) - { - ban = bnext; - continue; - } - } - add_send_mode_param(chptr, sptr, '-', 'b', ban->banstr); - del_listmode(&chptr->banlist, chptr, ban->banstr); - ban = bnext; - } + clear_bans(sptr, chptr, 'b'); } } break; @@ -263,8 +332,6 @@ int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) Extban *extban; Ban *ban, *bnext; if (parc >= i) { - char uhost[NICKLEN+USERLEN+HOSTLEN+6], vhost[NICKLEN+USERLEN+HOSTLEN+6]; - char ihost[NICKLEN+USERLEN+HOSTLEN+6]; if (!(acptr = find_person(parv[i-1], NULL))) { i++; break; @@ -275,62 +342,16 @@ int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) } i++; - strlcpy(uhost, make_nick_user_host(acptr->name, - acptr->user->username, acptr->user->realhost), - sizeof uhost); - strlcpy(vhost, make_nick_user_host(acptr->name, - acptr->user->username, GetHost(acptr)), - sizeof vhost); - strlcpy(ihost, make_nick_user_host(acptr->name, - acptr->user->username, GetIP(acptr)), - sizeof ihost); - - ban = chptr->exlist; - while (ban) { - bnext = ban->next; - if (*ban->banstr == '~' && (extban = findmod_by_bantype(ban->banstr[1]))) - { - if (extban->options & EXTBOPT_CHSVSMODE) - { - if (extban->is_banned(acptr, chptr, ban->banstr, BANCHK_JOIN)) - { - add_send_mode_param(chptr, acptr, '-', 'b', ban->banstr); - del_listmode(&chptr->exlist, chptr, ban->banstr); - } - } - } - else if (!match(ban->banstr, uhost) || !match(ban->banstr, vhost) || !match(ban->banstr, ihost)) { - add_send_mode_param(chptr, sptr, '-', 'e', - ban->banstr); - del_listmode(&chptr->exlist, chptr, ban->banstr); - } - ban = bnext; - } + unban_user(sptr, chptr, acptr, 'e'); } else { - ban = chptr->exlist; - while (ban) { - bnext = ban->next; - if (*ban->banstr == '~' && (extban = findmod_by_bantype(ban->banstr[1]))) - { - if (!(extban->options & EXTBOPT_CHSVSMODE)) - { - ban = bnext; - continue; - } - } - add_send_mode_param(chptr, sptr, '-', 'e', ban->banstr); - del_listmode(&chptr->exlist, chptr, ban->banstr); - ban = bnext; - } + clear_bans(sptr, chptr, 'e'); } } break; case 'I': { Ban *ban, *bnext; if (parc >= i) { - char uhost[NICKLEN+USERLEN+HOSTLEN+6], vhost[NICKLEN+USERLEN+HOSTLEN+6]; - char ihost[NICKLEN+USERLEN+HOSTLEN+6]; if (!(acptr = find_person(parv[i-1], NULL))) { i++; break; @@ -341,35 +362,10 @@ int channel_svsmode(aClient *cptr, aClient *sptr, int parc, char *parv[]) } i++; - strlcpy(uhost, make_nick_user_host(acptr->name, - acptr->user->username, acptr->user->realhost), - sizeof uhost); - strlcpy(vhost, make_nick_user_host(acptr->name, - acptr->user->username, GetHost(acptr)), - sizeof vhost); - strlcpy(ihost, make_nick_user_host(acptr->name, - acptr->user->username, GetIP(acptr)), - sizeof ihost); - - ban = chptr->invexlist; - while (ban) { - bnext = ban->next; - if (!match(ban->banstr, uhost) || !match(ban->banstr, vhost) || !match(ban->banstr, ihost)) { - add_send_mode_param(chptr, sptr, '-', 'I', - ban->banstr); - del_listmode(&chptr->invexlist, chptr, ban->banstr); - } - ban = bnext; - } + unban_user(sptr, chptr, acptr, 'I'); } else { - ban = chptr->invexlist; - while (ban) { - bnext = ban->next; - add_send_mode_param(chptr, sptr, '-', 'I', ban->banstr); - del_listmode(&chptr->invexlist, chptr, ban->banstr); - ban = bnext; - } + clear_bans(sptr, chptr, 'I'); } } break; @@ -510,6 +506,38 @@ char *xtok = show_change ? TOK_SVS2MODE : TOK_SVSMODE; acptr->user->servicestamp = strtoul(parv[3], NULL, 10); break; } + case 'x': + if (what == MODE_DEL) + { + /* -x */ + if (acptr->user->virthost) + { + /* Removing mode +x and virthost set... recalculate host then (but don't activate it!) */ + MyFree(acptr->user->virthost); + acptr->user->virthost = strdup(acptr->user->cloakedhost); + } + } else + { + /* +x */ + if (!acptr->user->virthost) + { + /* Hmm... +x but no virthost set, that's bad... use cloakedhost. + * Not sure if this could ever happen, but just in case... -- Syzop + */ + acptr->user->virthost = strdup(acptr->user->cloakedhost); + } + /* Announce the new host to VHP servers if we're setting the virthost to the cloakedhost. + * In other cases, we can assume that the host has been broadcasted already (after all, + * how else could it have been changed...?). + * NOTES: we're doing a strcasecmp here instead of simply checking if it's a "+x but + * not -t"-case. The reason for this is that the 't' might follow ("+xt" instead of "+tx"), + * in which case we would have needlessly announced it. Ok I didn't test it but that's + * the idea behind it :P. -- Syzop + */ + if (MyClient(acptr) && !strcasecmp(acptr->user->virthost, acptr->user->cloakedhost)) + sendto_serv_butone_token_opt(NULL, OPT_VHP, acptr->name, + MSG_SETHOST, TOK_SETHOST, "%s", acptr->user->virthost); + } default: setmodex: for (i = 0; i <= Usermode_highest; i++) diff --git a/src/modules/m_svsmotd.c b/src/modules/m_svsmotd.c index 31658d49e..1929cba7b 100644 --- a/src/modules/m_svsmotd.c +++ b/src/modules/m_svsmotd.c @@ -119,6 +119,8 @@ int m_svsmotd(aClient *cptr, aClient *sptr, int parc, char *parv[]) case '!': { remove(VPATH); + free_motd(svsmotd); + svsmotd = NULL; sendto_ops("Wiped out services motd data"); break; } diff --git a/src/modules/m_svsnick.c b/src/modules/m_svsnick.c index 4c4b1fc21..f0ba533be 100644 --- a/src/modules/m_svsnick.c +++ b/src/modules/m_svsnick.c @@ -91,6 +91,7 @@ DLLFUNC int MOD_UNLOAD(m_svsnick)(int module_unload) int m_svsnick(aClient *cptr, aClient *sptr, int parc, char *parv[]) { aClient *acptr; +aClient *ocptr; /* Other client */ if (!IsULine(sptr) || parc < 4 || (strlen(parv[2]) > NICKLEN)) return -1; /* This looks like an error anyway -Studded */ @@ -104,12 +105,16 @@ aClient *acptr; if (!(acptr = find_person(parv[1], NULL))) return 0; /* User not found, bail out */ - if (find_client(parv[2], NULL)) /* Collision */ - return exit_client(cptr, acptr, sptr, + if ((ocptr = find_client(parv[2], NULL)) && ocptr != acptr) /* Collision */ + { + exit_client(acptr, acptr, sptr, "Nickname collision due to Services enforced " "nickname change, your nick was overruled"); + return 0; + } - acptr->umodes &= ~UMODE_REGNICK; + if (acptr != ocptr) + acptr->umodes &= ~UMODE_REGNICK; acptr->lastnick = TS2ts(parv[3]); sendto_common_channels(acptr, ":%s NICK :%s", parv[1], parv[2]); add_history(acptr, 1); diff --git a/src/modules/m_svso.c b/src/modules/m_svso.c index d63fb9d41..8f75fa7bb 100644 --- a/src/modules/m_svso.c +++ b/src/modules/m_svso.c @@ -170,7 +170,7 @@ int m_svso(aClient *cptr, aClient *sptr, int parc, char *parv[]) delfrom_fdlist(acptr->slot, &oper_fdlist); acptr->umodes &= ~(UMODE_OPER | UMODE_LOCOP | UMODE_HELPOP |UMODE_SERVICES | - UMODE_SADMIN | UMODE_ADMIN); + UMODE_SADMIN | UMODE_ADMIN | UMODE_COADMIN); acptr->umodes &= ~(UMODE_NETADMIN | UMODE_WHOIS); acptr->umodes &= diff --git a/src/modules/m_tkl.c b/src/modules/m_tkl.c index 5950ed416..6fb57ad04 100644 --- a/src/modules/m_tkl.c +++ b/src/modules/m_tkl.c @@ -78,6 +78,7 @@ int _m_tkl(aClient *cptr, aClient *sptr, int parc, char *parv[]); int _place_host_ban(aClient *sptr, int action, char *reason, long duration); int _dospamfilter(aClient *sptr, char *str_in, int type, char *target, int flags, aTKline **rettk); int _dospamfilter_viruschan(aClient *sptr, aTKline *tk, int type); +void _spamfilter_build_user_string(char *buf, char *nick, aClient *acptr); extern MODVAR char zlinebuf[BUFSIZE]; extern MODVAR aTKline *tklines[TKLISTLEN]; @@ -131,6 +132,7 @@ DLLFUNC int MOD_TEST(m_tkl)(ModuleInfo *modinfo) EfunctionAdd(modinfo->handle, EFUNC_PLACE_HOST_BAN, _place_host_ban); EfunctionAdd(modinfo->handle, EFUNC_DOSPAMFILTER, _dospamfilter); EfunctionAdd(modinfo->handle, EFUNC_DOSPAMFILTER_VIRUSCHAN, _dospamfilter_viruschan); + EfunctionAddVoid(modinfo->handle, EFUNC_SPAMFILTER_BUILD_USER_STRING, _spamfilter_build_user_string); return MOD_SUCCESS; } @@ -1355,6 +1357,25 @@ int _find_shun(aClient *cptr) return 2; } +char *SpamfilterMagicHost(char *i) +{ +static char buf[256]; + + if (!strchr(i, ':')) + return i; + + /* otherwise, it's IPv6.. prepend it with [ and append a ] */ + ircsprintf(buf, "[%s]", i); + return buf; +} + +void _spamfilter_build_user_string(char *buf, char *nick, aClient *acptr) +{ + ircsprintf(buf, "%s!%s@%s:%s", + nick, acptr->user->username, SpamfilterMagicHost(acptr->user->realhost), acptr->info); +} + + /** Checks if the user matches a spamfilter of type 'u' (user, * nick!user@host:realname ban). * Written by: Syzop @@ -1368,8 +1389,7 @@ char spamfilter_user[NICKLEN + USERLEN + HOSTLEN + REALLEN + 64]; /* n!u@h:r */ if (IsAnOper(sptr)) return 0; - ircsprintf(spamfilter_user, "%s!%s@%s:%s", - sptr->name, sptr->user->username, sptr->user->realhost, sptr->info); + spamfilter_build_user_string(spamfilter_user, sptr->name, sptr); return dospamfilter(sptr, spamfilter_user, SPAMF_USER, NULL, flags, NULL); } @@ -1383,8 +1403,7 @@ aClient *acptr; for (i = LastSlot; i >= 0; i--) if ((acptr = local[i]) && MyClient(acptr)) { - ircsprintf(spamfilter_user, "%s!%s@%s:%s", - acptr->name, acptr->user->username, acptr->user->realhost, acptr->info); + spamfilter_build_user_string(spamfilter_user, acptr->name, acptr); if (regexec(&tk->ptr.spamf->expr, spamfilter_user, 0, NULL, 0)) continue; /* No match */ @@ -1415,8 +1434,7 @@ aClient *acptr; for (acptr = client; acptr; acptr = acptr->next) if (IsPerson(acptr)) { - ircsprintf(spamfilter_user, "%s!%s@%s:%s", - acptr->name, acptr->user->username, acptr->user->realhost, acptr->info); + spamfilter_build_user_string(spamfilter_user, acptr->name, acptr); if (regexec(&tk->ptr.spamf->expr, spamfilter_user, 0, NULL, 0)) continue; /* No match */ diff --git a/src/modules/m_topic.c b/src/modules/m_topic.c index 601740005..01ed095ac 100644 --- a/src/modules/m_topic.c +++ b/src/modules/m_topic.c @@ -146,7 +146,7 @@ long flags = 0; /* cache: membership flags */ if (parc > 2 || SecretChannel(chptr)) { if (!ismember && !IsServer(sptr) - && !IsOper(sptr) && !IsULine(sptr)) + && !OPCanSeeSecret(sptr) && !IsULine(sptr)) { sendto_one(sptr, err_str(ERR_NOTONCHANNEL), me.name, parv[0], name); diff --git a/src/modules/m_user.c b/src/modules/m_user.c index 49bf46d97..d0b9f4f1f 100644 --- a/src/modules/m_user.c +++ b/src/modules/m_user.c @@ -130,14 +130,14 @@ DLLFUNC CMD_FUNC(m_user) if (parc == 6 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[5])) ? "" : parv[5]; umodex = NULL; } else if (parc == 8 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[7])) ? "" : parv[7]; umodex = parv[5]; virthost = parv[6]; @@ -145,7 +145,7 @@ DLLFUNC CMD_FUNC(m_user) else if (parc == 9 && IsServer(cptr)) { if (isdigit(*parv[4])) - sstamp = atol(parv[4]); + sstamp = strtoul(parv[4], NULL, 10); realname = (BadPtr(parv[8])) ? "" : parv[8]; umodex = parv[5]; virthost = parv[6]; diff --git a/src/modules/m_who.c b/src/modules/m_who.c index 1761c7524..d2a47ac5f 100644 --- a/src/modules/m_who.c +++ b/src/modules/m_who.c @@ -796,7 +796,7 @@ static char *first_visible_channel(aClient *sptr, aClient *acptr, int *flg) cansee = 0; if (!cansee) { - if (IsAnOper(sptr)) + if (OPCanSeeSecret(sptr)) *flg |= FVC_HIDDEN; else continue; diff --git a/src/modules/m_whois.c b/src/modules/m_whois.c index 193ad5322..1135202f5 100644 --- a/src/modules/m_whois.c +++ b/src/modules/m_whois.c @@ -209,11 +209,7 @@ DLLFUNC int m_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]) showchannel = 0; if (ShowChannel(sptr, chptr)) showchannel = 1; -#ifndef SHOW_SECRET - if (IsAnOper(sptr) && !SecretChannel(chptr)) -#else - if (IsAnOper(sptr)) -#endif + if (OPCanSeeSecret(sptr)) showchannel = 1; if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr)) showchannel = 0; diff --git a/src/modules/webtv.c b/src/modules/webtv.c index c83024b25..00faf9c29 100644 --- a/src/modules/webtv.c +++ b/src/modules/webtv.c @@ -72,7 +72,7 @@ int webtv_parse(aClient *sptr, char *string) char *cmd = NULL, *s = NULL; int i, n; aMessage *message = webtv_cmds; - static char *para[16]; + static char *para[MAXPARA + 2]; if (!string || !*string) { @@ -103,8 +103,8 @@ int webtv_parse(aClient *sptr, char *string) s = strtok(NULL, ""); if (s) { - if (message->maxpara > 15) - message->maxpara = 15; + if (message->maxpara > MAXPARA) + message->maxpara = MAXPARA; /* paranoid ? ;p */ for (;;) { /* @@ -134,6 +134,8 @@ int webtv_parse(aClient *sptr, char *string) } para[++i] = NULL; + para[0] = sptr->name; + return (*message->func) (sptr->from, sptr, i, para); } @@ -145,20 +147,25 @@ int w_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]) aChannel *chptr; char *nick, *tmp, *name; char *p = NULL; - char buf[512]; - int found, len, mlen; + char buf[512], query[512]; + int found, len, mlen, cnt = 0; - if (parc < 2) + if ((parc < 2) || BadPtr(parv[1])) { sendto_one(sptr, ":IRC %s %s :Syntax error, correct is WHOIS ", MSG_PRIVATE, sptr->name); return 0; } - for (tmp = parv[1]; (nick = strtoken(&p, tmp, ",")); tmp = NULL) + strlcpy(query, parv[1], sizeof(query)); + + for (tmp = canonize(parv[1]); (nick = strtoken(&p, tmp, ",")); tmp = NULL) { int invis, showsecret = 0, showchannel, showperson, member, wilds; + if (++cnt > MAXTARGETS) + break; + found = 0; (void)collapse(nick); wilds = (index(nick, '?') || index(nick, '*')); @@ -214,7 +221,7 @@ int w_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]) if (!invis && HiddenChannel(chptr) && !SecretChannel(chptr)) showperson = 1; - else if (IsAnOper(sptr) && SecretChannel(chptr)) { + else if (OPCanSeeSecret(sptr) && SecretChannel(chptr)) { showperson = 1; showsecret = 1; } @@ -266,11 +273,7 @@ int w_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]) showchannel = 0; if (ShowChannel(sptr, chptr)) showchannel = 1; -#ifndef SHOW_SECRET - if (IsAnOper(sptr) && !SecretChannel(chptr)) -#else - if (IsAnOper(sptr)) -#endif + if (OPCanSeeSecret(sptr)) showchannel = 1; if ((acptr->umodes & UMODE_HIDEWHOIS) && !IsMember(sptr, chptr) && !IsAnOper(sptr)) showchannel = 0; @@ -402,11 +405,9 @@ int w_whois(aClient *cptr, aClient *sptr, int parc, char *parv[]) sendto_one(sptr, ":IRC PRIVMSG %s :%s - No such nick", sptr->name, nick); } - if (p) - p[-1] = ','; } sendto_one(sptr, ":IRC PRIVMSG %s :End of whois information for %s", - sptr->name, parv[1]); + sptr->name, query); return 0; } diff --git a/src/res.c b/src/res.c index 98633caab..a9ef3e5c7 100644 --- a/src/res.c +++ b/src/res.c @@ -42,6 +42,7 @@ #ifdef _WIN32 #include #endif +#include "inet.h" #include #include "h.h" @@ -79,6 +80,7 @@ void init_resolver(int firsttime) { struct ares_options options; int n; +int optmask; if (requests) abort(); /* should never happen */ @@ -89,23 +91,44 @@ int n; memset(&dnsstats, 0, sizeof(dnsstats)); } + memset(&options, 0, sizeof(options)); options.timeout = 3; options.tries = 2; - options.flags = ARES_FLAG_NOALIASES; -#ifdef _WIN32 - /* for windows, keep using the hosts file for now, until I'm sure it's safe to disable */ - n = ares_init_options(&resolver_channel, &options, ARES_OPT_TIMEOUT|ARES_OPT_TRIES|ARES_OPT_FLAGS); -#else - options.lookups = "b"; /* no hosts file shit plz */ - n = ares_init_options(&resolver_channel, &options, ARES_OPT_TIMEOUT|ARES_OPT_TRIES|ARES_OPT_FLAGS|ARES_OPT_LOOKUPS); + options.flags = ARES_FLAG_NOALIASES|ARES_FLAG_IGNTC; + optmask = ARES_OPT_TIMEOUT|ARES_OPT_TRIES|ARES_OPT_FLAGS; +#ifndef _WIN32 + /* on *NIX don't use the hosts file, since it causes countless useless reads. + * on Windows we use it for now, this could be changed in the future. + */ + options.lookups = "b"; + optmask |= ARES_OPT_LOOKUPS; #endif + n = ares_init_options(&resolver_channel, &options, optmask); if (n != ARES_SUCCESS) { - config_error("resolver: ares_init_options() failed with error code %d [%s]", n, ares_strerror(n)); + /* Try again with set::dns::nameserver block */ + optmask |= ARES_OPT_SERVERS; + options.servers = MyMallocEx(sizeof(struct in_addr)); + options.servers[0].s_addr = inet_addr(NAME_SERVER); + options.nservers = 1; + n = ares_init_options(&resolver_channel, &options, optmask); + if (n != ARES_SUCCESS) + { + /* FATAL */ + config_error("resolver: ares_init_options() failed with error code %d [%s]", n, ares_strerror(n)); #ifdef _WIN32 - win_error(); + win_error(); #endif - exit(-7); + exit(-7); + } + ircd_log(LOG_ERROR, "[warning] Unable to get DNS server from %s. Using the one from set::dns::nameserver (%s) instead", +#ifdef _WIN32 + "registry", +#else + "resolv.conf", +#endif + NAME_SERVER); + MyFree(options.servers); } } @@ -207,7 +230,6 @@ char ipv4[4]; #else r->ipv6 = 0; #endif - r->name = strdup(name); unrealdns_addreqtolist(r); /* Execute it */ @@ -242,6 +264,7 @@ char ipv6 = r->ipv6; newr = MyMallocEx(sizeof(DNSReq)); newr->cptr = acptr; newr->ipv6 = ipv6; + newr->name = strdup(he->h_name); unrealdns_addreqtolist(newr); #ifndef INET6 @@ -276,10 +299,8 @@ int i; struct hostent *he2; u_int32_t ipv4_addr; - unrealdns_freeandremovereq(r); - if (!acptr) - return; + goto bad; if ((status != 0) || #ifdef INET6 @@ -290,7 +311,7 @@ u_int32_t ipv4_addr; { /* Failed: error code, or data length is not 4 (nor 16) */ proceed_normal_client_handshake(acptr, NULL); - return; + goto bad; } if (!ipv6) @@ -322,21 +343,24 @@ u_int32_t ipv4_addr; { /* Failed name <-> IP mapping */ proceed_normal_client_handshake(acptr, NULL); - return; + goto bad; } - if (!verify_hostname(he->h_name)) + if (!verify_hostname(r->name)) { /* Hostname is bad, don't cache and consider unresolved */ proceed_normal_client_handshake(acptr, NULL); - return; + goto bad; } /* Entry was found, verified, and can be added to cache */ - unrealdns_addtocache(he->h_name, &acptr->ip, sizeof(acptr->ip)); + unrealdns_addtocache(r->name, &acptr->ip, sizeof(acptr->ip)); - he2 = unreal_create_hostent(he->h_name, &acptr->ip); + he2 = unreal_create_hostent(r->name, &acptr->ip); proceed_normal_client_handshake(acptr, he2); + +bad: + unrealdns_freeandremovereq(r); } void unrealdns_cb_nametoip_link(void *arg, int status, struct hostent *he) diff --git a/src/s_bsd.c b/src/s_bsd.c index 2068c83c4..0ade0b2a4 100644 --- a/src/s_bsd.c +++ b/src/s_bsd.c @@ -704,7 +704,7 @@ static int check_init(aClient *cptr, char *sockn, size_t size) } /* If descriptor is a tty, special checking... */ -#ifndef _WIN32 +#if defined(DEBUGMODE) && !defined(_WIN32) if (isatty(cptr->fd)) #else if (0) @@ -1203,7 +1203,7 @@ aClient *add_connection(aClient *cptr, int fd) * m_server and m_user instead. Also connection time out help to * get rid of unwanted connections. */ -#ifndef _WIN32 +#if defined(DEBUGMODE) && !defined(_WIN32) if (isatty(fd)) /* If descriptor is a tty, special checking... */ #else if (0) @@ -1356,7 +1356,7 @@ struct hostent *he; if (!DONT_RESOLVE) { - if (!acptr->serv) + if (SHOWCONNECTINFO && !acptr->serv) sendto_one(acptr, "%s", REPORT_DO_DNS); dns_special_flag = 1; he = unrealdns_doclient(acptr); diff --git a/src/s_conf.c b/src/s_conf.c index 47bddc2fa..651fe2a79 100644 --- a/src/s_conf.c +++ b/src/s_conf.c @@ -1534,6 +1534,7 @@ void config_setdefaultsettings(aConfiguration *i) i->timesynch_enabled = 1; i->timesynch_timeout = 3; i->timesynch_server = strdup("193.67.79.202,192.43.244.18,128.250.36.3"); /* nlnet (EU), NIST (US), uni melbourne (AU). All open acces, nonotify, nodns. */ + i->name_server = strdup("127.0.0.1"); /* default, especially needed for w2003+ in some rare cases */ } /* 1: needed for set::options::allow-part-if-shunned, @@ -2195,12 +2196,14 @@ int config_post_test() Error("set::kline-address is missing"); if (!settings.has_maxchannelsperuser) Error("set::maxchannelsperuser is missing"); +#if 0 if (!settings.has_dns_nameserver) Error("set::dns::nameserver is missing"); if (!settings.has_dns_timeout) Error("set::dns::timeout is missing"); if (!settings.has_dns_retries) Error("set::dns::retries is missing"); +#endif if (!settings.has_services_server) Error("set::services-server is missing"); if (!settings.has_default_server) @@ -3323,6 +3326,14 @@ int _test_oper(ConfigFile *conf, ConfigEntry *ce) /* oper::modes */ else if (!strcmp(cep->ce_varname, "modes")) { + char *p; + for (p = cep->ce_vardata; *p; p++) + if (strchr("oOaANCrzS", *p)) + { + config_error("%s:%i: oper::modes may not include mode '%c'", + cep->ce_fileptr->cf_filename, cep->ce_varlinenum, *p); + errors++; + } if (has_modes) { config_warn_duplicate(cep->ce_fileptr->cf_filename, @@ -3503,6 +3514,8 @@ int _conf_class(ConfigFile *conf, ConfigEntry *ce) } ircstrdup(class->name, ce->ce_vardata); + class->connfreq = 60; /* default */ + for (cep = ce->ce_entries; cep; cep = cep->ce_next) { if (!strcmp(cep->ce_varname, "pingfreq")) @@ -3845,9 +3858,9 @@ int _conf_tld(ConfigFile *conf, ConfigEntry *ce) ConfigEntry *cepp; for (cepp = cep->ce_entries; cepp; cepp = cepp->ce_next) { - if (!strcmp(cep->ce_varname, "ssl")) + if (!strcmp(cepp->ce_varname, "ssl")) ca->options |= TLD_SSL; - else if (!strcmp(cep->ce_varname, "remote")) + else if (!strcmp(cepp->ce_varname, "remote")) ca->options |= TLD_REMOTE; } } @@ -6656,6 +6669,9 @@ int _conf_set(ConfigFile *conf, ConfigEntry *ce) else if (!strcmp(cep->ce_varname, "check-target-nick-bans")) { tempiConf.check_target_nick_bans = config_checkval(cep->ce_vardata, CFG_YESNO); } + else if (!strcmp(cep->ce_varname, "pingpong-warning")) { + tempiConf.pingpong_warning = config_checkval(cep->ce_vardata, CFG_YESNO); + } else if (!strcmp(cep->ce_varname, "allow-userhost-change")) { if (!stricmp(cep->ce_vardata, "always")) tempiConf.userhost_allowed = UHALLOW_ALWAYS; @@ -7078,6 +7094,12 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce) else if (!strcmp(cep->ce_varname, "modes-on-connect")) { CheckNull(cep); CheckDuplicate(cep, modes_on_connect, "modes-on-connect"); + if (strchr(cep->ce_vardata, 'z')) + { + config_error("%s:%i: set::modes-on-connect may not have +z", + cep->ce_fileptr->cf_filename, cep->ce_varlinenum); + errors++; + } templong = (long) set_usermode(cep->ce_vardata); if (templong & UMODE_OPER) { @@ -7142,8 +7164,16 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce) } else if (!strcmp(cep->ce_varname, "modes-on-oper")) { + char *p; CheckNull(cep); CheckDuplicate(cep, modes_on_oper, "modes-on-oper"); + for (p = cep->ce_vardata; *p; p++) + if (strchr("oOaANCrzS", *p)) + { + config_error("%s:%i: set::modes-on-oper may not include mode '%c'", + cep->ce_fileptr->cf_filename, cep->ce_varlinenum, *p); + errors++; + } templong = (long) set_usermode(cep->ce_vardata); } else if (!strcmp(cep->ce_varname, "snomask-on-oper")) { @@ -7190,6 +7220,10 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce) CheckNull(cep); CheckDuplicate(cep, check_target_nick_bans, "check-target-nick-bans"); } + else if (!strcmp(cep->ce_varname, "pingpong-warning")) { + CheckNull(cep); + CheckDuplicate(cep, pingpong_warning, "pingpong-warning"); + } else if (!strcmp(cep->ce_varname, "channel-command-prefix")) { CheckNull(cep); CheckDuplicate(cep, channel_command_prefix, "channel-command-prefix"); @@ -7372,7 +7406,7 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce) } else if (!strcmp(cepp->ce_varname, "bind-ip")) { struct in_addr in; - CheckDuplicate(cepp, dns_retries, "dns::bind-ip"); + CheckDuplicate(cepp, dns_bind_ip, "dns::bind-ip"); if (strcmp(cepp->ce_vardata, "*")) { in.s_addr = inet_addr(cepp->ce_vardata); @@ -8177,7 +8211,7 @@ int _conf_alias(ConfigFile *conf, ConfigEntry *ce) del_Command(ce->ce_vardata, NULL, cmptr->func); if (find_Command_simple(ce->ce_vardata)) { - config_warn("%s:%i: Alias '%s' would conflict with command '%s', alias not added.", + config_warn("%s:%i: Alias '%s' would conflict with command (or server token) '%s', alias not added.", ce->ce_fileptr->cf_filename, ce->ce_varlinenum, ce->ce_vardata, ce->ce_vardata); return 0; diff --git a/src/s_misc.c b/src/s_misc.c index c018bf446..a75a77aa6 100644 --- a/src/s_misc.c +++ b/src/s_misc.c @@ -1136,3 +1136,35 @@ char *getcloak(aClient *sptr) return sptr->user->cloakedhost; } + +/** Kicks all insecure users on a +z channel */ +void kick_insecure_users(aChannel *chptr) +{ + Member *member, *mb2; + aClient *cptr; + char *comment = "Insecure user not allowed on secure channel (+z)"; + + for (member = chptr->members; member; member = mb2) + { + mb2 = member->next; + cptr = member->cptr; + if (MyClient(cptr) && !IsSecureConnect(cptr) && !IsULine(cptr)) + { + RunHook5(HOOKTYPE_LOCAL_KICK, &me, &me, cptr, chptr, comment); + + if ((chptr->mode.mode & MODE_AUDITORIUM) && is_chanownprotop(cptr, chptr)) + { + sendto_chanops_butone(cptr, chptr, ":%s KICK %s %s :%s", me.name, chptr->chname, cptr->name, comment); + sendto_prefix_one(cptr, &me, ":%s KICK %s %s :%s", me.name, chptr->chname, cptr->name, comment); + } + else + { + sendto_channel_butserv(chptr, &me, ":%s KICK %s %s :%s", me.name, chptr->chname, cptr->name, comment); + } + + sendto_serv_butone_token(&me, me.name, MSG_KICK, TOK_KICK, "%s %s :%s", chptr->chname, cptr->name, comment); + + remove_user_from_channel(cptr, chptr); + } + } +} diff --git a/src/s_serv.c b/src/s_serv.c index e99c5c976..fd1ba8aa8 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -257,9 +257,9 @@ void m_info_send(aClient *sptr) sendto_one(sptr, ":%s %d %s :|", me.name, RPL_INFO, sptr->name); sendto_one(sptr, ":%s %d %s :| This is an UnrealIRCD-style server", me.name, RPL_INFO, sptr->name); - sendto_one(sptr, ":%s %d %s :| If you find any bugs, please mail", + sendto_one(sptr, ":%s %d %s :| If you find any bugs, please report them at:", me.name, RPL_INFO, sptr->name); - sendto_one(sptr, ":%s %d %s :| bugs@lists.unrealircd.org", + sendto_one(sptr, ":%s %d %s :| http://bugs.unrealircd.org/", me.name, RPL_INFO, sptr->name); sendto_one(sptr, @@ -672,6 +672,16 @@ CMD_FUNC(m_rehash) reinit_resolver(sptr); return 0; } + if (!_match("-ssl*", parv[1])) + { +#ifdef USE_SSL + extern void reinit_ssl(aClient *); + reinit_ssl(sptr); +#else + sendnotice(sptr, "SSL is not enabled on this server"); +#endif + return 0; + } if (!_match("-o*motd", parv[1])) { sendto_ops @@ -997,6 +1007,18 @@ aMotd *read_file(char *filename, aMotd **list) return read_file_ex(filename, list, NULL); } +void free_motd(aMotd *m) +{ +aMotd *next; + + for (; m; m = next) + { + next = m->next; + MyFree(m->line); + MyFree(m); + } +} + /** Read motd-like file, used for rules/motd/botmotd/opermotd/etc. * @param filename Filename of file to read. * @param list Reference to motd pointer (used for freeing if needed, NULL allowed) @@ -1017,13 +1039,8 @@ aMotd *read_file_ex(char *filename, aMotd **list, struct tm *t) if (list) { - while (*list) - { - old = (*list)->next; - MyFree((*list)->line); - MyFree(*list); - *list = old; - } + free_motd(*list); + *list = NULL; } if (t) diff --git a/src/s_user.c b/src/s_user.c index 65f5e09ad..dfba268d1 100644 --- a/src/s_user.c +++ b/src/s_user.c @@ -838,3 +838,4 @@ int add_silence(aClient *sptr, char *mask, int senderr) sptr->user->silence = lp; return 0; } + diff --git a/src/ssl.c b/src/ssl.c index 6f40920f8..9919e53fd 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -54,27 +54,25 @@ typedef struct { #define CHK_SSL(err) if ((err)==-1) { ERR_print_errors_fp(stderr); } #ifdef _WIN32 -static StreamIO *streamp; LRESULT SSLPassDLG(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam) { - StreamIO *stream; + static StreamIO *stream; switch (Message) { case WM_INITDIALOG: + stream = (StreamIO*)lParam; return TRUE; case WM_COMMAND: - stream = (StreamIO *)streamp; if (LOWORD(wParam) == IDCANCEL) { *stream->buffer = NULL; - EndDialog(hDlg, TRUE); + EndDialog(hDlg, IDCANCEL); } else if (LOWORD(wParam) == IDOK) { GetDlgItemText(hDlg, IDC_PASS, *stream->buffer, *stream->size); - EndDialog(hDlg, TRUE); + EndDialog(hDlg, IDOK); } return FALSE; case WM_CLOSE: - if (stream) - *stream->buffer = NULL; - EndDialog(hDlg, TRUE); + *stream->buffer = NULL; + EndDialog(hDlg, IDCANCEL); default: return FALSE; } @@ -140,8 +138,7 @@ int ssl_pem_passwd_cb(char *buf, int size, int rwflag, void *password) pass = passbuf; stream.buffer = &pass; stream.size = &passsize; - streamp = &stream; - DialogBoxParam(hInst, "SSLPass", hwIRCDWnd, (DLGPROC)SSLPassDLG, (LPARAM)NULL); + DialogBoxParam(hInst, "SSLPass", hwIRCDWnd, (DLGPROC)SSLPassDLG, (LPARAM)&stream); #endif if (pass) { @@ -174,14 +171,27 @@ static int ssl_verify_callback(int preverify_ok, X509_STORE_CTX *ctx) return 1; } - -void init_ctx_server(void) +static void mylog(char *fmt, ...) { +va_list vl; +static char buf[2048]; + + va_start(vl, fmt); + ircvsprintf(buf, fmt, vl); + va_end(vl); + sendto_realops("[SSL rehash] %s", buf); + ircd_log(LOG_ERROR, "%s", buf); +} + +SSL_CTX *init_ctx_server(void) +{ +SSL_CTX *ctx_server; + ctx_server = SSL_CTX_new(SSLv23_server_method()); if (!ctx_server) { - ircd_log(LOG_ERROR, "Failed to do SSL CTX new"); - exit(2); + mylog("Failed to do SSL CTX new"); + return NULL; } SSL_CTX_set_default_passwd_cb(ctx_server, ssl_pem_passwd_cb); SSL_CTX_set_options(ctx_server, SSL_OP_NO_SSLv2); @@ -191,57 +201,67 @@ void init_ctx_server(void) if (SSL_CTX_use_certificate_chain_file(ctx_server, SSL_SERVER_CERT_PEM) <= 0) { - ircd_log(LOG_ERROR, "Failed to load SSL certificate %s", SSL_SERVER_CERT_PEM); - exit(3); + mylog("Failed to load SSL certificate %s", SSL_SERVER_CERT_PEM); + goto fail; } if (SSL_CTX_use_PrivateKey_file(ctx_server, SSL_SERVER_KEY_PEM, SSL_FILETYPE_PEM) <= 0) { - ircd_log(LOG_ERROR, "Failed to load SSL private key %s", SSL_SERVER_KEY_PEM); - exit(4); + mylog("Failed to load SSL private key %s", SSL_SERVER_KEY_PEM); + goto fail; } if (!SSL_CTX_check_private_key(ctx_server)) { - ircd_log(LOG_ERROR, "Failed to check SSL private key"); - exit(5); + mylog("Failed to check SSL private key"); + goto fail; } if (iConf.trusted_ca_file) { if (!SSL_CTX_load_verify_locations(ctx_server, iConf.trusted_ca_file, NULL)) { - ircd_log(LOG_ERROR, "Failed to load Trusted CA's from %s", iConf.trusted_ca_file); - exit(6); + mylog("Failed to load Trusted CA's from %s", iConf.trusted_ca_file); + goto fail; } } + return ctx_server; +fail: + SSL_CTX_free(ctx_server); + return NULL; } -void init_ctx_client(void) +SSL_CTX *init_ctx_client(void) { +SSL_CTX *ctx_client; + ctx_client = SSL_CTX_new(SSLv3_client_method()); if (!ctx_client) { - ircd_log(LOG_ERROR, "Failed to do SSL CTX new client"); - exit(2); + mylog("Failed to do SSL CTX new client"); + return NULL; } SSL_CTX_set_default_passwd_cb(ctx_client, ssl_pem_passwd_cb); SSL_CTX_set_session_cache_mode(ctx_client, SSL_SESS_CACHE_OFF); if (SSL_CTX_use_certificate_file(ctx_client, SSL_SERVER_CERT_PEM, SSL_FILETYPE_PEM) <= 0) { - ircd_log(LOG_ERROR, "Failed to load SSL certificate %s (client)", SSL_SERVER_CERT_PEM); - exit(3); + mylog("Failed to load SSL certificate %s (client)", SSL_SERVER_CERT_PEM); + goto fail; } if (SSL_CTX_use_PrivateKey_file(ctx_client, SSL_SERVER_KEY_PEM, SSL_FILETYPE_PEM) <= 0) { - ircd_log(LOG_ERROR, "Failed to load SSL private key %s (client)", SSL_SERVER_KEY_PEM); - exit(4); + mylog("Failed to load SSL private key %s (client)", SSL_SERVER_KEY_PEM); + goto fail; } if (!SSL_CTX_check_private_key(ctx_client)) { - ircd_log(LOG_ERROR, "Failed to check SSL private key (client)"); - exit(5); + mylog("Failed to check SSL private key (client)"); + goto fail; } + return ctx_client; +fail: + SSL_CTX_free(ctx_client); + return NULL; } void init_ssl(void) @@ -261,8 +281,46 @@ void init_ssl(void) #endif RAND_egd(EGD_PATH); } - init_ctx_server(); - init_ctx_client(); + ctx_server = init_ctx_server(); + if (!ctx_server) + exit(7); + ctx_client = init_ctx_client(); + if (!ctx_client) + exit(8); +} + +void reinit_ssl(aClient *acptr) +{ +SSL_CTX *tmp; + + if (IsPerson(acptr)) + mylog("%s (%s@%s) requested a reload of all SSL related data (/rehash -ssl)", + acptr->name, acptr->user->username, acptr->user->realhost); + else + mylog("%s requested a reload of all SSL related data (/rehash -ssl)", + acptr->name); + + tmp = init_ctx_server(); + if (!tmp) + { + mylog("SSL Reload failed."); + return; + } + /* free and do it for real */ + SSL_CTX_free(tmp); + SSL_CTX_free(ctx_server); + ctx_server = init_ctx_server(); + + tmp = init_ctx_client(); + if (!tmp) + { + mylog("SSL Reload partially failed. Server context is reloaded, client context failed"); + return; + } + /* free and do it for real */ + SSL_CTX_free(tmp); + SSL_CTX_free(ctx_client); + ctx_client = init_ctx_client(); } #define CHK_NULL(x) if ((x)==NULL) {\ @@ -580,6 +638,13 @@ static int fatal_ssl_error(int ssl_error, int where, aClient *sptr) break; case SSL_ERROR_SYSCALL: ssl_errstr = "Underlying syscall error"; + /* TODO: then show the REAL socktet error instead... + * unfortunately that means we need to have the 'untouched errno', + * which is not always present since our function is not always + * called directly after a failure. Hence, we should add a new + * parameter to fatal_ssl_error which is called errno, and use + * that here... Something for 3.2.7 ;) -- Syzop + */ break; case SSL_ERROR_ZERO_RETURN: ssl_errstr = "Underlying socket operation returned zero"; @@ -599,6 +664,27 @@ static int fatal_ssl_error(int ssl_error, int where, aClient *sptr) sptr->flags |= FLAGS_DEADSOCKET; sendto_snomask(SNO_JUNK, "Exiting ssl client %s: %s: %s", get_client_name(sptr, TRUE), ssl_func, ssl_errstr); + + if (where == SAFE_SSL_CONNECT) + { + char *myerr = ssl_errstr; + if (ssl_error == SSL_ERROR_SYSCALL) + myerr = STRERROR(errtmp); + /* sendto_failops_whoare_opers("Closing link: SSL_connect(): %s - %s", myerr, get_client_name(sptr, FALSE)); */ + sendto_umode(UMODE_OPER, "Lost connection to %s: %s: %s", + get_client_name(sptr, FALSE), ssl_func, myerr); + } else + if ((IsServer(sptr) || (sptr->serv && sptr->serv->conf)) && (where != SAFE_SSL_WRITE)) + { + /* if server (either judged by IsServer() or clearly an outgoing connect), + * and not writing (since otherwise deliver_it will take care of the error), THEN + * send a closing link error... + */ + sendto_umode(UMODE_OPER, "Lost connection to %s: %s: %s", + get_client_name(sptr, FALSE), ssl_func, ssl_errstr); + /* sendto_failops_whoare_opers("Closing link: %s: %s - %s", ssl_func, ssl_errstr, get_client_name(sptr, FALSE)); */ + } + if (errtmp) { SET_ERRNO(errtmp); diff --git a/src/support.c b/src/support.c index 5e684f232..f4bcba14b 100644 --- a/src/support.c +++ b/src/support.c @@ -1675,6 +1675,17 @@ void *MyMallocEx(size_t size) return (p); } +int file_exists(char* file) +{ + FILE *fd; + fd = fopen(file, "r"); + if (!fd) + { + return 0; + } + return 1; +} + /* Returns a unique filename in the specified directory * using the specified suffix. The returned value will * be of the form /. @@ -1766,7 +1777,10 @@ int unreal_copyfile(char *src, char *dest) #endif if (srcfd < 0) + { + config_error("Unable to open file '%s': %s", src, strerror(errno)); return 0; + } #ifndef _WIN32 destfd = open(dest, O_WRONLY|O_CREAT, DEFAULT_PERMISSIONS); @@ -1814,7 +1828,7 @@ int unreal_copyfileex(char *src, char *dest, int tryhardlink) #ifndef _WIN32 /* Try a hardlink first... */ if (tryhardlink && !link(src, dest)) - return 0; /* success */ + return 1; /* success */ #endif return unreal_copyfile(src, dest); } diff --git a/src/version.c.SH b/src/version.c.SH index 38d7e3e9d..bcf75be7e 100644 --- a/src/version.c.SH +++ b/src/version.c.SH @@ -113,6 +113,9 @@ char *unrealcredits[] = "LFS - www.linuxfromscratch.org, The_devil - chat.snyggast.se,", "Stephen - dirac.betas-online.com, NationWars - www.nationwars.com", "SurrealChat.net - www.surrealchat.net, NamesDir - www.namesdir.com", + "Muisje - www.elitez0r.com, Jaya Sri - www.krisna.cc", + "DiabloClone.Org - irc.diabloclone.org, RisingNet - www.RisingNet.net", + "DCloneIRC.net - irc.dcloneirc.net, L.E.-Nation - irc.le-nation.de", "=-=-=-=-=-=-=-=-=-=-=-=-=-=-[Hosting]=-=-=-=-=-=-=-=-=-=-=-=-=-=-=", "Phil Veale - email@phillipveale.com - http://www.tiefighter.org", "- Donating webhosting for the project amongst other things", diff --git a/src/win32/areslib.lib b/src/win32/areslib.lib index c8d45cd9c..ebc8d1589 100644 Binary files a/src/win32/areslib.lib and b/src/win32/areslib.lib differ diff --git a/src/win32/debug.c b/src/win32/debug.c index d24130088..72ebaeff2 100644 --- a/src/win32/debug.c +++ b/src/win32/debug.c @@ -286,10 +286,21 @@ LONG __stdcall ExceptionFilter(EXCEPTION_POINTERS *e) { FILE *fd = fopen("service.log", "a"); - fprintf(fd, "UnrealIRCd has encountered a fatal error. Debugging information " - "has been dumped to wircd.%d.core, please email this file to " - "coders@lists.unrealircd.org.", getpid()); - fclose(fd); + if (fd) + { + fprintf(fd, "UnrealIRCd has encountered a fatal error. Debugging information " + "has been dumped to wircd.%d.core, please email this file to " + "coders@lists.unrealircd.org.", getpid()); + fclose(fd); + } +#ifdef _DEBUG + else + { + OutputDebugString("UnrealIRCd has encountered a fatal error. Debugging information " + "has been dumped to wircd.%d.core, please email this file to " + "coders@lists.unrealircd.org.", getpid()); + } +#endif } CleanUp(); return EXCEPTION_EXECUTE_HANDLER; diff --git a/src/win32/gui.c b/src/win32/gui.c index 22e2ff7e6..27b1387da 100644 --- a/src/win32/gui.c +++ b/src/win32/gui.c @@ -1047,8 +1047,17 @@ void win_log(unsigned char *format, ...) else { FILE *fd = fopen("service.log", "a"); - fprintf(fd, "%s\n", buf); - fclose(fd); + if (fd) + { + fprintf(fd, "%s\n", buf); + fclose(fd); + } +#ifdef _DEBUG + else + { + OutputDebugString(buf); + } +#endif } va_end(ap); } diff --git a/src/win32/unrealinst.iss b/src/win32/unrealinst.iss index 7622ee987..f1f5f17de 100644 --- a/src/win32/unrealinst.iss +++ b/src/win32/unrealinst.iss @@ -11,7 +11,7 @@ [Setup] AppName=UnrealIRCd -AppVerName=UnrealIRCd3.2.5 +AppVerName=UnrealIRCd3.2.6 AppPublisher=UnrealIRCd Team AppPublisherURL=http://www.unrealircd.com AppSupportURL=http://www.unrealircd.com diff --git a/unreal.in b/unreal.in index f9342cc3d..cc39452d1 100644 --- a/unreal.in +++ b/unreal.in @@ -10,7 +10,7 @@ if [ "$1" = "start" ] ; then @BINDIR@ sleep 1 if [ ! -r $PID_FILE ] ; then - echo "Possible error encountered (IRCd seemily not started)" + echo "Possible error encountered (IRCd seemingly not started)" echo "=====================================================" echo "Check above for possible errors, and this output of " echo "ircd.log. If you cannot solve the problem, read"