mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-24 10:36:38 +02:00
Compare commits
296 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b1aae19ed5 | |||
| f31a55eaaa | |||
| ce27d8d8ed | |||
| 25af5338e3 | |||
| 1e7391b9ba | |||
| 91e5639a77 | |||
| fb629bd489 | |||
| f72a982a82 | |||
| 059605c341 | |||
| 07ad68e3d4 | |||
| 0fa129325e | |||
| 46314dc3bb | |||
| 78f1540ec5 | |||
| b7e579df89 | |||
| 1f9f12660a | |||
| af0e823116 | |||
| 18c617bb35 | |||
| 3b25ba5aed | |||
| 506870ec86 | |||
| 82781bc3a9 | |||
| 0602bf1991 | |||
| 7eae9f8ffd | |||
| 53616c9ec5 | |||
| 37a6cf430b | |||
| 9ca203c1c6 | |||
| ea2caffdf1 | |||
| 9ccf8250fc | |||
| 976a6eb116 | |||
| 61f94bd6d8 | |||
| 082b9c58db | |||
| d2a544bc17 | |||
| 2df6ad48be | |||
| 625483821a | |||
| 7186af38f0 | |||
| 4a7c15b6b0 | |||
| 4c8c5da383 | |||
| 5cbcd7be86 | |||
| c3538b357b | |||
| 64c347f828 | |||
| 32fff791bd | |||
| 26dc7cbb31 | |||
| 1e3e46d4de | |||
| a1bdaa440d | |||
| 49b34a6cab | |||
| 0fa5dec7d7 | |||
| b16af31e83 | |||
| 6bf05cee61 | |||
| 50de952e0b | |||
| 49b2d6d832 | |||
| 859fb60904 | |||
| 2f758a59ac | |||
| 74346e4b40 | |||
| 5adf4d7e5b | |||
| 0a67350cd0 | |||
| 0f0767d4de | |||
| 8d7b9fca49 | |||
| 00fd88ff0c | |||
| f17eca1154 | |||
| 41019fb446 | |||
| 4b2a9d125a | |||
| bb545c7cbe | |||
| 297c176886 | |||
| dd18157ad0 | |||
| 78b9966a5c | |||
| 7acc5aac6e | |||
| 870eb8710f | |||
| 3091752196 | |||
| 5d9cb664b7 | |||
| 19a8b15b01 | |||
| 47ab99a833 | |||
| 9bb05733c8 | |||
| d5d6ace2e1 | |||
| b7bd436b7f | |||
| f011199ea5 | |||
| 2b2308dcdc | |||
| d8645f710d | |||
| 50afecfaa7 | |||
| f18b7e8df1 | |||
| 167a83f7d2 | |||
| 3c423d31d2 | |||
| 3fd9fc9846 | |||
| a06a748214 | |||
| 3e19dc1a8b | |||
| 60c880834b | |||
| b5bcf6605e | |||
| ccab872222 | |||
| 193b044615 | |||
| 268373635a | |||
| 0362f9c765 | |||
| ff5e6a1a0c | |||
| f0167d1284 | |||
| 7530ce6b29 | |||
| 77ccd6b9dd | |||
| 780a9c4878 | |||
| 1a3175f4e7 | |||
| 6d93e605f3 | |||
| 939b8797e4 | |||
| ee775f3e2e | |||
| 9b296df76c | |||
| c2d75396da | |||
| b1a396ad2b | |||
| c5866e2a80 | |||
| cdd354c306 | |||
| d262f6f5e3 | |||
| 97e3d6a2ce | |||
| 9157912636 | |||
| 86287db434 | |||
| 04820fda45 | |||
| 42cb9fc22a | |||
| 70e06587f9 | |||
| 614d980596 | |||
| 4c93c3d197 | |||
| 85db29488f | |||
| 0178632529 | |||
| 9774805c00 | |||
| 8589555273 | |||
| 08d55f0d5e | |||
| bd865e7a65 | |||
| 537e104611 | |||
| 5d25b1b0d5 | |||
| ee4708774a | |||
| be4e63ac89 | |||
| 139b5e9831 | |||
| 7da12ba3bb | |||
| a831052f22 | |||
| f412e7434f | |||
| 3c6f3bd029 | |||
| 2cc9482e18 | |||
| 87f52e5939 | |||
| f964828434 | |||
| e7b18e80c9 | |||
| 6fc134c919 | |||
| 5752aae6d6 | |||
| fda25d1632 | |||
| 660433ac35 | |||
| 2b7915bfa7 | |||
| 3d9359608e | |||
| 0e39a183c7 | |||
| 963872b401 | |||
| 734c3c8cdc | |||
| 5a27a51a42 | |||
| d66a4dc14b | |||
| 65b56f0b55 | |||
| 8db9f96bb0 | |||
| f70a201715 | |||
| 3fdaf585a0 | |||
| 4c30008313 | |||
| 451dca4522 | |||
| b600dffdc8 | |||
| 55a15008f4 | |||
| 317daa7b79 | |||
| eb12f79ba3 | |||
| 96eb692cc6 | |||
| f1c5f88539 | |||
| e81cf14707 | |||
| 906814a31d | |||
| 3e9d300086 | |||
| 2c4c190c39 | |||
| 7fb0fa1620 | |||
| aa15c4bfe7 | |||
| f38e3382cc | |||
| 3f84b46420 | |||
| a292196590 | |||
| 2429ad557b | |||
| 1418ea873b | |||
| 74d519323f | |||
| b8a13305d3 | |||
| 97909a4ac0 | |||
| 9e03c16e3a | |||
| d57f3c63cc | |||
| 14315463d1 | |||
| 2d01d8a942 | |||
| c279572f22 | |||
| 91ed924134 | |||
| 15667266ab | |||
| 8b8490feb7 | |||
| 1f8ba91b69 | |||
| eb392387e7 | |||
| 1eb1d1da5f | |||
| 3d8fd3f4be | |||
| 982803a6b8 | |||
| 4207b5e60f | |||
| d439c8906b | |||
| 5360e2ffa5 | |||
| 9d6e386f97 | |||
| 3f3b8975e0 | |||
| aa206f667f | |||
| 00ce957812 | |||
| 2570955e4a | |||
| adcb462788 | |||
| 3563c26a93 | |||
| 309dac4f2b | |||
| 3271ec3a23 | |||
| 3d728f5f2e | |||
| 374b79c084 | |||
| ad2c969084 | |||
| edcadc6c58 | |||
| 3ada59bc60 | |||
| 46372dc475 | |||
| a8000c2efb | |||
| 04b68513f8 | |||
| 40004ef1b3 | |||
| 66b3a7fe6b | |||
| e88b6477bd | |||
| 61610fe763 | |||
| 1e152a07c0 | |||
| e40164dcf4 | |||
| bfdc7bae73 | |||
| 56c263269c | |||
| aa5fe1514d | |||
| d4d5d46822 | |||
| 24f2f3b17e | |||
| 72b36e893b | |||
| 4640b4c9ca | |||
| 1a76eb59e5 | |||
| 245dea0a70 | |||
| d1ad60990f | |||
| 8dd4160c78 | |||
| 722064b6f7 | |||
| 02ae61dd29 | |||
| 5dd1454489 | |||
| 9c12b0e896 | |||
| 719c0f73ae | |||
| c46024fa2d | |||
| 2e2eea8146 | |||
| 42a30007e7 | |||
| 61a94fb5bd | |||
| 7ad515fb38 | |||
| 60bad142e0 | |||
| c597c90f4a | |||
| b9137af15c | |||
| 2df00337d4 | |||
| d530dbd43d | |||
| 2b0d66498d | |||
| d8a6b6e512 | |||
| acc011337a | |||
| d9e83f70e3 | |||
| 1adc59893d | |||
| 9ae963e1fe | |||
| 23516d8e99 | |||
| 9ed1e4fa02 | |||
| 82f9cf54bb | |||
| 83527ba76d | |||
| 3b6bbdc038 | |||
| c1af7ca274 | |||
| d512f79a6a | |||
| d272d2d6a0 | |||
| e8244902f8 | |||
| 316828edf8 | |||
| aa0af2ddd2 | |||
| 0e4d604c04 | |||
| 5a57a8f496 | |||
| 2ffa9a174f | |||
| 0ff0b04a56 | |||
| 9299b781f6 | |||
| b753c28bec | |||
| cc5e2bc414 | |||
| ad81d0b049 | |||
| 5298c36d64 | |||
| 095a52e630 | |||
| 6ab9d06a6c | |||
| d19bce6c42 | |||
| 9b3e65c6e7 | |||
| 879d32064c | |||
| deb00ef4ef | |||
| e1574bf1e3 | |||
| 4008e3745f | |||
| ee447742c8 | |||
| 618da4ab5e | |||
| df6e300ecd | |||
| aa6ed2085f | |||
| 24e14eb26f | |||
| 087b306429 | |||
| 1157b77e5e | |||
| 59fbe14175 | |||
| 4d9482c92b | |||
| 371ae17e1c | |||
| f8fbe5e4f0 | |||
| 2cbb7a4a00 | |||
| 8e72ba376b | |||
| cb8e31af86 | |||
| 7ddb51c09f | |||
| 5eb7e9eead | |||
| 80806af8bd | |||
| ceba1d07c6 | |||
| 143858cc5b | |||
| 08871c1e6a | |||
| 1470edd1f7 | |||
| c92df824a5 | |||
| 8ef4e93bc1 | |||
| 57fcb26be2 | |||
| 5dda9cb79d | |||
| 3fe7955615 | |||
| f72574ae22 | |||
| 29b319cb99 | |||
| 10d8bd7ba8 |
+1
-1
@@ -7,7 +7,7 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for Unreal3.2.9-RC1
|
||||
for Unreal3.2.10.7
|
||||
|
||||
This program will help you to compile your IRC server, and ask you
|
||||
questions regarding the compile-time settings of it during the process.
|
||||
|
||||
+149
-100
@@ -1,115 +1,164 @@
|
||||
Unreal3.2.9-RC1 Release Notes
|
||||
============================
|
||||
Unreal3.2.10.7 Release Notes
|
||||
=============================
|
||||
|
||||
==[ UNREALIRCD 3.2.X IS DEPRECATED ]==
|
||||
You are currently viewing the release notes of UnrealIRCd 3.2.10.7.
|
||||
UnrealIRCd 3.2.* will no longer be supported after December 31, 2016.
|
||||
You should upgrade to UnrealIRCd 4 before that date.
|
||||
See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||
first, before doing 'make'
|
||||
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIRCd/faq/
|
||||
- If you are upgrading on *NIX, then make sure you run 'make clean' and
|
||||
'./Config' first, before running 'make'.
|
||||
- The official UnrealIRCd 3.2.x documentation is available online at
|
||||
https://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
FAQ: https://www.vulnscan.org/UnrealIRCd/faq/
|
||||
Read them before asking for help.
|
||||
- Report bugs at http://bugs.unrealircd.org/
|
||||
- When upgrading a network, we assume you are upgrading from the previous
|
||||
version (3.2.8/3.2.8.1). Upgrading from 3.2.6 or 3.2.7 should also be no problem.
|
||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a SUMMARY
|
||||
of the changes in this release. There have been 160+ changes, twice as much
|
||||
as usual for a release, hence this summary is a bit long too.
|
||||
For the FULL list of changes, see the Changelog.
|
||||
- Report bugs at https://bugs.unrealircd.org/
|
||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a
|
||||
SUMMARY of the changes in this release. See the file 'Changes' for a
|
||||
complete list of all changes.
|
||||
|
||||
==[ .7 RELEASE ]==
|
||||
The following issue was fixed in 3.2.10.7:
|
||||
- Fix SASL EXTERNAL security issue
|
||||
|
||||
==[ .6 RELEASE ]==
|
||||
The following has been addressed in 3.2.10.6:
|
||||
- Add notes regarding deprecation of 3.2.x series
|
||||
- Build with latest OpenSSL to fix crash issue (Windows)
|
||||
- Don't show vcredist dialog if installed (Windows installer)
|
||||
|
||||
==[ .5 RELEASE ]==
|
||||
The following issues have been fixed in 3.2.10.5:
|
||||
- Crash when SASL is enabled (set::sasl-server)
|
||||
- A compile problem with LibreSSL
|
||||
|
||||
==[ .4 RELEASE ]==
|
||||
Two major issues were fixed:
|
||||
- Compile problems when using clang instead of gcc (such as on FreeBSD & OS X)
|
||||
- For services who allow you to log in by account name but still allow you to
|
||||
use a different nick: when you're logged in you are now considered
|
||||
registered as far as mode +M and +R are concerned.
|
||||
Tech: whenever services set SVID and it's not * and does not start with a
|
||||
number, then we consider this user to be 'logged in'.
|
||||
Whenever a user is set +r (s)he is also considered 'logged in'.
|
||||
This way it's compatible with both older and new services and doesn't
|
||||
(or shouldn't) introduce security issues with older services using
|
||||
servicetimestamp for nick tracking or other means.
|
||||
Additionally:
|
||||
- curl-ca-bundle.crt has been updated to use latest certificates
|
||||
- The Windows libraries (OpenSSL, curl, ..) have been updated.
|
||||
|
||||
==[ .3 RELEASE ]==
|
||||
The following issues have been fixed in 3.2.10.3:
|
||||
- Crash when SASL is enabled and ping-cookie is disabled
|
||||
- Compile issue with remote include
|
||||
- OS X compile problems
|
||||
- ./unreal backtrace not always working well
|
||||
Changes:
|
||||
- For silenced users we now only check the current nick!user@host
|
||||
- Server to server links now use latest TLS (eg: v1.2) instead of SSLv3
|
||||
New:
|
||||
- Added set::spamfilter::stop-on-first-match (default yes). You can change
|
||||
this to 'no' to have UnrealIRCd continue processing all spamfilters even
|
||||
after the first match. The spamfilter with the 'gravest action' wins
|
||||
(eg: gzline wins from block).
|
||||
|
||||
==[ .2 RELEASE ]==
|
||||
The following major issues were present in 3.2.10 & 3.2.10.1 and have
|
||||
been fixed in this version:
|
||||
- A remote crash issue when compiled with SSL (NULL pointer dereference)
|
||||
- A second issue that can potentially lead to a crash (read-after-free)
|
||||
|
||||
In addition to these 3.2.10.x fixes there were also some other bugs fixed,
|
||||
mostly in the area of server linking and flood hardening.
|
||||
|
||||
The external libraries of the Windows version have been updated (openssl,
|
||||
c-ares, zlib). The bundled c-ares source (for *NIX) has been updated too.
|
||||
|
||||
==[ .1 RELEASE ]==
|
||||
The following bugs in version 3.2.10 were fixed in this 3.2.10.1 release:
|
||||
- Windows only: outgoing connects from Windows caused severe linking issues,
|
||||
including killing of (ghost) users on the Windows server.
|
||||
- An issue where user modes were stripped from remote clients, this caused
|
||||
a problem for Anope BotServ bots.
|
||||
- A compile problem on OpenBSD.
|
||||
- '/REHASH -global' did not rehash all servers.
|
||||
- Some documentation updates.
|
||||
|
||||
==[ 3.2.10 RELEASE ]==
|
||||
Below is a summary of all changes with respect to 3.2.9:
|
||||
|
||||
==[ NEW ]==
|
||||
- Extban ~j: this only prevents a user from joining, once in he can speak freely.
|
||||
- Extban ~R:<nick>: this ban only matches if <nick> is a registered user (has
|
||||
identified to services). Especially useful in cases like: +e ~R:TrustedUser.
|
||||
- Stacked Extended Bans:
|
||||
- Extbans are now split in two groups:
|
||||
- Ones that specify which user actions are affected (group 1):
|
||||
~q (quiet), ~n (nick change), ~j (join)
|
||||
- Ones that introduce new criteria that can be used (group 2):
|
||||
~c (channel), ~r (realname), ~R (registered)
|
||||
- With stacked extbans you can combine an extban of the first group with the second
|
||||
For example: ~q:~c:#lamers would quiet all users who are also in #lamers
|
||||
- Extended Invex: very much like extended bans, but for +I (Invite Exception).
|
||||
Currently supported are: ~c (channel, ~r (realname) and ~R (registered) [=group 2]
|
||||
Possible useful uses are setting a channel +i (invite only) and then setting
|
||||
+I ~c:#trustedchan (or even: +I ~c:+#trustedchan) while still retaining the ability
|
||||
to easily ban users through +b.
|
||||
- Channel Mode +Z: indicates whether a channel is 'secure' or not.
|
||||
This channel mode works in conjunction with +z (lower case z).
|
||||
While +z (normally) prevents new non-SSL users from joining, sometimes they
|
||||
can still join, like when after a netsplit the channels merge again.
|
||||
When all users on the channel are connected through SSL, the channel is set +Z
|
||||
by the server. Whenever an insecure user joins, the channel is put -Z.
|
||||
- Remote MOTD support: you can now specify an URL instead of a file
|
||||
- Automatic installation of curl (w/c-ares) if you answer 'Yes' to remote includes
|
||||
- One can now rehash ALL servers with the command '/REHASH -global'. This can be
|
||||
particularly useful if you use remote includes or MOTD's. NetAdmin only command.
|
||||
- files { } block by which you can configure the location of the tune file, pid, etc
|
||||
- STARTTLS: On an IRCd compiled with SSL support this allows a client to start a SSL
|
||||
session on a regular non-SSL port (like 6667). Only supported by a few IRC clients.
|
||||
Can be disabled by setting set::ssl::options::no-starttls
|
||||
- set::uhnames: this allows one to turn UHNAMES off ('no'), which can be a good idea
|
||||
if you have channels with more than 1000 users, as otherwise the nicklist can take
|
||||
several seconds to load. Defaults to on ('yes').
|
||||
- IPv6 clones detection support: allow::ipv6-clone-mask determines the number of bits
|
||||
used when comparing two IPv6 addresses to determine if allow::maxperip is exceeded.
|
||||
This allows an admin to recognize that most IPv6 blocks are allocated to individuals,
|
||||
who might each get a /64 IPv6 block. set::default-ipv6-clone-mask defaults to 64 and
|
||||
provides default value for the allow blocks.
|
||||
- The m_nopost module is now part of Unreal: this defends against the Firefox/
|
||||
Javascript 'XPS attack' which uses HTTP POST to create dummy IRC bots.
|
||||
- There have also been some behavior changes, which can be considered NEW, see
|
||||
next section (CHANGED).
|
||||
- Improved socket engine. This brings some performance improvements and
|
||||
also makes it easier to configure a system to hold more than 1024
|
||||
clients (no more editing of header files on Linux!).
|
||||
- ESVID support: services can communicate the account name of the user
|
||||
back to the IRCd. This only works on ESVID-capable services:
|
||||
- Extban ~a:<accountname>: matches users who are logged in to services
|
||||
with that account name.
|
||||
- Show account name in /WHOIS
|
||||
- CAP support: this enables clients to enable certain features more easily.
|
||||
Can be disabled through set::options::disable-cap.
|
||||
- Now that STARTTLS is advertised in CAP it is likely to be used more often.
|
||||
- away-notify: informs clients of AWAY state changes of users on the same
|
||||
channels, for clients that support this.
|
||||
- account-notify: similar to away-notify, inform clients of changes in the
|
||||
login status and account name used by other clients on the same channels.
|
||||
- SASL support. To use this, and if your services support this, you point
|
||||
set::sasl-server to your services server.
|
||||
- Server-side MLOCK support: the IRCd will prevent channel mode changes
|
||||
depending on the MLOCK setting in services. Requires special support
|
||||
from services for this feature.
|
||||
- User Mode +I (IRCOp only): hide idle time
|
||||
- auth-method 'sslclientcertfp': authenticate users using an SSL client
|
||||
certificate by the SHA256 fingerprint of that certificate.
|
||||
The documentation has a new section (3.19) called 'Authentication Types'
|
||||
which contains an (improved) example of how to use SSL client certificate
|
||||
authentication instead of regular passwords.
|
||||
- oper::require-modes: an optional setting, which can be used to require
|
||||
users to have certain user modes (such as 'z') before they can /OPER up.
|
||||
- allow/deny channel: you can now optionally specify a class here as an
|
||||
extra filter.
|
||||
- doc/example.es.conf: Spanish translation of example configuration file.
|
||||
- There have also been some behavior changes, which can be considered NEW,
|
||||
see next section (CHANGED).
|
||||
|
||||
==[ CHANGED ]==
|
||||
- Channel Mode +z: due to the +z/+Z changes, some things have changed:
|
||||
- +z can now be set even when insecure users are present
|
||||
(the channel will then be set +Z when the last insecure user leaves)
|
||||
- An oper previously had to invite himself and then join the channel
|
||||
with the key 'override' to set -z. This is no longer needed.
|
||||
The channel stays +z, but will be set -Z when the oper joins.
|
||||
- Remote includes: if a remote include fails to load (eg: webserver down) then
|
||||
the most recent (cached) version of that remote include will be used, and the
|
||||
IRCd will still boot and be able to REHASH. This means it is now 'safe' to
|
||||
use remote includes on a network, without risking problems like unable to
|
||||
rehash in case of webserver problems.
|
||||
- set::level-on-join now supports voice/halfop/protect/owner
|
||||
- Backslashes (\) in MOTD/RULES files are no longer considered special, this
|
||||
might mean that you have to change some escaped backslashes (\\) to \.
|
||||
- '/REHASH -motd' really rehashes ALL MOTD/OPERMOTD/BOTMOTD/RULES files, both
|
||||
the 'normal' files and the ones in tld { } blocks.
|
||||
- The 'Compile as hub/leaf' choice is now gone, as it didn't do anything.
|
||||
- Better document 'sslclientcert' in the Oper Block documentation.
|
||||
This allows one to authenticate against a SSL certificate for /OPER, instead
|
||||
of using a password.
|
||||
- Anti-spoof protection (ping cookies) can now be enabled/disabled at
|
||||
run-time through set::ping-cookie [yes|no]. The default is 'yes' (enabled).
|
||||
- A quit with 'Ping timeout' now shows the number of seconds since the ping.
|
||||
- Print out a warning if we can't write to a log file.
|
||||
- Refuse to boot if we can't write to ANY log file.
|
||||
- Windows: if an SSL certificate exists, then uncheck the 'generate SSL
|
||||
certificate' checkbox by default.
|
||||
- *NIX with SSL: We now ask in ./Config if you want to generate an SSL
|
||||
certificate. The certificate is then copied when you run 'make install'.
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- If you have autoconnect with a low connfreq, previously you often risked getting
|
||||
'Server exists' errors and 'breaking' the network. Now, the server handshake has
|
||||
been redesigned which means this will no longer happen. You can now safely have
|
||||
a low connfreq of - for example - 10 seconds.
|
||||
- Windows: 'Permission denied' errors when starting Unreal
|
||||
- A crash on some new Linux systems when replacing .so files
|
||||
- Solaris & QNX: Compile problems
|
||||
- IPv6: admins no longer have to tweak sysctl, like on FreeBSD & newer Linux systems
|
||||
- IPv6: IPv4 ip's in link::bind-ip did not work properly which made the IRCd either
|
||||
not bind to the correct IP, or - like on FreeBSD - made it unable to link at all.
|
||||
- A very rare crash on outgoing connect
|
||||
- Windows SSL crash (this issue was already fixed in 3.2.9-SSL-fix)
|
||||
- Other than that, none?
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- autoconnect not working if TS offset was negative (for the duration of the offset)
|
||||
- CGI:IRC & IPv6: sometimes a users' IP was incorrectly formatted, causing 'ghosts'
|
||||
- Mac OS X: permission problems
|
||||
- Several installation issues with curl
|
||||
- SSL: No more 'Underlying syscall error', the actual error is now shown
|
||||
- And many more... see Changelog
|
||||
- Various compile problems, in particular with remote includes enabled.
|
||||
- Windows: the installer sometimes insisted that the Visual C++ 2008
|
||||
redistributable package was not installed, when it actually was there.
|
||||
- Windows: MOTD file date/time was always showing up as 1/1/1970.
|
||||
- And more... see Changelog
|
||||
|
||||
==[ REMOVED / DROPPED ]==
|
||||
- Windows 9X is no longer supported
|
||||
- The networks/ directory has been removed
|
||||
|
||||
==[ KNOWN ISSUES ]==
|
||||
- Regexes: Be careful with backreferences (\1, etc), certain regexes can slow the
|
||||
IRCd down considerably and even bring it to a near-halt. In the spamfilter user
|
||||
target it's usually safe though. Slow spamfilter detection can help prevent the
|
||||
slowdown/freeze, but might not work in worst-case scenario's.
|
||||
- Regexes: Possessive quantifiers such as, for example, "++" (not to be confused
|
||||
with "+") are not safe to use, they can easily freeze the IRCd.
|
||||
- Regexes: Be careful with backreferences (\1, etc), certain regexes can
|
||||
slow the IRCd down considerably and even bring it to a near-halt.
|
||||
In the spamfilter user target it's usually safe though.
|
||||
Slow spamfilter detection can help prevent the slowdown/freeze, but
|
||||
might not work in worst-case scenario's.
|
||||
- Regexes: Possessive quantifiers such as, for example, "++" (not to be
|
||||
confused with "+") are not safe to use, they can easily freeze the IRCd.
|
||||
|
||||
==[ ADDITIONAL INFO ]==
|
||||
* See Changelog for more details
|
||||
- See Changelog for more details
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
src/ssl.rnd
|
||||
src/win32/devel/StackTrace.lib
|
||||
src/win32/gnu_regex.lib
|
||||
|
||||
Makefile
|
||||
config.log
|
||||
config.status
|
||||
config.settings
|
||||
ssl.rnd
|
||||
unreal
|
||||
@@ -0,0 +1,16 @@
|
||||
[repository]
|
||||
native = LF
|
||||
|
||||
[patterns]
|
||||
.RELEASE.NOTES = native
|
||||
README = native
|
||||
Unreal.nfo = native
|
||||
makefile.win32 = native
|
||||
Changes = native
|
||||
**.c = native
|
||||
**.h = native
|
||||
**.conf = native
|
||||
**.html = native
|
||||
**.txt = native
|
||||
**.bat = native
|
||||
**.iss = native
|
||||
@@ -0,0 +1,35 @@
|
||||
syntax: regexp
|
||||
|
||||
# particular targets
|
||||
^ircdcron/ircdchk$
|
||||
^ircdcron/ircd\.cron$
|
||||
^src/ircd$
|
||||
^src/include$
|
||||
^src/version\.c$
|
||||
^unreal$
|
||||
^server\.(cert|key|req)\.pem$
|
||||
|
||||
# extras archives and builds
|
||||
^extras/[^/]*\.(bak|tar)$
|
||||
^extras/[^/]*\d/
|
||||
^extras/(c-ares|regexp)/
|
||||
|
||||
# running unrealircd from the source directory
|
||||
^ircd\.(log|pid|tune)$
|
||||
^ssl\.rnd$
|
||||
|
||||
# General
|
||||
\.(o|so|orig|rej)$
|
||||
~$
|
||||
(^|/)core(\.\d+)?$
|
||||
|
||||
# autotools
|
||||
^aclocal\.m4$
|
||||
^autom4te\.cache/
|
||||
^config\.(status|log)$
|
||||
|
||||
# not quite autotools
|
||||
^config\.settings$
|
||||
^include/setup\.h$
|
||||
^Makefile$
|
||||
^src/modules/Makefile$
|
||||
+2523
-4835
File diff suppressed because it is too large
Load Diff
+4844
File diff suppressed because it is too large
Load Diff
@@ -45,9 +45,6 @@ if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
fi
|
||||
if [ "$NOSPOOF" != "1" ] ; then
|
||||
ARG="$ARG--disable-nospoof "
|
||||
fi
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if test x"$SSLDIR" = "x" ; then
|
||||
ARG="$ARG--enable-ssl "
|
||||
@@ -91,9 +88,43 @@ cd "$UNREALCWD"
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if [ ! -f server.req.pem ]; then
|
||||
export OPENSSLPATH
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$GENCERTIFICATE" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to generate an SSL certificate for the IRCd?"
|
||||
echo "Only answer No if you already have one."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
GENCERTIFICATE="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
GENCERTIFICATE=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "$GENCERTIFICATE" = 1 ]; then
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
else
|
||||
echo "Ok, not generating SSL certificate. Make sure that the certificate and key"
|
||||
echo "are installed as server.crt.pem and server.key.pem prior to starting the IRCd."
|
||||
fi
|
||||
else
|
||||
echo "SSL certificate already existing, no need to regenerate"
|
||||
fi
|
||||
@@ -310,7 +341,6 @@ done
|
||||
c=""
|
||||
n=""
|
||||
UNREALCWD="`pwd`"
|
||||
NOSPOOF="1"
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
DEFPERM="0600"
|
||||
@@ -334,6 +364,7 @@ NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
GENCERTIFICATE="1"
|
||||
EXTRAPARA=""
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
@@ -341,6 +372,23 @@ else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
date|grep 2015 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "*** WARNING ***"
|
||||
echo "UnrealIRCd 3.2.x will no longer be supported after December 31, 2016."
|
||||
echo "You should upgrade to UnrealIRCd 4 before that date."
|
||||
echo "See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated"
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo ""
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
#parse arguments
|
||||
NOCACHE=""
|
||||
@@ -378,6 +426,12 @@ while [ $# -ge 1 ] ; do
|
||||
shift 1
|
||||
done
|
||||
|
||||
date|grep 2015 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo $n "[Enter to continue]"
|
||||
read cc
|
||||
fi
|
||||
|
||||
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
||||
. ./config.settings
|
||||
fi
|
||||
@@ -407,43 +461,6 @@ clear
|
||||
clear
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Many older operating systems have an insecure TCP/IP stack"
|
||||
echo "which may be vulnerable to IP spoofing attacks, if you run"
|
||||
echo "an operating system that is vulnerable to such attacks"
|
||||
echo "enable this option."
|
||||
echo "This option also prevents blind proxies (eg: HTTP POST proxies)"
|
||||
echo "and other blind clients from connecting (eg: protects against"
|
||||
echo "the Firefox XPS IRC Attack)."
|
||||
echo ""
|
||||
echo "Do you want to enable the server anti-spoof protection?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
NOSPOOF="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
NOSPOOF=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DPATH"
|
||||
echo ""
|
||||
echo "What directory are all the server configuration files in?"
|
||||
@@ -960,7 +977,6 @@ fi
|
||||
rm -f config.settings
|
||||
cat > config.settings << __EOF__
|
||||
#
|
||||
NOSPOOF="$NOSPOOF"
|
||||
DPATH="$DPATH"
|
||||
SPATH="$SPATH"
|
||||
INET6="$INET6"
|
||||
@@ -984,6 +1000,7 @@ NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
||||
GENCERTIFICATE="$GENCERTIFICATE"
|
||||
EXTRAPARA="$EXTRAPARA"
|
||||
ADVANCED="$ADVANCED"
|
||||
__EOF__
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
UnrealIRCd is a free program, but we do put a lot of time, effort, and money
|
||||
into creating and maintaining Unreal. To make it easier for user's to show their
|
||||
into creating and maintaining Unreal. To make it easier for users to show their
|
||||
appreciation, the Unreal team has decided to accept donations through PayPal. If
|
||||
you like Unreal, and you'd like to see it continue to exist, please consider making
|
||||
a donation. We're not asking for anything huge, whatever you can afford is fine.
|
||||
|
||||
PayPal Donation Link: http://www.unrealircd.com/donate
|
||||
PayPal Donation Link: http://unrealircd.com/donate.php
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than money,
|
||||
contact Syzop (syzop@unrealircd.com).
|
||||
@@ -16,5 +16,3 @@ Please check the website for details.
|
||||
|
||||
Thank you for your support,
|
||||
The UnrealIRCd Team
|
||||
|
||||
[ $Id$ ]
|
||||
|
||||
+18
-15
@@ -138,16 +138,16 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
|
||||
custommodule:
|
||||
@if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
+cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
|
||||
server:
|
||||
build:
|
||||
server: Makefile
|
||||
build: Makefile
|
||||
-@if [ ! -f include/setup.h ] ; then \
|
||||
echo "Hmm...doesn't look like you've run Config..."; \
|
||||
echo "Doing so now."; \
|
||||
sh Config; \
|
||||
fi
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Building $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
||||
done
|
||||
@@ -167,7 +167,7 @@ build:
|
||||
|
||||
clean:
|
||||
$(RM) -f *~ \#* core *.orig include/*.orig
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Cleaning $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
||||
done
|
||||
@@ -176,7 +176,7 @@ clean:
|
||||
fi
|
||||
|
||||
cleandir: clean
|
||||
rm -rf include/networks.h include/setup.h Makefile Settings
|
||||
rm -rf include/setup.h Makefile Settings
|
||||
|
||||
makex:
|
||||
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
||||
@@ -199,18 +199,14 @@ stamp: makedist
|
||||
echo "" >> include/stamp.h
|
||||
|
||||
depend:
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Making dependencies in $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
||||
done
|
||||
|
||||
install: all
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/*.network $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 networks/makenet $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/networks.ndx $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR) 2>/dev/null || { $(INSTALL) -m 0700 -d "$$(dirname '$(BINDIR)')"; $(INSTALL) -m 0700 src/ircd $(BINDIR); }
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/aliases
|
||||
@@ -228,17 +224,22 @@ install: all
|
||||
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
||||
$(INSTALL) -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||
fi
|
||||
-@if [ server.cert.pem -nt "$(IRCDDIR)/server.cert.pem" ] ; then \
|
||||
$(INSTALL) -m 0600 server.req.pem $(IRCDDIR) ; \
|
||||
$(INSTALL) -m 0600 server.key.pem $(IRCDDIR) ; \
|
||||
$(INSTALL) -m 0600 server.cert.pem $(IRCDDIR) ; \
|
||||
fi
|
||||
|
||||
pem: src/ssl.cnf
|
||||
@echo "Generating certificate request .. "
|
||||
$(OPENSSLPATH) req -new \
|
||||
-config src/ssl.cnf -out server.req.pem \
|
||||
-config src/ssl.cnf -sha256 -out server.req.pem \
|
||||
-keyout server.key.pem -nodes
|
||||
@echo "Generating self-signed certificate .. "
|
||||
$(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \
|
||||
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
|
||||
-key server.key.pem -out server.cert.pem
|
||||
@echo "Generating fingerprint .."
|
||||
$(OPENSSLPATH) x509 -subject -dates -fingerprint -noout \
|
||||
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
|
||||
-in server.cert.pem
|
||||
@echo "Setting o-rwx & g-rwx for files... "
|
||||
chmod o-rwx server.req.pem server.key.pem server.cert.pem
|
||||
@@ -255,3 +256,5 @@ encpem: server.key.pem
|
||||
rm -f server.key.c.pem ; \
|
||||
fi
|
||||
|
||||
Makefile: config.status Makefile.in
|
||||
./config.status
|
||||
|
||||
+31
-25
@@ -1,5 +1,5 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.2.9-RC1 =
|
||||
= UnrealIRCd v3.2.10.7 =
|
||||
===============================================
|
||||
This release was brought to you by:
|
||||
|
||||
@@ -13,14 +13,17 @@
|
||||
|
||||
Contributors:
|
||||
=============
|
||||
* Bock
|
||||
* goldenwolf
|
||||
* katsklaw
|
||||
* Heero
|
||||
* nenolod
|
||||
* Adam
|
||||
* warg
|
||||
* Stealth
|
||||
|
||||
RC Testers:
|
||||
===========
|
||||
__THIS_NEEDS_TO_BE_UPDATED_BEFORE_3.2.9_RELEASE__
|
||||
* WolfSage
|
||||
* katsklaw
|
||||
* darkex
|
||||
* fspijkerman
|
||||
* fbi
|
||||
* Apocalypse
|
||||
|
||||
Previous coders:
|
||||
================
|
||||
@@ -29,21 +32,11 @@
|
||||
* Many more..
|
||||
|
||||
Internet Presence:
|
||||
* http://unrealircd.com/
|
||||
* http://www.unrealircd.com/
|
||||
|
||||
CVS
|
||||
====
|
||||
To get anonymous access: (read only)
|
||||
"cvs -d :pserver:anonymous@cvs.unrealircd.com:/cvs login"
|
||||
|
||||
press enter when asked for password
|
||||
Then, choose the appropiate branch you want:
|
||||
|
||||
latest 3.2 release ("stable"):
|
||||
"cvs -z3 -d :pserver:anonymous@cvs.unrealircd.com:/cvs checkout -r stable -d Unreal-stable unreal"
|
||||
|
||||
latest 3.2 fixes / development ("unreal3_2_fixes"):
|
||||
"cvs -z3 -d :pserver:anonymous@cvs.unrealircd.com:/cvs checkout -r unreal3_2_fixes -d Unreal-stable unreal"
|
||||
UnrealIRCd Bugtracker (Where to report bugs, make suggestions, and submit patches)
|
||||
===================================================================================
|
||||
http://bugs.unrealircd.org/
|
||||
|
||||
To get support
|
||||
================
|
||||
@@ -62,10 +55,23 @@
|
||||
are humans like you. We sometimes just need some peace.]
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
|
||||
UnrealIRCd Bugtracker (Where to report bugs, make suggestions, and submit patches)
|
||||
==================================================================
|
||||
http://bugs.unrealircd.org/
|
||||
Development version
|
||||
====================
|
||||
To access the latest development version of UnrealIRCd you need to use mercurial (hg).
|
||||
Note that because you are accessing a development version it may not compile, the
|
||||
server may crash, or other problems can occur since the code is likely to be only
|
||||
lightly tested (or not at all). On the other hand, using the development version may
|
||||
help you to get rid of that single nasty bug that is haunting you, plus if you test
|
||||
it and give us feedback (report bugs) then you actually help us with developing Unreal.
|
||||
|
||||
The command to grab the development version is:
|
||||
hg clone http://hg.unrealircd.org/unreal
|
||||
|
||||
If you get something like 'hg: command not found' then you need to install mercurial.
|
||||
Most *NIX systems have such a 'mercurial' package, but if you don't, or you are on
|
||||
Windows or Mac OS X, then see http://mercurial.selenic.com/
|
||||
|
||||
Want to discuss, chat, etc?
|
||||
=============================
|
||||
* IRC: /server irc.unrealircd.com 6667 - /join #chat
|
||||
(NOT for support! If you want support then use #unreal-support instead!)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/* Atheme Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias botserv { type services; };
|
||||
alias bs { target botserv; type services; };
|
||||
alias hostserv { type services; };
|
||||
alias hs { target hostserv; type services; };
|
||||
alias saslserv { type services; };
|
||||
alias sss { target saslserv; type services; };
|
||||
alias gameserv { type services; };
|
||||
alias gms { target gameserv; type services; };
|
||||
alias groupserv { type services; };
|
||||
alias grs { target groupserv; type services; };
|
||||
alias alis { type services; };
|
||||
alias ls { target alis; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
autom4te.cache
|
||||
@@ -109,11 +109,11 @@ AC_DEFUN([CHECK_LIBCURL],
|
||||
AS_IF([test "x`echo $CURLLIBS |grep ares`" != x && test "x$with_system_cares" = "xno"],
|
||||
[
|
||||
dnl Attempt one: Linux sed
|
||||
XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
||||
AS_IF([test "x$XCURLLIBS" = "x"],
|
||||
[
|
||||
dnl Attempt two: FreeBSD (and others?) sed
|
||||
XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/(@<:@^ @:>@+ @<:@^ @:>@+ )(@<:@^ @:>@+ @<:@^ @:>@+ )(.+)/\1\3/g' 2>/dev/null`"
|
||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
||||
AS_IF([test x"$XCURLLIBS" = x],
|
||||
[
|
||||
AC_MSG_ERROR([sed appears to be broken. It is needed for a remote includes compile hack.])
|
||||
|
||||
+37
-14
@@ -1,5 +1,16 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT([unrealircd], [3.2.8.1], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
|
||||
|
||||
dnl When updating the version, remember to update the following files
|
||||
dnl appropriately:
|
||||
dnl
|
||||
dnl include/win32/setup.h
|
||||
dnl src/win32/unrealinst.iss
|
||||
dnl docs/unreal32docs*.html
|
||||
dnl Unreal.nfo
|
||||
dnl .CHANGES.NEW
|
||||
dnl src/version.c.SH
|
||||
|
||||
AC_INIT([unrealircd], [3.2.10.7], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
|
||||
AC_CONFIG_SRCDIR([src/ircd.c])
|
||||
AC_CONFIG_HEADER([include/setup.h])
|
||||
AC_CONFIG_AUX_DIR([autoconf])
|
||||
@@ -10,6 +21,25 @@ if test "x$enable_dynamic_linking" = "x"; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dnl Calculate the versions. Perhaps the use of expr is a little too extravagant
|
||||
# Generation version number (e.g.: 3 for Unreal3*)
|
||||
UNREAL_VERSION_GENERATION=["`expr $PACKAGE_VERSION : '\([^.]*\)\.[^.]*\.[^.-_]*'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: 3 for Unreal3*)])
|
||||
|
||||
# Major version number (e.g.: 2 for Unreal3.2*)
|
||||
UNREAL_VERSION_MAJOR=["`expr $PACKAGE_VERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: 2 for Unreal3.2*)])
|
||||
|
||||
# Minor version number (e.g.: 1 for Unreal3.2.1)
|
||||
UNREAL_VERSION_MINOR=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: 1 for Unreal3.2.1)])
|
||||
|
||||
# The version suffix such as a beta marker or release candidate
|
||||
# marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2). This macro is a
|
||||
# string instead of an integer because it contains arbitrary data.
|
||||
UNREAL_VERSION_SUFFIX=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.[0-9]*\(.*\)'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2)])
|
||||
|
||||
AC_PROG_CC
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
@@ -63,6 +93,8 @@ AC_CHECK_LIB(socket, socket,
|
||||
AC_CHECK_LIB(nsl, inet_ntoa,
|
||||
[IRCDLIBS="$IRCDLIBS-lnsl "
|
||||
INETLIB="-lnsl"])
|
||||
AC_CHECK_LIB(crypto, RAND_egd,
|
||||
AC_DEFINE(HAVE_RAND_EGD, 1, [Define if the libcrypto has RAND_egd]))
|
||||
|
||||
AC_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
@@ -77,7 +109,7 @@ AC_DEFINE(STATIC_LINKING)
|
||||
])])
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -export-dynamic"
|
||||
CFLAGS="$CFLAGS -Wl,-export-dynamic"
|
||||
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
||||
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
||||
if test "$ac_cv_export_dynamic" = "no"; then
|
||||
@@ -89,7 +121,7 @@ if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
ac_cv_pic="-fPIC -DPIC -shared"
|
||||
case `uname -s` in
|
||||
Darwin*[)]
|
||||
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
|
||||
ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress"
|
||||
;;
|
||||
HP-UX*[)]
|
||||
ac_cv_pic="-fPIC"
|
||||
@@ -418,7 +450,6 @@ AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE([NEED_INET_NTOA], [], [Define if you need in
|
||||
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE([NEED_INET_NETOF], [], [Define if you need inet_netof]))
|
||||
LIBS="$save_libs"
|
||||
AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog]))
|
||||
AC_CHECK_FUNCS(vsyslog,AC_DEFINE([HAVE_VSYSLOG], [], [Define if you have vsyslog]))
|
||||
AC_SUBST(STRTOUL)
|
||||
AC_SUBST(CRYPTOLIB)
|
||||
AC_SUBST(MODULEFLAGS)
|
||||
@@ -460,14 +491,6 @@ AC_ARG_WITH(spath, [AS_HELP_STRING([--with-spath],[Specify the location of the e
|
||||
[AC_DEFINE_UNQUOTED([SPATH], ["`pwd`/src/ircd"], [Define the location of the executable])
|
||||
BINDIR="`pwd`/src/ircd"])
|
||||
|
||||
# enable nospoof by default; protects against javascript POST attacks and much more ;-)
|
||||
AC_ARG_ENABLE([nospoof],
|
||||
[AS_HELP_STRING([--disable-nospoof], [Disable spoofing protection (requires clients to respond to a randomly generated PING packet after USER and NICK but before using other commands)])],
|
||||
[],
|
||||
[enable_nospoof=yes])
|
||||
AS_IF([test $enable_nospoof = "yes"],
|
||||
[AC_DEFINE([NOSPOOF], [], [Define if you want spoof protection])])
|
||||
|
||||
AC_ARG_ENABLE([prefixaq],
|
||||
[AS_HELP_STRING([--disable-prefixaq],[Enable chanadmin (+a) and chanowner (+q) prefixes])],
|
||||
[],
|
||||
@@ -573,7 +596,7 @@ dnl See c-ares's compilation section for more info on this hack.
|
||||
dnl ensure that we're linking against the bundled version of tre
|
||||
dnl (we only reach this code if linking against the bundled version is desired).
|
||||
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
|
||||
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --static --libs tre.pc | sed ['s,-L\([^ ]\+lib\) -ltre,\1/libtre.a,']`"])
|
||||
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --static --libs tre.pc | sed -e ['s,-L\([^ ]*regex[^ ]*lib\)\( .*\)-ltre,\1/libtre.a \2,']`"])
|
||||
dnl For when pkg-config isn't available -- or for when pkg-config
|
||||
dnl doesn't see the tre.pc file somehow... (#3982)
|
||||
AS_IF([test -z "$TRE_LIBS"],
|
||||
@@ -589,7 +612,7 @@ AS_IF([test "x$with_system_cares" = "xno"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
||||
dnl NOTE: when changing this here, ALSO change it in ./curlinstall
|
||||
dnl and in the comment in this file around line 400!
|
||||
cares_version="1.7.3"
|
||||
cares_version="1.10.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
# This will generate a Changelog similar to our original style.
|
||||
# New are: the name of the author, the date, and the short hash
|
||||
# We still filter translated doc changes as to not polute the
|
||||
# changelog too much.
|
||||
|
||||
hg log -r a673dd0f7b37: --style changelog --template '[{date|shortdate}] {author} ({node|short}):\n- {desc}\n\n' \
|
||||
-b default -X 'doc/unreal32docs.*.html' -X 'doc/help.*.conf' -X 'doc/example.*.conf' -X 'include/version.h'|\
|
||||
sed 's/^- - /- /g' >Changes
|
||||
|
||||
echo "Done. File 'Changes' now contains the full version history"
|
||||
+3858
-4358
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -3,7 +3,7 @@ URL="http://www.unrealircd.com/files/curl-latest.tar.gz"
|
||||
OUTF="curl-latest.tar.gz"
|
||||
OUTD="curl-latest"
|
||||
ARESPATH="`pwd`/extras/c-ares"
|
||||
CARESVERSION="1.7.3"
|
||||
CARESVERSION="1.10.0"
|
||||
if [ ! -f "Unreal.nfo" ]; then
|
||||
echo "Please run this program from your UnrealIRCd directory"
|
||||
echo "(usually $HOME/Unreal3.2 or something like that)"
|
||||
|
||||
+141
-142
@@ -1,142 +1,141 @@
|
||||
Rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM. Don't forget to mention the bug# and credit the reporter (if any).
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers,
|
||||
and a $Id$ somewhere.
|
||||
|
||||
3. If you want to submit patches (f.e. if you don't have CVS write access)
|
||||
then submit them to http://bugs.unrealircd.org/ (shortly called bugs*)
|
||||
using "cvs diff -u > patchname". A submission must contain description of
|
||||
what it does, etc.
|
||||
|
||||
4. Each bug or feature should have a bug# so people can have a discussion
|
||||
about it. This has a few implications (read!!):
|
||||
* People must report bugs/feature requests to bugs* and not on
|
||||
IRC, e-mail, etc.
|
||||
* That means other people can see the bug# and comment on it. This means
|
||||
discussion is easy to read back for each issue and not spread between
|
||||
several IRC logs.
|
||||
Furthermore, by using the bugtracker instead of directly committing,
|
||||
people could point out that there might be a better way to do things
|
||||
than you originally thought, or it might be that other devs don't like
|
||||
it at all.
|
||||
* If a head coder has 'acknowledged' or 'confirmed' the bug or stated in
|
||||
a comment that it's OK to implement, then a dev may take the issue.
|
||||
The dev should change the status to 'assigned' and work on it, then
|
||||
commit and change it to 'resolved', set 'fixed in version' to next
|
||||
release, and add a comment pasting the relevant Changelog item and the
|
||||
releaseid (.XYZ).
|
||||
Of course other guidelines, like #7 and #8 still apply.
|
||||
|
||||
5. Do not commit changes that do not have an associated bug# and have not
|
||||
had any discussion.
|
||||
Small/tiny bugfixes that do not change any functionality, are very
|
||||
unlikely to break anything and definitely don't require any prior
|
||||
discussion may be exempted.
|
||||
|
||||
6. Regarding reidenting, restructuring or other code cleanups: please
|
||||
discuss before doing so. The other devs might not agree with you on the
|
||||
particular cleanup you have in mind which would result in another
|
||||
clean-up-the-cleanup commit.
|
||||
You may, however reindent and clean up individual sections when you are
|
||||
working on fixing a particular bug# or implementing a new feature. In fact
|
||||
you're encouraged to do so if the code is confusing without it. However,
|
||||
obey the style of Unreal's code (mostly outlined in this document)
|
||||
and do not introduce yet another (new) style. Also, be careful with doing
|
||||
any cleanup: if you're unsure in any way about the use of something,
|
||||
or something that looks redundant on first sight, then look more
|
||||
carefully... it might indeed be useless and/or redundant, but it might
|
||||
also be a subtle thing that can create great bugs when 'cleaned up'.
|
||||
|
||||
7. Prior to a release: be very careful with any restructuring of a subsystem
|
||||
or doing any major commits that may break things. Stuff like this can be
|
||||
perfectly fine if there are many months to go, but are not good to do a
|
||||
month before release. The head coder may impose additional restrictions
|
||||
during such a period.
|
||||
|
||||
8. During the Release Candidate stage (from RC1 until the final release)
|
||||
only the head coder may commit directly, all others should ask and
|
||||
present their patch before committing. Yes, even if you are changing only
|
||||
1 line of code or text.
|
||||
|
||||
9. UnrealIRCd should compile on all supported operating systems and
|
||||
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
|
||||
higher on Windows. This means you cannot blindly use all C99 extensions.
|
||||
|
||||
10. Coders should test their code before committing.
|
||||
|
||||
11. /*
|
||||
* These kind of comments
|
||||
*/
|
||||
|
||||
NOT
|
||||
|
||||
// These kind of comments
|
||||
|
||||
12. if (something == 1)
|
||||
{
|
||||
moo; /* comment */
|
||||
/* This does what what what */
|
||||
cow(go(moo));
|
||||
}
|
||||
|
||||
NOT
|
||||
|
||||
if (something == 1) {
|
||||
}
|
||||
|
||||
13. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||
if you need a credit in, contact us
|
||||
|
||||
14. Protocol changes must be discussed before making patches for it.
|
||||
|
||||
15. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
16. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
|
||||
Some code is old and horrible and has a mix of tabs and spaces used for
|
||||
spacing, that's something we do not want to have ;)
|
||||
|
||||
17. Be careful about overflows. 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.
|
||||
|
||||
18. Speed. When optimizing or writing code, keep in mind that readability and
|
||||
stability comes FIRST, and after that comes speed. So we'd rather prefer some
|
||||
readable code (even if difficult) over some odd highly optimized routine which
|
||||
nobody understands, is difficult to extend, and might have several bugs.
|
||||
As mentioned earlier: use 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.
|
||||
|
||||
19. Initialize your structs and use the proper memory calls.
|
||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
||||
the memory area (eg: the struct) with zero's (a la calloc).
|
||||
Use of MyMallocEx is suggested. In general you should not be using MyMalloc.
|
||||
"But MyMalloc is faster!" you might say. This is true, but using MyMallocEx
|
||||
has very little speed impact and enormous benefits: people tend to forget
|
||||
to set certain fields in the struct to NULL, or much more common: when
|
||||
someone later on (eg: 1 year later) adds a field to a struct, there could
|
||||
be several places he/she needs to update to make sure x->something is NULL
|
||||
after allocating a new struct. Bad idea.
|
||||
Little speed impact, huge stability benefits, easy decision ;).
|
||||
|
||||
20. Comment your code! This should speak for itself...
|
||||
Put comments wherever you think they are needed, to aid any further coders
|
||||
with reading your code.. and, in fact, it will aid yourself as well if you
|
||||
would look back at your code 2 years later.
|
||||
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
||||
author will see it like you did.
|
||||
|
||||
21. Use enums whenever possible, rather than #define constants. Besides making
|
||||
things more clean, it also aids debugging.
|
||||
Rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM. Don't forget to mention the bug# and credit the reporter (if any).
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers.
|
||||
|
||||
3. If you want to submit patches (f.e. if you don't have CVS write access)
|
||||
then submit them to http://bugs.unrealircd.org/ (shortly called bugs*)
|
||||
using "cvs diff -u > patchname". A submission must contain description of
|
||||
what it does, etc.
|
||||
|
||||
4. Each bug or feature should have a bug# so people can have a discussion
|
||||
about it. This has a few implications (read!!):
|
||||
* People must report bugs/feature requests to bugs* and not on
|
||||
IRC, e-mail, etc.
|
||||
* That means other people can see the bug# and comment on it. This means
|
||||
discussion is easy to read back for each issue and not spread between
|
||||
several IRC logs.
|
||||
Furthermore, by using the bugtracker instead of directly committing,
|
||||
people could point out that there might be a better way to do things
|
||||
than you originally thought, or it might be that other devs don't like
|
||||
it at all.
|
||||
* If a head coder has 'acknowledged' or 'confirmed' the bug or stated in
|
||||
a comment that it's OK to implement, then a dev may take the issue.
|
||||
The dev should change the status to 'assigned' and work on it, then
|
||||
commit and change it to 'resolved', set 'fixed in version' to next
|
||||
release, and add a comment pasting the relevant Changelog item and the
|
||||
releaseid (.XYZ).
|
||||
Of course other guidelines, like #7 and #8 still apply.
|
||||
|
||||
5. Do not commit changes that do not have an associated bug# and have not
|
||||
had any discussion.
|
||||
Small/tiny bugfixes that do not change any functionality, are very
|
||||
unlikely to break anything and definitely don't require any prior
|
||||
discussion may be exempted.
|
||||
|
||||
6. Regarding reidenting, restructuring or other code cleanups: please
|
||||
discuss before doing so. The other devs might not agree with you on the
|
||||
particular cleanup you have in mind which would result in another
|
||||
clean-up-the-cleanup commit.
|
||||
You may, however reindent and clean up individual sections when you are
|
||||
working on fixing a particular bug# or implementing a new feature. In fact
|
||||
you're encouraged to do so if the code is confusing without it. However,
|
||||
obey the style of Unreal's code (mostly outlined in this document)
|
||||
and do not introduce yet another (new) style. Also, be careful with doing
|
||||
any cleanup: if you're unsure in any way about the use of something,
|
||||
or something that looks redundant on first sight, then look more
|
||||
carefully... it might indeed be useless and/or redundant, but it might
|
||||
also be a subtle thing that can create great bugs when 'cleaned up'.
|
||||
|
||||
7. Prior to a release: be very careful with any restructuring of a subsystem
|
||||
or doing any major commits that may break things. Stuff like this can be
|
||||
perfectly fine if there are many months to go, but are not good to do a
|
||||
month before release. The head coder may impose additional restrictions
|
||||
during such a period.
|
||||
|
||||
8. During the Release Candidate stage (from RC1 until the final release)
|
||||
only the head coder may commit directly, all others should ask and
|
||||
present their patch before committing. Yes, even if you are changing only
|
||||
1 line of code or text.
|
||||
|
||||
9. UnrealIRCd should compile on all supported operating systems and
|
||||
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
|
||||
higher on Windows. This means you cannot blindly use all C99 extensions.
|
||||
|
||||
10. Coders should test their code before committing.
|
||||
|
||||
11. /*
|
||||
* These kind of comments
|
||||
*/
|
||||
|
||||
NOT
|
||||
|
||||
// These kind of comments
|
||||
|
||||
12. if (something == 1)
|
||||
{
|
||||
moo; /* comment */
|
||||
/* This does what what what */
|
||||
cow(go(moo));
|
||||
}
|
||||
|
||||
NOT
|
||||
|
||||
if (something == 1) {
|
||||
}
|
||||
|
||||
13. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||
if you need a credit in, contact us
|
||||
|
||||
14. Protocol changes must be discussed before making patches for it.
|
||||
|
||||
15. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
16. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
|
||||
Some code is old and horrible and has a mix of tabs and spaces used for
|
||||
spacing, that's something we do not want to have ;)
|
||||
|
||||
17. Be careful about overflows. 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.
|
||||
|
||||
18. Speed. When optimizing or writing code, keep in mind that readability and
|
||||
stability comes FIRST, and after that comes speed. So we'd rather prefer some
|
||||
readable code (even if difficult) over some odd highly optimized routine which
|
||||
nobody understands, is difficult to extend, and might have several bugs.
|
||||
As mentioned earlier: use 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.
|
||||
|
||||
19. Initialize your structs and use the proper memory calls.
|
||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
||||
the memory area (eg: the struct) with zero's (a la calloc).
|
||||
Use of MyMallocEx is suggested. In general you should not be using MyMalloc.
|
||||
"But MyMalloc is faster!" you might say. This is true, but using MyMallocEx
|
||||
has very little speed impact and enormous benefits: people tend to forget
|
||||
to set certain fields in the struct to NULL, or much more common: when
|
||||
someone later on (eg: 1 year later) adds a field to a struct, there could
|
||||
be several places he/she needs to update to make sure x->something is NULL
|
||||
after allocating a new struct. Bad idea.
|
||||
Little speed impact, huge stability benefits, easy decision ;).
|
||||
|
||||
20. Comment your code! This should speak for itself...
|
||||
Put comments wherever you think they are needed, to aid any further coders
|
||||
with reading your code.. and, in fact, it will aid yourself as well if you
|
||||
would look back at your code 2 years later.
|
||||
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
||||
author will see it like you did.
|
||||
|
||||
21. Use enums whenever possible, rather than #define constants. Besides making
|
||||
things more clean, it also aids debugging.
|
||||
|
||||
+15
-2
@@ -23,6 +23,9 @@ use the FREE development kit available for Windows 7 explained below:
|
||||
Start Menu under Microsoft Windows SDK v7.0). Users on x64 environment will have
|
||||
to change their environment to x86 by typing 'SETENV /x86'.
|
||||
|
||||
3. Download http://www.vulnscan.org/tmp/dlltool.exe and put the file somewhere
|
||||
in your path (eg: put it in c:\windows\system32).
|
||||
|
||||
==[ EXTERNAL LIBRARIES ]==
|
||||
Fetch the external libraries (c-ares, tre, openssl, zlib, curl) from:
|
||||
http://www.vulnscan.org/unrealwin32dev/
|
||||
@@ -32,7 +35,7 @@ http://www.vulnscan.org/unrealwin32dev/
|
||||
2. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2)
|
||||
3. Have a look at 'makefile.win32' to look at what parameters you need to
|
||||
use, this depends on what libraries you want to link in and their location.
|
||||
4. Two options, use either one (B is preferred):
|
||||
4. Two options, use either one (B is preferred), and read step 5 too:
|
||||
A. Edit makefile.win32 directly to reflect your configuration and run
|
||||
'nmake -f makefile.win32'
|
||||
B. Don't edit makefile.win32 but instead create a one-line command (which
|
||||
@@ -46,7 +49,17 @@ http://www.vulnscan.org/unrealwin32dev/
|
||||
CARES_INC_DIR="C:\dev\c-ares" CARESLIB="cares.lib"
|
||||
TRE_LIB_DIR="C:\dev\tre\win32\release" TRE_INC_DIR="C:\dev\tre"
|
||||
TRELIB="tre.lib"
|
||||
5. Your compile is now done, you can package unreal if you have InnoSetup,
|
||||
5. You are likely to encounter an error like
|
||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global
|
||||
referenced in function _m_oper
|
||||
(the exact name and symbol will differ!!)
|
||||
In that case you need to generate a symbols file:
|
||||
nmake -f makefile.win32 SYMBOLFILE
|
||||
And after that simply re-run your nmake -f makefile.win32 [options]
|
||||
command, the same command you ran before the error occured.
|
||||
You should not get any unresolved external symbol error again.
|
||||
If you still do, then something is wrong.
|
||||
6. Your compile is now done, you can package unreal if you have InnoSetup,
|
||||
in that case check out src\win32\unrealinst.iss
|
||||
Otherwise, manually copy over the necessary files (and the dll files
|
||||
from the external libraries).
|
||||
|
||||
+54
-2
@@ -2,7 +2,7 @@
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Works for Unreal3.2 and up
|
||||
* Works for Unreal3.2.x
|
||||
*
|
||||
* Okay guys. This is the new example.conf. Its look is much like C++, kinda.
|
||||
* Anyway it is time to go over this. It's hard to pick up at first, but
|
||||
@@ -161,10 +161,12 @@ allow {
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -517,7 +519,55 @@ alias "glinebot" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: files {}
|
||||
* OLD: include/config.h
|
||||
*
|
||||
* This block overrides the IRCd's default paths for loading things
|
||||
* like the MOTD, saving its PID, or writing/loading its tunefile. The
|
||||
* existence of this block allows one UnrealIRCd installation to
|
||||
* support multiple running instances when combined with the -c
|
||||
* commandline option.
|
||||
*
|
||||
* As usual, relative paths are interpreted relative to the directory
|
||||
* where UnrealIRCd would find unrealircd.conf if -c is _not_
|
||||
* specified on the commandline.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* The Message Of The Day shown to users who log in: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* A short MOTD. If this file exists, it will be displayed to
|
||||
* the user in place of the MOTD. Users can still view the
|
||||
* full MOTD by using the /MOTD command.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Shown when an operator /OPERs up */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* Services MOTD append. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* Bot MOTD */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Shown upon /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Where the IRCd stores and loads a few values which should
|
||||
* be persistent across server restarts. Must point to an
|
||||
* existing file which the IRCd has permission to alter or to
|
||||
* a file in a folder within which the IRCd may create files.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Where to save the IRCd's pid. Should be writable by the IRCd. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
@@ -662,11 +712,13 @@ deny dcc {
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "reason";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
* Arbeitet mit Unreal3.2.x
|
||||
*
|
||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
||||
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||
|
||||
@@ -0,0 +1,842 @@
|
||||
/*
|
||||
* example.conf por Danial Hawton, alias Osiris (osiris@unrealircd.org).
|
||||
* Traducido al castellano por Severus_Snape (javiersnape@gmail.com).
|
||||
*
|
||||
* Funciona desde Unreal3.2.x
|
||||
*
|
||||
* Ok. Este es el nuevo example.conf. Es muy similar a C++.
|
||||
* De todas formas lleva tiempo hacer esto. En un principio, es dificil de comprender pero
|
||||
* con un poco de práctica y lectura lo comprenderás.
|
||||
*
|
||||
* Simplemente copia este archivo al directorio principal de unrealircd y cambiale el nombre a 'unrealircd.conf'.
|
||||
*
|
||||
* NOTA: Todas las líneas, a excepción de la línea de apertura ( { ) terminan en ;, incluyendo la
|
||||
* línea de cierre ( } ). El IRCd ignorará las lineas comentadas.
|
||||
*
|
||||
* ¡POR FAVOR LEE doc/unreal32docs.es.html! La versión online esta disponible en:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
||||
* Contiene mucha información acerca del archivo de configuración: Da información acerca de
|
||||
* cada bloque, variable, etc.
|
||||
* ¡Si intentas editar este archivo sin leer bien la documentación
|
||||
* estas destinado a fallar!
|
||||
*/
|
||||
|
||||
/* Tipos de Comentarios */
|
||||
#Comentario tipo 1 (Estilo Shell)
|
||||
// Comentario tipo 2 (Estilo C++)
|
||||
/* Comentario tipo 3 (Estilo C) */
|
||||
#Estas líneas son ignoradas por el IRCd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd soporta módulos, cargar algunos de ellos es requerido.
|
||||
* Al menos debes cargar el módulo de los comandos y un módulo de cifrado (cloaking).
|
||||
*/
|
||||
|
||||
/* PARA *NIX, descomenta las siguientes 2 líneas: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* PARA Windows, descomenta las siguientes 2 líneas: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Además pudes incluir otros archivos de configuración.
|
||||
* help.conf contiene todo el contenido de /helpop. Los archivos badwords.*.conf
|
||||
* contienen todas las entradas de badwords para el modo +G...
|
||||
* spamfilter.conf contiene algunas buenas reglas para los troyanos actuales.
|
||||
* Probablemente quieres incluirlos:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NUEVO: me {}
|
||||
* VIEJO: M:Line
|
||||
* me {} define el nombre, la descripción y el número de servidor
|
||||
* para este server. La Sintaxis es:
|
||||
* me {
|
||||
* name "nombre.del.servidor";
|
||||
* info "Descripción del Servidor";
|
||||
* numeric (número del servidor*);
|
||||
* };
|
||||
* * = Si estas enlazando este server, el número no debe ser usado por otro server en la red.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: admin {}
|
||||
* VIEJO: A:Line
|
||||
* /Admin te da la información acerca del administrador del servidor. Tu
|
||||
* puedes poner cuantas líneas quieras debajo de admin {.
|
||||
* La sintaxis es:
|
||||
* admin {
|
||||
* "primera línea";
|
||||
* "segunda línea";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: class {}
|
||||
* VIEJO: Y:line (old was confusing)
|
||||
* Esto define la configuración para las clases. Una clase es una configuración en grupo para las
|
||||
* conexiones. Por ejemplo, las conexiones de los servidores, en vez de ir a la clase de los clientes.
|
||||
* la diriges a la clase de servidores. La sintaxis es la siguiente:
|
||||
* class (nombre de la clase)
|
||||
* {
|
||||
* pingfreq (que tan seguido pingueara a el servidor/cliente en segundos);
|
||||
* maxclients (cuantas conexiones para esta clase);
|
||||
* sendq (cola máxima de envios para la conexión);
|
||||
* recvq (cola máxima de mensajes recibidos desde la conexión [Control de Flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Cantidad máxima de servers que podemos enlazar a la vez */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Cuentos segundos entre cada intento de conexión */
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: allow {}
|
||||
* VIEJO: I:Line
|
||||
* Esto define los permisos de las conexiones...
|
||||
* Fundamentalmente para los clientes, les permite conectarse así tu puedes tener un poco de
|
||||
* control y/o poner una contraseña.
|
||||
* La sintaxis es la siguiente:
|
||||
* allow {
|
||||
* ip (IP/IPs a permitir);
|
||||
* hostname (nombre de host);
|
||||
* class (clase asignada a esta conexión [ver class {}]);
|
||||
* password "(contraseña)"; (opcional)
|
||||
* maxperip (cuantas conexiones por IP); (opcional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* allow {} con contraseña */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.gente.fea.con.clave;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: allow channel {}
|
||||
* VIEJO: chrestrict
|
||||
* Permite a un usuario unirse a un canal...
|
||||
* como una expeción de deny channel.
|
||||
* Sintaxis:
|
||||
* allow channel {
|
||||
* channel "#nombredelcanal";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezApestan";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: oper {}
|
||||
* VIEJO: O:Line
|
||||
* Define a un Operador de IRC
|
||||
* Los Operadores de IRC estan para mantener al servidor "sano" y usualmente
|
||||
* mantenerlo y tenerlo conectado a la red.
|
||||
* La sintaxis es la siguiente:
|
||||
* oper (login) {
|
||||
* class (clase para ponerlos, si es difirente de la que esta en allow {], los mueve a la nueva clase);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (las flags aqui*);
|
||||
* };
|
||||
* O
|
||||
* flags "flags antiguas como, OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Para una lista de banderas de operador, lea doc/unreal32docs.es.html#operblock
|
||||
* [lectura ALTAMENTE recomendada]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: listen {}
|
||||
* VIEJO: P:Line
|
||||
* Esto define el puerto/IP a el que el IRCd debe escuchar y unirse, esto
|
||||
* permite a los usuarios/servidores conectarse al servidor.
|
||||
* La sintaxis es:
|
||||
* listen (Dirección IP):(número de puerto)
|
||||
* {
|
||||
* options {
|
||||
* (opciones aqui);
|
||||
* };
|
||||
* };
|
||||
* o simplemente
|
||||
* listen: listen (ip):(puerto);
|
||||
*
|
||||
* NOTA: para IPs IPv6 (3ffe:b80:2:51d::2, etc.), use listen [ip]:puerto;
|
||||
*
|
||||
* Eso también funciona.
|
||||
*/
|
||||
|
||||
/* Opciones para listen {}:
|
||||
VIEJAS | NUEVAS | SIGNIFICADO
|
||||
S serversonly Sólo Servidores
|
||||
C clientsonly Sólo Clientes
|
||||
J java Sólo Clientes Java
|
||||
s ssl Conexion Cifrada (SSL)
|
||||
* standard Standard
|
||||
*/
|
||||
|
||||
/* NOTA EN PUERTOS SSL: Los puertos SSL no están estandarizados,
|
||||
* muchos puertos SSL estan en números muy altos, algunas personas dicen que deberias hacerlo
|
||||
* en el puerto 994 por que ese es el puerto SSL oficial... ¡pero eso
|
||||
* requiere acceso root! Además, el puerto 194 es el puerto oficial de IRC... y
|
||||
* has visto alguna vez ver un IRCd corriendo en ese puerto? Usan el 6667.
|
||||
* Asi que, nuestra sugerencia es que uses el puerto 6697 para SSL, ese puerto es usado por
|
||||
* una cantidad de redes decente y es reconozido por ejemplo: por StunTour.
|
||||
* Además eres libre de abrir cuantos puertos SSL quieras, pero
|
||||
* correr uno en 6697 ayudaría al mundo a estandarizarlo un poco mas :).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTA: Si estas en shell IRCd con multiples IPs, normalmente
|
||||
* obtendras un error como 'La dirección ya esta en uso/Address already in use' en tus logs
|
||||
* y el IRCd no iniciará. Esto significa que tu DEBES unir el IRCd
|
||||
* a una IP específica en vez de '*', por ejemplo:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Obviamente, reemplaza esa IP con la IP que se te fue asignada.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NUEVO: link {}
|
||||
* VIEJO: C/N:Lines
|
||||
* Esto define los enlazes entre servidores.
|
||||
* NOTA: ¡LOS DOS SERVIDORES NECESITAN UN BLOQUE LINK {} PARA ENLAZARSE BIEN!
|
||||
* La sintaxis es:
|
||||
* link (nombre.del.servidor)
|
||||
* {
|
||||
* username (nombre de usuario, * también funciona);
|
||||
* hostname (dirección IP/máscara de host);
|
||||
* bind-ip (A que IP unirse cuando se estan enlazando, o *);
|
||||
* port (Puerto al cual conectarse);
|
||||
* hub (Si esto es un hub, * funciona.);
|
||||
* [o leaf *;]
|
||||
* password-connect "(contraseña a enviar)";
|
||||
* password-receive "(contraseña que deberiamos)";
|
||||
* class (Clase a donde dirigir los servers);
|
||||
* options {
|
||||
* (las opciones van aqui*);
|
||||
* };
|
||||
* // Si tu uses SSL, debes escoger que cifrado usar en el modo SSL
|
||||
* // Obtiene una lista con "openssl ciphers", separa los métodos de cifrados con ":"
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciones:
|
||||
VIEJAS | NUEVAS | SIGNIFICADO
|
||||
S ssl Usar SSL
|
||||
Z zip Comprimir los datos enviados.
|
||||
N/A autoconnect su servidor intentará conectar automáticamente.
|
||||
El tiempo usado entre intentos es el que especificó en class::connfreq
|
||||
(se recomienda para un sólo lado, de leaf a hub)
|
||||
N/A quarantine Aislar
|
||||
N/A nodnscache No usar Caché DNS (Muy útil para DDNS)
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Nota: No deberias usar autoconnect cuando conectas servicios */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NUEVO: ulines {}
|
||||
* VIEJO: U:Line
|
||||
* Las ulines {} le dan a los servidores mas poder/comandos, ¡esto SOLO debe ser usado
|
||||
* para los servidores de servicios/estadísticas y NUNCA para servidores UnrealIRCd normales!.
|
||||
* (Para un buen funcionamiento, todos los servidores deberían tener los mismos U:Lines)
|
||||
* La Sintaxis es la siguiente:
|
||||
* ulines {
|
||||
* (servidor a ulinear);
|
||||
* (servidor a ulinear);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: {}
|
||||
* VIEJO: X:Line
|
||||
* Esto define las contraseñas para /die y /restart.
|
||||
* La sintaxis es:
|
||||
* drpass {
|
||||
* restart "(contraseña para reiniciar)";
|
||||
* die "(contraseña para matar al IRCd)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "amo-reiniciar";
|
||||
die "muere-inepto";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: log {}
|
||||
* VIEJO: N/A
|
||||
* Le dice al IRCd donde y que loguear. Puedes tener cuantos tu quieras.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Sintaxis:
|
||||
* log "archivo.log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc...
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Borra el archivo e inicia uno nuevo cuando logre 2MB, no uses esto para siempre usar el mismo log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: alias {}
|
||||
* VIEJO: N/A
|
||||
* Esto te permite hacer aliases de comandos como /nickserv, /chanserv, etc.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Sintaxis:
|
||||
* alias "nombre" {
|
||||
* target "apunta a";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOTA: Tu también puedes usar un archivo de aliases-predefinidos, lea doc/unreal32docs.es.html sección 2.9]
|
||||
*/
|
||||
|
||||
// Esto apunta el comando a /nickserv a el usuario NickServ el cual esta conectado con el servidor de set::services-server.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si tu quieres el comando que apunta al el mismo nick que el comando, puedes dejar la entrada "nick" vacia.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Apunta el comando /statserv a el usuario StatServ en el servidor set::stats-server.
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Apunta el comando /superbot a el usuario SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Aliases Standard */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NUEVO: alias {}
|
||||
* VIEJO: N/A
|
||||
* Esto te permite configurar aliases de comandos como /identify, /services, etc.
|
||||
*
|
||||
* Sintaxis:
|
||||
* alias "nombre" {
|
||||
* format "Formato de la Cadena" {
|
||||
* target "apunta a";
|
||||
* type tipodealias;
|
||||
* parameters "parametros a enviar";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Esto es mostrado separadamente por que hasta tiene el mismo nombre que la directiva anterioir as, es muy diferente en sintaxis,
|
||||
* pero provee una función muy similar.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La directiva alias::format es una expresión regular. El primer formato coincide con el comando /identify cuando
|
||||
* el primer carácter es #. Luego pasa esto a ChanServ con los parámetros IDENTIFY
|
||||
* %1-. El segundo formato coincide con /identify cuando el primer caracter no es un #. Entonces
|
||||
* el comando pasa a nickserv con los parámetros IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* El alias::format::parameters es similar a los lenguajes de scripting. %N (donde N es un número) representa el
|
||||
* parámetro enviado al comando (en este caso, /identify). Si especificas %N- significa "todos los parámetros desde
|
||||
* N hasta el último parámetro en la cadena". También puedes especificar %n que es reemplazado por el nick del usuario.
|
||||
*/
|
||||
|
||||
/* Aliases Standard */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Este es un ejemplo de un alias de comando real */
|
||||
/* Esto redirije /GLINEBOT a /GLINE <parámetro> Los Bots 2D... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 Los Bots 2D no están permitidos en este servidor, para mas información lea la faq en http://www.ejemplo.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: files {}
|
||||
* VIEJO: include/config.h
|
||||
*
|
||||
* Este bloque se sobrepone con el dirctorio principal del IRCd para cargar cosas
|
||||
* como el MOTD, el PIPfile, o escribir/cargar el tunefile. La
|
||||
* existencia de este bloque permite una instalación de UnrealIRCd a
|
||||
* soportar múltiples instancias corriendo cuando es combinado con la opción -c
|
||||
* en la línea de comandos.
|
||||
*
|
||||
* Usualmente. Los directorios relativos son interpretados relativamente a el directorio
|
||||
* donde UnrealIRCd encuentra unrealircd.conf si -c -no-
|
||||
* es especificado en la línea de comandos.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* El Mensaje del Dia (MOTD - Message of the Day) mostrado a los usuarios que se conectan: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Un MOTD corto. Si el archivo existe, sera mostrado a
|
||||
* el usuario en vez del MOTD. Los usuarios todavia podrán ver el
|
||||
* MOTD completo usando el comando /MOTD.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Mostrado cuando un operador usa /OPER y se loguea exitosamente. */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* El MOTD de los Servicios. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* El MOTD de los Bots */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Las reglas que se muestran al usar /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Donde el IRCd guarda y carga algunos parámetros que deberían
|
||||
* ser persistentes entre reinicios del servidor. Debe apuntar a un
|
||||
* archivo existente el cual el IRCd tiene permiso para alterarlo o un
|
||||
* archivo en una carpeta donde el IRCd puede crear archivos.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Donde guardar el PID del IRCd. Debería ser modificable por el IRCd. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: tld {}
|
||||
* VIEJO: T:Line
|
||||
* Esto configura MOTDs y RULES distintos
|
||||
* dependiendo en la máscara de host del cliente.
|
||||
* La sintaxis es:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(archivo-motd)";
|
||||
* rules "(archivo-rules)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* NOTA: tu puedes simplemente borrar el bloque de ejemplo aqui arriba,
|
||||
* en ese caso los MOTD/RULES normales (ircd.motd, ircd.rules)
|
||||
* serán usados para todos.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NUEVO: ban nick {}
|
||||
* VIEJO: Q:Line
|
||||
* Banea a un nick, así no puede ser usado.
|
||||
* La sintaxis es la siguiente:
|
||||
* ban nick {
|
||||
* mask "(nick a banear)";
|
||||
* reason "(rasón)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservado para los Servicios";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban ip {}
|
||||
* VIEJO: Z:Line
|
||||
* Banea una IP de conectarse a la red.
|
||||
* Sintaxis:
|
||||
* ban ip { mask (ip/hostmask); reason "(rasón)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Servidor delinkeado";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban server {}
|
||||
* VIEJO: Server Q:Line
|
||||
* Prohibe a un servidor de conectarse a la red.
|
||||
* Si el servidor se linkea a un servidor remoto, el servidor local
|
||||
* se desconectará de la red.
|
||||
* La sintaxis es la siguiente:
|
||||
* ban server {
|
||||
* mask "(nombre.del.servidor)";
|
||||
* reason "(Rasón)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Fuera de aca.";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban user {}
|
||||
* VIEJO: K:Line
|
||||
* Esto hace que un usuario con una máscara de host determinada no se pueda conectar
|
||||
* a tu servidor.
|
||||
* Sintaxis:
|
||||
* ban user { mask (hostmask/ip); reason "(rasón)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiota";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: ban realname {}
|
||||
* VIEJO: n:Line
|
||||
* Este bloque banea a un determinado realname (nombre real) de ser usado.
|
||||
* Sintaxis:
|
||||
* ban realname {
|
||||
* mask "(nombre real)";
|
||||
* reason "(rasón)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTA PARA TODOS LOS BANS, puedes repetirlos para agregar mas!
|
||||
*
|
||||
* NUEVO: except ban {}
|
||||
* VIEJO: E:Line
|
||||
* Eso hace que no puedas ser baneado.
|
||||
* Sintaxis:
|
||||
* except ban { mask (ident@host); };
|
||||
* Repite el except ban {} cuantas veces quieras
|
||||
* para diferentes bans.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* no banees a stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: deny dcc {}
|
||||
* VIEJO: dccdeny.conf
|
||||
* Use este block para denegar DCC SENDs...
|
||||
* detiene a los virus mejor.
|
||||
* Sintaxis
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "(archivo a bloquear (por ejemplo: *.exe"));
|
||||
* reason ("rasón");
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Posiblemente un virus Sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: deny channel {}
|
||||
* VIEJO: N/A (NUEVO)
|
||||
* Esto bloquea canales de ser creados.
|
||||
* Sintaxis:
|
||||
* deny channel {
|
||||
* channel "(canal)";
|
||||
* reason "rasón";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "El Warez es ilegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* Setea una IP para los no-operadores, o
|
||||
* para opers muy flojos para hacer /sethost :P
|
||||
* Sintaxis:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host.a.permitir.usar.el.vhost);
|
||||
* };
|
||||
* login (nombre del login);
|
||||
* password (contraseña);
|
||||
* };
|
||||
* para usar este vhost, usa /vhost (login) (contraseña) en IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Puedes incluir otros archivos de configuración */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuración de la red */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Las llaves de cifrado (cloak keys) deberían ser las mismas en toda la red.
|
||||
* Son usadas para generar hosts "enmascarados" y mantenerlos secretos.
|
||||
* Las llaves deben ser 3 cadenas aleatorias de 5 a 100 carácteres
|
||||
* (de 10 a 20 es aceptable también) y deben tener una minúscula (a-z),
|
||||
* mayúscula (A-Z) y dígitos (0-9) [mira el ejemplo de la primera llave].
|
||||
* CONSEJO: En *NIX puedes ejecutar './unreal gencloak' en tu shell para hacer que
|
||||
* Unreal genere tres cadenas aleatorias por ti.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
/* host para los operadores */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuración específica del servidor */
|
||||
|
||||
set {
|
||||
kline-address "configura.este@email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Puedes habilitar el chequeo de ident si quieres*/
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* El tiempo mínimo que un usuario debe estar conectado antes de usar un mensaje QUIT,
|
||||
* Esto podria detener el spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Hace que el mensaje en static-quit se muestr en todos kis quits - significando que
|
||||
no se permiten quits personalizados en este servidor */
|
||||
/* static-quit "El Cliente se desconectó"; */
|
||||
|
||||
/* También puedes bloquear todas las razones de part, descomentando el siguiente comentario y poniendo 'yes',
|
||||
* o especificar otro mensaje (ejemplo: "¡Adiós!") para usar siempre como razón. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Esto permite que pudas hacer algunos comandos de /stats solo para uso de los operadores, use * para ocultar todos los stats,
|
||||
* dejelo en blanco para permitir a los usuarios ver todos los /stats. Escriba '/stats' para una lista completa.
|
||||
* Algunos administradores querrán remover los stats "kGs" para prohibir a los usuarios normales ver los
|
||||
* klines, glines y shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Regulación de Conexiones: este ejemplo setea un límite de 3 intentos de conexión cada 60 segundos (por host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protección anti-flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 cambios de nick por cada 60 segunos (por defecto) */
|
||||
};
|
||||
|
||||
/* Filtro de Spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* duración de un *line puesto por spamfilter (filtro de spam) */
|
||||
ban-reason "Spam/Publicidad"; /* razón */
|
||||
virus-help-channel "#help"; /* canal para usar para la acción "viruchan" */
|
||||
/* exceptuar "#help"; el canal "#help" esta libre de filtro */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problemas o necesitas mas ayuda?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ (en inglés)<- ¡contiene el 80% de tus preguntas!
|
||||
* 3) Si sigues teniendo problemas, ve a irc.unrealircd.org #unreal-support,
|
||||
* ¡nótese que NECESITAMOS que leas la DOCUMENTACIÓN y la FAQ antes de preguntarnos!
|
||||
*/
|
||||
+127
-74
@@ -4,22 +4,22 @@
|
||||
* Tradution française : Alef Burzmali - http://www.burzmali.com
|
||||
* Dernière mise à jour : 2010-09-11
|
||||
* $Id$
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
*
|
||||
* Fonctionne pour Unreal3.2.x
|
||||
*
|
||||
* Okay les gars, voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
* Peu importe, il est temps de se lancer. Il est difficile de l'attaquer pour la première fois, mais
|
||||
* avec un peu d'expérience et de lecture vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
*
|
||||
* NOTE: Toutes les lignes, exceptées les ligne d'ouvertures { , se terminent par un ;, en particulier
|
||||
* celles de fermeture }.
|
||||
* L'IRCd ignorera les lignes commentées.
|
||||
*
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html !
|
||||
* La version en ligne est aussi disponible à : http://www.unrealircd.com/files/docs/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournit des informations
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournit des informations
|
||||
* à propos de chaque bloc, variable, etc..
|
||||
* Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
|
||||
* vous êtes presque sûr de vous tromper.
|
||||
@@ -59,15 +59,15 @@ include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et l'identifiant numérique pour ce serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* info "Description du Serveur";
|
||||
* numeric (numeric* serveur);
|
||||
* };
|
||||
* };
|
||||
* En cas de link, cet identifiant ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
@@ -78,14 +78,14 @@ me
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* Admin donne des informations sur les server admins.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
@@ -96,9 +96,9 @@ admin {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Définit les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Définit les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, pour les connexions serveurs, au lieu de passer par une classe
|
||||
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||
* class (nom de la classe)
|
||||
@@ -127,18 +127,18 @@ class servers
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* Définit les autorisations de connexions...
|
||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* allow {
|
||||
* ip (ip mask à autoriser);
|
||||
* hostname (host mask);
|
||||
* class (classe à laquelle les renvoyer [voir class {}]);
|
||||
* password "(mot de passe)"; (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* };
|
||||
*/
|
||||
|
||||
@@ -159,20 +159,20 @@ allow {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Définit un IRC Operateur
|
||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent du bloc allow, les déplace vers une nouvelle classe);
|
||||
* from {
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent du bloc allow, les déplace vers une nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
@@ -205,19 +205,19 @@ oper bobsmith {
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Définit un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* options {
|
||||
* (options ici);
|
||||
* };
|
||||
* };
|
||||
* ou pour une écoute
|
||||
* indifférente : listen (ip):(port);
|
||||
*
|
||||
*
|
||||
* NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
|
||||
*
|
||||
*
|
||||
* Cela fonctionne également.
|
||||
*/
|
||||
|
||||
@@ -231,7 +231,7 @@ oper bobsmith {
|
||||
*/
|
||||
|
||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
|
||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
||||
* avez vous déjà vu un ircd fonctionner sur celui-ci ?
|
||||
@@ -252,8 +252,8 @@ listen *:6697
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: Si vous êtes sur un shell avec de multiples IP vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
/* NOTE: Si vous êtes sur un shell avec de multiples IP vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
* dans vos logs et l'ircd refusera de démarer.
|
||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||
* Donc par exemple :
|
||||
@@ -283,9 +283,9 @@ listen *:6667;
|
||||
* };
|
||||
* // Si vous utilisez le SSL, vous pouvez choisir quel algorithme de hash utiliser dans le mode SSL
|
||||
* // Utilisez la commande "openssl ciphers" pour obtenir la liste des algorithmes disponibles, séparez les par des ":"
|
||||
*
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
@@ -340,7 +340,7 @@ ulines {
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
@@ -351,27 +351,27 @@ drpass {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||
* autant que vous le souhaitez.
|
||||
*
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
retirez ceci pour toujour utiliser le même fichier de log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
@@ -399,7 +399,7 @@ log "ircd.log" {
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
@@ -442,7 +442,7 @@ alias StatServ { type stats; };
|
||||
* };
|
||||
*/
|
||||
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
|
||||
* différente dans sa syntaxe, bien qu'elle a une fonction similaire et dépend des alias standards pour
|
||||
* différente dans sa syntaxe, bien qu'elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
@@ -460,8 +460,8 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La directive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvoit donc à l'alias chanserv avec
|
||||
/* La directive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvoit donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commande /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoie alors la commande à l'alias nickserv avec les paramètres
|
||||
* IDENTIFY %1-.
|
||||
@@ -512,14 +512,63 @@ alias "glinebot" {
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : files {}
|
||||
* ANCIEN : include/config.h
|
||||
*
|
||||
* Ce bloc écrase les chemins utilisés par défaut par l'IRCd pour charger des choses
|
||||
* comme le MOTD, enregistrer son PID ou écrire ou lire son fichier de sauvegarde (tunefile).
|
||||
* L'existence de ce bloc permet à une installation de UnrealIRCd de supporter
|
||||
* plusieurs instances tournant simultanément lorsque combinée à l'option de ligne
|
||||
* de commande -c
|
||||
*
|
||||
* Comme d'habitude, les chemins relatifs sont interprétés à partir du répertoire
|
||||
* dans lequel UnrealIRCd trouverait unrealircd.conf si -c N'est PAS spécifiée
|
||||
* sur la ligne de commande.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* Le message du jour (Message Of The Day) affiché aux utilisateurs se connectant : */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Un MOTD court. Si ce fichier existe, il sera affiché aux
|
||||
* utilisateurs à la place du MOTD. Ceux-ci peuvent toujours voir
|
||||
* le MOTD complet en utilisant la commande /MOTD
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Affiché lorsqu'un opérateur utilise /OPER */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* MOTD des services. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* MOTD des bots */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Affiché par la commande /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Fichier dans lequel l'IRCd sauvegarde et charge quelques valeurs qui devraient
|
||||
* être conservées malgré les redémarrages du serveur. Doit pointer vers un fichier
|
||||
* existant que l'IRCd peut modifier ou vers un fichier dans un dossier dans
|
||||
* lequel l'IRCd peut créer des fichiers.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Fichier dans lequel l'IRCd stocke son pid. L'IRCd doit pouvoir le modifier. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : tld {}
|
||||
* ANCIEN : T:Line
|
||||
* Ceci applique une motd et des fichiers de règles différents
|
||||
* Ceci applique un MOTD et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
@@ -617,10 +666,10 @@ ban realname {
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
@@ -633,13 +682,13 @@ except ban {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoi de dcc ...
|
||||
* Utile pour bloquer les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* Utile pour bloquer les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
@@ -657,26 +706,30 @@ deny dcc {
|
||||
* deny channel {
|
||||
* channel "(salon)";
|
||||
* reason "raison";
|
||||
* class "clients"; (optionnel)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* class "clients"; (optionnel)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -684,9 +737,9 @@ allow channel {
|
||||
* ANCIEN : Vhost.conf file
|
||||
* Applique une ip factice aux non-opers, ou aux
|
||||
* opers trop flemmards pour utiliser /sethost :P
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
|
||||
+54
-2
@@ -3,7 +3,7 @@
|
||||
* A magyar fordítást AngryWolf <angrywolf2009@gmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
* Felhasználható Unreal3.2.x
|
||||
*
|
||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
||||
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||
@@ -164,10 +164,12 @@ allow {
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* class "clients"; (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -532,7 +534,55 @@ alias "glinebot" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: files {}
|
||||
* RÉGI: include/config.h
|
||||
*
|
||||
* Ez a blokk felülírja az IRCd alapértelmezett útvonalait olyan fájlok
|
||||
* betöltésére, mint az MOTD, PID fájl mentése vagy a behangoló fájl
|
||||
* írása/olvasása. Ennek a blokknak a jelenléte támogatást ad arra, hogy
|
||||
* egyetlen telepített UnrealIRCd-nek több példányát futtassuk, amikor
|
||||
* a -c parancssori opcióval párosítjuk.
|
||||
*
|
||||
* Ahogy megszoktuk, a relatív útvonalak ahhoz a könyvtárhoz relatívan
|
||||
* értendőek, ahol az UnrealIRCd megtalálja az unrealircd.conf fájlt,
|
||||
* hacsak nem a -c paramétert megadjuk a parancssorban.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* A Nap Üzenete (Message Of The Day), elküldve a belépett felhasználóknak: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Egy rövid MOTD (short MOTD). Ha létezik ez a fájl, ezt a fájlt
|
||||
* fogják látni a felhasználók az MOTD helyett. A teljes MOTD-t
|
||||
* továbbra is megnézhetik az /MOTD parancs használatával.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Megjelenik, ha egy operátor bejelentkezik (/OPER) */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* MOTD hozzáfűzés a szolgáltatásoknak. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* Bot MOTD */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Megjelenik a /RULES parancsra */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Itt tárol és innen tölt be az IRCd néhány olyan értéket, amelyet
|
||||
* minden szerverújraindítás során meg kell őriznie. Egy olyan fájlra
|
||||
* kell, hogy mutasson, amely létezik, és az IRCd-nek van módosítási joga,
|
||||
* vagy pedig olyan könyvtárban van, ahol az IRCd-nek van fájllétrehozási joga.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Ide mentjük az IRCd PID fájlját. Az IRCd számára írhatónak kell lennie. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: tld {}
|
||||
@@ -677,11 +727,13 @@ deny dcc {
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* class "clients"; (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
* $Id$
|
||||
* Vertaald door Mark
|
||||
*
|
||||
* Werkt voor Unreal3.2 en hoger
|
||||
* Werkt voor Unreal3.2.x
|
||||
*
|
||||
* Dit is de nieuwe example.conf. Het lijkt veel op C++.
|
||||
* Het begin is wellicht moeilijk, maar met wat ervaring en lezen
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* (Encoding): Windows-1251
|
||||
*
|
||||
* Работает для Unreal3.2 и выше
|
||||
* Работает для Unreal3.2.x
|
||||
*
|
||||
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
|
||||
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
|
||||
|
||||
+841
-787
File diff suppressed because it is too large
Load Diff
+16
-6
@@ -101,7 +101,7 @@ help Umodes {
|
||||
" N = Administrateur du Réseau";
|
||||
" C = Co-Administrateur du Serveur";
|
||||
" -";
|
||||
" d = Fait en sorte que vous ne receviez plus les PRIVMSGs des salons (Sourd)";
|
||||
" d = Ne reçoit que les PRIVMSGs aux salons commençant par un caractère de commande pour bot";
|
||||
" g = Peut lire et envoyer des notices aux GlobOps et aux LocOps";
|
||||
" h = Disponible pour aider (Help Operator)";
|
||||
" i = Invisible (Non montrés dans les recherchers /WHO)";
|
||||
@@ -117,6 +117,7 @@ help Umodes {
|
||||
" B = Vous marque comme étant un Bot";
|
||||
" G = Remplace tous les 'Bad words' dans vos messages par <censored>";
|
||||
" H = Cache le status d'IRCop dans les /WHO et /WHOIS. (Opérateurs IRC uniquement)";
|
||||
" I = Cache le temps d'inactivité d'un IRCop dans les /WHOIS pour les utilisateurs normaux";
|
||||
" R = Vous permet de ne recevoir des PRIVMSGs/NOTICEs que d'utilisateurs enregistrés (+r)";
|
||||
" S = Pour les services uniquement. (Les protège)";
|
||||
" T = Vous empêche de recevoir des CTCPs";
|
||||
@@ -244,11 +245,20 @@ help ExtBans {
|
||||
" | | les exceptions (+e). Exemple : +e ~R:Nick autorisera ";
|
||||
" | | Nick sur le salon, même s'il est banni, s'il est ";
|
||||
" | | identifié sur NickServ et utilise le pseudo Nick. ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" ----------------------------------------------------------------------------------";
|
||||
" | | Si un utilisateur s'est identifié auprès des Services ";
|
||||
" | | (Nickserv) avec ce compte, il correspondra au ban. Ceci ";
|
||||
" | | est un peu différent de ~R, car un utilisateur de nick ";
|
||||
" ~a | account | ABC peut être connecté au compte XYZ. ";
|
||||
" | | Tous les services ne supportent pas cette option, auquel";
|
||||
" | | cas vous devrez utiliser ~R. ";
|
||||
" | | Exemple: +e ~a:Name ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
"Vous pouvez cumuler les bans étendus du premier groupe avec ceux du second.";
|
||||
"Exemple : +b ~q:~c:#lamers";
|
||||
"Ceci rendra muet tous les utilisateurs qui sont aussi sur #lamers.";
|
||||
"Vous pouvez cumuler les bans étendus du premier groupe avec ceux du deuxième.";
|
||||
"Par exemple, <i>+b ~q:~c:#lamers</i> rendra silencieux tous les membres de #lamers.";
|
||||
"Les bans du 2e groupe peuvent aussi être utilisés avec le mode +I (Invite exceptions),";
|
||||
"comme par exemple : <i>+I ~c:#trusted</i> et <i>+I ~a:accountname</i>.";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
@@ -919,7 +929,7 @@ help Rehash {
|
||||
" Si ni <nom du serveur> ni [flag] n'est spécifié, ceci rechargera le fichier";
|
||||
" unrealircd.conf et tous les fichiers MOTD, BOTMOTD, OPERMOTD et RULES.";
|
||||
" Si <nom du serveur> est spécifié, ceci rechargera le serveur distant.";
|
||||
" Si -global est spécifié, alors tous les serveurs sur le réseau seront rehashés.
|
||||
" Si -global est spécifié, alors tous les serveurs sur le réseau seront rehashés.";
|
||||
" Seuls les NetAdmins peuvent spécifier un nom de serveur ou -global.";
|
||||
" -";
|
||||
" Les flags sont utilisés pour recharger d'autres fichiers de configuration.";
|
||||
|
||||
@@ -118,6 +118,8 @@ help Umodes {
|
||||
" G = Нецензурные слова в сообщениях заменяются на <censored>";
|
||||
" H = Скрывает статус IRC оператора в запросах /WHO и /WHOIS.";
|
||||
" (только для IRC операторов)";
|
||||
" I = Скрывает время простоя оператора (в команде /whois) от обычных";
|
||||
" пользователей.";
|
||||
" R = Ограничивает получение PRIVMSGs/NOTICEs только от";
|
||||
" зарегистрированных (+r) пользователей";
|
||||
" S = Для нужд сервисов. (В целях защиты)";
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
* 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 - http://www.ircforumlari.net/
|
||||
* İletişim: diablo@unrealircd.org
|
||||
*/
|
||||
|
||||
help {
|
||||
@@ -100,7 +100,7 @@ help Umodes {
|
||||
" N = Network Administrator";
|
||||
" C = Co Administrator";
|
||||
" -";
|
||||
" d = Kanalda yazılan mesajları görmenizi engeller";
|
||||
" d = Sadece bot komut karakteri ile başlayan kanal 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)";
|
||||
|
||||
@@ -154,3 +154,7 @@ EAUTH Early Authorization. This makes it possible for servers to authent
|
||||
SERVERS Informs the other server about the other servers (numerics) on this network
|
||||
(including our own numeric).
|
||||
Syntax: SERVERS=numeric1,numeric2,numeric3,etc
|
||||
|
||||
ESVID This token indicates that the traditional services stamp value may take any
|
||||
arbitrary value for the SVID field, such as an account name or other unique
|
||||
identifier, including a traditional timestamp value.
|
||||
|
||||
+468
-467
@@ -1,467 +1,468 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
|
||||
<title>Unreal 3.2 Protocol Documentation</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Unreal 3.2 Protocol Documentation</h1>
|
||||
<h3 style="text-align: center;">Last update: 29 November 2006</h3>
|
||||
<h1>Table of Contents</h1>
|
||||
<p><a href="#S1">1 Introduction</a></p>
|
||||
<p><a href="#S2">2 Server Negotiation</a></p>
|
||||
<blockquote><p><a href="#S2_1">2.1 PASS - Connection Password</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_2">2.2 PROTOCTL - Server Protocol Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_3">2.3 SERVER - Server Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_4">2.4 EOS - End Of Synch</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_5">2.5 NETINFO - Network Information</a></p></blockquote>
|
||||
<p><a href="#S3">3 User Operations</a></p>
|
||||
<blockquote><p><a href="#S3_1">3.1 NICK - User Introduction and Nick Change</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S3_1_1">3.1.1 Nick Collisions</a></p></blockquote></blockquote>
|
||||
<blockquote><p><a href="#S3_2">3.2 MODE, UMODE2 - User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_3">3.3 QUIT - User Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_4">3.4 KILL - Force Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_5">3.5 SETHOST/CHGHOST - Change virtual host</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_6">3.6 SETIDENT/CHGIDENT - Change a user's username</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_7">3.7 SETNAME/CHGNAME - Change a user's realname</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_8">3.8 WHOIS - User Information</a></p></blockquote>
|
||||
<p><a href="#S1">4 Server Operations</a></p>
|
||||
<blockquote><p><a href="#S4_1">4.1 SERVER - Server Introduction</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_2">4.2 SQUIT - Server Removal</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_3">4.3 SDESC - Server Description</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_4">4.4 PING - Live Connection Query</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_5">4.5 PONG - Live Connection Reply</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_6">4.6 STATS - Server Stats</a></p></blockquote>
|
||||
<p><a href="#S5">5 Channel Operations</a></p>
|
||||
<blockquote><p><a href="#S5_1">5.1 SJOIN - Channel Burst</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_2">5.2 JOIN - Channel Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_3">5.3 PART - Channel Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_4">5.4 KICK - Channel Kick</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_5">5.5 MODE - Channel Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_6">5.6 INVITE - Invite a user to a channel</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_7">5.7 SAJOIN - Channel Force Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_8">5.8 SAPART - Channel Force Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_9">5.9 SAMODE - Channel Force Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_10">5.10 TOPIC - Chanel Topic</a></p></blockquote>
|
||||
<p><a href="#S6">6 Services Commands</a></p>
|
||||
<blockquote><p><a href="#S6_1">6.1 SVSKILL - Force Disconnect by Service</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_2">6.2 SVSMODE, SVS2MODE - Force User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_3">6.3 SVSSNO, SVS2SNO - Forced SNomask Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_4">6.4 SVSNICK - Forced Nick Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_5">6.5 SVSJOIN - Forced Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_6">6.6 SVSPART - Forced Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_7">6.7 SVSO - Oper Permissions</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_8">6.8 SVSNOOP - Oper Lockdown</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_9">6.9 SVSNLINE - RealName Ban</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_10">6.10 SVSFLINE - File Ban</a></p></blockquote>
|
||||
<p><a href="#S7">7 Messaging</a></p>
|
||||
<blockquote><p><a href="#S7_1">7.1 PRIVMSG, NOTICE - Simple Message Transmission</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_2">7.2 SENDUMODE, SMO - Usermode-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_3">7.3 SENDSNO - SNomask-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_4">7.4 CHATOPS - IRCop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_5">7.5 WALLOPS - Wallop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_6">7.6 GLOBOPS - FailOp Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_7">7.7 ADCHAT - Admin Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_8">7.8 NACHAT - NetAdmin Chat</a></p></blockquote>
|
||||
<p><a href="#S8">8 Ban Control</a></p>
|
||||
<blockquote><p><a href="#S8_1">8.1 TKL - Master Ban Control</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_1">8.1.1 GLINE - Network-wide user@host ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_2">8.1.2 GZLINE - Network-wide IP ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_3">8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_4">8.1.4 SPAMFILTER - Message Spam Filtration System</a></p></blockquote></blockquote>
|
||||
<p><a href="#S9">9 Base64 Tables</a></p>
|
||||
<blockquote><p><a href="#S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></p></blockquote>
|
||||
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
||||
<hr/>
|
||||
<h1><a name="S1"></a>1 Introduction</h1>
|
||||
<p>This document describes the UnrealIRCd server-to-server protocol as of protocol 2307 (Unreal 3.2.4).
|
||||
It is currently slightly out of date, as the current protocol is 2310, but that should not matter much.</p>
|
||||
<h2>A word about clocks.</h2>
|
||||
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
||||
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
||||
<hr/>
|
||||
<h1><a name="S2"></a>2 Server Negotiation</h1>
|
||||
<p>The first step to establish a server-to-server communication is to negotiate the connection as a server. Negotiation is done using standard IRC commands - no PROTOCTL options are in force until the link is established. The first step is to open a TCP/IP connection to the target server. The target port must be one described by a listen {} block in the remote server's configuration, and that listen block must not have the clientsonly option. After the connection is open, you will be treated as any other connection and be greeted with the "Looking up your hostname..." and "Checking identd..." notices as you would for a client. As these are NOTICE messages and your session as a server isn't established, they should simply be ignored. Use the commands below to introduce a server connection.</p>
|
||||
<h2><a name="S2_1"></a>2.1 PASS - Connection Password</h2>
|
||||
<p><b>Syntax:</b> <tt>PASS :<i>link password</i></tt></p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S2_2"></a>2.2 PROTOCTL - Server Protocol Negotiation</h2>
|
||||
<p><b>Syntax:</b> <tt>PROTOCTL <i>protocol options</i></tt></p>
|
||||
<p>The PROTOCTL command sets several protocol options. The tokens supported are listed below.</p>
|
||||
<ul>
|
||||
<li>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.</li>
|
||||
<li>TOKEN : Use tokenized commands. Tokens are case-sensitive, shortened versions of command names. Tokens will be usually one or two characters.</li>
|
||||
<li>NICKv2 : Use extended NICK message for introducing users. See the NICK command for information about this.</li>
|
||||
<li>VHP : When introducing a user, send his cloaked host as if it were a vhost. Usually used for services to avoid having duplicate code.</li>
|
||||
<li>SJOIN : Supports SJOIN version 1 which is no longer in use. Use with SJ3.</li>
|
||||
<li>SJOIN2 : Supports SJOIN version 2 which is no longer in use. Use with SJ3.</li>
|
||||
<li>UMODE2 : Supports the UMODE2 command, which is a shortened version of MODE for usermode changes.</li>
|
||||
<li>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.</li>
|
||||
<li>SJ3 : Supports SJOIN version 3.</li>
|
||||
<li>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.</li>
|
||||
<li>SJB64 : Timestamps in NICK and SJOIN are expressed in base64 rather than base10.</li>
|
||||
<li>TKLEXT : Supports exntended TKL messages for spamfilter support.</li>
|
||||
<li>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.</li>
|
||||
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
||||
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
||||
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
||||
</ul>
|
||||
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
||||
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
||||
<p><b>Note:</b> This message is also used for introducing additional servers, the format of this message in those cases is described later.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>SERVER <i>server.name</i> 1 :<i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i> <i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL and NS):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i>-<i>servernumeric</i> <i>server description</i></tt></p>
|
||||
<p>The literal 1 in the parameter list is the hopcount parameter. Since you are a direct link, your own hopcount will be 1.</p>
|
||||
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
||||
<p>The following version numbers have been used previously:</p>
|
||||
<ul>
|
||||
<li>2310 - Unreal 3.2.9</li>
|
||||
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
||||
<li>2308 - Unreal 3.2.5</li>
|
||||
<li>2307 - Unreal 3.2.4</li>
|
||||
<li>2306 - Unreal 3.2.3</li>
|
||||
<li>2305 - Unreal 3.2.2</li>
|
||||
<li>2304 - Unreal 3.2.1</li>
|
||||
<li>2303 - Unreal 3.2beta* through 3.2 Release</li>
|
||||
<li>2302 - Unreal 3.1.1 through 3.1.4</li>
|
||||
<li>2301 - Unreal 3.1 Release</li>
|
||||
<li>2300 - Unreal 3.0 Release</li>
|
||||
</ul>
|
||||
<p>The compile flags as specified in protocol flags are:</p>
|
||||
<ul>
|
||||
<li>c : Server is chrooted (#define CHROOTDIR).</li>
|
||||
<li>C : Server has command line config (-f option) enabled (#define CMDLINE_CONFIG).</li>
|
||||
<li>D : Server is in debugmode (#define DEBUGMODE).</li>
|
||||
<li>F : Using filedescriptor lists.</li>
|
||||
<li>h : Server is compiled with hub support (#define HUB or answer "Hub" to relevant ./Config prompt).</li>
|
||||
<li>i : Server shows invisible users in /TRACE.</li>
|
||||
<li>n : NOSPOOF (pingcookies) is enabled (#define NOSPOOF or answer "Yes" to relevant ./Config prompt).</li>
|
||||
<li>V : Server is using valloc().</li>
|
||||
<li>W : Windows IRCd.</li>
|
||||
<li>Y : Syslog logging enabled.</li>
|
||||
<li>6 : Server has IPv6 support (#define INET6 or answer "yes" to relevant ./Config prompt).</li>
|
||||
<li>X : Server has badword stripping (user and channel modes +G) (#define STRIPBADWORDS).</li>
|
||||
<li>P : Server is using poll().</li>
|
||||
<li>e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).</li>
|
||||
<li>O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>o : Server has disabled Oper verify (#undef OPEROVERRIDE_VERIFY or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>Z : Server has ziplink support (#define ZIP_LINKS or answer "yes" to relevant ./Config prompt AND have the zlib dev libraries).</li>
|
||||
<li>E : Server has extended channel mode support.</li>
|
||||
<li>3 : 3rd party modules are loaded or some system libraries are wonky.</li>
|
||||
<li>m : Private message handling is 'tainted' (one or modules registered a USERMSG hook).</li>
|
||||
<li>M : Channel message handling is 'tainted' (one or modules registered a CHANMSG hook).</li>
|
||||
<li>Additional Version flags can be added by 3rd-party modules.</li>
|
||||
</ul>
|
||||
<h2><a name="S2_4"></a>2.4 EOS - End Of Synch (TOKEN: ES)</h2>
|
||||
<p><b>Syntax:</b> ES</p>
|
||||
<p>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).</p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S2_5"></a>2.5 NETINFO - Network Information (TOKEN: AO)</h2>
|
||||
<p><b>Syntax:</b> AO <i>maxglobal</i> <i>currenttime</i> <i>protocolversion</i> <i>cloakhash</i> 0 0 0 :<i>networkname</i></p>
|
||||
<p>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).</p>
|
||||
<p>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).</p>
|
||||
<hr/>
|
||||
<h1><a name="S3"></a>3 User Operations</h1>
|
||||
<p>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.</p>
|
||||
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
||||
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
||||
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
||||
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>servicestamp</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
||||
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
||||
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
||||
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
||||
<p>A nick collision occurs when a server receives a NICK message (or & token) introducing a user that the server already sees on the network. When a collision occurs, one or both of the colliding clients must be disconnected. The timestamp is examined to determine which client loses. The client with the earlier timestamp remains. If both clients have equal timestamps, both are removed. Currently, Unreal handles NICK collisions both passively and agressively:</p>
|
||||
<ul>
|
||||
<li><b>Aggressive Handling:</b> The server actively sends a KILL message back across the link to terminate that end's client.</li>
|
||||
<li><b>Passive Handling:</b> Upon receipt of a NICK message that should "win", the server simply silently exits it's own client.</li>
|
||||
</ul>
|
||||
<h2><a name="S3_2"></a>3.2 MODE, UMODE2 - User Mode Change (TOKEN: G or |)</h2>
|
||||
<p><b>Syntax (MODE):</b> <tt>:<i>user</i> G <i>user</i> <i>modechange</i></tt></p>
|
||||
<p><b>Syntax (UMODE2):</b> <tt>:<i>user</i> | <i>modechange</i></tt></p>
|
||||
<p>This indicates a usermode change. The modechange can consist of zero or more strings of characters, each prefixed with either a + or -; the only delimiter between them being said + or -. If no + or - is at the beginning of the mode string, a + should be implied.</p>
|
||||
<p>Some user modes are never sent between servers. Specifically, usermode +s and +O are not sent between servers. Modules can define additional usermodes that also might not be sent between servers. The UMODE2 saves bandwidth by not including the redundant target field for usermode changes, so use it when possible.</p>
|
||||
<h2><a name="S3_3"></a>3.3 QUIT - User Disconnect (TOKEN: ,)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>user</i> , :<i>reason</i></tt></p>
|
||||
<p>This command indicates that a user has disconnected. The reason field is filled in with the reason the user disconnected, which will be any of: quit message provided by the user in a /quit command, kill message for local operator kills, "Client exited" if the user does a brutal quit (clean (by TCP's definition) disconnect without sending a QUIT message), or a socket error message if present.</p>
|
||||
<p>The QUIT message must NOT be prefixed when passing on to other servers. Only local user quit messages are affected by set::prefix-quit.</p>
|
||||
<h2><a name="S3_4"></a>3.4 KILL - Force Disconnect (TOKEN: .)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> . <i>target</i> :<i>killpath</i>!<i>source</i> (<i>reason</i>)</tt></p>
|
||||
<p>Used to indicate that an operator has used KILL on a user not on the same server. Anything beyond the last ! in the kill path is used as the reason. The source (reason) part is simply a standard used by Unreal. As each server passes on a KILL message, it usually prepends the bottommost part (up to the first .) of it's name followed by a ! character. When unreal receives a KILL from a directly connected irc operator, it will usually add that oper's vhost (or realhost if -x) as the first hop in the kill path, then follow with it's own name as mentioned before if it is passing to another server.</p>
|
||||
<p>A server can also send KILLs on it's own. This is done in cases involving nickname collisions, fake senders, bad direction, and other cases of protocol errors. Usually, in these cases, the server puts it's own name as the source, and also prefixes with <i>bottompart</i>! like for any other ircop on that server. For example: @3 . someone :irc!irc.example.com (Nick collision)</p>
|
||||
<h2><a name="S3_5"></a>3.5 SETHOST/CHGHOST - Change virtual host (TOKEN: AA or AL)</h2>
|
||||
<p><b>Syntax (SETHOST):</b> <tt>:<i>source</i> AA <i>newvhost</i></tt></p>
|
||||
<p><b>Syntax (CHGHOST):</b> <tt>:<i>source</i> AL <i>target</i> <i>newvhost</i></tt></p>
|
||||
<p>Indicates the change of a user's virtual host. Currently, servers are expected to assume UMODE2 +xt on the target user in both commands. (In the case of SETHOST, the target is the sender.) Servers using PROTOCTL VHP will receive the cloaked host in a SETHOST message when a user activates his cloaked host. A server can also send CHGHOST (from one of it's opered clients) to change a user's hostname. This is generally used by HostServ implementations. To disable a cloaked host, use CHGHOST to set the user's virtual host equal to his real host, or use SVSMODE -xt, but the latter requires services.</p>
|
||||
<h2><a name="S3_6"></a>3.6 SETIDENT/CHGIDENT - Change a user's username (TOKEN: AD or AZ)</h2>
|
||||
<p><b>Syntax (SETIDENT):</b> <tt>:<i>source</i> AD <i>newusername</i></tt></p>
|
||||
<p><b>Syntax (CHGIDENT):</b> <tt>:<i>source</i> AZ <i>target</i> <i>newusername</i></tt></p>
|
||||
<p>Indicates the change of a user's username. No usermode change is associated with this. Unreal does not use a distinguished virtual username, so servers should only keep the original username (from the NICK message) if they intend to allow the user to reset the original username. Servers can use CHGIDENT to change a user's username.</p>
|
||||
<h2><a name="S3_7"></a>3.7 SETNAME/CHGNAME - Change a user's realname (TOKEN: AE or BK)</h2>
|
||||
<p><b>Syntax (SETNAME):</b> <tt>:<i>source</i> AE :<i>newrealname</i></tt></p>
|
||||
<p><b>Syntax (CHGNAME):</b> <tt>:<i>source</i> BK <i>target</i> :<i>newrealname</i></tt></p>
|
||||
<p>Indicates the change of a user's realname. No usermode change is associated with this. Unreal does not use a distinguished virtual realname, so servers should only keep the original realname (from the NICK message) if they intend to allow the user to reset the original realname. Servers can use CHGNAME to change a user's username. Note that servers must NOT check that the sender be an IRCop in SETNAME - normal users are permitted to use SETNAME.</p>
|
||||
<h2><a name="#S3_8"></a>3.8 WHOIS - User Information (TOKEN: #)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> # [<i>from-server</i> ]<i>nick</i></tt></p>
|
||||
<p>Requests the information on a user. This works exactly like the user /whois command - in fact, the source parameter must be a user, or the command will do nothing. <i>from-server</i> is the server to request the information from; if a server recives a WHOIS message without this parameter, it should return its own information on the user, otherwise it should pass the message to the given server. Note that <i>from-server</i> may name a user instead of a server (such as when a user uses /whois nick nick), in which case the the nick should be interpreted as naming the server that user is on. <i>nick</i> may be several users seperated by commas, but may not contain wildcards.</p>
|
||||
<p>The reply to a WHOIS message uses the same numeric replies as the user command.</p>
|
||||
<hr/>
|
||||
<h1><a name="S4"></a>4 Server Operations</h1>
|
||||
<p>This is different from server negotiation. Negotiation is when you are first connecting. Server introduction is used for introducing additional servers behind an existing server (aka hubbing). Hubbing is limited as specified by the hub, leaf, and leafdepth parameters in the link block and attempted violation of a hub restriction results in termination of the link. If no hub or leaf directive is given your server is a leaf by default, so any introduction of any server behind you would be an automatic drop. U:Lines don't matter here; services must be configured as a hub in the link block. The reason is U:Line is a permission rule, but hub privilege is a network structure rule.</p>
|
||||
<h2><a name="S4_1"></a>4.1 SERVER - Server Introduction (TOKEN: ')</h2>
|
||||
<p><b>Note: This command is also used for negotiation. Be warned that the token for this command is NOT VALID at that time! See section 2.3 for the syntax for negotiation.</b></p>
|
||||
<p><b>Syntax (without PROTOCTL NS):</b> <tt>:<i>source</i> SERVER <i>new.server</i> <i>hopcount</i> :<i>description</i></tt></p>
|
||||
<p><b>Syntax (with PROTOCTL NS):</b> <tt>@<i>sourcenumeric</i> SERVER <i>new.server</i> <i>hopcount</i> <i>numeric</i> :<i>description</i></tt></p>
|
||||
<p>The command indicates that the server named new.server is being introduced by the source (the source is the server which new.server is directly linked to). The hopcount will be the number of links the receiving server would have to cross to reach new.server. In other words, new.server introduced itself with a hopcount of 1, and as the SERVER message is passed along, hopcount is incremented.</p>
|
||||
<p>As an example, a services server faking a SERVER message for JUPE functionality would use a hopcount of 2.</p>
|
||||
<h2><a name="S4_2"></a>4.2 SQUIT - Server Removal (TOKEN: -)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> SQUIT <i>server.name</i> <i>:reason</i></tt></p>
|
||||
<p>From an IRCop or when server.name is not behind the source, this command requests the removal of the specified server.name. The command in this case is treated very much like KILL in the respect that the message is broadcasted to all servers, except server.name and any servers behind it. When the SQUIT reaches server.name's uplink, that server closes the link to server.name (which would then generate it's own SQUIT on behalf of it's uplink for the servers behind it).</p>
|
||||
<p>A server can also use SQUIT in the same manner as QUIT to note the removal of a server behind it, or that it itself is quitting. In the former case, server.name is behind source, and the message is forward on to all other servers. In the latter case, source and server.name are equal, the receiving server closes the link and forwards the SQUIT message.</p>
|
||||
<p>Unreal closes a direct link by simply sending an ERROR message and then closing the TCP connection. This typically causes the other end to generate an SQUIT bearing the message "Client exited" or similar, however, the ERROR will usually cause the server to send a message to all IRCops.</p>
|
||||
<h2><a name="S4_3"></a>4.3 SDESC - Server Description (TOKEN: AG)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AG :<i>newdesc</i></tt></p>
|
||||
<p>The server to which source is connected to should have it's description updated to newdesc. This does NOT include the VL inforamtion.</p>
|
||||
<h2><a name="S4_4">4.4 PING - Live Connection Query (TOKEN: 8)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>8 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>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.</p>
|
||||
<p>The response to a PING is sent with the <a href="#S4_5">PONG</a> command.</p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S4_5">4.5 PONG - Live Connection Reply (TOKEN: 9)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>9 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to respond to a <a href="#S4_4">PING</a> query.</p>
|
||||
<p><b>Responding to a ping:</b> 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.</p>
|
||||
<p>For example, the response to <tt>8 uplink.server</tt> is <tt>9 my.name uplink.server</tt>, while the response to <tt>PING distant.server your.server</tt> is <tt>9 your.server distant.server</tt>. 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.
|
||||
<p>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.</p>
|
||||
<h2><a name="#S4_6"></a>4.6 STATS - Server Stats (TOKEN: 2)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> 2 [<i>type</i> [<i>server</i>] [<i>extended-params</i>]]</tt></p>
|
||||
<p>Requests statistics or configuration information from a server. This command is used to transport cross-server STATS requests from users (eg: /stats o other.server), and should only be sent from a user (not a server). With no parameters, this will cause unreal to simply dump its help output. <i>type</i> is the type of stats to request, <i>server</i> names a server (or a user on that server) to request stats from, and <i>extended-params</i> is used to filter output from STATS G, etc. When received, it is up to the receiver to determine what stats to support and how to reply, but generally numeric replies are used. For the list of unreal's stats types, type /stats in a client for the helptext dump.</p>
|
||||
<p><b>Note:</b> Stats set as oper-only (see set::oper-only-stats) will be refused from a server. In this case, it will be necessary to send the stats request from a psuedo-oper (such as a services agent, etc) for services/stats/etc.</p>
|
||||
<hr/>
|
||||
<h1><a name="S5"></a>5 Channel Operations</h1>
|
||||
<p>These commands deal with the state of channels across the network. Unreal only supports Network Channels, where the first character is a # character.</p>
|
||||
<h2><a name="S5_1"></a>5.1 SJOIN - Channel Burst (TOKEN: ~)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> ~ <i>timestamp</i> <i>channel</i> +<i>modes</i>[ <i>modeparams</i>] :<i>memberlist</i> <i>&ban</i> <i>"exempt</i> <i>'invex</i></tt></p>
|
||||
<p>Timestamp is the channel timestamp and can be !b64 as defined by PROTOCTL SJB64. Modes should only include those in the last three mode sets listed in CHANMODES. Modeparams is one parameter for each mode character that requires one. Memberlist is a series of users (all of which must at least be behind the server sending the SJOIN), each user is prefixed with one or more characters indicating their status. Owners (+q) are prefixed with *, admins (+a) ~, ops (+o) @, halfops (+h) %, voices (+v) +. Normal users are not prefixed with anything. Ban, ban exception, and invite exception masks are also included, with bans prefixed with &, ban exceptions prefixed with ", and invite exceptions with '. Note that when a &, " or ' is encountered as the first character, further processing of ~, *, @, %, or + characters must not continue because ban, exempt, and invite masks can contain any of those characters. (Plus it's just not right for a ban mask to be marked as a channel admin...)</p>
|
||||
<p>If the channel didn't already exist it is created with the information given in the SJOIN. Otherwise the timestamp is used to determine how the SJOIN information is handled. As a given, all members are joined into the channel, regardless. The mode information (modes, modeparams, memberlist prefixes, bans, exempts, and invites) is subject to the timestamp rules:</p>
|
||||
<ul>
|
||||
<li>If the channel's current timestamp is equal to the timestamp in SJOIN, then the mode information is merged.</li>
|
||||
<li>If the channel's current timestamp is less than the SJOIN timestamp, then the mode information is ignored.</li>
|
||||
<li>If the channel's current timestamp is greater than the SJOIN timestamp, then the channel's existing mode information is cleared (for example, deop, etc all local clients), and the SJOIN mode information is added.</li>
|
||||
</ul>
|
||||
<p>When merging modes, conflicting modes (including +p vs +s, differing +l limits or +k keys, etc) are handled as follows:</p>
|
||||
<ul>
|
||||
<li><b>Private (+p) vs. Secret (+s):</b> Secret (+s) is preferred. Private (+p) is removed. (Note: there is a <a href="http://bugs.unrealircd.org/view.php?id=2391">bug</a> in Unreal versions prior to 3.2.3 in which a desynch will occur in which one side is +p and the other is +s. Update to Unreal 3.2.4 if you have problems with this.)</li>
|
||||
<li><b>Strip Color (+S) vs. Block Color (+c):</b> Block (+c) is preferred. Strip (+S) is removed. (Note: Bug for +p vs. +s in prior unreal versions apply here as well.)</li>
|
||||
<li><b>Channel Limit:</b> Numericly larger limit is preferred (for example, +l 30 versus +l 15 : +l 30 wins).</li>
|
||||
<li><b>Channel Key:</b> "Larger" key (as defined by strcmp) is preferred (for example, +k moo versus +k meow : +k moo wins).</li>
|
||||
<li><b>Channel Link:</b> "Larger" link name (as defined by stricmp - not case sensitive) is preferred (for example, +L #moo versus +L #meow : +L #moo wins, but +L #Meow versus +L #meow : values are equal).</li>
|
||||
<li><b>Flood String:</b> Not really sure on this. I think larger value in each component wins.</li>
|
||||
<li><b>Join-Throttle:</b> Highest of time period wins, if equal, highest of join amount wins (so +j 3:40 beats +j 5:20 but +j 5:20 beats +j 3:20).</li>
|
||||
<li>Parameterized modes in third party modules will define their own conflict resolution formula.</li>
|
||||
</ul>
|
||||
<h2><a name="S5_2"></a>5.2 JOIN - Channel Join (TOKEN: C)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> C <i>#channel</i></tt></p>
|
||||
<p>Indicates a user has joined a channel. Only one channel is sent this way, and the key is not sent even if the user gave one one joining. If the channel parameter is the special "0" case, the server must interpret the message as a PART for all channels the user is on.</p>
|
||||
<h2><a name="S5_3"></a>5.3 PART - Channel Part (TOKEN: D)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> D <i>#channel</i>[ :<i>reason</i></tt>]</p>
|
||||
<p>Indicates a user has left a channel. Only one channel is sent this way. The reason parameter may be left out if no reason was given.</p>
|
||||
<h2><a name="S5_4"></a>5.4 KICK - Channel Kick (TOKEN: H)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> H <i>#channel</i> <i>user</i> :<i>reason</i></tt></p>
|
||||
<p>Orders the forced removal of user from #channel with the given reason. When updating state for this command, it should be the same as if :user PART #channel had been received - the user is removed from #channel's memberlist.</p>
|
||||
<h2><a name="S5_5"></a>5.5 MODE - Channel Mode (TOKEN: G)</h2>
|
||||
<p><b>Note:</b> This is the same command as that used for usermode changes.</p>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> G <i>#channel</i> <i>modechange</i> <i>modeparams</i>[ <i>timestamp</i>]</tt></p>
|
||||
<p>Changes the specified modes on the given channel. If the source is a server and the last parameter is numeric, it is interpreted as timestamp (although it can also be consumed as a parameter for modes. For example: :server.name MODE #channel +l 4 <-- 4 will be a timestamp and the +l parameter). When a mode change is timestamped in this way, the mode is treated as it is with SJOIN: the MODE message is ignored if the timestamp is greater than the channel timestamp. (If the timestamp is equal, the mode is simply added replacing any conflicting modes already in place.)</p>
|
||||
<p>A services implementation can easily clear all entries in a list mode such as bans with SVSMODE (see below).</p>
|
||||
<h2><a name="S5_6"></a>5.6 INVITE - Invite a user to a channel (TOKEN: *)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> * <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>Sends to target an invitation to join #channel. If the source is a channel operator on #channel, or a U:Lined server, the invitation grants the user the temporary ability to join the channel regardless of any bans or some restricting channel modes (not +O or +A).</p>
|
||||
<h2><a name="S5_7"></a>5.7 SAJOIN - Channel Force Join (TOKEN: AX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AX <i>targetuser</i> <i>#channel</i></tt></p>
|
||||
<p>This requests the forced join of targetuser to #channel. This type of forced join overrides bans, and most modes. The server to which targetuser is connected to must actually acknowledge the join for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAJOIN was targeted at a service client, in which case it should be ignored...</p>
|
||||
<h2><a name="S5_8"></a>5.8 SAPART - Channel Force Part (TOKEN: AY)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AY <i>targetuser</i> <i>#channel</i>[ :<i>reason</i>]</tt></p>
|
||||
<p>This requests the forced part of targetuser from #channel. This is slightly different from a KICK in that the user's removal is announced with PART. The server to which targetuser is connected to must actually acknowledge the part for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAPART was targeted at a service client, in which case it should be ignored...</p>
|
||||
<p>The reason field is optional. If provided the acknowledging PART message should prefix the message with "SAPart:".</p>
|
||||
<h2><a name="S5_9"></a>5.9 SAMODE - Channel Force Mode (TOKEN: o)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> o <i>#channel</i> <i>modechange</i> <i>modeparams</i></tt></p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S5_10"></a>5.10 TOPIC - Channel Topic (TOKEN: ) )</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ) <i>#channel</i> <i>nick</i> <i>timestamp</i> :<i>topic</i></tt></p>
|
||||
<p>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).
|
||||
<hr/>
|
||||
<h1><a name="S6"></a>6 Services Commands</h1>
|
||||
<p>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.</p>
|
||||
<h2><a name="S6_1"></a>6.1 SVSKILL - Force Disconnect by Service (TOKEN: h)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> h <i>target</i> :<i>reason</i></tt></p>
|
||||
<p>This command is similar to KILL but differs in several ways. First of all: there is no mutilation of the reason value. The reason given is the exact reason used to generate QUIT messages sent to users. Second, it is silent; no server notice is generated in response to this command. Third, it can only be used by a U:Lined server or client (such as services).</p>
|
||||
<p>Because this command can be dangerous in the hands of an abusive person, service implementations should avoid granting humans control over the reason parameter. In cases of commands where a person has control over such parameter, either use a regular KILL instead, or otherwise modify the reason so that operators can be held accountable if necessary.</p>
|
||||
<h2><a name="S6_2"></a>6.2 SVSMODE, SVS2MODE - Force User Mode Change (TOKEN: n or v)</h2>
|
||||
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
||||
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservicestamp</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
||||
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
||||
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
||||
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
||||
<h2><a name="S6_3"></a>6.3 SVSSNO, SVS2SNO - Forced SNomask Change (TOKEN: BV or BW)</h2>
|
||||
<p><b>Syntax (SVSSNO):</b> <tt>:<i>source</i> BV <i>target</i> +<i>snomasks</i></tt></p>
|
||||
<p><b>Syntax (SVS2SNO):</b> <tt>:<i>source</i> BW <i>target</i> +<i>snomask</i></tt></p>
|
||||
<p>Changes a user's snomasks. The difference between SVSSNO and SVS2SNO is the same as with SVSMODE versus SVS2MODE. If the user is not +s, you must add it via SVSMODE +s. For example:</p>
|
||||
<pre>:OperServ v someuser +s
|
||||
:OperServ BW someuser +ks</pre>
|
||||
<h2><a name="S6_4"></a>6.4 SVSNICK - Forced Nick Change (TOKEN: e)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> e <i>target</i> <i>newnick</i> :<i>newtimestamp</i></tt></p>
|
||||
<p>Forces the specified user to change his nick to newnick and also sets the nick timestamp to newtimestamp (so, for example, services could protect identified users from a nick collision by simply setting the nick timestamp to something way less than "now" - though currently this requires actually changing the nick too). SVSNICK requires the server to which the target is connected to acknowledge the nick change. If the user specified by newnick already exists, then target will be disconnected (even if it's something like a case-change).</p>
|
||||
<h2><a name="S6_5"></a>6.5 SVSJOIN - Forced Join (TOKEN: BX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BX <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>This is identical to SAJOIN with a few exceptions: 1) It is U:Line-only. 2) No opernotice on use. 3) Bans and restricting modes are respected, a prior INVITE message must be sent to cause bans to be ignored.</p>
|
||||
<h2><a name="S6_6"></a>6.6 SVSPART - Forced Part (TOKEN: BT)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BT <i>target</i> <i>#channel</i> :<i>reason</i></tt></p>
|
||||
<p>Also identical to SAPART with a few exceptions: no static prefix on the optional part reason, and no global notice, and requires a U:Line. Usage recommendation of SVSPART versus KICK is the same as for SVSKILL versus KILL.</p>
|
||||
<h2><a name="S6_7"></a>6.7 SVSO - Oper Permissions (TOKEN: BB)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BB <i>target</i> <i>flagchanges</i></tt></p>
|
||||
<p>This allows a service to add or remove IRCop permission flags for a user. Flagchanges is formatted similar to that of MODE with the exception that operflags are used instead of usermodes. If the change string consists only of -, then all oper permissions, usermodes, and snomasks are removed (as if the user had himself typed MODE nick -Oo).</p>
|
||||
<p>If you are granting IRCop permissions to a user who is not currently an IRCop, you should follow up with an SVSMODE +o or SVSMODE +O as appropriate. For example:</p>
|
||||
<pre>:OperServ BB somenick +o
|
||||
:OperServ BW somenick +cefknoqsSv
|
||||
:OperServ AL somenick local.oper.somethinghere.net
|
||||
:OperServ v somenick +Ohs </pre>
|
||||
<h2><a name="S6_8"></a>6.8 SVSNOOP - Oper Lockdown (TOKEN: f)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> f <i>(op)</i><i>server.name</i></tt></p>
|
||||
<p>The (op) parameter is either a + or - indicating if NOOP mode should be activated (+) or deactivated (-). When NOOP mode is activated, all IRCops on the server are deopered (including local operators) and the /oper command is disabled. IRCop privileges can still be granted through use of SVSO. On UnrealIRCd, it is not necessary to masskill all IRCops on the nooped server, as they are deopered automatically.</p>
|
||||
<h2><a name="S6_9"></a>6.9 SVSNLINE - RealName Ban (TOKEN: BR)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BR <i>op</i> <i>reason</i> :<i>realname mask</i></tt></p>
|
||||
<p>Op is either + (add) or - (remove). In the case of +, reason is a space-escaped string (all space chars are encoded as _). If -, reason is ignored.</p>
|
||||
<h2><a name="S6_10"></a>6.10 SVSFLINE - File Ban (TOKEN: BC)</h2>
|
||||
<p><b>Syntax (add):</b> <tt>:<i>source</i> BC + <i>filemask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Syntax (remove):</b> <tt>:<i>source</i> BC - <i>filemask</i></tt></p>
|
||||
<p><b>Syntax (clear):</b> <tt>:<i>source</i> BC *</tt></p>
|
||||
<p>Adds or removes a DCCDENY item for the specified filemask on all servers. These DCCDENYs are hard dccdenies - the /dccallow command cannot override it. The last form removes all dccdenies added via SVSFLINE.</p>
|
||||
<hr/>
|
||||
<h1><a name="S7"></a>7 Messaging</h1>
|
||||
<p>What good is Internet Relay <b>CHAT</b> if users cannot <b>CHAT</b>? This section addresses the commands through which arbitrary user messages are sent.</p>
|
||||
<h2><a name="S7_1"></a>7.1 PRIVMSG, NOTICE - Simple Message Transmission (Token: ! or B)</h2>
|
||||
<p><b>PRIVMSG Syntax:</b> <tt>:<i>source</i> ! <i>target</i> :<i>message</i></tt></p>
|
||||
<p><b>NOTICE Syntax:</b> <tt>:<i>source</i> B <i>target</i> :<i>message</i></tt></p>
|
||||
<p>Sends a messages to the given target. The target either names a single client, or identifies a list of clients in which the message is to be sent to. The available targets include:</p>
|
||||
<ul>
|
||||
<li><i>nickname</i>: Names a single user to whom the message is delivered.</li>
|
||||
<li><i>nickname</i>@<i>servermask</i>: Also names a single user, but the message will only be delivered if the user is connected to a server matching the specified servermask. This is typically used for sending messages to services. The target must not be changed at any point along the path it must travel for delivery, even up to the final receipt of the message by the target. This allows the target to know it has been sent a message in this way.</li>
|
||||
<li>#<i>channelname</i>: Sends a message to all users on the specified channel (except when channel is a moderated auditorium (+mu), in which case the wierd +mu sending behavior goes off).</li>
|
||||
<li><i>modeprefix</i>#<i>channelname</i>: Sends a message to all users on the given channel having the given status or higher. For example: + means all voices, halfops, etc.</li>
|
||||
<li>$<i>servermask</i>: Sends a message to ALL users on all servers matching the specified servermask (known as a server broadcast message). The RFC requirements of having a TLD with no wildcards is not applied to U:Lined clients.</li>
|
||||
</ul>
|
||||
<p>Unreal does not support the #hostmask format.</p>
|
||||
<h2><a name="S7_2"></a>7.2 SENDUMODE, SMO - Usermode-based Delivery (TOKEN: AP or AU)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> AU <i>umode</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given mode. Only one usermode may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_3"></a>7.3 SENDSNO - SNomask-based Delivery (TOKEN: Ss)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> Ss <i>snomask</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given snomask. Only one snomask may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_4"></a>7.4 CHATOPS - IRCop Chat (TOKEN: p)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> p :<i>message</i></tt></p>
|
||||
<p>Sends the message to all IRCops on all servers.</p>
|
||||
<h2><a name="S7_5"></a>7.5 WALLOPS - Wallop Chat (TOKEN: =)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> = :<i>message</i></tt></p>
|
||||
<p>Sends the message to all users with usermode +w, whether they are ircops or not.</p>
|
||||
<h2><a name="S7_6"></a>7.6 GLOBOPS - FailOp Chat (TOKEN: ])</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ] :<i>message</i></tt></p>
|
||||
<p>Send the message to all IRCops with usermode +g.</p>
|
||||
<h2><a name="S7_7"></a>7.7 ADCHAT - Admin Chat (TOKEN: x)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> x :<i>message</i></tt></p>
|
||||
<p>Send the message to all Server and Network Admins (usermode +A).</p>
|
||||
<h2><a name="S7_8"></a>7.8 NACHAT - NetAdmin Chat (TOKEN: AC)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AC :<i>message</i></tt></p>
|
||||
<p>Send the message to all Network Admins (usermode +N).</p>
|
||||
<hr/>
|
||||
<h1><a name="S8"></a>8 Ban Control</h1>
|
||||
<p>Sometimes, you have the misfortune of encountering a user who has no purpose but to serve as an annoyance to your server or network. These commands transmit network-wide ban information amongst each other.</p>
|
||||
<h2><a name="S8_1"></a>8.1 TKL - Master Ban Control (TOKEN: BD)</h2>
|
||||
<p>The TKL command seems to have one oddity about it: the real ban source is included in the TKL command rather than in the sender prefix. Most likely this is done for synching reasons (so that the *line ban can be credited to the proper person even if he/she is offline). For this reason, the command syntax is given without any sender prefix at all. It is still permissible to use one, however.</p>
|
||||
<h3><a name="S8_1_1"></a>8.1.1 GLINE - Network-wide user@host ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + G <i>userpart</i> <i>hostpart</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - G <i>userpart</i> <i>hostpart</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide user@host bans, known as G:Lines. The GLINE command itself must not be used. The userpart and hostpart are the user portion and hostname portion of the ban mask. The expiretimestamp is 0 if the G:Line should not expire, otherwise it will expire at the given time. It is an absolute time, not relative, thus it's imperitive to have reasonably synchrnoized clocks or bans may be removed too early or even immediately!</p>
|
||||
<h3><a name="S8_1_2"></a>8.1.2 GZLINE - Network-wide IP ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Z * <i>ipmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Z * <i>ipmask</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide IP bans, known as Global Z:Lines. The GZLINE command itself must not be used. Ipmask permits CIDR notation as well as wildcard masks.</p>
|
||||
<h3><a name="S8_1_3"></a>8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban (TOKEN: c or d)</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Q <i>hold</i> <i>nickmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Add Syntax (SQLINE):</b> <tt>:<i>source</i> c <i>nickmask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Q <i>hold</i> <i>nickmask</i> <i>source</i></tt></p>
|
||||
<p><b>Remove Syntax (UNSQLINE):</b> <tt>:<i>source</i> d <i>nickmask</i></tt></p>
|
||||
<p>In the TKL syntax, the hold parameter is either a * to mark the qline as a nick ban, or an H to mark it as a services hold. A services hold does not trigger qline rejection notice, and is typically used by NickServ to reserve registered nicks until they are released by the owner. The (UN)SQLINE syntax can only be used by a server, but any user can be used as the source for the TKL syntax. Unlike G and GZ lines, Q:Lines do not cause existing matching users to be disconnected or otherwise affected.</p>
|
||||
<p>The TKL syntax is preferred, since it is more flexible, but (UN)SQLINE is permitted for compatibility.</p>
|
||||
<h3><a name="S8_1_4"></a>8.1.4 SPAMFILTER - Message Spam Filtration System</h3>
|
||||
<p>Proper use of spamfilter in TKL commands requires use of PROTOCTL TKLEXT, which increases the number of parameters allowed in TKL.</p>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestamp</i> <i>tklduration</i> <i>tklreason</i> :<i>regex</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestap</i> :<i>regex</i></tt></p>
|
||||
<p>Adds and Removes network-wide spamfilters. The SPAMFILTER command itself must not be used. See <a href="http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter">http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter</a> for a list of valid targets. For actions, a single character is used to identify the action to be taken:</p>
|
||||
<ul>
|
||||
<li>K (kill) - The user is simply disconnected, with the reason given.</li>
|
||||
<li>S (tempshun) - A temporary shun is placed on the user. This shun is applied only to that user, and disappears if the user reconnects.</li>
|
||||
<li>s (shun) - A regular shun on the user's IP address is added. This causes all users with the same hostname to be shunned, but they will also stay shunned if they reconnect.</li>
|
||||
<li>k (kline) - A K:Line is added on the user's IP address.</li>
|
||||
<li>z (zline) - A Z:Line is added on the user's IP address.</li>
|
||||
<li>g (gline) - A G:Line is added on the user's IP address.</li>
|
||||
<li>Z (gzline) - A Global Z:Line is added on the user's IP address.</li>
|
||||
<li>b (block) - Messages (or users!) matching the filter are simply blocked.</li>
|
||||
<li>d (dccblock) - The user is prevented from sending files using DCC for the remainder of his session (in other words, until he quits).</li>
|
||||
<li>v (viruschan) - User is removed from all channels, joined to the viruschan as defined in conf, and cannot message anything but that channel.</li>
|
||||
<li>w (warn) - No action on the user is taken. Only the Spamfilter notice is sent to opers with snomask +S.</li>
|
||||
</ul>
|
||||
<h1><a name="S9">9 Base64 Tables</a></h1>
|
||||
<p>Unreal uses base64 encoding to allow saving bandwidth by encoding numbers in a more compact format. Unreal uses two different variations of base64, one used for the SJB64 PROTOCTL option (in NICK and SJOIN), and one used for NICKIP.</p>
|
||||
<h2><a name="S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></h2>
|
||||
<p>In NICK and SJOIN, remember that the timestamp will be prefixed with ! to signal a base64 timestamp.</p>
|
||||
<p>Just like in base10, the least significant "digit" is last.</p>
|
||||
<pre> 0 0 17 H 34 Y 51 p
|
||||
1 1 18 I 35 Z 52 q
|
||||
2 2 19 J 36 a 53 r
|
||||
3 3 20 K 37 b 54 s
|
||||
4 4 21 L 38 c 55 t
|
||||
5 5 22 M 39 d 56 u
|
||||
6 6 23 N 40 e 57 v
|
||||
7 7 24 O 41 f 58 w
|
||||
8 8 25 P 42 g 59 x
|
||||
9 9 26 Q 43 h 60 y
|
||||
10 A 27 R 44 i 61 z
|
||||
11 B 28 S 45 j 62 {
|
||||
12 C 29 T 46 k 63 }
|
||||
13 D 30 U 47 l
|
||||
14 E 31 V 48 m
|
||||
15 F 32 W 49 n
|
||||
16 G 33 X 50 o</pre>
|
||||
<h2><a name="S9_2">9.2 Table for NICKIP.</a></h2>
|
||||
<p>In this table, the IP is encoded in network byte order. In terms of IPs, this means the first byte of the address really is first. Each "digit" in the base64 encoded IP corresponds to 6 bits of the IP address.</p>
|
||||
<p>An IPv4 address is 32 bits, so 6 base64 "digits" are needed. Since base64 requires values to come in multiples of 4 "digits", padding characters (=) need to be added if a value comes up short. In the case of IPv4 addresses, two are needed.</p>
|
||||
<p>IPv6 addresses are 128-bit. They therefore need 22 base64 "digits" plus 2 pad characters.</p>
|
||||
<pre> 0 A 17 R 34 i 51 z
|
||||
1 B 18 S 35 j 52 0
|
||||
2 C 19 T 36 k 53 1
|
||||
3 D 20 U 37 l 54 2
|
||||
4 E 21 V 38 m 55 3
|
||||
5 F 22 W 39 n 56 4
|
||||
6 G 23 X 40 o 57 5
|
||||
7 H 24 Y 41 p 58 6
|
||||
8 I 25 Z 42 q 59 7
|
||||
9 J 26 a 43 r 60 8
|
||||
10 K 27 b 44 s 61 9
|
||||
11 L 28 c 45 t 62 +
|
||||
12 M 29 d 46 u 63 /
|
||||
13 N 30 e 47 v
|
||||
14 O 31 f 48 w (pad) =
|
||||
15 P 32 g 49 x
|
||||
16 Q 33 h 50 y</pre>
|
||||
</body>
|
||||
</html>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
|
||||
<title>Unreal 3.2 Protocol Documentation</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Unreal 3.2 Protocol Documentation</h1>
|
||||
<h3 style="text-align: center;">Last update: 29 November 2006</h3>
|
||||
<h1>Table of Contents</h1>
|
||||
<p><a href="#S1">1 Introduction</a></p>
|
||||
<p><a href="#S2">2 Server Negotiation</a></p>
|
||||
<blockquote><p><a href="#S2_1">2.1 PASS - Connection Password</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_2">2.2 PROTOCTL - Server Protocol Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_3">2.3 SERVER - Server Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_4">2.4 EOS - End Of Synch</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_5">2.5 NETINFO - Network Information</a></p></blockquote>
|
||||
<p><a href="#S3">3 User Operations</a></p>
|
||||
<blockquote><p><a href="#S3_1">3.1 NICK - User Introduction and Nick Change</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S3_1_1">3.1.1 Nick Collisions</a></p></blockquote></blockquote>
|
||||
<blockquote><p><a href="#S3_2">3.2 MODE, UMODE2 - User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_3">3.3 QUIT - User Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_4">3.4 KILL - Force Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_5">3.5 SETHOST/CHGHOST - Change virtual host</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_6">3.6 SETIDENT/CHGIDENT - Change a user's username</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_7">3.7 SETNAME/CHGNAME - Change a user's realname</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_8">3.8 WHOIS - User Information</a></p></blockquote>
|
||||
<p><a href="#S1">4 Server Operations</a></p>
|
||||
<blockquote><p><a href="#S4_1">4.1 SERVER - Server Introduction</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_2">4.2 SQUIT - Server Removal</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_3">4.3 SDESC - Server Description</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_4">4.4 PING - Live Connection Query</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_5">4.5 PONG - Live Connection Reply</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_6">4.6 STATS - Server Stats</a></p></blockquote>
|
||||
<p><a href="#S5">5 Channel Operations</a></p>
|
||||
<blockquote><p><a href="#S5_1">5.1 SJOIN - Channel Burst</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_2">5.2 JOIN - Channel Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_3">5.3 PART - Channel Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_4">5.4 KICK - Channel Kick</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_5">5.5 MODE - Channel Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_6">5.6 INVITE - Invite a user to a channel</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_7">5.7 SAJOIN - Channel Force Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_8">5.8 SAPART - Channel Force Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_9">5.9 SAMODE - Channel Force Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_10">5.10 TOPIC - Chanel Topic</a></p></blockquote>
|
||||
<p><a href="#S6">6 Services Commands</a></p>
|
||||
<blockquote><p><a href="#S6_1">6.1 SVSKILL - Force Disconnect by Service</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_2">6.2 SVSMODE, SVS2MODE - Force User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_3">6.3 SVSSNO, SVS2SNO - Forced SNomask Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_4">6.4 SVSNICK - Forced Nick Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_5">6.5 SVSJOIN - Forced Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_6">6.6 SVSPART - Forced Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_7">6.7 SVSO - Oper Permissions</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_8">6.8 SVSNOOP - Oper Lockdown</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_9">6.9 SVSNLINE - RealName Ban</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_10">6.10 SVSFLINE - File Ban</a></p></blockquote>
|
||||
<p><a href="#S7">7 Messaging</a></p>
|
||||
<blockquote><p><a href="#S7_1">7.1 PRIVMSG, NOTICE - Simple Message Transmission</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_2">7.2 SENDUMODE, SMO - Usermode-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_3">7.3 SENDSNO - SNomask-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_4">7.4 CHATOPS - IRCop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_5">7.5 WALLOPS - Wallop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_6">7.6 GLOBOPS - FailOp Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_7">7.7 ADCHAT - Admin Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_8">7.8 NACHAT - NetAdmin Chat</a></p></blockquote>
|
||||
<p><a href="#S8">8 Ban Control</a></p>
|
||||
<blockquote><p><a href="#S8_1">8.1 TKL - Master Ban Control</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_1">8.1.1 GLINE - Network-wide user@host ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_2">8.1.2 GZLINE - Network-wide IP ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_3">8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_4">8.1.4 SPAMFILTER - Message Spam Filtration System</a></p></blockquote></blockquote>
|
||||
<p><a href="#S9">9 Base64 Tables</a></p>
|
||||
<blockquote><p><a href="#S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></p></blockquote>
|
||||
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
||||
<hr/>
|
||||
<h1><a name="S1"></a>1 Introduction</h1>
|
||||
<p>This document describes the UnrealIRCd server-to-server protocol.</p>
|
||||
<h2>A word about clocks.</h2>
|
||||
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
||||
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
||||
<hr/>
|
||||
<h1><a name="S2"></a>2 Server Negotiation</h1>
|
||||
<p>The first step to establish a server-to-server communication is to negotiate the connection as a server. Negotiation is done using standard IRC commands - no PROTOCTL options are in force until the link is established. The first step is to open a TCP/IP connection to the target server. The target port must be one described by a listen {} block in the remote server's configuration, and that listen block must not have the clientsonly option. After the connection is open, you will be treated as any other connection and be greeted with the "Looking up your hostname..." and "Checking identd..." notices as you would for a client. As these are NOTICE messages and your session as a server isn't established, they should simply be ignored. Use the commands below to introduce a server connection.</p>
|
||||
<h2><a name="S2_1"></a>2.1 PASS - Connection Password</h2>
|
||||
<p><b>Syntax:</b> <tt>PASS :<i>link password</i></tt></p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S2_2"></a>2.2 PROTOCTL - Server Protocol Negotiation</h2>
|
||||
<p><b>Syntax:</b> <tt>PROTOCTL <i>protocol options</i></tt></p>
|
||||
<p>The PROTOCTL command sets several protocol options. The tokens supported are listed below.</p>
|
||||
<ul>
|
||||
<li>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.</li>
|
||||
<li>TOKEN : Use tokenized commands. Tokens are case-sensitive, shortened versions of command names. Tokens will be usually one or two characters.</li>
|
||||
<li>NICKv2 : Use extended NICK message for introducing users. See the NICK command for information about this.</li>
|
||||
<li>VHP : When introducing a user, send his cloaked host as if it were a vhost. Usually used for services to avoid having duplicate code.</li>
|
||||
<li>SJOIN : Supports SJOIN version 1 which is no longer in use. Use with SJ3.</li>
|
||||
<li>SJOIN2 : Supports SJOIN version 2 which is no longer in use. Use with SJ3.</li>
|
||||
<li>UMODE2 : Supports the UMODE2 command, which is a shortened version of MODE for usermode changes.</li>
|
||||
<li>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.</li>
|
||||
<li>SJ3 : Supports SJOIN version 3.</li>
|
||||
<li>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.</li>
|
||||
<li>SJB64 : Timestamps in NICK and SJOIN are expressed in base64 rather than base10.</li>
|
||||
<li>TKLEXT : Supports exntended TKL messages for spamfilter support.</li>
|
||||
<li>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.</li>
|
||||
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
||||
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
||||
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
||||
<li>ESVID : Supports arbitrary values instead of just numeric timestamps for the services identifier field.</li>
|
||||
</ul>
|
||||
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
||||
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
||||
<p><b>Note:</b> This message is also used for introducing additional servers, the format of this message in those cases is described later.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>SERVER <i>server.name</i> 1 :<i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i> <i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL and NS):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i>-<i>servernumeric</i> <i>server description</i></tt></p>
|
||||
<p>The literal 1 in the parameter list is the hopcount parameter. Since you are a direct link, your own hopcount will be 1.</p>
|
||||
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
||||
<p>The following version numbers have been used previously:</p>
|
||||
<ul>
|
||||
<li>2311 - Unreal 3.2.10</li>
|
||||
<li>2310 - Unreal 3.2.9</li>
|
||||
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
||||
<li>2308 - Unreal 3.2.5</li>
|
||||
<li>2307 - Unreal 3.2.4</li>
|
||||
<li>2306 - Unreal 3.2.3</li>
|
||||
<li>2305 - Unreal 3.2.2</li>
|
||||
<li>2304 - Unreal 3.2.1</li>
|
||||
<li>2303 - Unreal 3.2beta* through 3.2 Release</li>
|
||||
<li>2302 - Unreal 3.1.1 through 3.1.4</li>
|
||||
<li>2301 - Unreal 3.1 Release</li>
|
||||
<li>2300 - Unreal 3.0 Release</li>
|
||||
</ul>
|
||||
<p>The compile flags as specified in protocol flags are:</p>
|
||||
<ul>
|
||||
<li>c : Server is chrooted (#define CHROOTDIR).</li>
|
||||
<li>C : Server has command line config (-f option) enabled (#define CMDLINE_CONFIG).</li>
|
||||
<li>D : Server is in debugmode (#define DEBUGMODE).</li>
|
||||
<li>F : Using filedescriptor lists.</li>
|
||||
<li>h : Server is compiled with hub support (#define HUB or answer "Hub" to relevant ./Config prompt).</li>
|
||||
<li>i : Server shows invisible users in /TRACE.</li>
|
||||
<li>n : NOSPOOF (pingcookies) is enabled (#define NOSPOOF or answer "Yes" to relevant ./Config prompt).</li>
|
||||
<li>V : Server is using valloc().</li>
|
||||
<li>W : Windows IRCd.</li>
|
||||
<li>Y : Syslog logging enabled.</li>
|
||||
<li>6 : Server has IPv6 support (#define INET6 or answer "yes" to relevant ./Config prompt).</li>
|
||||
<li>X : Server has badword stripping (user and channel modes +G) (#define STRIPBADWORDS).</li>
|
||||
<li>P : Server is using poll().</li>
|
||||
<li>e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).</li>
|
||||
<li>O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>o : Server has disabled Oper verify (#undef OPEROVERRIDE_VERIFY or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>Z : Server has ziplink support (#define ZIP_LINKS or answer "yes" to relevant ./Config prompt AND have the zlib dev libraries).</li>
|
||||
<li>E : Server has extended channel mode support.</li>
|
||||
<li>3 : 3rd party modules are loaded or some system libraries are wonky.</li>
|
||||
<li>m : Private message handling is 'tainted' (one or modules registered a USERMSG hook).</li>
|
||||
<li>M : Channel message handling is 'tainted' (one or modules registered a CHANMSG hook).</li>
|
||||
<li>Additional Version flags can be added by 3rd-party modules.</li>
|
||||
</ul>
|
||||
<h2><a name="S2_4"></a>2.4 EOS - End Of Synch (TOKEN: ES)</h2>
|
||||
<p><b>Syntax:</b> ES</p>
|
||||
<p>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).</p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S2_5"></a>2.5 NETINFO - Network Information (TOKEN: AO)</h2>
|
||||
<p><b>Syntax:</b> AO <i>maxglobal</i> <i>currenttime</i> <i>protocolversion</i> <i>cloakhash</i> 0 0 0 :<i>networkname</i></p>
|
||||
<p>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).</p>
|
||||
<p>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).</p>
|
||||
<hr/>
|
||||
<h1><a name="S3"></a>3 User Operations</h1>
|
||||
<p>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.</p>
|
||||
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
||||
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
||||
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
||||
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
||||
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
||||
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
||||
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
||||
<p>A nick collision occurs when a server receives a NICK message (or & token) introducing a user that the server already sees on the network. When a collision occurs, one or both of the colliding clients must be disconnected. The timestamp is examined to determine which client loses. The client with the earlier timestamp remains. If both clients have equal timestamps, both are removed. Currently, Unreal handles NICK collisions both passively and agressively:</p>
|
||||
<ul>
|
||||
<li><b>Aggressive Handling:</b> The server actively sends a KILL message back across the link to terminate that end's client.</li>
|
||||
<li><b>Passive Handling:</b> Upon receipt of a NICK message that should "win", the server simply silently exits it's own client.</li>
|
||||
</ul>
|
||||
<h2><a name="S3_2"></a>3.2 MODE, UMODE2 - User Mode Change (TOKEN: G or |)</h2>
|
||||
<p><b>Syntax (MODE):</b> <tt>:<i>user</i> G <i>user</i> <i>modechange</i></tt></p>
|
||||
<p><b>Syntax (UMODE2):</b> <tt>:<i>user</i> | <i>modechange</i></tt></p>
|
||||
<p>This indicates a usermode change. The modechange can consist of zero or more strings of characters, each prefixed with either a + or -; the only delimiter between them being said + or -. If no + or - is at the beginning of the mode string, a + should be implied.</p>
|
||||
<p>Some user modes are never sent between servers. Specifically, usermode +s and +O are not sent between servers. Modules can define additional usermodes that also might not be sent between servers. The UMODE2 saves bandwidth by not including the redundant target field for usermode changes, so use it when possible.</p>
|
||||
<h2><a name="S3_3"></a>3.3 QUIT - User Disconnect (TOKEN: ,)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>user</i> , :<i>reason</i></tt></p>
|
||||
<p>This command indicates that a user has disconnected. The reason field is filled in with the reason the user disconnected, which will be any of: quit message provided by the user in a /quit command, kill message for local operator kills, "Client exited" if the user does a brutal quit (clean (by TCP's definition) disconnect without sending a QUIT message), or a socket error message if present.</p>
|
||||
<p>The QUIT message must NOT be prefixed when passing on to other servers. Only local user quit messages are affected by set::prefix-quit.</p>
|
||||
<h2><a name="S3_4"></a>3.4 KILL - Force Disconnect (TOKEN: .)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> . <i>target</i> :<i>killpath</i>!<i>source</i> (<i>reason</i>)</tt></p>
|
||||
<p>Used to indicate that an operator has used KILL on a user not on the same server. Anything beyond the last ! in the kill path is used as the reason. The source (reason) part is simply a standard used by Unreal. As each server passes on a KILL message, it usually prepends the bottommost part (up to the first .) of it's name followed by a ! character. When unreal receives a KILL from a directly connected irc operator, it will usually add that oper's vhost (or realhost if -x) as the first hop in the kill path, then follow with it's own name as mentioned before if it is passing to another server.</p>
|
||||
<p>A server can also send KILLs on it's own. This is done in cases involving nickname collisions, fake senders, bad direction, and other cases of protocol errors. Usually, in these cases, the server puts it's own name as the source, and also prefixes with <i>bottompart</i>! like for any other ircop on that server. For example: @3 . someone :irc!irc.example.com (Nick collision)</p>
|
||||
<h2><a name="S3_5"></a>3.5 SETHOST/CHGHOST - Change virtual host (TOKEN: AA or AL)</h2>
|
||||
<p><b>Syntax (SETHOST):</b> <tt>:<i>source</i> AA <i>newvhost</i></tt></p>
|
||||
<p><b>Syntax (CHGHOST):</b> <tt>:<i>source</i> AL <i>target</i> <i>newvhost</i></tt></p>
|
||||
<p>Indicates the change of a user's virtual host. Currently, servers are expected to assume UMODE2 +xt on the target user in both commands. (In the case of SETHOST, the target is the sender.) Servers using PROTOCTL VHP will receive the cloaked host in a SETHOST message when a user activates his cloaked host. A server can also send CHGHOST (from one of it's opered clients) to change a user's hostname. This is generally used by HostServ implementations. To disable a cloaked host, use CHGHOST to set the user's virtual host equal to his real host, or use SVSMODE -xt, but the latter requires services.</p>
|
||||
<h2><a name="S3_6"></a>3.6 SETIDENT/CHGIDENT - Change a user's username (TOKEN: AD or AZ)</h2>
|
||||
<p><b>Syntax (SETIDENT):</b> <tt>:<i>source</i> AD <i>newusername</i></tt></p>
|
||||
<p><b>Syntax (CHGIDENT):</b> <tt>:<i>source</i> AZ <i>target</i> <i>newusername</i></tt></p>
|
||||
<p>Indicates the change of a user's username. No usermode change is associated with this. Unreal does not use a distinguished virtual username, so servers should only keep the original username (from the NICK message) if they intend to allow the user to reset the original username. Servers can use CHGIDENT to change a user's username.</p>
|
||||
<h2><a name="S3_7"></a>3.7 SETNAME/CHGNAME - Change a user's realname (TOKEN: AE or BK)</h2>
|
||||
<p><b>Syntax (SETNAME):</b> <tt>:<i>source</i> AE :<i>newrealname</i></tt></p>
|
||||
<p><b>Syntax (CHGNAME):</b> <tt>:<i>source</i> BK <i>target</i> :<i>newrealname</i></tt></p>
|
||||
<p>Indicates the change of a user's realname. No usermode change is associated with this. Unreal does not use a distinguished virtual realname, so servers should only keep the original realname (from the NICK message) if they intend to allow the user to reset the original realname. Servers can use CHGNAME to change a user's username. Note that servers must NOT check that the sender be an IRCop in SETNAME - normal users are permitted to use SETNAME.</p>
|
||||
<h2><a name="#S3_8"></a>3.8 WHOIS - User Information (TOKEN: #)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> # [<i>from-server</i> ]<i>nick</i></tt></p>
|
||||
<p>Requests the information on a user. This works exactly like the user /whois command - in fact, the source parameter must be a user, or the command will do nothing. <i>from-server</i> is the server to request the information from; if a server recives a WHOIS message without this parameter, it should return its own information on the user, otherwise it should pass the message to the given server. Note that <i>from-server</i> may name a user instead of a server (such as when a user uses /whois nick nick), in which case the the nick should be interpreted as naming the server that user is on. <i>nick</i> may be several users seperated by commas, but may not contain wildcards.</p>
|
||||
<p>The reply to a WHOIS message uses the same numeric replies as the user command.</p>
|
||||
<hr/>
|
||||
<h1><a name="S4"></a>4 Server Operations</h1>
|
||||
<p>This is different from server negotiation. Negotiation is when you are first connecting. Server introduction is used for introducing additional servers behind an existing server (aka hubbing). Hubbing is limited as specified by the hub, leaf, and leafdepth parameters in the link block and attempted violation of a hub restriction results in termination of the link. If no hub or leaf directive is given your server is a leaf by default, so any introduction of any server behind you would be an automatic drop. U:Lines don't matter here; services must be configured as a hub in the link block. The reason is U:Line is a permission rule, but hub privilege is a network structure rule.</p>
|
||||
<h2><a name="S4_1"></a>4.1 SERVER - Server Introduction (TOKEN: ')</h2>
|
||||
<p><b>Note: This command is also used for negotiation. Be warned that the token for this command is NOT VALID at that time! See section 2.3 for the syntax for negotiation.</b></p>
|
||||
<p><b>Syntax (without PROTOCTL NS):</b> <tt>:<i>source</i> SERVER <i>new.server</i> <i>hopcount</i> :<i>description</i></tt></p>
|
||||
<p><b>Syntax (with PROTOCTL NS):</b> <tt>@<i>sourcenumeric</i> SERVER <i>new.server</i> <i>hopcount</i> <i>numeric</i> :<i>description</i></tt></p>
|
||||
<p>The command indicates that the server named new.server is being introduced by the source (the source is the server which new.server is directly linked to). The hopcount will be the number of links the receiving server would have to cross to reach new.server. In other words, new.server introduced itself with a hopcount of 1, and as the SERVER message is passed along, hopcount is incremented.</p>
|
||||
<p>As an example, a services server faking a SERVER message for JUPE functionality would use a hopcount of 2.</p>
|
||||
<h2><a name="S4_2"></a>4.2 SQUIT - Server Removal (TOKEN: -)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> SQUIT <i>server.name</i> <i>:reason</i></tt></p>
|
||||
<p>From an IRCop or when server.name is not behind the source, this command requests the removal of the specified server.name. The command in this case is treated very much like KILL in the respect that the message is broadcasted to all servers, except server.name and any servers behind it. When the SQUIT reaches server.name's uplink, that server closes the link to server.name (which would then generate it's own SQUIT on behalf of it's uplink for the servers behind it).</p>
|
||||
<p>A server can also use SQUIT in the same manner as QUIT to note the removal of a server behind it, or that it itself is quitting. In the former case, server.name is behind source, and the message is forward on to all other servers. In the latter case, source and server.name are equal, the receiving server closes the link and forwards the SQUIT message.</p>
|
||||
<p>Unreal closes a direct link by simply sending an ERROR message and then closing the TCP connection. This typically causes the other end to generate an SQUIT bearing the message "Client exited" or similar, however, the ERROR will usually cause the server to send a message to all IRCops.</p>
|
||||
<h2><a name="S4_3"></a>4.3 SDESC - Server Description (TOKEN: AG)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AG :<i>newdesc</i></tt></p>
|
||||
<p>The server to which source is connected to should have it's description updated to newdesc. This does NOT include the VL inforamtion.</p>
|
||||
<h2><a name="S4_4">4.4 PING - Live Connection Query (TOKEN: 8)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>8 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>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.</p>
|
||||
<p>The response to a PING is sent with the <a href="#S4_5">PONG</a> command.</p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S4_5">4.5 PONG - Live Connection Reply (TOKEN: 9)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>9 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to respond to a <a href="#S4_4">PING</a> query.</p>
|
||||
<p><b>Responding to a ping:</b> 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.</p>
|
||||
<p>For example, the response to <tt>8 uplink.server</tt> is <tt>9 my.name uplink.server</tt>, while the response to <tt>PING distant.server your.server</tt> is <tt>9 your.server distant.server</tt>. 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.
|
||||
<p>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.</p>
|
||||
<h2><a name="#S4_6"></a>4.6 STATS - Server Stats (TOKEN: 2)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> 2 [<i>type</i> [<i>server</i>] [<i>extended-params</i>]]</tt></p>
|
||||
<p>Requests statistics or configuration information from a server. This command is used to transport cross-server STATS requests from users (eg: /stats o other.server), and should only be sent from a user (not a server). With no parameters, this will cause unreal to simply dump its help output. <i>type</i> is the type of stats to request, <i>server</i> names a server (or a user on that server) to request stats from, and <i>extended-params</i> is used to filter output from STATS G, etc. When received, it is up to the receiver to determine what stats to support and how to reply, but generally numeric replies are used. For the list of unreal's stats types, type /stats in a client for the helptext dump.</p>
|
||||
<p><b>Note:</b> Stats set as oper-only (see set::oper-only-stats) will be refused from a server. In this case, it will be necessary to send the stats request from a psuedo-oper (such as a services agent, etc) for services/stats/etc.</p>
|
||||
<hr/>
|
||||
<h1><a name="S5"></a>5 Channel Operations</h1>
|
||||
<p>These commands deal with the state of channels across the network. Unreal only supports Network Channels, where the first character is a # character.</p>
|
||||
<h2><a name="S5_1"></a>5.1 SJOIN - Channel Burst (TOKEN: ~)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> ~ <i>timestamp</i> <i>channel</i> +<i>modes</i>[ <i>modeparams</i>] :<i>memberlist</i> <i>&ban</i> <i>"exempt</i> <i>'invex</i></tt></p>
|
||||
<p>Timestamp is the channel timestamp and can be !b64 as defined by PROTOCTL SJB64. Modes should only include those in the last three mode sets listed in CHANMODES. Modeparams is one parameter for each mode character that requires one. Memberlist is a series of users (all of which must at least be behind the server sending the SJOIN), each user is prefixed with one or more characters indicating their status. Owners (+q) are prefixed with *, admins (+a) ~, ops (+o) @, halfops (+h) %, voices (+v) +. Normal users are not prefixed with anything. Ban, ban exception, and invite exception masks are also included, with bans prefixed with &, ban exceptions prefixed with ", and invite exceptions with '. Note that when a &, " or ' is encountered as the first character, further processing of ~, *, @, %, or + characters must not continue because ban, exempt, and invite masks can contain any of those characters. (Plus it's just not right for a ban mask to be marked as a channel admin...)</p>
|
||||
<p>If the channel didn't already exist it is created with the information given in the SJOIN. Otherwise the timestamp is used to determine how the SJOIN information is handled. As a given, all members are joined into the channel, regardless. The mode information (modes, modeparams, memberlist prefixes, bans, exempts, and invites) is subject to the timestamp rules:</p>
|
||||
<ul>
|
||||
<li>If the channel's current timestamp is equal to the timestamp in SJOIN, then the mode information is merged.</li>
|
||||
<li>If the channel's current timestamp is less than the SJOIN timestamp, then the mode information is ignored.</li>
|
||||
<li>If the channel's current timestamp is greater than the SJOIN timestamp, then the channel's existing mode information is cleared (for example, deop, etc all local clients), and the SJOIN mode information is added.</li>
|
||||
</ul>
|
||||
<p>When merging modes, conflicting modes (including +p vs +s, differing +l limits or +k keys, etc) are handled as follows:</p>
|
||||
<ul>
|
||||
<li><b>Private (+p) vs. Secret (+s):</b> Secret (+s) is preferred. Private (+p) is removed. (Note: there is a <a href="http://bugs.unrealircd.org/view.php?id=2391">bug</a> in Unreal versions prior to 3.2.3 in which a desynch will occur in which one side is +p and the other is +s. Update to Unreal 3.2.4 if you have problems with this.)</li>
|
||||
<li><b>Strip Color (+S) vs. Block Color (+c):</b> Block (+c) is preferred. Strip (+S) is removed. (Note: Bug for +p vs. +s in prior unreal versions apply here as well.)</li>
|
||||
<li><b>Channel Limit:</b> Numericly larger limit is preferred (for example, +l 30 versus +l 15 : +l 30 wins).</li>
|
||||
<li><b>Channel Key:</b> "Larger" key (as defined by strcmp) is preferred (for example, +k moo versus +k meow : +k moo wins).</li>
|
||||
<li><b>Channel Link:</b> "Larger" link name (as defined by stricmp - not case sensitive) is preferred (for example, +L #moo versus +L #meow : +L #moo wins, but +L #Meow versus +L #meow : values are equal).</li>
|
||||
<li><b>Flood String:</b> Not really sure on this. I think larger value in each component wins.</li>
|
||||
<li><b>Join-Throttle:</b> Highest of time period wins, if equal, highest of join amount wins (so +j 3:40 beats +j 5:20 but +j 5:20 beats +j 3:20).</li>
|
||||
<li>Parameterized modes in third party modules will define their own conflict resolution formula.</li>
|
||||
</ul>
|
||||
<h2><a name="S5_2"></a>5.2 JOIN - Channel Join (TOKEN: C)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> C <i>#channel</i></tt></p>
|
||||
<p>Indicates a user has joined a channel. Only one channel is sent this way, and the key is not sent even if the user gave one one joining. If the channel parameter is the special "0" case, the server must interpret the message as a PART for all channels the user is on.</p>
|
||||
<h2><a name="S5_3"></a>5.3 PART - Channel Part (TOKEN: D)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> D <i>#channel</i>[ :<i>reason</i></tt>]</p>
|
||||
<p>Indicates a user has left a channel. Only one channel is sent this way. The reason parameter may be left out if no reason was given.</p>
|
||||
<h2><a name="S5_4"></a>5.4 KICK - Channel Kick (TOKEN: H)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> H <i>#channel</i> <i>user</i> :<i>reason</i></tt></p>
|
||||
<p>Orders the forced removal of user from #channel with the given reason. When updating state for this command, it should be the same as if :user PART #channel had been received - the user is removed from #channel's memberlist.</p>
|
||||
<h2><a name="S5_5"></a>5.5 MODE - Channel Mode (TOKEN: G)</h2>
|
||||
<p><b>Note:</b> This is the same command as that used for usermode changes.</p>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> G <i>#channel</i> <i>modechange</i> <i>modeparams</i>[ <i>timestamp</i>]</tt></p>
|
||||
<p>Changes the specified modes on the given channel. If the source is a server and the last parameter is numeric, it is interpreted as timestamp (although it can also be consumed as a parameter for modes. For example: :server.name MODE #channel +l 4 <-- 4 will be a timestamp and the +l parameter). When a mode change is timestamped in this way, the mode is treated as it is with SJOIN: the MODE message is ignored if the timestamp is greater than the channel timestamp. (If the timestamp is equal, the mode is simply added replacing any conflicting modes already in place.)</p>
|
||||
<p>A services implementation can easily clear all entries in a list mode such as bans with SVSMODE (see below).</p>
|
||||
<h2><a name="S5_6"></a>5.6 INVITE - Invite a user to a channel (TOKEN: *)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> * <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>Sends to target an invitation to join #channel. If the source is a channel operator on #channel, or a U:Lined server, the invitation grants the user the temporary ability to join the channel regardless of any bans or some restricting channel modes (not +O or +A).</p>
|
||||
<h2><a name="S5_7"></a>5.7 SAJOIN - Channel Force Join (TOKEN: AX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AX <i>targetuser</i> <i>#channel</i></tt></p>
|
||||
<p>This requests the forced join of targetuser to #channel. This type of forced join overrides bans, and most modes. The server to which targetuser is connected to must actually acknowledge the join for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAJOIN was targeted at a service client, in which case it should be ignored...</p>
|
||||
<h2><a name="S5_8"></a>5.8 SAPART - Channel Force Part (TOKEN: AY)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AY <i>targetuser</i> <i>#channel</i>[ :<i>reason</i>]</tt></p>
|
||||
<p>This requests the forced part of targetuser from #channel. This is slightly different from a KICK in that the user's removal is announced with PART. The server to which targetuser is connected to must actually acknowledge the part for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAPART was targeted at a service client, in which case it should be ignored...</p>
|
||||
<p>The reason field is optional. If provided the acknowledging PART message should prefix the message with "SAPart:".</p>
|
||||
<h2><a name="S5_9"></a>5.9 SAMODE - Channel Force Mode (TOKEN: o)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> o <i>#channel</i> <i>modechange</i> <i>modeparams</i></tt></p>
|
||||
<p>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.</p>
|
||||
<h2><a name="S5_10"></a>5.10 TOPIC - Channel Topic (TOKEN: ) )</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ) <i>#channel</i> <i>nick</i> <i>timestamp</i> :<i>topic</i></tt></p>
|
||||
<p>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).
|
||||
<hr/>
|
||||
<h1><a name="S6"></a>6 Services Commands</h1>
|
||||
<p>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.</p>
|
||||
<h2><a name="S6_1"></a>6.1 SVSKILL - Force Disconnect by Service (TOKEN: h)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> h <i>target</i> :<i>reason</i></tt></p>
|
||||
<p>This command is similar to KILL but differs in several ways. First of all: there is no mutilation of the reason value. The reason given is the exact reason used to generate QUIT messages sent to users. Second, it is silent; no server notice is generated in response to this command. Third, it can only be used by a U:Lined server or client (such as services).</p>
|
||||
<p>Because this command can be dangerous in the hands of an abusive person, service implementations should avoid granting humans control over the reason parameter. In cases of commands where a person has control over such parameter, either use a regular KILL instead, or otherwise modify the reason so that operators can be held accountable if necessary.</p>
|
||||
<h2><a name="S6_2"></a>6.2 SVSMODE, SVS2MODE - Force User Mode Change (TOKEN: n or v)</h2>
|
||||
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
||||
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservice-identifier-token</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
||||
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
||||
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
||||
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
||||
<h2><a name="S6_3"></a>6.3 SVSSNO, SVS2SNO - Forced SNomask Change (TOKEN: BV or BW)</h2>
|
||||
<p><b>Syntax (SVSSNO):</b> <tt>:<i>source</i> BV <i>target</i> +<i>snomasks</i></tt></p>
|
||||
<p><b>Syntax (SVS2SNO):</b> <tt>:<i>source</i> BW <i>target</i> +<i>snomask</i></tt></p>
|
||||
<p>Changes a user's snomasks. The difference between SVSSNO and SVS2SNO is the same as with SVSMODE versus SVS2MODE. If the user is not +s, you must add it via SVSMODE +s. For example:</p>
|
||||
<pre>:OperServ v someuser +s
|
||||
:OperServ BW someuser +ks</pre>
|
||||
<h2><a name="S6_4"></a>6.4 SVSNICK - Forced Nick Change (TOKEN: e)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> e <i>target</i> <i>newnick</i> :<i>newtimestamp</i></tt></p>
|
||||
<p>Forces the specified user to change his nick to newnick and also sets the nick timestamp to newtimestamp (so, for example, services could protect identified users from a nick collision by simply setting the nick timestamp to something way less than "now" - though currently this requires actually changing the nick too). SVSNICK requires the server to which the target is connected to acknowledge the nick change. If the user specified by newnick already exists, then target will be disconnected (even if it's something like a case-change).</p>
|
||||
<h2><a name="S6_5"></a>6.5 SVSJOIN - Forced Join (TOKEN: BX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BX <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>This is identical to SAJOIN with a few exceptions: 1) It is U:Line-only. 2) No opernotice on use. 3) Bans and restricting modes are respected, a prior INVITE message must be sent to cause bans to be ignored.</p>
|
||||
<h2><a name="S6_6"></a>6.6 SVSPART - Forced Part (TOKEN: BT)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BT <i>target</i> <i>#channel</i> :<i>reason</i></tt></p>
|
||||
<p>Also identical to SAPART with a few exceptions: no static prefix on the optional part reason, and no global notice, and requires a U:Line. Usage recommendation of SVSPART versus KICK is the same as for SVSKILL versus KILL.</p>
|
||||
<h2><a name="S6_7"></a>6.7 SVSO - Oper Permissions (TOKEN: BB)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BB <i>target</i> <i>flagchanges</i></tt></p>
|
||||
<p>This allows a service to add or remove IRCop permission flags for a user. Flagchanges is formatted similar to that of MODE with the exception that operflags are used instead of usermodes. If the change string consists only of -, then all oper permissions, usermodes, and snomasks are removed (as if the user had himself typed MODE nick -Oo).</p>
|
||||
<p>If you are granting IRCop permissions to a user who is not currently an IRCop, you should follow up with an SVSMODE +o or SVSMODE +O as appropriate. For example:</p>
|
||||
<pre>:OperServ BB somenick +o
|
||||
:OperServ BW somenick +cefknoqsSv
|
||||
:OperServ AL somenick local.oper.somethinghere.net
|
||||
:OperServ v somenick +Ohs </pre>
|
||||
<h2><a name="S6_8"></a>6.8 SVSNOOP - Oper Lockdown (TOKEN: f)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> f <i>(op)</i><i>server.name</i></tt></p>
|
||||
<p>The (op) parameter is either a + or - indicating if NOOP mode should be activated (+) or deactivated (-). When NOOP mode is activated, all IRCops on the server are deopered (including local operators) and the /oper command is disabled. IRCop privileges can still be granted through use of SVSO. On UnrealIRCd, it is not necessary to masskill all IRCops on the nooped server, as they are deopered automatically.</p>
|
||||
<h2><a name="S6_9"></a>6.9 SVSNLINE - RealName Ban (TOKEN: BR)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BR <i>op</i> <i>reason</i> :<i>realname mask</i></tt></p>
|
||||
<p>Op is either + (add) or - (remove). In the case of +, reason is a space-escaped string (all space chars are encoded as _). If -, reason is ignored.</p>
|
||||
<h2><a name="S6_10"></a>6.10 SVSFLINE - File Ban (TOKEN: BC)</h2>
|
||||
<p><b>Syntax (add):</b> <tt>:<i>source</i> BC + <i>filemask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Syntax (remove):</b> <tt>:<i>source</i> BC - <i>filemask</i></tt></p>
|
||||
<p><b>Syntax (clear):</b> <tt>:<i>source</i> BC *</tt></p>
|
||||
<p>Adds or removes a DCCDENY item for the specified filemask on all servers. These DCCDENYs are hard dccdenies - the /dccallow command cannot override it. The last form removes all dccdenies added via SVSFLINE.</p>
|
||||
<hr/>
|
||||
<h1><a name="S7"></a>7 Messaging</h1>
|
||||
<p>What good is Internet Relay <b>CHAT</b> if users cannot <b>CHAT</b>? This section addresses the commands through which arbitrary user messages are sent.</p>
|
||||
<h2><a name="S7_1"></a>7.1 PRIVMSG, NOTICE - Simple Message Transmission (Token: ! or B)</h2>
|
||||
<p><b>PRIVMSG Syntax:</b> <tt>:<i>source</i> ! <i>target</i> :<i>message</i></tt></p>
|
||||
<p><b>NOTICE Syntax:</b> <tt>:<i>source</i> B <i>target</i> :<i>message</i></tt></p>
|
||||
<p>Sends a messages to the given target. The target either names a single client, or identifies a list of clients in which the message is to be sent to. The available targets include:</p>
|
||||
<ul>
|
||||
<li><i>nickname</i>: Names a single user to whom the message is delivered.</li>
|
||||
<li><i>nickname</i>@<i>servermask</i>: Also names a single user, but the message will only be delivered if the user is connected to a server matching the specified servermask. This is typically used for sending messages to services. The target must not be changed at any point along the path it must travel for delivery, even up to the final receipt of the message by the target. This allows the target to know it has been sent a message in this way.</li>
|
||||
<li>#<i>channelname</i>: Sends a message to all users on the specified channel (except when channel is a moderated auditorium (+mu), in which case the wierd +mu sending behavior goes off).</li>
|
||||
<li><i>modeprefix</i>#<i>channelname</i>: Sends a message to all users on the given channel having the given status or higher. For example: + means all voices, halfops, etc.</li>
|
||||
<li>$<i>servermask</i>: Sends a message to ALL users on all servers matching the specified servermask (known as a server broadcast message). The RFC requirements of having a TLD with no wildcards is not applied to U:Lined clients.</li>
|
||||
</ul>
|
||||
<p>Unreal does not support the #hostmask format.</p>
|
||||
<h2><a name="S7_2"></a>7.2 SENDUMODE, SMO - Usermode-based Delivery (TOKEN: AP or AU)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> AU <i>umode</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given mode. Only one usermode may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_3"></a>7.3 SENDSNO - SNomask-based Delivery (TOKEN: Ss)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> Ss <i>snomask</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given snomask. Only one snomask may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_4"></a>7.4 CHATOPS - IRCop Chat (TOKEN: p)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> p :<i>message</i></tt></p>
|
||||
<p>Sends the message to all IRCops on all servers.</p>
|
||||
<h2><a name="S7_5"></a>7.5 WALLOPS - Wallop Chat (TOKEN: =)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> = :<i>message</i></tt></p>
|
||||
<p>Sends the message to all users with usermode +w, whether they are ircops or not.</p>
|
||||
<h2><a name="S7_6"></a>7.6 GLOBOPS - FailOp Chat (TOKEN: ])</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ] :<i>message</i></tt></p>
|
||||
<p>Send the message to all IRCops with usermode +g.</p>
|
||||
<h2><a name="S7_7"></a>7.7 ADCHAT - Admin Chat (TOKEN: x)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> x :<i>message</i></tt></p>
|
||||
<p>Send the message to all Server and Network Admins (usermode +A).</p>
|
||||
<h2><a name="S7_8"></a>7.8 NACHAT - NetAdmin Chat (TOKEN: AC)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AC :<i>message</i></tt></p>
|
||||
<p>Send the message to all Network Admins (usermode +N).</p>
|
||||
<hr/>
|
||||
<h1><a name="S8"></a>8 Ban Control</h1>
|
||||
<p>Sometimes, you have the misfortune of encountering a user who has no purpose but to serve as an annoyance to your server or network. These commands transmit network-wide ban information amongst each other.</p>
|
||||
<h2><a name="S8_1"></a>8.1 TKL - Master Ban Control (TOKEN: BD)</h2>
|
||||
<p>The TKL command seems to have one oddity about it: the real ban source is included in the TKL command rather than in the sender prefix. Most likely this is done for synching reasons (so that the *line ban can be credited to the proper person even if he/she is offline). For this reason, the command syntax is given without any sender prefix at all. It is still permissible to use one, however.</p>
|
||||
<h3><a name="S8_1_1"></a>8.1.1 GLINE - Network-wide user@host ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + G <i>userpart</i> <i>hostpart</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - G <i>userpart</i> <i>hostpart</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide user@host bans, known as G:Lines. The GLINE command itself must not be used. The userpart and hostpart are the user portion and hostname portion of the ban mask. The expiretimestamp is 0 if the G:Line should not expire, otherwise it will expire at the given time. It is an absolute time, not relative, thus it's imperitive to have reasonably synchrnoized clocks or bans may be removed too early or even immediately!</p>
|
||||
<h3><a name="S8_1_2"></a>8.1.2 GZLINE - Network-wide IP ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Z * <i>ipmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Z * <i>ipmask</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide IP bans, known as Global Z:Lines. The GZLINE command itself must not be used. Ipmask permits CIDR notation as well as wildcard masks.</p>
|
||||
<h3><a name="S8_1_3"></a>8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban (TOKEN: c or d)</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Q <i>hold</i> <i>nickmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Add Syntax (SQLINE):</b> <tt>:<i>source</i> c <i>nickmask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Q <i>hold</i> <i>nickmask</i> <i>source</i></tt></p>
|
||||
<p><b>Remove Syntax (UNSQLINE):</b> <tt>:<i>source</i> d <i>nickmask</i></tt></p>
|
||||
<p>In the TKL syntax, the hold parameter is either a * to mark the qline as a nick ban, or an H to mark it as a services hold. A services hold does not trigger qline rejection notice, and is typically used by NickServ to reserve registered nicks until they are released by the owner. The (UN)SQLINE syntax can only be used by a server, but any user can be used as the source for the TKL syntax. Unlike G and GZ lines, Q:Lines do not cause existing matching users to be disconnected or otherwise affected.</p>
|
||||
<p>The TKL syntax is preferred, since it is more flexible, but (UN)SQLINE is permitted for compatibility.</p>
|
||||
<h3><a name="S8_1_4"></a>8.1.4 SPAMFILTER - Message Spam Filtration System</h3>
|
||||
<p>Proper use of spamfilter in TKL commands requires use of PROTOCTL TKLEXT, which increases the number of parameters allowed in TKL.</p>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestamp</i> <i>tklduration</i> <i>tklreason</i> :<i>regex</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestap</i> :<i>regex</i></tt></p>
|
||||
<p>Adds and Removes network-wide spamfilters. The SPAMFILTER command itself must not be used. See <a href="http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter">http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter</a> for a list of valid targets. For actions, a single character is used to identify the action to be taken:</p>
|
||||
<ul>
|
||||
<li>K (kill) - The user is simply disconnected, with the reason given.</li>
|
||||
<li>S (tempshun) - A temporary shun is placed on the user. This shun is applied only to that user, and disappears if the user reconnects.</li>
|
||||
<li>s (shun) - A regular shun on the user's IP address is added. This causes all users with the same hostname to be shunned, but they will also stay shunned if they reconnect.</li>
|
||||
<li>k (kline) - A K:Line is added on the user's IP address.</li>
|
||||
<li>z (zline) - A Z:Line is added on the user's IP address.</li>
|
||||
<li>g (gline) - A G:Line is added on the user's IP address.</li>
|
||||
<li>Z (gzline) - A Global Z:Line is added on the user's IP address.</li>
|
||||
<li>b (block) - Messages (or users!) matching the filter are simply blocked.</li>
|
||||
<li>d (dccblock) - The user is prevented from sending files using DCC for the remainder of his session (in other words, until he quits).</li>
|
||||
<li>v (viruschan) - User is removed from all channels, joined to the viruschan as defined in conf, and cannot message anything but that channel.</li>
|
||||
<li>w (warn) - No action on the user is taken. Only the Spamfilter notice is sent to opers with snomask +S.</li>
|
||||
</ul>
|
||||
<h1><a name="S9">9 Base64 Tables</a></h1>
|
||||
<p>Unreal uses base64 encoding to allow saving bandwidth by encoding numbers in a more compact format. Unreal uses two different variations of base64, one used for the SJB64 PROTOCTL option (in NICK and SJOIN), and one used for NICKIP.</p>
|
||||
<h2><a name="S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></h2>
|
||||
<p>In NICK and SJOIN, remember that the timestamp will be prefixed with ! to signal a base64 timestamp.</p>
|
||||
<p>Just like in base10, the least significant "digit" is last.</p>
|
||||
<pre> 0 0 17 H 34 Y 51 p
|
||||
1 1 18 I 35 Z 52 q
|
||||
2 2 19 J 36 a 53 r
|
||||
3 3 20 K 37 b 54 s
|
||||
4 4 21 L 38 c 55 t
|
||||
5 5 22 M 39 d 56 u
|
||||
6 6 23 N 40 e 57 v
|
||||
7 7 24 O 41 f 58 w
|
||||
8 8 25 P 42 g 59 x
|
||||
9 9 26 Q 43 h 60 y
|
||||
10 A 27 R 44 i 61 z
|
||||
11 B 28 S 45 j 62 {
|
||||
12 C 29 T 46 k 63 }
|
||||
13 D 30 U 47 l
|
||||
14 E 31 V 48 m
|
||||
15 F 32 W 49 n
|
||||
16 G 33 X 50 o</pre>
|
||||
<h2><a name="S9_2">9.2 Table for NICKIP.</a></h2>
|
||||
<p>In this table, the IP is encoded in network byte order. In terms of IPs, this means the first byte of the address really is first. Each "digit" in the base64 encoded IP corresponds to 6 bits of the IP address.</p>
|
||||
<p>An IPv4 address is 32 bits, so 6 base64 "digits" are needed. Since base64 requires values to come in multiples of 4 "digits", padding characters (=) need to be added if a value comes up short. In the case of IPv4 addresses, two are needed.</p>
|
||||
<p>IPv6 addresses are 128-bit. They therefore need 22 base64 "digits" plus 2 pad characters.</p>
|
||||
<pre> 0 A 17 R 34 i 51 z
|
||||
1 B 18 S 35 j 52 0
|
||||
2 C 19 T 36 k 53 1
|
||||
3 D 20 U 37 l 54 2
|
||||
4 E 21 V 38 m 55 3
|
||||
5 F 22 W 39 n 56 4
|
||||
6 G 23 X 40 o 57 5
|
||||
7 H 24 Y 41 p 58 6
|
||||
8 I 25 Z 42 q 59 7
|
||||
9 J 26 a 43 r 60 8
|
||||
10 K 27 b 44 s 61 9
|
||||
11 L 28 c 45 t 62 +
|
||||
12 M 29 d 46 u 63 /
|
||||
13 N 30 e 47 v
|
||||
14 O 31 f 48 w (pad) =
|
||||
15 P 32 g 49 x
|
||||
16 Q 33 h 50 y</pre>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -2,6 +2,7 @@ VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2311 3.2.10
|
||||
2310 3.2.9
|
||||
2309 3.2.6, 3.2.7, 3.2.8
|
||||
2308 3.2.5
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
==[ Translations ]============================================================
|
||||
==[ Translations ]===========================================================
|
||||
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
documentation files. For now, only translations of unreal32docs.html and
|
||||
@@ -37,9 +37,8 @@ Upon successful completion you will also receive an @unrealircd.org
|
||||
forwarder email address, and of course your name will be in the docs.
|
||||
|
||||
If you want to start translating a document, please send an email to
|
||||
coders@lists.unrealircd.org and mention the language you are willing
|
||||
to translate to.. You will then receive an email back saying you can
|
||||
go ahead (or not). This is mainly to avoid multiple persons working
|
||||
on the same translation.
|
||||
syzop@unrealircd.com and mention the language you are willing to translate
|
||||
to.. You will then receive an email back saying you can go ahead (or not).
|
||||
This is mainly to avoid multiple persons working on the same translation.
|
||||
|
||||
==============================================================================
|
||||
=============================================================================
|
||||
|
||||
@@ -17,19 +17,23 @@
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
<a href="unreal32docs.html">English</a> | German |
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a>
|
||||
<br><br>
|
||||
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Version: 3.2.9-RC1</font><br>
|
||||
<font size="4">Version: 3.2.10.5</font><br>
|
||||
<b>Letztes Update dieses Handbuchs:</b> 2009-12-24</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<font face="Helvetica,Arial" size="-1">/
|
||||
aquanight / WolfSage</font><br>
|
||||
@@ -219,9 +223,9 @@ Bug gemeldet wird!</p></div>
|
||||
</ul>
|
||||
<li><b>Windows Versionen:</b>
|
||||
<ul>
|
||||
<li>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<li>WindowsXP (Home, Pro)
|
||||
<li>Windows XP (Home, Pro)
|
||||
<li>Windows 2003
|
||||
<li>Windows 7
|
||||
</ul>
|
||||
<li><b>Getestete Architektueren (Prozessoren):</b>
|
||||
<ul>
|
||||
|
||||
+1965
-1536
File diff suppressed because it is too large
Load Diff
+1836
-1642
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+180
-74
@@ -20,20 +20,24 @@
|
||||
<!-- $Id$ -->
|
||||
|
||||
<body>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
English |
|
||||
<a href="unreal32docs.de.html">German</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a>
|
||||
<br><br>
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Version: 3.2.9-RC1</font><br>
|
||||
<b>Last doc update:</b> 2010-11-15</div>
|
||||
<font size="4">Version: 3.2.10.5</font><br>
|
||||
<b>Last doc update:</b> 2013-11-20</div>
|
||||
<br>
|
||||
<b>Head coder/maintainer:</b> Syzop<br>
|
||||
<b>Coders:</b> binki<br>
|
||||
@@ -69,7 +73,8 @@ English |
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Character Sets</a><br>
|
||||
-- 3.17. <a href="#feature_cgiirc">CGI:IRC Support</a><br>
|
||||
-- 3.18. <a href="#feature_timesync">Time Synchronization</a><br>
|
||||
-- 3.19. <a href="#feature_other">Other features</a><br>
|
||||
-- 3.19. <a href="#feature_authtypes">Authentication Types</a><br>
|
||||
-- 3.20. <a href="#feature_other">Other features</a><br>
|
||||
4. <a href="#configuringyourunrealircdconf">Configuring your unrealircd.conf
|
||||
file</a><br>
|
||||
---4.1. <a href="#configurationfileexplained">Configuration file explained</a><br>
|
||||
@@ -108,7 +113,7 @@ English |
|
||||
---4.34. <a href="#officialchannels">Official Channels Block</a><br>
|
||||
---4.35. <a href="#spamfilter">Spamfilter Block</a><br>
|
||||
---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
||||
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.37. <a href="#setblock">Set Block</a><br>
|
||||
---4.38. <a href="#filesblock">Files Block</a><br />
|
||||
5. <a href="#addtlfiles">Additional Files</a><br>
|
||||
6. <a href="#userchannelmodes">User & Channel Modes</a><br>
|
||||
@@ -193,9 +198,9 @@ Windows:<br>
|
||||
</ul>
|
||||
<li><b>Windows version:</b>
|
||||
<ul>
|
||||
<li>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<li>Windows XP (Home, Pro)
|
||||
<li>Windows 2003
|
||||
<li>Windows 7
|
||||
</ul>
|
||||
<li><b>Architectures tested:</b>
|
||||
<ul>
|
||||
@@ -245,7 +250,7 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
|
||||
<p>A cloaked host is generated by a cloaking module (you are required to have one loaded), currently there's only 1 module included:<br>
|
||||
<b>cloak:</b> This is the official cloaking module since 3.2.1, it is much more secure than the old
|
||||
algorithm, it uses md5 internally and requires you to have 3 set::cloak-keys:: consisting of mixed lowercase (a-z),
|
||||
uppercase (A-Z) and digit (0-9) charachters [eg: "AopAS6WQH2Os6hfosh4SFJHs"]. See example.conf for an example.<br>
|
||||
uppercase (A-Z) and digit (0-9) characters [eg: "AopAS6WQH2Os6hfosh4SFJHs"]. See example.conf for an example.<br>
|
||||
<p>Cloak keys MUST be the same on ALL SERVERS in a network. Also cloak keys should be kept SECRET
|
||||
because it's possible to decode the original host if you know the keys (which makes umode +x useless).</p>
|
||||
<p>Hint: If you are on *NIX and have to create new cloak keys, you can run './unreal gencloak'
|
||||
@@ -337,7 +342,7 @@ because otherwise you will not understand concepts such as 'cloaking', 'snomasks
|
||||
If you then connect to 127.0.0.1 port 6667, your traffic will be encrypted and forwarded to irc.myserv.com
|
||||
port 6697 (an SSL port).</p>
|
||||
<p>You should also validate certificates when you connect to servers and not blindly accept them (like in the stunnel example)
|
||||
else you are still vulnerable to "active sniffing" attacks (ssl redirects), that's however too offtopic
|
||||
else you are still vulnerable to "active sniffing" attacks (ssl redirects), that's however too off-topic
|
||||
to explain here (learn about SSL, don't ask us). [mIRC and xchat pop up a window asking you to allow/reject a certificate,
|
||||
so that's good].</p></div>
|
||||
<p><font size="+2"><b>3.9 - IPv6</b></font><a name="feature_ipv6"></a></p><div class="desc">
|
||||
@@ -510,10 +515,21 @@ These bantypes introduce new criteria which can be used:<br>
|
||||
Ex: <i>+e ~R:Nick</i> will allow Nick in the channel, regardless of other bans, if he identified to
|
||||
NickServ and is using the nickname Nick.<br>
|
||||
</td></tr>
|
||||
<tr><td>~a</td><td>account</td><td>If a user is logged in to services with
|
||||
this account name, then this ban will match.<br>
|
||||
This is slightly different than ~R, in the sense that a user with nick ABC
|
||||
may be logged in under account XYZ.<br>
|
||||
Not all services packages support this, in which case you will have to use
|
||||
~R instead.<br>
|
||||
Ex: <i>+e ~a:SomeName</i> will allow the user(s) logged in to services under
|
||||
account name SomeName to join the channel, regardless of bans.<br>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
You may stack extended bans from the 1st group with the 2nd, such as <i>+b ~q:~c:#lamers</i>, which
|
||||
would quiet all users who have joined #lamers.<br>
|
||||
Ban types from the second group may also be used for invite exceptions (+I),
|
||||
such as <i>+I ~c:#trusted</i> and <i>+I ~a:accountname</i>.<br>
|
||||
<br>
|
||||
Modules can add other extended ban types.<br>
|
||||
</p></div>
|
||||
@@ -698,7 +714,79 @@ the IRCd will continue to boot regardlessly (should rarely happen).</p>
|
||||
the <a href="#setblock">set documentation</a> for more information.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.19 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.19 - Authentication Types</b></font><a name="feature_authtypes"></a></p><div class="desc">
|
||||
<p>At various places in the configuration file, for example the <a
|
||||
href="#operblock">oper block</a>, <a href="#allowblock">allow block</a> and
|
||||
<a href="#linkblock">link block</a>, you can authenticate clients by password or other
|
||||
means.<br>
|
||||
|
||||
You can specify the password as plaintext, but you can also specify an
|
||||
authentication type.<br>
|
||||
The following auth-types are available:<br>
|
||||
<table border="0">
|
||||
<TR><TD><b>Auth-type:</b></TD><TD><b>Description:</b></TD><TD><b>Dependencies:</b></TD><TD><b>How to generate:</b></TD></TR>
|
||||
<TR><TD><b>crypt</b></TD><TD>UNIX crypt</TD><TD>Windows: OpenSSL required</TD><TD>/MKPASSWD crypt :password</TD></TR>
|
||||
<TR><TD><b>md5</b></TD><TD>MD5 with salt</TD><TD>Always available</TD><TD>/MKPASSWD md5 :password</TD></TR>
|
||||
<TR><TD><b>sha1</b></TD><TD>SHA1 with salt</TD><TD>OpenSSL required</TD><TD>/MKPASSWD sha1 :password</TD></TR>
|
||||
<TR><TD><b>ripemd160</b></TD><TD>RIPEMD160 with salt</TD><TD>OpenSSL required</TD><TD>/MKPASSWD ripemd160 :password</TD></TR>
|
||||
<TR><TD><b>sslclientcert</b></TD><TD>SSL Client certificate</TD><TD>OpenSSL required</TD><TD>Path to public certifcate .pem file.</TD></TR>
|
||||
<TR><TD><b>sslclientcertfp</b></TD><TD>SSL Client certificate fingerprint</TD><TD>OpenSSL required</TD><TD>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</TD></TR>
|
||||
</table>
|
||||
The /MKPASSWD command can be used online as IRCOp. Alternatively, you can
|
||||
use the command line interface from the shell: <i>./unreal mkpasswd hashtype
|
||||
password</i>.<br>
|
||||
Not all authentication types are available on all systems, see the
|
||||
dependencies (prerequisites) in the table of above.<br>
|
||||
<br>
|
||||
<b>Example: MD5 hashed password in vhost block</b><br>
|
||||
1. Say, you want to use the password <i>test</i> and want to use md5 hashed
|
||||
passwords.<br>
|
||||
If you are an IRCOp then you can simply type <i>/MKPASSWD md5 :test</i>.<br>
|
||||
Alternatively, instead of IRC you can run the following command on the
|
||||
shell: <i>./unreal mkpasswd md5 test</i>.<br>
|
||||
Using either method, the outputted hashed password will look like <i>$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==</i>
|
||||
(the exact string will vary!)<br>
|
||||
2. Now, put this string in your vhost block and let UnrealIRCd know it's an
|
||||
md5 hash. Example:
|
||||
<pre>vhost {
|
||||
vhost I.love.Tux;
|
||||
from { userhost *@*; };
|
||||
login Tux;
|
||||
password "$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==" { md5; };
|
||||
};</pre>
|
||||
3. To use this vhost, type /VHOST Tux test<br>
|
||||
<br>
|
||||
<b>Example: Authentication by SSL Client certificates</b><br>
|
||||
<tt>sslclientcert</tt> and <tt>sslclientcertfp</tt> are exceptional
|
||||
auth-types which can be used to authenticate SSL users by their client
|
||||
certificate.<br>
|
||||
With these authentication methods you can be sure the user is using SSL and
|
||||
is using the specified client certificate.<br>
|
||||
Here's an example of how to use it for the oper block:<br>
|
||||
1. Create an SSL client certificate if you don't have one already (search
|
||||
the web for 'create ssl certificate' if you don't know how)<br>
|
||||
2. Grab the SHA256 hash of the certificate by running:
|
||||
<pre>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</pre>
|
||||
3. In the configuration file, replace the original password (<i>test</i> in our example) with the hash
|
||||
and specify the sslclientcertfp auth-type. Here's an example:<br>
|
||||
<pre>oper test {
|
||||
password "E7:4D:46:F1:9F:F4:68:F5:E8:E3:49:CC:28:5D:F9:65:85:BA:4F:16:B6:49:02:E3:34:E6:E7:6A:FE:76:A7:98" { sslclientcertfp; };
|
||||
flags { global; can_override; };
|
||||
class clients;
|
||||
};</pre>
|
||||
4. Rehash your server (/REHASH).<br>
|
||||
5. Now, connect with your SSL client and make sure it uses your SSL client
|
||||
certificate of step #2.<br>
|
||||
6. You can now oper up with <i>/oper test x</i>. The password must still
|
||||
be specified but may be anything (<i>x</i> in this example), it is ignored
|
||||
as the SSL client certificate is used for authentication.<br>
|
||||
7. Congratulations, you are now using the most secure authentication method
|
||||
available in UnrealIRCd.<br>
|
||||
<br>
|
||||
Another very useful place to use <tt>sslclientcertfp</tt> is in <a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.20 - Other features</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p>UnrealIRCd has a lot of features so not everything is covered here... You'll find that out by yourself.</p></div>
|
||||
|
||||
<p> </p>
|
||||
@@ -985,6 +1073,7 @@ listen *:6601 {
|
||||
userhost <hostmask>;
|
||||
};
|
||||
password <password> { <auth-type>; };
|
||||
require-modes <modes>
|
||||
class <class-name>;
|
||||
flags <flags>;
|
||||
flags {
|
||||
@@ -1001,38 +1090,18 @@ listen *:6601 {
|
||||
<p>The oper block allows you to assign IRC Operators for your server. The <b>oper::</b>
|
||||
specifies the login name for the /oper. The <b>oper::from::userhost</b> is a user@host
|
||||
mask that the user must match, you can specify more than one hostmask by creating
|
||||
more than one oper::from::userhost.
|
||||
more than one oper::from::userhost. The
|
||||
optional <b>oper::require-modes</b> setting lets one specify modes
|
||||
(such as <em>r</em> or <em>z</em>) that a user must have acquired
|
||||
before being allowed to OPER. This might be used to require users
|
||||
to register with nickserv or be using secure connections before
|
||||
being able to become operators.
|
||||
</p>
|
||||
<p id="operblock_password">The <b>oper::password::</b> is the password the oper must specify.
|
||||
<b>oper::password::auth-type</b> allows you to specify an authentication method
|
||||
for this password. Don't specify <b>oper::password::auth-type</b> for plaintext password.
|
||||
Valid auth-types are <tt>crypt</tt>, <tt>md5</tt>, <tt>sha1</tt>, <tt>ripemd160</tt>,
|
||||
and <tt>sslclientcert</tt>. Specifying any one of these types means that the
|
||||
value of <b>oper::password::</b> is a hash generated with
|
||||
<a href="#cmd_mkpasswd">mkpasswd</a>.
|
||||
</p>
|
||||
<p id="operblock_password_sslclientcert">
|
||||
<tt>sslclientcert</tt> is an exceptional auth-type. When this is
|
||||
chosen as the auth-type, <b>oper::password::</b> should be a file
|
||||
path (relative to UnrealIRCd's installation directory). The file
|
||||
should be a PEM-encoded SSL certificate (the public certificate, not
|
||||
a key). This specifies that only an IRC client that
|
||||
<ol>
|
||||
<li>is connected using SSL</li>
|
||||
<li>presented the matching client certficate when connecting</li>
|
||||
<li>has access to the private key associated with the certficiate file</li>
|
||||
</ol>
|
||||
may connect. Of course, this feature requires that UnrealIRCd be
|
||||
compiled with SSL support. Also, as any SSL certificate's associated
|
||||
key is much longer than a normal human's password and much more
|
||||
random, this is the securest authentication option. To oper
|
||||
up when you have specified a client SSL certificate as the oper's
|
||||
password, just ensure that the client is set up correctly and issue
|
||||
<pre>/oper <name> :</pre>. The <tt>sslclientcert</tt>
|
||||
auth-type may also be used
|
||||
for <a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
to secure <a href="#linkblock">link block</a>s.
|
||||
</ol>
|
||||
Valid auth-types, as was as an example on how to use them with oper
|
||||
blocks, can be found under <a href="#feature_authtypes">Authentication Types</a>.
|
||||
</p>
|
||||
<p>Please note that BOTH the password and login name are case sensitive.</p>
|
||||
<p>The <b>oper::class</b> directive specifies the name of a preexisting (appears before
|
||||
@@ -1352,7 +1421,7 @@ oper bobsmith {
|
||||
global;
|
||||
};
|
||||
swhois "Example of a whois mask";
|
||||
snomask frebWqFv;
|
||||
snomask cFfkoSsqNG;
|
||||
};
|
||||
</pre></p>
|
||||
<a name="operoverride"><b>Some little info about OperOverride:</b><br>
|
||||
@@ -1371,9 +1440,8 @@ drpass {
|
||||
die <die-password> { <auth-type>; };
|
||||
};</pre></p>
|
||||
<p>This block sets the /restart and /die passwords with drpass::restart and drpass::die
|
||||
respectively. The drpass::restart:: and drpass::die:: allow you to specify the
|
||||
type of authentication used by this item. The currently supported authentication
|
||||
types are crypt, md5, and sha1, ripemd-160.</p>
|
||||
respectively.
|
||||
Instead of a plaintext password, you can also use other <a href="#feature_authtypes">Authentication Types</a>.</p>
|
||||
<p>Example:</p>
|
||||
<pre>
|
||||
drpass {
|
||||
@@ -1909,8 +1977,10 @@ vhost {
|
||||
to be eligible for the vhost. You may specify more than one hostmask. The vhost::login
|
||||
in the login name the user must enter and vhost::password is the password that
|
||||
must be entered. The vhost::password:: allows you to specify the type of
|
||||
authentication used by this item. The currently supported authentication types
|
||||
are crypt, md5, and sha1, ripemd-160. Lastly vhost::swhois allows you to add an extra
|
||||
authentication used by this item. See <a
|
||||
href="#feature_authtypes">Authentication Types</a> for a list of available
|
||||
types.
|
||||
Lastly vhost::swhois allows you to add an extra
|
||||
line to a users whois, exactly as it does in the Oper Block oper::swhois.</p>
|
||||
<p>Example:<br>
|
||||
<pre>
|
||||
@@ -2031,12 +2101,9 @@ link <server-name> {
|
||||
The password used for connecting to the remote server, must be plain-text.
|
||||
</p>
|
||||
<p id="linkblock_passwordreceive"><b>password-receive</b><br> The password used for validating
|
||||
incoming links. This may be encrypted in the same manner
|
||||
as <a href="#operblock_password"><b>oper::password</b></a>. It may,
|
||||
notably, be set up to use
|
||||
the <a href="#operblock_password_sslclientcert"><tt>sslclientcert</tt></a>
|
||||
auth-type. In fact, this is strongly recommended as it is infinitely
|
||||
more resilient against brute-force attacks.
|
||||
incoming links. It is strongly recommended to use hashed passwords or
|
||||
the <tt>sslclientcertfp</tt> auth-type. See <a href="#feature_authtypes">Authentication
|
||||
Types</a> for more information.<br>
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
A hub has multiple servers linked to it, a leaf has only one link... to you.
|
||||
@@ -2338,11 +2405,10 @@ Then, in your unrealircd.conf you add a cgiirc block:
|
||||
<p id="setblock"><font class="block_section">4.37 - </font><font class="block_name">Set Block</font>
|
||||
<font class="block_required">REQUIRED</font> <font class="block_old">(Previously known as unrealircd.conf/networks file)</font>
|
||||
</p><div class="desc">
|
||||
<p>The set file is what use to be our networks/unrealircd.conf and our networks
|
||||
file. On single server networks, rather than having 3 files you can just put all
|
||||
the set statements in the unrealircd.conf itself, on multi-server networks, I
|
||||
recommend using a seperate networks file.</p>
|
||||
<p>Now, if your server is on a network, chances are you will all basically use
|
||||
<p>On single server networks, rather than having 3 files you can just put all
|
||||
the set statements in the unrealircd.conf itself, on multi-server networks, we
|
||||
recommend using a seperate networks file (see next).</p>
|
||||
<p>If your server is on a network, chances are you will all basically use
|
||||
the same Set settings. Therefore it makes more sense to have a network file,
|
||||
which is loaded with an <a href="#includedirective">include</a> directive.
|
||||
Below you will find all of the set directives available.</p>
|
||||
@@ -2379,7 +2445,7 @@ set {
|
||||
<p>Now if you wanted to make the set statements separate, say you wanted to set
|
||||
your options in a single line.<br>
|
||||
Example:<br>
|
||||
set { options { hide-ulines; no-stealth; }; };<br>
|
||||
set { options { hide-ulines; show-connect-info; }; };<br>
|
||||
</p>
|
||||
<p><font class="set">set::kline-address <email-address>;</font><br>
|
||||
The email address that K:line questions should be sent to. This value must be
|
||||
@@ -2503,6 +2569,10 @@ set {
|
||||
<p><font class="set">set::options::allow-insane-bans;</font><br>
|
||||
Allow insane broad bans like /GLINE *@*.xx. This makes it very easy to
|
||||
accidentally ban everyone on your network, so use with great care!</p>
|
||||
<p><font class="set">set::options::disable-cap;</font><br>
|
||||
Disable IRC Client Capabilities Extensions (CAP). Note that this makes
|
||||
SASL and various other features unavailable or harder for clients to
|
||||
use.</p>
|
||||
<p id="set_nopost_ban_action"><font class="set">set::nopost::ban-action</font> (requires <a href="#modules_m_nopost">m_nopost</a>)<br />
|
||||
Action to take on a user if he tries to perform an HTTP POST command.
|
||||
The allowed values are: kill, gline, gzline, kline, zline, shun, and tempshun.
|
||||
@@ -2527,8 +2597,11 @@ set {
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
A numeric value specifying the number of times the DNS lookup will be retried
|
||||
if failure occurs. (NOT IMPLEMENTED)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Specifies the hostname of the server that will be used for DNS lookups. (NOT IMPLEMENTED)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br/>
|
||||
Specifies the IP address of the server that will be used for DNS
|
||||
lookups. Used only as a fallback for when c-ares is unable to guess
|
||||
the nameservers (such as if /etc/resolv.conf is empty).
|
||||
</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Specifies the IP to bind to for the resolver, rarely ever needed.</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
@@ -2549,6 +2622,9 @@ set {
|
||||
<p id="set-stats-server"><font class="set">set::stats-server <server-name>;</font><br>
|
||||
Sets the name of the server on which the stats bot is located. If stats are
|
||||
not run this value may be left out.</p>
|
||||
<p id="set-sasl-server"><font class="set">set::sasl-server <server-name>;</font><br>
|
||||
Sets the name of the server to which SASL authenticate messages should be
|
||||
sent.</p>
|
||||
<p><font class="set">set::help-channel <network-help-channel>;</font><br>
|
||||
Sets the name of the help channel for this network.</p>
|
||||
<p><font class="set">set::cloak-keys { "key1"; "key2"; "key3"; };</font><br>
|
||||
@@ -2559,7 +2635,8 @@ set {
|
||||
cloaking module you have loaded, other rules may apply.</p>
|
||||
<p><font class="set">set::hiddenhost-prefix <prefix-value>;</font><br>
|
||||
Defines the prefix that will be used on hiddenhosts (+x). This is usually three
|
||||
or four letters representing the network name.</p>
|
||||
or four letters representing the network name. Linked servers must have
|
||||
the same hidden-host prefix for channel bans to function properly.</p>
|
||||
<p><font class="set">set::hosts::local <locop-host-name>;</font><br>
|
||||
Defines the hostname that will be assigned to local opers when they set +x. You may
|
||||
optionally specify a username@host for this value.</p>
|
||||
@@ -2666,6 +2743,16 @@ set {
|
||||
If a spamfilter takes longer than this amount of milliseconds to execute
|
||||
(1000ms = 1 second), then the spamfilter will be removed (default: 500).
|
||||
See also <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.</p>
|
||||
<p><font class="set">set::spamfilter::stop-on-first-match <yes|no></font><br>
|
||||
By default this is set to 'yes' which means that once a spamfilter
|
||||
matches UnrealIRCd will take action immediately and any additional
|
||||
(other) spamfilters will not be processed.<br>
|
||||
When this is set to 'no' then after the first spamfilter match other
|
||||
spamfilters will still be checked. All of these matches will be logged
|
||||
and a message will go to IRCOps (snomask +S) for each one. The affected
|
||||
user, however, will only see one spamfilter action (eg: block or kill)
|
||||
which will be the spamfilter with the 'gravest action' (gzline is highest,
|
||||
block and warn are lowest).</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Whenever the user changes his/her nick, check if the NEW nick would be
|
||||
banned. If so, do not allow the nickchange. Default is yes.</p>
|
||||
@@ -2679,9 +2766,13 @@ AU). Requests to these servers are sent in parallel, fastest reply wins.</p>
|
||||
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.</p>
|
||||
<p><font class="set">set::ping-cookie <yes|no></font><br>
|
||||
Send a challenge using PING, which clients respond to using PONG. This is helpful for
|
||||
preventing blind HTTP-POST attacks and other things, as well as stopping spoofed TCP on
|
||||
older operating systems with broken TCP stacks. The default is yes.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
When NOSPOOF is enabled (usually on Windows), send a warning to each user to use
|
||||
'/quote pong ..' if they are having problems connecting? The default is no.</p>
|
||||
When set::ping-cookie is enabled (usually on Windows), send a warning to each user
|
||||
to use '/quote pong ..' if they are having problems connecting? The default is no.</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Allows you to enable/disable AWAY notification in WATCH. The default is yes.</p>
|
||||
<p></p> </div>
|
||||
@@ -2915,7 +3006,7 @@ files {
|
||||
<td><div align="center"><b>Description</b></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><div align="center"><b>User Modes</b></div></td>
|
||||
<td colspan="2" id="usermodes"><div align="center"><b>User Modes</b></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">A</div></td>
|
||||
@@ -2954,6 +3045,10 @@ files {
|
||||
<td><div align="center">h</div></td>
|
||||
<td>Available for help (HelpOp) (Set in OperBlock)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div style="text-align: center">I</div></td>
|
||||
<td>Hide an oper's idle time (in /whois output) from regular users.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">i</div></td>
|
||||
<td>Invisible (not shown in /who)</td>
|
||||
@@ -3043,12 +3138,24 @@ to get more information on a command.</p>
|
||||
<td>Changes your online nick name. Alerts others to the change of your nick<br></td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr id="command_whois">
|
||||
<td>whois <nick></td>
|
||||
<td>Displays information of user requested. Includes Full Name, Host, Channels
|
||||
User is in, and Oper Status<br></td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr id="command_whois_nicknick">
|
||||
<td>whois <nick> <nick></td>
|
||||
<td>
|
||||
Performs a remote <a href="#command_whois">WHOIS</a>. If a
|
||||
person is not on the same server as another person, a simple
|
||||
WHOIS will not display all possible WHOIS responses. For
|
||||
example, idle times are not shown in such a case. To request a
|
||||
remote whois, issue a WHOIS with the remote user's nick as the
|
||||
first and as the second arguments.
|
||||
</td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">who <mask></td>
|
||||
<td>Who allows you to search for users. Masks
|
||||
@@ -3160,7 +3267,7 @@ to get more information on a command.</p>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">Watch +-<nick> +-<nick><br></td>
|
||||
<td height="39">Watch [+|-]<nick> [+|-]<nick><br></td>
|
||||
<td>Watch is a new notify-type system in UnrealIRCd which is both faster and
|
||||
uses less network resources than any old-style notify system. The server
|
||||
will send you a message when any nickname in your watch list logs on or
|
||||
@@ -3267,6 +3374,10 @@ to get more information on a command.</p>
|
||||
<td>Returns the IP address of the user in question.</td>
|
||||
<td>All</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">silence [+|-]<nick><br></td>
|
||||
<td>Ignores messages from a user or list of users at the Server itself.<br></td>
|
||||
<td>All</td>
|
||||
<tr>
|
||||
<td height="39">oper <userid> <password><br></td>
|
||||
<td>Command to give a user operator status if they match an Oper Block<br></td>
|
||||
@@ -3478,14 +3589,9 @@ to get more information on a command.</p>
|
||||
</tr>
|
||||
<tr id="cmd_mkpasswd">
|
||||
<td height="36">mkpasswd <auth-type> <password><br></td>
|
||||
<td>Will encrypt <password> using the <auth-type> hashing method. Available hash methods:
|
||||
<ul>
|
||||
<li>crypt [<em>Windows support requires SSL</em>]</li>
|
||||
<li>md5</li>
|
||||
<li>sha1 [<em>requires SSL</em>]</li>
|
||||
<li>ripemd160 [<em>requires SSL</em>]</li>
|
||||
</ul>
|
||||
<br></td>
|
||||
<td>Will encrypt <password> using the <auth-type> hashing method.
|
||||
See <a href="#feature_authtypes">Authentication Types</a> for available
|
||||
hash methods.</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
+225
-126
@@ -19,20 +19,24 @@
|
||||
<!-- $Id$ -->
|
||||
|
||||
<body>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
<a href="unreal32docs.html">English</a> |
|
||||
<a href="unreal32docs.de.html">German</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
Hungarian |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a> |
|
||||
<a href="unreal32docs.nl.html">Dutch</a> |
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
<a href="unreal32docs.tr.html">Turkish</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a>
|
||||
<br><br>
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com/">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Verzió: 3.2.9-RC1</font><br>
|
||||
<b>Utolsó dokumentáció frissítés:</b> 2010-11-15</div>
|
||||
<font size="4">Verzió: 3.2.10.5</font><br>
|
||||
<b>Utolsó dokumentáció frissítés:</b> 2013-11-20</div>
|
||||
<br>
|
||||
<b>Fő fejlesztő/karbantartó:</b> Syzop<br>
|
||||
<b>Fejlesztők:</b> binki<br>
|
||||
@@ -60,16 +64,16 @@ Hungarian |
|
||||
-- 3.7. <a href="#feature_opercmds">Operátori parancsok</a><br>
|
||||
-- 3.8. <a href="#feature_ssl">SSL</a><br>
|
||||
-- 3.9. <a href="#feature_ipv6">IPv6</a><br>
|
||||
-- 3.10. <a href="#feature_ziplinks">Zip linkek</a><br>
|
||||
-- 3.11. <a href="#feature_dyndns">Dinamikus DNS-sel/IP-vel linkelések támogatása</a><br>
|
||||
-- 3.12. <a href="#feature_antiflood">Árasztásvédelmi lehetőségek</a><br>
|
||||
-- 3.13. <a href="#feature_bantypes">Ban típusok</a><br>
|
||||
-- 3.14. <a href="#feature_spamfilter">A spamszűrő</a><br>
|
||||
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Karakterkészletek nicknevekhez</a><br>
|
||||
-- 3.17. <a href="#feature_cgiirc">CGI:IRC támogatás</a><br>
|
||||
-- 3.18. <a href="#feature_timesync">Időszinkronizáció</a><br>
|
||||
-- 3.19. <a href="#feature_other">További jellegzetességek</a><br>
|
||||
-- 3.10. <a href="#feature_dyndns">Dinamikus DNS-sel/IP-vel linkelések támogatása</a><br>
|
||||
-- 3.11. <a href="#feature_antiflood">Árasztásvédelmi lehetőségek</a><br>
|
||||
-- 3.12. <a href="#feature_bantypes">Ban típusok</a><br>
|
||||
-- 3.13. <a href="#feature_spamfilter">A spamszűrő</a><br>
|
||||
-- 3.14. <a href="#feature_cidr">CIDR</a><br>
|
||||
-- 3.15. <a href="#feature_nickchars">Karakterkészletek nicknevekhez</a><br>
|
||||
-- 3.16. <a href="#feature_cgiirc">CGI:IRC támogatás</a><br>
|
||||
-- 3.17. <a href="#feature_timesync">Időszinkronizáció</a><br>
|
||||
-- 3.18. <a href="#feature_authtypes">Hitelesítési típusok</a><br>
|
||||
-- 3.19. <a href="#feature_other">További funkciók</a><br>
|
||||
4. <a href="#configuringyourunrealircdconf">Az unrealircd.conf fájlod
|
||||
beállítása</a><br>
|
||||
---4.1. <a href="#configurationfileexplained">A konfigurációs formátumról</a><br>
|
||||
@@ -108,7 +112,7 @@ Hungarian |
|
||||
---4.34. <a href="#officialchannels">Official channels blokk</a><br>
|
||||
---4.35. <a href="#spamfilter">Spamfilter blokk</a><br>
|
||||
---4.36. <a href="#cgiirc">Cgiirc blokk</a><br>
|
||||
---4.37. <a href="#setblock">Set blokk -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.37. <a href="#setblock">Set blokk</a><br>
|
||||
---4.38. <a href="#filesblock">Files blokk</a><br />
|
||||
5. <a href="#addtlfiles">További fájlok</a><br>
|
||||
6. <a href="#userchannelmodes">Felhasználói és csatornamódok</a><br>
|
||||
@@ -193,9 +197,9 @@ Windows:<br>
|
||||
</ul>
|
||||
<li><b>Windows verzió:</b>
|
||||
<ul>
|
||||
<li>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<li>Windows XP (Home, Pro)
|
||||
<li>Windows 2003
|
||||
<li>Windows 7
|
||||
</ul>
|
||||
<li><b>Tesztelt architektúrák:</b>
|
||||
<ul>
|
||||
@@ -263,12 +267,12 @@ mert m
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.3 - Snomaszkok</b></font><a name="feature_snomasks"></a></p><div class="desc">
|
||||
<p>A snomaskok vagy szerverüzenet-maszkok (server notice mask) a felhasználói módok egy különleges fajtához tartozik, amelyekkel
|
||||
<p>A snomaszkok vagy szerverüzenet-maszkok (server notice mask) a felhasználói módok egy különleges fajtához tartozik, amelyekkel
|
||||
beállíthatod, hogy milyen típusú szerverüzeneteket szeretnél fogadni (leggyakrabban operátorok használják).</p>
|
||||
<p>Ezek beállítására a /mode nickneved +s SNOMASZK parancs szolgál. Példa: /mode nickneved +s +cF<br>
|
||||
Egyes snomaskok eltávolítására a következőhöz hasonló parancsot használj: /mode nickneved +s -c<br>
|
||||
Vagy minden snomaskot törölhetsz a /mode nickneved -s paranccsal.</p>
|
||||
<p>A jelenleg rendelkezésre álló snomaskok az alábbiak:<br>
|
||||
Egyes snomaszkok eltávolítására a következőhöz hasonló parancsot használj: /mode nickneved +s -c<br>
|
||||
Vagy minden snomaszkot törölhetsz a /mode nickneved -s paranccsal.</p>
|
||||
<p>A jelenleg rendelkezésre álló snomaszkok az alábbiak:<br>
|
||||
c - helyi kapcsolódások<br>
|
||||
F - távoli kapcsolódások (kivéve U:line-os szerverekről)<br>
|
||||
f - árasztásokról szóló értesítések<br>
|
||||
@@ -283,9 +287,9 @@ mert m
|
||||
s - egyéb szerverüzenetek [*]<br>
|
||||
S - spamfilter értesítések<br>
|
||||
o - /oper-elésekről szóló értesítések<br>
|
||||
[*: ezt a snomaskot nem csak ircopok használhatják]<br>
|
||||
[*: ezt a snomaszkot nem csak ircopok használhatják]<br>
|
||||
</p>
|
||||
<p>Beállíthatod, hogy milyen snomaskokat kapj meg automatikusan (set::snomask-on-connect) és melyeket operátorrá
|
||||
<p>Beállíthatod, hogy milyen snomaszkokat kapj meg automatikusan (set::snomask-on-connect) és melyeket operátorrá
|
||||
váláskor (set::snomask-on-oper, oper::snomask)</p>
|
||||
<p>Alapértelmezésben, ha a felhasználó egyszerűen csak a +s módot állítja be, bizonyos snomaszkok lesznek beállítva. Közönséges felhasználóknak a +ks, operátoroknak a +kscfvGqo snomaszkok.</p></div>
|
||||
|
||||
@@ -345,19 +349,12 @@ mert m
|
||||
Ehhez az OPR-ben kell, hogy legyen IPv6 támogatás, valamint az UnrealIRCd-ben is engedélyezned kell az IPv6 támogatást a ./Config-oláskor.<br>
|
||||
</p><p>Bár a microsoftnak van egy kísérleti IPv6 megvalósítása w2k/XP-re, az UnrealIRCd azt (még) nem támogatja.</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.10 - Zip linkek</b></font><a name="feature_ziplinks"></a></p><div class="desc">
|
||||
<p>A zip linkek bekapcsolhatóak a szerver<->szerver linkekben, a zlib használatával tömörít adatokat.
|
||||
Megspórolhat 60-80% sávszélességet... Úgyhogy eléggé hasznos az alacsony sávszélességű linkekhez vagy olyanokhoz,
|
||||
ahol nagy mennyiségű felhasználó van; sokat segíthet a linkeléskor, mert rengeteg adat küldődik el a felhasználókról, csatornákról stb.</p>
|
||||
<p>A zip link támogatással történő fordításhoz válaszolj Yes-t a ./Config zlib-es kérdésében, valamint a konfigurációban állítsd be a
|
||||
link::options::zip opciót (mindkét oldalon).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.11 - Dinamikus DNS-sel/IP-vel linkelések támogatása</b></font><a name="feature_dyndns"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.10 - Dinamikus DNS-sel/IP-vel linkelések támogatása</b></font><a name="feature_dyndns"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd néhány (új) hasznos funkcióval segíti azokat a felhasználókat, akiknek dinamikus IP-jük van, és dinamikus DNS-t használnak
|
||||
(mint a valami.dyndns.org). Ha két dinamikus DNS-sel rendelkező gépet linkelsz, állítsd be a link::options::nodnscache és a link::options::nohostcheck opciókat.
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.12 - Árasztásvédelmi lehetőségek</b></font><a name="feature_antiflood"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.11 - Árasztásvédelmi lehetőségek</b></font><a name="feature_antiflood"></a></p><div class="desc">
|
||||
<p>
|
||||
<b>Elfojtás</b><br>
|
||||
Az elfojtás (throttling) egy módszer annak korlátozására, hogy egy felhasználó milyen gyorsan bonthatja a kapcsolatot
|
||||
@@ -456,7 +453,7 @@ Y a m
|
||||
a csatornára.
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.13 - Ban típusok</b></font><a name="feature_bantypes"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.12 - Ban típusok</b></font><a name="feature_bantypes"></a></p><div class="desc">
|
||||
<p>
|
||||
<b>Alapvető ban típusok és álcázott gazdanevek</b><br>
|
||||
Az UnrealIRCd támogatja az olyan alapvető ban típusokat, mint amilyen a <i>+b nick!user@host</i>.<br>
|
||||
@@ -502,22 +499,33 @@ Az al
|
||||
<i>Pl.: +b ~c:#lamerek, +e ~c:@#megbizhatoak </i></td></tr>
|
||||
<tr><td>~r</td><td>valós név</td><td>Ha egy felhasználó valós neve illik a banra, nem léphet be.<br>
|
||||
<i>Pl.: ~r:*Stupid_bot_script*</i><br>
|
||||
MEGJEGYZÉS: az aláhúzás ('_') mind a szóközre (' ') és az aláhúzásra ('_') is illik, így ez a ban illik a
|
||||
'Stupid bot script v1.4'-re.</td></tr>
|
||||
MEGJEGYZÉS: az aláhúzás ("_") mind a szóközre (" ") és az aláhúzásra ("_") is illik, így ez a ban illik a
|
||||
"Stupid bot script v1.4"-re.</td></tr>
|
||||
<tr><td>~R</td><td>regisztrált</td><td>Ha egy felhasználó azonosította magát a services-ben (általában a NickServnél),
|
||||
és illeszkedik erre a nicknévre, akkor erre a banra is illeszkedik. Vagyis ez igazán csak a
|
||||
ban felmentésekre jó (+e).<br>
|
||||
Pl.: az <i>+e ~R:Nick</i> engedélyezi a belépést Nick számára, függetlenül más kitiltásoktól, amennyiben azonosította magát a NickServnél, és a Nick nevet használja.<br>
|
||||
</td></tr>
|
||||
<tr><td>~a</td><td>hozzáférés</td><td>Ha a felhasználó bejelentkezett a services-be ezzel
|
||||
a hozzáférési névvel, ki lesz tiltva.<br>
|
||||
Ez kicsit más, mint a ~R, olyan értelemben, hogy egy ABC nicknevű felhasználó
|
||||
bejelentkezhet az XYZ hozzáférési név alatt.<br>
|
||||
Nem minden services csomag támogatja ezt, ilyen helyzetben
|
||||
az ~R használandó inkább.<br>
|
||||
Pl.: az <i>+e ~a:ValamilyenNev</i> megengedi a belépést a csatornára olyan felhasználóknak, akik
|
||||
a ValamilyenNev hozzáférési névvel jelentkeztek be a services-be, függetlenül a kitiltásoktól.<br>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
Halmozni is lehet az első csoportbeli kiterjesztett banokat a második csoportbeliekkel, pl. a <i>+b ~q:~c:#lamers</i>
|
||||
elnémít minden olyan felhasználót, aki a #lamers csatornára lépett be.<br>
|
||||
A második csoportbeli ban típusokat felhasználhatjuk meghívási kivételekként is (+I),
|
||||
például: <i>+I ~c:#megbizottak</i> és <i>+I ~a:hozzaferesinev</i>.<br>
|
||||
<br>
|
||||
Modulokkal további kiterjesztett ban típusok is bevezethetők.<br>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.14 - A spamszűrő</b></font><a name="feature_spamfilter"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.13 - A spamszűrő</b></font><a name="feature_spamfilter"></a></p><div class="desc">
|
||||
<p>A spamszűrő egy új rendszer a spamok, reklámok, férgek és egyéb dolgok leküzdésére. A csúnyaszórendszerhez
|
||||
hasonló működésű, de több előnye is van.</p>
|
||||
<p>Spamszűrők a /spamfilter paranccsal vehetőek fel, amely a következő szintaktikát használja:<br>
|
||||
@@ -551,7 +559,7 @@ Modulokkal tov
|
||||
<tr><td>dccblock</td><td>megjelöli a felhasználót DCC blokkolásra (nem küldhet DCC-ket)</td></tr>
|
||||
<tr valign="top"><td>viruschan</td><td>lelépteti a felhasználót minden csatornáról, belépteti a <tt>set::spamfilter::virus-help-channel</tt> csatornára, letilt minden parancsot,
|
||||
kivéve a PONG-ot, az ADMIN-t és a <tt>set::spamfilter::virus-help-channel</tt> csatornára küldött üzeneteket/értesítéseket</td></tr>
|
||||
<tr><td>warn</td><td>értesítést küld az IRCOpoknak (spamszűrő snomask), és
|
||||
<tr><td>warn</td><td>értesítést küld az IRCOpoknak (spamszűrő snomaszk), és
|
||||
tájékoztatja a felhasználót, hogy az üzenetét lehallgatták. További lépéseket
|
||||
nem tesz, az üzenetet nem blokkolja.</td></tr>
|
||||
</table></td></tr>
|
||||
@@ -608,7 +616,7 @@ Jelenleg ez a funkci
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.15 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.14 - CIDR</b></font><a name="feature_cidr"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd most már támogatja a CIDR-t is (Classless Interdomain Routing - osztálynélküli körzetek közti forgalomirányítás). A CIDR alkalmas
|
||||
IP tartományok kitiltására. Az egyes ISP-knek (Internet Service Provider - internet-szolgáltató) CIDR használatával osztanak ki IP-ket, ezért azzal, hogy CIDR alapú kitiltásokat lehet beállítani,
|
||||
egyszerűen kitilthatunk egy ISP-t. Az Unreal IPv4-re és IPv6-ra is támogatja a CIDR-t. CIDR maszkokat
|
||||
@@ -618,7 +626,7 @@ a /kline, a /gline, a /zline, a /gzline
|
||||
pl. 127.0.0.0/8 (illeszkedési tartománya 127.0.0.0 - 127.255.255.255) és fe80:0:0:123::/64 (illeszkedési tartománya
|
||||
fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.16 - Karakterkészletek nicknevekhez</b></font><a name="feature_nickchars"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.15 - Karakterkészletek nicknevekhez</b></font><a name="feature_nickchars"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd-nek most már megvan az a képessége, hogy meghatározzuk, milyen karakterkészleteket/nyelveket szeretnénk engedélyezni
|
||||
a nicknevekben. Ezt a <b>set::allowed-nickchars</b> direktívával tehetjük meg.<br>
|
||||
Egy táblázat az összes választási lehetőségről:<br>
|
||||
@@ -675,14 +683,14 @@ enged
|
||||
<pre>set { allowed-nickchars { chinese-simp; chinese-trad; }; };</pre>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.17 - CGI:IRC támogatás</b></font><a name="feature_cgiirc"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.16 - CGI:IRC támogatás</b></font><a name="feature_cgiirc"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd támogatja a CGI:IRC gazdanév hamisítást, ami azt jelenti, hogy megjelölhetünk bizonyos CGI:IRC
|
||||
átjárókat "megbízhatóként", ezáltal az IRCd a felhasználók valódi gazdanevét/IP címét jeleníti meg mindenhol
|
||||
az IRC-n, és nem a CGI:IRC átjáróét.</p>
|
||||
<p>Lásd a <a href="#cgiirc">cgiirc blokkot</a> a beállításának hogyanjáról.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.18 - Időszinkronizáció</b></font><a name="feature_timesync"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.17 - Időszinkronizáció</b></font><a name="feature_timesync"></a></p><div class="desc">
|
||||
<p>A pontos idő nagyon fontos az IRC szervereken. Pontos idő nélkül a csatornákon desynch problémák léphetnek fel, ártatlan
|
||||
felhasználók kaphatnak kilövést, helytelenül jelenhetnek meg csatornák a /LIST-ben, egyszóval: óriási baj származhat belőle.</p>
|
||||
<p>Az UnrealIRCd-nek van egy kis beépített időszinkronizáció támogatása.
|
||||
@@ -697,7 +705,79 @@ az IRCd ennek ellen
|
||||
a <a href="#setblock">set leírását</a> további információkért.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b>3.19 - További jellegzetességek</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p><font size="+2"><b>3.18 - Hitelesítési típusok</b></font><a name="feature_authtypes"></a></p><div class="desc">
|
||||
<p>A konfigurációs fájl különböző pontjain, például az <a
|
||||
href="#operblock">oper blokkban</a>, az <a href="#allowblock">allow blokkban</a> és
|
||||
a <a href="#linkblock">link blokkban</a>, jelszóval vagy más módon hitelesíthetjük
|
||||
a klienseket.<br>
|
||||
|
||||
Megadhatjuk a jelszót egyszerű szövegként, de megadhatunk egy
|
||||
hitelesítési típust is.<br>
|
||||
A következő hitelesítési típusok állnak rendelkezésre:<br>
|
||||
<table border="0">
|
||||
<TR><TD><b>Hitelesítési típus:</b></TD><TD><b>Leírás:</b></TD><TD><b>Függőségek:</b></TD><TD><b>Hogyan generáljuk:</b></TD></TR>
|
||||
<TR><TD><b>crypt</b></TD><TD>UNIX crypt</TD><TD>Windows: OpenSSL szükséges</TD><TD>/MKPASSWD crypt :jelszó</TD></TR>
|
||||
<TR><TD><b>md5</b></TD><TD>sózott MD5</TD><TD>Mindig elérhető</TD><TD>/MKPASSWD md5 :jelszó</TD></TR>
|
||||
<TR><TD><b>sha1</b></TD><TD>sózott SHA1</TD><TD>OpenSSL szükséges</TD><TD>/MKPASSWD sha1 :jelszó</TD></TR>
|
||||
<TR><TD><b>ripemd160</b></TD><TD>sózott RIPEMD160</TD><TD>OpenSSL szükséges</TD><TD>/MKPASSWD ripemd160 :jelszó</TD></TR>
|
||||
<TR><TD><b>sslclientcert</b></TD><TD>SSL kliens tanúsítvány</TD><TD>OpenSSL szükséges</TD><TD>A nyilvános tanúsítvány .pem fájl útvonala.</TD></TR>
|
||||
<TR><TD><b>sslclientcertfp</b></TD><TD>SSL kliens tanúsítvány ujjlenyomat</TD><TD>OpenSSL szükséges</TD><TD>openssl x509 -in pem-fájl-neve.pem -sha256 -noout -fingerprint</TD></TR>
|
||||
</table>
|
||||
Az /MKPASSWD parancsot kiadhatjuk online IRC operátorként. Vagy másképpen,
|
||||
használhatjuk a parancssori interfészt is a parancsértelmezőben: <i>./unreal mkpasswd hasítófüggvény-típus
|
||||
jelszó</i>.<br>
|
||||
Nem minden hitelesítési típus érhető el minden rendszeren, lásd
|
||||
a függőségeket (előfeltételeket) a fenti táblázatban.<br>
|
||||
<br>
|
||||
<b>Példa: MD5-tel hasított jelszó a vhost blokkban</b><br>
|
||||
1. Tegyük fel, hogy a <i>teszt</i> jelszót akarjuk használni, és md5-tel hasított jelszavakat
|
||||
akarunk használni.<br>
|
||||
IRC operátorként egyszerűen beírhatjuk, hogy <i>/MKPASSWD md5 :teszt</i>.<br>
|
||||
Vagy pedig, IRC helyett beírhatjuk a következő parancsot
|
||||
a parancssorban: <i>./unreal mkpasswd md5 teszt</i>.<br>
|
||||
Bármelyik módszert is választjuk, a kapott hasított jelszó így fog kinézni: <i>$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==</i>
|
||||
(a pontos sztring más lesz!)<br>
|
||||
2. Most rakjuk bele ezt a sztringet a vhost blokkba, és adjuk az UnrealIRCd tudomására, hogy
|
||||
ez egy md5-tel hasított kód. Példa:
|
||||
<pre>vhost {
|
||||
vhost En.Imadom.Tuxot;
|
||||
from { userhost *@*; };
|
||||
login Tux;
|
||||
password "$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==" { md5; };
|
||||
};</pre>
|
||||
3. Ennek a vhostnak a használatához írjuk be, hogy /VHOST Tux teszt<br>
|
||||
<br>
|
||||
<b>Példa: Hitelesítés SSL kliens tanúsítvánnyal</b><br>
|
||||
Az <tt>sslclientcert</tt> és a <tt>sslclientcertfp</tt> kivételes
|
||||
hitelesítési típusok, amelyek az SSL felhasználókat hitelesítik a kliens
|
||||
tanúsítványuk alapján.<br>
|
||||
Ezekkel a hitelesítési módszerekkel biztosak lehetünk, hogy a felhasználó SSL-t használ, és
|
||||
egy meghatározott kliens tanúsítványa van.<br>
|
||||
Íme egy példa, hogyan használjuk egy oper blokkhoz:<br>
|
||||
1. Készítsünk egy SSL kliens tanúsítványt, ha még nem rendelkezünk vele (keressünk
|
||||
a weben az "ssl tanúsítvány készítése" kulcsszavakra, ha nem tudjuk, hogyan)<br>
|
||||
2. Fogjuk a tanúsítvány SHA256-tal hasított kódját az alábbi futtatásával:
|
||||
<pre>openssl x509 -in pem-fájl-neve.pem -sha256 -noout -fingerprint</pre>
|
||||
3. A konfigurációs fájlban cseréljük ki az eredeti jelszót (<i>teszt</i> a mi példánkban) a hasított kóddal,
|
||||
és adjuk meg az <code>sslclientcertfp</code> hitelesítési típust. Íme egy példa:<br>
|
||||
<pre>oper teszt {
|
||||
password "E7:4D:46:F1:9F:F4:68:F5:E8:E3:49:CC:28:5D:F9:65:85:BA:4F:16:B6:49:02:E3:34:E6:E7:6A:FE:76:A7:98" { sslclientcertfp; };
|
||||
flags { global; can_override; };
|
||||
class clients;
|
||||
};</pre>
|
||||
4. Töltsük újra a szerverbeállításokat (/REHASH)!<br>
|
||||
5. Most kapcsolódjunk az SSL kliensünkkel, és győződjünk meg arról, hogy a második lépésbeli SSL kliens
|
||||
tanúsítványt használjuk.<br>
|
||||
6. Most már bejelentkezhetünk operátorként az <i>/oper teszt x</i> paranccsal. Jelszót továbbra is
|
||||
meg kell adnunk, de bármi lehet (<i>x</i> ebben a példában), figyelmen kívül marad,
|
||||
mivel benyújtjuk az SSL kliens tanúsítványt a hitelesítéshez.<br>
|
||||
7. Gratulálunk, Ön most már az UnrealIRCd-ben elérhető legbiztonságosabb hitelesítési
|
||||
típust használja!<br>
|
||||
<br>
|
||||
Egy másik nagyon hasznos hely, ahol az <tt>sslclientcertfp</tt> típust használhatjuk, az a <a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.19 - További funkciók</b></font><a name="feature_other"></a></p><div class="desc">
|
||||
<p>Az UnrealIRCd-nek rengeteg funkciója van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.</p></div>
|
||||
|
||||
<p> </p>
|
||||
@@ -984,6 +1064,7 @@ listen *:6601 {
|
||||
userhost <hostmaszk>;
|
||||
};
|
||||
password <jelszó> { <hitelesítés-típusa>; };
|
||||
require-modes <módok>
|
||||
class <osztálynév>;
|
||||
flags <flagek>;
|
||||
flags {
|
||||
@@ -992,7 +1073,7 @@ listen *:6601 {
|
||||
...
|
||||
};
|
||||
swhois <whois info>;
|
||||
snomask <snomask>;
|
||||
snomask <snomaszk>;
|
||||
modes <módok>;
|
||||
maxlogins <szám>;
|
||||
};
|
||||
@@ -1000,37 +1081,17 @@ listen *:6601 {
|
||||
<p>Az oper blokkal IRC operátorokat állíthatsz be a szerveredhez. Az <b>oper::</b>
|
||||
értéke adja meg az /oper-hez a bejelentkező nevet. Az <b>oper::from::userhost</b>
|
||||
egy user@host maszk, amelyre a felhasználó kapcsolatának illenie kell. Megadhatsz
|
||||
egynél több hostmaszkot is úgy, hogy több oper::from::userhost-ot használsz.
|
||||
egynél több hostmaszkot is úgy, hogy több oper::from::userhost-ot használsz. A
|
||||
nem kötelező <b>oper::require-modes</b> beállítással olyan módokat határozhatunk meg
|
||||
(mint például az <em>r</em> vagy a <em>z</em>), amelyeket a felhasználónak meg kell szereznie
|
||||
az OPER parancs használata előtt. Ezt felhasználhatjuk arra, hogy megköveteljük a felhasználóktól,
|
||||
hogy regisztráljanak a nickservvel, vagy használjanak biztonságos kapcsolatot
|
||||
az operátorrá válás előtt.
|
||||
</p>
|
||||
<p id="operblock_password">Az <b>oper::password::</b> az a jelszó, amit az operátornak meg kell adnia.
|
||||
Az <b>oper::password::auth-type</b> segítségével megadhatjuk a hitelesítés módját ehhez a jelszóhoz. Ne adjunk meg <b>oper::password::auth-type</b>-ot egyszerű szöveg típusú jelszóhoz!
|
||||
Érvényes hitelesítési típusok: <tt>crypt</tt>, <tt>md5</tt>, <tt>sha1</tt>, <tt>ripemd160</tt>
|
||||
és <tt>sslclientcert</tt>. Bármelyiket is választjuk,
|
||||
az <b>oper::password::</b> értéke egy hash, amit az
|
||||
<a href="#cmd_mkpasswd">mkpasswd</a> segítségével generálunk.
|
||||
</p>
|
||||
<p id="operblock_password_sslclientcert">
|
||||
Az <tt>sslclientcert</tt> egy kivételes hitelesítési típus. Amikor ezt
|
||||
választjuk, az <b>oper::password::</b> értéke legyen egy fájl
|
||||
útvonal (az UnrealIRCd telepítési célkönyvtárához relatívan), mely
|
||||
tartalmaz egy PEM kódolású SSL tanúsítványt (a nyilvános tanúsítványt, nem
|
||||
pedig egy kulcsot). Ezzel biztosíthatjuk, hogy csak olyan IRC kliens kapcsolódhasson, aki:
|
||||
<ol>
|
||||
<li>SSL-lel kapcsolódik,</li>
|
||||
<li>benyújtja az egyező kliens tanúsítványt a kapcsolódáskor,</li>
|
||||
<li>hozzáférése van a tanúsítványhoz tartozó privát kulcshoz.</li>
|
||||
</ol>
|
||||
Természetesen ez a funkció igényli, hogy az UnrealIRCd SSL támogatással
|
||||
legyen fordítva. Továbbá, mivel az SSL tanúsítványokhoz tartozó jelszavak
|
||||
mindig sokkal hosszabbak, mint egy normális emberi jelszó, és sokkal
|
||||
véletlenszerűbbek is, ez a legbiztonságosabb hitelesítési lehetőség. Ahhoz,
|
||||
hogy így jelentkezzünk be operátorként, miután a kliens SSL tanúsítványát
|
||||
megadtuk operátori jelszóként, elég meggyőződni arról, hogy a kliens helyesen
|
||||
lett beállítva, és adjuk ki az <pre>/oper <név> :</pre> parancsot. Az <tt>sslclientcert</tt>
|
||||
hitelesítési típust felhasználhatjuk
|
||||
a <a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
direktívában is biztonságos <a href="#linkblock">link blokkokra</a>.
|
||||
</ol>
|
||||
Az érvényes hitelesítési típusok, mint ahogyan bemutattuk, hogyan használjuk őket oper
|
||||
blokkokon, megtalálhatók a <a href="#feature_authtypes">Hitelesítési típusok</a> alatt.
|
||||
</p>
|
||||
<p>Megjegyzendő, hogy MIND a bejelentkező név és jelszó a kis- és nagybetűkre érzékenyek.</p>
|
||||
<p>Az <b>oper::class</b> direktíva meghatározza azt a már létező (a konfigurációban ezen blokk
|
||||
@@ -1085,6 +1146,11 @@ listen *:6601 {
|
||||
<td><div align="center">can_die</div></td>
|
||||
<td>Használhatja a /die parancsot</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">T</div></td>
|
||||
<td><div align="center">can_tsctl</div></td>
|
||||
<td>Használhatja a /tsctl parancsot</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">R</div></td>
|
||||
<td><div align="center">can_restart</div></td>
|
||||
@@ -1323,7 +1389,7 @@ listen *:6601 {
|
||||
<p>Az <b>oper::swhois</b> direktívával egy tetszőleges szövegű sorral egészítheted ki az operátor
|
||||
whois információját. <font color=blue>[szabadon választható]</font></p>
|
||||
<p>Az <b>oper::snomask</b> direktívával előre beállíthatod, hogy az operátor milyen
|
||||
szerverüzenet-maszkokat kapjon opereléskor. A rendelkezésre álló SNOMASKok listáját lásd a
|
||||
szerverüzenet-maszkokat kapjon opereléskor. A rendelkezésre álló SNOMASZKok listáját lásd a
|
||||
<a href="#feature_snomasks">3.3. szekcóban</a>. <font color=blue>[szabadon választható]</font></p>
|
||||
<p>Az <b>oper::modes</b> direktívával előre beállíthatod, hogy az operátor milyen módokat kapjon opereléskor.
|
||||
<font color=blue>[szabadon választható]</font></p>
|
||||
@@ -1350,7 +1416,7 @@ oper bobsmith {
|
||||
global;
|
||||
};
|
||||
swhois "Példa egy whois maszkra";
|
||||
snomask frebWqFv;
|
||||
snomask cFfkoSsqNG;
|
||||
};
|
||||
</pre></p>
|
||||
<a name="operoverride"><b>Néhány információ az OperOverride-ról:</b><br>
|
||||
@@ -1369,9 +1435,8 @@ drpass {
|
||||
die <leállítási-jelszó> { <hitelesítés-típusa>; };
|
||||
};</pre></p>
|
||||
<p>Ez a blokk állítja be a /restart és /die jelszavakat rendre a drpass::restart és a drpass::die
|
||||
direktívákkal. A drpass::restart:: és drpass::die:: lehetőséget ad a jelszavak
|
||||
hitelesítési típusának meghatározására. A jelenleg támogatott hitelesítési típusok
|
||||
a crypt, md5, sha1 és ripemd-160.</p>
|
||||
direktívákkal.
|
||||
Egyszerű szöveges jelszó helyett használhatunk más <a href="#feature_authtypes">Hitelesítési típusokat</a> is.</p>
|
||||
<p>Példa:</p>
|
||||
<pre>
|
||||
drpass {
|
||||
@@ -1826,7 +1891,7 @@ deny channel {
|
||||
engedélyezett a belépés. Továbbá megadhatsz egy <b>deny::redirect</b> paramétert is. Ha megadod,
|
||||
az ezen deny::channel blokkra illő csatornákra belépni próbáló felhasználókat átirányítja
|
||||
a deny::redirect csatornára. És van még egy <b>deny::warn</b> paraméter is, ami (ha "on" értékű) küld
|
||||
egy operátori értesítést (az EYES snomaskra), ha a felhasználó belépéssel próbálkozik.
|
||||
egy operátori értesítést (az EYES snomaszkra), ha a felhasználó belépéssel próbálkozik.
|
||||
</p>
|
||||
<p>Példa:</p>
|
||||
<pre>
|
||||
@@ -1907,8 +1972,10 @@ vhost {
|
||||
illenie kell, hogy jogosult legyen a vhosthoz. Megadhatsz egynél több hostmaszkot is.
|
||||
A vhost::login a felhasználó bejelentkező neve, és a vhost::password a hozzá tartozó jelszó,
|
||||
amelyeket a felhasználónak be kell írnia. A vhost::password:: arra ad lehetőséget, hogy
|
||||
meghatározd a jelszó kódolásának/hitelesítésének típusát. A jelenleg támogatott típusok a
|
||||
crypt, md5, sha1 és ripemd-160. Végül a vhost::swhois egy kiegészítő sort ad a felhasználó
|
||||
meghatározd a jelszó kódolásának/hitelesítésének típusát. Lásd a <a
|
||||
href="#feature_authtypes">Hitelesítési típusokat</a> a rendelkezésre álló
|
||||
hitelesítési típusok listájához.
|
||||
Végül a vhost::swhois egy kiegészítő sort ad a felhasználó
|
||||
whois adataiba, pontosan úgy, mint az oper blokk oper::swhois direktívájában.</p>
|
||||
<p>Példa:<br>
|
||||
<pre>
|
||||
@@ -2014,7 +2081,7 @@ link <szervern
|
||||
<tr><td><i>1.2.3.4</i></td><td> közönséges IP</td></tr>
|
||||
<tr><td><i>hub.blah.com</i></td><td> gazdanév: csak kimenő kapcsolatokra, nem tud _beérkező_ kapcsolatokat
|
||||
fogadni, amíg a link::options::nohostcheck nincs beállítva</td></tr>
|
||||
<tr><td><i>*</i></td><td> KIMENŐ kapcsolatokra alkalmatlan, de bárhonnan fogad szerverkapcsolódást (a megfelelő jelszóval)</td></tr>
|
||||
<tr><td><i>*</i></td><td> KIMENő kapcsolatokra alkalmatlan, de bárhonnan fogad szerverkapcsolódást (a megfelelő jelszóval)</td></tr>
|
||||
<tr><td><i>::ffff:1.2.3.4</i></td><td> ipv6-ról ipv4-re linkeléshez.</td></tr>
|
||||
</table>
|
||||
</p>
|
||||
@@ -2028,12 +2095,9 @@ link <szervern
|
||||
A távoli szerverre kapcsolódáskor használt jelszó; egyszerű szövegnek kell lennie.
|
||||
</p>
|
||||
<p id="linkblock_passwordreceive"><b>password-receive</b><br> A beérkező linkek érvényesítéséhez
|
||||
használt jelszó. Hasonló módon titkosítható, mint
|
||||
az <a href="#operblock_password"><b>oper::password</b></a>.
|
||||
Még az is megtehető, hogy
|
||||
a <a href="#operblock_password_sslclientcert"><tt>sslclientcert</tt></a>
|
||||
hitelesítési típust használjuk. Sőt, ez erősen ajánlott is, mivel fényévekkel
|
||||
jobban ellenáll a brute-force támadásoknak.
|
||||
használt jelszó. Erősen ajánlott a hasított jelszavak használata vagy
|
||||
az <tt>sslclientcertfp</tt> hitelesítési típus. Lásd a <a href="#feature_authtypes">Hitelesítési
|
||||
Típusokat</a> további információért.<br>
|
||||
</p>
|
||||
<p><b>hub vs leaf</b><br>
|
||||
A hub egyszerre több szervert is linkelhet, míg a leafnek csak egy linkje lehet... hozzád.
|
||||
@@ -2051,9 +2115,6 @@ link <szervern
|
||||
<p><b>class</b><br>
|
||||
Megadja, melyik kapcsolati osztályba helyezzük a linkelt szervert. Ehhez gyakran egy külön szerver osztályt szokás használni.
|
||||
</p>
|
||||
<p><b>compression-level</b> (szabadon választható)<br>
|
||||
Megadja a kapcsolat tömörítési szintjét (1-9). Csak akkor szokás használni, ha a link::options::zip be van állítva.
|
||||
</p>
|
||||
<p><b>ciphers</b> (szabadon választható)<br>
|
||||
Meghatározza, milyen SSL kódoló/visszafejtő algoritmusok (cipherek) legyenek használatban ehhez a linkhez. A rendelkezésre álló
|
||||
algoritmusok listájának eléréséhez használd az `openssl ciphers` parancsot. Az algoritmusokat ":"-tal elválasztott felsorolásként add meg.
|
||||
@@ -2335,17 +2396,16 @@ Majd az unrealircd.conf-ba tegy
|
||||
<p id="setblock"><font class="block_section">4.37 - </font><font class="block_name">Set blokk</font>
|
||||
<font class="block_required">KÖTELEZŐ</font> <font class="block_old">(Előzőleg unrealircd.conf-ként ill. hálózati fájlként ismert)</font>
|
||||
</p><div class="desc">
|
||||
<p>A set fájl az, ami régebben a networks/unrealircd.conf-unk és a hálózati
|
||||
fájlunk szokott lenni. Egyszerveres hálózatokon, inkább, mint hogy legyen 3 fájlod,
|
||||
egyszerűen beillesztheted a set utasításokat az unrealircd.conf-ba, többszerveres
|
||||
hálózatokon viszont még mindig ajánlott a hálózati fájl használata.</p>
|
||||
<p>Ha a szervered egy hálózaton van, igen valószínű, hogy alapvetően ugyanazokat
|
||||
a Set beállításokat használjátok. Ezért van több értelme, hogy legyen egy hálózati fájlod,
|
||||
amit betöltesz az <a href="#includedirective">include</a> direktívával.
|
||||
Az alábbiakban megtalálod az összes rendelkezésre álló set direktívát.</p>
|
||||
<p>Egyszerveres hálózatokon, inkább, mint hogy legyen 3 fájlunk, egyszerűen csak berakhatunk
|
||||
minden set utasítást magába az unrealircd.conf-ba; míg a többszerveres hálózatokon
|
||||
javasoljuk a külön hálózati fájl használatát (lásd lentebb).</p>
|
||||
<p>Ha a szerverünk egy hálózaton van, igen valószínű, hogy alapvetően ugyanazokat
|
||||
a Set beállításokat használjuk. Ezért több értelme van, hogy legyen egy hálózati fájlunk,
|
||||
amit betöltünk az <a href="#includedirective">include</a> direktívával.
|
||||
Az alábbiakban megtaláljuk az összes rendelkezésre álló set direktívát.</p>
|
||||
<p>Ebben a dokumentumban a beállításokra / direktívákra a <blokknév>::<blokk-direktíva>
|
||||
formában hivatkozunk. Ez NEM az a formátum, amelyet beírhatsz a beállításfájlba!
|
||||
Át KELL alakítanod az alábbi példa szerint. Azért jelenítjük meg őket ebben a formában,
|
||||
formában hivatkozunk. Ez NEM az a formátum, amelyet beírhatunk a beállításfájlba!
|
||||
Át KELL alakítanunk az alábbi példa szerint. Azért jelenítjük meg őket ebben a formában,
|
||||
hogy könnyebben beszélhessünk róluk.</p>
|
||||
<p>Szintaktika:<br>
|
||||
<pre>
|
||||
@@ -2373,10 +2433,10 @@ set {
|
||||
global globalop.sajatnet.com;
|
||||
};
|
||||
};</pre></p>
|
||||
<p>Ha most a set utasításokat el szeretnéd különíteni, mondjuk, egyetlen sorba akarnád írni
|
||||
<p>Ha most a set utasításokat el szeretnénk különíteni, mondjuk, egyetlen sorba akarnánk írni
|
||||
az opciókat, így nézne ki:<br>
|
||||
Példa:<br>
|
||||
set { options { hide-ulines; no-stealth; }; };<br>
|
||||
set { options { hide-ulines; show-connect-info; }; };<br>
|
||||
</p>
|
||||
<p><font class="set">set::kline-address <email-cím>;</font><br>
|
||||
Az az email cím, ahová küldhetők a K:line-nal kapcsolatos kérdések. Ezt az értéket
|
||||
@@ -2386,11 +2446,11 @@ set {
|
||||
<p><font class="set">set::modes-on-connect <+módok>;</font><br>
|
||||
Azok a módok, amelyek kapcsolódáskor lesznek beállítva a felhasználókon.</p>
|
||||
<p><font class="set">set::snomask-on-connect <+módok></font><br>
|
||||
Azok a snomaskok, amelyek kapcsolódáskor lesznek beállítva a felhasználókon.</p>
|
||||
Azok a snomaszkok, amelyek kapcsolódáskor lesznek beállítva a felhasználókon.</p>
|
||||
<p><font class="set">set::modes-on-oper <+módok>;</font><br>
|
||||
Azok a módok, amelyek /oper-eléskor lesznek beállítva a felhasználókon.</p>
|
||||
<p><font class="set">set::snomask-on-oper <+módok>;</font><br>
|
||||
Azok a snomaskok, amelyek /oper-eléskor lesznek beállítva a felhasználókon.</p>
|
||||
Azok a snomaszkok, amelyek /oper-eléskor lesznek beállítva a felhasználókon.</p>
|
||||
<p><font class="set">set::modes-on-join <+módok>;</font><br>
|
||||
Azok a módok, amelyek akkor lesznek beállítva egy csatornán, amikor létrehozzák. Nem minden mód állítható be ezzel az utasítással. A +qaohvbeOAzlLk módok NEM állíthatóak be ezzel az utasítással.</p>
|
||||
<p><font class="set">set::restrict-usermodes <módok></font><br>
|
||||
@@ -2417,7 +2477,7 @@ set {
|
||||
Azon csatorná(k), ahová a felhasználó be lesz léptetve /oper-eléskor. Egynél több csatorna
|
||||
megadásához használj vesszővel elválasztott felsorolást.<br>
|
||||
[Megjegyzés: ne felejts el idézőjeleket hozzátenni, pl. így: oper-auto-join "#csatorna";]</p>
|
||||
<p><font class="set">set::anti-spam-quit-message-time <időérték>;</font><br>
|
||||
<p id="set::anti-spam-quit-message-time"><font class="set">set::anti-spam-quit-message-time <időérték>;</font><br>
|
||||
Egy időérték annak az időmennyiségnek a meghatározására, amennyit a felhasználónak el kell
|
||||
tölteni a szerveren, hogy a /quit üzenete megjelenjen. Spamok megelőzésére használható.
|
||||
Az időérték egy numerikus sztring a napot jelentő "d", az órát jelentő "h", a percet jelentő "m"
|
||||
@@ -2492,7 +2552,7 @@ set {
|
||||
Megjegyzendő, hogy a lekérdezések elvégzése nélkül gazdanév alapú allow blokkjaid értelmüket vesztik.</p>
|
||||
<p><font class="set">set::options::mkpasswd-for-everyone;</font><br>
|
||||
Az /mkpasswd használatát mindenki számára engedélyezi, nem csak operátoroknak. Ezen parancs
|
||||
nem-oper használatáról értesítést küld az EYES snomaskra.</p>
|
||||
nem-oper használatáról értesítést küld az EYES snomaszkra.</p>
|
||||
<p><font class="set">set::options::allow-part-if-shunned;</font><br>
|
||||
Engedélyezi a shunolt felhasználóknak a /part használatát.</p>
|
||||
<p><font class="set">set::options::fail-oper-warn;</font><br>
|
||||
@@ -2500,6 +2560,10 @@ set {
|
||||
<p><font class="set">set::options::allow-insane-bans;</font><br>
|
||||
Engedélyt ad az olyan őrülten széles banokra is, mint a /GLINE *@*.xx. Ezzel nagyon könnyen előfordulhat, hogy
|
||||
véletlenül kitiltunk mindenkit a hálózatról, ezért csak nagyon óvatosan használjuk!</p>
|
||||
<p><font class="set">set::options::disable-cap;</font><br>
|
||||
Letiltja az IRC kliens képességek kiterjesztést (IRC Client Capabilities Extensions, CAP). Megjegyzendő, hogy ez
|
||||
elérhetetlenné teszi az SASL-t és más funkciókat, vagy megnehezíti a használatukat
|
||||
a kliensek számára.</p>
|
||||
<p id="set_nopost_ban_action"><font class="set">set::nopost::ban-action</font> (igényli az <a href="#modules_m_nopost">m_nopost</a> modult)<br />
|
||||
Megmondja, mit tegyen az olyan felhasználókkal, akik HTTP POST parancsot próbálnak kiadni.
|
||||
Az engedélyezett értékek: kill, gline, gzline, kline, zline, shun és tempshun.
|
||||
@@ -2524,8 +2588,11 @@ set {
|
||||
<p><font class="set">set::dns::retries <próbálkozások-száma>;</font><br>
|
||||
Egy számérték, amely meghatározza, hányszor történjen újrapróbálkozás a DNS lekérdezésben,
|
||||
ha hiba fordul elő. (NINCS IMPLEMENTÁLVA)</p>
|
||||
<p><font class="set">set::dns::nameserver <dns-szerver-neve>;</font><br>
|
||||
Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét. (NINCS IMPLEMENTÁLVA)</p>
|
||||
<p><font class="set">set::dns::nameserver <dns-szerver-neve>;</font><br/>
|
||||
Meghatározza a DNS lekérdezésekhez használt szerver IP címét.
|
||||
Csak tartalék címként lesz felhasználva, amikor a c-ares képtelen
|
||||
a névszerverek kitalálására (mint például ha az <code>/etc/resolv.conf</code> üres).
|
||||
</p>
|
||||
<p><font class="set">set::dns::bind-ip <ip>;</font><br>
|
||||
Meghatározza azt az IP címet, amelyre bindeljen a szerver a lekérdezésekhez; a lehető legritkábban van szükség rá.</p>
|
||||
<p><font class="set">set::network-name <hálózat-neve>;</font><br>
|
||||
@@ -2546,6 +2613,9 @@ set {
|
||||
<p id="set-stats-server"><font class="set">set::stats-server <szervernév>;</font><br>
|
||||
Beállítja azon szerver nevét, ahol a statisztikai bot tartozkodik. Ha nem fut statisztikai szerver,
|
||||
ez az érték kihagyható.</p>
|
||||
<p id="set-sasl-server"><font class="set">set::sasl-server <szervernév>;</font><br>
|
||||
Meghatározza annak a szervernek a nevét, amelyre legyenek küldve az SASL hitelesítési
|
||||
üzenetek.</p>
|
||||
<p><font class="set">set::help-channel <hálózati-segélycsatorna>;</font><br>
|
||||
Beállítja e hálózat segélycsatornájának nevét.</p>
|
||||
<p><font class="set">set::cloak-keys { "kulcs1"; "kulcs2"; "kulcs3"; };</font><br>
|
||||
@@ -2556,7 +2626,8 @@ set {
|
||||
függően más szabályok lehetnek érvényben.</p>
|
||||
<p><font class="set">set::hiddenhost-prefix <előtag>;</font><br>
|
||||
Meghatározza a rejtett (+x) gazdanevek előtagját. Ez általában a hálózat nevét ábrázoló
|
||||
három vagy négy betű.</p>
|
||||
három vagy négy betű. Összekapcsolt szervereken kötelezően legyen ugyanaz
|
||||
a rejtett gazdanév előtag a csatorna kitiltások helyes működése érdekében!</p>
|
||||
<p><font class="set">set::hosts::local <locop-gazdanév>;</font><br>
|
||||
Meghatározza azt a gazdanevet, amit a +x beállításakor kapnak a helyi operátorok.
|
||||
Igény szerint megadható egy username@host ehhez az értékhez.</p>
|
||||
@@ -2638,7 +2709,7 @@ set {
|
||||
a +f [5j]:15 átalakul [5j#i10]:15-re. Alapértelmezés szerint a csatornamódok nem lesznek automatikusan törölve.</p>
|
||||
<p><font class="set">set::modef-max-unsettime <szám></font><br>
|
||||
A +f csatornamódhoz használt törlési idő legnagyobb megengedett hossza percekben (itt arról a törlési időről van szó, amit
|
||||
megadunk pl. a +f [5j#i<IDŐ>]:15 paraméterben). Ez egy 0 és 255 közötti érték. Az alapértelmezés 60 (= 1 óra).</p>
|
||||
megadunk pl. a +f [5j#i<IDő>]:15 paraméterben). Ez egy 0 és 255 közötti érték. Az alapértelmezés 60 (= 1 óra).</p>
|
||||
<p><font class="set">set::ban-version-tkl-time <időérték></font><br>
|
||||
Ha megadod az "action"-t (pl. zline, gline stb.) a ban version blokkban, itt beállíthatod,
|
||||
mennyi időre legyen az IP kitiltva. Az alapértelmezés 86400 (1 nap).</p>
|
||||
@@ -2663,6 +2734,16 @@ set {
|
||||
Ha egy spamszűrő lefutása több ideig tart, mint a megadott ezredmásodpercek száma,
|
||||
(1000ms = 1 másodperc), akkor a spamszűrő le lesz törölve (alapérték: 500).
|
||||
Lásd még: <a href="#feature_spamfilter_slow">Lassú spamszűrők érzékelése</a>.</p>
|
||||
<p><font class="set">set::spamfilter::stop-on-first-match <yes|no></font><br>
|
||||
Alapértelmezésben "yes" értékű, azaz amint egy spamszűrő
|
||||
illeszkedik, az UnrealIRCd azonnal intézkedik, és semmilyen további
|
||||
(más) spamszűrő nem lesz már feldolgozva.<br>
|
||||
Abban az esetben, ha "no" értékre van állítva, az első spamszűrő illeszkedés után más
|
||||
spamszűrők továbbra is ellenőrizve lesznek. Minden ilyen illeszkedés naplózva lesz,
|
||||
és az IRCOpok (+S snomaszk) mindegyikért kapnak egy üzenetet. Az érintett
|
||||
felhasználók azonban csak egy spamszűrő akciót fognak látni (pl.: blokkolás vagy kill),
|
||||
mégpedig arra a spamszűrőre, amelyik a legsúlyosabb (gzline a legmagasabb,
|
||||
a blokkolások és a figyelmeztetések a legalacsonyabbak).</p>
|
||||
<p><font class="set">set::check-target-nick-bans <yes|no></font><br>
|
||||
Valahányszor a felhasználó nicknevet változtat, ellenőrzi, hogy az ÚJ név le van-e
|
||||
tiltva. Ha igen, nem engedélyezi a nickváltást. Az alapértelmezés "yes".</p>
|
||||
@@ -2676,8 +2757,12 @@ AU). A lek
|
||||
Legfeljebb ennyi ideig vár az időszerverek válaszára. Ez egy érték 1 és 5 között; több nem lehet,
|
||||
mert túl nagy pontatlanságot okozna. Ez az érték alapértelmezésben 3, és nem valószínű, hogy
|
||||
érdemes megváltoztatni.</p>
|
||||
<p><font class="set">set::ping-cookie <yes|no></font><br>
|
||||
Felszólítja a klienseket egy PING paranccsal, hogy válaszoljanak PONG paranccsal. Ez arra jó, hogy
|
||||
megóvja a szervert az ún. vak HTTP-POST támadásokatól és hasonlóktól, továbbá megállítsa az átejtő szándékú TCP
|
||||
forgalmat olyan operációs rendszereken, ahol a TCP verem törött. Az alapértelmezés "yes".</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Ha a NOSPOOF engedélyezett (általában Windowson), küldjön egy figyelmeztetést minden felhasználónak, hogy
|
||||
Ha a set::ping-cookie engedélyezett (általában Windowson), küldjön egy figyelmeztetést minden felhasználónak, hogy
|
||||
használják a "/quote pong .." parancsot, ha kapcsolódási problémájuk van. Az alapértelmezés "no".</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Engedélyezi vagy letiltja az AWAY értesítéseket a WATCH-ban. Az alapértelmezés "yes".</p>
|
||||
@@ -2872,7 +2957,7 @@ files {
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">t</div></td>
|
||||
<td>Csak csatorna operátorok állíthatnak be témát</td>
|
||||
<td>Csak féloperátorok, csatorna operátorok vagy magasabb jogosultságúak állíthatnak be témát</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -2912,7 +2997,7 @@ files {
|
||||
<td><div align="center"><b>Leírás</b></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><div align="center"><b>Felhasználói módok</b></div></td>
|
||||
<td colspan="2" id="usermodes"><div align="center"><b>Felhasználói módok</b></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">A</div></td>
|
||||
@@ -2951,6 +3036,10 @@ files {
|
||||
<td><div align="center">h</div></td>
|
||||
<td>Segítségnyújtásra alkalmas (HelpOp) (az oper blokkban állítható be)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div style="text-align: center">I</div></td>
|
||||
<td>Elrejti egy operátor tétlenségi idejét (a /whois kimenetből) a normál felhasználók elől.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><div align="center">i</div></td>
|
||||
<td>Láthatatlan (nem jelenik meg a /who-ban)</td>
|
||||
@@ -3040,12 +3129,24 @@ tov
|
||||
<td>Megváltoztatja az online nick nevedet. Értesíti a többieket a nickváltásodról.<br></td>
|
||||
<td>Mindenki</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr id="command_whois">
|
||||
<td>whois <nick></td>
|
||||
<td>Információt jelenít meg a megadott felhasználóról. Tartalmazza a teljes nevet, gazdanevet,
|
||||
csatornákat, amelyeken tartózkodik a felhasználó, és az operátori beosztást.<br></td>
|
||||
<td>Mindenki</td>
|
||||
</tr>
|
||||
<tr id="command_whois_nicknick">
|
||||
<td>whois <nick> <nick></td>
|
||||
<td>
|
||||
Végrehajt egy távoli <a href="#command_whois">WHOIS</a> parancsot. Ha
|
||||
egy személy nem ugyanazon a szerveren van, mint egy másik, a sima
|
||||
WHOIS nem fog minden lehetséges WHOIS választ megjeleníteni.
|
||||
Például, a tétlenségi idő nem lesz mutatva ilyen esetben. Ahhoz, hogy
|
||||
egy távoli whois-t kérjük, adjunk ki egy WHOIS parancsot a távoli felhasználó nicknevével
|
||||
mint első és második paraméterrel.
|
||||
</td>
|
||||
<td>Mindenki</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">who <maszk></td>
|
||||
<td>A who felhasználók keresésére alkalmas. A maszk lehet:
|
||||
@@ -3157,7 +3258,7 @@ tov
|
||||
<td>Mindenki</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">Watch +-<nick> +-<nick><br></td>
|
||||
<td height="39">Watch [+|-]<nick> [+|-]<nick><br></td>
|
||||
<td>A watch egy új értesítési rendszer az UnrealIRCd-ben, amely gyorsabb és kevesebb
|
||||
hálózati erőforrást használ fel, mint bármely régi típusú változatok. A szerver
|
||||
küld neked egy üzenetet, ha valamely felhasználó, amelynek a nickneve a watch
|
||||
@@ -3264,6 +3365,10 @@ tov
|
||||
<td>Visszaadja a megadott felhasználó IP címét.</td>
|
||||
<td>Mindenki</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">silence [+|-]<nick><br></td>
|
||||
<td>Figyelmen kívül hagyja egy felhasználónak vagy felhasználók listájának a szerveren keresztül küldött üzeneteit.<br></td>
|
||||
<td>Mindenki</td>
|
||||
<tr>
|
||||
<td height="39">oper <azonosító> <jelszó><br></td>
|
||||
<td>Ez a parancs egy felhasználónak operátori beosztást ad, ha illik egy oper blokkra.<br></td>
|
||||
@@ -3475,14 +3580,9 @@ tov
|
||||
</tr>
|
||||
<tr id="cmd_mkpasswd">
|
||||
<td height="36">mkpasswd <hitelesítés-típusa> <jelszó><br></td>
|
||||
<td>Titkosítja a megadott <jelszót> a <hitelesítés-típusa> típusú hasító módszerrel. Lehetséges hasító módszerek:
|
||||
<ul>
|
||||
<li>crypt [<em>Windows alatti támogatáshoz SSL szükséges</em>]</li>
|
||||
<li>md5</li>
|
||||
<li>sha1 [<em>SSL-t igényel</em>]</li>
|
||||
<li>ripemd160 [<em>SSL-t igényel</em>]</li>
|
||||
</ul>
|
||||
<br></td>
|
||||
<td>Titkosítja a megadott <jelszót> a megadott <hitelesítési-típusú> hasító módszerrel.
|
||||
Lásd a <a href="#feature_authtypes">Hitelesítési típusokat</a> a rendelkezésre álló
|
||||
hasító módszerekhez.</td>
|
||||
<td>IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -3563,7 +3663,6 @@ tov
|
||||
V - vhost - Elküldi a vhost blokkok listáját<br>
|
||||
X - notlink - Listát küld azokról a szerverekről, amelyek jelenleg nincsenek linkelve<br>
|
||||
Y - class - Elküldi a class blokkok listáját<br>
|
||||
z - zip - Információt küld a zippel linkelt szerverek adattömörítéséről (ha van ziplink támogatás)<br>
|
||||
Z - mem - Információt küld a szerver memóriahasználatáról<br>
|
||||
</td>
|
||||
<td>Mindenki</td>
|
||||
@@ -3704,8 +3803,8 @@ a /map-pel vagy a /links-szel. Teh
|
||||
Ha történik egy szakadás (split), valaki még mindig láthatja, melyik szerver hová volt linkelve,
|
||||
és ez érvényes még néhány más dologra is.<br>
|
||||
<br>
|
||||
<b>KÖZÖNSÉGES FELHASZNÁLÓK ÉS SNOMASKOK</b><br>
|
||||
Van egy funkció, melyet nem ismernek széles körben; ez az, hogy közönséges felhasználók is beállíthatnak néhány korlátozott snomaskot,
|
||||
<b>KÖZÖNSÉGES FELHASZNÁLÓK ÉS SNOMASZKOK</b><br>
|
||||
Van egy funkció, melyet nem ismernek széles körben; ez az, hogy közönséges felhasználók is beállíthatnak néhány korlátozott snomaszkot,
|
||||
mégpedig azt, hogy "+s +sk". Ezzel láthatnak olyan dolgokat, mint a beállítások újratöltése, killek és egyéb más üzenetek.<br>
|
||||
Ennek letiltására használhatod a "set::restrict-usermodes"-t a következőképpen: <i>set { restrict-usermodes "s"; };</i>.<br>
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+164
-70
@@ -17,17 +17,25 @@
|
||||
<!-- $Id$ -->
|
||||
</head>
|
||||
<body>
|
||||
<A href="unreal32docs.html">English</A> | <A href="unreal32docs.de.html">German</A>
|
||||
| <A href="unreal32docs.es.html">Spanish</A> | <A href="unreal32docs.hu.html">Hungarian</A>
|
||||
| <A href="unreal32docs.fr.html">French</A> | <A href="unreal32docs.gr.html">Greek</A>
|
||||
| <A href="unreal32docs.nl.html">Dutch</A> | Russian | <a href="unreal32docs.tr.html">
|
||||
Turkish</a>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
<A href="unreal32docs.html">English</A> |
|
||||
<A href="unreal32docs.de.html">German</A> |
|
||||
<A href="unreal32docs.hu.html">Hungarian</A> |
|
||||
<A href="unreal32docs.fr.html">French</A> |
|
||||
Russian |
|
||||
<A href="unreal32docs.tr.html">Turkish</A> |
|
||||
<A href="unreal32docs.es.html">Spanish</a>
|
||||
<br>
|
||||
<br>
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Версия: 3.2.9-RC1</font><br>
|
||||
<b>Последнее обновление:</b> 2010-05-17</div>
|
||||
<font size="4">Версия: 3.2.10.5</font><br>
|
||||
<b>Последнее обновление:</b> 2013-04-05</div>
|
||||
<br>
|
||||
<b>Главные программисты</b> Syzop<br>
|
||||
<b>Программисты:</b> binki<br>
|
||||
@@ -68,7 +76,8 @@
|
||||
никах</A><br>
|
||||
-- 3.17. <A href="#feature_cgiirc">Поддержка CGI:IRC</A><br>
|
||||
-- 3.18. <a href="#feature_timesync">Синхронизация времени</a><br>
|
||||
-- 3.19. <A href="#feature_other">Другие возможности</A><br>
|
||||
-- 3.19. <a href="#feature_authtypes">Способы аутентификации</a><br>
|
||||
-- 3.20. <A href="#feature_other">Другие возможности</A><br>
|
||||
4. <A href="#configuringyourunrealircdconf">Конфигурирование вашего unrealircd.conf</A><br>
|
||||
---4.1. <A href="#configurationfileexplained">Обзор структуры конфигурационного
|
||||
файла</A><br>
|
||||
@@ -107,7 +116,7 @@
|
||||
---4.34. <A href="#officialchannels">Блок Official Channels</A><br>
|
||||
---4.35. <A href="#spamfilter">Блок Spamfilter</A><br>
|
||||
---4.36. <A href="#cgiirc">Блок Cgiirc</A><br>
|
||||
---4.37. <A href="#setblock">Блок Set -=- (networks/unrealircd.conf)</A><br>
|
||||
---4.37. <A href="#setblock">Блок Set</A><br>
|
||||
---4.38. <a href="#filesblock">Блок Files</a><br />
|
||||
5. <A href="#addtlfiles">Дополнительные файлы</A><br>
|
||||
6. <A href="#userchannelmodes">Режимы пользователя и канала</A><br>
|
||||
@@ -228,12 +237,12 @@
|
||||
<li>
|
||||
<b>Windows версии:</b>
|
||||
<ul>
|
||||
<li>
|
||||
Windows 2000 (Pro, Server, Advanced Server)
|
||||
<li>
|
||||
Windows XP (Home, Pro)
|
||||
<li>
|
||||
Windows 2003
|
||||
<li>
|
||||
Windows 7
|
||||
</li>
|
||||
</ul>
|
||||
<li>
|
||||
@@ -734,10 +743,24 @@
|
||||
применение - в использовании для исключений (+e).<br>
|
||||
Пример: <i>+e ~R:Nick</i> позволяет Nick быть на канале, не смотря на другие баны,
|
||||
если он идентифицировался на NickServ и пользуется ником Nick.<br>
|
||||
</td></tr>
|
||||
|
||||
</td></tr>
|
||||
<tr>
|
||||
<td>~a</td>
|
||||
<td>аккаунт</td>
|
||||
<td>Если пользователь залогинился на сервисах с указанным аккаунтом,
|
||||
то он попадёт под бан<br>
|
||||
Данный бан отличается от ~R тем, что пользователь с ником ABC может быть залогинен под
|
||||
аккаунтом XYZ.<br>
|
||||
Не все сервисы (имеется ввиду различные поставщики) поддерживают это. Если не поддерживают, используйте ~R.<br>
|
||||
Пример: <i>+e ~a:SomeName</i> позволит пользователю (-лям), который залогинен на сервисах под аккаунтом
|
||||
SomeName, зайти на канал, не смотря на баны.<br>
|
||||
</td></tr>
|
||||
</table>
|
||||
Можно стекировать баны первого и второго вида. Например <i>+b ~q:~c:#lamers</i> заставит молчать всех, кто сидит на #lamers.<br>
|
||||
Можно стекировать баны первого и второго вида. Например <i>+b ~q:~c:#lamers</i> заставит молчать всех,
|
||||
кто сидит на #lamers.<br>
|
||||
Баны из второй группы могут так же использоваться для исключений приглашений (+I),
|
||||
например вот так <i>+I ~c:#trusted</i> и <i>+I ~a:accountname</i>.<br>
|
||||
<br>
|
||||
</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.14 - Спамфильтр</b></font><a name="feature_spamfilter"></a></p>
|
||||
@@ -1180,7 +1203,68 @@
|
||||
<p>Конфигурация синхронизации времени (так же и отключение) происходит посредством
|
||||
блока <b>set::timesynch</b>, подробности в <a href="#setblock">документации</a>.</p>
|
||||
</div>
|
||||
<p><font size="+2"><b>3.19 - Другие возможности</b></font><a name="feature_other"></a></p>
|
||||
<p><font size="+2"><b>3.19 - Способы аутентификации</b></font><a name="feature_authtypes"></a></p><div class="desc">
|
||||
<p>В различных местах в конфигурационном файле, например в <a href="#operblock">блоке oper</a>,
|
||||
<a href="#allowblock">блоке allow</a> и <a href="#linkblock">блоке link</a>, вы можете аутентифицировать клиентов
|
||||
по паролю или же другими способами.<br>
|
||||
|
||||
Вы можете указать пароль как в открытом виде, так и с использованием различных типов аутентификации (Auth-type).<br>
|
||||
Доступны следующие типы аутентификации:<br>
|
||||
<table border="0">
|
||||
<TR><TD><b>Auth-type:</b></TD><TD><b>Описание:</b></TD><TD><b>Зависимости:</b></TD><TD><b>Как сгенерировать:</b></TD></TR>
|
||||
<TR><TD><b>crypt</b></TD><TD>UNIX crypt</TD><TD>Windows: необходим OpenSSL</TD><TD>/MKPASSWD crypt :пароль</TD></TR>
|
||||
<TR><TD><b>md5</b></TD><TD>MD5 с солью</TD><TD>Always available</TD><TD>/MKPASSWD md5 :пароль</TD></TR>
|
||||
<TR><TD><b>sha1</b></TD><TD>SHA1 с солью</TD><TD>необходим OpenSSL</TD><TD>/MKPASSWD sha1 :пароль</TD></TR>
|
||||
<TR><TD><b>ripemd160</b></TD><TD>RIPEMD160 с солью</TD><TD>необходим OpenSSL</TD><TD>/MKPASSWD ripemd160 :пароль</TD></TR>
|
||||
<TR><TD><b>sslclientcert</b></TD><TD>Сертификат SSL клиента</TD><TD>необходим OpenSSL</TD><TD>Путь к файлу публичного сертификата .pem.</TD></TR>
|
||||
<TR><TD><b>sslclientcertfp</b></TD><TD>Отпечаток сертификата SSL клиента</TD><TD>необходим OpenSSL</TD><TD>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</TD></TR>
|
||||
</table>
|
||||
Команда /MKPASSWD доступна онлайн IRCOp. Вместо неё можно использовать команду
|
||||
прямо из шелл: <i>./unreal mkpasswd тип-хэша пароль</i>.<br>
|
||||
Не все способы аутентификации доступны на всех системах, смотрите зависимости из таблицы выше.<br>
|
||||
<br>
|
||||
<b>Пример: Хэшированный MD5 пароль в блоке vhost</b><br>
|
||||
1. Вы хотите использовать пароль <i>test</i> и хотите использовать хэш md5.<br>
|
||||
Если вы оператор (IRCOp), то вы можете просто ввести такую команду <i>/MKPASSWD md5 :test</i>.<br>
|
||||
Так же, можете это сделать из шелла: <i>./unreal mkpasswd md5 test</i>.<br>
|
||||
В любом случае, вы получите пароль вида <i>$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==</i>
|
||||
(полученный результат может отличаться!)<br>
|
||||
2. Теперь добавьте полученный результат в ваш блок vhost и укажите, что это хэш md5.<br>
|
||||
Пример:
|
||||
<pre>vhost {
|
||||
vhost I.love.Tux;
|
||||
from { userhost *@*; };
|
||||
login Tux;
|
||||
password "$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==" { md5; };
|
||||
};</pre>
|
||||
3. Чтобы использовать этот vhost, введите /VHOST Tux test<br>
|
||||
<br>
|
||||
<b>Пример: Аутентификация клиента по сертификатам SSL</b><br>
|
||||
<tt>sslclientcert</tt> и <tt>sslclientcertfp</tt> исключительные способы аутентификации, которые позволяют
|
||||
аутентифицировать SSL пользователей по их сертификатам.<br>
|
||||
Используя эти методы, убедитесь, что пользователи используют SSL и указанный пользовательский сертификат.<br>
|
||||
Вот пример, как можно это использовать в блоке oper:<br>
|
||||
1. Создайте сертификат SSL, если у вас его нет (поищите в google 'create ssl certificate', если вы не знаете как)<br>
|
||||
2. Получите хэш SHA256 сертификата используя команду:
|
||||
<pre>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</pre>
|
||||
3. В конфигурационном файле замените исходный пароль (в нашем примере это <i>test</i>) на хэш и
|
||||
укажите способ аутентификации в sslclientcertfp. Вот пример:<br>
|
||||
<pre>oper test {
|
||||
password "E7:4D:46:F1:9F:F4:68:F5:E8:E3:49:CC:28:5D:F9:65:85:BA:4F:16:B6:49:02:E3:34:E6:E7:6A:FE:76:A7:98" { sslclientcertfp; };
|
||||
flags { global; can_override; };
|
||||
class clients;
|
||||
};</pre>
|
||||
4. Перечитайте файл конфигурации сервера (/REHASH).<br>
|
||||
5. Теперь подключитесь по SSL и убедитесь что ваш клиент использует SSL сертификат из шага #2.<br>
|
||||
6. Теперь вы можете получить права оператора командой <i>/oper test x</i>. Пароль по прежнему нужно указать, но он может
|
||||
быть абсолютно любым (<i>x</i> в этом примере), так как он игнорируется и используется для аутентификации клиентский сертификат SSL.<br>
|
||||
7. Поздравляю, теперь вы используете самый безопасный метод аутентификации, доступный в UnrealIRCd.<br>
|
||||
<br>
|
||||
Ещё одно весьма полезное применение для использования <tt>sslclientcertfp</tt> находится в
|
||||
<a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
</p></div>
|
||||
|
||||
<p><font size="+2"><b>3.20 - Другие возможности</b></font><a name="feature_other"></a></p>
|
||||
<div class="desc">
|
||||
<p>UnrealIRCd имеет множество других возможностей, не все из которых тут
|
||||
раскрыты... Вы можете найти их в другом месте самостоятельно.</p>
|
||||
@@ -1533,6 +1617,7 @@ allow {
|
||||
userhost <хостмаска>;
|
||||
};
|
||||
password <пароль> { <тип-аутентификации>; };
|
||||
require-modes <режимы>
|
||||
class <имя-класса>;
|
||||
flags <флаги>;
|
||||
flags {
|
||||
@@ -1550,37 +1635,17 @@ allow {
|
||||
<p>Блок oper позволяет назначить IRC-операторов на вашем сервере. <b>oper::</b> определяет
|
||||
логин команды /oper. <b>oper::from::userhost</b> - это user@host маска, под
|
||||
которую должен попадать пользователь. Вы можете определить более, чем одну
|
||||
хостмаску в oper::from::userhost.
|
||||
хостмаску в oper::from::userhost. Опционально можно установить <b>oper::require-modes</b>
|
||||
для определённых режимов (таких как <em>r</em> или <em>z</em>), которые необходимы
|
||||
чтобы были у пользователя перед тем, как он бы стал оператором. Указав данные режимы,
|
||||
мы потребуем от пользователя быть зарегистрированным на nickserv или использовать безопасное
|
||||
подключение перед тем, как становиться оператором.
|
||||
</P>
|
||||
<p id="operblock_password"><b>oper::password</b> - пароль, который должен указать пользователь.
|
||||
<b>oper::password::auth-type</b> позволяет вам указать метод аутентификации для этого пароля.
|
||||
Если вы используете пароли открытым текстом, то не указывайте опцию <b>oper::password::auth-type</b>.
|
||||
Корректные методы аутентификации: <tt>crypt</tt>, <tt>md5</tt>, <tt>sha1</tt>,
|
||||
<tt>ripemd160</tt> и <tt>sslclientcert</tt>. Указание любого из этих методов означает, что
|
||||
значение <b>oper::password::</b> является сгенерированным хэшем (hash) при помощи
|
||||
<a href="#cmd_mkpasswd">mkpasswd</a>.
|
||||
</p>
|
||||
<p id="operblock_password_sslclientcert">
|
||||
<tt>sslclientcert</tt> исключительный тип авторизации. Если он указан в качестве авторизации,
|
||||
то <b>oper::password::</b> должен пыть путём к файлу (относительно директории
|
||||
установленного UnrealIRCd). Файл должен представлять собой PEM-закодированный
|
||||
сертификат SSL (естественно публичный сертификат, не ключ).
|
||||
Это значит, что только клиент IRC
|
||||
<ol>
|
||||
<li>подключён через SSL</li>
|
||||
<li>предоставил соответствующий сертификат клиента во время подключения</li>
|
||||
<li>имеет доступ к приватному ключу для данного сертификата</li>
|
||||
</ol>
|
||||
может получить оператора. Естественно, что эта опция требует поддержки SSL в UnrealIRCd.
|
||||
Так же учтите, что любой ключ, ассоциированный с сертификатом SSL гораздо длиннее
|
||||
нормального человеческого пароля и гораздо более случаен, чем самая безопаснейшая опция
|
||||
аутентификации. Для того, чтобы получить оператора, вы должны указать клиентский
|
||||
сертификат SSL как пароль оператора, убедиться, что IRC клиент настроен правильно, ввести
|
||||
<pre>/oper <name> :</pre>.
|
||||
Авторизация <tt>sslclientcert</tt> может использоваться так же и для
|
||||
<a href="#linkblock_passwordreceive">link::password-receive</a>
|
||||
в секции <a href="#linkblock">link block</a>.
|
||||
</ol>
|
||||
Доступные методы аутентификации, а так же примеры их использования в блоке oper, можно найти в
|
||||
<a href="#feature_authtypes">Методах аутентификации</a>.
|
||||
</p>
|
||||
<p>Замечание: логин и пароль РЕГИСТРОЗАВИСИМЫ.</p>
|
||||
<p><b>oper::class</b> директива определяет имя уже существующего (в
|
||||
@@ -2038,7 +2103,7 @@ allow {
|
||||
global;
|
||||
};
|
||||
swhois "Пример маски whois";
|
||||
snomask frebWqFv;
|
||||
snomask cFfkoSsqNG;
|
||||
};
|
||||
</pre>
|
||||
<P></P>
|
||||
@@ -2065,9 +2130,9 @@ allow {
|
||||
};</pre>
|
||||
<P></P>
|
||||
<p>Данный блок устанавливает пароли на команды /restart и /die с директивами
|
||||
drpass::restart и drpass::die. drpass::restart:: и drpass::die:: позволяют
|
||||
установить тип аутентификации для их использования. Типы аутентификации,
|
||||
поддерживаемые на текущий момент: crypt, md5, sha1 и ripemd-160.</p>
|
||||
drpass::restart и drpass::die.
|
||||
Доступные методы аутентификации, а так же примеры их использования, можно найти в
|
||||
<a href="#feature_authtypes">Методах аутентификации</a></p>
|
||||
<p>Пример:</p>
|
||||
<pre>drpass {
|
||||
restart "Я-очень-люблю-перезапуски";
|
||||
@@ -2702,9 +2767,10 @@ deny channel {
|
||||
vhost::from::userhost содержит маску в виде user@host, под которую должен
|
||||
попадать пользователь, чтобы получить виртуальный хост. Можно задать несколько
|
||||
хостмасок. vhost::login - логин и vhost::password - пароль, которые должны быть
|
||||
введены пользователем. vhost::password:: позволяет определить тип
|
||||
аутентификации для его использования. Поддерживаются следующие типы: crypt,
|
||||
md5, sha1 и ripemd-160. И напоследок, vhost::swhois позволяет добавить строку в
|
||||
введены пользователем.
|
||||
Доступные методы аутентификации, а так же примеры их использования, можно найти в
|
||||
<a href="#feature_authtypes">Методах аутентификации</a>.
|
||||
И напоследок, vhost::swhois позволяет добавить строку в
|
||||
информацию о пользователе (whois), без необходимости добавлять его в блок Oper
|
||||
oper::swhois.</p>
|
||||
<p>Пример:<br>
|
||||
@@ -2856,9 +2922,10 @@ deny channel {
|
||||
</p>
|
||||
<p id="linkblock_passwordreceive"><b>password-receive</b><br>
|
||||
Пароль для проверки входящих соединений, может быть зашифрован как и
|
||||
<a href="#operblock_password"><b>oper::password</b></a>. Так же можно
|
||||
установить авторизацию <a href="#operblock_password_sslclientcert"><tt>sslclientcert</tt></a>.
|
||||
Фактически, самый рекомендуемый тип авторизации самый рекомендуемый тип авторизации - перебора пароля.
|
||||
<a href="#operblock_password"><b>oper::password</b></a>. Очень рекомендуется использовать
|
||||
аутентификацию хэшированными паролями или типом аутентификации <tt>sslclientcertfp</tt>.
|
||||
Смотрите <a href="#feature_authtypes">Методах аутентификации</a> для более подробной
|
||||
информации.
|
||||
</p>
|
||||
<P><b>hub vs leaf</b><br>
|
||||
Хаб позволяет соединения с несколькими серверами, а лист - только с одним.
|
||||
@@ -3192,9 +3259,7 @@ cgiirc {
|
||||
известен как unrealircd.conf/networks)</font>
|
||||
</p>
|
||||
<div class="desc">
|
||||
<p>Данный блок содержит настройки вашей irc-сети, он может размещаться как в
|
||||
unrealircd.conf, так и в отдельном файле (см. директорию networks). Если сеть
|
||||
состоит из одного сервера, проще будет вместо создания отдельного файла все
|
||||
<p>Если сеть состоит из одного сервера, проще будет вместо создания отдельного файла все
|
||||
настройки поместить в unrealircd.conf, однако если сеть многосерверная,
|
||||
рекомендовано использовать отдельный файл с настройками сети и загружать его с
|
||||
помощью директивы <A href="#includedirective">include</A>.</p>
|
||||
@@ -3229,7 +3294,7 @@ cgiirc {
|
||||
<P></P>
|
||||
<p>Если необходимо разделить блоки set, можно записать опции в одну строку.<br>
|
||||
Пример:<br>
|
||||
set { options { hide-ulines; no-stealth; }; };<br>
|
||||
set { options { hide-ulines; show-connect-info; }; };<br>
|
||||
</p>
|
||||
<p><font class="set">set::kline-address <адрес-email>;</font><br>
|
||||
Адрес электронной почты, который будет выдаваться всем пользователям, попавшим
|
||||
@@ -3381,6 +3446,10 @@ cgiirc {
|
||||
<p><font class="set">set::options::allow-insane-bans;</font><br>
|
||||
Позволяет банить по указанной маске, например /GLINE *@*.xx. Позволяет легко и
|
||||
непринуждённо забанить любого в вашей сети, поэтому используйте осторожно!</p>
|
||||
<p><font class="set">set::options::disable-cap;</font><br>
|
||||
Отключает расширения возможностей клиента IRC (IRC Client Capabilities Extensions (CAP)).
|
||||
Только учтите, что это влияет на SASL и другие фичи (могут перестать работать или
|
||||
затруднены в использовании).</p>
|
||||
<p id="set_nopost_ban_action"><font class="set">set::nopost::ban-action</font> (требует модуля <a href="#modules_m_nopost">m_nopost</a>)<br />
|
||||
Действие, применяемое к пользователю, если он пытается выполнить команду HTTP POST.
|
||||
Допустимые значения: kill, gline, gzline, kline, zline, shun, tempshun.
|
||||
@@ -3425,6 +3494,8 @@ cgiirc {
|
||||
<p id="set-stats-server"><font class="set">set::stats-server <имя-сервера>;</font><br>
|
||||
Устанавливает имя сервера, где находится бот статистики. Если статистика не
|
||||
запущена, можно оставить значение пустым.</p>
|
||||
<p id="set-sasl-server"><font class="set">set::sasl-server <имя-сервера>;</font><br>
|
||||
Устанавливает имя сервера, куда будут отсылаться сообщения аутентификации SASL.</p>
|
||||
<p><font class="set">set::help-channel <канал-помощи>;</font><br>
|
||||
Устанавливает название канала помощи.</p>
|
||||
<p><font class="set">set::cloak-keys { "ключ1"; "ключ2"; "ключ3"; };</font><br>
|
||||
@@ -3437,7 +3508,8 @@ cgiirc {
|
||||
другими.</p>
|
||||
<p><font class="set">set::hiddenhost-prefix <значение-префикса>;</font><br>
|
||||
Определяет префикс, который используется для зашифрованных хостов (+x). Обычно
|
||||
это 3 или 4 буквы, представляющие название сети.</p>
|
||||
это 3 или 4 буквы, представляющие название сети. У всех серверов в сети этот префикс
|
||||
должен быть одинаковым, это необходимо для правильной работы банов на каналах.</p>
|
||||
<p><font class="set">set::hosts::local <хост-локального-оператора>;</font><br>
|
||||
Определяет хост, который будет назначен локальным операторам при установке на
|
||||
них режима +x. Можно определить значение в виде username@host.</p>
|
||||
@@ -3445,7 +3517,8 @@ cgiirc {
|
||||
Определяет хост, который будет назначен глобальным операторам при установке на
|
||||
них режима +x. Можно определить значение в виде username@host.</p>
|
||||
<p><font class="set">set::hosts::coadmin <хост-помощника-администратора>;</font><br>
|
||||
Определяет хост, который будет назначен помощникам администратора при установке
|
||||
У всех серверов в сети этот префикс
|
||||
должен быть одинаковым, это необходимо для правильной работы банов на каналах. Определяет хост, который будет назначен помощникам администратора при установке
|
||||
на них режима +x. Можно определить значение в виде username@host.</p>
|
||||
<p><font class="set">set::hosts::admin <хост-администратора>;</font><br>
|
||||
Определяет хост, который будет назначен администраторам при установке на них
|
||||
@@ -3579,8 +3652,13 @@ cgiirc {
|
||||
Максимальное время ожидания ответа от сервера. Переменная, принимающая значение
|
||||
от 1 до 5 (нет смысла величины большей, т.к. возникнет погрешность). По
|
||||
умолчанию установлено в 3 и, по большому счёту, нет смысла менять это значение.</p>
|
||||
<p><font class="set">set::ping-cookie <yes|no></font><br>
|
||||
Посылает запрос, используя PING, на который клиенты отвечают, используя PONG.
|
||||
Очень полезно для предотвращения слепых атак HTTP-POST и других вещей,
|
||||
таких как спуф TCP на старых операционных системах со сломанным TCP-стеком.
|
||||
По умолчанию включено (yes).</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
Когда включён NOSPOOF (обычно в ОС Windows), то он посылает предупреждение
|
||||
Когда включён set::ping-cookie (обычно в ОС Windows), то он посылает предупреждение
|
||||
каждому пользователю использовать '/quote pong ..', если он имеет проблемы с
|
||||
подключением. По умолчанию отключено (no).</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
@@ -3923,7 +4001,7 @@ files {
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colSpan="2">
|
||||
<td colSpan="2" id="usermodes">
|
||||
<div align="center"><b>Режимы пользователя</b></div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -3982,6 +4060,12 @@ files {
|
||||
</td>
|
||||
<td>Доступен для помощи (оператор помощи) (устанавливается в блоке Oper)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div style="text-align: center">I</div>
|
||||
</td>
|
||||
<td> Скрывает от обычных пользователей время простоя (в /whois).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div align="center">i</div>
|
||||
@@ -4119,12 +4203,22 @@ files {
|
||||
</td>
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr id="command_whois">
|
||||
<td>whois <ник></td>
|
||||
<td>Отображает информацию о пользователе, включая полное имя, хост, каналы, на
|
||||
которых находится пользователь и статус оператора<br>
|
||||
</td>
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr id="command_whois_nicknick">
|
||||
<td>whois <ник> <ник></td>
|
||||
<td> Исполняет удалённую команду <a href="#command_whois">WHOIS</a>. Если пользователь
|
||||
находится на другом сервере, чем тот человек, от кого он пытается получить информацию
|
||||
(WHOIS), то далеко не все данные отобразятся. К примеру, не отобразится время простоя
|
||||
пользователя. Чтобы выполнить удалённо команду WHOIS, необходимо ник пользователя
|
||||
указать как аргумент дважды.
|
||||
</td>
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">who <маска></td>
|
||||
@@ -4255,7 +4349,7 @@ files {
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">Watch +-<ник> +-<ник><br>
|
||||
<td height="39">Watch [+|-]<ник> [+|-]<ник><br>
|
||||
</td>
|
||||
<td>Watch - это новая система уведомлений в UnrealIRCd, которая работает быстрее и
|
||||
меньше нагружает сеть, чем старая. Сервер посылает вам сообщение, когда любой
|
||||
@@ -4384,6 +4478,11 @@ files {
|
||||
<td>Возвращает IP адрес пользователя.</td>
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">silence [+|-]<ник><br></td>
|
||||
<td>Игнорирует сообщения от пользователя или списка пользователей на стороне сервера.<br></td>
|
||||
<td>Все</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="39">oper <пользователь> <пароль><br>
|
||||
</td>
|
||||
@@ -4652,14 +4751,9 @@ files {
|
||||
</tr>
|
||||
<tr id="cmd_mkpasswd">
|
||||
<td height="36">mkpasswd <тип> <пароль><br></td>
|
||||
<td>Шифрует <пароль> используя <тип> хэширования. Доступные методы хэширования:
|
||||
<ul>
|
||||
<li>crypt [<em>для Windows необходима поддержка SSL</em>]</li>
|
||||
<li>md5</li>
|
||||
<li>sha1 [<em>необходим SSL</em>]</li>
|
||||
<li>ripemd160 [<em>необходим SSL</em>]</li>
|
||||
</ul>
|
||||
<br></td>
|
||||
<td>Шифрует <пароль> используя <тип> хэширования.
|
||||
Смотри <a href="#feature_authtypes">типы аутентификации</a> для
|
||||
доступных методов хэширования.</td>
|
||||
<td>Оператор</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
+205
-85
@@ -32,27 +32,31 @@ PRE {
|
||||
<!-- $Id$ -->
|
||||
<META content="MSHTML 6.00.2900.2180" name=GENERATOR>
|
||||
</HEAD>
|
||||
<BODY><A
|
||||
<BODY>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
<A
|
||||
href="unreal32docs.html">English</A> | <A
|
||||
href="unreal32docs.de.html">German</A> |
|
||||
<A
|
||||
href="unreal32docs.es.html">Spanish</A> |
|
||||
<A
|
||||
href="unreal32docs.hu.html">Hungarian</A>
|
||||
|
|
||||
<A href="unreal32docs.fr.html">French</A>
|
||||
|
|
||||
<A href="unreal32docs.gr.html">Greek</A>
|
||||
| <A
|
||||
href="unreal32docs.nl.html">Dutch</A> |
|
||||
<A
|
||||
href="unreal32docs.ru.html">Russian</A> |
|
||||
Turkish
|
||||
<A href="unreal32docs.ru.html">Russian</A>
|
||||
|
|
||||
<a href="unreal32docs.tr.html">Turkish</a>
|
||||
|
|
||||
<a href="unreal32docs.es.html">Spanish</a>
|
||||
<BR><BR>
|
||||
<DIV align=center><B><FONT size=7>UnrealIRCd</FONT></B><BR><FONT size=4><A
|
||||
href="http://www.unrealircd.com/">http://www.unrealircd.com/</A></FONT><BR><FONT
|
||||
size=4>Version: 3.2.9-RC1</FONT><BR><B>En Son Güncelleme:</B>
|
||||
2010-11-15</DIV><BR>
|
||||
size=4>Version: 3.2.10.5</FONT><BR><B>En Son Güncelleme:</B>
|
||||
2013-11-20</DIV><BR>
|
||||
<B>Baş Kodlayıcı/Devam Ettiren:</b> Syzop<br>
|
||||
<b>Kodlayıcılar:</b> binki<br>
|
||||
<b>Önceki Kodlayıcılar & Katkıda bulunanlar:</b> Stskeeps, codemastr, Luke, aquanight,
|
||||
@@ -60,7 +64,7 @@ WolfSage, McSkaf, Zogg,
|
||||
NiQuiL, assyrian, chasm, DrBin, llthangel, Griever, nighthawk<br>
|
||||
<b><strong>Belgeleme</strong>:</b> CKnight^ (ilk belgeleyen), Syzop (yeniden yazan), codemastr, ve daha çok katkıda bulunanlar<br>
|
||||
<B>Önceki Çevirmenler:</B> oepidus (tt`), Strathmore (Timaeus) - irc.trsohbet.com<br>
|
||||
<B>Türkçe Çeviri:</B> <a href="mailto:diablo@unrealircd.org">Diablo</a> & <a href="irc://irc.sohbetalem.net">irc.chat.com.tr</a><br>
|
||||
<B>Türkçe Çeviri:</B> <a href="mailto:diablo@unrealircd.org">Diablo (Serkan Sepetci)</a><br>
|
||||
<P>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 <A
|
||||
href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html</A>
|
||||
@@ -120,7 +124,9 @@ href="#feature_nickchars">Nick
|
||||
Karakter Grupları</A><BR>-- 3.17. <A
|
||||
href="#feature_cgiirc">CGI:IRC
|
||||
Desteği</A><BR>-- 3.18. <A
|
||||
href="#feature_timesync">Zaman Senkronizasyonu</A><BR>-- 3.19. <A
|
||||
href="#feature_timesync">Zaman Senkronizasyonu</A><BR>
|
||||
-- 3.19. <a href="#feature_authtypes">Kimlik Doğrulama Türleri</a><BR>
|
||||
-- 3.20. <A
|
||||
href="#feature_other">Diğer özellikler</A><BR>4. <A
|
||||
href="#configuringyourunrealircdconf">unrealircd.conf dosyasının
|
||||
konfigürasyonu</A><BR>---4.1. <A
|
||||
@@ -290,9 +296,9 @@ Sistemleri:</B><BR>
|
||||
<LI>Solaris (9, 10) </LI></UL>
|
||||
<LI><B>Windows versiyonları:</B>
|
||||
<UL>
|
||||
<LI>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<LI>Windows XP (Home, Pro)
|
||||
<LI>Windows 2003 </LI></UL>
|
||||
<LI>Windows 2003
|
||||
<LI>Windows 7 </LI></UL>
|
||||
<LI><B>Test Edilmiş Mimariler:</B>
|
||||
<UL>
|
||||
<LI>ia32 (i386, i486, i586, i686)
|
||||
@@ -606,20 +612,15 @@ al
|
||||
<TD>eski +f'de olduğu gibi kullanıcı-başına
|
||||
mesaj/notice. kullanıcı atılır veya
|
||||
banlanır.</TD></TR></TBODY></TABLE>
|
||||
<P> Örnek: <PRE><FONT color=green>*** ChanOp sets mode: +f
|
||||
[20j,50m,7n]:15</FONT>
|
||||
<P> Örnek: <PRE><FONT color=green>*** ChanOp sets mode: +f [20j,50m,7n]:15</FONT>
|
||||
<ChanOp> lalala
|
||||
<FONT color=green>*** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined
|
||||
#test
|
||||
<FONT color=green>*** 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</FONT>
|
||||
*** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined #test</FONT>
|
||||
-- snip XX lines --
|
||||
<FONT color=green>*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has
|
||||
joined #test</FONT>
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel joinflood detected
|
||||
(limit is 20 per 15 seconds), putting +i</FONT>
|
||||
<FONT color=green>*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test</FONT>
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), putting +i</FONT>
|
||||
<FONT color=green>*** server1.test.net sets mode: +i</FONT>
|
||||
<Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
|
||||
<Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
|
||||
@@ -627,8 +628,7 @@ joined #test</FONT>
|
||||
<Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
|
||||
<Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
|
||||
-- snip XX lines --
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel msg/noticeflood
|
||||
detected (limit is 50 per 15 seconds), putting +m</FONT>
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m</FONT>
|
||||
<FONT color=green>*** server1.test.net sets mode: +m</FONT>
|
||||
<FONT color=green>*** Evil1 is now known as Hmmm1</FONT>
|
||||
<FONT color=green>*** Evil2 is now known as Hmmm2</FONT>
|
||||
@@ -638,8 +638,7 @@ detected (limit is 50 per 15 seconds), putting +m</FONT>
|
||||
<FONT color=green>*** Evil6 is now known as Hmmm6</FONT>
|
||||
<FONT color=green>*** Evil7 is now known as Hmmm7</FONT>
|
||||
<FONT color=green>*** Evil8 is now known as Hmmm8</FONT>
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel nickflood detected
|
||||
(limit is 7 per 15 seconds), putting +N</FONT>
|
||||
<FONT color=brown>-server1.test.net:#test *** Channel nickflood detected(limit is 7 per 15 seconds), putting +N</FONT>
|
||||
<FONT color=green>*** server1.test.net sets mode: +N</FONT>
|
||||
</PRE>Gerçekte daha karışık, daha komplike bir şekil alabilir:<BR>Ayrı ayrı
|
||||
belirtmek yerine, flood tiplerini başka bir
|
||||
@@ -771,15 +770,24 @@ Bu ban tipleri kullan
|
||||
NOT: ('_') Karakteri (' ') karakterine denk gelir ve dolayısı ile ('_') karekteri, bu ban
|
||||
'Stupid bot script v1.4' ile eşleşir.</td></tr>
|
||||
<tr><td>~R</td><td>registered</td><td>Eğer bir kullanıcı kendini servislere tanıtmışsa
|
||||
(Genellikle NickServ) ve nicki eşleşiyorsa bu ban da eşleşir. Yani bu ban çeşidi yalnızca ban yollarında
|
||||
(Genellikle NickServ) ve nicki eşleşiyorsa bu ban ile eşleşecektir. Yani bu ban çeşidi yalnızca ban yollarında
|
||||
geçerlidir (+e).<br>
|
||||
Örnek: <i>+e ~R:Nick</i> Nick veya rumuzlu kullanıcının diğer banlarına bakılmaksızın eğer kendini NickServ'e tanıtmışsa
|
||||
kanalda bulunmasına izin verir.<br>
|
||||
</td></tr>
|
||||
<tr><td>~a</td><td>account</td><td>Eğer bir kullanıcı, hesap adı ile Servislere oturum açması halinde bu ban ile eşleşecektir.<br>
|
||||
Bu ~R' den biraz daha farklı olduğunu, yani nicki ABC olan bir kullanıcı hesabı XYZ altında kaydedilebilir anlamındadır.<br>
|
||||
Tüm Servisler bu paketleri desteklemez.Bu durumda, bunun yerine ~R kullanmak zorundadır.<br>
|
||||
Örnek: <i>+e ~a:SomeName</i> Servislerden oturum sağlayan "SomeName" hesap adı altında kullanıcı(lar)
|
||||
ne olursa olsun kanala girişi yasaklanacaktır.<br>
|
||||
</td></tr>
|
||||
</table>
|
||||
<br>
|
||||
Sen 1. gruptan olan banları 2. bir grupa yönlendirebilirsin <i>+b ~q:~c:#lamers</i>, yapılan ban, 'Quiet' olan bütün kullanıcıları #lamers kanalına girmelerini sağlayacaktır.<br>
|
||||
<br>
|
||||
Ban tipleri ikinci grup arasından invite (+I) durumları için kullanılabilirler.
|
||||
Örneğin; <i>+I ~c:#trusted</i> ve <i>+I ~a:accountname</i>.<br>
|
||||
<br>
|
||||
Modüllerden başka ban tipleri de ekleyebilirsiniz.<br>
|
||||
</p></div>
|
||||
<P><FONT size=+2><B>3.14 - Spamfilter</B></FONT><A
|
||||
@@ -1199,12 +1207,92 @@ al
|
||||
daha fazla
|
||||
bilgi için <A
|
||||
href="#setblock">set dökümanına</A> bakın..</P></DIV>
|
||||
<P><FONT size=+2><B>3.19 - Diğer Özellikler</B></FONT><A
|
||||
name=feature_other></A></P>
|
||||
<DIV class=desc>
|
||||
<P>UnrealIRCd buraya sığamayacak kadar çok özelliğe
|
||||
sahiptir... Bu özellikleri kendiniz bulacaksınız.</P></DIV>
|
||||
<P></P>
|
||||
<p><font size="+2"><b>3.19 - Kimlik Doğrulama Türleri</b></font><a name="feature_authtypes"></a></p>
|
||||
<div class="desc">
|
||||
<p>Yapılandırma dosyası çeşitli yerlerinde, örneğin <a
|
||||
href="#operblock">oper block</a>, <a href="#allowblock">allow block</a> ve
|
||||
<a href="#linkblock">link block</a>, gibi diğer yollarla şifreleyerek kullanıcı kimliğini doğrulayabilirsiniz.
|
||||
<br>Düz metin olarak şifre belirleyebilirsiniz, ama aynı zamanda bir kimlik doğrulama türünü belirtebilirsiniz.<br>
|
||||
Mevcut auth tipleri aşağıdaki gibidir:<br>
|
||||
<table border="0">
|
||||
<TR>
|
||||
<TD><b>Auth-tipi:</b></TD>
|
||||
<TD><b>Tanımlama:</b></TD>
|
||||
<TD><b>Destek Dosyaları:</b></TD><TD><b>Nasıl oluşturlur:</b></TD></TR>
|
||||
<TR><TD><b>crypt</b></TD><TD>UNIX crypt</TD>
|
||||
<TD>Windows:OpenSSL gerekir </TD>
|
||||
<TD>/MKPASSWD crypt :şifre</TD>
|
||||
</TR>
|
||||
<TR><TD><b>md5</b></TD>
|
||||
<TD>MD5 ile </TD>
|
||||
<TD><DIV id="gt-res-content" closure_uid_7ss8mw="163">
|
||||
<DIV dir="ltr" closure_uid_7ss8mw="162"><SPAN id="result_box" lang="tr" closure_uid_7ss8mw="123" c="4" a="undefined" Uc="null"><SPAN closure_uid_7ss8mw="764" Uc="null">Her zaman kullanılabilir</SPAN></SPAN></DIV>
|
||||
</DIV></TD><TD>/MKPASSWD md5 :şifre</TD>
|
||||
</TR>
|
||||
<TR><TD><b>sha1</b></TD>
|
||||
<TD>SHA1 ile </TD>
|
||||
<TD>OpenSSL gerekir</TD>
|
||||
<TD>/MKPASSWD sha1 :şifre</TD>
|
||||
</TR>
|
||||
<TR><TD><b>ripemd160</b></TD>
|
||||
<TD>RIPEMD160 ile </TD>
|
||||
<TD>OpenSSL gerekir</TD>
|
||||
<TD>/MKPASSWD ripemd160 :şifre</TD>
|
||||
</TR>
|
||||
<TR><TD><b>sslclientcert</b></TD>
|
||||
<TD>SSL Kullanıcı sertifikası </TD>
|
||||
<TD>OpenSSL gerekir</TD>
|
||||
<TD>Genel .pem uzantılı sertifika dosyası.</TD>
|
||||
</TR>
|
||||
<TR><TD><b>sslclientcertfp</b></TD>
|
||||
<TD>SSL Kullanıcı sertifikası parmak izi </TD>
|
||||
<TD>OpenSSL gerekir</TD>
|
||||
<TD>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</TD></TR>
|
||||
</table>
|
||||
/MKPASSWD komutunu sadece IRCOp 'lar kullanabilir. Alternatif olarak, shell komut satırı arabirimini kullanabilirsiniz: <i>./unreal mkpasswd hashtipi şifre
|
||||
</i>.<br>
|
||||
Tüm kimlik doğrulama türleri tüm sistemlerde bulunmaz, yukarıdaki tabloda destek dosyalarına (önkoşullara) bakınınız.<br>
|
||||
<br>
|
||||
<b>Örnek: MD5 methodu vhost bloğunda parolayı şifreler.</b><br>
|
||||
1. Farzet, sen şifreni <i>test</i> olarak kullanmak istiyorsun ve md5 hash
|
||||
olarak şifreleyeceksin.<br>
|
||||
Eğer IRCOp iseniz bunu basitçe yazabilirsiniz <i>/MKPASSWD md5 :test</i>.<br>
|
||||
Alternatif olarak, IRC yerine aşağıdaki komutu shellinizde çalıştırabilirsiniz: <i>./unreal mkpasswd md5 test</i>.<br>
|
||||
Bu yöntemlerden birini kullanarak, çıktılanan hashed parolası gibi görünecektir. <i>$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==</i>
|
||||
(dizeyi değişecektir!)<br>
|
||||
2. Şimdi, elimizde bir md5 hash şifresi var bunu UnrealIRCd satırına bildirerek<br>
|
||||
vhost dizesine koyacağız. Örnek:
|
||||
<pre>vhost {
|
||||
vhost I.love.Tux;
|
||||
from { userhost *@*; };
|
||||
login Tux;
|
||||
password "$NIV0bSfG$UTMvI/KdMwe4cZqmT/23qw==" { md5; };
|
||||
};</pre>
|
||||
3. Bu vhostu kullanmak için <i>/VHOST Tux test</i> yazınız.
|
||||
<br>
|
||||
<b>Örnek: SSL kullanıcı sertifikaları ile kimlik doğrulama</b><br>
|
||||
<tt>sslclientcert</tt> ve <tt>sslclientcertfp</tt> kendi kullanıcı sertifikası SSL kullanıcıların kimliğini doğrulamak için kullanılan olağanüstü auth-tipi vardır.<br>
|
||||
Bu kimlik doğrulama yöntemleri ile kullanıcı SSL kullanarak ve belirtilen kullanıcı sertifikası kullanarak emin olabilirsiniz.<br>
|
||||
İşte oper bloğunun nasıl kullanılacağını gösteren bir örnek:<br>
|
||||
1. Eğer SSL kullanıcı sertifikası yoksa bir tane oluşturabilirsiniz (Eğer bilmiyorsanız, 'ssl sertifikası oluşturmak' yazarak nasıl oluşturacağınız hakkında web'de arama yapabilirsiniz.)<br>
|
||||
2. SHA256 hash methodunu çalıştırarak hızlıca sertifikanızı alabilirsiniz:
|
||||
<pre>openssl x509 -in name-of-pem-file.pem -sha256 -noout -fingerprint</pre>
|
||||
3. Yapılandırma dosyasında, orjinal parolayı (<i>test</i> örneğimizdeki gibi) sslclientcertfp auth-tipini belirterek değiştiriniz. İşte bir örnek:<br>
|
||||
<pre>oper test {
|
||||
password "E7:4D:46:F1:9F:F4:68:F5:E8:E3:49:CC:28:5D:F9:65:85:BA:4F:16:B6:49:02:E3:34:E6:E7:6A:FE:76:A7:98" { sslclientcertfp; };
|
||||
flags { global; can_override; };
|
||||
class clients;
|
||||
};</pre>
|
||||
<p>4. Sunucun yenileniyor (/REHASH).<br>
|
||||
5. Şimdi, SSL istemci ile bağlandığına emin olun ve SSL istemci sertifikası için bu adımı kullanın #2.<br>
|
||||
6. <i>/oper test x</i> yaparak operliğe yükseleceksin. (örnekte <i>x</i>) şifresi gibi parola hala belirtilmelidir. Bu yüzden SSL istemci sertifikası kimlik doğrulaması için bunu göz ardı edilir.<br>
|
||||
7. Tebrikler, artık UnrealIRCd'nin mevcut en güvenli kimlik doğrulama yöntemi kullanıyorsunuz.<br>
|
||||
<br>
|
||||
<tt>sslclientcertfp</tt> <a href="#linkblock_passwordreceive">link::password-receive</a> gibi yararlı başka yerlerde kullanabilirsiniz.</p>
|
||||
<p><FONT size=+2><B>3.20 - Diğer Özellikler</B></FONT></p>
|
||||
</div>
|
||||
<DIV class=desc><P>UnrealIRCd buraya sığamayacak kadar çok özelliğe
|
||||
sahiptir... Bu özellikleri kendiniz bulacaksınız</P></DIV>
|
||||
<P><FONT size=+2><B>4.0 - unrealircd.conf dosyasının
|
||||
konfigürasyonu</B></FONT>
|
||||
<A name=configuringyourunrealircdconf></A></P>
|
||||
@@ -1215,7 +1303,7 @@ 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
|
||||
edilen yoldur. Eğer bir sorunla karşılaşırsanız, yardım istemeden önce
|
||||
yazımınızı (syntax), klavuzu ve <A
|
||||
href="http://www.vulnscan.org/UnrealIRCd/faq/">FAQ</A>
|
||||
kısmını kontrol edin.</P></DIV>
|
||||
@@ -1573,6 +1661,7 @@ name=operblock></A>
|
||||
userhost <hostmaskesi>;
|
||||
};
|
||||
password <şifre> { <auth-tipi>; };
|
||||
require-modes <modeler>;
|
||||
class <class-ismi>;
|
||||
flags <flaglar>;
|
||||
flags {
|
||||
@@ -1587,20 +1676,23 @@ name=operblock></A>
|
||||
};
|
||||
</PRE>
|
||||
<P></P>
|
||||
<P>Oper bloğu IRC Operatörleri atamanızı sağlar. <B>oper::</B> kısmı /oper
|
||||
kullanımında ki login ismini
|
||||
belirtir. <B>oper::from::userhost</B> kısmı ile
|
||||
belirtilecek kullanıcı@host maskesi kullanıcının eşleşeceği maskedir, burada
|
||||
birden çok oper::from::userhost belirtebilirsiniz. <B>oper::password</B>
|
||||
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.</P>
|
||||
<p>Oper bloğu IRC Operatörleri atamanızı sağlar. <b>oper::</b>
|
||||
bölümü /oper kullanımında ki login ismini belirtir.
|
||||
<b>oper::from::userhost</b> bölümü ile
|
||||
belirtilecek kullanıcı@host maskesi kullanıcının eşleşeceği maskedir. Burada
|
||||
birden çok oper::from::userhost belirtebilirsiniz.
|
||||
<b>oper::require-modes</b> Opsiyonel ayar olarak tek modları belirlemenizi sağlar.
|
||||
(örneğin <em>r</em> veya <em>z</em>) kullanıcı OPER izini verilmeden
|
||||
önce bu modlara sahip olmalıdır. Bu modlar kullanıcıların nickserv kayıt veya önce güvenli
|
||||
bağlantılarını kullanarak olmasını gerektirecek şekilde kullanılmış olması gerekir.
|
||||
</p>
|
||||
<p id="operblock_password"><b>oper::password::</b> bölümünde belirttiğiniz şifre ise
|
||||
kullanıcının belirteceği şifredir. <b>oper::password::auth-type</b> bölümünde ise bu şifre
|
||||
için bir auth metodu belirtebilirsiniz. Eğer düz metin bir şifre kullanmak istiyorsanız
|
||||
<b>oper::password::auth-type</b> bloğunu kullanmayın. Geçerli auth-tiplerini, oper blokları ile ve bunları nasıl kullanıldığını görmek için <a href="#feature_authtypes">Kimlik Doğrulama Türleri</a>.
|
||||
</p>
|
||||
<P>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</P>
|
||||
harfe duyarlı olduğunu unutmayın.</P>
|
||||
<P><B>oper::class</B> yönergesinde ise
|
||||
oper bloğunun kullanacağı daha önceden anlatılmış olan class ismi
|
||||
belirtilir.</P>
|
||||
@@ -1965,7 +2057,7 @@ ba
|
||||
global;
|
||||
};
|
||||
swhois "Example of a whois mask";
|
||||
snomask frebWqFv;
|
||||
snomask cFfkoSsqNG;
|
||||
};
|
||||
</PRE>
|
||||
<P></P><A name=operoverride><B>OperOverride hakkında kısa bir
|
||||
@@ -1993,10 +2085,7 @@ name=drpassblock></A>
|
||||
};</PRE>
|
||||
<P></P>
|
||||
<P>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.</P>
|
||||
ve drpass::die yönergeleriyle belirtebilirsiniz. Ayrıca bunun yerine, bir düz metin parola kullanabilirsiniz <a href="#feature_authtypes">Kimlik Doğrulama Türleri</a>.</p>
|
||||
<P>Örnek:</P><PRE>drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
@@ -2686,9 +2775,8 @@ gereken login ismini, vhost::password y
|
||||
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
|
||||
auth tipini de belirtebilirsiniz. Mevcut <a
|
||||
href="#feature_authtypes">Kimlik Doğrulama Türleri</a> listesine bakınız. 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.</P>
|
||||
@@ -2829,14 +2917,10 @@ kullan
|
||||
192.168.0.1) , hemen hemen neredeyse hiç kullanılmaz. </P>
|
||||
<P><B>port</B><BR>Link için bağlantı portu. </P>
|
||||
<P><B>password-connect</B><BR>Uzak sunucuya bağlanmak için gerekli olan
|
||||
şifre, sade-metin
|
||||
şeklinde olmalı. </P>
|
||||
şifre, düz metin şeklinde olmalı. </P>
|
||||
<P><B>password-receive</B><BR>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. </P>
|
||||
gerekli şifredir.
|
||||
<tt>sslclientcertfp</tt> auth-tipi şifreler kullanılması şiddetle tavsiye edilir. Daha fazla bilgi için <a href="#feature_authtypes">Kimlik Doğrulama Türleri</a> bakınız.<br> </P>
|
||||
<P><B>hub vs leaf</B><BR>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
|
||||
@@ -3204,7 +3288,7 @@ belirtilebilir.<BR>
|
||||
<P></P>
|
||||
<P>Eğer set ifadelerini ayırmak istiyorsanız, aşağıdaki
|
||||
formatı kullanabilirsiniz.<BR>Örnek:<BR>set { options { hide-ulines;
|
||||
no-stealth; }; };<BR></P>
|
||||
show-connect-info; }; };<BR></P>
|
||||
<P><FONT class=set>set::kline-address
|
||||
<email-adresi>;</FONT><BR>Burada iletişim için,
|
||||
K:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi
|
||||
@@ -3407,6 +3491,8 @@ g
|
||||
<p><font class="set">set::options::allow-insane-bans;</font><br>
|
||||
Anlamsız /GLINE *@*.xx gibi geniş banlara izin verir. Bu yüzden yanlışlıkla ağınızdaki
|
||||
herkesi yasaklar! Böylece büyük bir özenle kullanmaya gerek duyabilirsiniz.</p>
|
||||
<p><font class="set">set::options::disable-cap;</font><br>
|
||||
IRC Client Yetenekler uzantıları devre dışı bırakır (CAP). Bu SASL ve çeşitli diğer özellikleri kullanılamaz ve istemciler için kullanmanın daha zor olduğunu unutmayın.</p>
|
||||
<p id="set_nopost_ban_action"><font class="set">set::nopost::ban-action</font> (gerekli <a href="#modules_m_nopost">m_nopost</a>)<br />
|
||||
Kullanıcı HTTP POST komutu gerçekleştirmek için çalışırsa, kullanıcıya belirtilen eylem uygulanır.
|
||||
İzin verilen değerler: kill, gline, gzline, kline, zline, shun, ve tempshun.
|
||||
@@ -3436,10 +3522,9 @@ saat ve 3 dakikay
|
||||
<deneme-sayısı>;</FONT><BR>
|
||||
DNS cozumlenmesinin basarisiz
|
||||
olmasi durumda DNS cozumlemesinin kac kez tekrarlanacagini belirtir. (TAMAMLANMADI)</P>
|
||||
<P><FONT class=set>set::dns::nameserver
|
||||
<dns-sunucu-ismi>;</FONT><BR>DNS aramalarında kullanılacak, sunucunun
|
||||
hostname'ini
|
||||
belirtir. (TAMAMLANMADI)</P>
|
||||
<p><font class="set">set::dns::nameserver <dns-sunucu-ismi>;</font><br/>
|
||||
DNS aramalarında kullanılacak sunucunun
|
||||
IP adresini belirtir. C-ares tahmin edemediği zaman son çare olarak sadece nameserverler kullanılır. (/etc/resolv.conf boşsa eğer)</P>
|
||||
<P><FONT class=set>set::dns::bind-ip
|
||||
<ip>;</FONT><BR>Çözümleyici için bağlanılacak IP'yi
|
||||
belirtir, genellikle belirtilmeye gerek duyulmaz.</P>
|
||||
@@ -3458,13 +3543,14 @@ ad
|
||||
Varsayılan IPv6 clone algılama maskesi. Görmek için;
|
||||
<a href="#allowblock_ipv6clonemask">allow::ipv6-clone-mask</a>. Bu ayarın varsayılan değeri 64'dür.</p>
|
||||
<p id="set-stats-server"><FONT class=set>set::services-server
|
||||
<sunucu-ismi>;</FONT><BR>Servisler sunucusunun ismini belirtir.
|
||||
Gereklidir, eğer
|
||||
servis sunucunuz yoksa, services.sizinaginiz.com gibi bir sunucu ismi
|
||||
belirtmeniz gerekir.</P>
|
||||
<sunucu-ismi>;</FONT><BR>Servisler sunucusunun adı belirtilir.
|
||||
Eğer servis sunucunuz yoksa, services.sizinaginiz.com gibi bir sunucu adı
|
||||
belirtmeniz gerekir.(GEREKLI)</P>
|
||||
<p id="set-sasl-server"><font class="set">set::sasl-server <sunucu-ismi>;</font><br>
|
||||
SASL kimlik mesajlarının gönderilmesi için gereken sunucunun adını ayarlar.</p>
|
||||
<P><FONT class=set>set::stats-server
|
||||
<sunucu-ismi>;</FONT><BR>Stats sunucusu botlarının
|
||||
yerleştirileceği sunucu ismini belirtir. Eğer stats sunucunuz yoksa burayı
|
||||
yerleştirileceği sunucu adını belirtir. Eğer stats sunucunuz yoksa burayı
|
||||
belirtmeyebilirsiniz.</P>
|
||||
<P><FONT class=set>set::help-channel
|
||||
<ağ-yardım-kanalı>;</FONT><BR>Ağınız için yardım
|
||||
@@ -3483,7 +3569,8 @@ edin.</P>
|
||||
<P><FONT class=set>set::hiddenhost-prefix
|
||||
<önek-değeri>;</FONT><BR>Gizlenmiş hostlara eklenecek (+x) öneki
|
||||
belirtmenize olanak
|
||||
sağlar. Burada genellikle ağ ismini simgeleyen 3 veya 4 harf belirtilir.</P>
|
||||
sağlar. Burada genellikle ağ ismini simgeleyen 3 veya 4 harf belirtilir.
|
||||
Bağlantılı sunucularda kanal banlarının düzgün çalışması için aynı hidden-host önekine sahip olmalıdır.</P>
|
||||
<P><FONT class=set>set::hosts::local
|
||||
<locop-hostu>;</FONT><BR>Yerel operatör statüsüne
|
||||
erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe
|
||||
@@ -3658,6 +3745,16 @@ belirtilebilir.
|
||||
Eğer bir spamfilterin, uygulanması için milisaniyelerin bu miktarından daha uzun olursa
|
||||
(1000ms = 1 saniye) sonra spamfilter silinir. (varsayılan: 500).
|
||||
Ayrıca görmek için; <a href="#feature_spamfilter_slow">Yavaş Spamfilter Algılama</a>.</p>
|
||||
<p><font class="set">set::spamfilter::stop-on-first-match <yes|no></font><br>
|
||||
Varsayılan 'yes' olarak ayarlandığında, eşleşmiş olan spamfilterler
|
||||
UnrealIRCd tarafından harekete alınacak ve herhangi bir (diğer) spamfilter eklendiğinde
|
||||
uygulamaya alınacak anlamına gelir.<br>
|
||||
Bu 'hayır' olarak ayarlandığında ise önceden eklenmiş spamfilterler kontrol edilmeyecek
|
||||
fakat sonradan eklenmiş spamfilterler hala kontrol edilecektir. Tüm bu eşleşmelerin hepsi
|
||||
kaydedilir ve her bir eşleşme için tüm IRCop'lara (snomask + S) mesaj gidecektir. Sadece bir
|
||||
spamfilter eylemi göreceksiniz ki ancak kullanıcı bundan etkilenecektir. (örn: block veya kill)
|
||||
Spamfilter ile herhangi bir ciddi eylemde ise en yüksek GZLINE, en düşük ise block olarak
|
||||
uyarmak gerekir.</p>
|
||||
<P><FONT class=set>set::check-target-nick-bans
|
||||
<yes|no></FONT><BR>
|
||||
Kullanıcı(lar) nick(ler)ini değiştirdiği zaman,
|
||||
@@ -3685,8 +3782,12 @@ belirtmenize olanak sa
|
||||
belirtilmelidir,
|
||||
beşten büyük sayılar belirtilemez. Varsayılan değeri 3’tür ve eğer iyi bir
|
||||
sebebiniz yoksa bunu değiştirmeyin.</P>
|
||||
<p><font class="set">set::ping-cookie <yes|no></font><br>
|
||||
Kullanıcılara PING kullanarak cevabın PONG olarak gönderilmesini sağlar. Bu HTTP-POST saldırıları
|
||||
ve diğer şeylerin yanı sıra kırık TCP yığınları ile eski işletim sistemlerinde
|
||||
sahte TCP'i durdurmak ve önlemek için yararlıdır. Varsayılan değeri yes'dir.</p>
|
||||
<p><font class="set">set::pingpong-warning <yes|no></font><br>
|
||||
NOSPOOF özelliği aktif iken (genellikle Windows), bağlanırken sorun yasayan her kullanıcıya '/quote pong ..' uyarısının
|
||||
set::ping-cookie özelliği aktif iken (genellikle Windows), bağlanırken sorun yasayan her kullanıcıya '/quote pong ..' uyarısının
|
||||
gönderilmesini ya da gönderilmemesini sağlar. Varsayılan değeri no'dur.</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
WATCH içerisindeki AWAY bildirimini açmanızı/kapatmanızı sağlar. Varsayılan değeri yes'dir.</p>
|
||||
@@ -3963,7 +4064,7 @@ name=userchannelmodes></A> </FONT></B></P>
|
||||
<DIV align=center><B
|
||||
>Açıklama</B></DIV></TD></TR>
|
||||
<TR>
|
||||
<TD colSpan=2>
|
||||
<TD colspan="2" id="usermodes">
|
||||
<DIV align=center><B>Kullanıcı
|
||||
Modları</B></DIV></TD></TR>
|
||||
<TR>
|
||||
@@ -4010,6 +4111,10 @@ engeller</TD></TR>
|
||||
<DIV align=center>h</DIV></TD>
|
||||
<TD>Yardim görevlisi statüsü verir.(HelpOp)(Oper
|
||||
Bloğunda belirtilir)</TD></TR>
|
||||
<TR>
|
||||
<TD><div style="text-align: center">I</div></TD>
|
||||
<TD>Oper'lerin boş (idle) zamanlarını (/whois'de) normal kullanıcılardan gizler.</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>
|
||||
<DIV align=center>i</DIV></TD>
|
||||
@@ -4122,12 +4227,23 @@ komut hakk
|
||||
bütün kanallarda rumuzunuzun değişimi haber verilir<BR
|
||||
></TD>
|
||||
<TD>Herkes</TD></TR>
|
||||
<TR>
|
||||
<TR id="command_whois">
|
||||
<TD>whois <nick></TD>
|
||||
<TD>Belirtilen nick için; kullanıcı ismi, host,
|
||||
bulunduğu kanallar vs. gibi bilgileri görüntüler<BR
|
||||
></TD>
|
||||
<TD>Herkes</TD></TR>
|
||||
<tr id="command_whois_nicknick">
|
||||
<td>whois <nick> <nick></td>
|
||||
<td>
|
||||
Uzak bir <a href="#command_whois">WHOIS</a> gerçekleştirir. Eğer bir kişi
|
||||
başka bir kişi olarak aynı sunucuda değilse, basit bir WHOIS
|
||||
bütün WHOIS yanıtlarını göstermeyecektir. Örneğin,
|
||||
idle (boş) zamanlar, bu olayda gösterilmez. Uzak bir whois istemek için,
|
||||
ilk olarak ve ikinci argüman olarak uzak kullanıcının nicki ile bir WHOIS verir.
|
||||
</td>
|
||||
<td>Herkes</td>
|
||||
</tr>
|
||||
<TR>
|
||||
<TD height=39>who <maske></TD>
|
||||
<TD>Kullanıcılarla ilgili bilgileri gösterir. Maske
|
||||
@@ -4241,7 +4357,7 @@ atman
|
||||
olursunuz.<BR></TD>
|
||||
<TD>Herkes</TD></TR>
|
||||
<TR>
|
||||
<TD height=39>Watch +-<nick> +-<nick><BR
|
||||
<TD height=39>Watch [+|-]<nick> [+|-]<nick><BR
|
||||
></TD>
|
||||
<TD>Watch UnrealIRCd 'de yeni bir uyarı sistemidir.
|
||||
Bu sistem eski-stil uyarı sistemine nazaran daha hızlıdır ve ağ
|
||||
@@ -4367,6 +4483,10 @@ olarak
|
||||
></TD>
|
||||
<TD>Belirtilen nickin IP Adres bilgisini gösterir.</TD>
|
||||
<TD>Herkes</TD></TR>
|
||||
<TR>
|
||||
<TD height="39">silence [+|-]<nick><br></TD>
|
||||
<TD>Belirtilen kullanıcıların size mesaj atmaması için ekler, kaldırır veya listeler<br></TD>
|
||||
<TD>Herkes</TD>
|
||||
<TR>
|
||||
<TD height=39>oper <kullanıcı adı>
|
||||
<şifre><BR></TD>
|
||||
@@ -4625,9 +4745,9 @@ IRC
|
||||
<TR>
|
||||
<TD height=36>mkpasswd <şifre><BR
|
||||
></TD>
|
||||
<TD>Sade metin halindeki bir şifreyi,
|
||||
unrealircd.conf'a eklemek için, yeniden şifreler (encrypt)<BR
|
||||
></TD>
|
||||
<TD>Düz metin halindeki bir şifreyi,
|
||||
unrealircd.conf'a eklemek için, yeniden şifreler (encrypt). Mevcut şifreleme
|
||||
<a href="#feature_authtypes">Kimlik Doğrulama Türleri</a> methodlarına bakınız.</td>
|
||||
<TD>IRC Operatörler</TD></TR>
|
||||
<TR>
|
||||
<TD height=36>tsctl offset +/- <zaman><BR
|
||||
@@ -4729,8 +4849,8 @@ g
|
||||
içeriği görüntülenir<BR>X - notlink - Link bloğunda
|
||||
var olan fakat henüz linki gerçekleşmemiş sunucular listesi
|
||||
görüntülenir<BR>Y - class - Class bloğu içeriği
|
||||
görüntülenir<BR>z - zip - SZiplinked sunucular
|
||||
hakkında ki sıkıştırma bilgisi görüntülenir<BR>Z -
|
||||
görüntülenir<BR>z - zip - Zip bağlantılı sunucular
|
||||
hakkında ki sıkıştırma bilgisi görüntülenir. (zip bağlantı desteği ile derlendiği takdirde)<BR>Z -
|
||||
mem - Bellek kullanım bilgisi görüntülenir<BR></TD>
|
||||
<TD>Herkes</TD></TR>
|
||||
<TR>
|
||||
|
||||
Binary file not shown.
@@ -98,7 +98,7 @@ help Umodes {
|
||||
" N = Is a Network Administrator";
|
||||
" C = Is a Co Administrator";
|
||||
" -";
|
||||
" d = Makes it so you can not receive channel PRIVMSGs (Deaf)";
|
||||
" d = Only receive channel PRIVMSGs starting with a bot command character (Deaf)";
|
||||
" g = Can read & send to GlobOps, and LocOps";
|
||||
" h = Available for Help (Help Operator)";
|
||||
" i = Invisible (Not shown in /WHO searches)";
|
||||
@@ -114,6 +114,7 @@ help Umodes {
|
||||
" B = Marks you as being a Bot";
|
||||
" G = Filters out all Bad words in your messages with <censored>";
|
||||
" H = Hide IRCop status in /WHO and /WHOIS. (IRC Operators only)";
|
||||
" I = Hide an oper's idle time (in /whois output) from regular users.";
|
||||
" R = Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users";
|
||||
" S = For Services only. (Protects them)";
|
||||
" T = Prevents you from receiving CTCPs";
|
||||
@@ -161,11 +162,11 @@ help Chmodes {
|
||||
" -";
|
||||
" A = Server/Net Admin only channel (settable by Admins)";
|
||||
" b <nick!ident@host> = Bans the nick!ident@host from the channel [h]";
|
||||
" (For more info on extended bantypes, see /HELPOP EXTBANS)";
|
||||
" c = Block messages containing mIRC color codes [o]";
|
||||
" C = No CTCPs allowed in the channel [o]";
|
||||
" e <nick!ident@host> = Overrides a ban for matching users [h]";
|
||||
" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
|
||||
" (For more info on extended bantypes, see /HELPOP EXTBANS)";
|
||||
" G = Filters out all Bad words in messages with <censored> [o]";
|
||||
" i = A user must be invited to join the channel [h]";
|
||||
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
||||
@@ -241,11 +242,20 @@ help ExtBans {
|
||||
" | | Will allow Nick in the channel, regardless of other ";
|
||||
" | | bans, if he identified to NickServ and is using the ";
|
||||
" | | nickname Nick. ";
|
||||
" ----------------------------------------------------------------------------------";
|
||||
" | | If a user is logged in to services with this account ";
|
||||
" | | name, then this ban will match. ";
|
||||
" | | This is slightly different than ~R, in the sense that ";
|
||||
" ~a | account | a user with nick ABC may be logged in under account XYZ.";
|
||||
" | | Not all services packages support this, in which case ";
|
||||
" | | you will have to use ~R instead. ";
|
||||
" | | Example: +e ~a:Name ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
"You may stack extended bans from the 1st group with the 2nd.";
|
||||
"Example: +b ~q:~c:#lamers";
|
||||
"The above would quiet all users who have joined #lamers.";
|
||||
"You may stack extended bans from the first group with the second group.";
|
||||
"For example +b ~q:~c:#lamers would quiet all users who have joined #lamers.";
|
||||
"Bans from the second group may also be used for invite exceptions (+I),";
|
||||
"such as +I ~c:#trusted and +I ~a:accountname.";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
setup.h
|
||||
@@ -30,6 +30,7 @@ typedef struct {
|
||||
#define AUTHTYPE_SHA1 3
|
||||
#define AUTHTYPE_SSL_CLIENTCERT 4
|
||||
#define AUTHTYPE_RIPEMD160 5
|
||||
#define AUTHTYPE_SSL_CLIENTCERTFP 6
|
||||
|
||||
/* md5 is always available and enabled as of Unreal3.2.1 */
|
||||
#define AUTHENABLE_MD5
|
||||
@@ -37,6 +38,7 @@ typedef struct {
|
||||
#define AUTHENABLE_SHA1
|
||||
#define AUTHENABLE_SSL_CLIENTCERT
|
||||
#define AUTHENABLE_RIPEMD160
|
||||
#define AUTHENABLE_SSL_CLIENTCERTFP
|
||||
/* OpenSSL provides a crypt() */
|
||||
#ifndef AUTHENABLE_UNIXCRYPT
|
||||
#define AUTHENABLE_UNIXCRYPT
|
||||
|
||||
+4
-2
@@ -265,7 +265,8 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
|
||||
|
||||
/* Server-Server PROTOCTL -Stskeeps
|
||||
* Please check send_proto() for more. -- Syzop
|
||||
* This is the FIRST line only, please check send_proto() for more. -- Syzop
|
||||
* Also take MAXPARA into account !
|
||||
*/
|
||||
#define PROTOCTL_SERVER "NOQUIT" \
|
||||
" TOKEN" \
|
||||
@@ -278,7 +279,8 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
" NS" \
|
||||
" SJB64" \
|
||||
" TKLEXT" \
|
||||
" NICKIP"
|
||||
" NICKIP" \
|
||||
" ESVID"
|
||||
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
|
||||
@@ -70,6 +70,16 @@
|
||||
|
||||
#undef NO_FDLIST
|
||||
|
||||
/*
|
||||
* Defining this will enable poll() usage instead of select().
|
||||
* This is the default on *NIX as of 3.2.10.
|
||||
* On Windows this would require Vista or newer so we stick with
|
||||
* select for now.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define USE_POLL
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Defining this will allow all ircops to see people in +s channels
|
||||
* By default, only net/tech admins can see this
|
||||
|
||||
@@ -42,6 +42,7 @@ struct zNetwork {
|
||||
char *x_prefix_quit;
|
||||
char *x_helpchan;
|
||||
char *x_stats_server;
|
||||
char *x_sasl_server;
|
||||
};
|
||||
|
||||
enum UHAllowed { UHALLOW_ALWAYS, UHALLOW_NOCHANS, UHALLOW_REJOIN, UHALLOW_NEVER };
|
||||
@@ -82,6 +83,7 @@ struct zConfiguration {
|
||||
unsigned mkpasswd_for_everyone:1;
|
||||
unsigned allow_insane_bans;
|
||||
unsigned allow_part_if_shunned:1;
|
||||
unsigned disable_cap:1;
|
||||
unsigned check_target_nick_bans:1;
|
||||
unsigned use_egd : 1;
|
||||
long host_timeout;
|
||||
@@ -156,6 +158,7 @@ struct zConfiguration {
|
||||
char *spamexcept_line;
|
||||
long spamfilter_detectslow_warn;
|
||||
long spamfilter_detectslow_fatal;
|
||||
int spamfilter_stop_on_first_match;
|
||||
int maxbans;
|
||||
int maxbanlength;
|
||||
int timesynch_enabled;
|
||||
@@ -168,6 +171,7 @@ struct zConfiguration {
|
||||
#ifdef INET6
|
||||
unsigned short default_ipv6_clone_mask;
|
||||
#endif /* INET6 */
|
||||
int ping_cookie;
|
||||
};
|
||||
|
||||
#ifndef DYNCONF_C
|
||||
@@ -200,7 +204,11 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SHOWCONNECTINFO iConf.show_connect_info
|
||||
#define OPER_ONLY_STATS iConf.oper_only_stats
|
||||
#define ANTI_SPAM_QUIT_MSG_TIME iConf.anti_spam_quit_message_time
|
||||
#ifdef HAVE_RAND_EGD
|
||||
#define USE_EGD iConf.use_egd
|
||||
#else
|
||||
#define USE_EGD 0
|
||||
#endif
|
||||
#define EGD_PATH iConf.egd_path
|
||||
|
||||
#define ircnetwork iConf.network.x_ircnetwork
|
||||
@@ -217,6 +225,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define hidden_host iConf.network.x_hidden_host
|
||||
#define helpchan iConf.network.x_helpchan
|
||||
#define STATS_SERVER iConf.network.x_stats_server
|
||||
#define SASL_SERVER iConf.network.x_sasl_server
|
||||
#define iNAH iConf.network.x_inah
|
||||
#define prefix_quit iConf.network.x_prefix_quit
|
||||
#define SSL_SERVER_CERT_PEM (iConf.x_server_cert_pem ? iConf.x_server_cert_pem : "server.cert.pem")
|
||||
@@ -263,6 +272,8 @@ extern MODVAR aConfiguration iConf;
|
||||
|
||||
#define ALLOW_PART_IF_SHUNNED iConf.allow_part_if_shunned
|
||||
|
||||
#define DISABLE_CAP iConf.disable_cap
|
||||
|
||||
#define BAN_VERSION_TKL_TIME iConf.ban_version_tkl_time
|
||||
#define SILENCE_LIMIT (iConf.silence_limit ? iConf.silence_limit : 15)
|
||||
|
||||
@@ -273,6 +284,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
||||
#define SPAMFILTER_DETECTSLOW_WARN iConf.spamfilter_detectslow_warn
|
||||
#define SPAMFILTER_DETECTSLOW_FATAL iConf.spamfilter_detectslow_fatal
|
||||
#define SPAMFILTER_STOP_ON_FIRST_MATCH iConf.spamfilter_stop_on_first_match
|
||||
|
||||
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
||||
|
||||
@@ -303,6 +315,7 @@ struct SetCheck {
|
||||
unsigned has_dont_resolve:1;
|
||||
unsigned has_mkpasswd_for_everyone:1;
|
||||
unsigned has_allow_part_if_shunned:1;
|
||||
unsigned has_disable_cap:1;
|
||||
unsigned has_ssl_egd:1;
|
||||
unsigned has_ssl_server_cipher_list :1;
|
||||
unsigned has_dns_timeout:1;
|
||||
@@ -376,6 +389,7 @@ struct SetCheck {
|
||||
unsigned has_network_name:1;
|
||||
unsigned has_default_server:1;
|
||||
unsigned has_services_server:1;
|
||||
unsigned has_sasl_server:1;
|
||||
unsigned has_hosts_global:1;
|
||||
unsigned has_hosts_admin:1;
|
||||
unsigned has_hosts_local:1;
|
||||
@@ -398,9 +412,11 @@ struct SetCheck {
|
||||
unsigned has_options_mkpasswd_for_everyone:1;
|
||||
unsigned has_options_allow_insane_bans:1;
|
||||
unsigned has_options_allow_part_if_shunned:1;
|
||||
unsigned has_options_disable_cap:1;
|
||||
int cgiirc_type; /* cheat :( */
|
||||
unsigned has_cgiirc_hosts:1;
|
||||
unsigned has_cgiirc_webpass:1;
|
||||
unsigned has_ping_cookie:1;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+10
-4
@@ -130,7 +130,7 @@ ConfigItem_cgiirc *Find_cgiirc(char *username, char *hostname, char *ip, CGIIRCT
|
||||
ConfigItem_ban *Find_ban(aClient *, char *host, short type);
|
||||
ConfigItem_ban *Find_banEx(aClient *,char *host, short type, short type2);
|
||||
ConfigItem_vhost *Find_vhost(char *name);
|
||||
ConfigItem_deny_channel *Find_channel_allowed(char *name);
|
||||
ConfigItem_deny_channel *Find_channel_allowed(aClient *cptr, char *name);
|
||||
ConfigItem_alias *Find_alias(char *name);
|
||||
ConfigItem_help *Find_Help(char *command);
|
||||
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
|
||||
@@ -167,7 +167,7 @@ extern MODVAR int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
|
||||
R_do_id, R_fin_id, R_fail_id;
|
||||
|
||||
#endif
|
||||
extern inline aCommand *find_Command(char *cmd, short token, int flags);
|
||||
extern aCommand *find_Command(char *cmd, short token, int flags);
|
||||
extern aCommand *find_Command_simple(char *cmd);
|
||||
extern aChannel *find_channel(char *, aChannel *);
|
||||
extern Membership *find_membership_link(Membership *lp, aChannel *ptr);
|
||||
@@ -274,6 +274,7 @@ extern void start_auth(aClient *);
|
||||
extern void read_authports(aClient *);
|
||||
extern void send_authports(aClient *);
|
||||
|
||||
extern void set_channel_mlock(aClient *, aClient *, aChannel *, const char *, int);
|
||||
|
||||
extern void restart(char *);
|
||||
extern void server_reboot(char *);
|
||||
@@ -285,7 +286,7 @@ extern int send_queued(aClient *);
|
||||
extern void sendto_locfailops(char *pattern, ...) __attribute__((format(printf,1,2)));
|
||||
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
|
||||
extern void sendto_serv_butone_nickcmd(aClient *one, aClient *sptr, char *nick, int hopcount,
|
||||
long lastnick, char *username, char *realhost, char *server, long servicestamp, char *info, char *umodes,
|
||||
long lastnick, char *username, char *realhost, char *server, char *svid, char *info, char *umodes,
|
||||
char *virthost);
|
||||
extern void sendto_message_one(aClient *to, aClient *from, char *sender,
|
||||
char *cmd, char *nick, char *msg);
|
||||
@@ -308,6 +309,7 @@ extern void sendto_serv_butone_quit(aClient *, char *, ...) __attribute__((forma
|
||||
extern void sendto_serv_butone_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_serv_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_common_channels(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_common_channels_local_butone(aClient *, int, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_match_servs(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_match_butone(aClient *, aClient *, char *, int,
|
||||
@@ -343,7 +345,7 @@ extern int exit_client(aClient *, aClient *, aClient *, char *);
|
||||
extern void initstats(), tstats(aClient *, char *);
|
||||
extern char *check_string(char *);
|
||||
extern char *make_nick_user_host(char *, char *, char *);
|
||||
extern inline char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
||||
extern char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
||||
extern char *make_user_host(char *, char *);
|
||||
extern int parse(aClient *, char *, char *);
|
||||
extern int do_numeric(int, aClient *, aClient *, int, char **);
|
||||
@@ -446,6 +448,7 @@ extern MODVAR long UMODE_SETHOST; /* 0x40000000 used sethost */
|
||||
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
|
||||
extern MODVAR long UMODE_HIDEWHOIS; /* hides channels in /whois */
|
||||
extern MODVAR long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
|
||||
extern MODVAR long UMODE_HIDLE; /* hides oper idle times */
|
||||
extern MODVAR long AllUmodes, SendUmodes;
|
||||
|
||||
extern MODVAR long SNO_KILLS;
|
||||
@@ -667,6 +670,7 @@ extern Spamfilter *unreal_buildspamfilter(char *s);
|
||||
extern char *our_strcasestr(char *haystack, char *needle);
|
||||
extern int spamfilter_getconftargets(char *s);
|
||||
extern void remove_oper_snomasks(aClient *sptr);
|
||||
extern void remove_oper_modes(aClient *sptr);
|
||||
extern char *spamfilter_inttostring_long(int v);
|
||||
extern int check_channelmask(aClient *, aClient *, char *);
|
||||
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
||||
@@ -805,3 +809,5 @@ extern void free_pending_net(aClient *sptr);
|
||||
extern aPendingNet *find_pending_net_by_numeric_butone(int numeric, aClient *exempt);
|
||||
extern aClient *find_pending_net_duplicates(aClient *cptr, aClient **srv, int *numeric);
|
||||
extern aClient *find_non_pending_net_duplicates(aClient *cptr);
|
||||
extern MODVAR char serveropts[];
|
||||
extern MODVAR char *IsupportStrings[];
|
||||
|
||||
@@ -660,6 +660,7 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define HOOKTYPE_LOCAL_NICKPASS 50
|
||||
#define HOOKTYPE_PACKET 51
|
||||
#define HOOKTYPE_HANDSHAKE 52
|
||||
#define HOOKTYPE_AWAY 53
|
||||
|
||||
/* Hook return values */
|
||||
#define HOOK_CONTINUE 0
|
||||
|
||||
@@ -49,11 +49,6 @@
|
||||
#else
|
||||
#define MYTOKEN_ZIP ""
|
||||
#endif
|
||||
#if defined(NOSPOOF)
|
||||
#define MYTOKEN_NOSPOOF "/NOSPF"
|
||||
#else
|
||||
#define MYTOKEN_NOSPOOF ""
|
||||
#endif
|
||||
#if !defined(EXTCMODE)
|
||||
#define MYTOKEN_EXTCMODE "/NOEXTC"
|
||||
#else
|
||||
@@ -93,12 +88,12 @@
|
||||
|
||||
#ifdef UNREALCORE
|
||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
unsigned int our_compiler_version = GCCVER;
|
||||
#else
|
||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
DLLFUNC unsigned int compiler_version = GCCVER;
|
||||
#endif
|
||||
|
||||
@@ -297,6 +297,9 @@
|
||||
#define MSG_EOS "EOS"
|
||||
#define TOK_EOS "ES"
|
||||
|
||||
#define MSG_MLOCK "MLOCK"
|
||||
#define TOK_MLOCK "ML"
|
||||
|
||||
#define MAXPARA 15
|
||||
|
||||
extern int m_error();
|
||||
|
||||
@@ -53,6 +53,8 @@
|
||||
#define ERR_NOSUCHSERVICE 408
|
||||
#define ERR_NOORIGIN 409
|
||||
|
||||
#define ERR_INVALIDCAPCMD 410
|
||||
|
||||
#define ERR_NORECIPIENT 411
|
||||
#define ERR_NOTEXTTOSEND 412
|
||||
#define ERR_NOTOPLEVEL 413
|
||||
@@ -180,6 +182,9 @@
|
||||
#define RPL_LISTEND 323
|
||||
#define RPL_CHANNELMODEIS 324
|
||||
#define RPL_CREATIONTIME 329
|
||||
|
||||
#define RPL_WHOISLOGGEDIN 330 /* ircu/charybdis-family --nenolod */
|
||||
|
||||
#define RPL_NOTOPIC 331
|
||||
#define RPL_TOPIC 332
|
||||
#define RPL_TOPICWHOTIME 333
|
||||
@@ -365,9 +370,21 @@
|
||||
|
||||
#define RPL_WHOISSECURE 671
|
||||
|
||||
#define ERR_MLOCKRESTRICTED 742
|
||||
|
||||
#define ERR_CANNOTDOCOMMAND 972
|
||||
#define ERR_CANNOTCHANGECHANMODE 974
|
||||
|
||||
#define ERR_STARTTLS 691
|
||||
|
||||
#define RPL_LOGGEDIN 900
|
||||
#define RPL_LOGGEDOUT 901
|
||||
#define ERR_NICKLOCKED 902
|
||||
|
||||
#define RPL_SASLSUCCESS 903
|
||||
#define ERR_SASLFAIL 904
|
||||
#define ERR_SASLTOOLONG 905
|
||||
#define ERR_SASLABORTED 906
|
||||
#define ERR_SASLALREADY 907
|
||||
|
||||
#define ERR_NUMERICERR 999
|
||||
|
||||
@@ -52,6 +52,7 @@ EVENT(htm_calc);
|
||||
EVENT(e_check_fdlists);
|
||||
EVENT(garbage_collect);
|
||||
EVENT(loop_event);
|
||||
EVENT(deprecated_notice);
|
||||
/* support.c */
|
||||
char *my_itoa(int i);
|
||||
|
||||
|
||||
+16
-6
@@ -109,6 +109,9 @@
|
||||
/* Define if you have pstat */
|
||||
#undef HAVE_PSTAT
|
||||
|
||||
/* Define if the libcrypto has RAND_egd */
|
||||
#undef HAVE_RAND_EGD
|
||||
|
||||
/* Define if you have setproctitle */
|
||||
#undef HAVE_SETPROCTITLE
|
||||
|
||||
@@ -172,9 +175,6 @@
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#undef HAVE_VSNPRINTF
|
||||
|
||||
/* Define to 1 if you have the `vsyslog' function. */
|
||||
#undef HAVE_VSYSLOG
|
||||
|
||||
/* Define if you want IPv6 enabled */
|
||||
#undef INET6
|
||||
|
||||
@@ -241,9 +241,6 @@
|
||||
/* Define if you do not have the index function. */
|
||||
#undef NOINDEX
|
||||
|
||||
/* Define if you want spoof protection */
|
||||
#undef NOSPOOF
|
||||
|
||||
/* Define to 1 if your system has no in6addr_any. */
|
||||
#undef NO_IN6ADDR_ANY
|
||||
|
||||
@@ -355,6 +352,19 @@
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#undef UNISTDH
|
||||
|
||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
||||
#undef UNREAL_VERSION_GENERATION
|
||||
|
||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
||||
#undef UNREAL_VERSION_MAJOR
|
||||
|
||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
||||
#undef UNREAL_VERSION_MINOR
|
||||
|
||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
||||
-rc2 for unrealircd-3.2.9-rc2) */
|
||||
#undef UNREAL_VERSION_SUFFIX
|
||||
|
||||
/* Define if you have libcurl installed to get remote includes and MOTD
|
||||
support */
|
||||
#undef USE_LIBCURL
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
extern SSL_CTX * ctx;
|
||||
extern SSL_CTX *ctx_server;
|
||||
extern SSL_CTX *ctx_client;
|
||||
extern MODVAR SSL_CTX *ctx;
|
||||
extern MODVAR SSL_CTX *ctx_server;
|
||||
extern MODVAR SSL_CTX *ctx_client;
|
||||
|
||||
extern SSL_METHOD *meth;
|
||||
extern void init_ssl();
|
||||
|
||||
+58
-23
@@ -69,7 +69,10 @@
|
||||
|
||||
#include "channel.h"
|
||||
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
/* needed to workaround a warning / prototype/dll inconsistency crap */
|
||||
#define vsnprintf unrl_vsnprintf
|
||||
#endif
|
||||
|
||||
extern MODVAR int sendanyways;
|
||||
|
||||
@@ -171,6 +174,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define NICKLEN 30
|
||||
#define USERLEN 10
|
||||
#define REALLEN 50
|
||||
#define SVIDLEN 30
|
||||
#define TOPICLEN 307
|
||||
#define CHANNELLEN 32
|
||||
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
|
||||
@@ -367,6 +371,12 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define PROTO_NAMESX 0x4000 /* Send all rights in NAMES output */
|
||||
#define PROTO_CLK 0x8000 /* Send cloaked host in the NICK command (regardless of +x/-x) */
|
||||
#define PROTO_UHNAMES 0x10000 /* Send n!u@h in NAMES */
|
||||
#define PROTO_CLICAP 0x20000 /* client capability negotiation in process */
|
||||
#define PROTO_STARTTLS 0x40000 /* client supports STARTTLS */
|
||||
#define PROTO_SASL 0x80000 /* client is doing SASL */
|
||||
#define PROTO_AWAY_NOTIFY 0x100000 /* client supports away-notify */
|
||||
#define PROTO_ACCOUNT_NOTIFY 0x200000 /* client supports account-notify */
|
||||
#define PROTO_MLOCK 0x400000 /* server supports MLOCK */
|
||||
|
||||
/*
|
||||
* flags macros.
|
||||
@@ -396,6 +406,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsAnOper(x) ((x)->umodes & (UMODE_OPER|UMODE_LOCOP))
|
||||
#define IsARegNick(x) ((x)->umodes & (UMODE_REGNICK))
|
||||
#define IsRegNick(x) ((x)->umodes & UMODE_REGNICK)
|
||||
#define IsLoggedIn(x) (IsRegNick(x) || (x->user && (*x->user->svid != '*') && !isdigit(*x->user->svid))) /* registered nick (+r) or just logged into services (may be -r) */
|
||||
#define IsRegNickMsg(x) ((x)->umodes & UMODE_RGSTRONLY)
|
||||
#define IsNoCTCP(x) ((x)->umodes & UMODE_NOCTCP)
|
||||
#define IsWebTV(x) ((x)->umodes & UMODE_WEBTV)
|
||||
@@ -449,11 +460,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#ifdef USE_SSL
|
||||
#define IsSSL(x) IsSecure(x)
|
||||
#endif
|
||||
#ifdef NOSPOOF
|
||||
#define IsNotSpoof(x) ((x)->nospoof == 0)
|
||||
#else
|
||||
#define IsNotSpoof(x) (1)
|
||||
#endif
|
||||
|
||||
#define GetHost(x) (IsHidden(x) ? (x)->user->virthost : (x)->user->realhost)
|
||||
#define GetIP(x) ((x->user && x->user->ip_str) ? x->user->ip_str : (MyConnect(x) ? Inet_ia2p(&x->ip) : NULL))
|
||||
@@ -802,7 +809,15 @@ struct User {
|
||||
Link *silence; /* chain of silence pointer blocks */
|
||||
Link *dccallow; /* chain of dccallowed entries */
|
||||
char *away; /* pointer to away message */
|
||||
u_int32_t servicestamp; /* Services' time stamp variable */
|
||||
|
||||
/*
|
||||
* svid: a value that is assigned by services to this user record.
|
||||
* in previous versions of Unreal, this was strictly a timestamp value,
|
||||
* which is less useful in the modern world of IRC where nicks are grouped to
|
||||
* accounts, so it is now a string.
|
||||
*/
|
||||
char svid[SVIDLEN + 1];
|
||||
|
||||
signed char refcnt; /* Number of times this block is referenced */
|
||||
unsigned short joined; /* number of channels joined */
|
||||
char username[USERLEN + 1];
|
||||
@@ -1020,9 +1035,7 @@ struct Client {
|
||||
short lastsq; /* # of 2k blocks when sendqueued called last */
|
||||
dbuf sendQ; /* Outgoing message queue--if socket full */
|
||||
dbuf recvQ; /* Hold for data incoming yet to be parsed */
|
||||
#ifdef NOSPOOF
|
||||
u_int32_t nospoof; /* Anti-spoofing random number */
|
||||
#endif
|
||||
int proto; /* ProtoCtl options */
|
||||
long sendM; /* Statistics: protocol messages send */
|
||||
long sendK; /* Statistics: total k-bytes send */
|
||||
@@ -1062,6 +1075,11 @@ struct Client {
|
||||
TS cputime;
|
||||
#endif
|
||||
char *error_str; /* Quit reason set by dead_link in case of socket/buffer error */
|
||||
|
||||
char sasl_agent[NICKLEN + 1];
|
||||
unsigned char sasl_out;
|
||||
unsigned char sasl_complete;
|
||||
u_short sasl_cookie;
|
||||
};
|
||||
|
||||
|
||||
@@ -1128,18 +1146,18 @@ struct _configflag_tld
|
||||
#define CONF_BAN_TYPE_AKILL 1
|
||||
#define CONF_BAN_TYPE_TEMPORARY 2
|
||||
|
||||
#define BAN_ACT_KILL 1
|
||||
#define BAN_ACT_TEMPSHUN 2
|
||||
#define BAN_ACT_SHUN 3
|
||||
#define BAN_ACT_KLINE 4
|
||||
#define BAN_ACT_ZLINE 5
|
||||
#define BAN_ACT_GLINE 6
|
||||
#define BAN_ACT_GZLINE 7
|
||||
/* below are pretty much spamfilter only */
|
||||
#define BAN_ACT_BLOCK 8
|
||||
#define BAN_ACT_DCCBLOCK 9
|
||||
#define BAN_ACT_VIRUSCHAN 10
|
||||
#define BAN_ACT_WARN 11
|
||||
/* Ban actions. These must be ordered by severity (!) */
|
||||
#define BAN_ACT_GZLINE 1100
|
||||
#define BAN_ACT_GLINE 1000
|
||||
#define BAN_ACT_ZLINE 900
|
||||
#define BAN_ACT_KLINE 800
|
||||
#define BAN_ACT_SHUN 700
|
||||
#define BAN_ACT_KILL 600
|
||||
#define BAN_ACT_TEMPSHUN 500
|
||||
#define BAN_ACT_VIRUSCHAN 400
|
||||
#define BAN_ACT_DCCBLOCK 300
|
||||
#define BAN_ACT_BLOCK 200
|
||||
#define BAN_ACT_WARN 100
|
||||
|
||||
|
||||
#define CRULE_ALL 0
|
||||
@@ -1214,7 +1232,7 @@ struct _configitem_oper {
|
||||
anAuthStruct *auth;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem *from;
|
||||
unsigned long modes;
|
||||
unsigned long modes, require_modes;
|
||||
long oflags;
|
||||
int maxlogins;
|
||||
};
|
||||
@@ -1367,14 +1385,14 @@ struct _configitem_deny_version {
|
||||
struct _configitem_deny_channel {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *channel, *reason, *redirect;
|
||||
char *channel, *reason, *redirect, *class;
|
||||
unsigned char warn;
|
||||
};
|
||||
|
||||
struct _configitem_allow_channel {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *channel;
|
||||
char *channel, *class;
|
||||
};
|
||||
|
||||
struct _configitem_allow_dcc {
|
||||
@@ -1429,9 +1447,21 @@ struct _configitem_alias_format {
|
||||
regex_t expr;
|
||||
};
|
||||
|
||||
/**
|
||||
* In a rehash scenario, conf_include will contain all of the included
|
||||
* configs that are actually in use. It also will contain includes
|
||||
* that are being processed so that the configuration may be updated.
|
||||
* INCLUDE_NOTLOADED is set on all of the config files that are being
|
||||
* loaded and unset on already-loaded files. See
|
||||
* unload_loaded_includes() and load_includes().
|
||||
*/
|
||||
#define INCLUDE_NOTLOADED 0x1
|
||||
#define INCLUDE_REMOTE 0x2
|
||||
#define INCLUDE_DLQUEUED 0x4
|
||||
/**
|
||||
* Marks that an include was loaded without error. This seems to
|
||||
* overlap with the INCLUDE_NOTLOADED meaning(?). --binki
|
||||
*/
|
||||
#define INCLUDE_USED 0x8
|
||||
|
||||
struct _configitem_include {
|
||||
@@ -1442,6 +1472,8 @@ struct _configitem_include {
|
||||
char *url;
|
||||
char *errorbuf;
|
||||
#endif
|
||||
char *included_from;
|
||||
int included_from_line;
|
||||
};
|
||||
|
||||
struct _configitem_help {
|
||||
@@ -1615,6 +1647,7 @@ struct Channel {
|
||||
#ifdef JOINTHROTTLE
|
||||
aJFlood *jflood;
|
||||
#endif
|
||||
char *mode_lock;
|
||||
char chname[1];
|
||||
};
|
||||
|
||||
@@ -1818,6 +1851,8 @@ extern MODVAR char *gnulicense[];
|
||||
#define PARTFMT ":%s PART %s"
|
||||
#define PARTFMT2 ":%s PART %s :%s"
|
||||
|
||||
#define isexcept void
|
||||
|
||||
#ifdef USE_SSL
|
||||
#include "ssl.h"
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -144,7 +144,7 @@ extern char *rindex(char *, char);
|
||||
/*
|
||||
* Mac OS X Tiger Support (Intel Only)
|
||||
*/
|
||||
#if defined(macosx) || (defined(__APPLE__) && defined(__MACH__))
|
||||
#if defined(macosx) || defined(__APPLE__)
|
||||
#define OSXTIGER
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/** Standard include for all UnrealIRCd modules.
|
||||
* This should normally provide all of UnrealIRCd's functionality
|
||||
* (that is publicly exposed anyway).
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "proto.h"
|
||||
#include "channel.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
+24
-16
@@ -7,6 +7,16 @@
|
||||
#ifndef __versioninclude
|
||||
#define __versioninclude 1
|
||||
|
||||
/*
|
||||
* Utility macros to convert version number constants to strings.
|
||||
* Delayed expansion requires two macros to work. See:
|
||||
*
|
||||
* $ info '(cpp) Stringification'
|
||||
*/
|
||||
#define _macro_to_str(n) #n
|
||||
#define macro_to_str(n) _macro_to_str(n)
|
||||
|
||||
|
||||
/*
|
||||
* Mark of settings
|
||||
*/
|
||||
@@ -29,30 +39,28 @@
|
||||
* Also don't forget to bump the protocol version every release.
|
||||
*/
|
||||
|
||||
/** These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
||||
/**
|
||||
* The following code concerns UNREAL_VERSION_GENERATION,
|
||||
* UNREAL_VERSION_MAJOR, and UNREAL_VERSION_MINOR.
|
||||
*
|
||||
* These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
||||
* can easily distinguish versions.
|
||||
*
|
||||
* They are set during ./configure, so update ./configure.ac's AC_INIT
|
||||
* line upon a new release.
|
||||
*/
|
||||
|
||||
/** The generation version number (eg: 3 for Unreal3*) */
|
||||
#define UNREAL_VERSION_GENERATION 3
|
||||
|
||||
/** The major version number (eg: 2 for Unreal3.2*) */
|
||||
#define UNREAL_VERSION_MAJOR 2
|
||||
|
||||
/** The minor version number (eg: 1 for Unreal3.2.1), negative numbers for unstable/alpha/beta */
|
||||
#define UNREAL_VERSION_MINOR 9
|
||||
|
||||
/** Year + week of the year (ISO week number, with Monday as first day of 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 201120
|
||||
#define UNREAL_VERSION_TIME 201430
|
||||
|
||||
#define UnrealProtocol 2310
|
||||
#define PATCH1 "3"
|
||||
#define PATCH2 ".2"
|
||||
#define PATCH3 ".9"
|
||||
#define PATCH4 "-rc1"
|
||||
#define UnrealProtocol 2311
|
||||
#define PATCH1 macro_to_str(UNREAL_VERSION_GENERATION)
|
||||
#define PATCH2 "." macro_to_str(UNREAL_VERSION_MAJOR)
|
||||
#define PATCH3 "." macro_to_str(UNREAL_VERSION_MINOR)
|
||||
#define PATCH4 UNREAL_VERSION_SUFFIX
|
||||
#define PATCH5 ""
|
||||
#define PATCH6 ""
|
||||
#define PATCH7 ""
|
||||
|
||||
+13
-6
@@ -44,12 +44,6 @@
|
||||
#undef TIMES_2
|
||||
#undef GETRUSAGE_2
|
||||
#define HAVE_ALLOCA
|
||||
/* vc 2005 */
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1400
|
||||
# define HAVE_VSNPRINTF
|
||||
# define HAVE_SNPRINTF
|
||||
# define snprintf _snprintf
|
||||
#endif
|
||||
#define SPATH "."
|
||||
#define DPATH "."
|
||||
#define NO_U_TYPES
|
||||
@@ -73,4 +67,17 @@
|
||||
#define intptr_t long
|
||||
#endif
|
||||
|
||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
||||
#define UNREAL_VERSION_GENERATION 3
|
||||
|
||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
||||
#define UNREAL_VERSION_MAJOR 2
|
||||
|
||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
||||
#define UNREAL_VERSION_MINOR 10
|
||||
|
||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
||||
-rc2 for unrealircd-3.2.9-rc2) */
|
||||
#define UNREAL_VERSION_SUFFIX ".7"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
ircdchk
|
||||
+11
-3
@@ -107,7 +107,7 @@ TRE_LIB=/LIBPATH:"$(TRE_LIB_DIR)"
|
||||
!IFDEF USE_REMOTEINC
|
||||
CURLCFLAGS=/D USE_LIBCURL
|
||||
CURLOBJ=SRC/URL.OBJ
|
||||
CURLLIB=libcurl_imp.lib
|
||||
CURLLIB=libcurl.lib
|
||||
!IFDEF LIBCURL_INC_DIR
|
||||
LIBCURL_INC=/I "$(LIBCURL_INC_DIR)"
|
||||
!ENDIF
|
||||
@@ -219,7 +219,8 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
|
||||
SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
|
||||
SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C \
|
||||
SRC/MODULES/M_STARTTLS.C SRC/MODULES/M_NOPOST.C SRC/MODULES/M_ISSECURE.C
|
||||
SRC/MODULES/M_STARTTLS.C SRC/MODULES/M_NOPOST.C SRC/MODULES/M_ISSECURE.C SRC/MODULES/M_CAP.C \
|
||||
SRC/MODULES/M_SASL.C
|
||||
|
||||
DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
|
||||
SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
|
||||
@@ -256,7 +257,8 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
||||
SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
|
||||
SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
|
||||
SRC/MODULES/M_STARTTLS.DLL \
|
||||
SRC/MODULES/M_NOPOST.DLL SRC/MODULES/M_ISSECURE.DLL \
|
||||
SRC/MODULES/M_NOPOST.DLL SRC/MODULES/M_ISSECURE.DLL SRC/MODULES/M_CAP.DLL \
|
||||
SRC/MODULES/M_SASL.DLL \
|
||||
SRC/MODULES/CLOAK.DLL
|
||||
|
||||
|
||||
@@ -825,6 +827,12 @@ src/modules/m_nopost.dll: src/modules/m_nopost.c $(INCLUDES)
|
||||
src/modules/m_issecure.dll: src/modules/m_issecure.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_issecure.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_cap.dll: src/modules/m_cap.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_cap.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_sasl.dll: src/modules/m_sasl.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_sasl.c $(MODLFLAGS)
|
||||
|
||||
dummy:
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* AwesomeChristians Chat Network (irc.awesomechristians.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 31 December 2001 15:25
|
||||
* Author: ChildLikeFaith
|
||||
* Email: childlikefaith@awesomechristians.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "AwesomeChristians Chat Network";
|
||||
default-server "irc.awesomechristians.com";
|
||||
services-server "services.awesomechristians.com";
|
||||
stats-server "services.awesomechristians.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "awesome";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "ircop.awesomechristians.net";
|
||||
global "ircop.awesomechristians.net";
|
||||
coadmin "co.admin.awesomechristians.net";
|
||||
admin "admin.awesomechristians.net";
|
||||
servicesadmin "services.admin.awesomechristians.net";
|
||||
netadmin "network.admin.awesomechristians.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* AXEnet (irc.axenet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Axenet";
|
||||
default-server "irc.axenet.org";
|
||||
services-server "services.axenet.org";
|
||||
stats-server "stats.axenet.org";
|
||||
help-channel "#axenethelp";
|
||||
hiddenhost-prefix "axe";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.axenet.org";
|
||||
global "ircop.axenet.org";
|
||||
coadmin "coadmin.axenet.org";
|
||||
admin "admin.axenet.org";
|
||||
servicesadmin "csop.axenet.org";
|
||||
netadmin "netadmin.axenet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Bunker7.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 17 August 1999 12:34 CT
|
||||
* Author: Rogue
|
||||
* E-Mail: rogue@bunker7.net
|
||||
* $Id$
|
||||
*-----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "bunker7";
|
||||
default-server "irc.bunker7.net";
|
||||
services-server "services.bunker7.net";
|
||||
stats-server "stats.bunker7.net";
|
||||
help-channel "#bunker7";
|
||||
hiddenhost-prefix "bunker7";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.bunker7.net";
|
||||
global "global.bunker7.net";
|
||||
coadmin "coadmin.bunker7.net";
|
||||
admin "admin.bunker7.net";
|
||||
servicesadmin "sadm.bunker7.net";
|
||||
netadmin "netadmin.bunker7.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* BuRnNET (irc.burncycl.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 April 2001 03:31
|
||||
* Author: BuRnCycL
|
||||
* Email: burncycl@burncycl.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "BuRnNET";
|
||||
default-server "irc.burncycl.net";
|
||||
services-server "services.burncycl.net";
|
||||
stats-server "stats.burncycl.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.burncycl.net";
|
||||
global "oper.burncycl.net";
|
||||
coadmin "coadmin.burncycl.net";
|
||||
admin "admin.burncycl.net";
|
||||
servicesadmin "csop.burncycl.net";
|
||||
netadmin "netadmin.burncycl.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* CaboNet (irc.cabonet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 February 2001 15:38
|
||||
* Author: Nandin
|
||||
* Email: nandin@cabonet.org
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CaboNet";
|
||||
default-server "irc.cabonet.org";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.cabonet.org";
|
||||
help-channel "#cabonet";
|
||||
hiddenhost-prefix "cnet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.cabonet.org";
|
||||
global "oper.cabonet.org";
|
||||
coadmin "coadmin.cabonet.org";
|
||||
admin "admin.cabonet.org";
|
||||
servicesadmin "csop.cabonet.org";
|
||||
netadmin "netadmin.cabonet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Added-at: 25 november 2000 17:35 GMT
|
||||
* Author: Highlander (J.S. Morrison)
|
||||
* E-Mail: highlander@chatcrap.com
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatCrap";
|
||||
default-server "irc.chatcrap.com";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.chatcrap.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "chatcrap";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatcrap.com";
|
||||
global "ircop.chatcrap.com";
|
||||
coadmin "coadmin.chatcrap.com";
|
||||
admin "admin.chatcrap.com";
|
||||
servicesadmin "serviceop.chatcrap.com";
|
||||
netadmin "netadmin.chatcrap.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* ChatUniverse (irc.chatuniverse.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 16 March 2001 13:02
|
||||
* Author: PeTrArChY
|
||||
* Email: bradbury@rebeldev.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatUniverse";
|
||||
default-server "irc.chatuniverse.net";
|
||||
services-server "services.chatuniverse.net";
|
||||
stats-server "stats.chatuniverse.net";
|
||||
help-channel "#chatuniverse";
|
||||
hiddenhost-prefix "CU";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatuniverse.net";
|
||||
global "oper.chatuniverse.net";
|
||||
coadmin "coadmin.chatuniverse.net";
|
||||
admin "admin.chatuniverse.net";
|
||||
servicesadmin "csop.chatuniverse.net";
|
||||
netadmin "netadmin.chatuniverse.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* CTCP Networks (irc.ctcp.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 12 February 2002 19:54
|
||||
* Author: Mark
|
||||
* Email: mark@ctcp.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CTCP Networks";
|
||||
default-server "irc.ctcp.net";
|
||||
services-server "services.ctcp.net";
|
||||
stats-server "stats.ctcp.net";
|
||||
help-channel "#opers";
|
||||
hiddenhost-prefix "ctcp";
|
||||
hosts {
|
||||
local "locop.ctcp.net";
|
||||
global "oper.ctcp.net";
|
||||
coadmin "coadmin.ctcp.net";
|
||||
admin "admin.ctcp.net";
|
||||
servicesadmin "csop.ctcp.net";
|
||||
netadmin "netadmin.ctcp.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Dark Kaos Network (irc.darkkaos.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 February 2002 03:15
|
||||
* Author: ka0t1c_m4n
|
||||
* Email: drk_kaos@yahoo.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Dark Kaos Network";
|
||||
default-server "irc.darkkaos.net";
|
||||
services-server "services.darkkaos.net";
|
||||
stats-server "stats.darkkaos.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
hosts {
|
||||
local "localop.darkkaos.net";
|
||||
global "would.u.like.to.be.me.com";
|
||||
coadmin "ircop.darkkaos.net";
|
||||
admin "i.hate.terr.oists.net";
|
||||
servicesadmin "Csop.darkkaos.net";
|
||||
netadmin "netadmin.darkkaos.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "DigitalIRC.Net";
|
||||
default-server "irc.digitalirc.net";
|
||||
services-server "Services.DigitalIRC.Net";
|
||||
stats-server "Statistics.DigitalIRC.com";
|
||||
help-channel "#Digitalirc";
|
||||
hiddenhost-prefix "NN";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOper.DigitalIRC.Net";
|
||||
global "Oper.DigitalIRC.Net";
|
||||
coadmin "NetAdmin.DigitalIRC.Net";
|
||||
admin "Admin.DigitalIRC.Net";
|
||||
servicesadmin "ServicesOp.DigitalIRC.Net";
|
||||
netadmin "NetAdmin.DigitalIRC.Net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Discussioni.Org (IRC.Discussioni.Org) Network Configuration File
|
||||
*
|
||||
* Added-at: 17 January 2002 22:39
|
||||
* Author: Jollino
|
||||
* Email: jollino@discussioni.org
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Discussioni.Org";
|
||||
default-server "IRC.Discussioni.Org";
|
||||
services-server "Services.Discussioni.Org";
|
||||
stats-server "Stats.Discussioni.Org";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "DISCUSSIONI";
|
||||
hosts {
|
||||
local "LocOp.Discussioni.Org";
|
||||
global "Oper.Discussioni.Org";
|
||||
coadmin "Co-Admin.Discussioni.Org";
|
||||
admin "Admin.Discussioni.Org";
|
||||
servicesadmin "ServOper.Discussioni.Org";
|
||||
netadmin "NetAdmin.Discussioni.Org";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "DragonWings";
|
||||
default-server "irc.dragonwings.org";
|
||||
services-server "saturn.dragonwings.org";
|
||||
stats-server "stats.dragonwings.org";
|
||||
help-channel "#DragonWings";
|
||||
hiddenhost-prefix "dw";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.dragonwings.org";
|
||||
global "ircop.dragonwings.org";
|
||||
coadmin "coadmin.dragonwings.org";
|
||||
admin "admin.dragonwings.org";
|
||||
servicesadmin "serviceop.dragonwings.org";
|
||||
netadmin "netadmin.dragonwings.org";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* GamesCafe (irc.gamerscafe.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 22 August 2001 01:17
|
||||
* Author: Osiris
|
||||
* Email: daniel@linux.ws
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "GamesCafe";
|
||||
default-server "irc.gamerscafe.net";
|
||||
services-server "Services.GamersCafe.Net";
|
||||
stats-server "Services.GamersCafe.Net";
|
||||
help-channel "#GamersCafe";
|
||||
hiddenhost-prefix "GC";
|
||||
hosts {
|
||||
local "localoper.gamerscafe.net";
|
||||
global "oper.gamerscafe.net";
|
||||
coadmin "coadmin.gamerscafe.net";
|
||||
admin "admin.gamerscafe.net";
|
||||
servicesadmin "csop.gamerscafe.net";
|
||||
netadmin "network-admin.gamerscafe.net";
|
||||
host-on-oper yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* German-Elite (irc.german-elite.net) Network Configuration File
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "German-Elite";
|
||||
default-server "irc.german-elite.net";
|
||||
services-server "services.german-elite.net";
|
||||
stats-server "stats.german-elite.net";
|
||||
help-channel "#german-elite";
|
||||
hiddenhost-prefix "GE";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.german-elite.net";
|
||||
global "ircop.german-elite.net";
|
||||
coadmin "coadmin.german-elite.net";
|
||||
admin "admin.german-elite.net";
|
||||
servicesadmin "csop.german-elite.net";
|
||||
netadmin "netadmin.german-elite.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Network Configuration File Template
|
||||
* -----------------------------------------
|
||||
* Added-at: August 2000
|
||||
* Author: Anonymos
|
||||
* E-Mail: Anonymos@Global-IRC.de
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global";
|
||||
default-server "IRC.Global-IRC.de";
|
||||
services-server "Service.Global-IRC.de";
|
||||
stats-server "Stats.Global-IRC.de";
|
||||
help-channel "#Global-IRC-World";
|
||||
hiddenhost-prefix "GL-IRC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Local-IRC-OP.Global-IRC.de";
|
||||
global "Global-IRC-OP.Global-IRC.de";
|
||||
coadmin "CoAdmin.Global-IRC.de";
|
||||
admin "ServerAdmin.Global-IRC.de";
|
||||
servicesadmin "ServiceAdmin.Global-IRC.de";
|
||||
netadmin "NetworkAdmin.Global-IRC.de";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Global-IRC.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@global-irc.net
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Global-IRC";
|
||||
default-server "irc.global-irc.net";
|
||||
services-server "services.global-irc.net";
|
||||
stats-server "stats.global-irc.net";
|
||||
help-channel "#Global";
|
||||
hiddenhost-prefix "global";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.global-irc.net";
|
||||
global "ircop.global-irc.net";
|
||||
coadmin "coadmin.global-irc.net";
|
||||
admin "admin.global-irc.net";
|
||||
servicesadmin "serviceop.global-irc.net";
|
||||
netadmin "netadmin.global-irc.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* GlobalChat (irc.Globalchat.ca) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 13 March 2001 19:38
|
||||
* Author: WebbyBoy
|
||||
* Email: nykoo@singnet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "GlobalChat";
|
||||
default-server "irc.Globalchat.ca";
|
||||
services-server "services.globalchat.ca";
|
||||
stats-server "services.globalchat.ca";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "GC";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "Locop.AsiaCom.GlobalChat.ca";
|
||||
global "Oper.AsiaCom.GlobalChat.ca";
|
||||
coadmin "CoAdmin.AsiaCom.GlobalChat.ca";
|
||||
admin "Admin.AsiaCom.GlobalChat.ca";
|
||||
servicesadmin "Csop.AsiaCom.GlobalChat.ca";
|
||||
netadmin "NetAdmin.AsiaCom.GlobalChat.ca";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* IceChat (irc.icechat.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 19 February 2002 16:55
|
||||
* Author: Rosco
|
||||
* Email: pssystem@home.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IceChat";
|
||||
default-server "irc.icechat.net";
|
||||
services-server "services.icechat.net";
|
||||
stats-server "stats.icechat.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "00";
|
||||
hosts {
|
||||
local "locop.icechat.net";
|
||||
global "oper.icechat.net";
|
||||
coadmin "coadmin.icechat.net";
|
||||
admin "admin.icechat.net";
|
||||
servicesadmin "csop.icechat.net";
|
||||
netadmin "netadmin.icechat.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "Infinity-IRC.org";
|
||||
default-server "irc.infinity-irc.org";
|
||||
services-server "services.infinity-irc.org";
|
||||
stats-server "stats.infinity-irc.org";
|
||||
help-channel "#Infinity";
|
||||
hiddenhost-prefix "Infinity";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LOCop.Infinity-IRC.org";
|
||||
global "IRCop.Infinity-IRC.org";
|
||||
coadmin "IRCop-CoAdmin.Infinity-IRC.org";
|
||||
admin "IRCop-Admin.Infinity-IRC.org";
|
||||
servicesadmin "IRCop-ServiceAdmin.Infinity-IRC.org";
|
||||
netadmin "IRCop-NetAdmin.Infinity-IRC.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* ROXnet (irc.rox.za.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@roxnet.org
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "IRCsystems";
|
||||
default-server "irc.ircsystems.net";
|
||||
services-server "services.ircsystems.net";
|
||||
stats-server "stats.ircsystems.net";
|
||||
help-channel "#IRCsystems";
|
||||
hiddenhost-prefix "rox";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.ircsystems.net";
|
||||
global "ircop.ircsystems.net";
|
||||
coadmin "coadmin.ircsystems.net";
|
||||
admin "admin.ircsystems.net";
|
||||
servicesadmin "csops.ircsystems.net";
|
||||
netadmin "netadmin.ircsystems.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* Isno (irc.isno.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 11 mars 2001 22:05
|
||||
* Author: Shad
|
||||
* Email: olivier@isno.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Isno";
|
||||
default-server "irc.isno.net";
|
||||
services-server "services.isno.net";
|
||||
stats-server "stats.isno.net";
|
||||
help-channel "#aide";
|
||||
hiddenhost-prefix "isno";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.isno.net";
|
||||
coadmin "coadmin.isno.net";
|
||||
admin "admin.isno.net";
|
||||
servicesadmin "csop.isno.net";
|
||||
netadmin "netadmin.isno.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* l33t-irc.com (irc.l33t-irc.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 January 2002 15:46
|
||||
* Author: [LW]FlOwBiE
|
||||
* Email: flowbie@l33t-irc.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "l33t-irc.com";
|
||||
default-server "irc.l33t-irc.com";
|
||||
services-server "services.l33t-irc.com";
|
||||
stats-server "stats.l33t-irc.com";
|
||||
help-channel "#l33t-irc.com";
|
||||
hiddenhost-prefix "l33t-irc.com";
|
||||
hosts {
|
||||
local "local.l33t-irc.com";
|
||||
global "l33t-irc";
|
||||
coadmin "coadmin.l33t-irc.com";
|
||||
admin "admin.l33t-irc.com";
|
||||
servicesadmin "servicesadmin.l33t-irc.com";
|
||||
netadmin "netadmin.l33t-irc.com";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* LCIrc (irc.lcirc.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 16 June 2001 11:22
|
||||
* Author: RaYmAn
|
||||
* Email: rayman@skumler.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "LCIrc";
|
||||
default-server "irc.lcirc.net";
|
||||
services-server "services.lcirc.net";
|
||||
stats-server "stats.lcirc.net";
|
||||
help-channel "#lcirc";
|
||||
hiddenhost-prefix "lcirc";
|
||||
hosts {
|
||||
local "locop.lcirc.net";
|
||||
global "oper.lcirc.net";
|
||||
coadmin "coadmin.lcirc.net";
|
||||
admin "admin.lcirc.net";
|
||||
servicesadmin "csop.lcirc.net";
|
||||
netadmin "netadmin.lcirc.net";
|
||||
host-on-oper no;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,250 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# makenet v1.0 - generates a network file for UnrealIRCd
|
||||
#
|
||||
# you may freely use this file with any other program as
|
||||
# long as the credits remain intact
|
||||
#
|
||||
# (c) 2000 codemastr (Dominick Meglio) and the UnrealIRCd Team
|
||||
|
||||
VERSION="2.2"
|
||||
DATE=`date "+%d %B %Y %H:%M"`
|
||||
FILE="mynet.network"
|
||||
EXISTS="y"
|
||||
NICK="MyNick"
|
||||
EMAIL="me@mynet.org"
|
||||
NETWORK="My IRC Network"
|
||||
DEFSERV="irc.mynet.org"
|
||||
SERVICES_NAME="services.mynet.org"
|
||||
OPER_HOST="oper.mynet.org"
|
||||
ADMIN_HOST="admin.mynet.org"
|
||||
LOCOP_HOST="locop.mynet.org"
|
||||
CSOP_HOST="csop.mynet.org"
|
||||
NETADMIN_HOST="netadmin.mynet.org"
|
||||
COADMIN_HOST="coadmin.mynet.org"
|
||||
HIDDEN_HOST="hide"
|
||||
NETDOMAIN="mynet.org"
|
||||
HELPCHAN="#help"
|
||||
STATS_SERVER="stats.mynet.org"
|
||||
INAH="1"
|
||||
SUBMIT="y"
|
||||
|
||||
# Checking out how to specify not to make a new line with the current OS
|
||||
c=''
|
||||
n=''
|
||||
2>/dev/null
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ]; then
|
||||
c='\c'
|
||||
else
|
||||
n='-n'
|
||||
fi
|
||||
|
||||
clear
|
||||
echo "Welcome to the UnrealIRCd network file generator"
|
||||
echo "If you need help to set the IRCd up,"
|
||||
echo "mail unreal-support@lists.sourceforge.net or ask"
|
||||
echo "at IRC: /server irc.ircsystems.net, /join #unrealircd"
|
||||
echo ""
|
||||
echo "For any sake, read Unreal.nfo and read doc/faq before asking"
|
||||
echo "questions"
|
||||
echo "[Enter to Begin]"
|
||||
read cc
|
||||
|
||||
echo ""
|
||||
echo "What do you want your network file to be called?"
|
||||
echo $n "[$FILE] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
FILE="$cc"
|
||||
fi
|
||||
|
||||
if [ -f $FILE ]; then
|
||||
echo ""
|
||||
echo "$FILE already exists do you want to override it?"
|
||||
echo $n "[$EXISTS] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EXISTS="$cc"
|
||||
fi
|
||||
case "$EXISTS" in
|
||||
[Nn]*)
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your IRC nickname?"
|
||||
echo $n "[$NICK] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NICK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your email address?"
|
||||
echo $n "[$EMAIL] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
EMAIL="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your IRC network?"
|
||||
echo $n "[$NETWORK] -> $c"
|
||||
read cc
|
||||
if [ ! -z "$cc" ]; then
|
||||
NETWORK="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the default server for your network?"
|
||||
echo $n "[$DEFSERV] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
DEFSERV="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your services server?"
|
||||
echo $n "[$SERVICES_NAME] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
SERVICES_NAME="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host opers will get when they oper up?"
|
||||
echo $n "[$OPER_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
OPER_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host services opers will get when they oper up?"
|
||||
echo $n "[$CSOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
CSOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host admins will get when they oper up?"
|
||||
echo $n "[$ADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
ADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host local opers will get when they oper up?"
|
||||
echo $n "[$LOCOP_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
LOCOP_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host coadmins will get when they oper up?"
|
||||
echo $n "[$COADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
COADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the virtual host netadmins will get when they oper up?"
|
||||
echo $n "[$NETADMIN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETADMIN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What do you want the prefix for the hidden hosts to be?"
|
||||
echo $n "[$HIDDEN_HOST] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HIDDEN_HOST="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's domain name?"
|
||||
echo $n "[$NETDOMAIN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
NETDOMAIN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is your network's help channel?"
|
||||
echo $n "[$HELPCHAN] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
HELPCHAN="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "What is the name of your stats server?"
|
||||
echo $n "[$STATS_SERVER] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
STATS_SERVER="$cc"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Do you want oper's hosts to be changed on /oper?"
|
||||
echo "1 = yes 0 = no"
|
||||
echo $n "[$INAH] -> $c"
|
||||
read cc
|
||||
if [ ! -z $cc ]; then
|
||||
INAH="$cc"
|
||||
fi
|
||||
|
||||
# write the actual conf
|
||||
|
||||
cat > $FILE << __EOF__
|
||||
/*
|
||||
* $NETWORK ($DEFSERV) Network Configuration File
|
||||
*
|
||||
* Added-at: $DATE
|
||||
* Author: $NICK
|
||||
* Email: $EMAIL
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "$NETWORK";
|
||||
default-server "$DEFSERV";
|
||||
services-server "$SERVICES_NAME";
|
||||
stats-server "$STATS_SERVER";
|
||||
help-channel "$HELPCHAN";
|
||||
hiddenhost-prefix "$HIDDEN_HOST";
|
||||
hosts {
|
||||
local "$LOCOP_HOST";
|
||||
global "$OPER_HOST";
|
||||
coadmin "$COADMIN_HOST";
|
||||
admin "$ADMIN_HOST";
|
||||
servicesadmin "$CSOP_HOST";
|
||||
netadmin "$NETADMIN_HOST";
|
||||
__EOF__
|
||||
if [ "$INAH" = "1" ]; then
|
||||
echo " host-on-oper-up yes;" >> $FILE
|
||||
fi
|
||||
if [ "$INAH" = "0" ]; then
|
||||
echo " host-on-oper-up no;" >> $FILE
|
||||
fi
|
||||
echo " };" >> $FILE
|
||||
echo "};" >> $FILE
|
||||
__EOF__
|
||||
|
||||
echo ""
|
||||
echo "" >> ../unrealircd.conf
|
||||
echo "// Added by makenet $DATE" >> ../unrealircd.conf
|
||||
echo "include \"networks/$FILE\";" >> ../unrealircd.conf
|
||||
echo "All done. I have added \"include \"networks/$FILE\"; to your unrealircd.conf"
|
||||
echo "You might want to edit it if you have done makenet before"
|
||||
echo "Thank you for choosing UnrealIRCd"
|
||||
exit
|
||||
@@ -1,38 +0,0 @@
|
||||
/* Networks index file - do not touch please
|
||||
* Please report outdated entries to unreal-networks@lists.sourceforge.net
|
||||
*
|
||||
* NOTE: These networks are in no way affiliated with UnrealIRCd other than the fact
|
||||
* that they use it. The UnrealIRCd Team takes no responsibility for the content
|
||||
* of these networks.
|
||||
*/
|
||||
|
||||
networks/awesomechristians.network: Awesome Christians Chat Network (http://www.awesomechristians.com)
|
||||
networks/axenet.network ..........: AXEnet (http://www.axenet.org)
|
||||
networks/bunker7.network .........: Bunker7 (http://www.bunker7.net)
|
||||
networks/burnnet.network .........: BuRnNET (http://www.burncycl.net)
|
||||
networks/cabonet.network .........: CaboNet (http://www.cabonet.org)
|
||||
networks/chatcrap.network ........: ChatCrap (http://www.chatcrap.com)
|
||||
networks/chatuniverse.network ....: ChatUniverse (http://www.chatuniverse.net)
|
||||
networks/ctcp.network ............: CTCP Networks (http://www.ctcp.net)
|
||||
networks/darkkaos.network ........: Dark Kaos Network (http://www.darkkaos.net)
|
||||
networks/digitalirc.network ......: DigitalIRC (http://www.digitalirc.net)
|
||||
networks/discussioni.network .....: Discussioni.org (http://www.discussioni.org)
|
||||
networks/dragonwings.network .....: DragonWings (http://www.dragonwings.org)
|
||||
networks/gamescafe.network .......: GamesCafe (http://www.gamerscafe.net)
|
||||
networks/german-elite.network ....: German-Elite (http://www.german-elite.net)
|
||||
networks/german-global-irc.network: German Global IRC (http://www.global-irc.de)
|
||||
networks/globalchat.network ......: GlobalChat (http://www.globalchat.ca)
|
||||
networks/global-irc.network ......: Global-IRC (http://www.global-irc.net)
|
||||
networks/icechat.network .........: IceChat (http://www.icechat.net)
|
||||
networks/infinity.network ........: Infinity-IRC.org (http://www.infinity-irc.org)
|
||||
networks/isno.network ............: Isno (http://www.isno.net)
|
||||
networks/l33t-irc.network ........: L33T-IRC (http://www.l33t-irc.com)
|
||||
networks/lcirc.network ...........: LCIrc (http://www.lcirc.net)
|
||||
networks/outsiderz.network .......: Outsiderz (http://www.outsiderz.com)
|
||||
networks/phazenet.network ........: PhazeNet (http://www.phazenet.com)
|
||||
networks/stormdancing.network ....: StormDancing (http://www.stormdancing.net)
|
||||
networks/thainet.network .........: Thai IRC Network
|
||||
networks/unitedirc-org.network ...: Unitedirc (http://www.unitedirc.org)
|
||||
networks/wazzza.network ..........: wazZza (http://www.wazzza.org)
|
||||
networks/x-irc.network ...........: x-irc (http://www.x-irc.net)
|
||||
networks/zirc.network ............: ZiRC (http://www.zirc.org)
|
||||
@@ -1,26 +0,0 @@
|
||||
*
|
||||
* Outsiderz.com (irc.Outsiderz.com) Network Configuration File
|
||||
*
|
||||
* Added-at: 29 January 2002 07:35
|
||||
* Author: DrDeath
|
||||
* Email: DrDeath@hotmail.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Outsiderz.com";
|
||||
default-server "irc.Outsiderz.com";
|
||||
services-server "services.outsiderz.com";
|
||||
stats-server "stats.outsiderz.com";
|
||||
help-channel "#Outsiderz";
|
||||
hiddenhost-prefix "Outsiderz";
|
||||
hosts {
|
||||
local "LocOP.Outsiderz.com";
|
||||
global "IrcOP.Outsiderz.com";
|
||||
coadmin "CoAdmin.Outsiderz.com";
|
||||
admin "Admin.Outsiderz.com";
|
||||
servicesadmin "CsOP.Outsiderz.com";
|
||||
netadmin "NetAdmin.Outsiderz.com";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* PhazeNet (irc.phazenet.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 01 March 2001 02:00
|
||||
* Author: Lady_Rusty
|
||||
* Email: ladyrusty@phazenet.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "PhazeNet";
|
||||
default-server "irc.phazenet.com";
|
||||
services-server "services.phazenet.com";
|
||||
stats-server "stats.phazenet.com";
|
||||
help-channel "#services";
|
||||
hiddenhost-prefix "PhazeNet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.phazenet.com";
|
||||
global "oper.phazenet.com";
|
||||
coadmin "coadmin.phazenet.com";
|
||||
admin "admin.phazenet.com";
|
||||
servicesadmin "csop.phazenet.com";
|
||||
netadmin "netadmin.phazenet.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,20 +0,0 @@
|
||||
set {
|
||||
network-name "tormdancing.Net";
|
||||
default-server "irc.stormdancing.net";
|
||||
services-server "Services.Stormdancing.Net";
|
||||
stats-server "stats.ircnet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Stormdancing";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOp.Stormdancing.Net";
|
||||
global "IRCop.Stormdancing.Net";
|
||||
coadmin "CoAdmin.Stormdancing.Net";
|
||||
admin "Admin.Stormdancing.Net";
|
||||
servicesadmin "ServiceOp.Stormdancing.Net";
|
||||
netadmin "NetAdmin.Stormdancing.Net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
|
||||
|
||||
set {
|
||||
network-name "IRC"; // sets the name of your network
|
||||
default-server "irc.ircnet.org"; // sets the address of your default server (like irc.dal.net)
|
||||
services-server "services.ircnet.org"; // sets the name of your services server
|
||||
stats-server "stats.ircnet.org"; // sets the name of your stats server
|
||||
help-channel "#IRC"; // sets the name of your help channel
|
||||
hiddenhost-prefix "mpx"; // sets the prefix for the hidden hosts
|
||||
prefix-quit "Quit:"; // sets the first word to be used in a quit message
|
||||
hosts {
|
||||
local "locop.ircnet.org"; // sets the host to be given to locops
|
||||
global "ircop.ircnet.org"; // sets the host to be given to global ops
|
||||
coadmin "coadmin.ircnet.org"; // sets the host to be given to coadmins
|
||||
admin "admin.ircnet.org"; // sets the host to be given to admins
|
||||
servicesadmin "serviceop.ircnet.org"; // sets the host to be given to services admins
|
||||
netadmin "netadmin.ircnet.org"; // sets the host to be given to netadmins
|
||||
host-on-oper-up "off"; // sets whether to assign the hosts on oper up
|
||||
};
|
||||
};
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "Thai IRC Network";
|
||||
default-server "irc.thai.com";
|
||||
services-server "services.thai.com";
|
||||
stats-server "stats.thai.com";
|
||||
help-channel "#Services";
|
||||
hiddenhost-prefix "ThaiNet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.thai.com";
|
||||
global "ircop.thai.com";
|
||||
coadmin "coadmin.thai.com";
|
||||
admin "admin.thai.com";
|
||||
servicesadmin "serviceop.thai.com";
|
||||
netadmin "netadmin.thai.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Unitedirc (irc.unitedirc.org) Network Configuration File
|
||||
*
|
||||
* Added-at: 09 May 2001 12:25
|
||||
* Author: sjowie
|
||||
* Email: sjowie@unitedirc.org
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Unitedirc";
|
||||
default-server "irc.unitedirc.org";
|
||||
services-server "cservices.unitedirc.org";
|
||||
stats-server "stats.unitedirc.org";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "unhide";
|
||||
hosts {
|
||||
local "locop.unitedirc.org";
|
||||
global "oper.unitedirc.org";
|
||||
coadmin "coadmin.unitedirc.prg";
|
||||
admin "admin.unitedirc.org";
|
||||
servicesadmin "csop.unitedirc.org";
|
||||
netadmin "netadmin.unitedirc.org";
|
||||
host-on-oper yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Unreal-Team () Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 14 July 1999 00:00 GMT
|
||||
* Author: Stskeeps (Carsten Munk)
|
||||
* E-Mail: stskeeps@tspre.org
|
||||
* $Id$
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "TESTnet";
|
||||
default-server "irc.testnet.ircsystems.net";
|
||||
services-server "services.testnet.ircsystems.net";
|
||||
stats-server "stats.testnet.ircsystems.net";
|
||||
help-channel "#testnet";
|
||||
hiddenhost-prefix "unreal";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.testnet.ircsystems.net";
|
||||
global "ircop.testnet.ircsystems.net";
|
||||
coadmin "coadmin.testnet.ircsystems.net";
|
||||
admin "admin.testnet.ircsystems.net";
|
||||
servicesadmin "csops.testnet.ircsystems.net";
|
||||
netadmin "netadmin.testnet.ircsystems.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user