1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-13 07:34:46 +02:00

123 Commits

Author SHA1 Message Date
Bram Matthys b1aae19ed5 Huh? Guess this 'branch protection' thing from GitHub isn't working. 2016-12-05 10:11:26 +01:00
Bram Matthys f31a55eaaa Cleanup src/Makefile as per ohnobinki's suggestion in #3979. 2016-12-05 10:07:16 +01:00
Bram Matthys ce27d8d8ed Accidental commit to 3.2.x branch. Reverting. 2016-12-05 09:44:12 +01:00
Bram Matthys 25af5338e3 Merge pull request #62 from Adam-/master+svsmoded
Services coders: you can now set "SVSMODE Nick +d" to set the 'deaf' user mode. Note that "SVSMODE Nick +d svsidhere" also still works.
This should be a harmless change, unless some services packages are accidentally trying to set emtpy svsids like "SVSMODE Nick +d "... if you do, then the target nick will be deaf now..
2016-12-05 09:40:29 +01:00
Adam 1e7391b9ba m_svsmode.c: allow setting +d 2016-09-14 20:36:10 -04:00
Bram Matthys 91e5639a77 3.2.10.7 2016-09-03 20:50:01 +02:00
Bram Matthys fb629bd489 Fix AUTHENTICATE bug (SASL) 2016-09-03 20:09:12 +02:00
Bram Matthys f72a982a82 Add dialog box. That should be the last change for 3.2.10.6. I hope. 2015-12-11 10:32:54 +01:00
Bram Matthys 059605c341 Update example.*conf: those are not for 'Unreal3.2 and higher' but 'Unreal3.2.x' 2015-12-11 10:17:25 +01:00
Bram Matthys 07ad68e3d4 .6 yes 2015-12-11 10:08:41 +01:00
Bram Matthys 0fa129325e UnrealIRCd 3.2.10.6 release 2015-12-11 10:05:50 +01:00
Bram Matthys 46314dc3bb Add red header saying this documentation is about UnrealIRCd 3.2.x and refer to the UnrealIRCd 4 documentation. 2015-11-09 17:11:21 +01:00
Bram Matthys 78f1540ec5 UnrealIRCd 3.2.10.5 release 2015-08-16 15:05:42 +02:00
Bram Matthys b7e579df89 Self-signed certificates generated with 'make pem' are now 4096 bits and valid for 10 years. Also use SHA256 for signing. 2015-05-18 12:22:23 +02:00
Bram Matthys 1f9f12660a init_ctx_client() was accidentally setting options on ctx_server. Reported by Jobe (#4346). 2015-05-18 12:06:49 +02:00
Bram Matthys af0e823116 Fix out-of-bounds read in parse_.._netmask. Reported by dg (#4349).
Function was sometimes reading 1 byte before the actual string.
2015-05-18 11:37:43 +02:00
Bram Matthys 18c617bb35 Modules can now simply include "unrealircd.h" rather than include
various files in a specific order and risk missing one.
2015-04-25 13:36:05 +02:00
Bram Matthys 3b25ba5aed Fix build with LibreSSL / Detect missing RAND_egd. Patch from Bernard Spil. 2015-04-06 10:44:56 +02:00
Bram Matthys 506870ec86 In m_svsnick the HOOKTYPE_LOCAL_NICKCHANGE is called later than in m_nick,
this means that if you hook this in a module and then send something from
the hooked function to other servers it may cause a KILL from another server
since the nick may already be changed (Ghost kill). For example if you
send a MODE or something else. Subsequent kill chasing would cause the
victim to be killed.
2015-04-06 10:16:30 +02:00
Travis McArthur 82781bc3a9 Merge pull request #11 from Adam-/master+svsnick
Ignore svsnicks when the new nick is the same as the old one
2014-08-26 08:12:28 -07:00
Adam 0602bf1991 Ignore svsnicks when the new nick is the same as the old one 2014-08-26 10:37:32 -04:00
Travis McArthur 7eae9f8ffd Merge pull request #10 from Adam-/master+cidr
Fix core from parse_v4_netmask parsing invalid cidrs
2014-08-14 12:47:20 -07:00
Adam 53616c9ec5 Fix core from parse_v4_netmask parsing invalid cidrs 2014-08-06 04:10:03 -04:00
Bram Matthys 37a6cf430b undo head 2014-07-28 11:28:31 +02:00
Bram Matthys 9ca203c1c6 report as 3.2.10.4 on windows 2014-07-26 17:34:00 +02:00
Bram Matthys ea2caffdf1 Update curl-ca-bundle from Dec 29 20:03:40 2012 to Tue Jul 15 08:33:20 2014 2014-07-26 17:25:08 +02:00
Bram Matthys 9ccf8250fc 3.2.10.4 2014-07-26 17:21:39 +02:00
Bram Matthys 976a6eb116 Fix compile errors when building with clang instead of gcc, which is more
and more becoming the default nowadays such as on FreeBSD.
Reported by QIXOZL (#4239). Backported the patch from Heero.
2014-07-06 16:00:09 +02:00
Bram Matthys 61f94bd6d8 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 channel mode +M (only registered users may speak and
+R (only registered users may join) are concerned. Same for user mode +R
(only allow private messages from registered users).
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
      introduce security issues with older services using servicetimestamp
      for nick tracking or other means.
This issue was reported by ShawnSmith (#4318).
2014-07-05 14:05:23 +02:00
Bram Matthys 082b9c58db update version to .3 2014-05-31 20:48:42 +02:00
Bram Matthys d2a544bc17 Prepare for 3.2.10.3 2014-05-31 10:24:06 +02:00
Bram Matthys 2df6ad48be Fix crash if SASL is enabled and ping-cookie is disabled (neither are the
default). Reported by fbi (#4307).
2014-05-30 11:32:18 +02:00
Bram Matthys 625483821a Fix './unreal backtrace': on more recent gdb versions or in languages other
than English not always all tmp/*.so files were added. Therefore the
backtrace was often (much) less informative. We now use a different method.
2014-03-30 15:57:16 +02:00
AngryWolf 7186af38f0 Updated unreal32docs.hu.html to changes till Mon, 20 Jan 2014 22:10:27 +0100. 2014-02-02 11:23:12 +01:00
Bram Matthys 4a7c15b6b0 Add donator 2014-02-01 12:51:07 +01:00
Ouadie Akrour 4c8c5da383 Spanish doc: Added set::spamfilter::stop-on-first-match [yes|no] 2014-01-27 15:09:38 +00:00
Serkan Sepetci 5cbcd7be86 Added set::spamfilter::stop-on-first-match [yes|no] 2014-01-26 17:57:15 +02:00
Thomas Fargeix c3538b357b French doc: Added set::spamfilter::stop-on-first-match (r5476) 2014-01-25 14:28:10 +01:00
Bram Matthys 64c347f828 Added set::spamfilter::stop-on-first-match [yes|no]:
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.
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).
2014-01-20 22:10:27 +01:00
Bram Matthys 32fff791bd Added SVIDLEN so this value is now separate from NICKLEN. Previously if you
would lower NICKLEN to 9 then services timestamps would be cut off. Reported
by Jobe (#4248).
2014-01-12 16:40:55 +01:00
Bram Matthys 26dc7cbb31 When you specified more than 4 servers in set::timesynch::server you could
experience weird issues such as a flood of 'Cannot accept connections:
invalid argument' messages. Reported by hyper_threader (#4242).
2014-01-12 11:26:29 +01:00
Bram Matthys 1e3e46d4de For silenced users we will now only check the current nick!user@host,
suggested by Stevie (#2226).
2014-01-12 11:15:45 +01:00
Bram Matthys a1bdaa440d Fix possible SASL crash caused by remote server, reported by grawity
(#4219).
2014-01-12 10:40:28 +01:00
Bram Matthys 49b34a6cab Fix compile problem on OS X 10.9, reported and patch provided by
JustinTArthur (#4251).
2014-01-12 10:20:04 +01:00
Bram Matthys 0fa5dec7d7 Secure server to server links were previously hardcoded at SSLv3. This has
been fixed to be 'SSLv3 or later'.  In practice this means that you will now
see a lot more server-to-server links using TLSv1.2.
2014-01-09 21:39:36 +01:00
Thomas Fargeix b16af31e83 French doc: +d umode description update (r5460) 2014-01-03 23:20:54 +01:00
Bram Matthys 6bf05cee61 cares fix (old?) 2013-12-19 18:16:10 +01:00
Bram Matthys 50de952e0b added two donators 2013-12-19 18:15:04 +01:00
Bram Matthys 49b2d6d832 added two donators 2013-12-19 18:14:03 +01:00
Serkan Sepetci 859fb60904 Doc changes detected for help.tr.conf 2013-12-07 13:54:32 +02:00
Serkan Sepetci 2f758a59ac reorganized 2013-12-06 01:05:49 +02:00
Serkan Sepetci 74346e4b40 Last update version 2013-12-06 00:48:01 +02:00
Nathan Phillip Brink 5adf4d7e5b Describe how channel mode +d (Deaf) still intentionally allows bot commands through, thanks Dan39. 2013-12-05 05:20:51 +00:00
Nathan Phillip Brink 0a67350cd0 Allow set::channel-command-prefix to be an empty string. 2013-12-05 05:19:45 +00:00
Nathan Phillip Brink 0f0767d4de Update .hgignore to cover more of autotools and support testing unrealircd by running it out of the repository directory directly. 2013-12-05 05:14:06 +00:00
Bram Matthys 8d7b9fca49 Fix curlinstall script (updated c-ares version) 2013-11-25 20:35:16 +01:00
Bram Matthys 00fd88ff0c Added tag unreal3_2_10_2 for changeset ab013c6c5a79 2013-11-24 20:23:56 +01:00
Bram Matthys f17eca1154 fixed typo preventing a compile, reported by rfrederick (#4245). 2013-11-24 20:22:56 +01:00
Bram Matthys 41019fb446 Removed tag unreal3_2_10_2 2013-11-24 20:21:54 +01:00
Bram Matthys 4b2a9d125a Added tag unreal3_2_10_2 for changeset 90da005ec35a 2013-11-24 16:18:32 +01:00
Bram Matthys bb545c7cbe Fix for OS X so it can actually compile. Reported by QIXOZL (#4236). 2013-11-24 11:30:18 +01:00
Bram Matthys 297c176886 When you use -D or -I in CFLAGS the bundled c-ares configure script
now no longer errors. Reported by QIXOZL (#4244). An attempt for a
more proper fix will be made later.
2013-11-24 11:23:54 +01:00
Bram Matthys dd18157ad0 Removed tag unreal3_2_10_2 2013-11-24 11:15:59 +01:00
Bram Matthys 78b9966a5c Added tag unreal3_2_10_2 for changeset 914db8ce9bd5 2013-11-23 11:31:04 +01:00
Bram Matthys 7acc5aac6e Update win32 installer 2013-11-22 22:36:36 +01:00
Bram Matthys 870eb8710f Update win32 version suffix 2013-11-22 22:35:24 +01:00
Bram Matthys 3091752196 Update curl-ca-bundle with a more recent version 2013-11-22 22:16:53 +01:00
Bram Matthys 5d9cb664b7 Update release notes.. 2013-11-22 22:08:55 +01:00
Bram Matthys 19a8b15b01 Small watch fix 2013-11-22 21:58:01 +01:00
Bram Matthys 47ab99a833 Update release notes 2013-11-22 21:39:19 +01:00
Bram Matthys 9bb05733c8 update release notes 2013-11-20 16:09:07 +01:00
Bram Matthys d5d6ace2e1 Windows installer: require Visual Studio 2012 Redist. package
Unfortunately we can no longer auto-download so we send the user
to a microsoft.com page when the package seems not installed.
Hopefully most users will have it installed though...
2013-11-20 13:49:25 +01:00
Bram Matthys b7bd436b7f autoconf 2013-11-20 12:54:46 +01:00
Bram Matthys f011199ea5 Update c-ares library to 1.10.1 2013-11-20 12:53:19 +01:00
Bram Matthys 2b2308dcdc update version 2013-11-20 12:48:12 +01:00
Bram Matthys d8645f710d Various fixes, more info later. 2013-11-20 12:44:26 +01:00
Thomas Fargeix 50afecfaa7 French doc: fix typos 2013-09-23 23:17:45 +02:00
Serkan Sepetci f18b7e8df1 Translation of the help.tr.conf 2013-05-27 10:13:45 +03:00
Bram Matthys 167a83f7d2 This one is better, and actually compiles ;) 2013-05-10 19:32:14 +02:00
Bram Matthys 3c423d31d2 Fix strange issue where linking didn't work because UnrealIRCd would
bind to (for example) the loopback interface before connecting to the
remote server.
In addition to that, we now don't bind() at all when bind-ip is not
present or is set to "*".
2013-05-10 19:27:36 +02:00
Ouadie Akrour 3fd9fc9846 Re Update the documentation 2013-04-05 21:26:09 +00:00
Bram Matthys a06a748214 Added tag unreal3_2_10_1 for changeset 15542aa9f0d2 2013-04-05 16:25:43 +02:00
Bram Matthys 3e19dc1a8b add .1 suffix to setup.h for Windows. 2013-04-05 16:25:35 +02:00
Bram Matthys 60c880834b Removed tag unreal3_2_10_1 2013-04-05 16:25:16 +02:00
Bram Matthys b5bcf6605e Added tag unreal3_2_10_1 for changeset 0e7e08cf2b35 2013-04-05 16:23:52 +02:00
Bram Matthys ccab872222 Bump version and update date in docs. Add Windows 7. Remove Windows 2000 as
it apparently no longer works (#4180).
2013-04-05 16:15:04 +02:00
Bram Matthys 193b044615 mention doc updates in release notes 2013-04-05 16:09:33 +02:00
Bram Matthys 268373635a Bump version to 3.2.10.1 & update release notes. 2013-04-05 16:08:33 +02:00
Bram Matthys 0362f9c765 Custom modules: move EXLIBS= so shared libraries are always linked.
Reported by DE_Glen (#4182).
2013-04-05 15:36:23 +02:00
Bram Matthys ff5e6a1a0c - Windows: Fix strange linking bug. Outgoing connects from a Windows
IRCd caused a garbled SERVER protocol message, causing 'cannot find
  server' errors and killing of users. Reported by Sunkat (#4183).
2013-04-04 23:07:04 +02:00
William Pitcock f0167d1284 - Pull in poll(2) stuff before any other ircd include files. (#4155)
This allows us to successfully build on systems where pulling in poll.h
  pollutes the code with a broken form of ctypes.h due to a few reasons, not
  limited to, but including, usage of non-namespaced macros which clash with
  our own.
2013-01-14 02:12:43 -06:00
Bram Matthys 7530ce6b29 - Don't remove oper-modes such as +S from non-local clients. Reported by
Magiobiwan (#4166). This caused an issue with bots from anope BotServ
  where user modes +Sq were stripped by the IRCd.
2013-02-19 19:31:30 +01:00
Thomas Fargeix 77ccd6b9dd Update French doc about set::dns::nameserver (r3623cab602e7) 2013-02-13 22:33:12 +01:00
Serkan Sepetci 780a9c4878 Re Update the documentation about set::dns::nameserver 2013-02-10 03:19:03 +02:00
Serkan Sepetci 1a3175f4e7 Update the documentation about set::dns::nameserver 2013-02-10 03:13:20 +02:00
AngryWolf 6d93e605f3 Missed to translate a change from Wed Jul 13 22:36:04 2011 -0400 (19 months ago). 2013-02-04 22:17:42 +01:00
AngryWolf 939b8797e4 Translated changes of the last 5 months (from Fri Aug 17 10:40:23 2012 +0200). 2013-02-04 22:07:19 +01:00
AngryWolf ee775f3e2e Missed to translate a change from Wed Jul 13 23:32:05 2011 -0400 (19 months ago). 2013-02-04 20:28:17 +01:00
AngryWolf 9b296df76c Translated changes from Sat Oct 06 12:48:21 2012 +0200 (4 months ago). 2013-02-04 19:56:00 +01:00
Ouadie Akrour c2d75396da - Update the unreal32doc.es about set::dns::nameserver 2013-02-02 01:37:16 +00:00
Nathan Phillip Brink b1a396ad2b - Update the documentation about set::dns::nameserver to reflect reality (that the setting is only used if c-ares can’t read /etc/resolv.conf). 2013-01-27 05:59:50 +00:00
Bram Matthys c5866e2a80 allow channel: Permit multiple channel items in one block again, was broken by patch from #4125. 2013-01-11 19:05:36 +01:00
Ouadie Akrour cdd354c306 Reupdated unreal32docs.es 2013-01-11 00:26:55 +00:00
Bram Matthys d262f6f5e3 '/rehash -global' did often not rehash all servers. Reported by Cronus (#4143). 2013-01-09 19:41:18 +01:00
Ouadie Akrour 97e3d6a2ce Updated unreal32docs.es 2013-01-02 00:52:36 +00:00
Bram Matthys 9157912636 Added tag unreal3_2_10 for changeset fe153e789040 2012-12-28 17:03:36 +01:00
Bram Matthys 86287db434 Removed tag unreal3_2_10 2012-12-28 17:03:32 +01:00
Bram Matthys 04820fda45 Fix duplicate user@host in away-notify and account-notify, reported by grawity (#4153). 2012-12-28 17:01:05 +01:00
Bram Matthys 42cb9fc22a Added tag unreal3_2_10 for changeset f0c4b60ec111 2012-12-26 15:51:46 +01:00
Bram Matthys 70e06587f9 Removed tag unreal3_2_10 2012-12-26 15:51:41 +01:00
Bram Matthys 614d980596 If you are running the IRCd as root and use IRC_USER/IRC_GROUP then we now
change ownership of the log file to that user/group so it can still write
after the setuid(). Reported by asmadeus (#4152).
2012-12-26 15:51:26 +01:00
Bram Matthys 4c93c3d197 Added tag unreal3_2_10 for changeset 7bf37138e074 2012-12-25 16:56:23 +01:00
Bram Matthys 85db29488f last update of release notes 2012-12-25 16:55:57 +01:00
Bram Matthys 0178632529 Update contributors in /INFO 2012-12-25 11:31:11 +01:00
Bram Matthys 9774805c00 bump version in docs & Unreal.nfo 2012-12-25 10:54:10 +01:00
Bram Matthys 8589555273 Bump version in all source/include/text files 2012-12-25 10:53:12 +01:00
Ouadie Akrour 08d55f0d5e re-updated Spanish documentation 2012-12-05 22:53:44 +00:00
Serkan Sepetci bd865e7a65 re-updated unreal32docs.tr 2012-11-26 21:34:00 +02:00
Serkan Sepetci 537e104611 Updated unreal32docs.tr 2012-11-26 21:21:32 +02:00
Ouadie Akrour 5d25b1b0d5 Updated Spanish documentation 2012-11-26 02:09:11 +00:00
Ouadie Akrour ee4708774a Updated Spanish documentation 2012-11-26 02:03:12 +00:00
Ouadie Akrour be4e63ac89 Updated Spanish documentation 2012-11-24 15:34:43 +00:00
Bram Matthys 139b5e9831 Update ./createchangelog to make it only show changes on default branch. 2012-11-23 19:52:07 +01:00
78 changed files with 1935 additions and 1594 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for Unreal3.2.10-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.
+88 -10
View File
@@ -1,17 +1,94 @@
Unreal3.2.10-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, then make sure you run 'make clean' and
'./Config' first, before running '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/
- 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/
- 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. There have been 79 changes in
total, for the full list of changes see the Changelog.
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 ]==
- Improved socket engine. This brings some performance improvements and
@@ -60,7 +137,8 @@ Unreal3.2.10-rc1 Release Notes
certificate. The certificate is then copied when you run 'make install'.
==[ MAJOR BUGS FIXED ]==
- None?
- Windows SSL crash (this issue was already fixed in 3.2.9-SSL-fix)
- Other than that, none?
==[ MINOR BUGS FIXED ]==
- Various compile problems, in particular with remote includes enabled.
@@ -83,4 +161,4 @@ Unreal3.2.10-rc1 Release Notes
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
+13
View File
@@ -7,12 +7,25 @@ syntax: regexp
^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
+1
View File
@@ -4,3 +4,4 @@ history.
Simply run the following command to generate this 'Changes' file:
./createchangelog
- COMMENT (#4251).
+23
View File
@@ -372,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=""
@@ -409,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
+3 -3
View File
@@ -233,13 +233,13 @@ install: all
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
+2 -5
View File
@@ -1,5 +1,5 @@
===============================================
= UnrealIRCd v3.2.10-rc1 =
= UnrealIRCd v3.2.10.7 =
===============================================
This release was brought to you by:
@@ -13,6 +13,7 @@
Contributors:
=============
* Heero
* nenolod
* Adam
* warg
@@ -24,10 +25,6 @@
* fbi
* Apocalypse
RC Testers:
===========
<<TODO>>
Previous coders:
================
* Stskeeps
Vendored
+63 -16
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for unrealircd 3.2.10-rc1.
# Generated by GNU Autoconf 2.69 for unrealircd 3.2.10.7.
#
# Report bugs to <http://bugs.unrealircd.org/>.
#
@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='unrealircd'
PACKAGE_TARNAME='unrealircd'
PACKAGE_VERSION='3.2.10-rc1'
PACKAGE_STRING='unrealircd 3.2.10-rc1'
PACKAGE_VERSION='3.2.10.7'
PACKAGE_STRING='unrealircd 3.2.10.7'
PACKAGE_BUGREPORT='http://bugs.unrealircd.org/'
PACKAGE_URL='http://unrealircd.org/'
@@ -1282,7 +1282,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures unrealircd 3.2.10-rc1 to adapt to many kinds of systems.
\`configure' configures unrealircd 3.2.10.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1343,7 +1343,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of unrealircd 3.2.10-rc1:";;
short | recursive ) echo "Configuration of unrealircd 3.2.10.7:";;
esac
cat <<\_ACEOF
@@ -1481,7 +1481,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
unrealircd configure 3.2.10-rc1
unrealircd configure 3.2.10.7
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2087,7 +2087,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by unrealircd $as_me 3.2.10-rc1, which was
It was created by unrealircd $as_me 3.2.10.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3874,6 +3874,48 @@ if test "x$ac_cv_lib_nsl_inet_ntoa" = xyes; then :
INETLIB="-lnsl"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RAND_egd in -lcrypto" >&5
$as_echo_n "checking for RAND_egd in -lcrypto... " >&6; }
if ${ac_cv_lib_crypto_RAND_egd+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypto $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char RAND_egd ();
int
main ()
{
return RAND_egd ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_crypto_RAND_egd=yes
else
ac_cv_lib_crypto_RAND_egd=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_RAND_egd" >&5
$as_echo "$ac_cv_lib_crypto_RAND_egd" >&6; }
if test "x$ac_cv_lib_crypto_RAND_egd" = xyes; then :
$as_echo "#define HAVE_RAND_EGD 1" >>confdefs.h
fi
@@ -6356,7 +6398,7 @@ fi
hold_cflags=$CFLAGS
CFLAGS="$CFLAGS -export-dynamic"
CFLAGS="$CFLAGS -Wl,-export-dynamic"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need the -export-dynamic flag" >&5
$as_echo_n "checking if we need the -export-dynamic flag... " >&6; }
if ${ac_cv_export_dynamic+:} false; then :
@@ -6398,7 +6440,7 @@ if test "$ac_cv_c_compiler_gnu" = "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"
@@ -6585,6 +6627,7 @@ export PATH_SEPARATOR
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -6754,6 +6797,7 @@ if test -n "$TRE_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_TRE_CFLAGS=`$PKG_CONFIG --cflags "tre >= 0.7.5" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -6770,6 +6814,7 @@ if test -n "$TRE_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_TRE_LIBS=`$PKG_CONFIG --libs "tre >= 0.7.5" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -6789,9 +6834,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
TRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "tre >= 0.7.5" 2>&1`
TRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "tre >= 0.7.5" 2>&1`
else
TRE_PKG_ERRORS=`$PKG_CONFIG --print-errors "tre >= 0.7.5" 2>&1`
TRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "tre >= 0.7.5" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$TRE_PKG_ERRORS" >&5
@@ -6833,7 +6878,7 @@ fi
if test "x$with_system_cares" = "xno"; then :
cares_version="1.9.1"
cares_version="1.10.0"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: extracting c-ares resolver library" >&5
$as_echo "extracting c-ares resolver library" >&6; }
cur_dir=`pwd`
@@ -6905,6 +6950,7 @@ if test -n "$CARES_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CARES_CFLAGS=`$PKG_CONFIG --cflags "libcares >= 1.6.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -6921,6 +6967,7 @@ if test -n "$CARES_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CARES_LIBS=`$PKG_CONFIG --libs "libcares >= 1.6.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -6940,9 +6987,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libcares >= 1.6.0" 2>&1`
CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcares >= 1.6.0" 2>&1`
else
CARES_PKG_ERRORS=`$PKG_CONFIG --print-errors "libcares >= 1.6.0" 2>&1`
CARES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcares >= 1.6.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$CARES_PKG_ERRORS" >&5
@@ -7626,7 +7673,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by unrealircd $as_me 3.2.10-rc1, which was
This file was extended by unrealircd $as_me 3.2.10.7, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -7689,7 +7736,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
unrealircd config.status 3.2.10-rc1
unrealircd config.status 3.2.10.7
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
+6 -4
View File
@@ -10,7 +10,7 @@ dnl Unreal.nfo
dnl .CHANGES.NEW
dnl src/version.c.SH
AC_INIT([unrealircd], [3.2.10-rc1], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
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])
@@ -93,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)
@@ -107,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
@@ -119,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"
@@ -610,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.9.1"
cares_version="1.10.0"
AC_MSG_RESULT(extracting c-ares resolver library)
cur_dir=`pwd`
cd extras
+2 -1
View File
@@ -5,6 +5,7 @@
# changelog too much.
hg log -r a673dd0f7b37: --style changelog --template '[{date|shortdate}] {author} ({node|short}):\n- {desc}\n\n' \
-X 'doc/unreal32docs.*.html' -X 'doc/help.*.conf' -X 'doc/example.*.conf' -X 'include/version.h'|sed 's/^- - /- /g' >Changes
-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"
+868 -989
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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.9.1"
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)"
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -2,7 +2,7 @@
* example.conf por Danial Hawton, alias Osiris (osiris@unrealircd.org).
* Traducido al castellano por Severus_Snape (javiersnape@gmail.com).
*
* Funciona desde Unreal3.2 hacia adelante
* 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
+1 -1
View File
@@ -5,7 +5,7 @@
* 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
+54 -2
View File
@@ -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
View File
@@ -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
View File
@@ -5,7 +5,7 @@
*
* (Encoding): Windows-1251
*
* Работает для Unreal3.2 и выше
* Работает для Unreal3.2.x
*
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
+1 -1
View File
@@ -4,7 +4,7 @@
* Önceki Çevirmen: Mustafa "Ironic" Cakmak (ironic@unrealircd.org)
* Türkçe Çeviri: Serkan Sepetçi (diablo@unrealircd.org)
*
* Unreal3.2 ve üstü sürümler için kullanılmaktadır
* Unreal3.2.x sürümler için kullanılmaktadır
*
* Peki beyler. Bu example.conf dosyasının yenisi. C++ türüne çok benziyor.
* Neyse şimdi bunun üstesinden gelme zamanı. Başlangıçta zor gelebilir, fakat
+1 -1
View File
@@ -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)";
+1 -1
View File
@@ -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)";
+9 -3
View File
@@ -17,6 +17,12 @@
</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.hu.html">Hungarian</a> |
<a href="unreal32docs.fr.html">French</a> |
@@ -27,7 +33,7 @@
<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.10-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>
@@ -217,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>
+26 -7
View File
@@ -20,6 +20,12 @@
<!-- $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.hu.html">Hungarian</a> |
@@ -30,8 +36,8 @@ Spanish
<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.10</font><br>
<b>Ultima actualizacion del doc:</b> 2012-11-11</div>
<font size="4">Version: 3.2.10.5</font><br>
<b>Ultima actualizacion del doc:</b> 2013-04-05</div>
<br>
<b>Programador jefe/mantenimiento:</b> Syzop<br>
<b>Programadores:</b> binki<br>
@@ -39,6 +45,8 @@ Spanish
WolfSage, McSkaf, Zogg, NiQuiL, assyrian, chasm, DrBin, llthangel,
Griever, nighthawk<br>
<b>Documentacion:</b> CKnight^ (documentacion inicial), Syzop (reescritura importante), codemastr, y mas contribuidores<br>
<b>Traducci&oacute;n al espa&ntilde;ol:</b> <a href="mailto:unknOwn@unrealircd.com">Crash</a><br>
<b>Traducci&oacute;n anterior:</b> Trocotronic (<a href="irc://irc.redyc.com/">irc.redyc.com</a>)<br>
<p>Para ver esta documentacion necesita un navegador compatible, cualquiera. Docs actualizados estan
disponibles en <a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
y el FAQ en <a href="http://www.vulnscan.org/UnrealIRCd/faq/" TARGET="_blank">http://www.vulnscan.org/UnrealIRCd/faq/</a>.
@@ -64,7 +72,7 @@ Spanish
-- 3.13. <a href="#feature_bantypes">Tipos de ban</a><br>
-- 3.14. <a href="#feature_spamfilter">Filtro de spam</a><br>
-- 3.15. <a href="#feature_cidr">CIDR</a><br>
-- 3.16. <a href="#feature_nickchars">Configuraion de caracteres de nick</a><br>
-- 3.16. <a href="#feature_nickchars">Configuracion de caracteres de nick</a><br>
-- 3.17. <a href="#feature_cgiirc">Soporte para CGI:IRC</a><br>
-- 3.18. <a href="#feature_timesync">Tiempo de sincronizacion</a><br>
-- 3.19. <a href="#feature_authtypes">Tipos de autentificacion</a><br>
@@ -182,9 +190,9 @@ Windows:<br>
</ul>
<li><b>Versiones Windows:</b>
<ul>
<li>Windows 2000 (Pro, Server, Advanced Server)
<li>Windows XP (Home, Pro)
<li>Windows 2003
<li>Windows 7
</ul>
<li><b>Arquitecturas probadas:</b>
<ul>
@@ -322,7 +330,7 @@ Windows:<br>
<p><font size="+2"><b>3.12 - Características anti-flood</b></font><a name="feature_antiflood"></a></p><div class="desc">
<p>
<b>Throttling</b><br>
Throttling es un método que le permite fijar un límite de cuántas veces pueden los usuarios conectarse y desconectarse de su servidor. Puede configurarlo en el bloque set::throttle para permitir X conexiones en YY segundos para la misma IP.<br>
Throttling es un método que le permite fijar un límite de cuántas veces pueden los usuarios conectarse y desconectarse de su servidor. Puede configurarlo en el bloque set::throttle para permitir ciertas conexiones en tantos segundos para la misma IP.<br>
<b>Modos de canal</b><br>
Existen varios modos de canal para prevenir ataques. Algunos son:<br>
<b>K</b> = no /knock, <b>N</b> = no cambios de nick, <b>C</b> = no CTCPs, <b>M</b> = sólo usuarios reigstrados (+r) pueden hablar, <b>j</b> = join throttling (por usuario)<br>
@@ -428,7 +436,7 @@ Estos bans especifican qué acciones se ven afectadas por una prohibición:<br>
<i>Ej: ~q:*!*@blah.blah.com</i></td></tr>
<tr><td>~n</td><td>cambionick</td><td>Los usuarios que coincidan con este ban no podrán cambiarse el nick, a menos que tenga +v o superior. <i>Ej: ~n:*!*@*.aol.com</i></td></tr>
<tr><td>~j</td><td>join</td><td>Los usuarios que coincidan con este ban no podrán entrar al canal.
He may perform all other activities if he is already on the channel, such as speaking and changing his nick.
Puede realizar todas las demás actividades, si ya está en el canal, tales como hablar y cambiar su nick.
<i>Ej: ~j:*!*@*.aol.com</i><br>
Podría ser útil para evitar que entren las personas con un mismo ISP, y que sean capaces de hablar/cambiar de nick libremente una vez en el canal, como después de un /INVITE.</td></tr>
</table>
@@ -2443,7 +2451,8 @@ set {
<p><font class="set">set::dns::retries &lt;numero-de-intentos&gt;;</font><br>
Número de intentos si el servidor DNS no obtiene respuesta (NO IMPLEMENTADO).</p>
<p><font class="set">set::dns::nameserver &lt;nombre-de-dns-server&gt;;</font><br>
Especifica el host del servidor a usar en las búsquedas DNS (NO IMPLEMENTADO).</p>
Especifica la dirección IP del servidor que se utilizará en las búsquedas DNS.
Sólo se utiliza como reserva para cuando c-ares es incapaz de adivinar los servidores de nombres.</p>
<p><font class="set">set::dns::bind-ip &lt;ip&gt;;</font><br>
Especifica la IP a enlazar para el resolver. Raras veces se usa.</p>
<p><font class="set">set::network-name &lt;nombre-de-red&gt;;</font><br>
@@ -2571,6 +2580,16 @@ set {
Si un spamfilter tarda más de esta cantidad de milisegundos para ejecutarse
(1000ms = 1 segundo), a continuacion el spamfilter sera removido (predeterminado: 500).
Vea tambien <a href="#feature_spamfilter_slow">Deteccion Lenta de Spamfilter</a>.</p>
<p><font class="set">set::spamfilter::stop-on-first-match &lt;yes|no&gt;</font><br>
Por defecto es 'yes' lo que significa que una vez el filtro de spam
lo encuentre UnrealIRCd tomara una accion inmediata y cualquier otro filtro adicional
no sera procesado.<br>
Si esta seteado a 'no' despues de que se encuentre el primer filtro de spam
otros filtros pueden ser revisados. Todos los que coincidan seran logeados
y el mensaje sera enviado a los IRCOps con (snomask +S). Sin embargo el usuario afectado,
solo vera la accion del filtro de spam (eg: block o kill)
sera el filtro de spam con 'accion mas grave' (gzline es el mas alto,
block y warn los mas leves).</p>
<p><font class="set">set::check-target-nick-bans &lt;yes|no&gt;</font><br>
Si un usuario se cambia de nick, comprueba si el nuevo nick se relaciona con algún ban.
Si es así, no permite el cambio de nick. Por defecto 'yes'.</p>
+28 -9
View File
@@ -20,6 +20,12 @@
<!-- $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.hu.html">Hungarian</a> |
@@ -33,8 +39,8 @@
<div style="text-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.10-rc1</font><br>
<b>Dernière mise à jour de la documentation:</b> 2012-10-16
<font size="4">Version: 3.2.10.5</font><br>
<b>Dernière mise à jour de la documentation:</b> 2013-04-05
</div>
<br>
@@ -210,7 +216,7 @@
</ul>
<p>
Veuillez vérifier les RELEASE NOTES pour voir ce qui a changé.
Si vous notez des changements (ou bug) entre les versions, VOUS DEVEZ ËTRE SUR D'AVOIR LU LES RELEASE NOTES EN PREMIER avant de reporter cela comme un bug.
Si vous notez des changements (ou bug) entre les versions, VOUS DEVEZ ÊTRE SÛR D'AVOIR LU LES RELEASE NOTES EN PREMIER avant de reporter cela comme un bug.
</p>
</div>
@@ -234,9 +240,9 @@
</li>
<li><b>Version Windows:</b>
<ul>
<li>Windows 2000 (Pro, Server, Advanced Server)</li>
<li>Windows XP (Home, Pro)</li>
<li>Windows 2003</li>
<li>Windows 7</li>
</ul>
</li>
<li><b>Architectures testées:</b>
@@ -315,7 +321,7 @@
</p>
<p>
Ces clés DOIVENT être les mêmes sur TOUS LES SERVEURS d'un réseau.
Elles doivent être gardées SECRËTES car il est possible de déchiffrer l'host original si vous connaissez ces clés (ce qui rendrait le umode +x inutile).
Elles doivent être gardées SECRÈTES car il est possible de déchiffrer l'host original si vous connaissez ces clés (ce qui rendrait le umode +x inutile).
</p>
<p>
Astuce: Si vous utilisez un système *UNIX et devez créer de nouvelles clés de cloaking, vous pouvez exécuter './unreal gencloak' dans votre shell, ce qui affichera trois chaînes aléatoires que vous pourrez utiliser.
@@ -655,7 +661,7 @@
Cela devrait vous aider à savoir comment un ban doit être établi le moment venu.<br><br>
<b>Types de ban étendus</b><br>
Les bans étendus ressemble à ~&lt;type&gt;:&lt;parameter&gt;.
Les bans étendus ressemblent à ~&lt;type&gt;:&lt;parameter&gt;.
Ils vous permettent de bannir (ou exempter de ban) quelqu'un en vous basant sur quelque chose de différent du traditionnel masque nick!user@host.
Ils permettent aussi des choses comme rendre muet un utilisateur.<br><br>
@@ -2560,7 +2566,7 @@ deny dcc {
};</pre><p></p>
<p>
Ce bloc vous permets d'utiliser des règles spécifiques pour interdire le link d'un serveur.
Ce bloc vous permet d'utiliser des règles spécifiques pour interdire le link d'un serveur.
Le deny::mask spécifie un nom de serveur (avec joker) auquel cette règle s'applique.
La directive deny::rules est très complexe.
</p>
@@ -3528,7 +3534,13 @@ spamfilter {
<p>
<font class="set">set::dns::nameserver &lt;name-of-dns-server&gt;;</font> (PAS IMPLEMENTE)<br>
Spécifie l'hostname du serveur qui sera utilisé pour la résolution de DNS.</p>
Spécifie l'hostname du serveur qui sera utilisé pour la résolution de DNS.
</p>
<p>
<font class="set">set::dns::nameserver &lt;name-of-dns-server&gt;;</font><br/>
Spécifie l'adresse IP du serveur qui sera utilisé pour la résolution DNS.
N'est utilisé que si c-ares n'arrive pas à deviner les serveurs de noms (par exemple car /etc/resolv.conf est vide).
</p>
<p>
<font class="set">set::dns::bind-ip &lt;ip&gt;;</font><br>
Spécifie l'IP à relier au résolveur, presque jamais requis.
@@ -3747,6 +3759,13 @@ spamfilter {
Si un filtre de spamfilter prend plus de temps que cette durée en millisecondes (1000ms = 1s) pour s'exécuter, alors ce filtre sera enlevé (default: 500).
Voir aussi <a href="#feature_spamfilter_slow">Slow Spamfilter Detection</a>.
</p>
<p>
<font class="set">set::spamfilter::stop-on-first-match &lt;yes|no&gt;</font><br>
Par défaut, 'yes', ce qui signifie qu'une fois qu'un spamfilter correspondant est trouvé, UnrealIRCd va appliquer l'action correspondante immédiatement et les spamfilters restants ne seront pas testés.<br>
Si fixé à 'no', alors une fois le premier spamfilter trouvé, les spamfilters restants seront quand même testés.
Tous les filtres correspondants seront loggués et un message envoyé aux IRCOps (snomask +S) pour chaque filtre.
Par contre, l'utilisateur concerné ne verra qu'une seule des actions (ex: block ou kill), la plus grave de toutes les actions des spamfilters correspondants (gzline est la plus grave, block et warn les moins graves).
</p>
<p>
<font class="set">set::check-target-nick-bans &lt;yes|no&gt;</font><br>
A chaque fois qu'un utilisateur change son pseudo, vérifie si le nouveau pseudo est banni.
@@ -4946,7 +4965,7 @@ spamfilter {
<p>
Ce module bannit automatiquement les utilisateurs essayant d'envoyer une requête de type HTTP.
Il a été écrit par Syzop pour contrer l'attaque XPS touchant Firefox, grâce à laquelle les navigateurs supportant l'AJAX peuvent agir comme robots spammeurs sur IRC.
Pour choisir ce que m_nopost doit faire lorsqu'il reçoit une telle requête, configurez <a href="#set_nopost_ban_action">
Pour choisir ce que m_nopost doit faire lorsqu'il reçoit une telle requête, configurez <a href="#set_nopost_ban_action">
set::nopost::ban-action</a> et <a href="#set_nopost_ban_time">set::nopost::ban-time</a> (et leurs amis).
</p>
<p>
+24 -5
View File
@@ -20,6 +20,12 @@
<!-- $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.hu.html">Hungarian</a> |
@@ -30,8 +36,8 @@ English |
<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.10</font><br>
<b>Last doc update:</b> 2012-10-16</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>
@@ -192,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>
@@ -2591,8 +2597,11 @@ set {
<p><font class="set">set::dns::retries &lt;number-of-retries&gt;;</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 &lt;name-of-dns-server&gt;;</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 &lt;name-of-dns-server&gt;;</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 &lt;ip&gt;;</font><br>
Specifies the IP to bind to for the resolver, rarely ever needed.</p>
<p><font class="set">set::network-name &lt;name-of-network&gt;;</font><br>
@@ -2734,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 &lt;yes|no&gt;</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 &lt;yes|no&gt;</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>
+169 -101
View File
@@ -19,6 +19,12 @@
<!-- $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> |
Hungarian |
@@ -29,8 +35,8 @@ Hungarian |
<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.10-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>
@@ -58,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>
@@ -191,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>
@@ -261,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>
@@ -281,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>
@@ -343,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&lt;-&gt;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
@@ -454,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>
@@ -526,7 +525,7 @@ p
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>
@@ -560,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>
@@ -617,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
@@ -627,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>
@@ -684,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.
@@ -706,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>
@@ -993,6 +1064,7 @@ listen *:6601 {
userhost &lt;hostmaszk&gt;;
};
password &lt;jelszó&gt; { &lt;hitelesítés-típusa&gt;; };
require-modes &lt;módok&gt;
class &lt;osztálynév&gt;;
flags &lt;flagek&gt;;
flags {
@@ -1001,7 +1073,7 @@ listen *:6601 {
...
};
swhois &lt;whois info&gt;;
snomask &lt;snomask&gt;;
snomask &lt;snomaszk&gt;;
modes &lt;módok&gt;;
maxlogins &lt;szám&gt;;
};
@@ -1009,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 &lt;név&gt; :</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
@@ -1094,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>
@@ -1332,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>
@@ -1378,9 +1435,8 @@ drpass {
die &lt;leállítási-jelszó&gt; { &lt;hitelesítés-típusa&gt;; };
};</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 {
@@ -1835,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>
@@ -1916,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á
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 ál
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>
@@ -2023,7 +2081,7 @@ link &lt;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>
@@ -2037,12 +2095,9 @@ link &lt;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.
@@ -2060,9 +2115,6 @@ link &lt;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.
@@ -2394,11 +2446,11 @@ set {
<p><font class="set">set::modes-on-connect &lt;+módok&gt;;</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 &lt;+módok&gt;</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 &lt;+módok&gt;;</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 &lt;+módok&gt;;</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 &lt;+módok&gt;;</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 &lt;módok&gt;</font><br>
@@ -2500,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>
@@ -2508,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.
@@ -2532,8 +2588,11 @@ set {
<p><font class="set">set::dns::retries &lt;próbálkozások-száma&gt;;</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 &lt;dns-szerver-neve&gt;;</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 &lt;dns-szerver-neve&gt;;</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 &lt;ip&gt;;</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 &lt;hálózat-neve&gt;;</font><br>
@@ -2567,7 +2626,8 @@ set {
függõen más szabályok lehetnek érvényben.</p>
<p><font class="set">set::hiddenhost-prefix &lt;elõtag&gt;;</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 &lt;locop-gazdanév&gt;;</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>
@@ -2649,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 &lt;szám&gt;</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&lt;IDŐ&gt;]: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&lt;IDõ&gt;]: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 &lt;idõérték&gt;</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>
@@ -2674,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 &lt;yes|no&gt;</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 &lt;yes|no&gt;</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>
@@ -3188,7 +3258,7 @@ tov
<td>Mindenki</td>
</tr>
<tr>
<td height="39">Watch +-&lt;nick&gt; +-&lt;nick&gt;<br></td>
<td height="39">Watch [+|-]&lt;nick&gt; [+|-]&lt;nick&gt;<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
@@ -3295,6 +3365,10 @@ tov
<td>Visszaadja a megadott felhasználó IP címét.</td>
<td>Mindenki</td>
</tr>
<tr>
<td height="39">silence [+|-]&lt;nick&gt;<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 &lt;azonosító&gt; &lt;jelszó&gt;<br></td>
<td>Ez a parancs egy felhasználónak operátori beosztást ad, ha illik egy oper blokkra.<br></td>
@@ -3506,14 +3580,9 @@ tov
</tr>
<tr id="cmd_mkpasswd">
<td height="36">mkpasswd &lt;hitelesítés-típusa&gt; &lt;jelszó&gt;<br></td>
<td>Titkosítja a megadott &lt;jelszót&gt; a &lt;hitelesítés-típusa&gt; 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 &lt;jelszót&gt; a megadott &lt;hitelesítési-típusú&gt; 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>
@@ -3594,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>
@@ -3735,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>
+10 -4
View File
@@ -17,6 +17,12 @@
<!-- $Id$ -->
</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> |
<A href="unreal32docs.de.html">German</A> |
<A href="unreal32docs.hu.html">Hungarian</A> |
@@ -28,8 +34,8 @@
<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.10</font><br>
<b>Ïîñëåäíåå îáíîâëåíèå:</b> 2012-10-18</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>
@@ -231,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>
+38 -27
View File
@@ -32,7 +32,14 @@ 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
@@ -40,14 +47,16 @@ href="unreal32docs.hu.html">Hungarian</A>
|
<A href="unreal32docs.fr.html">French</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.10</FONT><BR><B>En Son Güncelleme:</B>
2012-10-16</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 &amp; Katkýda bulunanlar:</b> Stskeeps, codemastr, Luke, aquanight,
@@ -287,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)
@@ -603,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>&nbsp; Örnek: <PRE><FONT color=green>*** ChanOp sets mode: +f
[20j,50m,7n]:15</FONT>
<P>&nbsp; Örnek: <PRE><FONT color=green>*** ChanOp sets mode: +f [20j,50m,7n]:15</FONT>
&lt;ChanOp&gt; 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>
&lt;Evil2&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil12&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
@@ -624,8 +628,7 @@ joined #test</FONT>
&lt;Evil10&gt; fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
&lt;Evil8&gt; 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>
@@ -635,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
@@ -3520,10 +3522,9 @@ saat ve 3 dakikay
&lt;deneme-sayýsý&gt;;</FONT><BR>
DNS cozumlenmesinin basarisiz
olmasi durumda DNS cozumlemesinin kac kez tekrarlanacagini belirtir. (TAMAMLANMADI)</P>
<P><FONT class=set>set::dns::nameserver
&lt;dns-sunucu-ismi&gt;;</FONT><BR>DNS aramalarýnda kullanýlacak, sunucunun
hostname'ini
belirtir. (TAMAMLANMADI)</P>
<p><font class="set">set::dns::nameserver &lt;dns-sunucu-ismi&gt;;</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
&lt;ip&gt;;</FONT><BR>Çözümleyici için baðlanýlacak IP'yi
belirtir, genellikle belirtilmeye gerek duyulmaz.</P>
@@ -3744,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 &lt;yes|no&gt;</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
&lt;yes|no&gt;</FONT><BR>
Kullanýcý(lar) nick(ler)ini deðiþtirdiði zaman,
@@ -4838,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.
+1 -1
View File
@@ -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)";
+6
View File
@@ -158,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;
@@ -203,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
@@ -279,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
+4 -2
View File
@@ -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);
@@ -345,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 **);
@@ -809,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[];
+1
View File
@@ -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);
+3
View File
@@ -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
+15 -13
View File
@@ -174,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. */
@@ -405,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)
@@ -814,7 +816,7 @@ struct User {
* which is less useful in the modern world of IRC where nicks are grouped to
* accounts, so it is now a string.
*/
char svid[NICKLEN + 1];
char svid[SVIDLEN + 1];
signed char refcnt; /* Number of times this block is referenced */
unsigned short joined; /* number of channels joined */
@@ -1144,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
+1 -1
View File
@@ -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
+25
View File
@@ -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
+1 -1
View File
@@ -54,7 +54,7 @@
* 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 201144
#define UNREAL_VERSION_TIME 201430
#define UnrealProtocol 2311
#define PATCH1 macro_to_str(UNREAL_VERSION_GENERATION)
+1 -1
View File
@@ -78,6 +78,6 @@
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
-rc2 for unrealircd-3.2.9-rc2) */
#define UNREAL_VERSION_SUFFIX "-rc1"
#define UNREAL_VERSION_SUFFIX ".7"
#endif
+1 -1
View File
@@ -813,7 +813,7 @@ int can_send(aClient *cptr, aChannel *chptr, char *msgtext, int notice)
return (CANNOT_SEND_NOPRIVMSGS);
lp = find_membership_link(cptr->user->channel, chptr);
if ((chptr->mode.mode & MODE_MODREG) && !op_can_override(cptr) && !IsRegNick(cptr) &&
if ((chptr->mode.mode & MODE_MODREG) && !op_can_override(cptr) && !IsLoggedIn(cptr) &&
(!lp
|| !(lp->flags & (CHFL_CHANOP | CHFL_VOICE | CHFL_CHANOWNER |
CHFL_HALFOP | CHFL_CHANPROT))))
+27 -25
View File
@@ -109,7 +109,7 @@ static int parse_v6_netmask(const char *text, struct IN_ADDR *addr, short int *b
else if (c == '*')
{
/* Error: there was a ::, or it is not the last segment */
if (finsert >= 0 || *(p + 1) || dp == 0 || *(p - 1) != ':')
if (finsert >= 0 || *(p + 1) || dp == 0 || (p == text) || (*(p - 1) != ':'))
return HM_HOST;
bits = dp * 16;
}
@@ -191,34 +191,36 @@ static int parse_v4_netmask(const char *text, struct IN_ADDR *addr, short int *b
digits[n++] = text;
for (p = text; (c = *p); p++)
{
if (c >= '0' && c <= '9') /* empty */
;
else if (c == '.')
{
if (n >= 4) /* Error: More than four sections */
else if (c == '.')
{
if (n >= 4) /* Error: More than four sections */
return HM_HOST;
digits[n++] = p + 1;
}
else if (c == '*')
{
if (*(p + 1) || (p == text) || *(p - 1) != '.') /* Error: * is not at the end
* or not its own section */
return HM_HOST;
bits = (n - 1) * 8;
break;
}
else if (c == '/')
{
char *after;
bits = strtoul(p + 1, &after, 10);
if (bits < 0 || *after) /* Error: Invalid number or not end */
return HM_HOST;
if (bits > n * 8) /* Error: More than the bits given */
return HM_HOST;
break;
}
else /* Error: Illegal character */
return HM_HOST;
digits[n++] = p + 1;
}
else if (c == '*')
{
if (*(p + 1) || n == 0 || *(p - 1) != '.') /* Error: * is not at the end
* or not its own section */
return HM_HOST;
bits = (n - 1) * 8;
break;
}
else if (c == '/')
{
char *after;
bits = strtoul(p + 1, &after, 10);
if (!bits || *after) /* Error: Invalid number or not end */
return HM_HOST;
if (bits > n * 8) /* Error: More than the bits given */
return HM_HOST;
break;
}
else /* Error: Illegal character */
return HM_HOST;
if (n < 4 && bits == 0)
bits = n * 8;
+1
View File
@@ -222,5 +222,6 @@ void SetupEvents(void)
EventAddEx(NULL, "cmodej_cleanup_structs", 60, 0, cmodej_cleanup_structs, NULL);
#endif
EventAddEx(NULL, "unrealdns_removeoldrecords", 15, 0, unrealdns_removeoldrecords, NULL);
EventAddEx(NULL, "deprecated_notice", (86400*7)-(3600*8), 0, deprecated_notice, NULL);
UnlockEventSystem();
}
-1
View File
@@ -842,7 +842,6 @@ EVENT(e_clean_out_throttling_buckets)
if (!t || (TStime() - t > 30))
{
extern char serveropts[];
extern Module *Modules;
char *p = serveropts + strlen(serveropts);
Module *mi;
+17
View File
@@ -431,6 +431,18 @@ EVENT(garbage_collect)
loop.do_garbage_collect = 0;
}
EVENT(deprecated_notice)
{
/* Send a warning to opers currently online every week after November 1, 2016 */
if (TStime() > 1477954800)
{
sendto_realops("[WARNING] UnrealIRCd 3.2.x is no longer supported after December 31, 2016. "
"See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated");
ircd_log(LOG_ERROR, "[WARNING] UnrealIRCd 3.2.x is no longer supported after December 31, 2016. "
"See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated");
}
}
/*
** try_connections
**
@@ -1531,6 +1543,11 @@ int InitwIRCD(int argc, char *argv[])
fprintf(stderr,
"---------------------------------------------------------------------\n");
#endif
if (time(NULL) > 1459461600)
{
fprintf(stderr, "WARNING: UnrealIRCd 3.2.x is no longer supported after December 31, 2016.\n"
"See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated\n");
}
open_debugfile();
#ifndef NO_FDLIST
init_fdlist(&serv_fdlist);
+2 -2
View File
@@ -91,8 +91,8 @@ all: build
build: $(MODULES)
custommodule: $(MODULEFILE).c
$(CC) $(CFLAGS) $(MODULEFLAGS) $(EXLIBS) -DDYNAMIC_LINKING \
-o $(MODULEFILE).so $(MODULEFILE).c
$(CC) $(CFLAGS) $(MODULEFLAGS) -DDYNAMIC_LINKING \
-o $(MODULEFILE).so $(MODULEFILE).c $(EXLIBS)
commands.so: l_commands.c $(COMMANDS) $(INCLUDES)
$(CC) $(CFLAGS) $(MODULEFLAGS) -o commands.so l_commands.c \
+1 -1
View File
@@ -61,7 +61,7 @@ ModuleHeader l_commands_Header
#endif
= {
"commands", /* Name of module */
"3.2.10", /* Version */
"3.2.10.7", /* Version */
"Wrapper library for m_ commands", /* Short description of module */
"3.2-b8-1",
NULL
+2 -4
View File
@@ -117,8 +117,7 @@ int n, wasaway = 0;
sendto_serv_butone_token(cptr, parv[0], MSG_AWAY, TOK_AWAY, "");
hash_check_watch(cptr, RPL_NOTAWAY);
sendto_common_channels_local_butone(sptr, PROTO_AWAY_NOTIFY, ":%s!%s@%s AWAY",
sptr->name, sptr->user->username, GetHost(sptr));
sendto_common_channels_local_butone(sptr, PROTO_AWAY_NOTIFY, ":%s AWAY", sptr->name);
}
/* hope this works XX */
if (MyConnect(sptr))
@@ -172,8 +171,7 @@ int n, wasaway = 0;
sendto_one(sptr, rpl_str(RPL_NOWAWAY), me.name, parv[0]);
hash_check_watch(cptr, wasaway ? RPL_REAWAY : RPL_GONEAWAY);
sendto_common_channels_local_butone(sptr, PROTO_AWAY_NOTIFY, ":%s!%s@%s AWAY :%s",
sptr->name, sptr->user->username, GetHost(sptr), away);
sendto_common_channels_local_butone(sptr, PROTO_AWAY_NOTIFY, ":%s AWAY :%s", sptr->name, away);
RunHook2(HOOKTYPE_AWAY, sptr, away);
return 0;
+22 -15
View File
@@ -232,14 +232,14 @@ static void clicap_generate(aClient *sptr, const char *subcmd, int flags, int cl
sendto_one(sptr, "%s :%s", buf, capbuf);
}
static void cap_ack(aClient *sptr, const char *arg)
static int cap_ack(aClient *sptr, const char *arg)
{
struct clicap *cap;
int capadd = 0, capdel = 0;
int finished = 0, negate;
if (BadPtr(arg))
return;
return 0;
for(cap = clicap_find(arg, &negate, &finished); cap;
cap = clicap_find(NULL, &negate, &finished))
@@ -262,40 +262,47 @@ static void cap_ack(aClient *sptr, const char *arg)
sptr->proto |= capadd;
sptr->proto &= ~capdel;
return 0;
}
static void cap_clear(aClient *sptr, const char *arg)
static int cap_clear(aClient *sptr, const char *arg)
{
clicap_generate(sptr, "ACK", sptr->proto ? sptr->proto : -1, 1);
sptr->proto = 0;
return 0;
}
static void cap_end(aClient *sptr, const char *arg)
static int cap_end(aClient *sptr, const char *arg)
{
if (IsRegisteredUser(sptr))
return;
return 0;
sptr->proto &= ~PROTO_CLICAP;
if (sptr->name[0] && sptr->user != NULL)
register_user(sptr, sptr, sptr->name, sptr->user->username, NULL, NULL, NULL);
if (*sptr->name && sptr->user && *sptr->user->username && IsNotSpoof(sptr))
return register_user(sptr, sptr, sptr->name, sptr->user->username, NULL, NULL, NULL);
return 0;
}
static void cap_list(aClient *sptr, const char *arg)
static int cap_list(aClient *sptr, const char *arg)
{
clicap_generate(sptr, "LIST", sptr->proto ? sptr->proto : -1, 0);
return 0;
}
static void cap_ls(aClient *sptr, const char *arg)
static int cap_ls(aClient *sptr, const char *arg)
{
if (!IsRegisteredUser(sptr))
sptr->proto |= PROTO_CLICAP;
clicap_generate(sptr, "LS", 0, 0);
return 0;
}
static void cap_req(aClient *sptr, const char *arg)
static int cap_req(aClient *sptr, const char *arg)
{
char buf[BUFSIZE];
char pbuf[2][BUFSIZE];
@@ -309,7 +316,7 @@ static void cap_req(aClient *sptr, const char *arg)
sptr->proto |= PROTO_CLICAP;
if (BadPtr(arg))
return;
return 0;
buflen = snprintf(buf, sizeof(buf), ":%s CAP %s ACK",
me.name, BadPtr(sptr->name) ? "*" : sptr->name);
@@ -369,7 +376,7 @@ static void cap_req(aClient *sptr, const char *arg)
if (!finished)
{
sendto_one(sptr, ":%s CAP %s NAK :%s", me.name, BadPtr(sptr->name) ? "*" : sptr->name, arg);
return;
return 0;
}
if (i)
@@ -382,11 +389,12 @@ static void cap_req(aClient *sptr, const char *arg)
sptr->proto |= capadd;
sptr->proto &= ~capdel;
return 0;
}
struct clicap_cmd {
const char *cmd;
void (*func)(struct Client *source_p, const char *arg);
int (*func)(struct Client *source_p, const char *arg);
};
static struct clicap_cmd clicap_cmdtable[] = {
@@ -437,8 +445,7 @@ DLLFUNC int m_cap(aClient *cptr, aClient *sptr, int parc, char *parv[])
return 0;
}
(cmd->func)(sptr, parv[2]);
return 0;
return (cmd->func)(sptr, parv[2]);
}
/* This is called on module init, before Server Ready */
+1 -1
View File
@@ -208,7 +208,7 @@ Ban *banned;
/* We check this later return (ERR_CHANNELISFULL); */
}
if ((chptr->mode.mode & MODE_RGSTRONLY) && !IsARegNick(sptr))
if ((chptr->mode.mode & MODE_RGSTRONLY) && !IsLoggedIn(sptr))
return (ERR_NEEDREGGEDNICK);
if (*chptr->mode.key && (BadPtr(key) || strcmp(chptr->mode.key, key)))
+5 -19
View File
@@ -148,7 +148,7 @@ int ret;
return CANPRIVMSG_CONTINUE;
}
/* Umode +R (idea from Bahamut) */
if (IsRegNickMsg(acptr) && !IsRegNick(sptr) && !IsULine(sptr) && !IsOper(sptr) && !IsServer(sptr)) {
if (IsRegNickMsg(acptr) && !IsLoggedIn(sptr) && !IsULine(sptr) && !IsOper(sptr) && !IsServer(sptr)) {
sendto_one(sptr, err_str(ERR_NONONREG), me.name, sptr->name,
acptr->name);
return 0;
@@ -666,29 +666,15 @@ int _is_silenced(aClient *sptr, aClient *acptr)
Link *lp;
anUser *user;
static char sender[HOSTLEN + NICKLEN + USERLEN + 5];
static char senderx[HOSTLEN + NICKLEN + USERLEN + 5];
char checkv = 0;
if (!(acptr->user) || !(lp = acptr->user->silence) ||
!(user = sptr->user)) return 0;
ircsprintf(sender, "%s!%s@%s", sptr->name, user->username,
user->realhost);
/* We also check for matches against sptr->user->virthost if present,
* this is checked regardless of mode +x so you can't do tricks like:
* evil has +x and msgs, victim places silence on +x host, evil does -x
* and can msg again. -- Syzop
*/
if (sptr->user->virthost)
{
ircsprintf(senderx, "%s!%s@%s", sptr->name, user->username,
sptr->user->virthost);
checkv = 1;
}
ircsprintf(sender, "%s!%s@%s", sptr->name, user->username, GetHost(sptr));
for (; lp; lp = lp->next)
{
if (!match(lp->value.cp, sender) || (checkv && !match(lp->value.cp, senderx)))
if (!match(lp->value.cp, sender))
{
if (!MyConnect(sptr))
{
@@ -936,7 +922,7 @@ int hlength = strlen (haystack);
}
return NULL; /* not found */
}
inline int fast_badword_match(ConfigItem_badword *badword, char *line)
static inline int fast_badword_match(ConfigItem_badword *badword, char *line)
{
char *p;
int bwlen = strlen(badword->word);
@@ -969,7 +955,7 @@ next:
* buf is used for the result and max is sizeof(buf).
* (Internal assumptions: max > 0 AND max > strlen(line)+1)
*/
inline int fast_badword_replace(ConfigItem_badword *badword, char *line, char *buf, int max)
static inline int fast_badword_replace(ConfigItem_badword *badword, char *line, char *buf, int max)
{
/* Some aliases ;P */
char *replacew = badword->replace ? badword->replace : REPLACEWORD;
+1 -1
View File
@@ -2484,7 +2484,7 @@ DLLFUNC CMD_FUNC(_m_umode)
if ((setflags & UMODE_INVISIBLE) && !IsInvisible(sptr))
IRCstats.invisible--;
if (!IsAnOper(sptr))
if (MyConnect(sptr) && !IsAnOper(sptr))
remove_oper_modes(sptr);
/*
+8 -7
View File
@@ -738,7 +738,7 @@ DLLFUNC CMD_FUNC(m_nick)
}
/* This had to be copied here to avoid problems.. */
(void)strcpy(sptr->name, nick);
if (sptr->user && IsNotSpoof(sptr) && !CHECKPROTO(sptr, PROTO_CLICAP))
if (sptr->user && *sptr->user->username && IsNotSpoof(sptr) && !CHECKPROTO(sptr, PROTO_CLICAP))
{
/*
** USER already received, now we have NICK.
@@ -864,6 +864,8 @@ int _register_user(aClient *cptr, aClient *sptr, char *nick, char *username, cha
if (MyConnect(sptr))
{
char temp[USERLEN + 1];
if ((i = check_client(sptr, username))) {
/* This had return i; before -McSkaf */
if (i == -5)
@@ -909,16 +911,16 @@ int _register_user(aClient *cptr, aClient *sptr, char *nick, char *username, cha
*
* Moved the noident stuff here. -OnyxDragon
*/
/* because username may point to user->username */
strncpyzt(temp, username, USERLEN + 1);
if (!(sptr->flags & FLAGS_DOID))
strncpyzt(user->username, username, USERLEN + 1);
strncpyzt(user->username, temp, USERLEN + 1);
else if (sptr->flags & FLAGS_GOTID)
strncpyzt(user->username, sptr->username, USERLEN + 1);
else
{
/* because username may point to user->username */
char temp[USERLEN + 1];
strncpyzt(temp, username, USERLEN + 1);
if (IDENT_CHECK == 0) {
strncpyzt(user->username, temp, USERLEN + 1);
}
@@ -1071,7 +1073,6 @@ int _register_user(aClient *cptr, aClient *sptr, char *nick, char *username, cha
me.name, parv[0],
me.name, version, umodestring, cmodestring);
{
extern MODVAR char *IsupportStrings[];
int i;
for (i = 0; IsupportStrings[i]; i++)
sendto_one(sptr, rpl_str(RPL_ISUPPORT), me.name, nick, IsupportStrings[i]);
+2 -2
View File
@@ -186,8 +186,8 @@ DLLFUNC CMD_FUNC(m_part)
#endif
}
/* +M and not +r? */
if ((chptr->mode.mode & MODE_MODREG) && !IsRegNick(sptr) && !IsAnOper(sptr))
/* +M and not logged in to services? */
if ((chptr->mode.mode & MODE_MODREG) && !IsLoggedIn(sptr) && !IsAnOper(sptr))
comment = NULL;
if (MyConnect(sptr))
+1 -1
View File
@@ -180,7 +180,7 @@ Debug((DEBUG_NOTICE, "NOSPOOF"));
sendto_one(sptr, ":IRC!IRC@%s PRIVMSG %s :\1VERSION\1",
me.name, sptr->name);
if (sptr->user && sptr->name[0] && !CHECKPROTO(sptr, PROTO_CLICAP))
if (sptr->user && *sptr->user->username && sptr->name[0] && !CHECKPROTO(sptr, PROTO_CLICAP))
return register_user(cptr, sptr, sptr->name,
sptr->user->username, NULL, NULL, NULL);
return 0;
-2
View File
@@ -44,8 +44,6 @@
DLLFUNC int m_protoctl(aClient *cptr, aClient *sptr, int parc, char *parv[]);
extern MODVAR char serveropts[];
#define MSG_PROTOCTL "PROTOCTL"
#define TOK_PROTOCTL "_"
+7 -1
View File
@@ -120,7 +120,7 @@ static aClient *decode_puid(char *puid)
client = local[slot];
if (cookie && client->sasl_cookie != cookie)
if (cookie && client && (client->sasl_cookie != cookie))
return NULL;
return client;
@@ -264,6 +264,12 @@ static int m_authenticate(aClient *cptr, aClient *sptr, int parc, char *parv[])
return 0;
}
if ((parv[1][0] == ':') || strchr(parv[1], ' '))
{
sendto_one(sptr, err_str(ERR_CANNOTDOCOMMAND), me.name, "*", "AUTHENTICATE", "Invalid parameter");
return 0;
}
if (strlen(parv[1]) > 400)
{
sendto_one(sptr, err_str(ERR_SASLTOOLONG), me.name, BadPtr(sptr->name) ? "*" : sptr->name);
-3
View File
@@ -130,8 +130,6 @@ char buf[512];
void _send_server_message(aClient *sptr)
{
extern char serveropts[];
if (sptr->serv->flags.server_sent)
{
#ifdef DEBUGMODE
@@ -695,7 +693,6 @@ CMD_FUNC(m_server_remote)
int m_server_synch(aClient *cptr, long numeric, ConfigItem_link *aconf)
{
char *inpath = get_client_name(cptr, TRUE);
extern MODVAR char serveropts[];
aClient *acptr;
int i;
char buf[BUFSIZE];
+7 -7
View File
@@ -193,7 +193,7 @@ int stats_compare(char *s1, char *s2)
return 1;
}
inline struct statstab *stats_binary_search(char c) {
struct statstab *stats_binary_search(char c) {
int start = 0;
int stop = sizeof(StatsTable)/sizeof(StatsTable[0])-1;
int mid;
@@ -209,7 +209,7 @@ inline struct statstab *stats_binary_search(char c) {
return NULL;
}
inline struct statstab *stats_search(char *s) {
struct statstab *stats_search(char *s) {
int i;
for (i = 0; StatsTable[i].flag; i++)
if (!stats_compare(StatsTable[i].longflag,s))
@@ -217,7 +217,7 @@ inline struct statstab *stats_search(char *s) {
return NULL;
}
inline char *stats_combine_parv(char *p1, char *p2)
char *stats_combine_parv(char *p1, char *p2)
{
static char buf[BUFSIZE+1];
strcpy(buf, p1);
@@ -226,7 +226,7 @@ inline char *stats_combine_parv(char *p1, char *p2)
return buf;
}
inline void stats_help(aClient *sptr)
void stats_help(aClient *sptr)
{
sendto_one(sptr, rpl_str(RPL_STATSHELP), me.name, sptr->name, "/Stats flags:");
sendto_one(sptr, rpl_str(RPL_STATSHELP), me.name, sptr->name,
@@ -321,7 +321,7 @@ inline void stats_help(aClient *sptr)
"Z - mem - Send memory usage information");
}
inline int stats_operonly_short(char c)
int stats_operonly_short(char c)
{
char l;
if (!OPER_ONLY_STATS)
@@ -351,7 +351,7 @@ inline int stats_operonly_short(char c)
return 0;
}
inline int stats_operonly_long(char *s)
int stats_operonly_long(char *s)
{
OperStat *os;
for (os = iConf.oper_only_stats_ext; os; os = (OperStat *)os->next)
@@ -363,7 +363,7 @@ inline int stats_operonly_long(char *s)
}
/* This is pretty slow, but it isn't used often so it isn't a big deal */
inline char *stats_operonly_long_to_short()
char *stats_operonly_long_to_short()
{
static char buffer[BUFSIZE+1];
int i = 0;
+2 -2
View File
@@ -516,8 +516,8 @@ char *xtok = show_change ? TOK_SVS2MODE : TOK_SVSMODE;
if (parv[3])
{
strlcpy(acptr->user->svid, parv[3], sizeof(acptr->user->svid));
sendto_common_channels_local_butone(acptr, PROTO_ACCOUNT_NOTIFY, ":%s!%s@%s ACCOUNT %s",
acptr->name, acptr->user->username, GetHost(acptr),
sendto_common_channels_local_butone(acptr, PROTO_ACCOUNT_NOTIFY, ":%s ACCOUNT %s",
acptr->name,
!isdigit(*acptr->user->svid) ? acptr->user->svid : "*");
}
break;
+6 -1
View File
@@ -113,6 +113,12 @@ aClient *ocptr; /* Other client */
return 0;
}
/* if the new nickname is identical to the old one, ignore it */
if (!strcmp(acptr->name, parv[2]))
return 0;
RunHook2(HOOKTYPE_LOCAL_NICKCHANGE, acptr, parv[2]);
if (acptr != ocptr)
acptr->umodes &= ~UMODE_REGNICK;
acptr->lastnick = TS2ts(parv[3]);
@@ -127,7 +133,6 @@ aClient *ocptr; /* Other client */
sendto_snomask(SNO_NICKCHANGE,
"*** Notice -- %s (%s@%s) has been forced to change his/her nickname to %s",
acptr->name, acptr->user->username, acptr->user->realhost, parv[2]);
RunHook2(HOOKTYPE_LOCAL_NICKCHANGE, acptr, parv[2]);
strlcpy(acptr->name, parv[2], sizeof acptr->name);
add_to_client_hash_table(parv[2], acptr);
+151 -82
View File
@@ -2426,6 +2426,46 @@ int _place_host_ban(aClient *sptr, int action, char *reason, long duration)
return -1;
}
/** This function compares two spamfilters ('one' and 'two') and will return
* a 'winner' based on which one has the strongest action.
* If both have equal action then some additional logic is applied simply
* to ensure we (almost) always return the same winner regardless of the
* order of the spamfilters (which may differ between servers).
*/
aTKline *choose_winning_spamfilter(aTKline *one, aTKline *two)
{
int n;
/* First, see if the action field differs... */
if (one->ptr.spamf->action != two->ptr.spamf->action)
{
/* We can simply compare the action. Highest (strongest) wins. */
if (one->ptr.spamf->action > two->ptr.spamf->action)
return one;
else
return two;
}
/* Ok, try comparing the regex then.. */
n = strcmp(one->reason, two->reason);
if (n < 0)
return one;
if (n > 0)
return two;
/* Hmm.. regex is identical. Try the 'reason' field. */
n = strcmp(one->ptr.spamf->tkl_reason, two->ptr.spamf->tkl_reason);
if (n < 0)
return one;
if (n > 0)
return two;
/* Hmm.. 'reason' is identical as well.
* Make a final decision, could still be identical but would be unlikely.
*/
return (one->subtype > two->subtype) ? one : two;
}
/** Checks if 'target' is on the spamfilter exception list.
* RETURNS 1 if found in list, 0 if not.
*/
@@ -2493,12 +2533,14 @@ int ret;
int _dospamfilter(aClient *sptr, char *str_in, int type, char *target, int flags, aTKline **rettk)
{
aTKline *tk;
aTKline *winner_tk = NULL;
char *str;
int ret;
int ret = -1;
#ifdef SPAMFILTER_DETECTSLOW
struct rusage rnow, rprev;
long ms_past;
#endif
if (rettk)
*rettk = NULL; /* initialize to NULL */
@@ -2517,8 +2559,10 @@ long ms_past;
{
if (!(tk->subtype & type))
continue;
if ((flags & SPAMFLAG_NOWARN) && (tk->ptr.spamf->action == BAN_ACT_WARN))
continue;
#ifdef SPAMFILTER_DETECTSLOW
memset(&rnow, 0, sizeof(rnow));
memset(&rprev, 0, sizeof(rnow));
@@ -2547,11 +2591,13 @@ long ms_past;
ms_past, tk->reason);
}
#endif
if (!ret)
if (ret == 0)
{
/* matched! */
/* We have a match! */
char buf[1024];
char targetbuf[48];
if (target) {
targetbuf[0] = ' ';
strlcpy(targetbuf+1, target, sizeof(targetbuf)-1); /* cut it off */
@@ -2559,7 +2605,7 @@ long ms_past;
targetbuf[0] = '\0';
/* Hold on.. perhaps it's on the exceptions list... */
if (target && target_is_spamexcept(target))
if (!winner_tk && target && target_is_spamexcept(target))
return 0; /* No problem! */
ircsprintf(buf, "[Spamfilter] %s!%s@%s matches filter '%s': [%s%s: '%s'] [%s]",
@@ -2573,86 +2619,109 @@ long ms_past;
ircd_log(LOG_SPAMFILTER, "%s", buf);
RunHook6(HOOKTYPE_LOCAL_SPAMFILTER, sptr, str, str_in, type, target, tk);
if (tk->ptr.spamf->action == BAN_ACT_BLOCK)
/* If we should stop after the first match, we end here... */
if (SPAMFILTER_STOP_ON_FIRST_MATCH)
{
switch(type)
{
case SPAMF_USERMSG:
case SPAMF_USERNOTICE:
sendnotice(sptr, "Message to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_CHANMSG:
case SPAMF_CHANNOTICE:
sendto_one(sptr, ":%s 404 %s %s :Message blocked: %s",
me.name, sptr->name, target,
unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_DCC:
sendnotice(sptr, "DCC to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_AWAY:
/* hack to deal with 'after-away-was-set-filters' */
if (sptr->user->away && !strcmp(str_in, sptr->user->away))
{
/* free away & broadcast the unset */
MyFree(sptr->user->away);
sptr->user->away = NULL;
sendto_serv_butone_token(sptr, sptr->name, MSG_AWAY, TOK_AWAY, "");
}
break;
case SPAMF_TOPIC:
//...
sendnotice(sptr, "Setting of topic on %s to that text is blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
default:
break;
}
return -1;
} else
if (tk->ptr.spamf->action == BAN_ACT_WARN)
{
if ((type != SPAMF_USER) && (type != SPAMF_QUIT))
sendto_one(sptr, rpl_str(RPL_SPAMCMDFWD),
me.name, sptr->name, cmdname_by_spamftarget(type),
unreal_decodespace(tk->ptr.spamf->tkl_reason));
return 0;
} else
if (tk->ptr.spamf->action == BAN_ACT_DCCBLOCK)
{
if (type == SPAMF_DCC)
{
sendnotice(sptr, "DCC to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
sendnotice(sptr, "*** You have been blocked from sending files, "
"reconnect to regain permission to send files");
sptr->flags |= FLAGS_DCCBLOCK;
}
return -1;
} else
if (tk->ptr.spamf->action == BAN_ACT_VIRUSCHAN)
{
if (IsVirus(sptr)) /* Already tagged */
return 0;
/* There's a race condition for SPAMF_USER, so 'rettk' is used for SPAMF_USER
* when a user is currently connecting and filters are checked:
*/
if (!IsClient(sptr))
{
if (rettk)
*rettk = tk;
return -5;
}
winner_tk = tk;
break;
}
dospamfilter_viruschan(sptr, tk, type);
return -5;
} else
return place_host_ban(sptr, tk->ptr.spamf->action,
unreal_decodespace(tk->ptr.spamf->tkl_reason), tk->ptr.spamf->tkl_duration);
/* Otherwise.. we set 'winner_tk' to the spamfilter with the strongest action. */
if (!winner_tk)
winner_tk = tk;
else
winner_tk = choose_winning_spamfilter(tk, winner_tk);
/* and continue.. */
}
}
return 0;
tk = winner_tk;
if (!tk)
return 0; /* NOMATCH, we are done */
/* Spamfilter matched, take action: */
if (tk->ptr.spamf->action == BAN_ACT_BLOCK)
{
switch(type)
{
case SPAMF_USERMSG:
case SPAMF_USERNOTICE:
sendnotice(sptr, "Message to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_CHANMSG:
case SPAMF_CHANNOTICE:
sendto_one(sptr, ":%s 404 %s %s :Message blocked: %s",
me.name, sptr->name, target,
unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_DCC:
sendnotice(sptr, "DCC to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
case SPAMF_AWAY:
/* hack to deal with 'after-away-was-set-filters' */
if (sptr->user->away && !strcmp(str_in, sptr->user->away))
{
/* free away & broadcast the unset */
MyFree(sptr->user->away);
sptr->user->away = NULL;
sendto_serv_butone_token(sptr, sptr->name, MSG_AWAY, TOK_AWAY, "");
}
break;
case SPAMF_TOPIC:
//...
sendnotice(sptr, "Setting of topic on %s to that text is blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
break;
default:
break;
}
return -1;
} else
if (tk->ptr.spamf->action == BAN_ACT_WARN)
{
if ((type != SPAMF_USER) && (type != SPAMF_QUIT))
sendto_one(sptr, rpl_str(RPL_SPAMCMDFWD),
me.name, sptr->name, cmdname_by_spamftarget(type),
unreal_decodespace(tk->ptr.spamf->tkl_reason));
return 0;
} else
if (tk->ptr.spamf->action == BAN_ACT_DCCBLOCK)
{
if (type == SPAMF_DCC)
{
sendnotice(sptr, "DCC to %s blocked: %s",
target, unreal_decodespace(tk->ptr.spamf->tkl_reason));
sendnotice(sptr, "*** You have been blocked from sending files, "
"reconnect to regain permission to send files");
sptr->flags |= FLAGS_DCCBLOCK;
}
return -1;
} else
if (tk->ptr.spamf->action == BAN_ACT_VIRUSCHAN)
{
if (IsVirus(sptr)) /* Already tagged */
return 0;
/* There's a race condition for SPAMF_USER, so 'rettk' is used for SPAMF_USER
* when a user is currently connecting and filters are checked:
*/
if (!IsClient(sptr))
{
if (rettk)
*rettk = tk;
return -5;
}
dospamfilter_viruschan(sptr, tk, type);
return -5;
} else
return place_host_ban(sptr, tk->ptr.spamf->action,
unreal_decodespace(tk->ptr.spamf->tkl_reason), tk->ptr.spamf->tkl_duration);
return 0; /* NOTREACHED */
}
+1 -1
View File
@@ -121,7 +121,7 @@ static void show_watch(aClient *cptr, char *name, int rpl1, int rpl2, int awayno
cptr->name, name);
else
sendto_one(cptr, rpl_str(rpl2), me.name, cptr->name,
name, "*", "*", 0);
name, "*", "*", 0L);
}
}
+1 -1
View File
@@ -187,7 +187,7 @@ MEMORYSTATUS mstat;
/* Grab non-OS specific "random" data */
#ifdef USE_SSL
#if OPENSSL_VERSION_NUMBER >= 0x000907000
#if OPENSSL_VERSION_NUMBER >= 0x000907000 && defined(HAVE_RAND_EGD)
if (EGD_PATH) {
n = RAND_query_egd_bytes(EGD_PATH, rdat.egd, sizeof(rdat.egd));
}
+46 -35
View File
@@ -43,6 +43,21 @@ Computing Center and Jarkko Oikarinen";
#include <WinSock2.h>
#endif
#include "setup.h"
#include "config.h"
#ifdef USE_POLL
# ifndef _WIN32
# include <poll.h>
# ifndef POLLRDHUP
# define POLLRDHUP 0
# endif
# else
# define poll WSAPoll
# define POLLRDHUP POLLHUP
# endif
#endif
#include "struct.h"
#include "common.h"
#include "sys.h"
@@ -74,16 +89,6 @@ Computing Center and Jarkko Oikarinen";
#endif
#ifdef USE_POLL
# ifndef _WIN32
# include <sys/poll.h>
# include <poll.h>
# ifndef POLLRDHUP
# define POLLRDHUP 0
# endif
# else
# define poll WSAPoll
# define POLLRDHUP POLLHUP
# endif
static struct pollfd pollfds[MAXCONNECTIONS], dummy_pollfd;
static int pollfd_count = 0;
@@ -907,7 +912,6 @@ int check_client(aClient *cptr, char *username)
int completed_connection(aClient *cptr)
{
ConfigItem_link *aconf = cptr->serv ? cptr->serv->conf : NULL;
extern char serveropts[];
SetHandshake(cptr);
if (!aconf)
@@ -2134,20 +2138,27 @@ deadsocket:
}
length = 1; /* for fall through case */
#ifdef USE_POLL
if (pfd->revents & POLLIN)
#else
if (FD_ISSET(cptr->fd, &read_set))
if (!DoingDNS(cptr) && !DoingAuth(cptr)
#ifdef USE_SSL
&& !IsSSLHandshake(cptr)
#endif
length = read_packet(cptr, 1);
/* If we don't have anything to read and we have any recvQ, then
* read_packet must still be called, but this time with the 2nd parameter
* being 0 (=don't read). This is so we check if anything needs to
* be dequeued from the receive queue (due to fake lag). -- Syzop
*/
else if (DBufLength(&cptr->recvQ) > 0)
length = read_packet(cptr, 0);
)
{
#ifdef USE_POLL
if (pfd->revents & POLLIN)
#else
if (FD_ISSET(cptr->fd, &read_set))
#endif
length = read_packet(cptr, 1);
/* If we don't have anything to read and we have any recvQ, then
* read_packet must still be called, but this time with the 2nd parameter
* being 0 (=don't read). This is so we check if anything needs to
* be dequeued from the receive queue (due to fake lag). -- Syzop
*/
else if (DBufLength(&cptr->recvQ) > 0)
length = read_packet(cptr, 0);
}
#ifdef USE_SSL
if ((length != FLUSH_BUFFER) && (cptr->ssl != NULL) &&
IsSSLHandshake(cptr) &&
@@ -2401,26 +2412,26 @@ static struct SOCKADDR *connect_inet(ConfigItem_link *aconf, aClient *cptr, int
return NULL;
}
mysk.SIN_PORT = 0;
bzero((char *)&server, sizeof(server));
server.SIN_FAMILY = AFINET;
get_sockhost(cptr, aconf->hostname);
server.SIN_PORT = 0;
server.SIN_ADDR = me.ip;
server.SIN_FAMILY = AFINET;
if (aconf->bindip && strcmp("*", aconf->bindip))
{
bzero((char *)&server, sizeof(server));
server.SIN_FAMILY = AFINET;
server.SIN_PORT = 0;
#ifndef INET6
server.SIN_ADDR.S_ADDR = inet_addr(aconf->bindip);
#else
inet_pton(AF_INET6, aconf->bindip, server.SIN_ADDR.S_ADDR);
#endif
if (bind(cptr->fd, (struct SOCKADDR *)&server, sizeof(server)) == -1)
{
report_baderror("error binding to local port for %s:%s", cptr);
return NULL;
}
}
if (bind(cptr->fd, (struct SOCKADDR *)&server, sizeof(server)) == -1)
{
report_baderror("error binding to local port for %s:%s", cptr);
return NULL;
}
bzero((char *)&server, sizeof(server));
server.SIN_FAMILY = AFINET;
/*
+23 -7
View File
@@ -1714,6 +1714,7 @@ void config_setdefaultsettings(aConfiguration *i)
i->spamfilter_virus_help_channel = strdup("#help");
i->spamfilter_detectslow_warn = 250;
i->spamfilter_detectslow_fatal = 500;
i->spamfilter_stop_on_first_match = 1;
i->maxdccallow = 10;
i->channel_command_prefix = strdup("`!.");
i->check_target_nick_bans = 1;
@@ -5174,20 +5175,27 @@ int _conf_allow_channel(ConfigFile *conf, ConfigEntry *ce)
{
ConfigItem_allow_channel *allow = NULL;
ConfigEntry *cep;
char *class = NULL;
/* First, search for ::class, if any */
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
{
if (!strcmp(cep->ce_varname, "class"))
class = cep->ce_vardata;
}
allow = MyMallocEx(sizeof(ConfigItem_allow_channel));
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
{
if (!strcmp(cep->ce_varname, "channel"))
{
/* This way, we permit multiple ::channel items in one allow block */
allow = MyMallocEx(sizeof(ConfigItem_allow_channel));
ircstrdup(allow->channel, cep->ce_vardata);
}
else if (!strcmp(cep->ce_varname, "class"))
{
ircstrdup(allow->class, cep->ce_vardata);
if (class)
ircstrdup(allow->class, class);
AddListItem(allow, conf_allow_channel);
}
}
AddListItem(allow, conf_allow_channel);
return 1;
}
@@ -7697,6 +7705,10 @@ int _conf_set(ConfigFile *conf, ConfigEntry *ce)
{
tempiConf.spamfilter_detectslow_fatal = atol(cepp->ce_vardata);
}
else if (!strcmp(cepp->ce_varname, "stop-on-first-match"))
{
tempiConf.spamfilter_stop_on_first_match = config_checkval(cepp->ce_vardata, CFG_YESNO);
}
}
}
else if (!strcmp(cep->ce_varname, "default-bantime"))
@@ -7794,6 +7806,7 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce)
int errors = 0;
Hook *h;
#define CheckNull(x) if ((!(x)->ce_vardata) || (!(*((x)->ce_vardata)))) { config_error("%s:%i: missing parameter", (x)->ce_fileptr->cf_filename, (x)->ce_varlinenum); errors++; continue; }
#define CheckNullAllowEmpty(x) if ((!(x)->ce_vardata)) { config_error("%s:%i: missing parameter", (x)->ce_fileptr->cf_filename, (x)->ce_varlinenum); errors++; continue; }
#define CheckDuplicate(cep, name, display) if (settings.has_##name) { config_warn_duplicate((cep)->ce_fileptr->cf_filename, cep->ce_varlinenum, "set::" display); continue; } else settings.has_##name = 1
for (cep = ce->ce_entries; cep; cep = cep->ce_next)
@@ -7990,7 +8003,7 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce)
CheckDuplicate(cep, uhnames, "uhnames");
}
else if (!strcmp(cep->ce_varname, "channel-command-prefix")) {
CheckNull(cep);
CheckNullAllowEmpty(cep);
CheckDuplicate(cep, channel_command_prefix, "channel-command-prefix");
}
else if (!strcmp(cep->ce_varname, "allow-userhost-change")) {
@@ -8609,6 +8622,9 @@ int _test_set(ConfigFile *conf, ConfigEntry *ce)
{
} else
#endif
if (!strcmp(cepp->ce_varname, "stop-on-first-match"))
{
} else
{
config_error_unknown(cepp->ce_fileptr->cf_filename,
cepp->ce_varlinenum, "set::spamfilter",
+10
View File
@@ -274,6 +274,11 @@ int channel_canjoin(aClient *sptr, char *name)
return 1;
}
#ifndef _WIN32
extern uid_t irc_uid;
extern gid_t irc_gid;
#endif
/* irc logs.. */
void ircd_log(int flags, char *format, ...)
{
@@ -356,6 +361,11 @@ static int last_log_file_warning = 0;
write_failure = 1;
}
close(fd);
#if defined(IRC_USER) && defined(IRC_GROUP)
/* Change ownership of the log file to irc user/group so it can still write after the setuid() */
if (!loop.ircd_booted)
chown(logs->file, irc_uid, irc_gid);
#endif
}
}
+1 -1
View File
@@ -227,7 +227,7 @@ char *make_user_host(char *name, char *host)
* create a string of form "foo!bar@fubar" given foo, bar and fubar
* as the parameters. If NULL, they become "*".
*/
inline char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host)
char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host)
{
char *s = namebuf;
+33 -6
View File
@@ -179,8 +179,6 @@ char *p;
*/
CMD_FUNC(m_version)
{
extern char serveropts[];
extern char *IsupportStrings[];
int reply, i;
/* Only allow remote VERSIONs if registered -- Syzop */
@@ -251,6 +249,23 @@ char buf[1024];
#define IRCDTOTALVERSION BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9
#endif
int remotecmdfilter(aClient *sptr, int parc, char *parv[])
{
/* no remote requests permitted from non-ircops */
if (MyClient(sptr) && !IsOper(sptr) && !BadPtr(parv[1]))
{
parv[1] = NULL;
parc = 1;
}
/* same as above, but in case an old server forwards a request to us: we ignore it */
if (!MyClient(sptr) && !IsOper(sptr))
return 1; /* STOP (return) */
return 0; /* Continue */
}
/*
* sends m_info into to sptr
*/
@@ -266,11 +281,11 @@ char *unrealinfo[] =
"* binki <binki@unrealircd.com>",
"",
"Contributors:",
"* nenolod, Adam, warg, Stealth, WolfSage, katsklaw, darkex,"
" fspijkerman, fbi, Apocalypse",
"* nenolod, Adam, warg, Stealth, WolfSage, katsklaw, darkex, fspijkerman,",
" fbi, Apocalypse",
"",
"RC Testers:",
"* <<TODO>>,",
"* therock247uk, katsklaw, nenolod, Han`, Adam, Cronus, warg, Crash,",
" and everyone else who downloaded the release candidates.",
"",
"Past UnrealIRCd3.2* coders/contributors:",
@@ -329,6 +344,8 @@ char **text = unrealinfo;
CMD_FUNC(m_info)
{
if (remotecmdfilter(sptr, parc, parv))
return 0;
if (hunt_server_token(cptr, sptr, MSG_INFO, TOK_INFO, ":%s", 1, parc,
parv) == HUNTED_ISME)
@@ -348,6 +365,9 @@ CMD_FUNC(m_dalinfo)
{
char **text = dalinfotext;
if (remotecmdfilter(sptr, parc, parv))
return 0;
if (hunt_server_token(cptr, sptr, MSG_DALINFO, TOK_DALINFO, ":%s", 1, parc,
parv) == HUNTED_ISME)
{
@@ -376,6 +396,9 @@ CMD_FUNC(m_license)
{
char **text = gnulicense;
if (remotecmdfilter(sptr, parc, parv))
return 0;
if (hunt_server_token(cptr, sptr, MSG_LICENSE, TOK_LICENSE, ":%s", 1, parc,
parv) == HUNTED_ISME)
{
@@ -399,6 +422,9 @@ CMD_FUNC(m_credits)
{
char **text = unrealcredits;
if (remotecmdfilter(sptr, parc, parv))
return 0;
if (hunt_server_token(cptr, sptr, MSG_CREDITS, TOK_CREDITS, ":%s", 1, parc,
parv) == HUNTED_ISME)
{
@@ -717,9 +743,10 @@ CMD_FUNC(m_rehash)
acptr = lp->value.cptr;
if (acptr == &me)
continue;
sendto_one(acptr, ":%s %s %s",
sendto_one(acptr, ":%s %s %s %s",
sptr->name,
IsToken(acptr->from) ? TOK_REHASH : MSG_REHASH,
acptr->name,
parv[1] ? parv[1] : "-all");
}
/* Don't return, continue, because we need to REHASH ourselves as well. */
+2 -1
View File
@@ -248,13 +248,14 @@ SSL_CTX *init_ctx_client(void)
{
SSL_CTX *ctx_client;
ctx_client = SSL_CTX_new(SSLv3_client_method());
ctx_client = SSL_CTX_new(SSLv23_client_method());
if (!ctx_client)
{
mylog("Failed to do SSL CTX new client");
return NULL;
}
SSL_CTX_set_default_passwd_cb(ctx_client, ssl_pem_passwd_cb);
SSL_CTX_set_options(ctx_client, SSL_OP_NO_SSLv2);
SSL_CTX_set_session_cache_mode(ctx_client, SSL_SESS_CACHE_OFF);
if (SSL_CTX_use_certificate_file(ctx_client, SSL_SERVER_CERT_PEM, SSL_FILETYPE_PEM) <= 0)
{
+1 -1
View File
@@ -3,7 +3,7 @@
RANDFILE = ssl.rnd
[ req ]
default_bits = 1024
default_bits = 4096
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
+2
View File
@@ -184,6 +184,8 @@ int succesfully_sent = 0;
set_non_blocking(s[n], &me);
n++;
if (n == MAXTIMESERVERS)
break;
}
numservers = n;
+12 -9
View File
@@ -17,18 +17,11 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <string.h>
#include <stdio.h>
#include <struct.h>
#include "proto.h"
#include "h.h"
#include <fcntl.h>
#include <sys/stat.h>
#include <curl/curl.h>
#include "setup.h"
#include "config.h"
#ifdef USE_POLL
# ifndef _WIN32
# include <sys/poll.h>
# include <poll.h>
# ifndef POLLRDHUP
# define POLLRDHUP 0
@@ -39,6 +32,16 @@
# endif
#endif
#include <string.h>
#include <stdio.h>
#include <struct.h>
#include "proto.h"
#include "h.h"
#include <fcntl.h>
#include <sys/stat.h>
#include <curl/curl.h>
#ifdef USE_SSL
extern char *SSLKeyPasswd;
#endif
+3 -2
View File
@@ -4,7 +4,7 @@ echo "Extracting src/version.c..."
#id=`grep '$Id: Changes,v' ../Changes`
#id=`echo $id |sed 's/.* Changes\,v \(.*\) .* Exp .*/\1/'`
id="3.2.10-rc1"
id="3.2.10.7"
echo "$id"
if test -r version.c
@@ -117,7 +117,8 @@ char *unrealcredits[] =
"Grandview Landscape and Masonry - www.grandviewoutdoor.com,",
"Saibot Technologies - http://saibottechnologies.com/,",
"IRC-IRC.de Community - irc.irc-irc.de,",
"Mike Meisner - www.hottubcoverdepot.com, CubaChat - irc.cubachat.org",
"Mike Meisner - www.hottubcoverdepot.com, CubaChat - irc.cubachat.org,",
"BluePromoCode - www.bluepromocode.com, DontPayFull - www.dontpayfull.com",
"=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=",
"The UnrealIRCd Team would like to thank:",
" ",
-1
View File
@@ -35,7 +35,6 @@ extern OSVERSIONINFO VerInfo;
extern char OSName[256];
extern char backupbuf[8192];
extern char *buildid;
extern char serveropts[];
extern char *extraflags;
extern BOOL IsService;
void CleanUp(void);
+7
View File
@@ -279,6 +279,13 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
}
ShowWindow(hWnd, SW_SHOW);
hMainThread = (HANDLE)_beginthread(SocketLoop, 0, NULL);
if (TStime() > 1459461600)
{
MessageBox(NULL, "UnrealIRCd 3.2.x is no longer supported after December 31, 2016. "
"You should upgrade to UnrealIRCd 4. "
"See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated",
"UnrealIRCd 3.2.x is deprecated", MB_OK);
}
while (GetMessage(&msg, NULL, 0, 0))
{
if (!IsWindow(hStatusWnd) || !IsDialogMessage(hStatusWnd, &msg))
+29 -131
View File
@@ -1,5 +1,5 @@
; UnrealIRCd Win32 Installation Script for My Inno Setup Extensions
; Requires Inno Setup 4.1.6 and ISX 3.0.4 to work
; Requires Inno Setup 4.1.6 or later
;#define USE_SSL
; Uncomment the above line to package an SSL build
@@ -11,7 +11,7 @@
[Setup]
AppName=UnrealIRCd
AppVerName=UnrealIRCd3.2.10-rc1
AppVerName=UnrealIRCd3.2.10.7
AppPublisher=UnrealIRCd Team
AppPublisherURL=http://www.unrealircd.com
AppSupportURL=http://www.unrealircd.com
@@ -84,17 +84,16 @@ Source: "c:\dev\zlib\zlibwapi.dll"; DestDir: "{app}"; Flags: ignoreversion
#ifdef USE_SSL
#ifdef USE_CURL
; curl with ssl support
Source: "C:\dev\curl-ssl\builds\libcurl-release-dll-sspi-spnego\bin\libcurl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "c:\dev\curl-ssl\builds\libcurl-vc-x86-release-dll-sspi\bin\libcurl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\curl-ca-bundle.crt"; DestDir: "{app}"; Flags: ignoreversion
#endif
#else
#ifdef USE_CURL
; curl without ssl support
Source: "C:\dev\curl\builds\libcurl-release-dll-sspi-spnego\bin\libcurl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\dev\curl\builds\libcurl-vc-x86-release-dll-sspi-spnego\bin\libcurl.dll"; DestDir: "{app}"; Flags: ignoreversion
#endif
#endif
Source: isxdl.dll; DestDir: {tmp}; Flags: dontcopy
Source: "..\..\..\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion
;Source: "..\..\..\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion
[Dirs]
Name: "{app}\tmp"
@@ -103,72 +102,42 @@ Name: "{app}\tmp"
Type: files; Name: "{app}\DbgHelp.Dll"
[Code]
procedure isxdl_AddFile(URL, Filename: PChar);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: PChar): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';
var
MSVSRedistPath: string;
downloadNeeded: boolean;
MSVSNeeded: boolean;
memoDependenciesNeeded: string;
uninstaller: String;
ErrorCode: Integer;
const
MSVSRedistURL = 'http://download.microsoft.com/download/1/1/1/1116b75a-9ec3-481a-a3c8-1777b5381140/vcredist_x86.exe';
//*********************************************************************************
// This is where all starts.
//*********************************************************************************
function InitializeSetup(): Boolean;
var
d: Integer;
begin
d := StrToInt(GetDateTimeString('yyyymm',#0,#0));
if (d > 201512) then
begin
MsgBox('You are installing the old UnrealIRCd 3.2.x stable series. This branch will receive security fixes only until December 31, 2016. ' +
'After that date, all support for the UnrealIRCd 3.2.x series will stop. ' +
'Please consider upgrading to UnrealIRCd 4. See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated', mbInformation, MB_OK);
if (d > 201603) then
begin
ShellExec('open', 'https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated', '', '', SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
end;
Result := true;
MSVSNeeded := false;
//************************************************************************************
// Check for the existance of the Visual C++ 2008 Redist. Package on client machine before installing
//************************************************************************************
// ids: supposedly VC++ 2008 runtime x86, and one from another source, SP1 version, SP1 with ATL security update, similar but MFC upd.
if ((not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3C3D696B-0DB7-3C6D-A356-3DB8CE541918}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A25302D-30C0-39D9-BD6F-21E6EC160475}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9BE518E6-ECC6-35A9-88E4-87755C07200F}'))
) then
begin
MSVSNeeded := true;
if ((not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{2F73A7B2-E50E-39A6-9ABC-EF89E4C62E36}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{E824E81C-80A4-3DFF-B5F9-4842A9FF5F7F}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{E7D4E834-93EB-351F-B8FB-82CDAE623003}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3D6AD258-61EA-35F5-812C-B7A02152996E}'))
and (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}'))
) then
begin
MsgBox('UnrealIRCd requires the Microsoft Visual C++ Redistributable for Visual Studio 2012 to be installed.' #13 +
'After you click OK you will be taken to a download page. There, choose Download -> choose the vcredist_x86 version (last of 3 choices). Then download and install it.', mbInformation, MB_OK);
ShellExec('open', 'http://www.microsoft.com/en-us/download/details.aspx?id=30679', '', '', SW_SHOWNORMAL,ewNoWait,ErrorCode);
MsgBox('Click OK once you have installed the Microsoft Visual C++ Redistributable for Visual Studio 2012 (vcredist_x86) to continue the UnrealIRCd installer', mbInformation, MB_OK);
if (not IsAdminLoggedOn()) then
begin
MsgBox('Application needs the Microsoft Visual C++ Redistributable Package to be installed by an Administrator', mbInformation, MB_OK);
Result := false;
end
else
begin
memoDependenciesNeeded := memoDependenciesNeeded + ' Microsoft Visual C++ Redist. Package' #13;
MSVSRedistPath := ExpandConstant('{src}\vcredist_x86.exe');
if not FileExists(MSVSRedistPath) then
begin
MSVSRedistPath := ExpandConstant('{tmp}\vcredist_x86.exe');
if not FileExists(MSVSRedistPath) then
begin
isxdl_AddFile(MSVSRedistURL, MSVSRedistPath);
downloadNeeded := true;
end
end
//SetIniString('install', 'MSVSRedist', MSVSRedistPath, ExpandConstant('{tmp}\dep.ini'));
// wth is that?
end
end;
end;
function NextButtonClick(CurPage: Integer): Boolean;
@@ -195,77 +164,6 @@ begin
end
end;
//*********************************************************************************
// Only run this at the "Ready To Install" wizard page.
//*********************************************************************************
if CurPage = wpReady then
begin
hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
// don't try to init isxdl if it's not needed because it will error on < ie 3
//********************************************************************************************************
// Download the Visual C++ 2008 Redist. Package. Can change the MS link to application development site to avoid dead link
//*********************************************************************************************************
if downloadNeeded and (MSVSNeeded = true) then
begin
isxdl_SetOption('label', 'Downloading Microsoft Visual C++ Redist. Package');
isxdl_SetOption('description', 'This app needs to install the Microsoft Visual C++ Redist. Package. Please wait while Setup is downloading extra files to your computer.');
if isxdl_DownloadFiles(hWnd) = 0 then Result := false;
end;
//***********************************************************************************
// Run the install file...
//***********************************************************************************
if (MSVSNeeded = true) then
begin
if Exec(ExpandConstant(MSVSRedistPath), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
begin
// handle success if necessary; ResultCode contains the exit code
if not (ResultCode = 0) then
begin
Res := MsgBox('UnrealIRCd requires the Microsoft Visual C++ 2008 Redistributable Package, and tried to download & install it for you. However, this failed. This could be for a number of reasons, such as it already being installed, or you are using a 64 bit Operating System. If it is not installed yet, or you do not know, then you are suggested to manually download and install the "Microsoft Visual C++ 2008 Redistributable package" from www.microsoft.com. Do you want to continue installing UnrealIRCd anyway?', mbConfirmation, MB_YESNO);
if (Res = IDNO) then
begin
Result := false;
end
end
end
else
begin
// handle failure if necessary; ResultCode contains the error code
Res := MsgBox('UnrealIRCd requires the Microsoft Visual C++ 2008 Redistributable Package, and tried to download & install it for you. However, this failed. This could be for a number of reasons, such as it already being installed, or you are using a 64 bit Operating System. If it is not installed yet, or you do not know, then you are suggested to manually download and install the "Microsoft Visual C++ 2008 Redistributable package" from www.microsoft.com. Do you want to continue installing UnrealIRCd anyway?', mbConfirmation, MB_YESNO);
if (Res = IDNO) then
begin
Result := false;
end
end
end;
end;
end;
//*********************************************************************************
// Updates the memo box shown right before the install actuall starts.
//*********************************************************************************
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
var
s: string;
begin
if memoDependenciesNeeded <> '' then s := s + 'Dependencies that will be automatically downloaded And installed:' + NewLine + memoDependenciesNeeded + NewLine;
s := s + MemoDirInfo + NewLine + NewLine;
Result := s
end;
procedure CurStepChanged(CurStep: TSetupStep);
+4 -4
View File
@@ -107,10 +107,10 @@ elif [ "$1" = "backtrace" ] ; then
exit 1
fi
# Some ugly prepare work -- ignore errors
(echo quit|gdb @BINDIR@ $corefile 2>&1)|\
grep -i 'no such file'|\
awk -F ':' '{ print $1 }'|sort|uniq|\
# The tmp/*.so files are often already deleted. Here we have some
# (ugly) scripting to recreate the tmp/*.so links to the modules *.so files...
echo 'info sharedlibrary'|gdb @BINDIR@ $corefile 2>/dev/null|\
grep No|grep tmp/|awk '{ print $2 }'|\
awk -F '.' "{ system(\"ln -s ../$modpath/\" \$2 \".so \" \$0) }"
echo ""