1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-25 05:56:38 +02:00

126 Commits

Author SHA1 Message Date
luke 6ea328e05c bleh 2003-06-23 13:14:58 +00:00
luke f60d1c2e20 whee 2003-06-23 03:30:26 +00:00
luke 6c548c83e7 missing } 2003-06-23 03:26:26 +00:00
luke d0a119a6c9 Applied Syzop's PRIVMSG/NOTICE patch. 2003-06-23 03:09:54 +00:00
luke 47c5bcf1fe Operoverride crash fix 2003-06-23 03:04:30 +00:00
luke 8a99d15208 Fixed STATS_ONLYOPER bug 2003-06-23 02:56:18 +00:00
luke 28f718593a whee 2003-06-23 02:46:53 +00:00
cvs2hg 07f1e7c377 fixup commit for tag 'unreal3_1_6_noon' 2003-06-15 17:21:05 +00:00
stskeeps cfffbcf605 3.1.6 2003-06-15 17:21:04 +00:00
stskeeps 9a4d359753 Backported m_message fix from 3.2, fixed by Syzop, reported by Ashkrynt
-Stskeeps
===================================
2003-06-15 09:08:27 +00:00
luke be78cc4ac8 m_topic bug fixed 2003-04-06 00:36:24 +00:00
luke d14f1af650 Opers with v in O line flags can dechanown/dechanprot people 2003-04-06 00:31:18 +00:00
luke 29d7a0d07c I should probably commit more frequently, but here's a massive number of bug fixes. 2003-04-06 00:19:46 +00:00
luke 0ad0bd1e55 Removed +I, Added +M 2003-04-05 18:57:59 +00:00
luke 55f7713dfa Umm, unbroke some stuff. 2003-01-30 03:59:46 +00:00
luke 60c79e809c bleh 2003-01-16 16:29:16 +00:00
luke 5a079cc107 asdfsadf 2003-01-16 15:45:31 +00:00
luke 6c3d86f3df *shudder* 2003-01-16 15:29:02 +00:00
luke e4b87e6985 Bug fixes continue, kill me now. 2003-01-04 21:51:10 +00:00
luke db184a8fd3 Wheee, final release 2002-12-09 21:26:28 +00:00
luke b76ce5b666 whee 2002-11-29 01:52:33 +00:00
luke aae8ad6e00 New override crap, beta3 2002-11-17 18:12:53 +00:00
luke df99acd210 adsf 2002-11-17 03:09:14 +00:00
luke 6939ec9779 bleh 2002-11-17 02:30:18 +00:00
luke 9cdcd0fed1 Prep for final release 2002-10-13 17:01:09 +00:00
luke 261a49eba2 +s patch 2002-10-01 23:53:49 +00:00
luke dc61fc74ca Fixed stupid m_who bug 2002-09-27 18:45:10 +00:00
luke 4dc4249538 Numerous updates 2002-09-20 22:03:57 +00:00
luke caebff8d64 exempt bugs resolved 2002-09-15 15:14:58 +00:00
luke e9342567bf bleh 2002-09-07 23:55:23 +00:00
luke 67f1287fb5 Arguably tested /who patch. 2002-09-02 23:55:42 +00:00
luke a139d804db . 2002-08-29 19:50:33 +00:00
luke b97965dd0c asdf 2002-08-29 19:47:50 +00:00
luke 9bfe99cdd6 fixed m_who 2002-08-29 19:46:11 +00:00
luke 9bb7d0adce bug fixes ! 2002-08-25 11:18:46 +00:00
luke d15261fdae +O/+A banfixes 2002-08-24 15:45:59 +00:00
luke 589fa3907d m_invite 2002-08-21 18:30:41 +00:00
luke eb796f97ea bleh 2002-08-20 19:05:36 +00:00
luke 6fb290e077 Halfop priv bug + Oo version flags + LEAST_IDLE 2002-08-20 18:47:37 +00:00
luke 8601eaadc1 forgot beta flag 2002-08-18 20:17:49 +00:00
luke 61fd1bbc33 fixed m_invite, and stupid userhost bug 2002-08-18 19:58:09 +00:00
luke 219b30f429 Final release of 3.1.4. 2002-08-07 21:03:36 +00:00
luke 0484f40586 fucked operoverride_verify 2002-08-07 20:41:03 +00:00
luke 9cd1c23682 Updated credits 2002-08-07 19:09:18 +00:00
luke 5ec26b59d6 Readded Changes.old 2002-08-07 13:10:18 +00:00
luke 25e19fe45b deleted lots of files, some updates to win32/config.h/cloak.c/etc 2002-08-07 13:09:38 +00:00
luke 41ce0d3fed removed +q/+a prefixes 2002-08-04 04:03:07 +00:00
luke 280846c00c prefix fix 2002-08-04 03:38:27 +00:00
luke 4f2055b949 SJ3 fixes 2002-08-02 22:34:50 +00:00
luke 012d4300b9 wheee 2002-08-02 12:33:17 +00:00
luke de853cfdac Host cloaking lowercase 2002-08-02 01:31:32 +00:00
luke 09ac0e6ee4 All sorts of bugfixes, added prefixes, revamped operoverride...etc 2002-08-02 01:05:37 +00:00
luke 06dc3023ab HAI FREN 2002-07-31 21:37:42 +00:00
luke d2a36e13b2 HAI CRACK FREN 2002-07-31 21:34:44 +00:00
luke f72b278876 +a/+q mirc fix 2002-07-14 19:47:23 +00:00
luke ff6de09c3c Massive changes:
- Resolved mode desynch issues with long parameter modes
- PASS security issue with c/n line passwords
- Other fixes in Changes
2002-07-14 19:38:31 +00:00
luke d9d9b8b46b Removed unused int in channel.c ban funcs, upped version to beta4 2002-07-10 00:01:34 +00:00
luke 9757cd71e2 Woo! I line password bug resolved! 2002-07-09 20:56:30 +00:00
luke 0028312387 S/P Bugfix 2002-07-09 15:44:36 +00:00
luke ebcb49f729 bah 2002-07-09 13:38:42 +00:00
luke 438fd75d02 MAXBANLENGTH Changes? 2002-07-09 13:32:42 +00:00
luke d04ab8dd73 I line password fix attempts, operoverride extension 2002-07-09 13:30:31 +00:00
luke fe9b0e2a49 Stupid SAMODE bug fixed. 2002-07-08 02:08:57 +00:00
luke 90fb20a2db Deprecated akill and rakill. 2002-06-28 16:40:20 +00:00
luke a85a7a3851 fucking m_who fix 2002-06-25 03:56:12 +00:00
luke 4f642b373b fucking piece of shit 2002-06-25 00:51:04 +00:00
luke 8dd915de96 Global on all /opers 2002-06-23 22:19:01 +00:00
luke 27a2e5c3e1 adsf 2002-06-23 20:10:54 +00:00
luke f7deba3bda Updated win32 compile guide, more +I removal 2002-06-23 20:10:16 +00:00
luke fe721a0f43 File updates 2002-06-23 19:55:40 +00:00
luke 8396e0cce1 Removed useless files 2002-06-23 19:46:33 +00:00
luke fbb724b642 whee 2002-06-23 19:37:52 +00:00
luke 4ecf4d4d3a bah 2002-06-23 18:44:33 +00:00
luke 672b345057 Invisibility go bye bye! 2002-06-23 18:28:09 +00:00
luke e6efde5291 Slight who updates + coder info changes 2002-06-23 16:53:55 +00:00
luke 4cea0721ec small updates 2002-06-16 20:05:22 +00:00
luke f093182370 m_who madness 2002-06-16 17:25:13 +00:00
luke 085eb45175 rmed conftool.c 2002-06-13 13:39:37 +00:00
luke 2fae48a6fc /who fixes again 2002-06-13 13:21:35 +00:00
luke 345265ffa8 Conf files updates, makenet change. 2002-06-12 12:37:15 +00:00
luke 08584d495c Cool JUNK mode patch to show nick changes, made other snotices in channel.c "pretty" 2002-06-12 04:31:52 +00:00
luke b04a23ca0b EXEMPT_ALL moved to unrealircd.conf, stop code more friendly. 2002-06-12 01:20:57 +00:00
luke ee664d26ce Updated win32 .exe icon. 2002-06-04 23:29:29 +00:00
luke 473c68a265 blah 2002-06-04 22:23:16 +00:00
luke 3632876ba7 fuck you sts 2002-05-28 05:21:49 +00:00
luke 10b7478eb6 fuck you 2002-05-28 04:45:06 +00:00
luke 869bc9bab9 still fux0red 2002-05-28 04:12:06 +00:00
luke 867bd08b5d omfg, fixed horrible mistake with mode patch! 2002-05-28 03:57:25 +00:00
luke 98683525d4 readded template.network 2002-05-27 20:03:56 +00:00
luke cf36508493 rmed a bunch of .network files 2002-05-27 20:03:02 +00:00
luke 722f5eeaf6 Moved cloak keys to .network file 2002-05-27 20:02:06 +00:00
luke 80800635a4 buildm4 diediedie 2002-05-27 17:47:08 +00:00
stskeeps 8896e5f3a0 Backported check_pings with loop.do_ban_check from 3.2
--Stskeeps
2002-05-27 17:28:53 +00:00
luke b818e63a09 Added +N oper override notices 2002-05-27 17:19:32 +00:00
luke 3f4fd52cff Bug fixes, temp kline fix. 2002-05-07 22:34:44 +00:00
luke 5087e07097 is a bot bold fix 2002-04-28 23:05:03 +00:00
luke 5d7e4de313 more m_kick fun 2002-04-27 22:15:44 +00:00
luke 825c12de9e more m_kick fixes 2002-04-26 15:57:35 +00:00
luke da592b1dba mistyped IsULine 2002-04-16 16:55:26 +00:00
luke ebcbf1f840 More operoverride code 2002-04-16 16:52:52 +00:00
luke 93ae6616d9 Rewrote anything to do with operoverride pretty much, other minor changes... 2002-04-16 04:56:38 +00:00
luke 6c7f028594 GZline command added. 2002-04-14 04:12:28 +00:00
luke d94af7a977 Updated m_oper w/ svsnoop patch 2002-04-13 19:08:46 +00:00
luke 8b7110a253 SVSNOOP fixes 2002-04-13 17:32:08 +00:00
luke 428312ee7d Imported 3.2 cloaking code...SVSNOOP bug still illudes me 2002-04-12 23:19:23 +00:00
luke b1f249cb75 Fixed m_kick, rmed files, resolved adchat bug. 2002-04-12 03:36:05 +00:00
luke b3587542ba More fixes and stuff (gline/shun/zline exempt, etc.) 2002-04-10 23:05:27 +00:00
luke 5690256e79 Removed zip.c 2002-04-09 18:05:21 +00:00
luke e1cfa45db2 Changed some more version tags... 2002-04-08 21:40:46 +00:00
luke 39b719d0e2 diediedie 2002-04-08 21:32:36 +00:00
luke f32e8c4a86 Go 3.1.4 Go! 2002-04-08 21:22:42 +00:00
cvs2hg eef2668ffb fixup commit for tag 'unreal3_1_3_komara' 2002-03-24 17:43:23 +00:00
luke 24afee2f4f Updated version tag 2002-03-24 17:43:22 +00:00
luke e4a59d36a8 Updated Release notes, that's about it... 2002-03-24 17:42:46 +00:00
luke 0402c8320f i r teh winar (rmed cio function headers in /include) 2002-03-23 20:47:56 +00:00
luke 17285e699b Added s_extra.c res_comp.c s_unreal.c so no longer crack induced! 2002-03-23 20:45:42 +00:00
luke c7173bb458 rmed .KEYS 2002-03-23 20:36:01 +00:00
luke ccc23e1eb2 rming stuff (more!) 2002-03-23 20:21:46 +00:00
luke 078da1b9ee trying to remove that fucking devel dir 2002-03-23 20:18:21 +00:00
luke b3d1a09808 another rming spree 2002-03-23 20:03:03 +00:00
luke d2d29f2294 went on rming spree 2002-03-23 19:54:43 +00:00
luke 9d164e76a3 went on an rming spree 2002-03-23 19:53:45 +00:00
luke 31471cf6ba *** empty log message *** 2002-03-23 19:41:40 +00:00
luke 2a35040f07 Updated copyright, fixed my umask (maybe) 2002-03-23 19:33:31 +00:00
luke 155310065b Unreal3.1.3-Komara [Beta4] Committed 2002-03-23 19:28:31 +00:00
cvs2hg cae7d1366d fixup commit for branch 'komara' 2000-12-14 16:07:34 +00:00
530 changed files with 68105 additions and 159447 deletions
+19
View File
@@ -0,0 +1,19 @@
Welcome to the UnrealIRCd configuration program. This program
will help you compile your IRC server by asking you questions
regarding your system and how you want the ircd to function.
If you need help setting up your server, mail
supporters@lists.unrealircd.org or ask on IRC:
/server irc.ircsystems.net, /join #unreal-support
Regardless, please read Unreal.nfo first along with all documentation
and FAQ's in doc/. If you do not do this, we will NOT help you!
If the code is changed in any way, or the version string is modified,
we will _NOT_ support the product. (Unless of course you got explicit
permission from one of the UnrealIRCd coders.)
Finally, unofficial UnrealIRCd/32 builds (if it doesn't say "genuine"
in the display) are _NOT_ supported.
- Luke (luke@unrealircd.com)
+8
View File
@@ -0,0 +1,8 @@
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| UnrealIRCD Custom Create Network Configuration|
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
| |
| This will not be too hard, just follow the |
| instructions, and answer the questions... |
| |
|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
+17
View File
@@ -0,0 +1,17 @@
Unreal3.1.6-Noon Release Notes
===================================
* Initial release preparation, no bugs fixed yet!
* If you are upgrading from Unreal3.1.4-Meadows, please read
doc/RELEASE-NOTES.3.1.5 as well.
* If you are upgrading from an even earlier version (before 3.1.4),
please read the doc/RELEASE-NOTES.3.1.4 file as well. There
were numerous important/significant changes between 3.1.4 and
earlier versions.
* Finally, read Unreal.nfo as usual AND THE DOCS in doc/.
- Luke (luke@unrealircd.com)
+17
View File
@@ -0,0 +1,17 @@
|-------------------------------------------------------------------------|
| Congratulations on your new SSL self-signed certificate for your IRCd. |
| However, wouldn't it be better that you get your certifcate signed by |
| some kind of Certification Authority (CA), so your users can check that |
| they are really connected to the real server, so they feel secure? |
| |
| An initiative has been started, to help this problem, as more and more |
| SSL-enabled IRC servers will be started in the future, and people will |
| have trouble authenticating that they are really at the right server. |
| This initiative is called OpenIRC CA - They offer you to sign |
| SSL certificates for use with your IRCd for free, |
| so your users can be sure that they can trust you and your server. |
| To get a signed certificate from them please visit the website |
| http://www.openirc-ca.eu.org |
| | Press enter to continue |
---------------------------------------------------------------------------
+17
View File
@@ -0,0 +1,17 @@
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Update Script v2.0
What download program do you want to use?
-----------------------------------------
Type "wget" for wget
Type "lynx" for lynx
>
-75
View File
@@ -1,75 +0,0 @@
# Ignore configure step
aclocal.m4
autom4te.cache
config.log
conftest.*
config.settings
extras/pcre2*
extras/c-ares*
config.status
extras/ircdcron/ircd.cron
extras/ircdcron/ircdchk
src/modules/snomasks/Makefile
src/modules/chanmodes/Makefile
src/modules/extbans/Makefile
src/modules/usermodes/Makefile
src/modules/Makefile
src/modules/third/Makefile
/Makefile
/src/Makefile
/unrealircd
include/setup.h
# Ignore tags file
tags
# Ignore editor files
*\#*
*~
# Ignore SSL Stuff
server.cert.pem
server.key.pem
server.req.pem
tls.rnd
# Ignores for platform stuff
.DS_Store
# Ignores for build artifacts
*.so
*.o
*.dSYM
*.dylib
src/ircd
src/version.c
src/include
# Ignores for mac stuff
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
## Obj-C/Swift specific
*.hmap
*.ipa
src/macosx/build/
DerivedData
src/macosx/pods/
# Doxygen generated files
doc/doxygen/
View File
-5
View File
@@ -1,5 +0,0 @@
Help out and make UnrealIRCd a better product!
You can do so by reporting issues, testing, programming, documenting,
translating, helping others, and more.
See https://www.unrealircd.org/docs/Contributing
+881
View File
@@ -0,0 +1,881 @@
/*
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2002 &
* The UnrealIRCd Team
*
* $Id$
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
[ Unreal4.0 ]
- Fixed a _serious_ bug in SERVER command, reported by Valen, Forrester,
M0rpheus, JK, and Hiten.
[ Unreal3.1.3 ]
-----------------------------------------------------------
Initial release, based on 3.1.1 code and lots of 3.2-beta
functions that are actually sane
-----------------------------------------------------------
resolv.h line 76
#if ((__GNU_LIBRARY__ == 6) && (__GLIBC__ >=2) && (__GLIBC_MINOR__ >= 2))
#define res_init __res_init
#endif
Fixes compile error w/ later glibc
--Luke
===================================
parse.c line 404
removed if (lifesux)
--Luke
===================================
s_bsd.c
first instance of HighscoreFD
removed the define
removed rhighest_fd as well
removed all instances of HighscoreFD()
changed rhighest_fd + 1 to MAXCONNECTION
(100% cpu fix from 3.1.1)
--Luke
===================================
channel.c
Took m_sjoin from 3.2
removed lp2
changed Member *lp to Link *lp;
Changed other stuff (document later?)
--Luke
===================================
s_serv.c
replaced m_server_estab with one from u32june12
--Luke
===================================
Fixed missing : on line 419 s_err.c (numeric 379)
--Luke
===================================
stole all m_chg* and m_set* functions from u32june12
in s_unreal.c
--Luke
===================================
stole sdesc from latest beta in s_unreal.c
--Luke
===================================
line 1683 in s_serv.c
added me to /info
--Luke
===================================
line 1342 res.c
added line sts foolishly deleted that broke win32 resolver
--Luke
===================================
line 2161 in channel.c
fixed mode segfault bug
--Luke
===================================
line 152, fixed #endif error
aln.c
--Luke
===================================
-------------------------------------------------------------
Beta2ish
-------------------------------------------------------------
line 341 ircd.c
win32 hates SIGQUIT, #ifndef it out.
--Zogg
===================================
line 1298 s_bsd.c
set_blocking() won't compile under msvc.
Not important, #ifndef'd out for win32
--Zogg
===================================
line 234 in Makefile.dist
fixed perms on ssl certs
--Luke
===================================
Added Zogg's win32 makefile that actually works.
--Luke
===================================
------------------------------------------------------------
Beta3ish
------------------------------------------------------------
Changed line 179 in ssl.c to
set_blocking(cptr->fd, NULL);
otherwise random segfaults on ssl connect occur
--Luke
===================================
Changed line 223 in ssl.c to
strcat(buf, (char *) my_itoa(bits));
otherwise got warning on compile in bsd
--Luke
===================================
Put in rest of patch for mode propagation bug
*whack*
--Luke
===================================
--------------------------------------------------------------
Beta4
--------------------------------------------------------------
Stole StripColors from 3.2-beta, resolves memory
leak in 3.1.3
--Luke
===================================
Rearranged doc/ slightly (moved some more stuff to
History
--Luke
===================================
s_user.c line 1946 - (char *)StripColors as per
new StripColors function from 3.2-beta
--Luke
===================================
stole add_exbanid and add_banid from devel
(other stuff was just weird)
--Luke
===================================
line 4748 in s_user.c for cases i and o added fix (svsmode)
line 4651 too (svs2mode)
for svsmode bug (thanks codemastr)
--Luke
===================================
line 829, 1035 in s_kline.c gline bug resolved
(again codemastr)
--Luke
===================================
line 1583 res.c fixed dns l, only opers!
(again codemastr)
--Luke
===================================
Modified ./Config to play nice with BSD
(and yes, God forbid, SunOS 5.x *shudder*)
--Luke
===================================
added -lsocket when compiling fdmaxcounter
in sunos 5.x, may produce crack induced result
but at least it compiles now
--Luke
===================================
145, list.c added passwd fix
deled cptr->passwd; above (line 135ish)
--Luke
===================================
*** 3.1.3 Released ***
[ Unreal 3.1.4 ]
--------------------------------------------------
The fixes and backports continue. Strange how much
time maintaining Unreal can eat up...
Beta1
--------------------------------------------------
Removed tech admin.
This feature is useless bloat. If you want it back
do NOT complain to any of the Unreal coders, feel
free to reimplement it yourself. Do note, however,
that if you modify the code in any way, shape, or
form you immediately give up your ability to
receive any type of support from us.
--Luke
===================================
Line 703 in ircd.c fixed...breaks
gcc3 compatibility (thanks to shellz.net's
NuC for reporting)
--Luke
===================================
Fixed issue in s_user.c where +H opers
could be identified by normal users in
a trivial manner (thanks to Magnet from
epiknet)
--Luke
===================================
s_user.c fixes
basically, /whois doesn't display snotice
if you're +W and do it to yourself
/who the same
and "is a secure connection" is no longer
bold (it was lame)
--Luke
===================================
s_serv.c fixes
fixed map bug that allowed you to trivially
find a hidden U lined server (hopefully)
--Luke
===================================
rmed zip.c (not used at all.)
and zip.h and anything related to zip
--Luke
===================================
E lines now match glines, zlines, shuns
(if you say yes in config)
--Luke
===================================
map bug still exists (earlier fix made it
worse)...removed.
--Luke
===================================
/adchat bug that sends it to coadmins twice
(coadmins are actually server admins as far
as the ircd is concerned for most purposes, no
need to send to both UMODES)
--Luke
===================================
rewrote m_kick almost entirely (it sucked)
--Luke
===================================
newdns.c removed - another useless file
--Luke
===================================
------------------------------------------------
Beta2 Released
------------------------------------------------
ripped cloak.c from 3.2, and added Config
options as needed.
--Luke
===================================
Fixed 3 svsnoops bugs, so it appears to be
actually working now...
--Luke
===================================
+S users no longer show channels in /whois
--Luke
===================================
Added a gzline command. I use it with bopm on
my network all the time, and am getting
sick of readding it after each new release.
Additionally, I think it's a useful command
for anyone to have.
--Luke
===================================
Revamped operoverride stuff so it's consistent
and somewhat sane. (also made NetAdmin.Chat
NetAdminChat to keep with other forms)
--Luke
===================================
Fixed m_kick more
--Luke
===================================
Made "is a bot.." not bold
--Luke
===================================
Fixed a bug with \r\n being mistakenly parsed
wrong. Thanks to John_z
--Luke
===================================
Added temp patch to m_kline to stop segfault
--Luke
===================================
------------------------------------------------
Beta3 Released
------------------------------------------------
Backported check_pings with loop.do_ban_check from 3.2
--Stskeeps
===================================
Added nice fix to HCN so that BOPM works natively
(it would still be wise to mod bopm yourself
and have it scan all clients by using +F, as I've
done, but whatever.)
--Luke
===================================
Moved cloak key definitions to .network file
--Luke
===================================
omfg, a patch that resolved some really interesting
problems with really long parameter modes has been
applied. (this in itself is a great reason to
upgrade)
--Luke
===================================
Moved exempt_all option to unrealircd.conf, no longer
a #define in settings.h & ./Config option.
--Luke
===================================
Made stop code error more stupid-people friendly
--Luke
===================================
Added code that shows nick changes on entire net
when umode +j (JUNK). Also, went through channel.c
and made all snotices look "nicer"
--Luke
===================================
Moved cloak keys to unrealircd.conf, since the
.network files are public domain (in general).
Go lynch Stskeeps if you don't like it.
--Luke
===================================
Actually added sample lines to unrealircd.conf
for EXEMPT_ALL and CLOAK_KEY_n. Also, changed
version number on both that and the .network
file, as both have changed since 3.1.3.
--Luke
===================================
Useful /who patch incorporated, thanks to
larne
--Luke
===================================
Rewrote all of /who, screw everyone's patches
mine are better!
--Luke
===================================
More /who madness! I've added an h flag, similar
to the o flag that you can append on the end
for opers, so for instance say you /who *bob* h
it will display real hosts instead of masked ones
in the replies.
--Luke
===================================
Oper invisibility is no longer enabled by default
but is a provided option in ./Config
--Luke
===================================
Changed information flag shown in /version. R now
appears if invisibility is compiled in (even if
disabled in unrealircd.conf)
--Luke
===================================
rmed Config.c (broken, severely) and networks.ndx
--Luke
===================================
Added win32-compile-guide in doc/ for people wanting
to compile their own version for windows.
--Luke
===================================
Once again we global when anyone that's not a local
oper opers. I like this, if you don't email me and
maybe I'll add a conf option for it.
--Luke
===================================
Deprecated /akill and /rakill. Please stop using
these commands. They're old and will be removed in
future releases. For now they simply add/remove a
permanent gline, which is essentially what an akill
is anyway (yes, I know they disappear when you rehash)
--Luke
===================================
Rewrote m_oper, massive mods to most set* and chg* functions
--Luke
===================================
Reintroduced original patch in channel.c with mode overflow
(saves char * for each function call)
-- Luke
===================================
Fixed a seriously stupid bug introduced by myself with SAMODE
globops. (Thanks to Zerwas)
--Luke
===================================
Added additional operoverride capabilities (namely
ability to view banlists, exemptlists, etc.)
--Luke
===================================
Played with I line password bug for a while
--Luke
===================================
Fixed (maybe?) an implementation with MAXBANLENGTH
--Luke
===================================
Thanks a TON to JK, applied patch he developed to
resolve desynch problem with mode +,-p/s.
--Luke
===================================
Fixed I line segfault bug...lots of fun. Thanks again
to JK for helping :)
--Luke
===================================
---------------------------------------------
Beta4 Released
---------------------------------------------
Incorporated STATS_ONLY_OPER patch thanks to
psycho
--Luke
===================================
Added JK /map patch to resolve hidden U lines
being trivially found.
--Luke
===================================
Fixed clients able to connect on server-only port
bug. (thanks to worf for reporting)
--Luke
===================================
Resolved halfops + operoverride issues
--Luke
===================================
Fixed problem where normal users could view topics of
+s/+p channels. (removed /topic functionality for
non channel members altogether. Channel topics can
still be obtained via /list)
--Luke
===================================
Finally fixed *all* mode problems that are known
at this time. Long parameters no longer create
desynchs, everything is happy! Fear.
--Luke
===================================
Thanks to Zerwas, added numeric 489 for SECUREONLYCHAN
so +z channels no longer respond with you're banned.
--Luke
===================================
Revamped operoverride again to better handle mode walks
--Luke
===================================
Fixed a SERIOUS security problem with c/n line passwords
Thanks a bunch to node357 for reporting!
--Luke
===================================
----------------------------------------------
Beta5 Released
----------------------------------------------
Fixed bug with mirc where +a/+q were misinterpreted as modes
without nick parameters.
--Luke
===================================
Implemented actual prefixes for +q and +a (~ and &)
--Luke
===================================
Modified is_chan_op and is_chanprot functions to better
respect hierarchy (chanowner is chanprot as well as chanop)
chanprot is chanop.
--Luke
===================================
Fixed m_gline and m_gzline bugs. (Thanks to nighthawk for
noticing)
--Luke
===================================
Fixed sjoin bug with ban propagation
--Luke
===================================
Fixed m_who bug with normal users using masks
--Luke
===================================
Rearranged structs in struct.h to be more memory efficient
(saved 4 bytes in User, in preparation for new operoverride
system.)
--Luke
===================================
Decided channel owners can deown themsleves, implemented
as such
--Luke
===================================
Revised operoverride system further, now default prompting
before permitting opers to walk channel modes.
--Luke
===================================
Scratch previous revision, redid override system altogether.
Now done via /invite. Sts' response to those of you that
don't like it: "fuck them"
--Luke
===================================
Fixed lowercase host errors with cloaking (sts' patch)
--Luke
===================================
do_mode_char fixes (mostly from sts)
--Luke
===================================
SJ3 fixes from codemastr for possible desynch
--Luke
===================================
Fixed prefix problem as per nighthawk
--Luke
===================================
Temp removed +q/+a prefixes to give client coders
chance to implement PREFIX= sanely
--Luke
===================================
Added a nice little win32 fix to cloak.c to stop snprintf
from breaking things all over the place
--Luke
===================================
Fixed win32 settings.h for the few who actually recompile
their own win32 version.
--Luke
===================================
Minor issue with +I and new invite system resolved.
We should remove +I altogether...
--Luke
===================================
Rmed a bunch of files in doc/ redid some other documentation.
--Luke
===================================
Finally redid /credits thanks to sts :P
--Luke
===================================
Fixed OPEROVERRIDE_VERIFY Bug
--Luke
===================================
*** Unreal3.1.4 Released ***
[ Unreal 3.1.5 ]
------------------------------------------
We begin this release with a stupid
bug fix. Yes, I severely broke userhost.
I'm sorry.
------------------------------------------
Beta1
----------------------------
Fixed userhost displaying * all the time
--Luke
===================================
Fixed broken m_invite, thanks to codemastr
--Luke
===================================
Fixed halfop kick priv bug thanks to JK
--Luke
===================================
Added Oo flags in version response if
OPEROVERRIDE is enabled, and OPEROVERRIDE_VERIFY
enabled.
--Luke
===================================
Removed LEAST_IDLE, served no useful purpose
really.
--Luke
===================================
Fixed grammatical error thanks to MorPheus
--Luke
===================================
Fixed m_invite, really. I tested it this time :)
--Luke
===================================
Changed +A/+O bans to act more sanely
--Luke
===================================
Fixed cloaking fun for hosts w/out . (from codemastr)
--Luke
===================================
Copied fixes to /helpop from 3.2 reported by FrostByghte
--Luke
===================================
Applied weird sts patch for dynamic allocation of nick
field in topics
--Luke
===================================
Fixed broken /who
--Luke
===================================
Fixed bug with /whois and +I
--Luke
===================================
Fixed exempt propagation bug
--Luke
===================================
------------------------------------------------------
Beta2 Released
------------------------------------------------------
Fixed m_who bug displaying channels
when it isn't supposed to, thanks to frozen
--Luke
===================================
Fixed issue with server IP addresses being
shown to normal +s lusers (thanks to MrAllthat)
--Luke
===================================
Added prefixes for channel owner/protected to
/who and /whois (& and ~). They probably should never
have been removed. Still to be implemented
are actual prefixes in /names.
--Luke
===================================
Small m_who bug with opers fixed.
--Luke
===================================
Implemented awesome new feature for operoverride, per
codemastr. You now need the letter "v" in your O line
in order to be able to override!
--Luke
===================================
------------------------------------------------------
Beta3 Released
------------------------------------------------------
Fixed problem with topics screwing up services
--Luke
===================================
Fixed semantics with operoverride_verify and +s/+p
channels.
--Luke
===================================
Kill me. Really. Still trying to fix services fun...
--Luke
===================================
Given up for now on fixing the services "problem."
(it isn't really a problem, afaik, it's just annoying.)
Anyone that has ideas about what causes it, or how
it can be fixed email luke@unrealircd.com.
The problem is that IRC Services 5 starts sending out
notices about being "unable to set modes for #channel"
blah blah. There isn't any indication of anything actually
being bounced, so we're not sure why it happens.
--Luke
===================================
*** Unreal 3.1.5 Released ***
[ Unreal 3.1.5.1 ]
--------------------------------------------------
Had I only known what I was getting myself into...
--------------------------------------------------
Fixed a "bug" too stupid to be listed here. No, I
didn't introduce it, and apparently it has existed
since pre-3.0. *shudder*
--Luke
===================================
Fixed bug with "empty" channels showing up in list with
60 something odd thousand users in it. (found by codemastr)
--Luke
===================================
Fixed compilation error when NO_OPEROVERRIDE is defined,
reported by Joe.
--Luke
===================================
Ummm, yea, you want to upgrade. There's a, um, bug that
probably isn't a good thing
--Luke
===================================
*** Unreal 3.1.5.1 Released ***
[ Unreal 3.1.6 ]
--------------------------------------------------
No comment.
--------------------------------------------------
Initial release prep, changing version numbers in cvs
(again).
===================================
Fixed /botserv bug, reported by SciFi
--Luke
===================================
Unbroke +A channels and bans. :-/
--Luke
===================================
Removed +I. Don't you dare even think about whining.
--Luke
===================================
Added chmode +R, requires umode +r to speak.
--Luke
===================================
Deleted extra, unused oflag...wmaster.
--Luke
===================================
Added a max of 500:500 to +f
--Luke
===================================
Removed USE_LONGMODE.
--Luke
===================================
Added modes S, M to common.h.
--Luke
===================================
Added end of stats messages in /gline, /gzline, /shun
--Luke
===================================
Fixed bug in channel mode +L
--Luke
===================================
Fixed -o+b user *!*@blah.com halfop stuff.
--Luke
===================================
Fixed bug where HCN would display exit client notices twice.
--Luke
===================================
Modified it so people with override flag in O line can
dechanown, dechanprot people.
--Luke
===================================
Small m_topic bug resolved
--Luke
===================================
Backported m_message fix from 3.2, fixed by Syzop, reported by Ashkrynt
-Stskeeps
===================================
*** Unreal3.1.6 released ***
[ Unreal 3.1.7 ]
--------------------------------------------------
...
--------------------------------------------------
Initial release prep, changing version numbers in cvs
(again).
--Luke
===================================
Fixed double snotice exit bug (probably)
--Luke
===================================
Fixed stats being visible to users even after defining
STATS_ONLYOPER in config.h
--Luke
===================================
Applied Syzop's fix for operoverride crash.
--Luke
===================================
Ported Syzop's fix for PRIVMSG/NOTICE bug.
--Luke
===================================
+1882 -776
View File
File diff suppressed because it is too large Load Diff
+15
View File
@@ -0,0 +1,15 @@
Send donations to:
------------------
UnrealIRCd Project
C/O Carsten Munk
P.O.Box 52
7400 Herning
Denmark
(if you want to that is .. it will just make us a little more able to code
even more on this project. You will get in /credits if you do so).
-- Stskeeps
[ $Id$ ]
+156
View File
@@ -0,0 +1,156 @@
$Id$
Installation Procedures for the UnrealIRCD:
=======================================================================
Created by Stskeeps <stskeeps@tspre.org>
=======================================================================
This document describes how to install ircd, the unix daemon that acts as
an IRC server.
For more information on UnrealIRCD contact us at
unreal-dev@lists.sourceforge.net
The UnrealIRCD is available from http://www.unrealircd.com
along with the latest copy of this document.
=======================================================================
This version of the UnrealIRCD is known to compile on the following
platforms, and with the following compilers. If you wish to add to this
list, send the relevant information to us.
OS and Version Compiler and Version Comments
------------------- ------------------------ -------------------------------
NetBSD 1.2B gcc 2.7.2
FreeBSD 2.1.0 gcc 2.6.3 Do NOT use crypt at all...
SunOS 4.1.4 gcc 2.7-96q1 (Cygnus)
Solaris 2.4 gcc 2.7-96q1 (Cygnus) (SunOS 5.4)
Solaris 2.5 SunWorks Pro C (SunOS 5.5.1)
cc: SC4.0 18 Oct 1995 C 4.0
Digital Unix 3.2 gcc 2.7-96q3 (Cygnus)
Linux 2.0.24 gcc 2.7.2.1
HPUX 9.01 gcc 2.6.3
HPUX 10.01 gcc 2.7-96q3 (Cygnus)
Linux PPC (iMac)
AmigaOS 3.0 GCC egcs-2.91.66 (compile with -D_AMIGA)
Windows NT/95 MSVC++ 4.0
Linux Mandrake Read FAQ
Linux 2.3.x gcc 2.95.2 glibc 2.1.3
=======================================================================
Unpacking the Distribution
If you are reading this, you have most likely already done this, but to
recap:
The UnrealIRCD server comes tarred and gziped. To uncompress it and expand
it, use the following commands at the Unix prompt:
gzip -d Unreal3.1.tar.gz
tar -xvf Unreal3.1.tar
This will create a new directory called Unreal3.0 and unpack the source
into it.
=======================================================================
Editing the Configuration Files
In previous versions of the source code many files had to be edited to
make things right for any given server.
In this version you DO NOT NEED TO EDIT THE Makefile OR ANY FILES
IN include! That is, unless you set some strange options. If you
find the need to edit include/config.h, for example,
mail us and tell us why ; Config can be made smarter, and that will make
it so you won't have to edit anything for the next version.
=======================================================================
Compiling Your Server
Windows users: You must compile the Config program first. To do this
run the following command: $CC src\Config.c
where $CC is the name of your compiler. for MSVC users that is 'cl'
To build the server, simply run
% ./Config
to start the configuraton program. This program looks at your system
and generate the include/setup.h, include/settings.h, and Options files.
You will be asked some questions. Usually the default answers are the best
ones and most correct. To accept the default, just hit RETURN.
Next, type 'make'. This will compile your server. Depending on your system,
this may be a good time for a caffeine break. (MSVC users run 'nmake')
Hopefully, the server will compile without incident. If it does not, and
you are not able to determine the error, please email
unreal-dev@lists.sourceforge.net and hopefully someone will be able to help you with the problem. If you
do need to fix something, mail there with a patch.
BE CERTAIN TO INCLUDE OPERATING SYSTEM INFORMATION (uname -a) AND COMPILER
VERSION (gcc -v, for instance) IN ALL BUG REPORTS.
=======================================================================
Installing the Files
'make install' does not work in this release -- it doesn't do anything
except a compile if that is needed.
The only files you need are the binary from src/ircd and and an ircd.conf
(see below for copying doc/example.conf as your initial ircd.conf). You
probably will want to create a MOTD file too, as well as place the man
pages from the doc directory to appropriate place in your system.
=======================================================================
Configuring Your Server
The previous step places a file named 'example.conf' into your irc
directory you specified to Config.
To create an IRC configuration file, edit: ircd.conf
Now edit this file to reflect your server. The file is mainly
self-explanatory. Note that if you plan to use your server on ROXnet,
make sure that you have the following line:
U:services.roxnet.org:*:*
If you need help configuring your file, please connect to ROXnet,
(irc.flirt.org or irc.roxnet.org) - go to channel #UnrealIRCd, and ask.
=======================================================================
Starting Your Server
Simply enter the complete path to the executable into the Unix command
line, then hit return. Your server is now operational, assuming that you
have completed all the steps described above.
NOTE: If you get something like the following when running ircd:
ircd fd table too big
Hard Limit: 256 IRC max: 1024
Fix MAXCONNECTIONS
You need to change config.h and recompile. Find the line that says
"#define MAXCONNECTIONS 1024", and change it to the number given after
"Hard Limit" (most likely 256), then make the server again, following the
above instructions.
Enjoy!
- The UnrealIRCd Team - unreal-dev@lists.sourceforge.net
+238
View File
@@ -0,0 +1,238 @@
#/************************************************************************
#* IRC - Internet Relay Chat, Makefile
#* Copyright (C) 1990, Jarkko Oikarinen
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*/
CC=gcc
INCLUDEDIR=../include
NETWORKSDIR=
FROMDOS=/home/cmunk/bin/4dos
# [CHANGEME]
# Default flags:
# Change XCFLAGS if you don't like what Config puts there. Same with
# IRCDLIBS.
#
# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave
# IRCDLIBS blank. If that fails, try recomendations below.
#
XCFLAGS=
IRCDLIBS=
CRYPTOLIB=
OPENSSLINCLUDES=
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
# For Irix 4.x (SGI), use the following:
#CFLAGS= -g -cckr -I$(INCLUDEDIR)
#
# on NEXT use:
#CFLAGS=-bsd -I$(INCLUDEDIR)
#on NeXT other than 2.0:
#IRCDLIBS=-lsys_s
#
# AIX 370 flags
#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR)
#IRCDLIBS=-lbsd
#
# Dynix/ptx V2.0.x
#CFLAGS= -I$(INCLUDEDIR) -O -Xo
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
# Dynix/ptx V1.x.x
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
#use the following on SUN OS without nameserver libraries inside libc
#IRCDLIBS=-lresolv
#
# Solaris 2
#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen
#
# ESIX
#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude
#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl
#
# LDFLAGS - flags to send the loader (ld). SunOS users may want to add
# -Bstatic here.
#
#LDFLAGS=-Bstatic
#
#Dell SVR4
#CC=gcc
#CFLAGS= -I$(INCLUDEDIR) -O2
#IRCDLIBS=-lsocket -lnsl -lucb
# [CHANGEME]
# IRCDMODE is the mode you want the binary to be.
# The 4 at the front is important (allows for setuidness)
#
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
# you are not defining CMDLINE_CONFIG
IRCDMODE = 711
# [CHANGEME]
# IRCDDIR must be the same as DPATH in include/config.h
#
IRCDDIR=/usr/local/lib/ircd
# [CHANGEME]
# Some SunOS versions want this. Try it without first.
#RES=res_init.o res_comp.o res_mkquery.o
# BSDI systems want this.
#RES=res_skipname.o
# The rest are perfectly content with this.
RES=
#
# If your system is lacking regex, uncomment this line
#
#REGEX=../extras/regex/regex.o
REGEX=
# [CHANGEME]
# If you get a compile-time error dealing with u_int32_t, comment out
# this line.
# NEED_U_INT32_T= -DNEED_U_INT32_T
NEED_U_INT32_T=
# [CHANGEME]
# If you get a link-time error dealing with strtoul, comment out
# this line.
# STRTOUL= strtoul.o
STRTOUL=
# [CHANGEME]
# If you get crashes around a specific number of clients, and that client
# load comes close or a little over the system-defined value of FD_SETSIZE,
# override it here and see what happens.
FD_SETSIZE=
# Where is your openssl binary
OPENSSLPATH=
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(NEED_U_INT32_T) $(FD_SETSIZE)
SHELL=/bin/sh
SUBDIRS=src
BINDIR=$(IRCDDIR)
MANDIR=/usr/local/man
INSTALL=/usr/bin/install
RM=rm
CP=cp
TOUCH=touch
all: build
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
'MANDIR=${MANDIR}' 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'RES=${RES}' 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
'CRYPTOLIB=${CRYPTOLIB}' 'REGEX=${REGEX}' \
'CRYPTOINCLUDES=${CRYPTOINCLUDES}'
server:
build:
-@if [ ! -f include/setup.h ] ; then \
echo "Hmm...doesn't look like you've run Config..."; \
echo "Doing so now."; \
sh Config; \
fi
@for i in $(SUBDIRS); do \
echo "Building $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
done
@echo ' __________________________________________________ '
@echo '| Compile is now complete. Now you have to go do |'
@echo '| The load-time configuration - try go read the |'
@echo '| file "dynconf" using your favourite viewer or |'
@echo '| editor. The file will contain instructions on how|'
@echo '| to do the dynamic configuration :) |'
@echo '| You might want to see include/config.h to adjust |'
@echo '| some settings |'
@echo '| |'
@echo '| If you really like UnrealIRCd, and would like to |'
@echo '| make a donation, please read the Donation file in|'
@echo '| this archive. :) |'
@echo '| |'
@echo '| Thanks for using Unreal IRCd! If you are in need |'
@echo '| for any kind of help regarding the IRCd please |'
@echo '| read the Unreal.nfo file. |'
@echo '|__________________________________________________|'
clean:
$(RM) -f *~ \#* core *.orig include/*.orig
@for i in $(SUBDIRS); do \
echo "Cleaning $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
done
-@if [ -f include/setup.h ] ; then \
echo "To really restart installation, remove include/setup.h" ; \
fi
-@if [ -f include/settings.h ] ; then \
echo "and include/settings.h" ; \
fi
cleandir: clean
rm -rf include/networks.h include/setup.h include/settings.h Makefile Settings
makex:
chmod +x Config newnet ircd ircdcron/ircdchk killircd
chmod +x makeconf rehash ircdreg
fromdos: cleandir
$(FROMDOS) -dv *
$(FROMDOS) -dv src/*
$(FROMDOS) -dv include/*
$(FROMDOS) -dv doc/*
$(FROMDOS) -dv crypt/*
$(FROMDOS) -dv ircdcron/*
makedist: makex
echo "Stamping.."
stamp: makedist
echo "/* Auto created release stamping */" > include/stamp.h
echo "#define RELEASEID2 \"`date +%s`\"" >> include/stamp.h
echo "#define RELEASESTUFF \"`hostname`\"" >> include/stamp.h
echo "" >> include/stamp.h
depend:
@for i in $(SUBDIRS); do \
echo "Making dependencies in $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
done
install: all
@echo "Now install by hand; make install is broken."
pem: src/ssl.cnf
@echo "Generating certificate request .. "
$(OPENSSLPATH) req -new -config src/ssl.cnf -out server.req.pem \
-keyout server.key.pem -nodes
@echo "Generating self-signed certificate .. "
$(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \
-key server.key.pem -out server.cert.pem
@echo "Generating fingerprint .."
$(OPENSSLPATH) x509 -subject -dates -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
chmod g-rwx server.req.pem server.key.pem server.cert.pem
@echo "Done!"
-276
View File
@@ -1,276 +0,0 @@
#/************************************************************************
#* IRC - Internet Relay Chat, Makefile
#* Copyright (C) 1990, Jarkko Oikarinen
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*/
CC=@CC@
INCLUDEDIR=@UNRLINCDIR@
NETWORKSDIR=
FROMDOS=/home/cmunk/bin/4dos
# [CHANGEME]
# Default flags:
# Change XCFLAGS if you don't like what Config puts there. Same with
# IRCDLIBS.
#
# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave
# IRCDLIBS blank. If that fails, try recomendations below.
#
#XCFLAGS=-O -g -export-dynamic
IRCDLIBS=@IRCDLIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @SODIUM_LIBS@ @PTHREAD_LIBS@
CRYPTOLIB=@CRYPTOLIB@
OPENSSLINCLUDES=
XCFLAGS=@PTHREAD_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @SODIUM_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
# For Irix 4.x (SGI), use the following:
#CFLAGS= -g -cckr -I$(INCLUDEDIR)
#
# on NEXT use:
#CFLAGS=-bsd -I$(INCLUDEDIR)
#on NeXT other than 2.0:
#IRCDLIBS=-lsys_s
#
# AIX 370 flags
#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR)
#IRCDLIBS=-lbsd
#
# Dynix/ptx V2.0.x
#CFLAGS= -I$(INCLUDEDIR) -O -Xo
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
# Dynix/ptx V1.x.x
#IRCDLIBS= -lsocket -linet -lnsl -lseq
#
#use the following on SUN OS without nameserver libraries inside libc
#IRCDLIBS=-lresolv
#
# Solaris 2
#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen
#
# ESIX
#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude
#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl
#
# LDFLAGS - flags to send the loader (ld). SunOS users may want to add
# -Bstatic here.
#
#LDFLAGS=-Bstatic
#
#Dell SVR4
#CC=gcc
#CFLAGS= -I$(INCLUDEDIR) -O2
#IRCDLIBS=-lsocket -lnsl -lucb
# [CHANGEME]
# IRCDMODE is the mode you want the binary to be.
# The 4 at the front is important (allows for setuidness)
#
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
# you are not defining CMDLINE_CONFIG
IRCDMODE = 711
URL=@URL@
# Where is your openssl binary
OPENSSLPATH=@OPENSSLPATH@
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS)
XLDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@ @LDFLAGS@
LDFLAGS=$(XLDFLAGS)
SHELL=/bin/sh
SUBDIRS=src
BINDIR=@BINDIR@
INSTALL=@INSTALL@
RM=@RM@
CP=@CP@
TOUCH=@TOUCH@
RES=
all: build
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' \
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'SHELL=${SHELL}' \
'CRYPTOLIB=${CRYPTOLIB}' \
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
'URL=${URL}'
custommodule:
@if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
+cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
server: Makefile
build: Makefile
-@if [ ! -f include/setup.h ] ; then \
echo "Hmm...doesn't look like you've run Config..."; \
echo "Doing so now."; \
sh Config; \
fi
@+for i in $(SUBDIRS); do \
echo "Building $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
done
@echo ''
@echo '* UnrealIRCd compiled successfully'
@echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !'
@echo ''
clean:
$(RM) -f *~ \#* core *.orig include/*.orig
@+for i in $(SUBDIRS); do \
echo "Cleaning $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
done
-@if [ -f include/setup.h ] ; then \
echo "To really restart installation, remove include/setup.h" ; \
fi
cleandir: clean
rm -rf include/setup.h Makefile Settings
distclean: cleandir
rm -rf extras/*.bak extras/*.tar extras/c-ares
rm -rf extras/c-ares-* extras/tre-*
rm -rf config.log config.settings *.pem ircd.* unrealircd
rm -rf Makefile config.status
depend:
@+for i in $(SUBDIRS); do \
echo "Making dependencies in $$i";\
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
done
install: all
$(INSTALL) -m 0700 -d $(DESTDIR)@BINDIR@
$(INSTALL) -m 0700 src/ircd $(DESTDIR)@BINDIR@/unrealircd
$(INSTALL) -m 0700 extras/unrealircd-upgrade-script $(DESTDIR)@BINDIR@/unrealircd-upgrade-script
$(INSTALL) -m 0700 -d $(DESTDIR)@DOCDIR@
$(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc doc/KEYS doc/RELEASE-NOTES.md $(DESTDIR)@DOCDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.default.conf $(DESTDIR)@CONFDIR@
$(INSTALL) -m 0600 doc/conf/*.optional.conf $(DESTDIR)@CONFDIR@
-@if [ ! -f "$(DESTDIR)@CONFDIR@/modules.sources.list" ] ; then \
$(INSTALL) -m 0600 doc/conf/modules.sources.list $(DESTDIR)@CONFDIR@ ; \
fi
-@if [ ! -f "$(DESTDIR)@CONFDIR@/spamfilter.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/spamfilter.conf $(DESTDIR)@CONFDIR@ ; \
fi
-@extras/patches/patch_spamfilter_conf "$(DESTDIR)@CONFDIR@"
-@if [ ! -f "$(DESTDIR)@CONFDIR@/badwords.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/badwords.conf $(DESTDIR)@CONFDIR@ ; \
fi
-@if [ ! -f "$(DESTDIR)@CONFDIR@/dccallow.conf" ] ; then \
$(INSTALL) -m 0600 doc/conf/dccallow.conf $(DESTDIR)@CONFDIR@ ; \
fi
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/aliases
$(INSTALL) -m 0600 doc/conf/aliases/*.conf $(DESTDIR)@CONFDIR@/aliases
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/help
$(INSTALL) -m 0600 doc/conf/help/*.conf $(DESTDIR)@CONFDIR@/help
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/examples
$(INSTALL) -m 0600 doc/conf/examples/*.conf $(DESTDIR)@CONFDIR@/examples
$(INSTALL) -m 0700 unrealircd $(DESTDIR)@SCRIPTDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@
@rm -f $(DESTDIR)@MODULESDIR@/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/*.so $(DESTDIR)@MODULESDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/usermodes
@rm -f $(DESTDIR)@MODULESDIR@/usermodes/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/usermodes/*.so $(DESTDIR)@MODULESDIR@/usermodes
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/chanmodes
@rm -f $(DESTDIR)@MODULESDIR@/chanmodes/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/chanmodes/*.so $(DESTDIR)@MODULESDIR@/chanmodes
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/snomasks
@rm -f $(DESTDIR)@MODULESDIR@/snomasks/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/snomasks/*.so $(DESTDIR)@MODULESDIR@/snomasks
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/extbans
@rm -f $(DESTDIR)@MODULESDIR@/extbans/*.so 1>/dev/null 2>&1
$(INSTALL) -m 0700 src/modules/extbans/*.so $(DESTDIR)@MODULESDIR@/extbans
@#If the conf/ssl directory exists then rename it here to conf/tls
@#and add a symlink for backwards compatibility (so that f.e. certbot
@#doesn't randomly fail after an upgrade to U5).
-@if [ -d "$(DESTDIR)@CONFDIR@/ssl" ] ; then \
mv "$(DESTDIR)@CONFDIR@/ssl" "$(DESTDIR)@CONFDIR@/tls" ; \
ln -s "$(DESTDIR)@CONFDIR@/tls" "$(DESTDIR)@CONFDIR@/ssl" ; \
fi
$(INSTALL) -m 0700 -d $(DESTDIR)@CONFDIR@/tls
$(INSTALL) -m 0600 doc/conf/tls/curl-ca-bundle.crt $(DESTDIR)@CONFDIR@/tls
@# delete modules/cap directory, to avoid confusing with U4 to U5 upgrades:
rm -rf $(DESTDIR)@MODULESDIR@/cap
$(INSTALL) -m 0700 -d $(DESTDIR)@MODULESDIR@/third
@rm -f $(DESTDIR)@MODULESDIR@/third/*.so 1>/dev/null 2>&1
@#This step can fail with zero files, so we ignore exit status:
-$(INSTALL) -m 0700 src/modules/third/*.so $(DESTDIR)@MODULESDIR@/third
$(INSTALL) -m 0700 -d $(DESTDIR)@TMPDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@CACHEDIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@PERMDATADIR@
$(INSTALL) -m 0700 -d $(DESTDIR)@LOGDIR@
-@if [ ! -f "$(DESTDIR)@CONFDIR@/tls/server.cert.pem" ] ; then \
$(INSTALL) -m 0600 server.req.pem $(DESTDIR)@CONFDIR@/tls ; \
$(INSTALL) -m 0600 server.key.pem $(DESTDIR)@CONFDIR@/tls ; \
$(INSTALL) -m 0600 server.cert.pem $(DESTDIR)@CONFDIR@/tls ; \
fi
@rm -f $(DESTDIR)@SCRIPTDIR@/source
ln -s @BUILDDIR@ $(DESTDIR)@SCRIPTDIR@/source
@echo ''
@echo '* UnrealIRCd is now installed.'
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \
fi
@echo '* Directory layout:'
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
echo ' * Base directory: @SCRIPTDIR@' ; \
fi
@echo ' * Configuration files: @CONFDIR@'
@echo ' * Log files: @LOGDIR@'
@echo ' * Modules: @MODULESDIR@'
@echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"'
@echo ''
@echo '* Consult the documentation online at:'
@echo ' * https://www.unrealircd.org/docs/'
@echo ' * https://www.unrealircd.org/docs/FAQ'
@echo '* You may also wish to install a cron job to ensure UnrealIRCd is always running:'
@echo ' * https://www.unrealircd.org/docs/Cron_job'
@echo ''
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
fi
pem: extras/tls.cnf
@echo "Generating server key..."
$(OPENSSLPATH) ecparam -out server.key.pem -name secp384r1 -genkey
@echo "Generating certificate request..."
$(OPENSSLPATH) req -new \
-config extras/tls.cnf -sha256 -out server.req.pem \
-key server.key.pem -nodes
@echo "Generating self-signed certificate..."
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -nodes -in server.req.pem \
-key server.key.pem -out server.cert.pem
@echo "Setting permissions on server.*.pem files..."
chmod o-rwx server.req.pem server.key.pem server.cert.pem
chmod g-rwx server.req.pem server.key.pem server.cert.pem
Makefile: config.status Makefile.in
./config.status
-1130
View File
File diff suppressed because it is too large Load Diff
-58
View File
@@ -1,58 +0,0 @@
[![Twitter Follow](https://img.shields.io/twitter/follow/Unreal_IRCd.svg?style=social&label=Follow)](https://twitter.com/Unreal_IRCd)
## About UnrealIRCd
UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999.
It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd
with a market share of 42%. UnrealIRCd is a highly advanced IRCd with a strong
focus on modularity, an advanced and highly configurable configuration file.
Key features include SSL/TLS, cloaking, its advanced anti-flood and anti-spam systems,
swear filtering and module support. We are also particularly proud on our extensive
online documentation.
## How to get started
Please consult our excellent online documentation at https://www.unrealircd.org/docs/
when setting up the IRCd!
### Step 1: Installation
#### Windows
Simply download the UnrealIRCd Windows version from www.unrealircd.org
Alternatively you can compile UnrealIRCd for Windows yourself. However this is not straightforward and thus not recommended.
#### *BSD/Linux/macOS
Do the following steps under a separate account for running UnrealIRCd,
[do NOT compile or run as root](https://www.unrealircd.org/docs/Do_not_run_as_root).
### Step 1: Compile the IRCd
* Run `./Config`
* Run `make`
* Run `make install`
* Now change to the directory where you installed UnrealIRCd, e.g. `cd /home/xxxx/unrealircd`
### Step 2: Configuration
Configuration files are stored in the conf/ folder by default (eg: /home/xxxx/unrealircd/conf)
#### Create a configuration file
If you are new, then you need to create your own configuration file:
Copy conf/examples/example.conf to conf/ and call it unrealircd.conf.
Then open it in an editor and carefully modify it using the documentation and FAQ as a guide (see below).
### Step 3: Booting
#### Linux/*BSD/macOS
Run `./unrealircd start` in the directory where you installed UnrealIRCd.
#### Windows
Start -> All Programs -> UnrealIRCd -> UnrealIRCd
## Documentation & FAQ
You can find the **documentation** online at: https://www.unrealircd.org/docs/
We also have a good **FAQ**: https://www.unrealircd.org/docs/FAQ
## Website, support, and other links ##
* https://www.unrealircd.org - Our main website
* https://forums.unrealircd.org - Support
* https://bugs.unrealircd.org - Bug tracker
* ircs://irc.unrealircd.org:6697/unreal-support - IRC support
-22
View File
@@ -1,22 +0,0 @@
# Security Policy
## Supported Versions
* The latest *stable* release of the 5.x branch (until 2023-07-01)
* The latest *stable* release of the 6.x branch
See [UnrealIRCd releases](https://www.unrealircd.org/docs/UnrealIRCd_releases) for information on older versions and End Of Life dates.
## Reporting a Vulnerability
Please report issues on the [bug tracker](https://bugs.unrealircd.org) and in the bug submit form **set the 'View Status' to 'private'**.
Do not report security issues on the forums or in a public IRC channel such as #unreal-support.
If you insist on e-mail then you can use syzop@unrealircd.org or security@unrealircd.org. Again, the bug tracker is preferred.
If you are *unsure* if something is a security issue, then report it at the bug tracker as a 'private' bug anyway. Better safe than sorry.
Do not ask around in public channels or forums.
You should get a response or at least an acknowledgement soon. If you don't hear back within 24 hours, then please try to contact us again.
## Full policy
See https://www.unrealircd.org/docs/Policy:_Handling_of_security_issues for full information.
Executable
+37
View File
@@ -0,0 +1,37 @@
#!/bin/sh
clear
echo "Starting up UnrealIRCd Setup"
echo ""
echo "Press enter to proceed to setup..."
read cc
more -d Unreal.nfo
echo "Press enter to proceed to FAQ..."
read cc
more -d doc/faq
echo "Press enter to proceed to configuration..."
read cc
if [ "$1" != "-noconfig" ] ; then
./Config
fi
echo "Press enter to proceed to compiling..."
read cc
make
echo "Press enter to proceed to ircd.conf making..."
read cc
./makeconf
echo "Press enter to proceed to network configuration..."
read cc
clear
echo "Do you want to use one of these network files, or make your own?"
cd networks
ls *.network
echo "[Type "no" if you want to make your own]"
read cc
if [ "$cc" == "no" ] ; then
./makenet
fi
echo "Press enter to proceed to dynamic ircd configuration..."
read cc
pico unrealircd.conf
echo "You should be able to run UnrealIRCd using ./ircd now".
+59
View File
@@ -0,0 +1,59 @@
===============================================
= UnrealIRCd v3.1.6 =
===============================================
Was brought to you by:
* Stskeeps <stskeeps@unrealircd.com>
* codemastr <codemastr@unrealircd.com>
* Luke <luke@unrealircd.com>
Precenses on the Internet:
* http://www.unrealircd.com
CVS:
To get anonymous access: (read only)
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot login"
press enter when asked for password
and to get latest stable:
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r stable -d Unreal-stable unreal"
latest beta:
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r beta -d Unreal-beta unreal"
* To get support
================
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
[Note: Please be patient after asking questions, we may do other stuff
or we're away. Don't repeat questions, we heard you first time,
READ THE TOPIC before you ask anything. We do this on a free
base so we are volunteeringly helping you, but we are humans
like you, and we got to have peace at times as well.]
* Mailing list: unreal-support@lists.sourceforge.net (for support)
* READ doc/faq BEFORE ASKING QUESTIONS!
* Got a bug to report?
======================
* If the server crashes and dumps core do this:
* Go into the Unreal directory and type this:
gdb src/ircd core.filename
where core.filename is the filename in the dumping core message
if it loads gdb, (not saying "command not found" etc), type "bt" in
the program (type "quit" to get out again)
The output coming out there please mail it to
unreal-dev@lists.sourceforge.net, along with OS type,
what "uname -a" says, any clues what it is, if you did anything etc
etc. Please keep the core dump files if we ask you to mail us them
if needed
* If you experince any wierdnesses (that doesnt crash the server)
please mail unreal-dev@lists.sourceforge.net with any clues on what
you did, what you experinced etc.
* Got a suggestion?
===================
* Mail it to unreal-dev@lists.sourceforge.net :) or catch one from
the Unreal team online on IRC:)
-3
View File
@@ -1,3 +0,0 @@
all:
@autoconf
cp configure ..
-1438
View File
File diff suppressed because it is too large Load Diff
-1810
View File
File diff suppressed because it is too large Load Diff
View File
-72
View File
@@ -1,72 +0,0 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
#
# DESCRIPTION
#
# Check whether the given FLAG works with the current language's compiler
# or gives an error. (Warnings, however, are ignored)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# If EXTRA-FLAGS is defined, it is added to the current language's default
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
# force the compiler to issue an error when a bad flag is given.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 2
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[AS_VAR_SET(CACHEVAR,[yes])],
[AS_VAR_SET(CACHEVAR,[no])])
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
[m4_default([$2], :)],
[m4_default([$3], :)])
AS_VAR_POPDEF([CACHEVAR])dnl
])dnl AX_CHECK_COMPILE_FLAGS
-71
View File
@@ -1,71 +0,0 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
#
# DESCRIPTION
#
# Check whether the given FLAG works with the linker or gives an error.
# (Warnings, however, are ignored)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# If EXTRA-FLAGS is defined, it is added to the linker's default flags
# when the check is done. The check is thus made with the flags: "LDFLAGS
# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
# issue an error when a bad flag is given.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 2
AC_DEFUN([AX_CHECK_LINK_FLAG],
[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
ax_check_save_flags=$LDFLAGS
LDFLAGS="$LDFLAGS $4 $1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[AS_VAR_SET(CACHEVAR,[yes])],
[AS_VAR_SET(CACHEVAR,[no])])
LDFLAGS=$ax_check_save_flags])
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
[m4_default([$2], :)],
[m4_default([$3], :)])
AS_VAR_POPDEF([CACHEVAR])dnl
])dnl AX_CHECK_LINK_FLAGS
-332
View File
@@ -1,332 +0,0 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
#
# DESCRIPTION
#
# This macro figures out how to build C programs using POSIX threads. It
# sets the PTHREAD_LIBS output variable to the threads library and linker
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
# flags that are needed. (The user can also force certain compiler
# flags/libs to be tested by setting these environment variables.)
#
# Also sets PTHREAD_CC to any special C compiler that is needed for
# multi-threaded programs (defaults to the value of CC otherwise). (This
# is necessary on AIX to use the special cc_r compiler alias.)
#
# NOTE: You are assumed to not only compile your program with these flags,
# but also link it with them as well. e.g. you should link with
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
#
# If you are only building threads programs, you may wish to use these
# variables in your default LIBS, CFLAGS, and CC:
#
# LIBS="$PTHREAD_LIBS $LIBS"
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# CC="$PTHREAD_CC"
#
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
#
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
# PTHREAD_CFLAGS.
#
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
# is not found. If ACTION-IF-FOUND is not specified, the default action
# will define HAVE_PTHREAD.
#
# Please let the authors know if this macro fails on any platform, or if
# you have any other suggestions or comments. This macro was based on work
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
# grateful for the helpful feedback of numerous users.
#
# Updated for Autoconf 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 21
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
AC_DEFUN([AX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_PUSH([C])
ax_pthread_ok=no
# We used to check for pthread.h first, but this fails if pthread.h
# requires special compiler flags (e.g. on True64 or Sequent).
# It gets checked for in the link test anyway.
# First of all, check if the user has set any of the PTHREAD_LIBS,
# etcetera environment variables, and if threads linking works using
# them:
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
AC_MSG_RESULT([$ax_pthread_ok])
if test x"$ax_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
fi
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
# We must check for the threads library under a number of different
# names; the ordering is very important because some systems
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
# libraries is broken (non-POSIX).
# Create a list of thread flags to try. Items starting with a "-" are
# C compiler flags, and other items are library names, except for "none"
# which indicates that we try without any flags at all, and "pthread-config"
# which is a program returning the flags for the Pth emulation library.
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
# The ordering *is* (sometimes) important. Some notes on the
# individual items follow:
# pthreads: AIX (must check this before -lpthread)
# none: in case threads are in libc; should be tried before -Kthread and
# other compiler flags to prevent continual compiler warnings
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
# -pthreads: Solaris/gcc
# -mthreads: Mingw32/gcc, Lynx/gcc
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
# doesn't hurt to check since this sometimes defines pthreads too;
# also defines -D_REENTRANT)
# ... -mt is also the pthreads flag for HP/aCC
# pthread: Linux, etcetera
# --thread-safe: KAI C++
# pthread-config: use pthread-config program (for GNU Pth library)
case ${host_os} in
solaris*)
# On Solaris (at least, for some versions), libc contains stubbed
# (non-functional) versions of the pthreads routines, so link-based
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
# a function called by this macro, so we could check for that, but
# who knows whether they'll stub that too in a future libc.) So,
# we'll just look for -pthreads and -lpthread first:
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
;;
darwin*)
ax_pthread_flags="-pthread $ax_pthread_flags"
;;
esac
# Clang doesn't consider unrecognized options an error unless we specify
# -Werror. We throw in some extra Clang-specific options to ensure that
# this doesn't happen for GCC, which also accepts -Werror.
AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
save_CFLAGS="$CFLAGS"
ax_pthread_extra_flags="-Werror"
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
[AC_MSG_RESULT([yes])],
[ax_pthread_extra_flags=
AC_MSG_RESULT([no])])
CFLAGS="$save_CFLAGS"
if test x"$ax_pthread_ok" = xno; then
for flag in $ax_pthread_flags; do
case $flag in
none)
AC_MSG_CHECKING([whether pthreads work without any flags])
;;
-*)
AC_MSG_CHECKING([whether pthreads work with $flag])
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
*)
AC_MSG_CHECKING([for the pthreads library -l$flag])
PTHREAD_LIBS="-l$flag"
;;
esac
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
# need a special flag -Kthread to make this header compile.)
# We check for pthread_join because it is in -lpthread on IRIX
# while pthread_create is in libc. We check for pthread_attr_init
# due to DEC craziness with -lpthreads. We check for
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
static void routine(void *a) { a = 0; }
static void *start_routine(void *a) { return a; }],
[pthread_t th; pthread_attr_t attr;
pthread_create(&th, 0, start_routine, 0);
pthread_join(th, 0);
pthread_attr_init(&attr);
pthread_cleanup_push(routine, 0);
pthread_cleanup_pop(0) /* ; */])],
[ax_pthread_ok=yes],
[])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT([$ax_pthread_ok])
if test "x$ax_pthread_ok" = xyes; then
break;
fi
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
done
fi
# Various other checks:
if test "x$ax_pthread_ok" = xyes; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
AC_MSG_CHECKING([for joinable pthread attribute])
attr_name=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
[int attr = $attr; return attr /* ; */])],
[attr_name=$attr; break],
[])
done
AC_MSG_RESULT([$attr_name])
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
[Define to necessary symbol if this constant
uses a non-standard name on your system.])
fi
AC_MSG_CHECKING([if more special flags are required for pthreads])
flag=no
case ${host_os} in
aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
osf* | hpux*) flag="-D_REENTRANT";;
solaris*)
if test "$GCC" = "yes"; then
flag="-D_REENTRANT"
else
# TODO: What about Clang on Solaris?
flag="-mt -D_REENTRANT"
fi
;;
esac
AC_MSG_RESULT([$flag])
if test "x$flag" != xno; then
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
fi
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
[ax_cv_PTHREAD_PRIO_INHERIT], [
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
[[int i = PTHREAD_PRIO_INHERIT;]])],
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
[ax_cv_PTHREAD_PRIO_INHERIT=no])
])
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
# More AIX lossage: compile with *_r variant
if test "x$GCC" != xyes; then
case $host_os in
aix*)
AS_CASE(["x/$CC"],
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
[#handle absolute path differently from PATH based program lookup
AS_CASE(["x$CC"],
[x/*],
[AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
[AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
;;
esac
fi
fi
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
AC_SUBST([PTHREAD_LIBS])
AC_SUBST([PTHREAD_CFLAGS])
AC_SUBST([PTHREAD_CC])
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$ax_pthread_ok" = xyes; then
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
:
else
ax_pthread_ok=no
$2
fi
AC_LANG_POP
])dnl AX_PTHREAD
-314
View File
@@ -1,314 +0,0 @@
#serial 1
dnl Macro: unreal_CHECK_TYPE_SIZES
dnl originally called unet_CHECK_TYPE_SIZES
dnl
dnl Check the size of several types and define a valid int16_t and int32_t.
dnl
AC_DEFUN([unreal_CHECK_TYPE_SIZES],
[dnl Check type sizes
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
if test "$ac_cv_sizeof_int" = 2 ; then
AC_CHECK_TYPE(int16_t, int)
AC_CHECK_TYPE(u_int16_t, unsigned int)
elif test "$ac_cv_sizeof_short" = 2 ; then
AC_CHECK_TYPE(int16_t, short)
AC_CHECK_TYPE(u_int16_t, unsigned short)
else
AC_MSG_ERROR([Cannot find a type with size of 16 bits])
fi
if test "$ac_cv_sizeof_int" = 4 ; then
AC_CHECK_TYPE(int32_t, int)
AC_CHECK_TYPE(u_int32_t, unsigned int)
elif test "$ac_cv_sizeof_short" = 4 ; then
AC_CHECK_TYPE(int32_t, short)
AC_CHECK_TYPE(u_int32_t, unsigned short)
elif test "$ac_cv_sizeof_long" = 4 ; then
AC_CHECK_TYPE(int32_t, long)
AC_CHECK_TYPE(u_int32_t, unsigned long)
else
AC_MSG_ERROR([Cannot find a type with size of 32 bits])
fi
AC_CHECK_SIZEOF(rlim_t)
if test "$ac_cv_sizeof_rlim_t" = 8 ; then
AC_DEFINE([LONG_LONG_RLIM_T], [], [Define if rlim_t is long long])
fi
])
AC_DEFUN([CHECK_LIBCURL],
[
AC_ARG_ENABLE(libcurl,
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
[enable_curl=$enableval],
[enable_curl=no])
AS_IF([test "x$enable_curl" != "xno"],
[
dnl sane, default directory for Operating System-managed libcURL
dnl (when --enable-libcurl is passed without any arguments). On
dnl systems with stuff in /usr/local, /usr/local/bin should already
dnl be in PATH. On sane systems, this will invoke the curl-config
dnl installed by the package manager.
CURLCONFIG="curl-config"
AS_IF([test "x$enable_curl" != "xyes"],
[CURLCONFIG="$enable_curl/bin/curl-config"])
AC_MSG_CHECKING([$CURLCONFIG])
AS_IF([$CURLCONFIG --version 2>/dev/null >/dev/null],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_FAILURE([Could not find curl-config, try editing --enable-libcurl])])
CURLCFLAG="`$CURLCONFIG --cflags`"
CURLLIBS="`$CURLCONFIG --libs`"
dnl This test must be this way because of #3981
AS_IF([$CURLCONFIG --libs | grep -q -e ares],
[CURLUSESCARES="1"],
[CURLUSESCARES="0"])
dnl sanity warnings
AS_IF([test -z "${CURLLIBS}"],
[AC_MSG_WARN([CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config])])
dnl Ok this is ugly, basically we need to strip the version of c-ares that curl uses
dnl because we want to use our own version (which is hopefully fully binary
dnl compatible with the curl one as well).
dnl Therefore we need to strip the cares libs in a weird way...
dnl If anyone can come up with something better and still portable (no awk!?)
dnl then let us know. -- Syzop
dnl
dnl It is dangerous to mix and match cURL with potentially ABI-incompatible versions of
dnl c-ares, just use --with-system-cares.
dnl Thus, make sure to use --with-system-cares when using system-cURL. If the user
dnl wants bundled c-ares + system libcURL, then we should filter out c-ares
dnl flags. _Only_ in that case should we mess with the flags. -- ohnobinki
AS_IF([test "x$has_system_cares" = "xno" && test "x$BUILDDIR/extras/curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ],
[
AC_MSG_ERROR([[
You have decided to build unrealIRCd with libcURL (remote includes) support.
However, you have system-installed c-ares support has either been disabled
(--without-system-cares) or is unavailable.
Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible
with the system-installed libcURL, this is a bad idea which may result in error
messages looking like:
\`\`[error] unrealircd.conf:9: include: error downloading '(http://example.net/ex.conf)': Could not resolve host: example.net (Successful completion)''
Or UnrealIRCd might even crash.
Please build UnrealIRCd with --with-system-cares when enabling --enable-libcurl
]])
])
dnl Make sure that linking against cURL works rather than letting the user
dnl find out after compiling most of his program. ~ohnobinki
IRCDLIBS="$IRCDLIBS $CURLLIBS"
CFLAGS="$CFLAGS $CURLCFLAG"
AC_DEFINE([USE_LIBCURL], [], [Define if you have libcurl installed to get remote includes and MOTD support])
AC_MSG_CHECKING([curl_easy_init() in $CURLLIBS])
LIBS_SAVEDA="$LIBS"
CFLAGS_SAVEDA="$CFLAGS"
LIBS="$IRCDLIBS $IRCDLIBS_CURL_CARES"
CFLAGS="$CFLAGS $CFLAGS_CURL_CARES"
AC_LINK_IFELSE(
[
AC_LANG_PROGRAM(
[[#include <curl/curl.h>]],
[[CURL *curl = curl_easy_init();]])
],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_FAILURE([You asked for libcURL (remote includes) support, but it can't be found at $enable_curl])
])
LIBS="$LIBS_SAVEDA"
CFLAGS="$CFLAGS_SAVEDA"
URL="url.o"
AC_SUBST(URL)
]) dnl AS_IF(enable_curl)
])
dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostler@juniper.net>
AC_DEFUN([CHECK_SSL],
[
AC_ARG_ENABLE(ssl,
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr])],
[],
[enable_ssl=no])
AS_IF([test $enable_ssl != "no"],
[
AC_MSG_CHECKING([for OpenSSL])
for dir in $enable_ssl /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do
ssldir="$dir"
if test -f "$dir/include/openssl/ssl.h"; then
AC_MSG_RESULT([found in $ssldir/include/openssl])
found_ssl="yes";
if test ! "$ssldir" = "/usr" ; then
CFLAGS="$CFLAGS -I$ssldir/include";
fi
break
fi
if test -f "$dir/include/ssl.h"; then
AC_MSG_RESULT([found in $ssldir/include])
found_ssl="yes";
if test ! "$ssldir" = "/usr" ; then
CFLAGS="$CFLAGS -I$ssldir/include";
fi
break
fi
done
if test x_$found_ssl != x_yes; then
AC_MSG_RESULT(not found)
echo ""
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
echo "The following packages are required:"
echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'"
echo "2) The binary package is usually called 'openssl'."
echo "NOTE: you or your system administrator needs to install the library AND the binary package."
echo "After doing so, simply re-run ./Config"
exit 1
else
CRYPTOLIB="-lssl -lcrypto";
if test ! "$ssldir" = "/usr" ; then
LDFLAGS="$LDFLAGS -L$ssldir/lib";
dnl check if binary path exists
if test -f "$ssldir/bin/openssl"; then
OPENSSLPATH="$ssldir/bin/openssl";
fi
fi
dnl linking require -ldl?
AC_MSG_CHECKING([OpenSSL linking with -ldl])
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB -ldl"
AC_TRY_LINK([#include <openssl/err.h>], [ERR_clear_error();],
[
AC_MSG_RESULT(yes)
CRYPTOLIB="$CRYPTOLIB -ldl"
],
[
AC_MSG_RESULT(no)
dnl linking require both -ldl and -lpthread?
AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread])
LIBS="$SAVE_LIBS $CRYPTOLIB -ldl -lpthread"
AC_TRY_LINK([#include <openssl/err.h>], [ERR_clear_error();],
[
AC_MSG_RESULT(yes)
CRYPTOLIB="$CRYPTOLIB -ldl -lpthread"
],
[
AC_MSG_RESULT(no)
])
])
LIBS="$SAVE_LIBS"
fi
])
])
AC_DEFUN([CHECK_SSL_CTX_SET1_CURVES_LIST],
[
AC_MSG_CHECKING([for SSL_CTX_set1_curves_list in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[SSL_CTX *ctx = NULL; SSL_CTX_set1_curves_list(ctx, "test");],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_SSL_CTX_SET1_CURVES_LIST], [], [Define if ssl library has SSL_CTX_set1_curves_list])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_SSL_CTX_SET_MIN_PROTO_VERSION],
[
AC_MSG_CHECKING([for SSL_CTX_set_min_proto_version in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[SSL_CTX *ctx = NULL; SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_SSL_CTX_SET_MIN_PROTO_VERSION], [], [Define if ssl library has SSL_CTX_set_min_proto_version])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_SSL_CTX_SET_SECURITY_LEVEL],
[
AC_MSG_CHECKING([for SSL_CTX_set_security_level in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[SSL_CTX *ctx = NULL; SSL_CTX_set_security_level(ctx, 1);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_SSL_CTX_SET_SECURITY_LEVEL], [], [Define if ssl library has SSL_CTX_set_security_level])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_ASN1_TIME_diff],
[
AC_MSG_CHECKING([for ASN1_TIME_diff in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[int one, two; ASN1_TIME_diff(&one, &two, NULL, NULL);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_ASN1_TIME_diff], [], [Define if ssl library has ASN1_TIME_diff])
else
AC_MSG_RESULT([no])
fi
])
AC_DEFUN([CHECK_X509_get0_notAfter],
[
AC_MSG_CHECKING([for X509_get0_notAfter in SSL library])
AC_LANG_PUSH(C)
SAVE_LIBS="$LIBS"
LIBS="$LIBS $CRYPTOLIB"
AC_TRY_LINK([#include <openssl/ssl.h>],
[X509_get0_notAfter(NULL);],
has_function=1,
has_function=0)
LIBS="$SAVE_LIBS"
AC_LANG_POP(C)
if test $has_function = 1; then
AC_MSG_RESULT([yes])
AC_DEFINE([HAS_X509_get0_notAfter], [], [Define if ssl library has X509_get0_notAfter])
else
AC_MSG_RESULT([no])
fi
])
-11
View File
@@ -1,11 +0,0 @@
#!/bin/bash
echo "Regenerating 'configure' and headers..."
echo "NOTE: Normally only UnrealIRCd developers run this command!!"
cd "$(dirname "${0}")"
ACLOCAL_AMFLAGS=(-I autoconf/m4)
aclocal "${ACLOCAL_AMFLAGS[@]}"
autoconf
autoheader
+53
View File
@@ -0,0 +1,53 @@
#
# Unreal Internet Relay Chat Daemon
# Copyright (C) Carsten V. Munk 2000
#
# NOTE: Those words are not meant to insult you (the user)
# but is meant to be a list of words so that the +G channel/user mode
# will work properly. You can easily modify this file at your will.
# If you got words to add to this file, please mail badwords@tspre.org
#
#
#
#
#
#
# This is some filling space, scroll down to see the words
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
pussy
fuck
whore
slut
shit
asshole
bitch
cunt
vagina
penis
jackass
*fucker*
faggot
fag
horny
gay
dickhead
sonuvabitch
*fuck*
boobs
tits
+53
View File
@@ -0,0 +1,53 @@
#
# Unreal Internet Relay Chat Daemon
# Copyright (C) Carsten V. Munk 2000
#
# NOTE: Those words are not meant to insult you (the user)
# but is meant to be a list of words so that the +G channel/user mode
# will work properly. You can easily modify this file at your will.
# If you got words to add to this file, please mail badwords@tspre.org
#
#
#
#
#
#
# This is some filling space, scroll down to see the words
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
pussy
fuck
whore
slut
shit
asshole
bitch
cunt
vagina
penis
jackass
*fucker*
faggot
fag
horny
gay
dickhead
sonuvabitch
*fuck*
boobs
tits
Vendored
-9649
View File
File diff suppressed because it is too large Load Diff
-801
View File
@@ -1,801 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
dnl When updating the version, remember to update the following files
dnl appropriately:
dnl include/windows/setup.h
dnl src/windows/unrealinst.iss
dnl doc/Config.header
dnl src/version.c.SH
AC_INIT([unrealircd], [5.2.4], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
AC_CONFIG_SRCDIR([src/ircd.c])
AC_CONFIG_HEADER([include/setup.h])
AC_CONFIG_AUX_DIR([autoconf])
AC_CONFIG_MACRO_DIR([autoconf/m4])
if test "x$enable_dynamic_linking" = "x"; then
echo "Please use ./Config instead of ./configure"
exit 1
fi
dnl Save CFLAGS, use this when building the libraries like c-ares
orig_cflags="$CFLAGS"
dnl Save build directory early on (used in our m4 macros too)
BUILDDIR_NOW="`pwd`"
dnl Calculate the versions. Perhaps the use of expr is a little too extravagant
# Generation version number (e.g.: X in X.Y.Z)
UNREAL_VERSION_GENERATION=["5"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: X for X.Y.Z)])
# Major version number (e.g.: Y in X.Y.Z)
UNREAL_VERSION_MAJOR=["2"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: Y for X.Y.Z)])
# Minor version number (e.g.: Z in X.Y.Z)
UNREAL_VERSION_MINOR=["4"]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: Z for X.Y.Z)])
# The version suffix such as a beta marker or release candidate
# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a
# string instead of an integer because it contains arbitrary data.
UNREAL_VERSION_SUFFIX=[""]
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rcX for unrealircd-3.2.9-rcX)])
AC_PATH_PROG(RM,rm)
AC_PATH_PROG(CP,cp)
AC_PATH_PROG(TOUCH,touch)
AC_PATH_PROG(OPENSSLPATH,openssl)
AS_IF([test x"$OPENSSLPATH" = "x"],
[
echo ""
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
echo "The following packages are required:"
echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'"
echo "2) The binary package is usually called 'openssl'."
echo "NOTE: you or your system administrator needs to install the library AND the binary package."
echo "After doing so, simply re-run ./Config"
exit 1
])
AC_PATH_PROG(INSTALL,install)
AC_PATH_PROG(GUNZIP, gunzip)
AC_PATH_PROG(PKGCONFIG, pkg-config)
dnl Check for compiler
AC_PROG_CC_C99
AS_IF([test "$ac_cv_prog_cc_c99" = "no"],
[AC_MSG_ERROR([No C99 compiler was found. Please install gcc or clang and other build tools. Eg, on Debian/Ubuntu you probably want to run the following as root: apt-get install build-essential ])])
dnl Check for make moved down, so the above compiler check takes precedence.
AC_CHECK_PROG(MAKER, gmake, gmake, make)
AC_PATH_PROG(GMAKE,gmake)
AS_IF([$MAKER --version | grep -q "GNU Make"],
[GNUMAKE="0"],
[AC_MSG_ERROR([It seems your system does not have make/gmake installed. If you are on Linux then install make, otherwise install gmake.])])
dnl Checks for libraries.
AC_CHECK_LIB(descrypt, crypt,
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
IRCDLIBS="$IRCDLIBS-ldescrypt "],
[AC_CHECK_LIB(crypt, crypt,
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
IRCDLIBS="$IRCDLIBS-lcrypt "])])
dnl Check for big-endian system, even though these hardly exist anymore...
AS_CASE([$host_cpu],
[i?86|amd64|x86_64],
[ac_cv_c_bigendian=no]
)
AC_C_BIGENDIAN(
AC_DEFINE(NATIVE_BIG_ENDIAN, 1, [machine is bigendian]),
AC_DEFINE(NATIVE_LITTLE_ENDIAN, 1, [machine is littleendian]),
AC_MSG_ERROR([unknown endianness]),
AC_MSG_ERROR([universal endianness is not supported - compile separately and use lipo(1)])
)
dnl HARDENING START
dnl This is taken from https://github.com/kmcallister/autoharden
dnl With some very small modifications (to remove C++ checking for instance)
# We want to check for compiler flag support, but there is no way to make
# clang's "argument unused" warning fatal. So we invoke the compiler through a
# wrapper script that greps for this message.
saved_CC="$CC"
saved_CXX="$CXX"
saved_LD="$LD"
flag_wrap="$srcdir/extras/wrap-compiler-for-flag-check"
CC="$flag_wrap $CC"
CXX="$flag_wrap $CXX"
LD="$flag_wrap $LD"
# We use the same hardening flags for C and C++. We must check that each flag
# is supported by both compilers.
AC_DEFUN([check_cc_flag],
[AC_LANG_PUSH(C)
AX_CHECK_COMPILE_FLAG([$1], [$2], [$3], [-Werror $4])
AC_LANG_POP(C)])
AC_DEFUN([check_link_flag],
[AX_CHECK_LINK_FLAG([$1], [$2], [$3], [-Werror $4])])
AC_ARG_ENABLE([hardening],
[AS_HELP_STRING([--enable-hardening],
[Enable compiler and linker options to frustrate memory corruption exploits @<:@yes@:>@])],
[hardening="$enableval"],
[hardening="yes"])
HARDEN_CFLAGS=""
HARDEN_LDFLAGS=""
AS_IF([test x"$hardening" != x"no"], [
check_cc_flag([-fno-strict-overflow], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow"])
# This one will likely succeed, even on platforms where it does nothing.
check_cc_flag([-D_FORTIFY_SOURCE=2], [HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2"])
check_cc_flag([-fstack-protector-all],
[check_link_flag([-fstack-protector-all],
[HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-protector-all"
check_cc_flag([-Wstack-protector], [HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector"],
[], [-fstack-protector-all])
check_cc_flag([--param ssp-buffer-size=1], [HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1"],
[], [-fstack-protector-all])])])
# Added in UnrealIRCd 5.0.5 (default on Ubuntu 19.10)
check_cc_flag([-fstack-clash-protection], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-clash-protection"])
# Control Flow Enforcement (ROP hardening) - requires CPU hardware support
check_cc_flag([-fcf-protection], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fcf-protection"])
# At the link step, we might want -pie (GCC) or -Wl,-pie (Clang on OS X)
#
# The linker checks also compile code, so we need to include -fPIE as well.
check_cc_flag([-fPIE],
[check_link_flag([-fPIE -pie],
[HARDEN_BINCFLAGS="-fPIE"
HARDEN_BINLDFLAGS="-pie"],
[check_link_flag([-fPIE -Wl,-pie],
[HARDEN_BINCFLAGS="-fPIE"
HARDEN_BINLDFLAGS="-Wl,-pie"])])])
check_link_flag([-Wl,-z,relro],
[HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,relro"
check_link_flag([-Wl,-z,now], [HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,now"])])])
AC_SUBST([HARDEN_CFLAGS])
AC_SUBST([HARDEN_LDFLAGS])
AC_SUBST([HARDEN_BINCFLAGS])
AC_SUBST([HARDEN_BINLDFLAGS])
# End of flag tests.
CC="$saved_CC"
CXX="$saved_CXX"
LD="$saved_LD"
dnl HARDENING END
dnl UnrealIRCd might not be strict-aliasing safe at this time
check_cc_flag([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"])
dnl UnrealIRCd should be able to compile with -fno-common
dnl This also makes ASan (if it is in use) able to instrument these variables.
check_cc_flag([-fno-common], [CFLAGS="$CFLAGS -fno-common"])
dnl Previously -funsigned-char was in a config check. It would always
dnl be enabled with gcc and clang. We now unconditionally enable it,
dnl skipping the check. This will cause an error if someone uses a
dnl non-gcc/non-clang compiler that does not support -funsigned-char
dnl which is good. After all, we really depend on it.
dnl UnrealIRCd should never be compiled without char being unsigned.
CFLAGS="$CFLAGS -funsigned-char"
dnl Compiler -W checks...
dnl We should be able to turn this on unconditionally:
CFLAGS="$CFLAGS -Wall"
dnl More warnings (if the compiler supports it):
check_cc_flag([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
check_cc_flag([-Waggregate-return], [CFLAGS="$CFLAGS -Waggregate-return"])
dnl The following few are more experimental, if they have false positives we'll have
dnl to disable them:
dnl Can't use this, too bad: check_cc_flag([-Wlogical-op], [CFLAGS="$CFLAGS -Wlogical-op"])
check_cc_flag([-Wduplicated-cond], [CFLAGS="$CFLAGS -Wduplicated-cond"])
check_cc_flag([-Wduplicated-branches], [CFLAGS="$CFLAGS -Wduplicated-branches"])
dnl And now to filter out certain warnings:
dnl [!] NOTE REGARDING THE check_cc_flag used by these:
dnl We check for the -Woption even though we are going to use -Wno-option.
dnl This is due to the following (odd) gcc behavior:
dnl "When an unrecognized warning option is requested (e.g.,
dnl -Wunknown-warning), GCC emits a diagnostic stating that the option is not
dnl recognized. However, if the -Wno- form is used, the behavior is slightly
dnl different: no diagnostic is produced for -Wno-unknown-warning unless
dnl other diagnostics are being produced. This allows the use of new -Wno-
dnl options with old compilers, but if something goes wrong, the compiler
dnl warns that an unrecognized option is present."
dnl Since we don't want to use any unrecognized -Wno-option, we test for
dnl -Woption instead.
dnl Pointer signedness warnings are really a pain and 99.9% of the time
dnl they are of absolutely no use whatsoever. IMO the person who decided
dnl to enable this without -Wall should be shot on sight.
check_cc_flag([-Wpointer-sign], [CFLAGS="$CFLAGS -Wno-pointer-sign"])
dnl This is purely for charsys.c... I like it so we can easily read
dnl this for non-utf8. We can remove it once we ditch non-utf8 some day
dnl of course, or decide to ignore me and encode them.
check_cc_flag([-Winvalid-source-encoding], [CFLAGS="$CFLAGS -Wno-invalid-source-encoding"])
check_cc_flag([-Wformat-zero-length], [CFLAGS="$CFLAGS -Wno-format-zero-length"])
check_cc_flag([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"])
dnl While it can be useful to occasionally to compile with warnings about
dnl unused variables and parameters, we often 'think ahead' when coding things
dnl so they may be useless now but not later. Similarly, for variables, we
dnl don't always care about a variable that may still be present in a build
dnl without DEBUGMODE. Unused variables are optimized out anyway.
check_cc_flag([-Wunused], [CFLAGS="$CFLAGS -Wno-unused"])
check_cc_flag([-Wunused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"])
check_cc_flag([-Wunused-but-set-parameter], [CFLAGS="$CFLAGS -Wno-unused-but-set-parameter"])
dnl We use this and this warning is meaningless since 'char' is always unsigned
dnl in UnrealIRCd compiles (-funsigned-char).
check_cc_flag([-Wchar-subscripts], [CFLAGS="$CFLAGS -Wno-char-subscripts"])
check_cc_flag([-Wsign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"])
dnl Don't warn about empty body, we use this, eg via Debug(()) or in if's.
check_cc_flag([-Wempty-body], [CFLAGS="$CFLAGS -Wno-empty-body"])
dnl This one fails with ircstrdup(var, staticstring)
dnl Shame we have to turn it off completely...
check_cc_flag([-Waddress], [CFLAGS="$CFLAGS -Wno-address"])
dnl This one breaks our TO_INTFUNC() that is used in m_tkl for tkl_typetochar
check_cc_flag([-Wcast-function-type], [CFLAGS="$CFLAGS -Wno-cast-function-type"])
AS_IF([$CC --version | grep -q "clang version 3."],
[CFLAGS="$CFLAGS -Wno-tautological-compare"])
dnl End of -W... compiler checks.
dnl module checking based on Hyb7's module checking code
AC_DEFUN([AC_ENABLE_DYN],
[
AC_CHECK_FUNC(dlopen,, [AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
[
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
AC_DEFINE(STATIC_LINKING)
])])
hold_cflags=$CFLAGS
DYNAMIC_LDFLAGS=""
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)])
CFLAGS=$hold_cflags
if test "$ac_cv_export_dynamic" = "yes"; then
DYNAMIC_LDFLAGS="-Wl,-export-dynamic"
fi
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
if test "$ac_cv_prog_gcc" = "yes"; then
ac_cv_pic="-fPIC -DPIC -shared"
case `uname -s` in
Darwin*[)]
ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress"
;;
HP-UX*[)]
ac_cv_pic="-fPIC"
;;
esac
else
case `uname -s` in
SunOS*[)]
ac_cv_pic="-KPIC -DPIC -G"
;;
esac
fi
])
AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
cat >uscore.c << __EOF__
int main() {
return 0;
}
__EOF__
$CC -o uscore $CFLAGS uscore.c 1>&5
if test -z "`strings -a uscore |grep '^_main$'`"; then
ac_cv_underscore=no
else
ac_cv_underscore=yes
fi
rm -f uscore uscore.c
])
dnl libtool has built-in tests that determine proper underscorage
if test "$ac_cv_underscore" = "yes"; then
AC_DEFINE([UNDERSCORE], [], [Define if your system prepends an underscore to symbols])
fi
MODULEFLAGS="$ac_cv_pic $DYNAMIC_LDFLAGS"
dnl DYNAMIC_LINKING is not meant to be defined in include/setup.h, it's
dnl defined in the Makefiles using -D. Having it defined globally will
dnl only cause braindamage and symbol collisions :-D.
dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically. (Dynamic linking is the only supported method of linking atm)])
])
AC_CACHE_CHECK([if your system has IPv6 support], [ac_cv_ip6], [
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/socket.h>
int main() {
int s = socket(AF_INET6, SOCK_STREAM, 0);
exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */
}
],
[ac_cv_ip6=yes],
[ac_cv_ip6=no])
])
if test "$ac_cv_ip6" = "no"; then
AC_MSG_ERROR([Your system does not support IPv6])
fi
AC_CHECK_HEADER(sys/syslog.h,
AC_DEFINE([SYSSYSLOGH], [], [Define if you have the <sys/syslog.h> header file.]))
AC_CHECK_HEADER(sys/rusage.h,
AC_DEFINE([RUSAGEH], [], [Define if you have the <sys/rusage.h> header file.]))
AC_CHECK_HEADER(glob.h,
AC_DEFINE([GLOBH], [], [Define if you have the <glob.h> header file.]))
AC_CHECK_HEADERS([stdint.h inttypes.h])
dnl Checks for library functions.
AC_CHECK_FUNCS(strlcpy,
AC_DEFINE([HAVE_STRLCPY], [], [Define if you have strlcpy. Otherwise, an internal implementation will be used!]))
AC_CHECK_FUNCS(strlcat,
AC_DEFINE([HAVE_STRLCAT], [], [Define if you have strlcat]))
AC_CHECK_FUNCS(strlncat,
AC_DEFINE([HAVE_STRLNCAT], [], [Define if you have strlncat]))
AC_CHECK_FUNCS([getrusage],
[AC_DEFINE([GETRUSAGE_2], [], [Define if you have getrusage])],
[AC_CHECK_FUNCS([times],
[AC_DEFINE([TIMES_2], [], [Define if you have times])])])
AC_CHECK_FUNCS([setproctitle],
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])],
[AC_CHECK_LIB([util],
[setproctitle],
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])
IRCDLIBS="$IRCDLIBS-lutil"],
[
AC_EGREP_HEADER([#define.*PS_STRINGS.*],[sys/exec.h],
[AC_DEFINE([HAVE_PSSTRINGS],[], [Define if you have PS_STRINGS])],
[AC_CHECK_FUNCS([pstat],
[AC_DEFINE([HAVE_PSTAT], [], [Define if you have pstat])])])
])
]
)
AC_CHECK_FUNCS(explicit_bzero,AC_DEFINE([HAVE_EXPLICIT_BZERO], [], [Define if you have explicit_bzero]))
AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog]))
AC_SUBST(CRYPTOLIB)
AC_SUBST(MODULEFLAGS)
AC_SUBST(DYNAMIC_LDFLAGS)
AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
[AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])],
[AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])])
AC_ARG_WITH(permissions, [AS_HELP_STRING([--with-permissions=permissions], [Specify the default permissions for
configuration files])],
dnl We have an apparently out-of-place 0 here because of a MacOSX bug and because
dnl we assume that a user thinks that `chmod 0600 blah' is the same as `chmod 600 blah'
dnl (#3189)
[AC_DEFINE_UNQUOTED([DEFAULT_PERMISSIONS], [0$withval], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])],
[AC_DEFINE([DEFAULT_PERMISSIONS], [0600], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])])
AC_ARG_WITH(bindir, [AS_HELP_STRING([--with-bindir=path],[Specify the directory for the unrealircd binary])],
[AC_DEFINE_UNQUOTED([BINDIR], ["$withval"], [Define the directory where the unrealircd binary is located])
BINDIR="$withval"],
[AC_DEFINE_UNQUOTED([BINDIR], ["$HOME/unrealircd/bin"], [Define the directory where the unrealircd binary is located])
BINDIR="$HOME/unrealircd/bin"])
AC_ARG_WITH(scriptdir, [AS_HELP_STRING([--with-scriptdir=path],[Specify the directory for the unrealircd start-stop script])],
[AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$withval"], [Define the directory where the unrealircd start stop scripts is located])
SCRIPTDIR="$withval"],
[AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$HOME/unrealircd"], [Define the directory where the unrealircd start stop scripts is located])
SCRIPTDIR="$HOME/unrealircd"])
AC_ARG_WITH(confdir, [AS_HELP_STRING([--with-confdir=path],[Specify the directory where configuration files are stored])],
[AC_DEFINE_UNQUOTED([CONFDIR], ["$withval"], [Define the location of the configuration files])
CONFDIR="$withval"],
[AC_DEFINE_UNQUOTED([CONFDIR], ["$HOME/unrealircd/conf"], [Define the location of the configuration files])
CONFDIR="$HOME/unrealircd/conf"])
dnl We have to pass the builddir as well, for the module manager
AC_ARG_WITH(builddir, [AS_HELP_STRING([--with-builddir=path],[Specify the build directory])],
[AC_DEFINE_UNQUOTED([BUILDDIR], ["$withval"], [Define the build directory])
BUILDDIR="$withval"],
[AC_DEFINE_UNQUOTED([BUILDDIR], ["$BUILDDIR_NOW"], [Specify the build directory])
BUILDDIR="$BUILDDIR_NOW"])
AC_ARG_WITH(modulesdir, [AS_HELP_STRING([--with-modulesdir=path],[Specify the directory for loadable modules])],
[AC_DEFINE_UNQUOTED([MODULESDIR], ["$withval"], [Define the location of the modules])
MODULESDIR="$withval"],
[AC_DEFINE_UNQUOTED([MODULESDIR], ["$HOME/unrealircd/modules"], [Define the location of the modules])
MODULESDIR="$HOME/unrealircd/modules"])
AC_ARG_WITH(logdir, [AS_HELP_STRING([--with-logdir=path],[Specify the directory where log files are stored])],
[AC_DEFINE_UNQUOTED([LOGDIR], ["$withval"], [Define the location of the log files])
LOGDIR="$withval"],
[AC_DEFINE_UNQUOTED([LOGDIR], ["$HOME/unrealircd/logs"], [Define the location of the log files])
LOGDIR="$HOME/unrealircd/logs"])
AC_ARG_WITH(cachedir, [AS_HELP_STRING([--with-cachedir=path],[Specify the directory where cached files are stored])],
[AC_DEFINE_UNQUOTED([CACHEDIR], ["$withval"], [Define the location of the cached remote include files])
CACHEDIR="$withval"],
[AC_DEFINE_UNQUOTED([CACHEDIR], ["$HOME/unrealircd/cache"], [Define the location of the cached remote include files])
CACHEDIR="$HOME/unrealircd/cache"])
AC_ARG_WITH(tmpdir, [AS_HELP_STRING([--with-tmpdir=path],[Specify the directory where private temporary files are stored. Should not be readable or writable by others, so not /tmp!!])],
[AC_DEFINE_UNQUOTED([TMPDIR], ["$withval"], [Define the location of private temporary files])
TMPDIR="$withval"],
[AC_DEFINE_UNQUOTED([TMPDIR], ["$HOME/unrealircd/tmp"], [Define the location of private temporary files])
TMPDIR="$HOME/unrealircd/tmp"])
AC_ARG_WITH(datadir, [AS_HELP_STRING([--with-datadir=path],[Specify the directory where permanent data is stored])],
[AC_DEFINE_UNQUOTED([PERMDATADIR], ["$withval"], [Define the location of permanent data files])
PERMDATADIR="$withval"],
[AC_DEFINE_UNQUOTED([DATADIR], ["$HOME/unrealircd/data"], [Define the location of permanent data files])
PERMDATADIR="$HOME/unrealircd/data"])
AC_ARG_WITH(docdir, [AS_HELP_STRING([--with-docdir=path],[Specify the directory where documentation is stored])],
[AC_DEFINE_UNQUOTED([DOCDIR], ["$withval"], [Define the location of the documentation])
DOCDIR="$withval"],
[AC_DEFINE_UNQUOTED([DOCDIR], ["$HOME/unrealircd/doc"], [Define the location of the documentation])
DOCDIR="$HOME/unrealircd/doc"])
AC_ARG_WITH(pidfile, [AS_HELP_STRING([--with-pidfile=path],[Specify the path of the pid file])],
[AC_DEFINE_UNQUOTED([PIDFILE], ["$withval"], [Define the path of the pid file])
PIDFILE="$withval"],
[AC_DEFINE_UNQUOTED([PIDFILE], ["$HOME/unrealircd/data/unrealircd.pid"], [Define the path of the pid file])
PIDFILE="$HOME/unrealircd/data/unrealircd.pid"])
dnl Ensure that this “feature” can be disabled as it makes it harder to package unrealircd.
dnl Users have always been able to specify “./configure LDFLAGS=-Wl,-rpath,/path/to/blah”—binki
AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored. Disable when building a package for a distro])],
[],
[with_privatelibdir="yes"])
AS_IF([test "x$with_privatelibdir" = "xno"],
[PRIVATELIBDIR=],
[test "x$with_privatelibdir" = "xyes"],
[PRIVATELIBDIR="$HOME/unrealircd/lib"],
[PRIVATELIBDIR="$with_privatelibdir"])
AS_IF([test "x$PRIVATELIBDIR" = "x"],
[LDFLAGS_PRIVATELIBS=""],
[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$PRIVATELIBDIR"], [Define the location of private libraries])
LDFLAGS_PRIVATELIBS="-Wl,-rpath,$PRIVATELIBDIR"
LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
export LDFLAGS])
AC_SUBST(BUILDDIR)
AC_SUBST(BINDIR)
AC_SUBST(SCRIPTDIR)
AC_SUBST(CONFDIR)
AC_SUBST(MODULESDIR)
AC_SUBST(LOGDIR)
AC_SUBST(CACHEDIR)
AC_SUBST(TMPDIR)
dnl Why o why PERMDATADIR and not DATADIR you ask?
dnl well, Because DATADIR conflicts with the Windows SDK header files.. amazing.
AC_SUBST(PERMDATADIR)
AC_SUBST(DOCDIR)
AC_SUBST(PIDFILE)
AC_SUBST(LDFLAGS_PRIVATELIBS)
AC_ARG_WITH(maxconnections, [AS_HELP_STRING([--with-maxconnections=size], [Specify the max file descriptors to use])],
[ac_fd=$withval],
[ac_fd=0])
AC_DEFINE_UNQUOTED([MAXCONNECTIONS_REQUEST], [$ac_fd], [Set to the maximum number of connections you want])
AC_ARG_ENABLE([prefixaq],
[AS_HELP_STRING([--disable-prefixaq],[Disable chanadmin (+a) and chanowner (+q) prefixes])],
[],
[enable_prefixaq=yes])
AS_IF([test $enable_prefixaq = "yes"],
[AC_DEFINE([PREFIX_AQ], [], [Define if you want +a/+q prefixes])])
AC_ARG_WITH(showlistmodes,
[AS_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([LIST_SHOW_MODES], [], [Define if you want modes shown in /list])])])
AC_ARG_WITH(no-operoverride, [AS_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([NO_OPEROVERRIDE], [], [Define if you want OperOverride disabled])])])
AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
[AS_IF([test $withval = "yes"],
[AC_DEFINE([OPEROVERRIDE_VERIFY], [], [Define if you want opers to have to use /invite to join +s/+p channels])])])
AC_ARG_WITH(system-pcre2, [AS_HELP_STRING([--without-system-pcre2], [Use the system pcre2 package instead of bundled, discovered using pkg-config])], [], [with_system_pcre2=yes])
AC_ARG_WITH(system-argon2, [AS_HELP_STRING([--without-system-argon2], [Use bundled version instead of system argon2 library. Normally autodetected via pkg-config])], [], [with_system_argon2=yes])
AC_ARG_WITH(system-sodium, [AS_HELP_STRING([--without-system-sodium], [Use bundled version instead of system sodium library. Normally autodetected via pkg-config])], [], [with_system_sodium=yes])
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--without-system-cares], [Use bundled version instead of system c-ares. Normally autodetected via pkg-config.])], [], [with_system_cares=yes])
CHECK_SSL
CHECK_SSL_CTX_SET1_CURVES_LIST
CHECK_SSL_CTX_SET_MIN_PROTO_VERSION
CHECK_SSL_CTX_SET_SECURITY_LEVEL
CHECK_ASN1_TIME_diff
CHECK_X509_get0_notAfter
AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])],
[enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"])
AS_IF([test $enable_dynamic_linking = "yes"],
[AC_ENABLE_DYN],
[AC_DEFINE([STATIC_LINKING], [], [Link... statically(?) (defining this macro will probably cause the build tofail)])])
AC_ARG_ENABLE([werror],
[AS_HELP_STRING([--enable-werror],
[Turn compilation warnings into errors (-Werror)])],
[ac_cv_werror="$enableval"],
[ac_cv_werror="no"])
AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan],
[Enable address sanitizer and other debugging options, not recommended for production servers!])],
[ac_cv_asan="$enableval"],
[ac_cv_asan="no"])
AC_CHECK_FUNCS([poll],
AC_DEFINE([HAVE_POLL], [], [Define if you have poll]))
AC_CHECK_FUNCS([epoll_create epoll_ctl epoll_wait],
AC_DEFINE([HAVE_EPOLL], [], [Define if you have epoll]))
AC_CHECK_FUNCS([kqueue kevent],
AC_DEFINE([HAVE_KQUEUE], [], [Define if you have kqueue]))
dnl c-ares needs PATH_SEPARATOR set or it will
dnl fail on certain solaris boxes. We might as
dnl well set it here.
export PATH_SEPARATOR
dnl Use system pcre2 when available, unless --without-system-pcre2.
has_system_pcre2="no"
AS_IF([test "x$with_system_pcre2" = "xyes"],[
PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00,[has_system_pcre2=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libpcre2*])],[has_system_pcre2=no])])
AS_IF([test "$has_system_pcre2" = "no"], [
dnl REMEMBER TO CHANGE WITH A NEW PCRE2 RELEASE!
pcre2_version="10.36"
AC_MSG_RESULT(extracting PCRE2 regex library)
cur_dir=`pwd`
cd extras
dnl remove old pcre2 directory to force a recompile...
dnl and remove its installation prefix just to clean things up.
rm -rf pcre2-$pcre2_version pcre2
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz pcre2.tar.gz
else
cp pcre2.tar.gz pcre2.tar.gz.bak
gunzip -f pcre2.tar.gz
cp pcre2.tar.gz.bak pcre2.tar.gz
tar xf pcre2.tar
fi
AC_MSG_RESULT(configuring PCRE2 regex library)
cd pcre2-$pcre2_version
./configure --enable-jit --enable-shared --disable-unicode --prefix=$cur_dir/extras/pcre2 --libdir=$PRIVATELIBDIR || exit 1
AC_MSG_RESULT(compiling PCRE2 regex library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing PCRE2 regex library)
$ac_cv_prog_MAKER install || exit 1
PCRE2_CFLAGS="-I$cur_dir/extras/pcre2/include"
AC_SUBST(PCRE2_CFLAGS)
PCRE2_LIBS=
dnl See c-ares's compilation section for more info on this hack.
dnl ensure that we're linking against the bundled version of pcre2
dnl (we only reach this code if linking against the bundled version is desired).
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
[PCRE2_LIBS="`$ac_cv_path_PKGCONFIG --libs libpcre2-8.pc`"])
dnl For when pkg-config isn't available -- or for when pkg-config
dnl doesn't see the libpcre2-8.pc file somehow... (#3982)
AS_IF([test -z "$PCRE2_LIBS"],
[PCRE2_LIBS="$PRIVATELIBDIR/libpcre2-8.so"])
AC_SUBST(PCRE2_LIBS)
cd $cur_dir
])
dnl Use system argon2 when available, unless --without-system-argon2
has_system_argon2="no"
AS_IF([test "x$with_system_argon2" = "xyes"],[
PKG_CHECK_MODULES([ARGON2], [libargon2 >= 0~20161029],[has_system_argon2=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libargon2*])],[has_system_argon2=no])])
AS_IF([test "$has_system_argon2" = "no"],[
dnl REMEMBER TO CHANGE WITH A NEW ARGON2 RELEASE!
argon2_version="20181209"
AC_MSG_RESULT(extracting Argon2 library)
cur_dir=`pwd`
cd extras
dnl remove old argon2 directory to force a recompile...
dnl and remove its installation prefix just to clean things up.
rm -rf argon2-$argon2_version argon2
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz argon2-$argon2_version.tar.gz
else
cp argon2-$argon2_version.tar.gz argon2-$argon2_version.tar.gz.bak
gunzip -f argon2-$argon2_version.tar.gz
cp argon2-$argon2_version.tar.gz.bak argon2-$argon2_version.tar.gz
tar xf argon2-$argon2_version.tar
fi
AC_MSG_RESULT(compiling Argon2 library)
cd argon2-$argon2_version
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing Argon2 library)
$ac_cv_prog_MAKER install PREFIX=$cur_dir/extras/argon2 || exit 1
# We need to manually copy the libs to PRIVATELIBDIR because
# there is no way to tell make install in libargon2 to do so.
# BUT FIRST, delete the old library so it becomes an unlink+create
# operation rather than overwriting the existing file which would
# lead to a crash of the currently running IRCd.
rm -f "$PRIVATELIBDIR/"libargon2*
# Now copy the new library files:
cp -av $cur_dir/extras/argon2/lib/* $PRIVATELIBDIR/
ARGON2_CFLAGS="-I$cur_dir/extras/argon2/include"
AC_SUBST(ARGON2_CFLAGS)
ARGON2_LIBS="-L$PRIVATELIBDIR -largon2"
AC_SUBST(ARGON2_LIBS)
cd $cur_dir
])
dnl Use system sodium when available, unless --without-system-sodium
has_system_sodium="no"
AS_IF([test "x$with_system_sodium" = "xyes"],[
PKG_CHECK_MODULES([SODIUM], [libsodium >= 1.0.16],[has_system_sodium=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libsodium*])],[has_system_sodium=no])])
AS_IF([test "$has_system_sodium" = "no"],[
dnl REMEMBER TO CHANGE WITH A NEW SODIUM RELEASE!
sodium_version="1.0.18"
AC_MSG_RESULT(extracting sodium library)
cur_dir=`pwd`
cd extras
dnl remove old sodium directory to force a recompile...
dnl and remove its installation prefix just to clean things up.
rm -rf sodium-$sodium_version sodium
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz libsodium.tar.gz
else
cp libsodium.tar.gz libsodium.tar.gz.bak
gunzip -f libsodium.tar.gz
cp libsodium.tar.gz.bak libsodium.tar.gz
tar xf libsodium.tar
fi
AC_MSG_RESULT(compiling sodium library)
cd libsodium-$sodium_version
save_cflags="$CFLAGS"
CFLAGS="$orig_cflags"
export CFLAGS
./configure --prefix=$cur_dir/extras/sodium --libdir=$PRIVATELIBDIR --enable-shared --disable-static --enable-opt || exit 1
CFLAGS="$save_cflags"
AC_MSG_RESULT(compiling sodium resolver library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing sodium resolver library)
$ac_cv_prog_MAKER install || exit 1
SODIUM_CFLAGS="-I$cur_dir/extras/sodium/include"
AC_SUBST(SODIUM_CFLAGS)
SODIUM_LIBS=
dnl See c-ares's compilation section for more info on this hack.
dnl ensure that we're linking against the bundled version
dnl (we only reach this code if linking against the bundled version is desired).
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
[SODIUM_LIBS="`$ac_cv_path_PKGCONFIG --libs libsodium.pc`"])
dnl For when pkg-config isn't available
AS_IF([test -z "$SODIUM_LIBS"],
[SODIUM_LIBS="-L$PRIVATELIBDIR -lsodium"])
AC_SUBST(SODIUM_LIBS)
cd $cur_dir
])
dnl Use system c-ares when available, unless --without-system-cares.
has_system_cares="no"
AS_IF([test "x$with_system_cares" = "xyes"],[
PKG_CHECK_MODULES([CARES], libcares >= 1.6.0,[has_system_cares=yes
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libcares*])],[has_system_cares=no])])
AS_IF([test "$has_system_cares" = "no"], [
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
dnl NOTE: when changing this here, ALSO change it in extras/curlinstall
dnl and in the comment in this file around line 400!
cares_version="1.17.2"
AC_MSG_RESULT(extracting c-ares resolver library)
cur_dir=`pwd`
cd extras
dnl remove old c-ares directory to force a recompile...
rm -rf c-ares-$cares_version c-ares
if test "x$ac_cv_path_GUNZIP" = "x" ; then
tar xfz c-ares.tar.gz
else
cp c-ares.tar.gz c-ares.tar.gz.bak
gunzip -f c-ares.tar.gz
cp c-ares.tar.gz.bak c-ares.tar.gz
tar xf c-ares.tar
fi
AC_MSG_RESULT(configuring c-ares library)
cd c-ares-$cares_version
save_cflags="$CFLAGS"
CFLAGS="$orig_cflags"
export CFLAGS
./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared --disable-tests || exit 1
CFLAGS="$save_cflags"
AC_MSG_RESULT(compiling c-ares resolver library)
$ac_cv_prog_MAKER || exit 1
AC_MSG_RESULT(installing c-ares resolver library)
$ac_cv_prog_MAKER install || exit 1
CARES_CFLAGS="-I$cur_dir/extras/c-ares/include"
AC_SUBST(CARES_CFLAGS)
CARES_LIBS="-L$PRIVATELIBDIR"
dnl Set default library parameters for when pkg-config is not available
dnl Ugly cd'ing out of extras/c-ares-xxx ;)
dnl Note: must be a full path, not relative path.
cd ../..
CARESLIBSALT="$PRIVATELIBDIR/libcares.so"
cd -
case `uname -s` in
*FreeBSD*)
CARESLIBSALT="$CARESLIBSALT"
;;
*Linux*)
CARESLIBSALT="$CARESLIBSALT -lrt"
;;
*SunOS*)
CARESLIBSALT="$CARESLIBSALT -lrt"
;;
esac
dnl Use pkg-config for c-ares libraries, and if not available use defaults
dnl from above (also if pkg-config returns an empty result).
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
else
CARES_LIBSPRE="$CARES_LIBS"
dnl the sed expression forces an absolute path to the .so file to be generated
dnl because this is what libtool would do. If this wasn't done and /usr/lib*/libcares.so
dnl exists, then unrealircd would still try to link against the system c-ares.
dnl The [] quotation is needed because the sed expression has [] in it.
[CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.so,'`"]
if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
fi
fi
AC_SUBST(CARES_LIBS)
cd $cur_dir
])
AX_PTHREAD()
CHECK_LIBCURL
UNRLINCDIR="`pwd`/include"
dnl Moved to the very end to ensure it doesn't affect any libs or tests.
if test "$ac_cv_werror" = "yes" ; then
CFLAGS="$CFLAGS -Werror"
fi
dnl Address sanitizer build
if test "$ac_cv_asan" = "yes" ; then
CFLAGS="$CFLAGS -O1 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD"
IRCDLIBS="-fsanitize=address $IRCDLIBS"
fi
AC_SUBST(IRCDLIBS)
AC_SUBST(UNRLINCDIR)
AC_CONFIG_FILES([Makefile
src/Makefile
src/modules/Makefile
src/modules/chanmodes/Makefile
src/modules/usermodes/Makefile
src/modules/snomasks/Makefile
src/modules/extbans/Makefile
src/modules/third/Makefile
extras/unrealircd-upgrade-script
unrealircd])
AC_OUTPUT
chmod 0700 unrealircd
+40
View File
@@ -0,0 +1,40 @@
#************************************************************************
#* IRC - Internet Relay Chat, ircd/crypt/Makefile
#* Copyright (C) 1991 Darren Reed
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*/
#
# Change this to the path of your local ircd.conf file
#
IRCDCONF = ../ircd.conf
LIBS=-lcrypt
all: mkpasswd
crypt: install
mkpasswd: mkpasswd.c
cc ${LIBS} -O mkpasswd.c -o mkpasswd
install:
chmod 700 crypter
./crypter ${IRCDCONF}
@echo 'done.'
clean:
/bin/rm -f mkpasswd
+63
View File
@@ -0,0 +1,63 @@
/************************************************************************
* IRC - Internet Relay Chat, ircd/crypt/README
* Copyright (C) 1991 Nelson Minar
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
The change implemented here is that the operator password in irc.conf
is no longer stored in plaintext form, but is encrypted the same way
that user passwords are encrypted on normal UNIX systems. Ie, instead
of having
O:*:goodboy:Nelson
in your ircd.conf file, you have
O:*:sCnvYRmbFJ7oI:Nelson
You still type "/oper Nelson goodboy" to become operator. However, if
someone gets ahold of your irc.conf file, they can no longer figure
out what the password is from reading it. There are still other
security holes, namely server-server passwords, but this closes one
obvious problem.
So how do you generate these icky looking strings for passwords?
There's a simple program called mkpasswd to do that for you. Just run
mkpasswd, and at the prompt type in your plaintext password. It will
spit out the encrypted password, which you should then just copy into
the irc.conf file. This should be done only when adding new passwords
to your irc.conf file. To change over your irc.conf file to use
encrypted passwords, define CRYPT_OPER_PASSWORD in config.h. You will
need to recompile your server if you already compiled it with this
feature disabled. Once compiled, edit the Makefile in this directory
and chang "IRCDCONF" to your irc.conf file. Then "make install" in this
directory to replace all the operator passwords in your irc.conf file
with the encrypted format.
Choose your passwords carefully. Do not choose something in a
dictionary, make sure its at least 5 characters. Anything past 8
characters is ignored.
One thing to note about crypt() passwords - for every plaintext, there
are 4096 different passwords. Some valid encryptions of "goodboy"
include t1Ub2RhRQHd4g sCnvYRmbFJ7oI and Xr4Z.Kg5tcdy6. The first
two characters (the "salt") determine which of the 4096 passwords
you will get. mkpasswd chooses the salt randomly, or alternately
will let you specify one on the command line.
see also - crypt(3)
+77
View File
@@ -0,0 +1,77 @@
#!/usr/local/bin/perl
#************************************************************************
#* IRC - Internet Relay Chat, ircd/crypt/crypter
#* Copyright (C) 1991 Sean Batt
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 1, or (at your option)
#* any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* $Id$
#*
#*/
#From Sean Batt sean@coombs.anu.edu.au
#
#Temporary output file
#
$tmpfile = "/tmp/ircd.conf.tmp";
#
#Original ircd.conf file
#
$ircdconf = @ARGV[0];
$ircdout = "IRCDOUT";
print "crypting ",$ircdconf,"\n";
@saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.', '/');
umask(0077);
open ($ircdout, ">/tmp/ircd.conf.tmp") || die "open $!";
while ($text = <>) {
#if its not an "O" line we can ignore it
if ($text =~ /^o/i) {
chop($text);
@oline = split(':', $text);
$salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$oline[2] = crypt(@oline[2], $salt);
print ($ircdout join(':',@oline)."\n");
}
elsif ($text =~ /^n/i) {
chop($text);
@nline = split(':', $text);
$salt = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$nline[2] = crypt(@nline[2], $salt);
print ($ircdout join(':',@nline)."\n");
}
elsif ($text =~ /^x/i) {
chop($text);
@xline = split(':', $text);
$salt1 = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$salt2 = $saltset[rand(time)%64].$saltset[(rand(time)>>6)%64];
$xline[1] = crypt(@xline[1], $salt1);
$xline[2] = crypt(@xline[2], $salt2);
print ($ircdout join(':',@xline)."\n");
}
else {
print $ircdout "$text";
}
}
close ($ircdout);
close ($ircdin);
print "/bin/cp ",$tmpfile," ",$ircdconf,"\n";
(fork()==0) ? exec("/bin/cp", $tmpfile, $ircdconf) : wait;
#unlink($tmpfile);
+43
View File
@@ -0,0 +1,43 @@
/* simple password generator by Nelson Minar (minar@reed.edu)
* copyright 1991, all rights reserved.
* You can use this code as long as my name stays with it.
*
* $Id$
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern char *getpass();
int main(argc, argv)
int argc;
char *argv[];
{
static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
char salt[3];
char * plaintext;
int i;
if (argc < 2) {
srandom(time(0)); /* may not be the BEST salt, but its close */
salt[0] = saltChars[random() % 64];
salt[1] = saltChars[random() % 64];
salt[2] = 0;
}
else {
salt[0] = argv[1][0];
salt[1] = argv[1][1];
salt[2] = '\0';
if ((strchr(saltChars, salt[0]) == NULL) || (strchr(saltChars, salt[1]) == NULL))
fprintf(stderr, "illegal salt %s\n", salt), exit(1);
}
plaintext = getpass("Enter Password: ");
printf("Encryption: %s\n", crypt(plaintext, salt));
return 0;
}
+3 -9
View File
@@ -118,14 +118,8 @@ Tom Hopkins <hoppie@buengf.bu.edu> / September, October 1990:
always works on code, so he has to have done alot more than three
lines worth. :)
UnrealIRCd Coders
Carsten Munk <stskeeps@unrealircd.com> / May 1999 - December 2008
Dominick Meglio <codemastr@unrealircd.com> / June 1999 - August 2005
David Flynn / March 2000 - June 2000
McSkaf / June 2001 - September 2001
Finny Merrill <griever@unrealircd.com> / November 2001 - December 2002
Bram Matthys <syzop@unrealircd.com> / January 2002 - date
This list is incomplete, type /INFO on IRC to find the updated list.
Carsten Munk <stskeeps@mp3fans.co.uk> / May and futher 1999:
* Made many features based on Elite.. :/
Thanks go to those persons not mentioned here who have added their advice,
opinions, and code to IRC.
@@ -145,4 +139,4 @@ Eric P. Scott <eps@toaster.sfsu.edu>
Dan Goodwin <fornax@wpi.wpi.edu>
Noah Friedman <friedman@ai.mit.edu>
[ $Id$ ]
[ $Id$ ]
+1751
View File
File diff suppressed because it is too large Load Diff
-31
View File
@@ -1,31 +0,0 @@
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
Configuration Program
for UnrealIRCd 5.2.4
This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
A short installation guide is available online at:
https://www.unrealircd.org/docs/Installing_from_source
Full documentation is available at:
https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
--------------------------------------------------------------------------------------
The full release notes are available in doc/RELEASE-NOTES.md
For easier viewing, check out the latest online release notes at:
https://github.com/unrealircd/unrealircd/blob/unreal52/doc/RELEASE-NOTES.md
UnrealIRCd 5 is compatible with the following services:
* anope with the "unreal4" protocol module - version 2.0.7 or higher required!
* atheme with the "unreal4" protocol module - tested with version 7.2.9
--------------------------------------------------------------------------------------
+128
View File
@@ -0,0 +1,128 @@
SmartRoute
Rule based connects
Draft 4 - Aug 19, 1994
by Tony Vencill
Rule based connects allow an admin to specify under what conditions
a connect should not be allowed. If no rules are specified for a
given C and/or N line it will be allowed under any condition.
A rule may consist of any legal combination of the following functions
and operators.
Functions
---------
connected(targetmask) - true if a server other than that processing
the rule is connected that matches the
target mask
directcon(targetmask) - true if a server other than that processing
the rule is directly connected that matches
the target mask
via(viamask, targetmask) - true if a server other than that processing
the rule matches the target mask and is
connected via a directly connected server
that matches the via mask
directop() - true if an oper is directly connected
Unary operators
---------------
! eg: !argument - true if the argument is false
Binary operartors
-----------------
&& eg: arg1&&arg2 - true if arg1 and arg2 are both true
|| eg: arg1||arg2 - true if arg1, arg2, or both are true
Parenthesis () are allowed for grouping arguments, but if no parenthesis
are included, && will take precedence over ||, ! will take precedence
over both && and ||, and the function will be evaluated from left to
right. White space in a rule is ignored. Invalid characters in a rule
will lead to the rule being ignored.
Examples
--------
A simple example of a connect rule might be:
connected(*eu.under*)
This might be used in a US undernet server for a Europe CN pair to
insure that a second Europe link is not allowed if one US-EU link
already exists. Note that on the undernet, US server names are
city.state.us.undernet.org and Europe server names are
city.country.eu.undernet.org.
A more interesting example might be:
connected(*eu.under*) &&
( !direct(*eu.under*) || via(manhat*, *eu.under*) )
Imagine the Boston undernet server uses this rule on its Europe CN
pairs. This says that if a Europe server is already connected, a
Boston-Europe connect will not be allowed. It also says that if a
Europe server does already exist and Boston is not directly connected
to one or more Europe servers or Manhattan is, the Boston-Europe
connect will not be allowed. This has the effect of allowing multiple
US-EU links but attempting to limit these links to one server (ie:
Boston will not initiate its first Europe link if another server is
already linking Europe). This rule will also prefer to let Manhattan
handle the US-EU link by disallowing Boston-Europe links if a Europe
server is already linked to Manhattan.
A example of the remaining function, directop(), is:
connected(*eu.under*) || directop()
If this line is used on Boston for the Paderborn CN pair, it will allow
connects to Paderborn only if another Europe server is not already
connected and there is not an oper on Boston. If this rule is
overrideable (ie: is applied only to autoconnects as described below),
then it will disallow Boston autoconnects to Paderborn while a Boston
oper is online, but allow oper-initiated connects to Paderborn under any
circumstance. This directop() function could be used to invoke less
prefered routes only when an oper is not present to handle routing, or
conversly to allow use of less preferable routes only when an oper is
present to monitor their performance.
ircd.conf entries
-----------------
A rule is listed in the ircd.conf file using a D or d line (which can
be thought of as a "disallow" line). D lines will apply to all oper
and server originated connects, while d lines will apply only to
autoconnects (ie: they are overrideable by opers). The formats are:
D:targetmask::rule
d:targetmask::rule
Remember that newlines are not allowed in conf lines. Two examples
(from above) are:
D:*eu.under*::connected(*eu.under*)
d:*eu.under*::connected(*eu.under*) || directop()
Connects originating from other servers will be checked against and
matching D lines, while matching d lines will be ignored as it will not
be clear whether or not the connection attempt is oper initiated.
Checking and viewing rules
--------------------------
The chkconf program that comes with the servers has been modified to
also check your connect rules. If running in debug mode, parsing errors
will show up at debug level 8. To view rules online, "/stats d" can be
used to see all rules and "/stats D" can be used to view those rules
which affect oper initiated connects and accepts.
Processing and storage
----------------------
The rules are parsed when the conf file is read and transformed into a
more efficiently computed form, then all applicable rules are
evaluated each time a connect command is given or an autoconnect is
due. If more than one applicable rule is given, only one need
evaluate to true for the connect to be allowed (ie: the rules are ored
together). Note that conditions that exist when the connect is
initiated might differ from conditions when the link is established.
[ $Id$ ]
-14
View File
@@ -1,14 +0,0 @@
Although UnrealIRCd is a free program, we do put a great deal of time,
effort, and money into keeping UnrealIRCd alive. If you like UnrealIRCd and
want to support us then please consider making a donation.
PayPal Donation Link: https://unrealircd.org/index/donations
If you don't want to use PayPal, or you want to donate something other than
money, then please contact Syzop (syzop@unrealircd.com).
All those who donate at least a certain minimum amount will have their name
and/or company listed in /CREDITS and will be listed on the website.
Thank you for your support,
The UnrealIRCd Team
+129
View File
@@ -0,0 +1,129 @@
[ $Id$ ]
Take this with a grain of salt.. it's heaps old and this isn't Elite anymore
---------------------------
Version Elite2.0 ==========
===========================
- Since +x was rewritten, the ban bug is 100% fixed. :)
- Rewrote +x hidden host function completely.
- Fixed FUNNY bug with hiddenhost and /who (Reported by Prod|gy)
- Added/Removed irc networks
- Fixed bug in /watch (Reported/Fixed by Despise)
- Added nick-change flood protection.
- Added an awesome manual... ./manual to run
- Removed /who notice for opers.
- Added protection of /akill *@* :)
- Removed java stuff completely. (Java clients are like normal IRC clients...right?)
- Added new +a mode. This mode can only be set by +q channel owners. When you are +a in a
channel, you cannot be deopped or kicked. (Syntax: /mode #chan +a <nick>)
- Added new +q channel mode. ChanServ must set the channel founder +q so they are also
known as channel owners via the ircd. Channel owners are protected and may set
other users +a which they will also be protected (but not chan owners).
(Syntax: /mode #chan +q <nick>)
- Re-coded /MAP
- Changed GLINE notices from sendto_ops to send to all opers with +e flag on.
- Added (addnet) script, you can run this to add your net settings to the next release.
- Changed <server> to <ircnetwork> in whois "Blah is an oper on <server>"
- Added new +L channel mode. If a #chat has a limit (+l) of 10 users, and +L set to channel
#chat2, when a user trys to join #chat, they won't get "#chat is full", they will be
auto-joined to #chat2 - (Linked channels in other words).
(Syntax: /mode #chan +L <linked chan>)
- Changes user@shadow-33.com to user@user-33.one.com (noone will know one.com is the realhost)
- Changed +x for IP's from (x.x.x.***) to (x.x.x.network-#)
- In oline flags * will introduce +e on oper up. (before: required +e in oline flag)
- Removed +t usermode (UMODE_ALL) - wasn't used.
- Made 'create your own network setting' feature more stable.
- Added new channel mode (+x) to disable colored text in channel.
- Added +C (Co Administrator)
- Added +T (Technical Administrator)
- Changed /map to numerics...
- Made startup message when booting more stable.
Version Elite1.3 (02/23/99)
============================
- Cleaned up version.c.SH
- Added new net settings (netdomain & helpchan)
- Added new net config creator in ./Config
- Made ./Config more easier...
- Created new usermode +j (Java user)
- New hostname (java.shadownet.org) for java users.
- Removed RUN_SERVICES code from entire ircd.
Version Elite1.2.4 (02/14/99)
============================
- Fixed the nick crash bug! (damn m_kill small error)
- New network(s) added.
- Changed one thing in m_gline (nothing big)
Version Elite1.2.3 (02/10/99)
============================
- Removed SOCKS checking. (possibly cause of crashing)
- Added new networks
Version Elite1.2.2 (02/02/99)
============================
- Fixed the crashing bug. (Changing nicks with linked servers)
- Modified AceStar net settings.
- Q-line notices are back (except for ULined clients).
- Fixed /kill bug with services.
Version Elite1.2.1 (01/29/99)
============================
- Fixed multiple notices from +N / -N
- Added some text to s_err.c
- Possibly fixed the odd crashing... ?
Version Elite1.2 (01/24/99)
============================
- Netadmin can be used via +N in the oline slot now.
- When +N is executed, net-wide oper msg's are sent about it.
- Completely removed the freeze function (it's a toy unlike a command)
- Changed abit of the GLINE adding notice.
- Added logging to a file for glines (gline.log)
- Implemented SOCKS checking (thx Rhom).
- Changed channel lists only when 2 ppl in chan to 1.
- Changed sendto_ops function in many places in s_user.c/s_serv.c to
sendto_locfailops.
- Changed GNOTICE in s_user.c/s_serv.c to GLOBOPS
- Fixed hiddenhost bug with /kill (+w could see real host of oper)
- Fixed hiddenhost bug with /oper (+s could see real host of oper)
[Special thanks goes out to Rhom for reporting/help patch bugs]
Version Elite1.1.1 (12/12/98)
=============================
- Fixed /whois bug (had problems with mIRC clients *sigh*)
- Fixed /topic bug (didn't allow topic changes at all.)
Version Elite1.1 (12/6/98)
============================
- Fixed ./Config script (Net select)
- Fixed /remgline bug.
- If ULined clients, channels are not shown which they are in.
- Fixed +e / +t / +b (non-opers could get +et before)
- Fixed OperMode notice.
- Fixed Gline sending extra Global on expire.
- Fixed /whowas wrong hostname bug (by Thiago)
- Fixed chkconf ZLINE error (by matt)
- Added PhazeNet configuration
- Added option for auto +x in ./Config
- Freeze was disabled in this version (It will be back in 1.2)
Version Elite1.0 (09/20/98)
============================
- Changed Shadow3.9 to Elite1.0 (Starting a new IRCD)
- Changed some numeric's around in src/s_err.c
- Auto +x on Oper up.
- Fixed small error in ./ircd script.
- Made ./Config more Linux-redhat friendly.
- Added RelicNet to the ircd.
- include/config.h is much more compatible with all IRC nets.
- Added /gline (works 100%) [/gline <user@host> <seconds> <reason>].
- Fixed up /map.
- Added UMODE's +e & +t
* e: EYES [Can see ppl who /whois, and other notices.]
* t: ALL [See's all net notices ie: See's all Client connectings...]
- Fixed the hiddenhost bug with IP's...
- Fixed major bug with hiddenhost which caused coredump.
- Made a new script (makeconf) -- generates the ircd.conf file.
-47
View File
@@ -1,47 +0,0 @@
pub rsa4096 2015-07-02 [SC] [expires: 2025-06-29]
1D2D2B03A0B68ED11D68A24BA7A21B0A108FF4A9
uid UnrealIRCd releases (for verification of software downloads only!) <releases@unrealircd.org>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFWVOFYBEACsWFWM25VDaGXq22GSTJo1O53bgAMCZsqj9VKDriUmj7uvozlp
BGHgYFVM4ZT1FUAsWedeIP2aLLkYGmH4odVaAk7IeUa7HfpE45/F6+End6bCpYGe
1UdVQM/Bu3VHoUtVvtIFg788JwbplroapA/D0pi/EAN8WYnN9etgLM2lvzwbjBz9
xTOefwvgRsKbCH63VW7NCyquEcdEJxnMHB7JZUEuzrOUvhAiIkwKw8wbcn36zX0i
wcAFtVO5uVTA/Tdu6nWsZvqVc6R1E3usJzWSwbmoUtPUM5Mk9I9gL73EsqEbgs5N
trT00r75RcfiThNEP8NtDtB8AFum6OCSg/+8bdJmKcWVKpuB+lUvP0d4UAqm5vmH
/KQh/nyHXKvAvhWqHizozP1WGevpxLFHMjm/+1T167Iil/3UcUyn9qd0CuYSszJw
y5Vp6iJHkVo8qxI89rkzSDRi+ppLCBTwuN01ducftDxvIQMVrphdKZLPGzQrltkh
lIN4XNS6cOOsrbbk5+Kc2xih6qt+DyiRHaNFQnoMdRVeIrmf4u4ClMcHlzELV8gF
D+s0BbVqhVwAhbKMfKaVmvVlj8bSET0z2s0vhZODwlgANpDBLNsIU6leiYRAzub5
WY5Hz1m7P8ZXSMPh4/vGh1kg3E9IRKLZDZ65gEYr8nNCzbAYmDQ3IkplIwARAQAB
tFxVbnJlYWxJUkNkIHJlbGVhc2VzIChmb3IgdmVyaWZpY2F0aW9uIG9mIHNvZnR3
YXJlIGRvd25sb2FkcyBvbmx5ISkgPHJlbGVhc2VzQHVucmVhbGlyY2Qub3JnPokC
PgQTAQIAKAUCVZU4VgIbAwUJEswDAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA
CgkQp6IbChCP9KlFzQ/+ObuBgCtXvLcbpq7C2usHxgtEB1rV9khLGugJXevjMaf3
+vo4d5cd5go665po8oqDnSUfq+8LPDj/nnroKQcS5Kb4KdHz6rn+53rHWtw6PPGN
KswFS05Vy2AkYg4nVXvrGm0oV173qOms2REoStP0mEm7F7ZTJ6k1qgmZ8tcFgfMm
fqEl94O5zDWycaJx7K0h3n+xUyhh+lT9Zl3duzVzCc+YI+dD6UOIXBF9TF9fIb8m
300MBLwTTHq64nGsZbhfzCHNHAO6hTy5XmE+d1g4R87rKim6lP0V1LTbvhOhYhZg
0JrVOr9dhHY4tw1xglz++nMM24t2O9zoRoZjDMHBzzBm3gJq3G160kxVZKKcVaQd
nfYvPOBNtyEyaIIJD8vs2Z9jiJLjpoz0LhnE2TmE4M6YqBsSWfFuPrHE+PJQyEQg
2zEoTRCSFSLaq+5kl3vKM/cblwkQeKkNe8u6bDNk7bEPUCQstyOqcvoTWE2gs3f2
n7wI7BzW3uX5YUp1CcdPig1XxveI4XaKKrhRacvGvvNHdXw1scj1K0SCXvy4EPpf
dLthTC6BHwO2P56wlxK0MRL/GD72ttBCcsyLWYdL9OIT6Lx4bZVhvEjKDapWAL04
X1mXMHUK1iO4lunbqP3lu6F8qsuI/B2sIiJK7aSjv4bjVRw/jcESrhmCvnN3B3mI
RgQQEQIABgUCVZU9NQAKCRBpsoj7n/A5N4E2AJ4i5z98+mA8Ug9utdslGvHFRq+s
PgCeILJ7/dJFYZFz1YpaNTbRCHIesaWIXgQQEQgABgUCVZU9ZwAKCRBuZ21Ff+GZ
pueXAP9bJ1hPWa3ITIoapW9eTT1eNv+17KqcclwZzxCopbUkFAD+NptTuXpeivM+
USWsQJFpFlLdDckcv8QzLQwgzZ8TXtKJAhwEEAEIAAYFAlg796cACgkQ3pO4tH50
XrMyWQ/+NJyhO5yibAhN4RgCJ+qFdp9Llm+SQGFjVtw8L7nv3M0Us8xspmVlX7TZ
/OK6AhUyaqAmg3ZXruaetrBVIAlP675cXJ1NIPfyT+PvMUbupvqBhyPZKqdnh2WT
ZMYdQrvw503h+BlyjGeAWd34tLhtiM1A69tntFu2A7bKhkoxE7KoyCjKmLgUb30M
r5guxb6DCUXK8m5ooHl58kLtJrTpW9l3YYXpKe/POYPIK6ULZN7TChtFOTJ+ebx1
2LaQGGdRKaCSM1OX7mfvBG8GtljQcGoP+f5TmvRbCGGfiR9r6MdgG6LYTuYf7pR7
NBwxveqwJV4iOmd9b+doIra5tRX0TqEKdEqpVHhm4UTZlHVyIpg97Lc/7WiWS1Z5
UIhT4YxlztPUvWmCXlleNEqBYK86OsVFqryHDVKtPbH65k/xKfu8w/hHkv7TQ23r
eoMs1uBlaUWe3orgUOr0tnFLXz809SAwC9sxQq9TWTm50NqiaQvBVInSUssFYPkG
qBljIXtdUzFGBn3sTpFRY6p2yzIo54EQmQAvMQPEJkQ8JQJ47au82DxFUBZYKci5
lsJfRueGnn5A36eUZdkhZ6Dm61M3YldYcpRa4Xfi0AWbg5yW/uUipc36Ey+vwWyl
x+1IZgjnIIMsyDLuq2tm5p1tiJK2N9L0rxQb/DIK7j8+ZvmlFZQ=
=foLZ
-----END PGP PUBLIC KEY BLOCK-----
+241
View File
@@ -0,0 +1,241 @@
Internet Relay Chat Operator Etiquette Guide (May, 1992)
[ $Id$ ]
Welcome! You've either been selected to be an IRC Operator or you have set
up your server and thus have taken on the dual task of IRC Server
Administrator and IRC Operator. Your future days will be filled with hours
of fun chatting on IRC, and then wondering why everyone you talked to went
away, because the links had apparently broken.
Linking:
========
You will be assigned links from the IRC Routing Coordinators. Please
use these links and these links ONLY. The links have been designed to
maximize efficiency and make delays in chatting minimal. You will
usually be given two links, one to each regional backbone site.
Connect to the primary site first and then to the secondary site. You
should not need to connect to any other sites. You will be informed if
this policy changes.
Kills
=====
/kill is a special operator command. You should use it with
care, and only if absolutely needed. The format is as follows:
/kill NICKNAME comment. Comment can be a phrase of almost any length
(within reason) and should be used for specifying the reason of the kill.
Example: /kill Trillian She's a Ghost
IRC Ghosts are created after a net split has occured and the net has yet to
relink.
/wallops PHRASE This is used to talk to those users who have their
user mode set to +w. /wallops used to be a way for operators to talk
about important matters in linking etc., but it has little use
nowadays.
/TRACE command /TRACE is useful to know what servers are connected to
what. Sometimes /trace can be confusing, especially if you are using
it for the first time. Here is an example of a trace from
stekt1.oulu.fi to cdc835.cdc.polimi.it.
/TRACE cdc835.cdc.polimi.it
*** Link stekt1.oulu.fi<2.7.2> ==> cdc835.cdc.polimi.it
*** Link rieska.oulu.fi<2.7.1>e ==> cdc835.cdc.polimi.it
*** Link nic.funet.fi<2.7.1>e ==> cdc835.cdc.polimi.it
*** Link ircserver.et.tudelft.nl<2.7.1>e ==> cdc835.cdc.polimi.it
*** Link vesuv.unisg.ch<2.7.1>e ==> cdc835.cdc.polimi.it
*** Link apollo.di.unipi.it<2.7.1>e ==> cdc835.cdc.polimi.it
*** Oper Class[10] ==> Allanon[cdc835.cdc.polimi.it]
*** User Class[11] ==> Lupandy[plus2.usr.dsi.unimi.it]
*** Serv Class[3] ==> apollo.di.unipi.it[131.114.4.36] 132S 445C
*** User Class[11] ==> Punk[pluto.sm.dsi.unimi.it]
*** User Class[11] ==> TheEdge[pluto.sm.dsi.unimi.it]
*** User Class[10] ==> Mork[cdc835.cdc.polimi.it]
*** User Class[11] ==> Lollo[c700-2.sm.dsi.unimi.it]
*** User Class[11] ==> Attila[hp2.sm.dsi.unimi.it]
*** Class 0 Entries linked 1
*** Class 11 Entries linked 5
*** Class 10 Entries linked 2
*** Class 3 Entries linked 1
From this output you can see that the route goes first to
rieska.oulu.fi (running version 2.7.1e), then nic.funet.fi,
ircserver.et.tudelft.nl, vesuv.unisg.ch, and apollo.di.unipi.it, after
which cdc835 is the next server. Then we see the connections on
cdc835: One operator (Allanon) and 6 users are on line. The class of
each connection is given. There is only one server connected to cdc835
at the moment, and that server is apollo.di.unipi.it (cdc835 is said
to be a "leaf" server at the moment). The numbers 132S 445C in the end
of line tell us, that there are 132 servers and 445 clients connected
to the servers from apollo onwards. Finally we see a grand total of
connections in each connection class.
/SQUIT server {comment}
/squit isolates a specified server from the next closest server, when
you look at it along the trace path starting from your server.
This is usually used in conjunction with CONNECT (explained later) to
reroute traffic. This will be described in detail in the section
"routing", preceding CONNECT.
Usage (and examples):
/squit E
If the network looks like this initially (and you are on server A)
A <---> B <---> C <---> D
^
|
v
G <---> E <---> F <---> ... (rest of the net)
Then after issuing the previous /squit the network would look like this:
A <---> B <---> C <---> D
G <---> E <---> F <---> ...
/squit E {comment}
It usually helps to give a reason why you are sending a
SQUIT for a server. This can be accomplished by sending
the command "/squit server This link is making the US route
through Finland". The SQUIT will then be sent out, and the
server sending the squit will WALLOP sending the comment
so all operators can see it.
/CONNECT server {portnum server2}
/connect is used to establish a link between two servers. These
connections must be authorized by each server's ircd.conf file, but
any operator can issue a CONNECT between authorized servers. This
command is most often used in conjunction with SQUIT to reroute
traffic.
If only one argument is given, this command causes the server you
are on to attempt to connect to the server specified. For example,
"/connect B" (in the previous example) would cause your server (A) to
connect to B.
Suppose you wanted to reconnect server F to server E? You cannot
contact server F since it is no longer part of your network. However,
you can tell server E to connect to it. A remote CONNECT can be issued
to server E.
Examples (assume you are on server A):
/connect B
If the network initially looks like this:
A B <---> ... (rest of network)
Then afterwards (if the connection succeeds) the network will look
like this:
A <---> B <---> ...
In the example where you wanted to reconnect server E to F, the
following syntax would be appropriate (note: we are assuming that
F's irc socket port is 6667, which is the default)
/connect F 6667 E
If the network initially looks like this:
A <---> B <---> C <---> D
^
|
v
G <---> E F <---> ...
Then after your CONNECT request the network topology will look like this:
A <---> B <---> C <---> D
^
|
v
G <---> E <---> F <---> ...
Be careful when connecting servers that you know which command to
use! If you simply issued "/connect F" from your server, the
network would look like this:
... <---> F <---> A <---> B <---> C <---> D
^
|
v
G <---> E
which for various reasons (discussed below) might be very
undesirable.
Routing
=======
When and how should you do rerouting? This depends on where your
server is topologically located and whether you route traffic. If you
are a leaf node (i.e. only connect to one server at a time) then
chances are you won't need to do any routing at all. Your ircd.conf
file should be written to connect to the best possible servers first
before trying alternates. At the most, you may decide to squit an
alternate server and connect to your primary if/when it goes back up.
This only involves local squits, however.
If you are operating a backbone site, you may find yourself
rerouting things quite often. If the servers badger.ugcs.caltech.edu
(Pasadena, CA), irc.mit.edu (Boston, MA), minnie.cc.utexas.edu
(Austin, TX) and ucsu.colorado.edu (Boulder, CO) were routing traffic
in the following way:
... <---> minnie <---> badger <---> bucsd <---> ucsu <---> ...
It would make sense to either squit ucsu and reconnect it to minnie,
or disconnect minnie from badger and connect to ucsu, because
topologically (and geographically) ucsu and minnie are rather close.
There are occasions when US traffic for some reasons winds up being
routed through Australia. This is another case where traffic should
definitely be rerouted. However, there are sometimes occasions when
routing is going through "backdoor" methods. If you see something
totally outrageous (like the east coast and the west coast being
connected by eff.org) please ask for example on channel #twilight_zone
before you send any squits, because chances are, it's like that for a
reason.
Of course, any operator can remotely squit or connect servers, so
if you see a problem and you're sure you know how to fix it, it's a
good idea to do so. If the operator of a server which is is being
routed poorly is online, it's probably best to contact him/her first,
though.
Chances are that hub operators will be more familiar with the
general topology of the network and which servers connect to which
(which is why most of the manual routing is left to them), so if you
have any problems, talk to the other operators on operator channels
(#twilight_zone, #eu-opers etc.) That's what they are there for!
Also, be aware that servers will notify all the operators online of
remote SQUITs and CONNECTs via WALLOPS.
Please let us know if there should be any additions to this guide. Again,
this is not MANDATORY, this is just a GUIDE. Please conduct yourself as
an IRC Operator would...you are looked upon for assistance, both emotional
and mental.
Helen Rose Christopher Davis Noah Friedman
<hrose@cs.bu.edu> <ckd@cs.bu.edu> <friedman@ai.mit.edu>
January, 1991
Updated by
Mauri Haikola
<mjh@stekt.oulu.fi>
May, 1992
-1162
View File
File diff suppressed because it is too large Load Diff
+39
View File
@@ -0,0 +1,39 @@
Unreal3.1.4-Meadows Release Notes
===================================
* This is yet another significant upgrade over the last version. Most notable
compatibility wise is the backporting of the new host cloaking from 3.2.
As a result of this, we strongly recommend that you convert all of your servers
to 3.1.4 and avoid running a network with mixed versions. They'll link fine
and operate okay, but the differences in cloaking will make it easier for
individuals to evade bans by simply switching servers.
* Before this version if a 3.2 server with IPv6 enabled was linked to the
network, and a client connected using IPv6, it caused 3.1.x servers to segfault,
as the cloaking routine was unable to deal with IPv6 format addresses. This is
also corrected in this version
* Other serious bugs involving the mode system have been resolved. These problems
include problems that could potentially generate a desynch on the network. This is
yet another reason you should use all 3.1.4 servers.
* The OperOverride system is completely redone. You must now invite yourself (as an
oper) into a channel in order to walk any modes on join.
* Please Note: There have been a couple of configuration file changes! This is
IMPORTANT. Your IRCd WILL NOT START if you don't change the cloak key values found
in unrealircd.conf. Additionally, it would be prudent to note that there is a
new directive in unrealircd.conf, exempt_all, which permits exempt lines in
ircd.conf to match glines in addition to klines. It defaults to 1. Finally, both
version numbers in the .network file and unrealircd.conf have been changed. In
unrealircd.conf, because of the 4 new directives. In the .network file because
we removed techadmin, and the host directive for it. We will NOT bring techadmin
back. If you don't like it, readd it yourself, and be sure to note that we won't
provide support for modified versions of Unreal.
* The rest of the changes can be found (obviously) in the Changes file.
* Finally, read Unreal.nfo as usual AND THE DOCS in doc/.
- Luke (luke@unrealircd.com)
+25
View File
@@ -0,0 +1,25 @@
Unreal3.1.5-Valek Release Notes
===================================
* IMPORTANT: OperOverride has been modified. In order to be
able to override anything as an oper, you MUST have the letter
"v" in your O line flags!
* This release is mostly a bug fix release. It resolves the
following issues as well as some others:
- Bug with /invite not propagating
- Bug with channel exempts being added multiple times
- Bug with channel exempts multiplying on synch (to resolve
this bug entirely *all* your servers must run 3.1.5)
- Bug with /userhost always displaying *
- Others (read the Changes file in .)
* If you are upgrading from an earlier version (before 3.1.4),
please read the doc/RELEASE-NOTES.3.1.4 file as well. There
were numerous important/significant changes between 3.1.4 and
earlier versions.
* Finally, read Unreal.nfo as usual AND THE DOCS in doc/.
- Luke (luke@unrealircd.com)
-123
View File
@@ -1,123 +0,0 @@
Rules about patches & modifications to UnrealIRCd
1. When making a change, always add a small description in the commit log.
Don't forget to mention the bug# and credit the reporter (if any).
2. If new files are made, they must contain proper copyright headers.
3. Each bug or feature should have a bug# so people can have a discussion
about it. This has a few implications (read!!):
* People must report bugs/feature requests to bugs.unrealircd.org and
not on IRC, e-mail, etc.
* That means other people can see the bug# and comment on it. This means
discussion is easy to read back for each issue and not spread between
several IRC logs.
Furthermore, by using the bugtracker instead of directly committing,
people could point out that there might be a better way to do things
than you originally thought, or it might be that other devs don't like
it at all.
* If a head coder has 'acknowledged' or 'confirmed' the issue or stated
in a comment that it's OK to implement, then any dev may take the issue.
The dev should change the status to 'assigned' and work on it, then
commit and change it to 'resolved', set 'fixed in version' to the
correct release, and add a comment pasting the relevant commit log.
Of course other guidelines, in particular rule #7, still applies.
4. If you don't have direct write access to the repository then you can
submit changes as as PR on github. It is very much preferred to also
have a bugs.unrealircd.org entry for it as well (see previous item).
5. For the stable branch, in general, only commit changes that have an
associated bugid# and/or were discussed.
For branches currently in development (alpha/beta) there's more freedom
and if you think the change will be small and is fine without a
discussion then feel free to commit.
6. Regarding reidenting, restructuring or other major code cleanups: please
discuss before doing so. The other devs might not agree with you on the
particular cleanup you have in mind which would result in another
clean-up-the-cleanup commit.
You may, however reindent and clean up individual sections when you are
working on fixing a particular bug# or implementing a new feature. In fact
you're encouraged to do so if the code is confusing without it. However,
obey the style of Unreal's code (mostly outlined in this document)
and do not introduce yet another (new) style. Also, be careful with doing
any cleanup: if you're unsure in any way about the use of something,
or something that looks redundant on first sight, then look more
carefully... it might indeed be useless and/or redundant, but it might
also be a subtle thing that can create great bugs when 'cleaned up'.
7. During the Release Candidate stage (from RC1 until the final release)
only the head coder may commit directly, all others should ask and
present their patch before committing. Yes, even if you are changing
only 1 line of code or text.
9. UnrealIRCd should compile on all supported operating systems and
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
higher on Windows. This means you cannot blindly use all C99 extensions.
10. Coders must test their code before committing.
11. /*
* These kind of comments
*/
NOT
// These kind of comments
12. if (something == 1)
{
moo; /* comment */
/* This does what what what */
cow(go(moo));
}
NOT
if (something == 1) {
}
13. Do not touch version.c.SH or version.h, unless you are a head coder.
If you need a credit in, contact us
14. Protocol changes must be discussed before making patches for it.
15. We do NOT rip people off. If we use other people's code, it MUST be
properly credited.
16. We use tabsize 8 and we use tabs AND NOT SPACES.
Some code is old and horrible and has a mix of tabs and spaces used for
spacing, that's something we do not want to have ;)
17. Be careful about overflows. Do not do any unchecked string copies.
Instead of strcpy, strcat and sprintf/ircsprintf, use the following
functions: strlcpy, strlcat, snprintf/ircnsprintf.
If you are copying/writing character-by-character or word-by-word in a
loop, eg using *p++ = x; then be very sure about your size counting.
Often it's better to avoid such code altogether, by simply using
strlcat for everything.
18. Speed. When optimizing or writing code, keep in mind that readability and
stability comes FIRST, and after that comes speed. So we'd rather prefer some
readable code (even if difficult) over some odd highly optimized routine which
nobody understands, is difficult to extend, and might have several bugs.
As mentioned earlier: use ircsnprintf, not snprintf (this is because
ircsnprintf is optimized for simple strings like the ones we use).
ircsnprintf calls snprintf when it finds a (non-simple) format specifier it
can't handle. Simple format specifiers do not have prefixes other than
h and l.
19. Initialize your structs and use the proper memory calls.
In UnrealIRCd we use safe_alloc, safe_free, safe_strdup and safe_strldup.
Do NOT use malloc, calloc or strdup.
20. Comment your code! This should speak for itself...
Put comments wherever you think they are needed, to aid any further coders
with reading your code.. and, in fact, it will aid yourself as well if you
would look back at your code 2 years later.
If there's some obscure pitfall, DO mention it! Don't just "hope" a next
author will see it like you did.
21. Use enums whenever possible, rather than #define constants. Besides making
things more clean, it also aids debugging.
+329
View File
@@ -0,0 +1,329 @@
Written by ^MrMike^ (mike@sector001.org) for the UnrealIRCd
Modified by codemastr to include a few other commands
(note, this file will be updated in CVS asap)
PRIVMSG
- Used to send a message to a person or a channel
Syntax: MSG <nick>,<nick2>,<nick3>,<nick4> <text>
Example: PRIVMSG Stskeeps :Hello. Unreal is a very good ircd.
Example: PRIVMSG Stskeeps,codemastr,DrBin :Hello Unreal Coding Team
NOTICE
- Mainly used for one-time communication or for the results of a command.
Syntax: NOTICE <nick>,<nick2>,<nick3>,<nick4> <text>
Example: NOTICE codemastr :Hi. How are you?
Example: NOTICE codemastr,Stskeeps :Hi codemastr and Stskeeps.
MODE
- Used to change the mode of a channel or a user. You can only change modes for channel you are an Operator or Half-Op on. Also, you can only changes user modes for yourself.
Syntax: MODE <channel/user> <mode>
Example: MODE #UnrealIRCD +tn
Example: MODE #UnrealIRCD +ootn codemastr Stskeeps
NICK
- Changes your "online identity" on a server. All those in the channel you are in will be alerted of your nickname change.
Syntax: NICK <new nickname>
Example: NICK |codemastr|
JOIN
- Used to enter one or more channels on an IRC server. All occupants of the channel will be notified of your arrival.
Syntax: JOIN <chan>,<chan2>,<chan3>
Example: JOIN #UnrealIRCD
Example: JOIN #UnrealIRCD,#OperHelp
PING
- Determines the amount of lag (time it takes for a response to reach a person and come back) between yourself and someone else.
Syntax: PING <user>
Example: PING Stskeeps
WHOIS
- Shows information about the user in question, such as their "name", channels they are currently in, their hostmask, etc.
Syntax: WHOIS <user>
Example: WHOIS DrBin
ISON
- Used to determine of a certain user or users are currently on the IRC server based upon their nickname.
Syntax: ISON <user> <user2> <user3> <user4>
Example: ISON Stskeeps DrBin codemastr NickServ ChanServ OperServ MemoServ
USER
- Used during registration to server (i.e. during inital connection sequence.)
PART
- Used to part (or leave) a channel you currently occupy. All those in the channel will be notified of your departure.
Syntax: PART <chan>,<chan2>,<chan3>,<chan4>
Example: PART #UnrealIRCD
Example: PART #UnrealIRCD,#OperHelp
QUIT
- Disconnects you from the IRC server. Those in the channels you occupy will be notified of your departure. If you do not specify a reason, your nickname becomes the reason.
Syntax: QUIT <reason>
Example: QUIT Leaving!
USERHOST
- Returns the userhost of the user in question. Usually used by scripts or bots to retrieve userhost information.
Syntax: USERHOST <nickname>
Example: USERHOST codemastr
SVSNICK
- Can only be used by a U:Lined server (i.e. services). Changes the nickname of the user in question.
Syntax: SVSNICK <nickname> <new nickname> :<timestamp>
Example: SVSNICK Stskeeps Techie :963086432
SVSMODE
- Can only be used by a U:Lined server (i.e. services). Changes the mode of the channel or user in question.
Syntax: SVSMODE <channel/user> :<mode>
Example: SVSMODE #UnrealIRCD :+o Stskeeps
Example: SVSMODE codemastr :+i
LUSERS
- Provides local and global user information (such as current and maximum user count).
Syntax: LUSERS <server>
CHANSERV
- Will send a secure message to ChanServ. Similar to /msg ChanServ, but more secure. May not work if server is configured improperly.
TOPIC
- Sets/Changes the topic of the channel in question, or just display the current topic.
Syntax: TOPIC <channel>
Syntax: TOPIC <channel> <topic>
Example: TOPIC #operhelp
Example: TOPIC #UnrealIRCD Welcome to the Unreal IRCD Home Channel.
INVITE
- Sends a user an invitation to join a perticular channel. You must be an operator on the channel in order to invite a user into it.
Syntax: INVITE <user> <channel>
Example: INVITE codemastr #OperHelp
KICK
- Removes a user from a channel. Can only be used by Operators or Half-Ops. If no reason is specified, your nickname becomes the reason.
Syntax: KICK <channel> <user> <reason>
WALLOPS
- Sends a "message" to all those with the umode +w. Only IRCops can send wallops, while anyone can view them.
Syntax: WALLOPS <message>
KILL
- Forcefully disconnects a user from an IRC Sever. Can only be used by IRCops.
Syntax: KILL <user> <reason>
Example: KILL Clone5 Cloning is not allowed
AWAY
- Sets your online status to "away".
Syntax: AWAY <reason> (AWAY without a reason will unset you away)
Example: AWAY Walking the dog...
SQUIT
- Disconnects an IRC Server from the network
Syntax: SQUIT <server>
Example: SQUIT leaf.*
WHO
- Searches user information (-i users only) for supplied information. IRCops are a ble to search +i users.
Syntax: WHO <search>
Example: WHO *.aol.com
WHOWAS
- Retrieves previous 'WHOIS' information for users no longer connected to the server.
Syntax: WHOWAS <nickname>
Example: WHOWAS Stskeeps
LIST
- Provides a complete listing of all channels on the network. If a search string is specified, it will only show those matching the search string.
Syntax: LIST <search string>
Example: LIST
Example: LIST *ircd*
NAMES
- Provides a list of users on the specified channel.
Syntax: NAMES <channel>
Example: NAMES #help
OPER
- Attempts to give a user IRCop status.
Syntax: OPER <uid> <pass>
Example: OPER codemastr codeit
CONNECT
- Links another IRC server to the one you are currently on. Remote connections are also possible.
Syntax: CONNECT <server>
Syntax: <CONNECT> <hub> <port> <leaf>
Example: CONNECT leaf.*
Example: CONNECT hub.* 6667 leaf.*
VERSION
- Provides version information of the IRCD software in usage.
Syntax: VERSION
STATS
- Provides certain statistical information about the server (for example, u will provide uptime information).
Syntax: STATS <letter>
Example: STATS u
LINKS
- Lists all of the servers currently linked to the network.
Syntax: LINKS
ADMIN
- Provides administrative information regarding the server.
Syntax: ADMIN <server>
SAMODE
- Allowed a services administrator to change the mode on a channel, without having operator status.
Syntax: SAMODE <channel> <mode>
Example: SAMODE #UnrealIRCD +m
SVSKILL
- Can only be used by a U:Lined server. Forcefully disconnects a user from the network.
Syntax: SVSKILL <user> <reason>
Example: SVSKILL codemastr Goodbye
SVSNOOP
- Can only be used by a U:Lined server. Enabled or disables whether Global IRCop functions exist on the server in question or not.
Syntax: SVSNOOP <server> <+/->
Example: SVSNOOP leaf.* -
MOTD
- Displays the Message of the Day.
Syntax: MOTD
Syntax: MOTD <server>
KLINE
- "Bans" a hostmask from connection to the IRC server.
Syntax: KLINE <hostmask> <reason>
Example: KLINE *@*.aol.com Abuse
UNKLINE
- Removes a k:line from the server.
Syntax: UNKLINE <hostmask>
Example: UNKLINE *@*.aol.com
ZLINE
- Disables all access to the IRC server from a specified IP.
Syntax: ZLINE <ip>
Example: ZLINE 127.0.0.1
UNZLINE
- Removes a currently active z:Line.
Syntax: UNZLINE <ip>
Example: ZLINE 127.0.0.1
GLOBOPS
- Sends a global "message" to all IRCops. Only viewable by IRCops (unlike WallOps, which can be viewed by normal users).
Syntax: GLOBOPS <message>
Example: GLOBOPS Going to be akilling those clones...
CHATOPS
- GLOBOPS is usually reserved for important network information. Therefore, for Oper Chat, CHATOPS was invented. IRCops with the +c flag enabled will be able to send/receive CHATOPS messages.
Syntax: CHATOPS <message>
Example: CHATOPS How's everyone doing today?
LOCOPS
- Similar to GLOBOPS, except only received by those IRCops local to your server.
Syntax: LOCOPS <message>
Example: LOCOPS Going to be adding a temp k:line for that user...
REHASH
- Prompts the server to reread its configuration file (ircd.conf). Will also remove any temporarly lines (i.e. k:line).
Syntax: REHASH
RESTART
- Kills and restarts the irc daemon, disconnecting all users currently on that server.
Syntax: RESTART
Syntax: RESTART <password>
DIE
- Kills the irc daemon, disconnecting all users currently on that server.
Syntax: DIE
Syntax: DIE <password>
RULES
- Reads the rules.conf file and sends the contents to the user.
Syntax: RULES
MAP
- Provides a "network map" of the IRC network. Mainly used for routing purposes.
Syntax: MAP
DALINFO
- Original DALnet ircd credits.
Syntax: DALINFO
MKPASSWD
- Used for generating an encrypted password. Mainly used for encrypted O:Line passwords.
Syntax: MKPASSWD <password>
Example: MKPASSWD codeit
ADDLINE
- Adds a line to the server's ircd.conf file. After added, you must REHASH the server for it to take affect.
Syntax: ADDLINE <line>
Example: ADDLINE C:127.0.0.1:server.dal.net:linking:7325:50
NACHAT
- Similar to CHATOPS, but only Network Admins are able to send/recieve messages.
Syntax: NACHAT <message>
Example: NACHAT Linking a new server in a couple minutes...
KNOCK
- For channels which are invite only, you can "knock" on the channel to request an invite.
Syntax: KNOCK <channel> <message>
Example: KNOCK #secret_chan I'm an op, let me in!
CREDITS
- Credits for Unreal IRCD.
Syntax: CREDITS
LICENSE
- GPL information.
Syntax: LICENSE
SVSJOIN
- Forces a user to join a channel. Can only be used by a U:Lined server.
Syntax: SVSJOIN <nick> <channel>
Example: SVSJOIN codemastr #jail
SAJOIN
- Forces a user to join a channel. Can only be used by a Services Admin.
Syntax: SAJOIN <nick> <channel>
Example: SAJOIN Stskeeps #OperHelp
SVSPART
- Forces a user to leave a channel. Can only be used by a U:Lined server.
Syntax: SVSPART <nick> <channel>
Example: SVSPART codemastr #jail
SAPART
- Forces a user to leave a channel. Can only be used by a Services Admin.
Syntax: SAPART <nick> <channel>
Example: SAPART Stskeeps #OperHelp
SETHOST
- Changes the hostname of yourself. Only available to IRCops.
Syntax: SETHOST <host>
Example: SETHOST coder.tspre.org
SETIDENT
- Changes the ident of yourself. Only available to IRCops.
Syntax: SETIDENT <ident>
Example: SETIDENT coder
SETNAME
- Changes the "IRC Name" (or "Real Name") of yourself. Available to everyone.
Syntax: SETNAME <name>
Example: SETNAME Unreal Coding Team Member
CHGHOST
- Changes the hostname of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGHOST <nick> <host>
Example: CHGHOST codemastr coder.tspre.org
CHGIDENT
- Changes the ident of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGIDENT <nick> <ident>
Example: CHGIDENT codemastr coder
CHGNAME
- Changes the "IRC Name" (or "Real Name") of a user currently on the IRC network. Only available to IRCops.
Syntax: CHGNAME <nick> <name>
Example: CHGNAME codemastr Unreal Coding Team Member
-2
View File
@@ -1,2 +0,0 @@
For information on how to compile UnrealIRCd (modules) on Windows, see:
https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
+1741
View File
File diff suppressed because it is too large Load Diff
-43
View File
@@ -1,43 +0,0 @@
/* Standard Aliases */
alias identify {
format "^#" {
target chanserv;
type services;
parameters "IDENTIFY %1-";
}
format "^[^#]" {
target nickserv;
type services;
parameters "IDENTIFY %1-";
}
type command;
}
alias services {
format "^#" {
target chanserv;
type services;
parameters "%1-";
}
format "^[^#]" {
target nickserv;
type services;
parameters "%1-";
}
type command;
}
alias register {
format "^#" {
target chanserv;
type services;
parameters "REGISTER %1-";
}
format "^[^#]" {
target nickserv;
type services;
parameters "REGISTER %1-";
}
type command;
}
-17
View File
@@ -1,17 +0,0 @@
/* Anope Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias hostserv { type services; }
alias hs { target hostserv; type services; }
include "aliases/aliases.conf";
-26
View File
@@ -1,26 +0,0 @@
/* Atheme Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias hostserv { type services; }
alias hs { target hostserv; type services; }
alias saslserv { type services; }
alias sss { target saslserv; type services; }
alias gameserv { type services; }
alias gms { target gameserv; type services; }
alias groupserv { type services; }
alias grs { target groupserv; type services; }
alias alis { type services; }
alias ls { target alis; type services; }
include "aliases/aliases.conf";
-33
View File
@@ -1,33 +0,0 @@
/* Auspice Aliases */
/* Uncomment this, if you have enabled "MassServ, W and X" in auspice */
# alias massserv { type services; }
# alias ma { target massserv; type services; }
# alias W { type services; }
# alias X { type services; }
/* Uncomment this, if you have enabled "WebServ" in auspice */
# alias webserv { type services; }
# alias ws { target webserv; type services; }
alias agent { type services; }
alias adminserv { type services; }
alias as { target adminserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias hostserv { type services; }
alias ho { target hostserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias rootserv { type services; }
alias rs { target rootserv; type services; }
include "aliases/aliases.conf";
-12
View File
@@ -1,12 +0,0 @@
/* Cygnus Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias rootserv { type services; }
alias rs { target rootserv; type services; }
include "aliases/aliases.conf";
-16
View File
@@ -1,16 +0,0 @@
/* Epona Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias botserv { type services; }
alias bs { target botserv; type services; }
include "aliases/aliases.conf";
-14
View File
@@ -1,14 +0,0 @@
/* Generic Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
include "aliases/aliases.conf";
-4
View File
@@ -1,4 +0,0 @@
/* Generic StatServ Aliases */
alias statserv { type stats; }
alias ss { target statserv; type stats; }
-17
View File
@@ -1,17 +0,0 @@
/* IRCServices Aliases */
alias nickserv { type services; }
alias ns { target nickserv; type services; }
alias chanserv { type services; }
alias cs { target chanserv; type services; }
alias memoserv { type services; spamfilter yes; }
alias ms { target memoserv; type services; spamfilter yes; }
alias operserv { type services; }
alias os { target operserv; type services; }
alias helpserv { type services; }
alias hs { target helpserv; type services; }
alias irciihelp { type services; }
alias statserv { type services; }
alias ss { target statserv; type services; }
include "aliases/aliases.conf";
-6
View File
@@ -1,6 +0,0 @@
/* OperStats Aliases */
alias operserv { type stats; }
alias os { target operserv; type stats; }
alias statserv { type stats; }
alias ss { target statserv; type stats; }
-51
View File
@@ -1,51 +0,0 @@
/*
Unreal Internet Relay Chat Daemon
Copyright (C) Carsten V. Munk 2000
NOTE: Those words are not meant to insult you (the user)
but is meant to be a list of words so that the +G channel/user mode
will work properly. You can easily modify this file at your will.
If you got words to add to this file, please mail badwords@tspre.org
This is some filling space, scroll down to see the words
*/
badword all { word "pussy"; }
badword all { word "fuck"; }
badword all { word "whore"; }
badword all { word "slut"; }
badword all { word "shit"; }
badword all { word "asshole"; }
badword all { word "bitch"; }
badword all { word "cunt"; }
badword all { word "vagina"; }
badword all { word "penis"; }
badword all { word "jackass"; }
badword all { word "*fucker*"; }
badword all { word "faggot"; }
badword all { word "fag"; }
badword all { word "horny"; }
badword all { word "dickhead"; }
badword all { word "sonuvabitch"; }
badword all { word "*fuck*"; }
badword all { word "tits"; }
-42
View File
@@ -1,42 +0,0 @@
/* Example of a possible semi-secure /DCCALLOW configuration written by Syzop.
* $Id$
*
* Actually nothing is *100% secure*... there could still be
* bugs in the software itself (think: a winamp bug that can
* be exploited via an mp3, or: a wmplayer bug that can be
* exploited via a specially crafted .wmv, etc..).
* If you are really that paranoid you could just remove
* all 'allow dcc'-blocks and prompt the user for EVERY file ;).
*
* Still, I think this file is a good tradeoff between userfriendlyness
* and security. Note that when you try to only DENY specific
* file type (exe, com, etc) you are *guaranteed* to miss ones
* (like: did you know .r17 gets treated as a rar archive?
* and that an exe can be disguished as .cmd which is executable
* on nt/w2k/xp?)
*/
/* first.. deny everything, then allow known-good stuff... */
deny dcc { filename "*"; reason "Possible executable content"; soft yes; }
/* common image formats */
allow dcc { filename "*.jpg"; soft yes; }
allow dcc { filename "*.jpeg"; soft yes; }
allow dcc { filename "*.gif"; soft yes; }
allow dcc { filename "*.png"; soft yes; }
allow dcc { filename "*.bmp"; soft yes; }
/* audio / video (but not scripted/playlists!) */
allow dcc { filename "*.mp1"; soft yes; }
allow dcc { filename "*.mp2"; soft yes; }
allow dcc { filename "*.mp3"; soft yes; }
allow dcc { filename "*.mpg"; soft yes; }
allow dcc { filename "*.mpeg"; soft yes; }
allow dcc { filename "*.m1v"; soft yes; }
allow dcc { filename "*.m2v"; soft yes; }
allow dcc { filename "*.vob"; soft yes; }
allow dcc { filename "*.wav"; soft yes; }
/* text / misc */
allow dcc { filename "*.txt"; soft yes; }
allow dcc { filename "*.log"; soft yes; }
allow dcc { filename "*.pdf"; soft yes; }
allow dcc { filename "*.c"; soft yes; }
allow dcc { filename "*.cpp"; soft yes; }
-592
View File
@@ -1,592 +0,0 @@
/* Configuration file for UnrealIRCd 5
*
* Simply copy this file to your conf/ directory, call it
* 'unrealircd.conf' and walk through it line by line (edit it!)
*
* Important: All lines, except { and } end with an ;
* This is very important, if you miss a ; somewhere then the
* configuration file parser will complain and the file will not
* be processed correctly!
* If this is your first experience with an UnrealIRCd configuration
* file then we really recommend you to read a little about the syntax,
* this only takes a few minutes and will help you a lot:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* UnrealIRCd 5 documentation (very extensive!):
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
*
* Frequently Asked Questions:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* This is a comment, all text here is ignored (comment type #1) */
// This is also a comment, this line is ignored (comment type #2)
# This is also a comment, again this line is ignored (comment type #3)
/* UnrealIRCd makes heavy use of modules. Modules allow you to completely
* customize the featureset you wish to enable in UnrealIRCd.
* See: https://www.unrealircd.org/docs/Modules
*
* By using the include below we instruct the IRCd to read the file
* 'modules.default.conf' which will load more than 150 modules
* shipped with UnrealIRCd. In other words: this will simply load
* all the available features in UnrealIRCd.
* If you are setting up UnrealIRCd for the first time we suggest you
* use this. Then, when everything is up and running you can come
* back later to customize the list (if you wish).
*/
include "modules.default.conf";
/* Now let's include some other files as well:
* - help/help.conf for our on-IRC /HELPOP system
* - badwords.conf for channel and user mode +G
* - spamfilter.conf as an example for spamfilter usage
* (commented out)
* - operclass.default.conf contains some good operclasses which
* you can use in your oper blocks.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
/* This is the me { } block which basically says who we are.
* It defines our server name, some information line and an unique "sid".
* The server id (sid) must start with a digit followed by two digits or
* letters. The sid must be unique for your IRC network (each server should
* have it's own sid).
*/
me {
name "irc.example.org";
info "ExampleNET Server";
sid "001";
}
/* The admin { } block defines what users will see if they type /ADMIN.
* It normally contains information on how to contact the administrator.
*/
admin {
"Bob Smith";
"bob";
"email@example.org";
}
/* Clients and servers are put in class { } blocks, we define them here.
* Class blocks consist of the following items:
* - pingfreq: how often to ping a user / server (in seconds)
* - connfreq: how often we try to connect to this server (in seconds)
* - sendq: the maximum queue size for a connection
* - recvq: maximum receive queue from a connection (flood control)
*/
/* Client class with good defaults */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* Special class for IRCOps with higher limits */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Server class with good defaults */
class servers
{
pingfreq 60;
connfreq 15; /* try to connect every 15 seconds */
maxclients 10; /* max servers */
sendq 20M;
}
/* Allow blocks define which clients may connect to this server.
* This allows you to add a server password or restrict the server to
* specific IP's only. You also configure the maximum connections
* allowed per IP here.
* See also: https://www.unrealircd.org/docs/Allow_block
*/
/* Allow everyone in, but only 3 connections per IP */
allow {
mask *;
class clients;
maxperip 3;
}
/* Example of a special allow block on a specific IP:
* Requires users on that IP to connect with a password. If the password
* is correct then it permits 20 connections on that IP.
*/
allow {
mask 192.0.2.1;
class clients;
password "somesecretpasswd";
maxperip 20;
}
/* Oper blocks define your IRC Operators.
* IRC Operators are people who have "extra rights" compared to others,
* for example they may /KILL other people, initiate server linking,
* /JOIN channels even though they are banned, etc.
*
* For more information about becoming an IRCOp and how to do admin
* tasks, see: https://www.unrealircd.org/docs/IRCOp_guide
*
* For details regarding the oper { } block itself, see
* https://www.unrealircd.org/docs/Oper_block
*/
/* Here is an example oper block for 'bobsmith' with password 'test'.
* You MUST change this!!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Oper permissions are defined in an 'operclass' block.
* See https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd ships with a number of default blocks, see
* the article for a full list. We choose 'netadmin' here.
*/
operclass netadmin;
swhois "is a Network Administrator";
vhost netadmin.example.org;
}
/* Listen blocks define the ports where the server should listen on.
* In other words: the ports that clients and servers may use to
* connect to this server.
*
* Syntax:
* listen {
* {
* ip <ip>;
* port <port>;
* options {
* <options....>;
* }
* }
*/
/* Standard IRC port 6667 */
listen {
ip *;
port 6667;
}
/* Standard IRC SSL/TLS port 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Special SSL/TLS servers-only port for linking */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* NOTE: If you are on an IRCd shell with multiple IP's and you use
* the above listen { } blocks then you will likely get an
* 'Address already in use' error and the ircd won't start.
* This means you MUST bind to a specific IP instead of '*' like:
* listen { ip 1.2.3.4; port 6667; }
* Of course, replace the IP with the IP that was assigned to you.
*/
/*
* Link blocks allow you to link multiple servers together to form a network.
* See https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
{
incoming {
mask *@something;
}
outgoing {
bind-ip *; /* or explicitly an IP */
hostname hub.example.org;
port 6900;
options { tls; }
}
/* We use the SPKI fingerprint of the other server for authentication.
* Run './unrealircd spkifp' on the other side to get it.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
/* The link block for services is usually much simpler.
* For more information about what Services are,
* see https://www.unrealircd.org/docs/Services
*/
link services.example.org
{
incoming {
mask 127.0.0.1;
}
password "changemeplease";
class servers;
}
/* U-lines give other servers (even) more power/commands.
* If you use services you must add them here.
* NEVER put the name of an UnrealIRCd server here!!!
*/
ulines {
services.example.org;
}
/* Here you can add a password for the IRCOp-only /DIE and /RESTART commands.
* This is mainly meant to provide a little protection against accidental
* restarts and server kills.
*/
drpass {
restart "restart";
die "die";
}
/* The log block defines what should be logged and to what file.
* See also https://www.unrealircd.org/docs/Log_block
*/
/* This is a good default, it logs everything */
log "ircd.log" {
flags {
oper;
connects;
server-connects;
kills;
errors;
flood;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
/* With "aliases" you can create an alias like /SOMETHING to send a message to
* some user or bot. They are usually used for services.
*
* We have a number of pre-set alias files, check out the alias/ directory.
* As an example, here we include all aliases used for anope services.
*/
include "aliases/anope.conf";
/* Ban nick names so they cannot be used by regular users */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reserved for Services";
}
/* Ban ip.
* Note that you normally use /KLINE, /GLINE and /ZLINE for this.
*/
ban ip {
mask 195.86.232.81;
reason "Hate you";
}
/* Ban server - if we see this server linked to someone then we delink */
ban server {
mask eris.berkeley.edu;
reason "Get out of here.";
}
/* Ban user - just as an example, you normally use /KLINE or /GLINE for this */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
}
/* Ban realname allows you to ban clients based on their 'real name'
* or 'gecos' field.
*/
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Ban and TKL exceptions. Allows you to exempt users / machines from
* KLINE, GLINE, etc.
* If you are an IRCOp with a static IP (and no untrusted persons on that IP)
* then we suggest you add yourself here. That way you can always get in
* even if you accidentally place a *LINE ban on yourself.
*/
/* except ban protects you from KLINE and ZLINE */
except ban {
mask *@192.0.2.1;
// you may add more mask entries here..
}
/* except ban with type 'all' protects you from GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
/* With deny dcc blocks you can ban filenames for DCC */
deny dcc {
filename "*sub7*";
reason "Possible Sub7 Virus";
}
/* deny channel allows you to ban a channel (mask) entirely */
deny channel {
channel "*warez*";
reason "Warez is illegal";
class "clients";
}
/* VHosts (Virtual Hosts) allow users to acquire a different host.
* See https://www.unrealircd.org/docs/Vhost_block
*/
/* Example vhost which you can use. On IRC type: /VHOST test test
* NOTE: only people with an 'unrealircd.com' host may use it so
* be sure to change the vhost::mask before you test.
*/
vhost {
vhost i.hate.microsefrs.com;
mask *@unrealircd.com;
login "test";
password "test";
}
/* Blacklist blocks will query an external DNS Blacklist service
* whenever a user connects, to see if the IP address is known
* to cause drone attacks, is a known hacked machine, etc.
* Documentation: https://www.unrealircd.org/docs/Blacklist_block
* Or just have a look at the blocks below.
*/
/* DroneBL, probably the most popular blacklist used by IRC Servers.
* See https://dronebl.org/ for their documentation and the
* meaning of the reply types. At time of writing we use types:
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
* 16: Autorooting worms.
*/
blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone detected. Check https://dronebl.org/lookup?ip=$ip for details.";
}
/* EFnetRBL, see https://rbl.efnetrbl.org/ for documentation
* and the meaning of the reply types.
* At time of writing: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
*
* NOTE: If you want to permit TOR proxies on your server, then
* you need to remove the '4;' below in the reply section.
*/
blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone/TOR detected. Check https://rbl.efnetrbl.org/?i=$ip for details.";
}
/* You can include other configuration files */
/* include "klines.conf"; */
/* Network configuration */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
/* Cloak keys should be the same at all servers on the network.
* They are used for generating masked hosts and should be kept secret.
* The keys should be 3 random strings of 50-100 characters
* and must consist of lowcase (a-z), upcase (A-Z) and digits (0-9).
* HINT: On *NIX, you can run './unrealircd gencloak' in your shell to let
* UnrealIRCd generate 3 random strings for you.
*/
cloak-keys {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"and another one";
"and another one";
}
}
/* Server specific configuration */
set {
kline-address "set.this.to.email.address"; /* e-mail or URL shown when a user is banned */
modes-on-connect "+ixw"; /* when users connect, they will get these user modes */
modes-on-oper "+xws"; /* when someone becomes IRCOp they'll get these modes */
modes-on-join "+nt"; /* default channel modes when a new channel is created */
oper-auto-join "#opers"; /* IRCOps are auto-joined to this channel */
options {
hide-ulines; /* hide U-lines in /MAP and /LINKS */
show-connect-info; /* show "looking up your hostname" messages on connect */
}
maxchannelsperuser 10; /* maximum number of channels a user may /JOIN */
/* The minimum time a user must be connected before being allowed to
* use a QUIT message. This will hopefully help stop spam.
*/
anti-spam-quit-message-time 10s;
/* Or simply set a static quit, meaning any /QUIT reason is ignored */
/* static-quit "Client quit"; */
/* static-part does the same for /PART */
/* static-part yes; */
/* Flood protection:
* There are lots of settings for this and most have good defaults.
* See https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Settings for spam filter */
spamfilter {
ban-time 1d; /* default duration of a *LINE ban set by spamfilter */
ban-reason "Spam/Advertising"; /* default reason */
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
/* except "#help"; channel to exempt from Spamfilter */
}
/* Restrict certain commands.
* See https://www.unrealircd.org/docs/Set_block#set::restrict-commands
*/
restrict-commands {
list {
connect-delay 60;
exempt-identified yes;
exempt-reputation-score 24;
}
invite {
connect-delay 120;
exempt-identified yes;
exempt-reputation-score 24;
}
/* In addition to the ability to restrict any command,
* such as shown above. There are also 4 special types
* that you can restrict. These are "private-message",
* "private-notice", "channel-message" and "channel-notice".
* They are commented out (disabled) in this example:
*/
//private-message {
// connect-delay 10;
//}
//private-notice {
// connect-delay 10;
//}
}
}
/*
* The following will configure connection throttling of "unknown users".
*
* When UnrealIRCd detects a high number of users connecting from IP addresses
* that have not been seen before, then connections from new IP's are rejected
* above the set rate. For example at 10:60 only 10 users per minute can connect
* that have not been seen before. Known IP addresses can always get in,
* regardless of the set rate. Same for users who login using SASL.
*
* See also https://www.unrealircd.org/docs/Connthrottle for details.
* Or just keep reading the default configuration settings below:
*/
set {
connthrottle {
/* First we must configure what we call "known users".
* By default these are users on IP addresses that have
* a score of 24 or higher. A score of 24 means that the
* IP was connected to this network for at least 2 hours
* in the past month (or minimum 1 hour if registered).
* The sasl-bypass option is another setting. It means
* that users who authenticate to services via SASL
* are considered known users as well.
* Users in the "known-users" group (either by reputation
* or by SASL) are always allowed in by this module.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
}
/* New users are all users that do not belong in the
* known-users group. They are considered "new" and in
* case of a high number of such new users connecting
* they are subject to connection rate limiting.
* By default the rate is 20 new local users per minute
* and 30 new global users per minute.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
}
/* This configures when this module will NOT be active.
* The default settings will disable the module when:
* - The reputation module has been running for less than
* a week. If running less than 1 week then there is
* insufficient data to consider who is a "known user".
* - The server has just been booted up (first 3 minutes).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
}
}
}
/* Finally, you may wish to have a MOTD (Message of the Day), this can be
* done by creating an 'ircd.motd' text file in your conf/ directory.
* This file will be shown to your users on connect.
* For more information see https://www.unrealircd.org/docs/MOTD_and_Rules
*/
/*
* Problems or need more help?
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
* 2) https://www.unrealircd.org/docs/FAQ <- answers 80% of your questions!
* 3) If you are still having problems then you can get support:
* - Forums: https://forums.unrealircd.org/
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
* Note that we require you to read the documentation and FAQ first!
*/
-610
View File
@@ -1,610 +0,0 @@
/* Archivo de configuraciĂłn para UnrealIRCd 5
*
* Simplemente copie este archivo a su directorio conf /, llámelo
* 'unrealircd.conf' y recorrerlo línea por línea (¡edítalo!)
*
* Importante: Todas las lĂ­neas, excepto { y } terminan con un;
* Esto es muy importante, si pierde un; en algĂşn lugar entonces el
* el analizador de archivos de configuración se quejará y el archivo no
* ¡será procesado correctamente!
* Si esta es su primera experiencia con una configuraciĂłn de UnrealIRCd
* entonces realmente le recomendamos que lea un poco sobre la sintaxis,
* esto solo toma unos minutos y te ayudará mucho:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* Documentación de UnrealIRCd 5 (¡muy extensa!):
* https://www.unrealircd.org/docs/Main_Page/es
*
* Preguntas frecuentes:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Esto es un comentario, todo el texto aquĂ­ se ignora (tipo de comentario #1) */
// Esto también es un comentario, esta línea se ignora (tipo de comentario #2)
#Esto también es un comentario, nuevamente esta línea se ignora (tipo de comentario # 3)
/* UnrealIRCd hace un uso intensivo de mĂłdulos. Los mĂłdulos le permiten
* personalizar el conjunto de funciones que desea habilitar en UnrealIRCd.
* Vea más: https://www.unrealircd.org/docs/Modules
*
* Al usar la inclusiĂłn a continuaciĂłn, le indicamos al IRCd que lea el archivo
* 'modules.default.conf' este cargará más de 150 módulos
* cargados con UnrealIRCd. En otras palabras: esto simplemente cargará
* todas las funciones disponibles en UnrealIRCd.
* Si está configurando UnrealIRCd por primera vez, le sugerimos
* utilizar este. Entonces, cuando todo esté en funcionamiento, puedes venir
* volver más tarde para personalizar la lista (si así lo desea).
*/
include "modules.default.conf";
/* Ahora incluyamos algunos otros archivos:
* - help / help.conf para nuestro sistema on-IRC /HELPOP
* - badwords.conf para canal y modo de usuario +G
* - spamfilter.conf como ejemplo de uso de filtro de texto.
* (comentado)
* - operclass.default.conf contiene algunas buenas operclasses que
* puedes usarlo en tus bloques operativos.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
/* Este es el bloque me {} que básicamente dice quiénes somos.
* Define el nombre de nuestro servidor, alguna lĂ­nea de informaciĂłn y un "sid" Ăşnico.
* La identificaciĂłn del servidor (sid) debe comenzar con un dĂ­gito seguido de dos dĂ­gitos o
* letras. El sid debe ser Ăşnico para su red IRC (cada servidor debe
* tiene su propio sid).
*/
me {
name "irc.ejemplo.org";
info "Servidor EjemploNET";
sid "001";
}
/* El bloque admin {} define lo que los usuarios verán si escriben /ADMIN.
* Normalmente contiene informaciĂłn sobre cĂłmo contactar al administrador.
*/
admin {
"Bob Smith";
"bob";
"correo-electrĂłnico@ejemplo.org";
}
/* Los clientes y servidores se colocan en bloques de clase {}, los definimos aquĂ­.
* Los bloques de clase constan de los siguientes elementos:
* - pingfreq: con qué frecuencia hacer ping a un usuario /servidor (en segundos)
* - connfreq: con qué frecuencia intentamos conectarnos a este servidor (en segundos)
* - sendq: el tamaño máximo de cola para una conexión
* - recvq: cola de recepción máxima de una conexión (control de inundaciones)
*/
/* Clase de cliente con buenos valores predeterminados */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* Clase especial para IRCOps con lĂ­mites superiores */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Clase de servidor con buenos valores predeterminados */
class servers
{
pingfreq 60;
connfreq 15; /* intenta conectarte cada 15 segundos */
maxclients 10; /* máximo de servidores */
sendq 20M;
}
/* Bloques de permitir definen qué clientes pueden conectarse a este servidor.
* Esto le permite agregar una contraseña de servidor o restringir el servidor a
* IP específicas únicamente. También configuras las conexiones máximas
* permitido por IP aquĂ­.
* Ver también: https://www.unrealircd.org/docs/Allow_block
*/
/* Permitir que todos entren, pero solo 3 conexiones por IP */
allow {
mask *;
class clients;
maxperip 3;
}
/* Ejemplo de un bloque de permiso especial en una IP especĂ­fica:
* Requiere que los usuarios de esa IP se conecten con una contraseña. Si la contraseña
* es correcto, entonces permite 20 conexiones en esa IP.
*/
allow {
mask 192.0.2.1;
class clients;
password "algunacontraseña";
maxperip 20;
}
/* Los bloques de operaciones definen sus operadores de IRC.
* Los operadores de IRC son personas que tienen "derechos adicionales" en comparaciĂłn con otros,
* por ejemplo, pueden /KILL a otras personas, iniciar la vinculaciĂłn del servidor,
* /JOIN a canales aunque estén prohibidos, etc.
*
* Para obtener más información sobre cómo convertirse en un IRCOp y cómo administrar
* tareas, consulte: https://www.unrealircd.org/docs/IRCOp_guide
*
* Para obtener detalles sobre el bloque oper {} en sĂ­, consulte
* https://www.unrealircd.org/docs/Oper_block
*/
/* Aquí hay un ejemplo de bloque de operador para 'bobsmith' con contraseña 'test'.
* ¡¡DEBES cambiar esto !!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Los permisos de operador se definen en un bloque 'operclass'.
* Ver https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd viene con una serie de bloques predeterminados, consulte
* el artĂ­culo para una lista completa. Elegimos 'netadmin' aquĂ­.
*/
operclass netadmin;
swhois "es un Administrador de Red";
vhost netadmin.ejemplo.org;
}
/* Los bloques de escucha definen los puertos donde el servidor debe escuchar.
* En otras palabras: los puertos que los clientes y servidores pueden usar para
* conectarse a este servidor.
*
* Sintaxis:
* listen {
* {
* ip <ip>;
* port <puerto>;
* options {
* <opciones....>;
* }
* }
*/
/* Puerto estándar para IRC 6667 */
listen {
ip *;
port 6667;
}
/* Puerto estándar para IRC SSL/TLS 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Puerto especial SSL/TLS servers-only/(Solo servidores) para enlaces */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* NOTA: Si está en una shell IRCd con varias IP y usa
* los bloques listen {} anteriores, es probable que obtenga un
* Error "address is already in use" y el ircd no se inicia.
* Esto significa que DEBE vincularse a una IP especĂ­fica en lugar de '*' como:
* escuchar { ip 1.2.3.4; puerto 6667; }
* Por supuesto, reemplace la IP con la IP que se le asignĂł.
*/
/*
* Los bloques de enlaces le permiten enlazar varios servidores para formar una red.
* Ver https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.ejemplo.org
{
incoming {
mask *@algo;
}
outgoing {
bind-ip *; /* o explĂ­citamente una IP */
hostname hub.ejemplo.org;
port 6900;
options { tls; }
}
/* Usamos la huella digital SPKI del otro servidor para la autenticaciĂłn.
* Ejecute './unrealircd spkifp' en el otro lado para obtenerlo.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
/* El bloqueo de enlaces para servicios suele ser mucho más sencillo.
* Para obtener más información sobre qué son los Servicios,
* ver https://www.unrealircd.org/docs/Services
*/
link servicios.ejemplo.org
{
incoming {
mask 127.0.0.1;
}
password "cambiameporfavor";
class servers;
}
/* Las líneas U dan a otros servidores (incluso) más poder/comandos.
* Si utiliza servicios debe agregarlos aquĂ­.
* ¡¡¡NUNCA ponga aquí el nombre de un servidor UnrealIRCd !!!
*/
ulines {
servicios.ejemplo.org;
}
/* Aquí puede agregar una contraseña para los comandos solo IRCOp /DIE y /RESTART.
* Esto está destinado principalmente a proporcionar una pequeña protección contra accidentes
* se reinicia y el servidor se mata.
*/
drpass {
restart "reiniciar";
die "muere";
}
/* El bloque de registros define qué se debe registrar y en qué archivo.
* Ver también https://www.unrealircd.org/docs/Log_block
*/
/* Este es un buen valor predeterminado, registra todo */
log "ircd.log" {
flags {
oper;
connects;
server-connects;
kills;
errors;
flood;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
/ * Con "aliases" puedes crear un alias como /ALGO para enviar un mensaje
* algĂşn usuario o bot. Suelen utilizarse para servicios.
*
* Tenemos varios archivos de alias preestablecidos, consulte el directorio alias /.
* Como ejemplo, aquĂ­ incluimos todos los alias utilizados para los servicios de anope.
* /
include "aliases/anope.conf";
/* Prohibir los apodos para que no puedan ser utilizados por usuarios habituales. */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reservado para Servicios";
}
/* Prohibir ip.
* Tenga en cuenta que normalmente se usa /KLINE, /GLINE y /ZLINE para esto.
*/
ban ip {
mask 195.86.232.81;
reason "Te odio";
}
/* Ban server - if we see this server linked to someone then we delink */
ban server {
mask eris.berkeley.edu;
reason "Sal de aquĂ­.";
}
/* Banear un user - solo como ejemplo, normalmente usa /KLINE or /GLINE para esto */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiota";
}
/* Banear realname te permite prohibir clientes en funciĂłn de su 'nombre real'
* o campo 'gecos'.
*/
ban realname {
mask "Equipo Swat";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Excepciones de prohibición y TKL. Le permite eximir a los usuarios/máquinas de
* KLINE, GLINE, etc.
* Si es un IRCOp con una IP estática (y no hay personas que no sean de confianza en esa IP)
* entonces le sugerimos que se agregue aquĂ­. De esa manera siempre puedes entrar
* incluso si accidentalmente te aplicas una prohibiciĂłn de * LINE.
*/
/* Excepciones, te protege de KLINE and ZLINE */
except ban {
mask *@192.0.2.1;
// puede agregar más entradas de máscara aquí..
}
/* excepto prohibir con tipo 'all' te protege de GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
/* Con deny dcc puedes prohibir nombres de archivo para DCC */
deny dcc {
filename "*sub7*";
reason "Posible Sub7 Virus";
}
/* deny channel te perimte banear un canal entero (mascará) */
deny channel {
channel "*warez*";
reason "Warez es ilegal";
class "clients";
}
/* VHosts (Virtual Hosts) permite a los usuarios adquirir un host diferente.
* Ver https://www.unrealircd.org/docs/Vhost_block
*/
/* Ejemplo de vhost que puede usar. En el tipo de IRC: /VHOST test test
* NOTA: solo las personas con un host 'unrealircd.com' pueden usarlo asĂ­
* asegĂşrese de cambiar vhost :: mask antes de realizar la prueba.
*/
vhost {
vhost odio.microsefrs.com;
mask *@unrealircd.com;
login "testeo";
password "testeo";
}
/* Los bloques de lista negra consultarán un servicio de lista negra de DNS externo
* cada vez que un usuario se conecta, para ver si se conoce la direcciĂłn IP
* por causar ataques con drones, es una máquina pirateada conocida, etc.
* DocumentaciĂłn: https://www.unrealircd.org/docs/Blacklist_block
* O simplemente eche un vistazo a los bloques a continuaciĂłn.
*/
/* DroneBL, probablemente la lista negra más popular utilizada por los servidores IRC.
* Consulte https://dronebl.org/ para obtener su documentaciĂłn y el
* significado de los tipos de respuesta. En el momento de escribir este artĂ­culo utilizamos tipos:
* 3: IRC Drone, 5: Embotellador, 6: Spambot o drone desconocido,
* 7: DDoS Drone, 8: Proxy SOCKS, 9: Proxy HTTP, 10: ProxyChain,
* 11: Proxy de página web, 12: Open DNS Resolver, 13: Atacantes de fuerza bruta,
* 14: Proxy Wingate abierto, 15: Enrutador / puerta de enlace comprometido,
* 16: Gusanos de autorooting.
*/
blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone detectado. Consulte https://dronebl.org/lookup?ip=$ip para más detalles.";
}
/* EFnetRBL, consulte https://rbl.efnetrbl.org/ para obtener documentaciĂłn
* y el significado de los tipos de respuesta.
* Al momento de escribir este artĂ­culo: 1 es proxy abierto, 4 es TOR, 5 es drones/flooding.
*
* NOTA: Si desea permitir proxies TOR en su servidor, entonces
* necesita eliminar el '4;' a continuaciĂłn en la secciĂłn de respuesta.
*/
blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone detectado. Consulte https://rbl.efnetrbl.org/?i=$ip para más detalles.";
}
/* Puede incluir otros archivos de configuraciĂłn */
/* include "klines.conf"; */
/* ConfiguraciĂłn de la red */
set {
network-name "EjemploNET";
default-server "irc.ejemplo.org";
services-server "services.ejemplo.org";
stats-server "stats.ejemplo.org";
help-channel "#Ayuda";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
/* Las claves de ocultaciĂłn deben ser las mismas en todos los servidores de la red.
* Se utilizan para generar hosts enmascarados y deben mantenerse en secreto.
* Las claves deben ser 3 cadenas aleatorias de 50-100 caracteres
* y debe constar de minĂşsculas (a-z), mayĂşsculas (A-Z) y dĂ­gitos (0-9).
* SUGERENCIA: en * NIX, puede ejecutar './unrealircd gencloak' en su shell/Vps para
* que UnrealIRCd genere 3 cadenas aleatorias para ti.
*/
cloak-keys {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"uno más";
"y otro más";
}
}
/* ConfiguraciĂłn especĂ­fica del servidor */
set {
kline-address "setea.un.correo.electrónico"; /* Correo electrónico o URL que se muestra cuando un usuario está baneado */
modes-on-connect "+ixw"; /* cuando los usuarios se conectan, obtendrán estos modos de usuario */
modes-on-oper "+xws"; /* cuando alguien se convierte en IRCOp obtendrá estos modos */
modes-on-join "+nt"; /* modos de canal predeterminados cuando se crea un nuevo canal */
oper-auto-join "#opers"; /* Las IRCOps se unen automáticamente a este canal. */
options {
hide-ulines; /* ocultar las lĂ­neas U en /MAP and /LINKS */
show-connect-info; /* muestra "looking up your hostname" cuando conectas */
}
maxchannelsperuser 10; /* Número máximo de canales que un usuario puede /JOIN */
/* El tiempo mĂ­nimo que un usuario debe estar conectado antes de que se le permita
* usar un mensaje QUIT. Con suerte, esto ayudará a detener el spam.
*/
anti-spam-quit-message-time 10s;
/* O simplemente setea un quit estático, significa que cualquier /QUIT es ignorado */
/* static-quit "Client quit"; */
/* static-part hace lo mismo para /PART */
/* static-part yes; */
/* ProtecciĂłn contra flood:
* Hay muchas configuraciones para esto y la mayorĂ­a tienen buenos valores predeterminados.
* Ver https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Opciones de Filtro de texto */
spamfilter {
ban-time 1d; /* la duracion por defecto de un *LINE seteado por el filtro de texto */
ban-reason "Spam/Publicidad"; /* razĂłn por defecto */
virus-help-channel "#ayuda"; /* canal de uso para 'viruschan' */
/* except "#ayuda"; inmunidad para el canal Ayuda del filtro de texto */
}
/* Restringir ciertos comandos.
* Ver https://www.unrealircd.org/docs/Set_block#set::restrict-commands
*/
restrict-commands {
list {
connect-delay 60;
exempt-identified yes;
exempt-reputation-score 24;
}
invite {
connect-delay 120;
exempt-identified yes;
exempt-reputation-score 24;
}
/* Además de la capacidad de restringir cualquier comando,
* como se muestra arriba. También hay 4 tipos especiales
* que puede restringir. Estos son "private-message",
* "private-notice", "channel-message" y "channel-notice".
* Están comentados (desactivados) en este ejemplo:
*/
//private-message {
// connect-delay 10;
//}
//private-notice {
// connect-delay 10;
//}
}
}
/*
* Lo siguiente configurará la limitación de la conexión de "unknown users".
*
* Cuando UnrealIRCd detecta una gran cantidad de usuarios que se conectan desde direcciones IP
* que no se han visto antes, se rechazan las conexiones de las nuevas IP
* por encima de la configuraciĂłn establecida. Por ejemplo, 10:60 solo pueden conectarse 10 usuarios por minuto
* que no se hayan visto antes. Las direcciones IP conocidas siempre pueden ingresar,
* independientemente de la configuraciĂłn establecida. Lo mismo para los usuarios que inician sesiĂłn con SASL.
*
* Consulte también https://www.unrealircd.org/docs/Connthrottle para obtener más detalles.
* O simplemente siga leyendo los ajustes de configuraciĂłn predeterminados a continuaciĂłn:
*/
set {
connthrottle {
/* Primero debemos configurar lo que llamamos "known users".
* De forma predeterminada, estos son usuarios en direcciones IP que tienen
* una puntuación de 24 o más. Una puntuación de 24 significa que
* La IP estuvo conectada a esta red durante al menos 2 horas
* en el último mes (o mínimo 1 hora si está registrado).
* La opciĂłn sasl-bypass es otra configuraciĂłn. Significa
* que los usuarios que se autentican en los servicios a través de SASL
* también se consideran usuarios conocidos.
* Usuarios del grupo "known users" (ya sea por reputaciĂłn
* o por SASL) siempre están permitidos por este módulo.
*/
known-users {
minimum-reputation-score 24;
sasl-bypass yes;
}
/* Los nuevos usuarios son todos los usuarios que no pertenecen al
* grupo de usuarios conocidos. Se consideran "nuevos" y en
* caso de un gran nĂşmero de nuevos usuarios que se conectan
* están sujetos a limitación de velocidad de conexión.
* Por defecto, la configuraciĂłn es de 20 nuevos usuarios locales por minuto.
* y 30 nuevos usuarios globales por minuto.
*/
new-users {
local-throttle 20:60;
global-throttle 30:60;
}
/* Esta configuraciĂłn es para cuando este mĂłdulo NO este activo.
* La configuración predeterminada deshabilitará el módulo cuando:
* - El mĂłdulo de reputaciĂłn se ha estado ejecutando durante menos de
* una semana. Si se ejecuta menos de 1 semana, entonces hay
* Datos insuficientes para considerar quién es un "known users".
* - El servidor acaba de iniciarse (primeros 3 minutos).
*/
disabled-when {
reputation-gathering 1w;
start-delay 3m;
}
}
}
/* Finalmente, es posible que desee tener un MOTD (Mensaje del dĂ­a), esto puede ser
* hecho creando un archivo de texto 'ircd.motd' en su directorio conf /.
* Este archivo se mostrará a sus usuarios al conectarse.
* Para obtener más información, consulte https://www.unrealircd.org/docs/MOTD_and_Rules
*/
/*
* ¿Problemas o necesita más ayuda?
* 1) https://www.unrealircd.org/docs/Main_Page/es
* 2) https://www.unrealircd.org/docs/FAQ <- ¡responde el 80% de sus preguntas!
* 3) Si aĂşn tiene problemas, puede obtener asistencia:
* - Foros: https://forums.unrealircd.org/
* - IRC: irc.unrealircd.org (SSL en el puerto 6697) / #unreal-support
* Tenga en cuenta que primero le pedimos que lea la documentaciĂłn y las preguntas frecuentes.
*/
-455
View File
@@ -1,455 +0,0 @@
/* Fichier de configuration pour UnrealIRCd 5
*
* Copiez ce fichier dans le répertoire conf/, renommez le
* 'unrealircd.conf' et parcourez-le ligne par ligne (modifiez le !)
*
* Important : Toutes les lignes, sauf celles ne comportant qu'un {
* ouvrant, doivent finir par un ; y compris };. C'est très important,
* car si vous oubliez un ; quelque part, alors le parser du fichier de
* configuration se plaindra et votre fichier ne sera pas lu correctement !
* S'il s'agit de votre première expérience avec le fichier de configuration
* d'UnrealIRCd, nous vous recommandons de vous documenter un peu Ă  propos
* de la syntaxe. Ça ne vous prendra que quelques minutes et vous aidera
* beaucoup :
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* Documentation pour UnrealIRCd 5 (très complète !) :
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation/fr
*
* Foire Aux Questions :
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Ceci est un commentaire, ici, tout le texte est ignoré (type #1) */
// Ceci est aussi un commentaire, cette ligne est ignorée (type #2)
# Ceci est aussi un commentaire, cette ligne est ignorée (type #3)
/* UnrealIRCd utilise beaucoup les modules. Ceux-ci vous permettent
* de personnaliser complètement les fonctionnalités que vous voulez
* activer sur UnrealIRCd.
* Voir : https://www.unrealircd.org/docs/Modules
*
* En utilisant la ligne include ci-dessous, nous indiquons Ă  l'IRCd de
* lire le fichier 'modules.default.conf' ce qui activera plus de 150
* modules fournis avec UnrealIRCd. En d'autres termes, ceci activera
* toutes les fonctionnalités disponibles d'UnrealIRCd.
* Si vous configurez UnrealIRCd pour la première fois, nous vous
* conseillons d'utiliser cette ligne. Après, lorsque tout fonctionnera
* vous pourrez revenir personnaliser la liste (si vous le souhaitez).
*/
include "modules.default.conf";
/* Incluons aussi d'autres fichiers :
* - help/help.conf pour le système d'aide sur IRC via /HELPOP
* - badwords.conf pour le mode utilisateur et de salon +G
* - spamfilter.conf comme exemple d'utilisation de spamfilter
* - operclass.default.conf qui contient les classes d'opérateurs
* par défaut à utiliser dans vos blocs oper.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
/* Le bloc me { } indique qui est le serveur.
* Il définit le nom du serveur, une ligne d'informations et un identifiant
* "sid" unique. L'id du serveur (sid) doit commencer par un chiffre suivit
* de deux chiffres ou lettres. Le sid doit être unique sur votre réseau IRC
* (chaque serveur doit avoir un sid différent).
*/
me {
name "irc.example.org";
info "Serveur ExampleNET";
sid "001";
}
/* Le bloc admin { } définit ce que les utilisateurs verront en faisant
* /ADMIN. C'est généralement des infos de contact de l'administrateur.
*/
admin {
"Bob Smith";
"bob";
"adresse.email@example.org";
}
/* Les clients et serveurs sont placés dans des classes, que nous
* définissons dans ces blocs class { }.
* Les blocs de classe comportent les éléments suivants :
* - pingfreq: à quelle fréquence envoyer un ping à l'utilisateur ou au
* serveur (en secondes)
* - connfreq: à quelle fréquence on essaye de se connecter à ce serveur
* (en secondes)
* - sendq: la taille maximale de la queue d'émission pour une connexion
* - recvq: la taille maximale de la queue de réception pour une connexion
* (contrĂ´le du flood)
*/
/* Classe pour des clients */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* Classe spéciale pour des IRCOps avec des limites plus hautes */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Classe pour des serveurs */
class servers
{
pingfreq 60;
connfreq 15; /* essayer de se connecter toutes les 15 sec */
maxclients 10; /* nombre max de serveurs */
sendq 5M;
}
/* Les blocs allow définissent quels clients peuvent se connecter au
* serveur. Ils vous permettent d'ajouter un mot de passe ou de restreindre
* le serveur Ă  certaines IP seulement. C'est aussi lĂ  que vous configurez
* le nombre maximum de connexions par IP.
* Voir : https://www.unrealircd.org/docs/Allow_block
*/
/* Accepter tout le monde, mais seulement 5 connexions par IP */
allow {
mask *;
class clients;
maxperip 5;
}
/* Exemple de bloc allow spécial pour une IP donnée :
* Les utilisateurs sur cette IP doivent se connecter avec un mot de passe.
* S'il est correct, alors autoriser 20 connexions sur cette IP.
*/
allow {
mask 192.0.2.1;
class clients;
password "unmotdepassesecret";
maxperip 20;
}
/* Les blocs oper définissent vos Opérateurs IRC.
* Les Opérateurs IRC sont des utilisateurs avec des "droits en plus"
* par rapport aux autres, par exemple, ils peuvent /KILL (déconnecter)
* d'autres utilisateurs, faire se connecter des serveurs entre eux,
* /JOIN des salons mĂŞme s'ils sont bannis, etc ...
* Voir aussi : https://www.unrealircd.org/docs/Oper_block
*/
/* Voici un exemple de bloc oper pour 'bobsmith' avec le mot de
* passe 'test'.
* Vous DEVEZ le modifier !!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Les permissions Oper sont définies dans un bloc 'operclass'.
* Voir https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd est fourni avec des classes par défaut, voir la doc
* pour une liste complète. Nous avons choisi 'netadmin' ici.
*/
operclass netadmin;
swhois "est un Administrateur du Réseau";
vhost netadmin.example.org;
}
/* Les blocs listen définissent les ports sur lesquels le serveur écoute.
* C'est-Ă -dire les ports que les clients et les serveurs utilisent pour
* se connecter Ă  ce serveur.
*
* Syntaxe :
* listen
* {
* ip <adresse ip>;
* port <numéro de port>;
* options {
* <options....>;
* }
* }
*/
/* Port standard pour IRC 6667 */
listen {
ip *;
port 6667;
}
/* Port standard pour IRC sur SSL/TLS 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Port SSL/TLS spécial pour la connexion entre serveurs */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* NOTE : Si vous utilisez un serveur IRC avec plusieurs IP et que vous
* utilisez les blocs listen ci-dessus, vous aurez peut-ĂŞtre une
* erreur 'Address already in use' et l'IRCd ne démarrera pas.
* Celle-ci indique que vous devez préciser une IP spécifique
* au lieu de '*'. Exemple :
* listen 1.2.3.4:6667;
* Bien sûr, remplacez 1.2.3.4 par l'IP qui vous est assignée.
*/
/*
* Les blocs link vous permettent de connecter plusieurs serveurs ensemble
* pour former un réseau IRC.
* Voir https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
{
incoming {
mask *@something;
}
outgoing {
bind-ip *; /* ou une IP précise */
hostname hub.example.org;
port 6900;
options { tls; }
}
password "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"; /* Empreinte SSL de l'autre serveur */
class servers;
}
/* Les U-lines donnent encore plus de pouvoir Ă  certains serveurs.
* Si vous utilisez des Services, vous devez les indiquer ici.
* NE JAMAIS indiquer le nom d'un serveur UnrealIRCd normal ici !!!
* (Si vous ne savez pas ce que sont les Services, voir :
* https://www.unrealircd.org/docs/Services )
*/
ulines {
services.example.org;
}
/* Ici vous pouvez indiquer un mot de passe pour les commandes /DIE et
* /RESTART, qui sont restreintes aux IRCops.
* Il s'agit surtout d'une petite protection contre les redémarrages et
* les coupures de serveur accidentels.
*/
drpass {
restart "restart";
die "die";
}
/* Le bloc log indique ce qui doit être journalisé et dans quel fichier.
* Voir aussi https://www.unrealircd.org/docs/Log_block
*/
/* Ceci est une bonne valeur par défaut, elle journalise presque tout */
log "ircd.log" {
flags {
oper;
connects;
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
/* Avec des "alias", vous pouvez créer un alias comme /UNTRUC pour envoyer
* un message à un utilisateur ou à un bot. Ils sont souvent utilisés pour
* les services.
*
* Nous fournissons un certain nombre d'alias par défaut, voir les fichiers
* du répertoire aliases/.
* Pour exemple, ici nous ajoutons les alias pour les Services Anope.
*/
include "aliases/anope.conf";
/* Bannir des nicks pour qu'ils ne soient pas utilisables par des
* utilisateurs normaux
*/
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Réservé aux Services";
}
/* Bannir une IP.
* NB : vous pouvez aussi utiliser /KLINE, /GLINE et /ZLINE pour ça.
*/
ban ip {
mask 195.86.232.81;
reason "Je vous hais !";
}
/* Bannir un serveur - si ce serveur est connecté au réseau, nous nous
* déconnecterons
*/
ban server {
mask eris.berkeley.edu;
reason "Va-t-en d'ici.";
}
/* Bannir un utilisateur - juste pour l'exemple, on utilise normalement
* /KLINE or /GLINE pour ça
*/
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
}
/* Bannir un realname (ou 'gecos') */
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Exceptions de ban et TKL. Vous permet d'exempter des utilisateurs des
* KLINE, GLINE, etc ...
* Si vous ĂŞtes un IRCOp avec une IP statique (et qu'il n'y a que des
* personnes de confiance sur cette IP), alors vous pouvez vous ajouter ici.
* Ainsi, vous pourrez toujours vous connecter mĂŞme si vous vous bannissez
* accidentellement.
*/
/* except ban vous protège des KLINE et ZLINE */
except ban {
mask *@192.0.2.1;
// vous pouvez ajouter d'autres lignes mask Ă  la suite
}
/* except ban avec le type 'all' vous protège des GLINE, GZLINE, QLINE, SHUN */
except ban {
mask *@192.0.2.1;
type all;
}
/* Avec un bloc deny dcc vous pouvez interdire des noms de fichiers dans
* les échanges DCC
*/
deny dcc {
filename "*sub7*";
reason "Possible virus Sub7";
}
/* deny channel vous permet d'interdire des masques de noms de salons */
deny channel {
channel "*warez*";
reason "Le warez est illegal";
class "clients";
}
/* Les VHosts (Virtual Hosts - HĂ´tes Virtuels) permettent aux utilisateurs
* d'avoir un nom d'hôte différent.
* Voir https://www.unrealircd.org/docs/Vhost_block
*/
/* Vhost d'exemple. Sur IRC, entrez /VHOST test test
* NOTE : seuls les utilisateurs avec un nom d'hĂ´te 'unrealircd.com'
* peuvent l'utiliser, donc modifiez vhost::mask avant de tester.
*/
vhost {
vhost i.hate.microsefrs.com;
mask *@unrealircd.com;
login "test";
password "test";
}
/* Vous pouvez inclure d'autres fichiers de configuration */
/* include "klines.conf"; */
/* Configuration du réseau */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
/* Les clés de cloaking doivent être identiques sur tous les serveurs
* d'un réseau. Elles sont utilisées pour générer les noms d'hôtes
* masqués et doivent être gardées secrètes. Les clés doivent être
* 3 chaînes de 5 à 100 caractères aléatoires (entre 10 et 20 suffisent)
* et ne comporter que des minuscules (a-z), des majuscules (A-Z) et des
* chiffres (0-9). (voir l'exemple)
* NB : sur *NIX, vous pouvez exécuter './unreal gencloak' sur votre
* serveur pour que Unreal génère 3 clés aléatoires pour vous.
*/
cloak-keys {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"et une autre";
"et une troisième";
}
}
/* Configuration spécifique au serveur */
set {
kline-address "indiquez.une.adresse.email"; /* e-mail ou URL indiquée lorsqu'un utilisateur est banni */
modes-on-connect "+ixw"; /* modes utilisateur ajoutés lorsqu'un utilisateur se connecte */
modes-on-oper "+xws"; /* modes utilisateur ajoutés lorsqu'un utilisateur devient IRCOp */
oper-auto-join "#opers"; /* salon que les IRCOps joignent automatiquement */
options {
hide-ulines; /* cacher les U-lines de /MAP et /LINKS */
show-connect-info; /* afficher les messages "looking up your hostname" Ă  la connexion */
}
maxchannelsperuser 10; /* nombre max de salons par utilisateur */
/* Temps minimum qu'un utilisateur doit rester connecter avant de pouvoir
* utiliser un message de QUIT. Le but est pour réduire le spam.
*/
anti-spam-quit-message-time 10s;
/* Ou indiquez un message de QUIT constant, ce qui fait que les raisons
* de /QUIT sont ignorées.
*/
/* static-quit "Le client a quitté"; */
/* static-part fait la mĂŞme chose pour /PART */
/* static-part yes; */
/* Protections anti-flood.
* Voir: https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Paramètres de Spamfilter */
spamfilter {
ban-time 1d; /* durée par défaut des bans *LINE ajoutés par spamfilter */
ban-reason "Spam/Publicité"; /* raison par defaut */
virus-help-channel "#help"; /* salon par défaut pour l'action 'viruschan' */
/* except "#help"; salon Ă  exempter de Spamfilter */
}
}
/*
* Un problème ou besoin d'aide supplémentaire ?
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr
* 2) https://www.unrealircd.org/docs/FAQ <- répond à 80% des questions !
* 3) Si vous avez toujours des problèmes, vous pouvez aller sur
* irc.unrealircd.org #unreal-support,
* mais nous exigeons que vous lisiez LA DOCUMENTATION et la FAQ d'abord !
*/
-504
View File
@@ -1,504 +0,0 @@
/* UnrealIRCd 5 için yapılandırma dosyası
* Türkçe Çeviri: Diablo - (Serkan Sepetçi)
* İletişim: irc.trirc.com:6667 - diablo@unrealircd.org
*
* Biz buna basit bir 'unrealircd.conf' dosyası diyoruz.
* Bu dosyası satır satır editleyip conf/ dizinine kopyalayınız. (düzenleyin!)
*
* Önemli: Satırların hepsi, açılış başına { satır sonuna ;
* }; dahil edin. Bu çok önemli, eğer siz ayrıştırıcıyı ;
* eksik koyarsanız yapılandırma dosyası hata verecek
* ve dosya doğru işlemde olmayacaktır!
* Bu sizin UnrealIRCd yapılandırması ile ilk deneyiminiz ise
* dosyayı okumanız için birkaç dakika ayırmanızı öneniriz,
* bu size bilgi edinmeniz açısından yardımcı olacaktır:
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
*
* UnrealIRCd 5 belgeleme (çok geniş!):
* https://www.unrealircd.org/docs/UnrealIRCd_5_documentation
*
* Sıkça Sorulan Sorular:
* https://www.unrealircd.org/docs/FAQ
*
*/
/* Bu bir açıklamadır, burada tüm metin göz ardı edilir (açıklama tipi #1) */
// Bu da bir açıklamadır, bu satır göz ardı edilir (açıklama tipi #2)
# Bu da bir açıklamadır, bu satır yine göz ardı edilir (açıklama tipi #3)
/* UnrealIRCd yoğun modul kullanımını kolaylaştırır. UnrealIRCd'de
* etkinleştirmek istediğiniz özellikleri tamamen moduller ile aktif edebilirsiniz.
* Görmek için; https://www.unrealircd.org/docs/Modules
*
* Biz 'modules.default.conf' dosyasını okumak için IRCd talimatı altında kullanarak
* UnrealIRCd ile birlikte gelen 150'den fazla modĂĽlleri yĂĽkleyecektir.
* Başka bir deyişle: Bu sadece UnrealIRCd'de mevcut tüm özelliklerini yükleyecektir.
* İlk kez UnrealIRCd kuruyorsanız size bunu kullanmanızı öneririz.
* UnrealIRCd'yi ilk kez kuruyorsanız bunu kullanmanızı öneririz.
* Daha sonra her şey hazır olduğunda ve çalışıyorsa (eğer isterseniz)
* listeyi özelleştirmek için geri dönebilirsiniz.
*/
include "modules.default.conf";
/* Şimdi de diğer bazı dosyaları dahil edelim:
* - help/help.conf /HELPOP sistemi
* - badwords.conf kanal ve kullanıcı modu için +G
* - spamfilter.conf için örnek olarak spamfilter kullanımı
* - operclass.default.conf oper bloklarında kullanabileceğiniz
* oper sınıflarını görüntüler.
*/
include "help/help.conf";
include "badwords.conf";
//include "spamfilter.conf";
include "operclass.default.conf";
/* me { } bloÄźu genelde kim olduÄźumuzu belirtir.
* Sunucumuz için isim, birkaç satır bazı bilgileri belirler "sid".
* Sunucu kimliği (sid) iki basamağı veya harf tarafından izlenen bir rakam ile
* başlamalıdır. Sid IRC ağı için benzersiz olmalıdır (her sunucu için
* kendi sid olmalıdır).
*/
me {
name "irc.example.org";
info "ExampleNET Server";
sid "001";
}
/* admin { } bloğu /ADMIN sorgusunda kullanıcılara görüntülenecek metni belirler.
* Normalde yöneticiye ulaşma konusunda bilgi içerir.
*/
admin {
"Bob Smith";
"bob";
"email@example.org";
}
/* Kullanıcılar ve sunucular için class { } bloğu belirtilir.
* Class blokları aşağıdaki işlemlerden oluşur:
* - pingfreq: kullanıcı/sunucu için ping'ler arası zaman belirtir (saniyede)
* - connfreq: sunucuya bağlanmaya çalıştığınızda tekrar için zaman belirtir (saniyede)
* - sendq: bir bağlantı için maksimum veri boyutu
* - recvq: bir bağlantı için maksimum alınan veri boyutu (flood kontrol)
*/
/* Kullanıcılar için varsayılan class ayarları */
class clients
{
pingfreq 90;
maxclients 1000;
sendq 200k;
recvq 8000;
}
/* IRCOp'lar için varsaylan yüksek limitli özel class ayarları */
class opers
{
pingfreq 90;
maxclients 50;
sendq 1M;
recvq 8000;
}
/* Sunucular için varsayılan class ayarları */
class servers
{
pingfreq 60;
connfreq 15; /* Her 15 saniyede bir bağlanmayı dener */
maxclients 10; /* maksimum kullanıcı */
sendq 5M;
}
/* Allow blockları sunucunuza kimlerin bağlanabileceğini belirtir.
* Bir sunucu şifresi eklenebilir veya belirlitilen bir IP adresi için
* giriş izini verilebilir. Ayrıca IP başına ne kadar bağlantıya izin
* verileceÄźini belirtir.
* Görmeniz için: https://www.unrealircd.org/docs/Allow_block
*/
/* IP başına sadece 5 bağlantı izini verir */
allow {
mask *;
class clients;
maxperip 3;
}
/* Örnek olarak özel bir IP bloğu izini:
* Bu IP bir şifre ile bağlantı yapması olduğunu gerektirir.
* Şifre doğru ise o zaman bu IP 20 bağlantıya izin verecektir.
*/
allow {
mask 192.0.2.1;
class clients;
password "somesecretpasswd";
maxperip 20;
}
/* Oper bloğu, IRC Operatorleri tanımlar.
* IRC Operatörler, diğer kullanıcılara göre "ekstra haklara" sahip kullanıcılardır.
* örneğin diğer kullanıcılara /KILL uygulayabilmesi, sunucu birleştirmesinin başlatılması,
* /JOIN yaptığı odalardan banlansa bile tekrar giriş yapabilmesi, vs.
*
* IRCOp olmak ve nasıl Admin olunacağı hakkında daha fazla bilgi için
* https://www.unrealircd.org/docs/IRCOp_guide
*
* Oper {} bloğunun kendisi ile ilgili ayrıntıları görmeniz için
* https://www.unrealircd.org/docs/Oper_block
*/
/* Örnek bir oper bloğu için 'bobsmith' ile şifresi 'test'.
* Bunu değiştirmeniz GEREKİR!!
*/
oper bobsmith {
class opers;
mask *@*;
password "test";
/* Oper izinleri bir "operclass 'bloğunda tanımlanır.
* Görmeniz için: https://www.unrealircd.org/docs/Operclass_block
* UnrealIRCd varsayılan bloklar makalesi için,
* tam listesine bakınız. Buradan 'netadmin' seçiyoruz.
*/
operclass netadmin;
swhois "is a Network Administrator";
vhost netadmin.example.org;
}
/* Listen blokları sunucu portu için gereken bağlantı noktalarını tanımlar.
* Diğer bir deyişle: Bu portlar kullanıcılar ve serverlar için
* sunucuya bağlantı kurmasını sağlar.
*
* Kullanımı:
* listen
* {
* ip <ip numarası>;
* port <port numarası>;
* options {
* <seçenekler....>;
* }
* }
*/
/* Standard IRC port 6667 */
listen {
ip *;
port 6667;
}
/* Standard IRC SSL/TLS port 6697 */
listen {
ip *;
port 6697;
options { tls; }
}
/* Özel SSL/TLS sadece sunucuları bağlamak için port */
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
/* DiKKAT: Eğer bir çok IP barındıran bir IRCd Shell kullanıyorsanız
* logunuzda olası 'Address already in use' hatasını alacaksınız
* ve ircd başlamayacaktır.
* Bunun anlamı '*' yerine belirli bir IP yazmanız GEREKİR anlamına gelir:
* listen 1.2.3.4:6667;
* Açıkçası, IP yi önceden koyduğunuz IP ile değiştirin.
*/
/*
* Link blockları bir ağ oluşturmak için birden fazla sunucu bağlamaya izin verir.
* Görmek için: https://www.unrealircd.org/docs/Tutorial:_Linking_servers
*/
link hub.example.org
{
incoming {
mask *@something;
}
outgoing {
bind-ip *; /* veya açıkça bir IP */
hostname hub.example.org;
port 6900;
options { tls; }
}
/* Kimlik doğrulaması için diğer sunucunun SPKI parmak izini kullanıyoruz.
* Kullanmamız için diğer tarafda './unrealircd spkifp' uygulayıp çalıştırıyoruz.
*/
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; }
class servers;
}
/* Servis'ler için bağlantı bloğu genellikle çok daha basittir.
* Servis'lerin ne olduğu hakkında daha fazla bilgi için,
* https://www.unrealircd.org/docs/Services
*/
link services.example.org
{
incoming {
mask 127.0.0.1;
}
password "changemeplease";
class servers;
}
/* U-lines satırları sunuculara daha güç/komut kazandırır.
* Eğer hizmetlerini kullanmak istiyorsanız onları buraya eklemeniz gerekir.
* ASLA buraya (normal) UnrealIRCd sunucunun adını yazmayınız!!!
*/
ulines {
services.example.org;
}
/* Bu blok /DIE ve /RESTART için şifre tanımlamanızı sağlar. Sadece IRCOp'lar içindir.
* Bu genelde kazara sunucuyu yeniden başlatma ve kapanmasına karşı biraz
* koruma sağlamak içindir.
*/
drpass {
restart "restart";
die "die";
}
/* Bu log bloğu hangi dosyaya ve nelerin olması gerektiğini tanımlar.
* Görmeniz için: https://www.unrealircd.org/docs/Log_block
*/
/* Varsayılan ayarlar, neredeyse her şeyi kaydedecektir */
log "ircd.log" {
flags {
oper;
connects;
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
tkl;
spamfilter;
}
}
/* Bazı kullanıcılara veya botlara bir mesaj göndermek için "aliases"
* takma ad oluşturmanızı sağlar. Genellikle servisler için kullanılır.
*
* Biz önceden ayarlanmış bir takma adı dosyaları dizini oluşturduk, alias/ dizini kontrol ediniz.
* Örnek olarak, burada anope servisler ve kullanılan tüm diğer servisler adları bulunmaktadır.
*/
include "aliases/anope.conf";
/* Ban nick bloğu bir nickin sunucuda kullanımını yasaklamanıza olanak sağlar */
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Servisler için ayrılmış";
}
/* Ban ip.
* Normalde bunun için /KLINE, /GLINE ve /ZLINE kullanıldığını unutmayınız.
*/
ban ip {
mask 195.86.232.81;
reason "Senden nefret ediyorum";
}
/* Ban server - bir sunucunun bağlanmasını devredışı kılar */
ban server {
mask eris.berkeley.edu;
reason "Defol git buradan.";
}
/* Ban user - normalde /KLINE veya /GLINE kullanıldığını unutmayınız */
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Salak";
}
/* Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas alınarak
* banlamanıza olanak sağlar.
*/
ban realname {
mask "Swat Team";
reason "mIRKFORCE";
}
ban realname {
mask "sub7server";
reason "sub7";
}
/* Ban ve TKL istisnaları. Kullanıcıları / makineleri gözetmeksizin
* KLINE, GLINE, gibi banlardan muaf tutmanıza olanak sağlar.
* EÄźer statik IP (ve bu IP ĂĽzerinde gĂĽvenilmeyen kiĹźiler) ile bir IRCOp
* iseniz o zaman kendinizi burada eklemenizi öneririz. Yanlışlıkla kendinize
* bir *LINE ban koyarsanız bile yinede muaf tutulacaksınız.
*/
/* except ban bloğu, sizi KLINE ve ZLINE gibi banlardan koruyacaktır */
except ban {
mask *@192.0.2.1;
// burada daha fazla mask girdileri ekleyebilirsiniz..
}
/* except ban bloğu, sizi 'tüm' GLINE, GZLINE, QLINE, SHUN gibi banlardan koruyacaktır */
except ban {
mask *@192.0.2.1;
type all;
}
/* Deny dcc bloğu, sunucu üzerinden DCC yoluyla dosya gönderilmesine izin vermeyecektir */
deny dcc {
filename "*sub7*";
reason "Olası Sub7 Virüsü";
}
/* Deny channel bloğu, kullanıcıların belirtilen kanallara girmesini engeller */
deny channel {
channel "*warez*";
reason "Warez is illegal";
class "clients";
}
/* VHosts (Virtual Hosts) bloğu, kullanıcının yeni bir host alabilmesine olanak sağlar.
* Görmeniz için; https://www.unrealircd.org/docs/Vhost_block
*/
/* Kullanabileceğiniz örnek vhost. IRC tipi: /VHOST test test
* DiKKAT: Güvenlik açısından aşağıdaki vhost::mask yönergesinde
* maske 'unrealircd.com' olarak belirlenmiĹźtir.
*/
vhost {
vhost i.hate.microsefrs.com;
mask *@unrealircd.com;
login "test";
password "test";
}
/* Blacklist blokları, bir kullanıcı bağlandığında IP adresinin drone saldırılarına
* neden olduğunu, bilinen bir saldırıya uğramış bir makine olup olmadığını görmek
* için harici bir DNS Kara Liste hizmetinden sorgulayacaktır.
* Belgeleme: https://www.unrealircd.org/docs/Blacklist_block
* veya aşağıdaki bloklar satırına bakınız.
*/
/* DroneBL, muhtemelen IRC Sunucuları tarafından kullanılan en popüler kara liste.
* Belgeler ve cevap (reply) tiplerin anlamlarını görmek için https://dronebl.org/
* adresine bakınız. Bu zamanda aşağıdaki cevap (reply) tiplerini kullanıyoruz:
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
* 16: Autorooting worms.
*/
blacklist dronebl {
dns {
name dnsbl.dronebl.org;
type record;
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone belirlendi. Ayrıntılar için https://dronebl.org/lookup?ip=$ip adresine bakınız.";
}
/* EFnetRBL, belgeler ve cevap (reply) tiplerini görmek için https://rbl.efnetrbl.org/
* adresine bakınız.
* Yazma sırasında: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
*
* NOT: Sunucunuzda TOR proxy'lerine izin vermek istiyorsanız,
* cevap (reply) tiplerinden '4;' öğesini kaldırmanız gerekiyor.
*/
blacklist efnetrbl {
dns {
name rbl.efnetrbl.org;
type record;
reply { 1; 4; 5; }
}
action gline;
ban-time 24h;
reason "Proxy/Drone/TOR belirlendi. Ayrıntılar için https://rbl.efnetrbl.org/?i=$ip adresine bakınız.";
}
/* Diğer yapılandırma dosyalarını dahil edebilirsiniz */
/* include "klines.conf"; */
/* Ağ yapılandırması */
set {
network-name "ExampleNET";
default-server "irc.example.org";
services-server "services.example.org";
stats-server "stats.example.org";
help-channel "#Help";
hiddenhost-prefix "Clk";
prefix-quit "Quit";
/* Gizleme anahtarları ağ üzerindeki bütün sunucularda aynı olmalı.
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
* Anahtarlar 5-100 karakterlik (10-20 karakter yeterli) 3 rastgele diziden oluşmalı ve
* küçük harf (a-z), büyük harf (A-Z) ve rakamlardan (0-9) meydana gelmelidirler.. [ilk örneğe bakınız].
* IPUCU: './unreal gencloak' Unreal sizin için rastgele 3 adet dizin oluşturur.
* Bunu NIX üzerinde çalıştırabilirsiniz.
*/
cloak-keys {
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"ve diÄźeri";
"ve diÄźeri";
}
}
/* Sunucunun kendine özgü yapılandırması */
set {
kline-address "set.this.to.email.address"; /* bir kullanıcı banlandığında e-mail yada URL satırı gösterir */
modes-on-connect "+ixw"; /* kullanıcılar bağlandığında, bu modları alacaktır */
modes-on-oper "+xws"; /* Birisi IRC Operatör olduğunda bu modları alacaktır */
oper-auto-join "#opers"; /* IRCoplar bu kanala otomatik olarak giriş yapacaktır */
options {
hide-ulines; /* U-lines satırları /MAP ve /LINKS komutunda gözükmez */
show-connect-info; /* sunucuya bağlanırken "looking up your hostname" mesajı görüntülenecektir */
}
maxchannelsperuser 10; /* bir kullanıcının maksimum girebileceği kanal sayısı */
/* QUIT mesajının görüntülenebilmesi için, bir kullanıcının sunucuya bağlı kalması
* gereken süre. Bu durum umarım spamları durdurmak için yardımcı olacaktır.
*/
anti-spam-quit-message-time 10s;
/* Kullanıcı sunucudan ayrılırken çıkış sebebini sabitler. /QUIT sebeb gözardı edilecektir. */
/* static-quit "Client quit"; */
/* static-part /PART komutu ile aynı işi görür */
/* static-part yes; */
/* Anti flood Koruması
* Görmeniz için: https://www.unrealircd.org/docs/Set_block#set::anti-flood
*/
anti-flood {
}
/* Spam filter Ayarları */
spamfilter {
ban-time 1d; /* varsayılan spamfilter tarafından ban süresini belirtir */
ban-reason "Spam/Advertising"; /* varsayılan sebep */
virus-help-channel "#help"; /* 'viruschan' eylemi için kullanılacak kanal */
/* except "#help"; Spamfilter'den muaf tutulacak kanal */
}
}
/* Son olarak, bir MOTD (Günün Mesajı) oluşturabilirsiniz, bu
* conf/ dizininde 'ircd.motd' metin dosyası oluşturarak yapabilirsiniz.
* Bu dosyanın içeriği bağlantı kuran kullanıcılara gösterilecektir.
* Daha fazla bilgi için https://www.unrealircd.org/docs/MOTD_and_Rules bölümünü inceleyiniz.
*/
/*
* Sorununuza veya daha fazla yardımamı ihtiyacınız var?
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
* 2) https://www.unrealircd.org/docs/FAQ <- sorularınızın %80 ini kapsamakta!
* 3) EÄźer probleminiz hala devam ediyorsa:
* - Forums: https://forums.unrealircd.org/
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
* İlk önce Dökümantasyon ve FAQ kısmını okumanızı gerektirdiğini unutmayın!
*/
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-237
View File
@@ -1,237 +0,0 @@
/* This file will load (nearly) all modules available on UnrealIRCd.
* So all commands, channel modes, user modes, etc..
*
* If you want to have all UnrealIRCd functionality, then include this
* file from your unrealircd.conf by using:
* include "modules.default.conf";
*
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
* If you want to customize the modules to load you have two options:
* 1) Keep the include for modules.default.conf as usual and make use
* of blacklist-module "xyz"; to selectively disable modules.
* See https://www.unrealircd.org/docs/Blacklist-module_directive
* 2) OR, make a copy of this file (eg: name it modules.custom.conf)
* and edit it. Then include that file from your unrealircd.conf
* instead of this one.
* The downside of option #2 is that you will need to track changes
* in the original modules.default.conf with each new UnrealIRCd
* release to make sure you don't miss any new functionality (as new
* important modules may be added you need to add them to your conf).
* You don't have this problem with option #1.
*/
/*** Cloaking (for user mode +x) ***/
loadmodule "cloak";
/*** Commands ***/
// User commands (MINIMAL)
// These provide just the minimal set of IRC commands that are
// required by RFC1459 along with WATCH and MAP.
loadmodule "admin";
loadmodule "away";
loadmodule "invite";
loadmodule "ison";
loadmodule "join";
loadmodule "kick";
loadmodule "links";
loadmodule "list";
loadmodule "lusers";
loadmodule "map";
loadmodule "message";
loadmodule "mode";
loadmodule "motd";
loadmodule "names";
loadmodule "nick";
loadmodule "part";
loadmodule "pass";
loadmodule "pingpong";
loadmodule "protoctl";
loadmodule "quit";
loadmodule "rules";
loadmodule "topic";
loadmodule "user";
loadmodule "userhost";
loadmodule "watch";
loadmodule "whox";
loadmodule "whois";
loadmodule "whowas";
// User commands (EXTENDED)
// These are commands that provide extended functionality.
loadmodule "botmotd";
loadmodule "cap";
loadmodule "cycle";
loadmodule "dccallow";
loadmodule "help";
loadmodule "knock";
loadmodule "lag";
loadmodule "sasl";
loadmodule "setname";
loadmodule "silence";
loadmodule "starttls";
loadmodule "time";
loadmodule "userip";
loadmodule "vhost";
loadmodule "history";
// IRC Operator commands
// Note: several of these like kill are also server-to-server commands
// which are required if you link to other servers.
loadmodule "addmotd";
loadmodule "addomotd";
loadmodule "chghost";
loadmodule "chgident";
loadmodule "chgname";
loadmodule "close";
loadmodule "connect";
loadmodule "squit";
loadmodule "dccdeny";
loadmodule "globops";
loadmodule "kill"; /* also server-to-server */
loadmodule "locops";
loadmodule "mkpasswd";
loadmodule "oper";
loadmodule "opermotd";
loadmodule "sajoin";
loadmodule "samode";
loadmodule "sapart";
loadmodule "sdesc";
loadmodule "sethost";
loadmodule "setident";
loadmodule "stats";
loadmodule "tkl"; /* also server-to-server */
loadmodule "trace";
loadmodule "tsctl";
loadmodule "unsqline";
loadmodule "wallops";
loadmodule "jumpserver";
// Server-to-server commands
// Don't remove these, unless you never link to other servers.
loadmodule "eos";
loadmodule "md";
loadmodule "netinfo";
loadmodule "server";
loadmodule "sjoin";
loadmodule "sqline";
loadmodule "swhois";
loadmodule "umode2";
loadmodule "sinfo";
loadmodule "require-module";
// Services commands
// You could disable these if you don't use Services
// https://www.unrealircd.org/docs/Services
loadmodule "sendsno";
loadmodule "sendumode";
loadmodule "svsjoin";
loadmodule "svskill";
loadmodule "svslusers";
loadmodule "svsmode";
loadmodule "svsmotd";
loadmodule "svsnick";
loadmodule "svsnline";
loadmodule "svsnolag";
loadmodule "svsnoop";
loadmodule "svspart";
loadmodule "svssilence";
loadmodule "svssno";
loadmodule "svswatch";
/*** Channel modes ***/
loadmodule "chanmodes/floodprot"; /* +f */
loadmodule "chanmodes/nocolor"; /* +c */
loadmodule "chanmodes/noctcp"; /* +C */
loadmodule "chanmodes/stripcolor"; /* +S */
loadmodule "chanmodes/issecure"; /* +Z */
loadmodule "chanmodes/permanent"; /* +P */
loadmodule "chanmodes/link"; /* +L */
loadmodule "chanmodes/censor"; /* +G */
loadmodule "chanmodes/delayjoin"; /* +D */
loadmodule "chanmodes/noknock"; /* +K */
loadmodule "chanmodes/noinvite"; /* +V */
loadmodule "chanmodes/operonly"; /* +O */
loadmodule "chanmodes/nonotice"; /* +T */
loadmodule "chanmodes/regonly"; /* +R */
loadmodule "chanmodes/nonickchange"; /* +N */
loadmodule "chanmodes/nokick"; /* +Q */
loadmodule "chanmodes/regonlyspeak"; /* +M */
loadmodule "chanmodes/secureonly"; /* +z */
loadmodule "chanmodes/history"; /* +H */
/*** User modes ***/
loadmodule "usermodes/bot"; /* +B (mark yourself as a bot) */
loadmodule "usermodes/servicebot"; /* +S (service bot) */
loadmodule "usermodes/noctcp"; /* +T (block CTCP's) */
loadmodule "usermodes/censor"; /* +G (censor bad words) */
loadmodule "usermodes/showwhois"; /* +W (show if someone does /WHOIS) */
loadmodule "usermodes/privacy"; /* +p (privacy, hide channels in /WHOIS) */
loadmodule "usermodes/nokick"; /* +q (unkickable oper) */
loadmodule "usermodes/regonlymsg"; /* +R (only registered users may private message you) */
loadmodule "usermodes/secureonlymsg"; /* +Z (only SSL/TLS users may private message you) */
loadmodule "usermodes/privdeaf"; /* +D (don't let other user PM you) */
/*** Server notice masks */
loadmodule "snomasks/dccreject"; /* +D (rejected DCC's) */
/*** Extended Bans ***/
loadmodule "extbans/join"; /* +b ~j (prevent only joins) */
loadmodule "extbans/quiet"; /* +b ~q (prevent only messaging) */
loadmodule "extbans/nickchange"; /* +b ~n (prevent only nick changes) */
loadmodule "extbans/realname"; /* +b ~r (ban by real name) */
loadmodule "extbans/account"; /* +b ~a (ban/exempt if logged in with services account) */
loadmodule "extbans/inchannel"; /* +b ~c (ban/exempt if in channel) */
loadmodule "extbans/operclass"; /* +b ~O (ban/exempt by operclass) */
loadmodule "extbans/certfp"; /* +b ~S (ban/exempt by certfp) */
loadmodule "extbans/textban"; /* +b ~T (censor or block text) */
loadmodule "extbans/msgbypass"; /* +e ~m (bypass message restrictions) */
loadmodule "extbans/timedban"; /* +b ~t (timed bans / temporary bans) */
loadmodule "extbans/partmsg"; /* +b ~p (hide part/quit message) */
loadmodule "extbans/securitygroup"; /* +b ~G (security group) */
/** IRCv3 extensions */
loadmodule "account-notify"; /* send ACCOUNT message upon services account login */
loadmodule "message-tags"; /* add tags to messages, required for various IRCv3 features */
loadmodule "batch"; /* also required for several IRCv3 features */
loadmodule "server-time"; /* adds server timestamp to various messages */
loadmodule "message-ids"; /* adds unique msgid to various messages */
loadmodule "account-tag"; /* adds services account information to messages */
loadmodule "echo-message"; /* shows clients if their messages are altered/filtered */
loadmodule "labeled-response"; /* correlate requests and responses easily */
loadmodule "bot-tag"; /* indicate the message comes from a bot (draft/bot) */
loadmodule "typing-indicator"; /* typing indicator in PM and channels (+typing) */
loadmodule "reply-tag"; /* indicate to which message you are responding (+draft/reply) */
loadmodule "clienttagdeny"; /* informs clients about supported client-only message tags */
loadmodule "sts"; /* strict transport policy (set::tls::sts-policy) */
loadmodule "link-security"; /* link-security announce */
loadmodule "plaintext-policy"; /* plaintext-policy announce */
loadmodule "chathistory"; /* CHATHISTORY client command, 005 and a CAP (draft) */
/*** Other ***/
// These are modules that don't fit in any of the previous sections
loadmodule "ident_lookup"; /* Ident lookups if set::options::identd-check is set*/
loadmodule "certfp"; /* SSL/TLS certificate fingerprint in /WHOIS (& more) */
loadmodule "tls_antidos"; /* prevent TLS DoS (renegotiate floods) */
loadmodule "webirc"; /* WEBIRC command. See webirc block. */
loadmodule "blacklist"; /* Blacklist support (DNSBL). See blacklist block. */
loadmodule "jointhrottle"; /* set::anti-flood::join-flood (previously chanmode +j) */
loadmodule "charsys"; /* Provides set::allowed-nickchars (must always be loaded!) */
loadmodule "authprompt"; /* Authentication prompt, see set::authentication-prompt */
loadmodule "history_backend_mem"; /* History storage backend (used by chanmodes/history) */
loadmodule "tkldb"; /* Write TKLines to .db file */
loadmodule "channeldb"; /* Write channel settings to .db file (+P channels only) */
loadmodule "rmtkl"; /* Easily remove *-Lines in bulk with /RMTKL */
loadmodule "restrict-commands"; /* Provides set::restrict-commands settings */
loadmodule "reputation"; /* used by Connthrottle and others, see next */
loadmodule "connthrottle"; /* see https://www.unrealircd.org/docs/Connthrottle */
loadmodule "userip-tag"; /* unrealircd.org/userip tag for ircops */
loadmodule "userhost-tag"; /* unrealircd.org/userhost tag for ircops */
loadmodule "targetfloodprot"; /* set::anti-flood::target-flood protection */
-183
View File
@@ -1,183 +0,0 @@
/* This file will load all optional modules. These are features that
* not everyone will use or are considered experimental.
* You can include this file from your unrealircd.conf like this:
* include "modules.optional.conf";
* OR... and this is probably a better idea... you can copy-paste it
* to another file where you do your own customizations.
*
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
* If you want to customize, make a copy of this file (for example
* name it modules.custom.conf) and edit it.
* Then include that file from your unrealircd.conf instead of this one.
*/
/*** Commands ***/
// This add the /IRCOPS command: A more visual way for users
// to see which IRCOps are online.
loadmodule "ircops";
// This adds the /STAFF command: This command simply displays
// a text file that you can configure here:
loadmodule "staff";
set { staff-file "network.staff"; }
/*** Channel modes ***/
// The following module ('nocodes') is not a true channel mode.
// It simply enhances the existing channel mode +S/+c to include
// stripping/blocking of bold, underline and italic text.
loadmodule "nocodes";
/*** Other ***/
// The hideserver module will hide /MAP and /LINKS to regular users.
// It does not truly enhance security as server names can still be
// seen at other places.
// Comment out the following line to enable this:
// loadmodule "hideserver";
// The antirandom module will kill or *line users that have a nick,
// ident and/or realname that is considered "random".
// This helps to combat simple botnets/drones.
// Note that failure to set the right settings may ban innocent users.
// This is especially true if you are on a non-English network where
// the module may consider a sequence of characters "random" even though
// it is a perfectly pronounceable word in your language.
loadmodule "antirandom";
set {
antirandom {
/* THRESHOLD:
* This is pretty much the most important setting of all.
* For every randomly looking ident the user gets a certain amount of
* 'points', if this value reaches 'threshold' then the appropriate
* action is taken (killed, *lined, see later on).
* lower = more randomly looking users will be catched (but also more
* innocent users)
* higher = less chance of innocent users getting killed, but also less
* chance on bots getting catched.
* <2: DON'T!!
* 4: Works good, probably a few more innocent kills but if you got
* quite a bot problem then this might be a useful setting.
* 5: Works well with few innocent kills, probably good to begin with.
* 6: If you want to be a tad more careful
* >6: For the paranoid. Module can still be quite effective, though :)
*/
threshold 7;
/* BAN-ACTION:
* Action to take whenever the user is catched as random, options:
* warn, kill, gline, gzline, kline, zline, shun, tempshun
*/
ban-action kill;
/* BAN-TIME:
* Time to ban the user (irrelevant for tempshun/kill).
* Something between 1 hour and 2 days is recommended.
* If you set it higher than 3 or 4 days then you get quite a risk
* of catching innocent users due to dynamic IP, not to mention
* your *line list gets filled up... so choose it wisely.
*/
ban-time 4h;
/* BAN-REASON:
* The ban (or kill) reason to use.
* You might want to put in an entry to a FAQ or an email address
* where users can mail if they have been catched and don't know what to do.
* NOTE: One of the various reasons that ""innocent users"" are catched is
* if they just randomly type in info for their nick, ident, or realname.
*/
ban-reason "You look like a bot. Be sure to fill in your nick/ident/realname properly.";
/* CONVERT-TO-LOWERCASE:
* Convert nicks, idents, and realnames to lowercase before doing random checks?
* This has not been tested extensively for false positives, but might be (very)
* helpful to catch GnStA5FYhiTH51TUkf style random nicks as random.
* Enabled by default.
*/
convert-to-lowercase yes;
/* FULLSTATUS-ON-LOAD:
* If enabled, then upon loading it will check all users that are currently
* connected and give a status report about who it would have killed.
* Note that it doesn't actually kill any currently connected users, it is for
* informative purposes only.
* This can be (very) useful if you use the module for the first time.
* But you probably want to disable it after a while, since once the module
* is actively dealing with randomly looking persons, it shouldn't report any
* users anymore on load and then this check only eats useless CPU on /REHASH.
* Enabled by default.
*/
fullstatus-on-load yes;
/* SHOW-FAILEDCONNECTS:
* This will send out a notice whenever a randomly looking user has been catched
* during connecting. Obviously this can be pretty noisy.
* Especially recommended to enable during the first few days you use this module.
*/
show-failedconnects yes;
/* EXCEPT-HOSTS:
* Hostmasks on this list are matched against the IP and hostname of the connecting
* user. If it matches then we do not check if the nick/ident/realname is random.
* NOTE: Use the REAL host or IP here, not any cloaked hosts!
*/
except-hosts {
mask 192.168.0.0/16;
mask 127.0.0.0/8;
}
/* EXCEPT-WEBIRC:
* This will make antirandom not check connections from WEBIRC gateways.
* ( see https://www.unrealircd.org/docs/WebIRC_block )
* It seems WEBIRC connections frequently cause false positives so the
* default is 'yes'.
*/
except-webirc yes;
}
}
// This module will send a HTTP 301 redirect to any client which sends
// a HTTP request to us. This is commented out by default:
//loadmodule "webredir";
//set {
// webredir {
// url "https://...";
// }
//}
// This adds websocket support. For more information, see:
// https://www.unrealircd.org/docs/WebSocket_support
loadmodule "websocket";
// This module will detect and stop spam containing of characters of
// mixed "scripts", where (for example) some characters are in
// Latin script and other characters are in Cyrillic script.
loadmodule "antimixedutf8";
set {
antimixedutf8 {
/* Take action at this 'score' (lower = more sensitive)
*
* A score of 2 or 3 will catch a lot but also
* catch innocent users who are not using a pure
* Latin script, such as Russian people who
* commonly use a mix of Latin and Cyrillic.
*
* A score of 8 is a safe default.
*/
score 8;
/* Action to take, see:
* https://www.unrealircd.org/docs/Actions
*/
ban-action block;
/* Block/kill/ban reason (sent to user) */
ban-reason "Mixed character spam";
/* Duration of ban (does not apply to block/kill) */
ban-time 4h; // For other types
}
}
-21
View File
@@ -1,21 +0,0 @@
#
# This file contains the list of repositories that are used
# by the './unrealircd module' command.
# Note that 3rd party modules are NOT written by the UnrealIRCd team.
# Use such modules at your own risk. In case of problems, contact
# the module author. For more information, see:
# https://www.unrealircd.org/docs/Module_manager
#
#
# This is the unrealircd-contrib repository which is added by default in
# UnrealIRCd 5 to make it easy for users to install 3rd party modules.
# If you are a module coder and want to add your module to this repository
# as well, then read the rules and procedure at:
# https://www.unrealircd.org/docs/Rules_for_3rd_party_modules_in_unrealircd-contrib
#
https://modules.unrealircd.org/modules.list
# You can add more repositories here. However, do note that all
# URLs MUST start with https://
-144
View File
@@ -1,144 +0,0 @@
/* This file defines a number of default operclass blocks which you can
* use in your oper blocks (via oper::operclass).
*
* This file is normally included from your unrealircd.conf through:
* include "operclass.default.conf";
*
* The operclass block is extensively documented at:
* https://www.unrealircd.org/docs/Operclass_block
* And the permissions itself (operclass::permissions) at:
* https://www.unrealircd.org/docs/Operclass_permissions
*
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
* Instead, if you want to change the permissions in an operclass block,
* you should copy the definition, or this entire file, to either your
* unrealircd.conf or some other file (eg: operclass.conf) that you
* you will include from your unrealircd.conf.
* Then edit it, and while doing so don't forget to change the name
* of your custom operclass block(s), so operclass <name>.
*/
/* Local IRC Operator */
operclass locop {
permissions {
chat;
channel { operonly; override { flood; } }
client { see; }
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash; }
route { local; }
kill { local; }
server-ban {
kline;
zline { local; }
}
}
}
/* Global IRC Operator */
operclass globop {
permissions {
chat;
channel { operonly; see; override { flood; } }
client;
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash;
remote; tsctl { view; } }
route;
kill;
server-ban { dccdeny; shun; zline; kline; gline; }
}
}
/* Server administrator */
operclass admin {
permissions {
chat;
channel { operonly; see; override { flood; } }
client;
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl { view; } }
route;
kill;
server-ban;
}
}
/* Services Admin */
operclass services-admin {
permissions {
chat;
channel { operonly; see; override { flood; } }
client;
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl { view; } }
route;
kill;
server-ban;
sacmd;
services;
}
}
/* Network Administrator */
operclass netadmin {
permissions {
chat;
channel { operonly; see; override { flood; } }
client;
immune;
self { getbaddcc; opermodes; set; }
server { opermotd; info; close; module; dns; rehash;
remote; description; addmotd;
addomotd; tsctl; }
route;
kill;
server-ban;
sacmd;
services;
}
}
/* Same as 'globop' operclass, but with OperOverride capabilities added */
operclass globop-with-override {
parent globop;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
/* Same as 'admin' operclass, but with OperOverride capabilities added */
operclass admin-with-override {
parent admin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
/* Same as 'services-admin' operclass, but with OperOverride capabilities added */
operclass services-admin-with-override {
parent services-admin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
/* Same as 'netadmin' operclass, but with OperOverride capabilities added */
operclass netadmin-with-override {
parent netadmin;
permissions {
channel { operonly; see; override; }
self { getbaddcc; opermodes; set; unkickablemode; }
}
}
-154
View File
@@ -1,154 +0,0 @@
/*
* This configuration file contains example spamfilter rules.
* They are real rules that were useful a long time ago.
* Since 2005 these rules are no longer maintained.
* The main purpose nowadays is to serve as an example
* to give you an idea of how powerful spamfilters can
* be in real-life situations.
*
* Documentation on spamfilter is available at:
* https://www.unrealircd.org/docs/Spamfilter
*/
/* General note:
* If you want to use a \ in a spamfilter, or in fact
* anywhere in the configuration file, then you need
* to escape this to \\ instead.
*/
/* First some spamfilters with match-type 'simple'.
* The only matchers available are * and ?
* PRO's: very fast, easy matching: everyone can do this.
* CON's: limited ability to fine-tune spamfilters
*/
spamfilter {
match-type simple;
match "Come watch me on my webcam and chat /w me :-) http://*:*/me.mpg";
target private;
action gline;
reason "Infected by fyle trojan: see http://www.sophos.com/virusinfo/analyses/trojfylexa.html";
}
/* This signature uses a \ which has to escaped to \\ in the configuration file */
spamfilter {
match-type simple;
match "C:\\WINNT\\system32\\*.zip";
target dcc;
action block;
reason "Infected by Gaggle worm?";
}
spamfilter {
match-type simple;
match "Speed up your mIRC DCC Transfer by up to 75%*www.freewebs.com/mircupdate/mircspeedup.exe";
target private;
action gline;
reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html";
}
spamfilter {
match-type simple;
match "STOP SPAM, USE THIS COMMAND: //write nospam $decode(*) | .load -rs nospam | //mode $me +R";
target private;
action gline;
reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm";
}
/* Now spamfilters of type 'regex'.
* These use powerful regular expressions (Perl/PCRE style)
* You may have to learn more about "regex" first before you
* can use them. For example the dot ('.') has special meaning.
*/
/* This regex shows a pattern which requires 20 paramaters,
* such as "x x x x x x x x x x x x x x x x x x x x"
*/
spamfilter {
match-type regex;
match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}";
target { private; channel; }
action kill;
reason "mIRC 6.0-6.11 exploit attempt";
}
/* Similarly, this regex shows a pattern that matches
* against at least 225 characters in length.
*/
spamfilter {
match-type regex;
match "\x01DCC (SEND|RESUME).{225}";
target { private; channel; }
action kill;
reason "Possible mIRC 6.12 exploit attempt";
}
/* Earlier you saw an example of a $decode exploit which used
* match-type 'simple' and - indeed - the filter was quite simple.
* The following uses a regex with a similar example.
* Regular expressions are very powerful but here you can see
* that it actually complicates writing a filter quite a bit.
* With regex in this filter we need to escape the ( and all
* the dots, question marks, etc. if we want to match these
* characters in literal text.
*/
spamfilter {
match-type regex;
match "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$";
target private;
action block;
reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan.";
}
spamfilter {
match-type regex;
match "^http://www\.angelfire\.com/[a-z0-9]+/[a-z0-9]+/[a-z_]+\.jpg <- .*!";
target private;
action block;
reason "Infected by fagot worm: see http://www.f-secure.com/v-descs/fagot.shtml";
}
/* This shows a regex which specifically matches an entire line by
* the use of ^ and $
*/
spamfilter {
match-type regex;
match "^!login Wasszup!$";
target channel;
action gline;
reason "Attempting to login to a GTBot";
}
/* An example of how to match against an IP address in text (IPv4 only) */
spamfilter {
match-type regex;
match "^!packet ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15}";
target channel;
action gline;
reason "Attempting to use a GTBot";
}
/* A slightly more complex example with a partial OR matcher (|) */
spamfilter {
match-type regex;
match "(^wait a minute plz\. i am updating my site|.*my erotic video).*http://.+/erotic(a)?/myvideo\.exe$";
target private;
action gline;
reason "Infected by some trojan (erotica?)";
}
/* In regex a \ is special and needs to be escaped to \\
* However in this configuration file, \ is also special and
* needs to be escaped to \\ as well.
* The result is that we need double escaping:
* To match a \ you need to write \\\\ in the configuration file.
*/
spamfilter {
match-type regex;
match "C:\\\\WINNT\\\\system32\\\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip";
target dcc;
action dccblock;
reason "Infected by Gaggle worm";
}
File diff suppressed because it is too large Load Diff
+521
View File
@@ -0,0 +1,521 @@
#
# IRC - Internet Relay Chat, doc/example.conf
# Copyright (C) 1994, Helen Rose
# $Id$
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 1, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# This is an example configuration file for the Unreal3.0-Morrican
# and higher IRC servers.
#
# You only need an ircd.conf (IRC server configuration file) if you are
# running an IRC server. If you are running a standalone client this file
# is not necessary.
#
# This file will explain the various lines in the IRC server
# configuration file. Not all lines are mandatory. You can check to make
# sure that your configuration file is correct by using the program
# "chkconf", provided in the server distribution (and when you do "make
# install" this program will be installed in the same directory as the irc
# server).
#
# This document modified for use by with the Unreal3.0 IRCD
#
#
# The options for whether a line is needed or not are:
# MANDATORY: you absolutely MUST have this line
# NETWORKED: you must have this line if you are connecting this irc
# server to any other server (servers can run standalone).
# SUGGESTED: it is highly suggested that you use this line
# OPTIONAL: it's completely up to you whether to define this or not
# DISCOURAGED: you really really should not use this line if at all
# possible.
# OBSOLETE: an old or out of date line that isn't needed.
#
# MANDATORY lines are absolute *musts*, that is, if you do not have this
# line then your server will not work properly. SUGGESTED lines are
# close-to-mandatory (that is, the server will run without it, but you are
# highly encouraged to use these lines).
#
# Note that "*" in a field indicates an "unused" field.
#
#
# ========================================================================
# NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have
# to put something in a specific order (for example, client-connection
# lines), put them in reverse order!
# ========================================================================
#
#
# M: [MANDATORY]. This line sets your server's name, description, port
# number, and IP address to bind to. Fields, in order, are:
#
# If you leave IP address field blank or
# *, it defaults to binding all local IP addresses on the machine.
#
# M:hostname:IP:Description Of Your Server:port:NS
#
# NS is a new feature in Unreal3.1. It is optional but it is recommended.
# Every server on the network must have a completely unique NS. This number
# will be used to identify the server.
#
M:server.my.net:*:My IRC Server:6667:34
#
# A: [MANDATORY]. This line lists your administrative information
# (contact address, etc). To view this information, /admin (server) will
# show it to you.
#
# The A: line has no set information, in fact, you can put arbitrary text
# in there if you wish (it is encouraged that you put at *least* a contact
# address for a person responsible for the irc server, however)
#
A:Generic Internet Access:Admin John Doe:jdoe@generic.com
#
# Y: [SUGGESTED]. These lines define connection classes. Connection
# classes allow you to fine-tune your client and server connections. It is
# suggested that clients and servers be placed in seperate classes, and if
# you have lots of server connections (if you do have lots of servers you
# shouldn't be reading this file :-) each set of servers (defined
# arbitrarily by you) should have its own class. If you have clients
# coming in from lots of different sites, you may want to seperate them
# out into classes. For instance, you may want to put local users in one
# class, with remote users in another class.
#
# The class numbers are not arbitrary. In auto-connecting servers -- that
# is, servers that you have a port number (e.g. 6667) on the end of the C:
# line (see below) the higher the number the higher the priority in
# auto-connecting.
#
# The fields in order are: class number, ping frequency (in seconds),
# connect frequency (in seconds), maximum number of links (used for
# auto-connecting, and for limiting the number of clients in that class),
# and sendq (this overrides any value set in include/config.h for #define
# MAXSENDQLENGTH).
#
# Note that it is a good idea to have ping frequency the same at both ends
# of the link.
#
# in this case, connect-frequency is 0 indicating that this is a client
# class (servers never connect to clients, it is the other way around).
Y:1:90:0:20:100000
#
# These are the recommended server Y:lines for connecting to dalnet.
# In addition to these you should have at *least* one client class, and one
# oper class (see O:lines). By convention on dalnet, these are usually
# numbered from 5 to 10.
#
# Class 50 - Hub to hub, autoconnect
Y:50:90:60:1:4000000
#
# Class 51 - Hub to hub, no autoconnect
Y:51:90:60:0:4000000
#
# Class 30 - Hub to US leaf
Y:30:90:0:0:3500000
#
# Class 32 - Hub to EU leaf
Y:32:180:0:0:3500000
#
# Class 34 - Hub to AU leaf
Y:34:300:0:0:3500000
#
# Class 40 - US leaf to hub, autoconnect
Y:40:90:90:1:3500000
#
# Class 41 - US leaf to hub, no autoconnect
Y:41:90:90:0:3500000
#
# Class 42 - EU leaf hub
Y:42:180:90:1:3500000
#
# Class 44 - AU leaf to hub
Y:44:300:120:1:3500000
#
# I: [MANDATORY]. The I: lines are client-authorization lines. Without
# these lines, no clients will be able to connect to your server.
# Wildcards ("*") are permitted. Passwords are also permitted (clients can
# be configured to send passwords).
#
# Ident (for more information on this, see rfc1413) can also be used by
# placing a @ in the appropriate fields.
#
# Fields are as follows:
# I:IP-address-mask:optional password:domain-mask::connection class (opt)
#
# With a password..... This will allow anyone from anywhere to connect
# as long as they know the password ("foobar"). Note listing this I: line
# first, it will be read *last*, meaning it is the "fall-through". That
# is, anyone who doesn't match the I: lines listed below must know the
# password ("foobar") to connect.
#
I:*@*:foobar:*@*::1
# This is a standard vanilla I: line which will permit anyone with an IP
# address starting with 205.133 OR with a hostname ending in
# .toledolink.com to connect to the server. NOTE, the ircd matches on the
# *right-most* match, so if I connect as rmiller@glass.toledolink.com
# (which is rmiller@205.133.127.8) I will show up on irc as
# rmiller@glass.toledolink.com since that is the first match it found.
# (Even though the second match is valid).
I:205.133.*::*.toledolink.com::1
#
# using ident
I:*@205.133.*::*@*.toledolink.com::1
# and you can even specify just certain usernames running ident (as long
# as the client's site is running the ident daemon):
I:NOMATCH::rmiller@glass.toledolink.com::1
# putting NOMATCH in the first field will stop the ircd from matching
# automatically against the IP address and it will force the server to
# match against the hostname. (the "NOMATCH" string is not mandatory, you
# can use any arbitrary text in the first field).
I:*@*:ONE:*@*::1
# putting the ONE in the password field makes it so that only 1 user matching
# that host or IP can connect through that I:line.
#
#
# O: [OPTIONAL]. These lines define operator access. You do not need to
# have an operator to run a server. A well configured leaf site should not
# need an operator online, if it's connections are well defined, the irc
# administrator can use kill -HUP on the ircd to reload the configuration
# file.
# The fields are as follows:
# O:hostname (ident "@" permitted):password:NickName:AccessFlags:class
# if the person in "NickName" is not coming from the hostname defined in
# the first field then the person will get the error message "No O: lines
# for your host".
# NOTE that since Crypted Passwords are defined by default in
# include/config.h this text probably will not be plaintext. See
# ircd/crypt/README for more information.
#
# class is the Y:Line class you want this operator to end up in after they
# have successfully /oper'd.
#
# Access flags may be left blank, or * to give full access rights. Flags
# are in the form of single characters making a string. Any combination
# of the following can be used(these are cAsE sensitive characters):
#
# r = access to /rehash server
# R = access to /restart server
# D = access to /die server
# h = oper can send /help ops
# g = oper can send /globops
# w = oper can send /wallops
# l = oper can send /locops
# c = access to do local /squits and /connects
# L = access to do remote /squits and /connects
# k = access to do local /kills
# K = access to do global /kills
# b = oper can /kline users from server
# B = oper can /unkline users from server
# n = oper can send local server notices(/notice $servername message)
# G = oper can send global server notices(/notce $*.my.net message)
# A = admin
# u = oper can set /umode +c
# f = oper can set /umode +f
# ^ = oper can set /umode +I
# e = oper can set /umode +e
# W = oper can set /umode +W
# H = oper gets auto +x on /oper
# o = local oper, flags included: rhgwlckbBnuf
# O = global oper, flags included: oRDCK
# a = services admin, access to /samode
# C = co admin
# A = admin
# N = network admin access to remote /rehash and remote /restart and a bunch more
# * = flags included: AaNCTzSHW^
#
# This is a plain vanilla O:line:
O:*.toledolink.com:nopassword:Russell:*:10
#
# and this line forces ident:
O:rmiller@glass.toledolink.com:nopassword:Russell::10
#
# This line is a generic "local operator", because of the flags, the only
# thing that really makes them global operators, is if they have the flags
# CKN set in their access flags.
#
# this line permits the nickname "jhs" with the password of "ITBites" to
# be a local operator only (be able to issue commands locally -- can /kill
# and /squit and /connect -- but *only* locally)
#
O:*.something.net:ITBites:jhs:o:10
#
# a crypted password line (NOTE that if you have crypted passwords, *all*
# of you passwords must be crypted! In fact, if you are getting an error
# "Incorrect Password" it may well be because crypted passwords are
# defined and you have used plaintext. So my example of plaintext and
# crypted strings in the same IRC server configuration file is an
# impossibility (but it is just theoretical, which is why I explained both).
#
O:rmiller@*.toledolink.com:T0eiVgHrqeKTQ:Russell::10
#
# U: [OPTIONAL]. This line defines the servers that IRC recognizes as being
# allowed to make various changes to the IRC environment (mode changes, for
# example), without complaining or otherwise obstructing them. For example,
# DALnet requires the following line:
U:services.my.net:*:*
#
# X: [ENCOURAGED]. This line defines the password that an operator must use
# to restart or die the server. Note that they still myst have they R and D
# flags. This is just a security precaution against accidentaly typing
# /die or /restart
# X:<password for /DIE>:<password for /RESTART>
X:diepass:restartpass
# C: [NETWORKED]. These lines define what servers your server tries to
# connect to.
# N: [NETWORKED]. These lines define what servers your server permits
# connections to be initiated from.
# C/N lines MUST be used in pairs. You cannot have one without the other.
#
# C: lines contain the following fields:
# C:remote server's hostname:passwd:remote server's name:port:conn class:options
# N: lines contain the following fields:
# N:remote server's hostname:passwd:remote server's name:host mask:conn class
#
# "host mask" is the number of parts in *your* hostname to mask to. For
# instance, with my servername being "csa.bu.edu", if I wanted to present
# my servername to be "*.bu.edu" I would have a host-mask portion of "1".
#
# it is *strongly* advised that your C/N line passwords be different for
# security's sake.
#
# ident is allowed in the server's hostname part of the field.
# The options field in a C:line is only available as of Unreal3.1.1
# Currently the only option is S which declares the link an SSL link.
# If the other server is not compiled with SSL then the link will fail.
#
# these lines tell the server to automatically (note the port number, that
# means automatic connection) connect to server2.my.net:
C:foobar@server2.my.net:bigspark:server2.my.net:7000:32
N:foobar@server2.my.net:bigalpha:server2.my.net::32
#
# This server's connection lines are more vanilla, masking the host to
# *.toledolink.com (as described above):
C:*.my.net:camelsrk00l:*.my.net::32
N:*.my.net:andsoarellamas:*.my.net:1:32
#
# This this line makes use of the options field:
# C:*.my.net:linkme:*.my.net:6667:32:S
# N:*.my.net:linkme:*.my.net::32
#
# K: [OPTIONAL]. These lines define user@host patterns to be banned from
# this particular server (with an optional time field). Note that K: lines
# are *not* global, and if you ban a user they can still use any other IRC
# server (unless they have specifically been banned there as well).
#
# The time field (same as reason) is only used if you #define
# TIMED_KLINES in config.h, and even then they are discouraged.
#
# the fields are defined as:
# K:hostmask:reason:username
# wildcards are permitted in any one of the fields, in other words, you can
# K:*::* if you wanted (but your server wouldn't be used much ;-)
#
# Spaces are permitted in the reason field (you don't have to use _).
# The /stats command has been modified to replace all spaces with _'s when
# doing a /stats k. K:lines also allows you to specify a file to play to the
# user when they are K:lined. To use this feature the reason must be in the
# format of |filename. the filename must be kc.anythinghere, this is to prevent
# the sending of text files such as your ircd.conf.
#
# This K: line bans the username "hrose" (the wildcards are used to make
# sure that any ident-checking character will match) on any machine from
# the University of Boston.
K:*.bu.edu:Hacking #UnrealIRCD:*hrose*
#
# This K: line bans any users from acs*.bu.edu between the hours of 8am
# and 12pm and 1pm and 5pm (the time is always the server's local time).
# Time-based K-lines such as this require TIMED_KLINES in config.h to be
# #defined.
K:acs*.bu.edu:0800-1200,1300-1700:*
# Note that 24 hour time is used (no "AM" or "PM").
# This K: line bans all *.foobar.com users and will play the file |kc.flooding
# to the user as the reason.
K:*.foobar.com:|kc.flooding:*
#
# E: [OPTIONAL]. This allows kline exceptions, even if a person matches
# a K:line or /kline they are still allowed to connect.
#
# The fields are as follows
# E:hostmask:reason:usermask
#
E:foo.bar.com:Oper on this server:*john21*
#
#
# q: [DISCOURAGED]. These lines "quarantine" specified servers. Because
# of the way they operates, the same q: lines MUST be installed by
# everyone or the net will keep breaking. I CANNOT EMPHASIZE THIS ENOUGH.
# Do NOT use q: lines lightly!
#
# This is NOT a nick q-line, if you wish to quarantine a NICK, see below.
#
# The fields are as follows:
# q:*:reason why quarantine is in place:servername
#
q::this server is too slow and lags the net:cm5.eng.umd.edu
#
# Q: [OPTIONAL]. Different from the above type of q: line, these lines
# prevent users on your server from picking certain nicks. This is useful
# if your network has 'reserved' nicknames that should not be taken by
# normal users. Note the difference in capitalization and BE CAREFUL!
#
# The fields are as follows:
# Q:*:reason why quarantine is in place:nickname
#
# For example, You might want to use the following lines:
Q::Reserved for services:ChanServ
Q::Reserved for services:NickServ
Q::Reserved for services:MemoServ
Q::Reserved for services:OperServ
Q::Reserved for services:HelpServ
Q::Reserved for services:StatServ
Q::Reserved for operators:IRCop
Q::Reserved for operators:*Oper*
Q::Reserved for administrators:Admin*
#
#
# T: [OPTIONAL]. These allow you to specify different MOTD and RULES files
# based on a users host. This is made so you can have MOTDs in different
# languages so all users can see the MOTD and understand it.
#
# The fields are as follows:
# T:host:motdfile:rulesfile
#
# T:*.fr:french.motd:french.rules
#
#
# e: [OPTIONAL]. These lines allow you to specify a host which will not
# be scanned by the proxy scanner when they connect. This is made so you
# can allow some open proxys to connect while still killing others. Make
# sure you use an IP and not a host for this line or it will not work.
# NOTE: These are not the same as E:lines.
#
# The fields are as follows:
# e:IP:*:*
#
# e:123.123.123:*:*
#
#
# Z: [DISCOURAGED]. These block ALL incoming connections from a certain
# IP address mask. They can stop users who log on and issue the SERVER
# command a couple of times just to annoy irc ops. They are more
# powerful that K-lines because they can stop users before they've had a
# chance to register. This works on servers, SO BE VERY CAREFUL WITH
# YOUR Z-LINE MASKS. Z-lines are a LAST RESORT. They are much too
# dangerous and powerful to be using them instead of K-lines and akills.
#
# NOTE 1: Z-lines do NOT work on host names! Only IP addresses.
# NOTE 2: Z-lines are part of /stats k.
# NOTE 3: The :* at the end is REQUIRED. Not using it will cause both
# ircd and chkconf to segfault without saying why.
#
# Syntax:
# Z:IP mask:reason for zapping:*
Z:127.0.0.1:Please don't log on from the local machine:*
#
# L: [OPTIONAL]. These lines "Leaf" specified servers. They are only
# useful if you are a non-leaf site yourself. There are two ways you can
# use L: lines. The first will limit one particular site to a particular
# tree depth (including 0, which would mean the server has to connect with
# no servers linked behind it otherwise the connection will fail). The
# second will allow you to be selective about which other servers you wish
# the connecting server to behave as a leaf towards.
#
# The fields are as follows:
# L:disallow connections to this hostmask::server name:depth
# For example, this will force kaja.gi.alaska.edu to connect only as a
# leaf (if it is not a leaf, the link will be dropped):
L:::kaja.gi.alaska.edu
# This line will force cm5.eng.umd.edu to have a depth of only 1 below it
# (that is, it is allowed to have only leaves connected to it):
L:::cm5.eng.umd.edu:1
#
# This line will prohibit anything matching *.edu to be connected behind
# any server matching *.au:
L:*.edu::*.au
#
# H: [OPTIONAL]. These lines define who you permit to act as a "hub" to
# you (that is, who you permit to connect non-leafed servers to you).
#
# the first field may use wildcards, the third field *must* be an exact
# match for a server's name (NOT a server's hostname, if they differ, the
# server's name must be used). If the servername is a wildcard (e.g. *.au)
# that is an acceptable name for the third field.
#
# The fields are as follows:
# H:servers which are permitted entry::hub server
#
# Example, permit server.my.net to allow any servers behind it to
# connect:
H:*::server2.my.net
#
# Example, permit irc-2.mit.edu to allow any MIT servers behind it to
# connect:
H:*.mit.edu::irc-2.mit.edu
#
# P: [OPTIONAL]. This field allows the server to listen on various ports
# (other than 7000) for connections.
#
# You can now bind internet ports to specific IP interface devices. To do
# this put the IP address of the interface in the host field. To bind to
# all interfaces, leave empty or put * in.
#
# P:lines can be limited to specific connections. For example you can make
# a port listen for only server connections. The currently available flags
# are:
#
# S - Server Only
# C - Client(User) Only
# J - JavaChat (for CR Java Client)
# s - Secure SSL
# * - CS flags
#
# The fields are as follows::
# P:IP# or UNIX socket file:*:*:port number
# for example, an internet domain socket on port 6665 for the local
# computer
P:127.0.0.1:*:*:6665
#
# Examples using flags
P:127.0.0.1:S:*:6666
P:127.0.0.1:C:*:7000
#
# V: [OPTIONAL]. These lines are very complex and allow you to deny a
# server from linking based on what version of Unreal they are running,
# as well as what flags the IRCd was compiled with.
#
# The fields are as follows:
# V:protocol:flags:servermask
#
# The format for the protocol field is as follows:
# >protocol - denys any protocols higher than that specified
# <protocol - denys any protocols lower than that specified
# =protocol - denys the specified protocol
# !protocol - denys all but the specified protocol
#
# The format for the flags field is as follows:
# flag - server must have the specifed flag
# !flag - server may not have the specified flag
#
# Examples:
# V:<2302:*:*
# V:*:S:hub.*
# V:=2301:!S:*
+144
View File
@@ -0,0 +1,144 @@
[ $Id$ ]
UnrealIRCd FAQ
Made by Stskeeps
This file will contain frequently asked questions about
Unreal IRCd. If you need more help email stskeeps@tspre.org
1) * I compile and everything seems fine during the compiling, but when it
comes time for the program to link, I get errors complaining about dns and
res things. What causes this?
A: You need to make sure -lresolv is included in the "extra libraries"
option of ./Config (or IRCDLIBS in top-level makefile)
2) * When I start up the IRCd it complains about something with chdir()?
A: You need to make sure the right directory is specified when you was
asked about "What directory are all the server configuration files in?"
./Config question
3) The server says like:
*** Link server1 -> server2 is now synced [secs: 30 recv: 130.4 sent: 120.0]
when I link two servers together, what does that mean?
A: That means the link is "synced" (all infodata transfered about the server).
The "secs" (30 in this example) means it took 30 seconds to do the sync
"recv: 130.4" means there was recieved 130 KiloBytes and 4 bytes.
"sent: 120.0" means there was sent 120 kilobytes from my side.
4) What is a negative TS split?
A: Every computer/server has got a time (so they can do TimeStamps) ..
When the clock on the computer is set wrong and the computer it links
upto is wrong it creates a Negative TS split (means time is lower it
actually is. How to fix this is contacting the root of the machine
and ask him to fix the time (when you made sure it's YOUR server that's
wrong)
5) What is an uProtocol ?
A: UnrealIRCd uses numbers to check if a link is compatible with itself
F.x Unreal v2.1.3 has got number 2103 while version 2.1 only has got
2100 - This means .. if the number is lower/higher than the uProtocol
the server uses, it's an incompatible link (of some reasons)
6) How does T:Lines work and what are they?
A: T:Lines is a new Unreal feature that makes it able to show different
MOTDs and RULES to people who matches a certain hostmask . Lemme show you some examples:
T:*.dk:motds/danish.motd:rules/danish.rules
T:*.fr:motds/french.motd:rules/french.rules
This will get people from Denmark to see the "Danish" MOTD and the "Dandish" RULLES
and people from France to see the French ones:)
NOTE: T:Lines are read up side down so if you have a T:*:ircd.motd:ircd.rules in the bottom
it should be at the top so the other motd lines can work as well
7) Where can i download updates to Unreal?
A: Mostly you can download the newest version at
http://www.unrealircd.com
Versions may be spewed out regulary due to new features and bugs..
10) Hosts show up as (null).network.net !!
A: This is because you have forgotten to include the network file.
The correct form is (in unrealircd.conf)
Include ..........: <network file>
If this doesn't work .. seek me at irc.ircsystems.net #unrealircd
12) My IRCd which runs on a FreeBSD says something about FDs and
Max: 0 What shall I do??
A: Well it's somekinda bug but you can workaround it by removing those
lines in src/s_bsd.c: (init_sys())
<- snippet 1 ->
#ifdef RLIMIT_FD_MAX
struct rlimit limit;
int pid;
if (!getrlimit(RLIMIT_FD_MAX, &limit))
{
# ifdef pyr
if (limit.rlim_cur < MAXCONNECTIONS)
#else
if (limit.rlim_max < MAXCONNECTIONS)
# endif
{
(void)fprintf(stderr,"ircd fd table too big\n");
(void)fprintf(stderr,"Hard Limit: %d IRC max: %d\n",
limit.rlim_max, MAXCONNECTIONS);
(void)fprintf(stderr,"Fix MAXCONNECTIONS\n");
exit(-1);
}
# ifndef pyr
limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
if (setrlimit(RLIMIT_FD_MAX, &limit) == -1)
{
(void)fprintf(stderr,"error setting max fd's to %d\n",
limit.rlim_cur);
exit(-1);
}
# endif
}
#endif
<-snippet 2->
#ifdef sequent
# ifndef DYNIXPTX
int fd_limit;
fd_limit = setdtablesize(MAXCONNECTIONS + 1);
if (fd_limit < MAXCONNECTIONS)
{
(void)fprintf(stderr,"ircd fd table too big\n");
(void)fprintf(stderr,"Hard Limit: %d IRC max: %d\n",
fd_limit, MAXCONNECTIONS);
(void)fprintf(stderr,"Fix MAXCONNECTIONS\n");
exit(-1);
}
# endif
#endif
13) I run debian-sparc and i get errors when compiling in match.c
What should I do?
A: If it says like this
<-snippet->
match.c: In function 'myncmp':
match.c:247: argument 'str1' doesn't match prototype
/usr/include/string.h:255: prototype declaration
match.c:247: argument 'str2' doesn't match prototype
/usr/include/string.h:255: prototype declaration
match.c:247: argument 'n' doesn't match prototype
/usr/include/string.h:255: prototype declaration
<-end of snippet>
Then go into include/setup.h and add this line:
#define GOT_STRCASECMP
(C) Carsten Munk 1999-2000
-180
View File
@@ -1,180 +0,0 @@
Numeric 005 Documentation
(c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(c) 2005-2009 syzop (Bram Matthys) [syzop@vulnscan.org]
Numeric 005 allows the server to inform the client of any protocol specific features in the
IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally
the numeric is sent when a /version request is made by a local user, for remote users
numeric 105 is used but contains the same information.
Due to the limit imposed by RFC1459 on both the buffer size (512) and the amount of
parameters that can be sent in a single command (15) a total of 13 parameters may be
specified in each 005. Because of this, a client must be able to accept multiple 005s
consecutively. The format for the 005 message is as follows:
":" <servername> "005" SPACE <nickname> SPACE <token[=value]> SPACE ... ":are supported
by this server"
Currently UnrealIRCd supports several tokens that are included in numeric 005. A list of
all tokens, their respective value and a brief description are listed below.
Unreal attempts to follow the proposed ISupport standard as much as possible. Unreal only
ignores the standard in one regard, the TARGMAX token. This token is believed to be
impractical and technically impossible to correctly implement due to existing limitations
in the standard. Therefore, this token is not currently supported.
Unreal does additionally provide a few tokens which are not specified in the standard, these
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, CMDS, NAMESX, UHNAMES, and WATCHOPTS.
Unreal also maintains a few legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure
compatibility until the ISupport standard is more widely accepted by clients.
Token Value Default Value Description
------------------------------------------------------------------------------------------------
MAP none none Informs the client that the /map
command is present. [Obsolete]
KNOCK none none Informs the client that the /knock
command is present. [Obsolete]
SAFELIST none none The LIST command is sent in
multiple iterations so that the
client's queue does not get filled
causing the user to be killed.
HCN none none The server supports the HCN
(Hybrid Connect Notice) protocol.
MAXCHANNELS number 10 The maximum number of channels a
user may join. [Deprecated]
MAXBANS number 60 The maximum number of bans that
may be placed for a channel.
[Obsolete]
NICKLEN number 30 Maximum length of a user's
nickname.
TOPICLEN number 307 Maximum length of a channel's
topic.
KICKLEN number 307 Maximum length of a kick reason.
MAXTARGETS number 20 Maximum targets for the PRIVMSG
command.
AWAYLEN number 307 Maximum length of an away message.
WALLCHOPS none none Indicates that you may use
NOTICE/PRIVMSG to send to +ohv by
using PRIVMSG/NOTICE [@|%|+]#channel.
[Deprecated]
WATCH number 128 Indicates the presence of the
WATCH command and specifies the
maximum number of watch entries.
SILENCE number 15 Indicates the maximum number of
entries on the silence list.
MODES number 13 Indicates the number of channel
modes with parameters that may be
sent at one time.
CHANTYPES chars # Indicates the prefixes available
for channels.
PREFIX (modes)prefixes (qaohv)~&@%+ Indicates the modes on a channel
that corespond to the given
nickname prefixes.
CHANMODES A,B,C,D be,kfL,lj, Specifies how each channel mode is
psmntirRcOAQKVHGCuzNSMT set/unset. The A section specifies
modes that add a nick/mask to a
list. The B section specifies
modes that require a parameter
to be both set and unset. The C
section specifies modes that
only require a parameter to be
set, and the D section
specifies modes that require no
parameters.
NETWORK string no default value Specifies the name of the
network that the server is
connected to.
CASEMAPPING string ascii Specifies what definition the
server uses when determining if
characters are upper/lowercase
of eachother.
EXTBAN prefix,types ~,cqnr Specifies what extbans are
supported by the server. The prefix
defines which character indicates
an extban and the types defines
which extbans the server supports.
ELIST flags MNUCT Specifies the set of extended LIST
options supported. The M flag
indicates mask based searching,
the N flag indicates negative
mask based searching. The U flag
means support for user count
searching. The C flag allows channel
creation time searching, and the T
flag allows topic set time
searching.
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
can be useful for the client to know
exist as they may provide a more
efficient means for the client to
accomplish a specific task. This
token replaces the MAP and KNOCK
tokens.
STATUSMSG flags ~&@%+ Specifies the mode flags that may
prefix a channel name in a PRIVMSG
or NOTICE to limit who receives the
message to only those with a certain
level of access. This token will
replace the WALLCHOPS token.
EXCEPTS none none Indicates that channel ban exceptions
(+e) are supported by the server.
INVEX none none Indicates that channel invite
exceptions (+I) are supported by
the server.
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
entries that may be added to a
particular mode list (type A modes).
This token replaces MAXBANS.
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
channels with the specified prefix
that a user may join at one time.
This token will replace MAXCHANNELS.
CHANNELLEN number 32 Provides the maximum length of a
channel name that a user can create.
NAMESX none none Indicates that extended /NAMES info
is available on this server. If the
client sends "PROTOCTL NAMESX" then
the server will, from then on, send
all channel rights in a NAMES reply
instead of only the highest right
(eg: @+Person instead of @Person).
UHNAMES none none Indicates that (other) extended
/NAMES info is available on the
server. If the client sends
"PROTOCTL UHNAMES" then the server
will, from then on, send user@host
information in a NAMES reply
(eg: @nick!ident@hostname).
WATCHOPTS flags A WATCH options supported. 'A' means
Away Notification is available.
-11
View File
@@ -1,11 +0,0 @@
base64 Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
(As of Unreal3.2-beta11)
The base64 system used by Unreal is defined as follows:
0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T
U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x
y z { }
These numbers are translated to and from their decimal equivilents of 0-64 in order to
provide a shorter way of expressing a number.
-2
View File
@@ -1,2 +0,0 @@
All server protocol documentation has been moved to the wiki:
https://www.unrealircd.org/docs/Server_protocol
-26
View File
@@ -1,26 +0,0 @@
==[ Translations ]===========================================================
In UnrealIRCd 5 we support the following translations:
* on-line documentation at https://www.unrealircd.org/docs/ (wiki!)
* help.conf
* example.conf
For translating the wiki documentation see this article:
https://www.unrealircd.org/docs/Translating_UnrealIRCd_wiki_pages
For the .conf files the following rules apply:
* You must translate the very latest (English) version of the document(s)
* The translation must be correct. Not just the spelling and grammar,
but also 'technically'. You should therefore have some real experience
with UnrealIRCd.
* Someone, usually the person who translated it, needs to be willing
to actively maintain the docs. This is very important! If docs are
out of date (out-of-synch) there will be confusion among users.
We will remove documents that have been out of date too long (months)
If you want to start translating a document, please send an email to
syzop@unrealircd.org and mention the language you are willing to translate
to.. You will then receive an email back saying you can go ahead (or not).
This is mainly to avoid multiple persons working on the same translation.
=============================================================================
+1060
View File
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
Compiling UnrealIRCd 3.1.x for Windows
--------------------------------------
This document assumes you have a working build environment for
Visual Studio .NET or Visual Studio 6.0. Other versions may work
as well, but have not been tested.
1. Copy include/win32/settings.h and setup.h to include/
2. Copy extras/regex/regex.h to include/
3. Copy extras/regex/regex.c to src/
4. Edit include/settings.h to your liking (pretty much change DOMAINNAME)
5. Unzip src/win32/unrealircd.bmp.gz
6. Execute "nmake makefile.win32"
Congratulations, you should have a functioning win32 binary.
--Luke (luke@unrealircd.com)
+21
View File
@@ -0,0 +1,21 @@
Dynamic Configuration Guide
- Edit ircd.conf to correctly reflect your server configuration.
- Edit networks/unrealircd.conf to suit you. If you're going
to use your own network file (encouraged), change the "Include"
line to point to your own network file.
- Assuming you do want your own network file, copy template.network
in networks/ to yourircnet.network. Edit it to your liking.
If you've completed all these steps *correctly* your server should
start up without any problems. If there are errors, there is an
extremely high chance that it's due to user configuration error.
Please read the documentation and check over your configuration files
before contacting us.
If the problem persists, and you cannot fix it, email luke@unrealircd.com
or come on irc.ircsystems.net and /join #unreal-support.
- Luke (luke@unrealircd.com)
-155
View File
@@ -1,155 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="UnrealIRCd rules - based off Microsoft Native Minimum Rules" Description="These rules focus on the most critical problems in your native code, including potential security holes and application crashes. It is recommended to include this rule set in any custom rule set you create for your native projects." ToolsVersion="10.0">
<Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
<Name Resource="NativeMinimumRules_Name" />
<Description Resource="NativeMinimumRules_Description" />
</Localization>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<!-- Many false positives <Rule Id="C6001" Action="Warning" /> -->
<!-- Many false positives <Rule Id="C6011" Action="Warning" /> -->
<Rule Id="C6029" Action="Warning" />
<Rule Id="C6053" Action="Warning" />
<Rule Id="C6059" Action="Warning" />
<Rule Id="C6063" Action="Warning" />
<Rule Id="C6064" Action="Warning" />
<Rule Id="C6066" Action="Warning" />
<Rule Id="C6067" Action="Warning" />
<Rule Id="C6101" Action="Warning" />
<Rule Id="C6200" Action="Warning" />
<Rule Id="C6201" Action="Warning" />
<Rule Id="C6270" Action="Warning" />
<Rule Id="C6271" Action="Warning" />
<Rule Id="C6272" Action="Warning" />
<Rule Id="C6273" Action="Warning" />
<Rule Id="C6274" Action="Warning" />
<Rule Id="C6276" Action="Warning" />
<Rule Id="C6277" Action="Warning" />
<Rule Id="C6284" Action="Warning" />
<Rule Id="C6290" Action="Warning" />
<Rule Id="C6291" Action="Warning" />
<Rule Id="C6302" Action="Warning" />
<Rule Id="C6303" Action="Warning" />
<Rule Id="C6305" Action="Warning" />
<Rule Id="C6306" Action="Warning" />
<Rule Id="C6328" Action="Warning" />
<!-- <Rule Id="C6385" Action="Warning" /> more false positives -->
<!-- <Rule Id="C6386" Action="Warning" /> the analysis this one does - or lack thereof - is particularly dumb pffff -->
<!-- <Rule Id="C6387" Action="Warning" /> more null/0 false positives -->
<Rule Id="C6500" Action="Warning" />
<Rule Id="C6501" Action="Warning" />
<Rule Id="C6503" Action="Warning" />
<Rule Id="C6504" Action="Warning" />
<Rule Id="C6505" Action="Warning" />
<Rule Id="C6506" Action="Warning" />
<Rule Id="C6508" Action="Warning" />
<Rule Id="C6509" Action="Warning" />
<Rule Id="C6510" Action="Warning" />
<Rule Id="C6511" Action="Warning" />
<Rule Id="C6513" Action="Warning" />
<Rule Id="C6514" Action="Warning" />
<Rule Id="C6515" Action="Warning" />
<Rule Id="C6516" Action="Warning" />
<Rule Id="C6517" Action="Warning" />
<Rule Id="C6518" Action="Warning" />
<Rule Id="C6522" Action="Warning" />
<Rule Id="C6525" Action="Warning" />
<Rule Id="C6527" Action="Warning" />
<Rule Id="C6530" Action="Warning" />
<Rule Id="C6540" Action="Warning" />
<Rule Id="C6551" Action="Warning" />
<Rule Id="C6552" Action="Warning" />
<Rule Id="C6701" Action="Warning" />
<Rule Id="C6702" Action="Warning" />
<Rule Id="C6703" Action="Warning" />
<Rule Id="C6704" Action="Warning" />
<Rule Id="C6705" Action="Warning" />
<Rule Id="C6706" Action="Warning" />
<!-- CppCoreCheck -->
<!-- Span/View over temporary -->
<Rule Id="C26449" Action="Warning" />
<!-- Arithmetic overflow -->
<Rule Id="C26450" Action="Warning" />
<Rule Id="C26451" Action="Warning" />
<Rule Id="C26452" Action="Warning" />
<Rule Id="C26453" Action="Warning" />
<Rule Id="C26454" Action="Warning" />
<!-- Unitialized Member -->
<Rule Id="C26495" Action="Warning" />
<Rule Id="C28021" Action="Warning" />
<!-- <Rule Id="C28182" Action="Warning" /> false positives for dereferencing null ptr -->
<Rule Id="C28202" Action="Warning" />
<Rule Id="C28203" Action="Warning" />
<Rule Id="C28205" Action="Warning" />
<Rule Id="C28206" Action="Warning" />
<Rule Id="C28207" Action="Warning" />
<Rule Id="C28210" Action="Warning" />
<Rule Id="C28211" Action="Warning" />
<Rule Id="C28212" Action="Warning" />
<Rule Id="C28213" Action="Warning" />
<Rule Id="C28214" Action="Warning" />
<Rule Id="C28215" Action="Warning" />
<Rule Id="C28216" Action="Warning" />
<Rule Id="C28217" Action="Warning" />
<Rule Id="C28218" Action="Warning" />
<Rule Id="C28219" Action="Warning" />
<Rule Id="C28220" Action="Warning" />
<Rule Id="C28221" Action="Warning" />
<Rule Id="C28222" Action="Warning" />
<Rule Id="C28223" Action="Warning" />
<Rule Id="C28224" Action="Warning" />
<Rule Id="C28225" Action="Warning" />
<Rule Id="C28226" Action="Warning" />
<Rule Id="C28227" Action="Warning" />
<Rule Id="C28228" Action="Warning" />
<Rule Id="C28229" Action="Warning" />
<Rule Id="C28230" Action="Warning" />
<Rule Id="C28231" Action="Warning" />
<Rule Id="C28232" Action="Warning" />
<Rule Id="C28233" Action="Warning" />
<Rule Id="C28234" Action="Warning" />
<Rule Id="C28235" Action="Warning" />
<Rule Id="C28236" Action="Warning" />
<Rule Id="C28237" Action="Warning" />
<Rule Id="C28238" Action="Warning" />
<Rule Id="C28239" Action="Warning" />
<Rule Id="C28240" Action="Warning" />
<Rule Id="C28241" Action="Warning" />
<Rule Id="C28243" Action="Warning" />
<Rule Id="C28245" Action="Warning" />
<Rule Id="C28246" Action="Warning" />
<Rule Id="C28250" Action="Warning" />
<!-- <Rule Id="C28251" Action="Warning" /> this may be real but it's damn annoying: inconsistent annotation for function -->
<Rule Id="C28252" Action="Warning" />
<Rule Id="C28253" Action="Warning" />
<Rule Id="C28254" Action="Warning" />
<Rule Id="C28262" Action="Warning" />
<Rule Id="C28263" Action="Warning" />
<Rule Id="C28267" Action="Warning" />
<Rule Id="C28272" Action="Warning" />
<Rule Id="C28273" Action="Warning" />
<Rule Id="C28275" Action="Warning" />
<Rule Id="C28279" Action="Warning" />
<Rule Id="C28280" Action="Warning" />
<Rule Id="C28282" Action="Warning" />
<Rule Id="C28285" Action="Warning" />
<Rule Id="C28286" Action="Warning" />
<Rule Id="C28287" Action="Warning" />
<Rule Id="C28288" Action="Warning" />
<Rule Id="C28289" Action="Warning" />
<Rule Id="C28290" Action="Warning" />
<Rule Id="C28291" Action="Warning" />
<Rule Id="C28300" Action="Warning" />
<Rule Id="C28301" Action="Warning" />
<Rule Id="C28302" Action="Warning" />
<Rule Id="C28303" Action="Warning" />
<Rule Id="C28304" Action="Warning" />
<Rule Id="C28305" Action="Warning" />
<Rule Id="C28308" Action="Warning" />
<Rule Id="C28309" Action="Warning" />
<Rule Id="C28350" Action="Warning" />
<Rule Id="C28351" Action="Warning" />
</Rules>
</RuleSet>
Binary file not shown.
-84
View File
@@ -1,84 +0,0 @@
#!/bin/bash
# Exit on any failure:
set -e
# Verbose:
set -x
if [ "$1" != "" ]; then
BUILDCONFIG="$*"
fi
if [[ "$OSTYPE" == "freebsd"* ]]; then
export MAKE="gmake -j4"
else
export MAKE="make -j4"
fi
export CPPFLAGS="-DFAKELAG_CONFIGURABLE -DNOREMOVETMP"
# !! skipped for now: extras/build-tests/nix/select-config $BUILDCONFIG !!
# !! temporary use this:
cp extras/build-tests/nix/configs/default ./config.settings
# Debian 8 workaround:
if lsb_release -av 2>&1|egrep 'Debian.*jessie'; then
echo "Disabling ASan due to false positives on deb8"
echo 'EXTRAPARA="--enable-werror --disable-asan"' >>config.settings
fi
if uname -s|grep -i freebsd; then
echo "Disabling ASan on FreeBSD due to 100% CPU loop in OpenSSL initialization routine"
echo 'EXTRAPARA="--enable-werror --disable-asan"' >>config.settings
fi
# If SSLDIR is set the environment, this overrides config.settings
# Used for example in the openssl3 build tests.
if [ "$SSLDIR" != "" ]; then
echo 'SSLDIR="'"$SSLDIR"'"' >>config.settings
fi
# Read config.settings, this makes a couple of variables available to us.
. ./config.settings
if [ "$SSLDIR" != "" ]; then
# In case we build local openssl/libressl
export LD_LIBRARY_PATH="$SSLDIR/lib"
fi
./Config -quick || (tail -n 5000 config.log; exit 1)
$MAKE
yes ''|make pem
make
./unrealircd module install third/dumpcmds
make install
set +x
echo ""
echo "***********************************************"
echo "UnrealIRCd build & install successful."
echo "***********************************************"
if [[ "$OSTYPE" == "darwin"* ]]; then
otool -L ~/unrealircd/bin/unrealircd
else
ldd ~/unrealircd/bin/unrealircd
fi
if [ "$BUILDCONFIG" = "local-curl" ]; then
# We broke the system significantly earlier that build tests
# won't work (eg: 'git' is uninstallable). Don't bother
# running the tests. I don't expect a 'local-curl' specific
# bug anyway.
exit 0
fi
if [[ "$OSTYPE" == "darwin"* ]]; then
# 'rake' doesn't work. have to figure that one out..
echo "Not running test on OS X for now"
exit 0
fi
echo ""
echo ""
#echo "Now running UnrealIRCd test framework..."
#set -x
#extras/build-tests/nix/run-tests
-24
View File
@@ -1,24 +0,0 @@
#
BASEPATH=$HOME/unrealircd
BINDIR=$HOME/unrealircd/bin
DATADIR=$HOME/unrealircd/data
CONFDIR=$HOME/unrealircd/conf
MODULESDIR=$HOME/unrealircd/modules
LOGDIR=$HOME/unrealircd/logs
CACHEDIR=$HOME/unrealircd/cache
DOCDIR=$HOME/unrealircd/doc
TMPDIR=$HOME/unrealircd/tmp
PRIVATELIBDIR=$HOME/unrealircd/lib
PREFIXAQ="1"
MAXCONNECTIONS="1024"
NICKNAMEHISTORYLENGTH="2000"
DEFPERM="0600"
SSLDIR=""
REMOTEINC=""
CURLDIR=""
SHOWLISTMODES="1"
NOOPEROVERRIDE=""
OPEROVERRIDEVERIFY=""
GENCERTIFICATE="0"
EXTRAPARA="--enable-werror --enable-asan"
ADVANCED=""
-60
View File
@@ -1,60 +0,0 @@
#!/bin/bash
#
# This script fires up a two-server IRC network and runs the test framework
#
# Exit on error:
set -e
# Verbose:
set -x
# Kill old instances
killall -9 unrealircd || true
# Remove old junk
rm -rf cipherscan/ unrealircd-tests/
if [ ! -d ~/cipherscan ]; then
# Install 'cipherscan'
git clone -q https://github.com/mozilla/cipherscan
fi
# Install 'unrealircd-tests'
git clone -q https://github.com/unrealircd/unrealircd-tests.git
cd unrealircd-tests
# FreeBSD has various issues with the tests from us and others,
# better set a flag to keep it simple:
FREEBSD=0
if uname -a|grep -q FreeBSD; then
FREEBSD=1
fi
# Run the test framework, testing both services:
if [ "$FREEBSD" = 1 ]; then
# FreeBSD runs without services since they fail mysteriously:
./run -services none || exit 1
else
# Linux tests both with anope and atheme services:
./run -services anope || exit 1
./run -services atheme || exit 1
fi
# Database writing/reading tests
## unencrypted:
./run -services none -boot tests/db/writing/* || exit 1
./run -services none -keepdbs -boot tests/db/reading/* || exit 1
## encrypted:
./run -services none -include db_crypted.conf -boot tests/db/writing/* || exit 1
./run -services none -include db_crypted.conf -keepdbs -boot tests/db/reading/* || exit 1
# Do cipherscan test at the end
# Has problems on non-Linux-64-bit, so we skip there:
if [ "$FREEBSD" = 0 -a "$HOSTNAME" != "ub18-ia32" ]; then
sleep 2
cd ../extras/tests/tls
./tls-tests
cd -
fi
killall -15 unrealircd atheme-services services anope || true
@@ -1,14 +0,0 @@
#!/bin/bash
#
# This is a simple wrapper script that will run the tests
# When finished, either due to succes or failure,
# it will kill the ircd
#
# Also, it makes sure the job times out (is killed)
# in case it misbehaves
#
set +ex
timeout --kill-after=5 600 extras/build-tests/nix/run-tests
EX="$?"
killall -9 valgrind valgrind.bin memcheck memcheck-amd64-linux memcheck-x86-linux ircd unrealircd val 1>/dev/null 2>&1
exit $EX
-114
View File
@@ -1,114 +0,0 @@
#!/bin/bash
#
# This is a helper script for travis-ci builds and our own FreeBSD test machine.
# It is not meant to be used by end-users
#
function fail()
{
echo "select-config failed: $*"
exit 1
}
function build_ssl {
DIR="$2"
URL="$1/$2.tar.gz"
savewd="$PWD"
cd ~
wget "$URL" || exit 1
tar xzf $DIR.tar.gz
cd "$DIR"
(./configure --prefix=$HOME/ssl 1>/dev/null 2>&1 || ./config --prefix=$HOME/ssl -fPIC 1>/dev/null 2>&1 ) || fail "build_ssl: configure/config failed"
(make -j2 1>/dev/null 2>&1 && make install 1>/dev/null 2>&1) || fail "build_ssl: make failed"
cd "$savewd"
echo "SSLDIR=$HOME/ssl" >>config.settings
}
if [ ! -d extras ]; then
echo "This tool is supposed to be run from the source root, so ~/unrealircd-5.0.x or similar"
exit 1
fi
set -x
# Take default settings as a starter..
cp extras/build-tests/nix/configs/default ./config.settings
# Libtool is required for the other options..
# Also for our FreeBSD machine we have to uninstall some stuff since a clean
# environment is not guaranteed...
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get -qq update
sudo apt-get install libtool -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y libtool
sudo pkg remove -y c-ares
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew update
brew install openssl
else
echo "OS not correctly detected ($OSTYPE). Aborting."
exit 1
fi
echo "*****************************************************************"
echo "SELECTED BUILD OPTIONS: $*"
echo "*****************************************************************"
while [ "$1" ]
do
echo "Processing option $1..."
if [ "$1" = "system-cares" ]; then
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get install libc-ares-dev -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y c-ares
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install c-ares
fi
elif [ "$1" = "system-curl" ]; then
echo 'REMOTEINC=1' >>config.settings
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get install libcurl4-openssl-dev -qq
echo 'CURLDIR=/usr' >>config.settings
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg install -y curl
echo 'CURLDIR=/usr/local' >>config.settings
elif [[ "$OSTYPE" == "darwin"* ]]; then
brew install c-ares curl
echo 'CURLDIR=/usr/local/opt/curl' >>config.settings
fi
elif [ "$1" = "local-curl" ]; then
if [ "$OSTYPE" = "linux-gnu" ]; then
sudo apt-get remove libcurl4-openssl-dev libcurl3-gnutls libcurl3 -qq
elif [[ "$OSTYPE" == "freebsd"* ]]; then
sudo pkg remove -y curl #NOTE: unfortunately this also removes 'git' :D
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "No need to remove curl since it's not installed. Or at least I hope so..."
fi
echo 'REMOTEINC=1' >>config.settings
echo "CURLDIR=`pwd`/extras/curl" >>config.settings
elif [ "$1" = "libressl-27" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.7.5
elif [ "$1" = "libressl-28" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.8.3
elif [ "$1" = "libressl-29" ]; then
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.9.0
elif [ "$1" = "openssl-102" ]; then
build_ssl https://www.openssl.org/source openssl-1.0.2q
elif [ "$1" = "openssl-110" ]; then
build_ssl https://www.openssl.org/source openssl-1.1.0j
elif [ "$1" = "openssl-111" ]; then
build_ssl https://www.openssl.org/source openssl-1.1.1a
else
echo "Unknown option $1"
exit 1
fi
shift
done
if [[ "$OSTYPE" == "darwin"* ]]; then
echo "NOTE: Not building with -Werror for now on macOS..."
else
echo 'EXTRAPARA="--enable-werror"' >>config.settings
fi
-106
View File
@@ -1,106 +0,0 @@
echo on
rem Temporarily hardcoded:
set TARGET=Visual Studio 2019
set SHORTNAME=vs2019
rem Initialize Visual Studio variables
if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
if "%TARGET%" == "Visual Studio 2019" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
rem Installing tools
rem only for appveyor:
rem cinst unrar -y
rem cinst unzip -y
rem cinst innosetup -y
rem Installing UnrealIRCd dependencies
cd \projects
mkdir unrealircd-5-libs
cd unrealircd-5-libs
curl -fsS -o unrealircd-libraries-5-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-5-devel.zip
unzip unrealircd-libraries-5-devel.zip
copy dlltool.exe \users\user\worker\unreal5-w10\build /y
rem for appveyor: cd \projects\unrealircd
cd \users\user\worker\unreal5-w10\build
rem Now the actual build
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
rem The above command will fail, due to missing symbol file
rem However the symbol file can only be generated after the above command
rem So... we create the symbolfile...
nmake -f makefile.windows SYMBOLFILE
rem And we re-run the exact same command:
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Compile dependencies for unrealircd-tests -- this doesn't belong here though..
curl -fsS -o src\modules\third\fakereputation.c https://raw.githubusercontent.com/unrealircd/unrealircd-tests/master/serverconfig/unrealircd/modules/fakereputation.c
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat CUSTOMMODULE MODULEFILE=fakereputation
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Convert c:\dev to c:\projects\unrealircd-5-libs
rem TODO: should use environment variable in innosetup script?
sed -i "s/c:\\dev\\unrealircd-5-libs/c:\\projects\\unrealircd-5-libs/gi" src\windows\unrealinst.iss
rem Build installer file
"c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\windows\unrealinst.iss
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Show some proof
ren mysetup.exe unrealircd-dev-build.exe
dir unrealircd-dev-build.exe
sha256sum unrealircd-dev-build.exe
rem Kill any old instances, just to be sure
taskkill -im unrealircd.exe -f
sleep 2
rem Just a safety measure so we don't end up testing
rem some old version...
del "C:\Program Files\UnrealIRCd 5\bin\unrealircd.exe"
echo Running installer...
start /WAIT unrealircd-dev-build.exe /VERYSILENT /LOG=setup.log
if %ERRORLEVEL% NEQ 0 goto installerfailed
rem Upload artifact
rem appveyor PushArtifact unrealircd-dev-build.exe
rem if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Install 'unrealircd-tests'
cd ..
rd /q/s unrealircd-tests
git clone https://github.com/unrealircd/unrealircd-tests.git
if %ERRORLEVEL% NEQ 0 EXIT /B 1
cd unrealircd-tests
dir
rem All tests except db:
"C:\Program Files\Git\bin\bash.exe" ./runwin
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Test unencrypted db's:
"C:\Program Files\Git\bin\bash.exe" ./runwin -boot tests/db/writing/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
"C:\Program Files\Git\bin\bash.exe" ./runwin -keepdbs -boot tests/db/reading/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
rem Test encrypted db's:
"C:\Program Files\Git\bin\bash.exe" ./runwin -include db_crypted.conf -boot tests/db/writing/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
"C:\Program Files\Git\bin\bash.exe" ./runwin -include db_crypted.conf -keepdbs -boot tests/db/reading/*
if %ERRORLEVEL% NEQ 0 EXIT /B 1
goto end
:installerfailed
type setup.log
echo INSTALLATION FAILED
EXIT /B 1
:end
@@ -1,21 +0,0 @@
rem Build command for Visual Studio 2019
nmake -f makefile.windows ^
LIBRESSL_INC_DIR="c:\projects\unrealircd-5-libs\libressl\include" ^
LIBRESSL_LIB_DIR="c:\projects\unrealircd-5-libs\libressl\lib" ^
SSLLIB="crypto-46.lib ssl-48.lib" ^
USE_REMOTEINC=1 ^
LIBCURL_INC_DIR="c:\projects\unrealircd-5-libs\curl\include" ^
LIBCURL_LIB_DIR="c:\projects\unrealircd-5-libs\curl\builds\libcurl-vc-x64-release-dll-ssl-dll-cares-dll-ipv6-obj-lib" ^
CARES_LIB_DIR="c:\projects\unrealircd-5-libs\c-ares\msvc\cares\dll-release" ^
CARES_INC_DIR="c:\projects\unrealircd-5-libs\c-ares\include" ^
CARESLIB="cares.lib" ^
PCRE2_INC_DIR="c:\projects\unrealircd-5-libs\pcre2\include" ^
PCRE2_LIB_DIR="c:\projects\unrealircd-5-libs\pcre2\lib" ^
PCRE2LIB="pcre2-8.lib" ^
ARGON2_LIB_DIR="c:\projects\unrealircd-5-libs\argon2\vs2015\build" ^
ARGON2_INC_DIR="c:\projects\unrealircd-5-libs\argon2\include" ^
ARGON2LIB="Argon2RefDll.lib" ^
SODIUM_LIB_DIR="c:\projects\unrealircd-5-libs\libsodium\bin\x64\Release\v142\dynamic" ^
SODIUM_INC_DIR="c:\projects\unrealircd-5-libs\libsodium\src\libsodium\include" ^
SODIUMLIB="libsodium.lib" %*

Some files were not shown because too many files have changed in this diff Show More