1
0
mirror of https://github.com/unrealircd/unrealircd.git synced 2026-06-14 22:54:48 +02:00

621 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
stskeeps 4dc498b9fb . 2000-12-14 16:07:31 +00:00
stskeeps 54ba7c7ed2 *** empty log message *** 2000-12-14 16:06:37 +00:00
stskeeps d173324c0d . 2000-12-13 22:15:19 +00:00
stskeeps 799daac44d +[ Unreal4.0 ]
+- Fixed a _serious_ bug in SERVER command, reported by Valen, Forester,
+  M0rpheus and JK.
2000-12-13 22:13:20 +00:00
stskeeps 1cd81ae077 *** empty log message *** 2000-12-13 16:00:04 +00:00
stskeeps 749a4340ca .. 2000-12-13 15:12:45 +00:00
stskeeps 20c0e8d733 *** empty log message *** 2000-12-13 13:12:49 +00:00
stskeeps 4bebd2cb31 *** empty log message *** 2000-12-12 21:44:02 +00:00
codemastr da4333aecf ... 2000-12-12 21:42:03 +00:00
stskeeps c8b1de7cdb . 2000-12-12 21:37:25 +00:00
stskeeps ba924cb7bc +- Made more openssl binary detection using 'which'
+- Added message when trying to join a +z channel
+- New segmentation fault code by Kanzen_Greiver
2000-12-09 15:12:23 +00:00
codemastr 0a58f33c27 fixed a reverse DNS exploit 2000-12-07 21:08:29 +00:00
stskeeps bbaa0b0416 *** empty log message *** 2000-12-05 10:36:00 +00:00
stskeeps d42ae2b5b8 +- Fixed restart bug, reported by RaYmAn 2000-12-03 19:03:38 +00:00
stskeeps b140153d57 +- Some few fixes from CodeM and Barubary:
+  - Fixed /whois to show users for opers when not in the channel.
+  - Fixed /whois to allow only global eyes opers to see user modes.
+  - Fixed /whois to not show idle times of global opers to anyone except
+    another global oper or services.
+  - Fixed /who to show users for opers when not in the channel.
2000-12-03 13:40:11 +00:00
stskeeps cd5548cab8 +- Fixed P:line bug, caused by codemastr(tm) coding, (masskills), reported by
+  sidv@sid-kitty-land.org
2000-12-03 13:13:27 +00:00
stskeeps ceb8171657 +- Fixed a bug in sendto_channel_prefix_tok reported by Strider@ChatCircuit 2000-12-03 11:53:41 +00:00
stskeeps 2d4846bfd6 +- Fixed a chinese nick thing, thanks to miCro and RexHsu
+- Fixed a typo in config.h
2000-12-02 15:36:17 +00:00
stskeeps 25291cc457 +- Fixed a chinese nick thing, thanks to miCro and RexHsu 2000-12-02 15:33:09 +00:00
stskeeps f8a112aa07 +- Fixed a SJOIN bug, i think, thanks to Web 2000-12-02 11:44:57 +00:00
stskeeps 38bcec9991 +[fixes]
+- Fixed a +d bug (it didnt send ` prefixes)
2000-12-02 08:45:12 +00:00
stskeeps 367dfb5d3b . 2000-12-01 22:05:03 +00:00
stskeeps cd69044366 . 2000-12-01 21:10:13 +00:00
stskeeps 5747fda912 . 2000-12-01 20:52:59 +00:00
stskeeps 94927f5a7a . 2000-12-01 19:57:01 +00:00
stskeeps f634ce269b +- SSL error change to sendto_umode(UMODE_JUNK)
+- Fixed a hash error
2000-12-01 19:55:53 +00:00
stskeeps 6fa75f2e9e . 2000-12-01 18:16:34 +00:00
stskeeps 9b14745e47 . 2000-12-01 16:56:03 +00:00
stskeeps 606967c718 +- SSL error change to sendto_umode(UMODE_JUNK) 2000-12-01 16:45:34 +00:00
angel11 3985a7ceed Accidently changed ircd.c =P, fixing 2000-12-01 15:53:52 +00:00
angel11 62cf839f2e Fixed axenet network file 2000-12-01 15:49:04 +00:00
stskeeps f0e2d2cb61 +- Config change in SSL.h detection part 2000-12-01 15:43:28 +00:00
stskeeps 6d64f0b505 + thanks to RexHsu and Aim
+- Fixed up CHINESE_NICK and JAPANESE_NICK, suggested by Aim, see
+  include/config.h
2000-12-01 13:59:05 +00:00
stskeeps d2d806697b +- #define CHINESE_NICK will make you able to use chinese nicks
+  thanks to RexHsu and Aim
2000-12-01 12:13:03 +00:00
stskeeps ae0dcf2bbf +- Fixed compile error found by Headbang 2000-12-01 11:57:35 +00:00
stskeeps cb0cbda5ed +- Changed CONNECTTIMEOUT to 30sec
+- Changed some _more_ credits
2000-12-01 11:49:36 +00:00
stskeeps 5d04afc6c2 +- Added infofield in /stats L for clients/listeners
+- Fixed a blocking socket thing
+- Fixed up /stats L bug
2000-12-01 11:31:23 +00:00
stskeeps 9955724ef9 +- Added infofield in /stats L for clients/listeners 2000-12-01 11:19:11 +00:00
stskeeps 052bcc180d +- Fixed a real bad /whois bug, reported by BiGi
+- Fixed a problem with /sajoin .. atleast possible
2000-12-01 09:49:20 +00:00
stskeeps b791a8eae9 . 2000-12-01 05:36:42 +00:00
stskeeps 143a7b6566 . 2000-12-01 04:45:33 +00:00
stskeeps fc2bf10e3a +- Fixed a real bad /whois bug, reported by BiGi 2000-11-30 18:24:44 +00:00
stskeeps 290495c0ad . 2000-11-30 18:06:31 +00:00
stskeeps 07a6922d5c . 2000-11-30 18:04:43 +00:00
stskeeps 59a23b3ce6 . 2000-11-30 18:03:06 +00:00
stskeeps df07c7f133 . 2000-11-30 18:01:41 +00:00
stskeeps 17932efad0 . 2000-11-30 17:59:09 +00:00
stskeeps 82a657a63e +- Fixed a /whois bug, reported by BiGi 2000-11-30 17:56:53 +00:00
stskeeps 12c9891916 . 2000-11-30 17:53:30 +00:00
stskeeps 9511d161c6 . 2000-11-30 17:08:06 +00:00
stskeeps 1e39df2cb8 . 2000-11-30 16:50:35 +00:00
stskeeps 6cdc422490 *** empty log message *** 2000-11-30 16:49:22 +00:00
stskeeps d6247b9a19 +- Added some credits 2000-11-30 16:45:17 +00:00
stskeeps a896d4f71d +- Added hatblade's files 2000-11-30 16:39:29 +00:00
stskeeps ef7c0d6672 . 2000-11-30 13:31:06 +00:00
stskeeps 7adf05ab64 +- Added SICI information, Donation information, fixed a ./Config problem
+  overwriting certs ..
2000-11-30 13:16:00 +00:00
stskeeps 4eda3e1752 +- Fixed a typo in ssl.c 2000-11-30 11:19:54 +00:00
stskeeps d7a342fed1 +- If a +r user is /who'ed, it shows a "r" in flags field. Suggested by
+  Mirar.
2000-11-30 07:16:41 +00:00
stskeeps 8894015354 +- Fixed overflow in SJOIN
+- Added SMO *, all users
2000-11-29 21:03:41 +00:00
stskeeps 9019f35565 +- Fixed some /whois channels code, which may break +I /whois 2000-11-28 07:19:05 +00:00
codemastr 92cdd762c4 added code to makenet to stop fake submissions 2000-11-26 20:33:43 +00:00
stskeeps 8dce2d175c +- Removed "on network" in /whois oper 2000-11-26 10:31:10 +00:00
codemastr 2b78d45287 fixed a /map bug where U:lines were showed when HIDE_ULINES was set 2000-11-25 20:45:38 +00:00
stskeeps fd6eed4477 . 2000-11-25 13:43:48 +00:00
codemastr 7461b22a16 updated docs 2000-11-24 18:07:30 +00:00
codemastr 0588f18cbb ... 2000-11-24 16:41:59 +00:00
stskeeps b318e6a66a +- Added some network files and even more network files
+- Fixed some copyright stuff in ssl.c
+- Fixed a /map problem
2000-11-24 15:05:18 +00:00
stskeeps 4e26bd1379 . 2000-11-24 06:13:51 +00:00
codemastr dba0d3b7c0 added more network files 2000-11-24 01:24:44 +00:00
codemastr 9159c377de added some network files 2000-11-23 21:08:02 +00:00
stskeeps 4712fe781c +- Added some more support for some even more SJB64 stuff 2000-11-23 19:37:16 +00:00
codemastr d0f4a514d4 added some SJB64 stuff 2000-11-23 19:25:12 +00:00
codemastr 6c59c5b733 removed CRYPTOIRCD 2000-11-23 19:08:02 +00:00
stskeeps 8c96800c80 +- Removed last point of confusion in ALN/NS 2000-11-23 18:52:57 +00:00
stskeeps 7df008ead4 +- Changed some stuff with SSL, you may want to seperate server.pem into
+  server.key.pem and server.cert.pem (or "rm Makefile" and "./Config")
+- Fixed a couple of SJOIN/Link problems detected by Curt|s
2000-11-22 20:38:00 +00:00
codemastr 7b068178a1 fixed a mass G:line bug in /rehash 2000-11-22 19:34:14 +00:00
stskeeps e4a1669632 . 2000-11-22 15:15:47 +00:00
stskeeps bba7e664b6 +- Added so /gline and /shun accepts time periods in 1d2h3s etc. a recode of
+  some potvin stuff
+- Added so blocking is only effective when SSL_connect()'ing
2000-11-22 12:25:28 +00:00
stskeeps 108639b960 +- Fixed cutoff server infos in synch 2000-11-22 07:14:03 +00:00
stskeeps 7a3d7c8b7f +- Added OPT target OPT_SJB64 and OPT_NOT_SJB64
+- Made SSL server<->server work, using __blocking__ sockets (this is only
+  in connect moment thou) -stskeeps
+- Removed 1.0 msg/s when not in HTM
2000-11-21 21:46:19 +00:00
stskeeps 32f0e3f871 *** empty log message *** 2000-11-21 19:39:54 +00:00
stskeeps 678ac0f7cf +- Added SJOIN (SJ3 only) instead of JOIN/MODE in /join and discovered a bug in
+  SJOIN code, that if the line doesnt have a " " appeneded, it wont take the
+  last users or first for that sake. Hopefully patched SJ3 code for it
+- Added OPT target OPT_SJB64 and OPT_NOT_SJB64
2000-11-21 18:42:45 +00:00
stskeeps f6a0415148 +- Fixed-fixed-fixed the U:line branching thing made by codemastr
+- Fixed a G: line-turn-into Z:line problem, reported by eYe-Man
2000-11-21 16:33:58 +00:00
stskeeps 0505a1ff50 +- Removed remapping fds, and did a severe select() speedup, suggested by
+  Demiurgus. Should speed CPU a lot
2000-11-19 22:22:43 +00:00
codemastr 5b515b86b4 updated some messages 2000-11-19 20:37:50 +00:00
stskeeps af8b08775d +- Fixed-fixed-fixed the \r\n bug and removed some useless cpu wasting code 2000-11-19 20:29:43 +00:00
stskeeps ae3936aca5 +- Fixed \r\n bug, hopefully
+- made SSL use same cert client/server
+- Fixed help.c bug reported by Curt|s
+- Different fixes, unreal.tspre.org -> unrealircd.com
2000-11-19 19:45:02 +00:00
stskeeps 3a5e5ee45a +- Fixed the masskill bug, hopefully. Was a delimiter/number array bug in
+  find_server_b64_or_real, causing negative base64 to be accepted (bad).
+  value 1-256 will never be able to be in two letters (a server name)
2000-11-19 18:26:20 +00:00
stskeeps e6b2159245 +- Fixed the "Bad file descriptor" bug in SSL. This bugfix may be a bit risky
+  as it is manipulating BIO fds. The reason openssl freaked at this, was
+  that when a fd is closed, we change fds from 4 to 3 etc, in other words,
+  we renumber fds. SSL didn't know this and if you would call SSL_set_fd it
+  would close the connection/crash. Added SSL_change_fd() to change the FD
+  directly through BIO_set_fd.
2000-11-19 18:05:03 +00:00
codemastr 4639a2b229 Replaced +I with +V in an error message 2000-11-17 00:18:16 +00:00
stskeeps 648677c637 +- Fixed +d (deaf) so it works again
+- Fixed a SJOIN3<->services problem
2000-11-16 09:02:54 +00:00
codemastr 0c9f2aa846 Removed some leftovers from the &channel code (which fixed a minor bug as well) 2000-11-15 23:33:14 +00:00
codemastr ef3397baf6 TODO updated 2000-11-12 22:15:16 +00:00
stskeeps 293125eb84 +- #define STATSWRITING will make ircd write ircd.stats every 4 seconds,
+  idea/sortof by WaveRide
+    Format of ircd.stats:
+       <global users>
+       <global invisible users>
+       <global servers>
+       <irc operators>
+       <unknown connections>
+       <local clients>
+       <local servers>
+       <local max clients>
+       <global max clients>
2000-11-12 17:57:05 +00:00
stskeeps 7e8ecc7dac +- Fixed NO_OPEROVERRIDE bug reported by otherguy 2000-11-12 15:04:33 +00:00
stskeeps 7debfeb86a . 2000-11-10 21:05:54 +00:00
stskeeps 02582580dd +- Added /botserv /bs command, patch by ATHnet.de 2000-11-10 21:01:11 +00:00
drbin 50d67017fc removing accidental commit 2000-11-10 20:37:22 +00:00
stskeeps 5b6dbb1e54 fixes 2000-11-10 14:34:34 +00:00
stskeeps 98c6c668ae . 2000-11-07 14:47:50 +00:00
stskeeps 9dfc0828f9 . 2000-11-07 14:41:38 +00:00
stskeeps 5a93d1a5e9 +- Fixed the masskill bug with replacing "Server Exists" code.. i removed it
+  accidentialy last time
2000-11-07 05:51:14 +00:00
codemastr f97882d2bb fixed some bugs 2000-11-05 20:29:54 +00:00
stskeeps 41e02c72a0 +- Fixed compile error with SSL 2000-11-05 19:36:11 +00:00
stskeeps e64c18860f . 2000-11-05 18:15:55 +00:00
codemastr 6510adeb23 memory clean ups 2000-11-04 19:02:24 +00:00
stskeeps f954969f7d +- Possible fixed a internal server list bug 2000-11-02 17:14:47 +00:00
stskeeps fea8930bb2 +- Autodetects /usr/sbin/openssl now, thanks trinity
+- Fixes a missing : in SJOIN
2000-11-01 06:13:54 +00:00
codemastr d51af6f8b5 tokenized PING and PONG 2000-10-30 21:47:54 +00:00
stskeeps 6d9e619b26 +- Possible fixed some b64 bugs 2000-10-30 15:46:44 +00:00
stskeeps 2fd3104391 . 2000-10-29 18:48:15 +00:00
stskeeps bea668a89f +- Probably fixed the hash bug, again. 2000-10-29 18:19:44 +00:00
codemastr c2de53cf85 Fixed the /list showing only 64 channels bug 2000-10-29 18:02:59 +00:00
stskeeps d0404fd0e8 +- Added TS2ts (supporting the SJB64 stuff), and fixed the !0 timestamp bug 2000-10-29 17:25:08 +00:00
stskeeps 4fb309fbde -- Fixed a wierd channel message bug
+- Fixed a wierd channel message bug ||
+- Fixed a bug where non-NS servers would crash when linking
2000-10-29 16:08:20 +00:00
stskeeps e50d397e93 . 2000-10-29 12:22:19 +00:00
stskeeps 8735a0f6bf . 2000-10-29 12:17:49 +00:00
stskeeps b6e61e1302 +- Fixed bug where duplicate numerics could occur
+- Fixed the hashing bug (thank you ROXnet ...)
2000-10-29 10:57:18 +00:00
stskeeps 2353bd2011 . 2000-10-29 10:40:31 +00:00
stskeeps 56dc3a3e1d . 2000-10-29 09:17:19 +00:00
stskeeps 856282da07 +- Fixed a linking bug (where did that come from) 2000-10-29 08:14:43 +00:00
stskeeps cdea0263ac +- Fixed the /list bug, reported by many people 2000-10-28 22:40:28 +00:00
stskeeps 4400b32055 +- Added some fixes on the SJB64 crashing bug, and added tokenization in
+  channel messsages (yahooooo!)
2000-10-28 20:57:24 +00:00
codemastr 714c97b006 Added chmode +N - no nick changes 2000-10-28 19:04:09 +00:00
codemastr 2c5abc8c2d removed sendto_helpops 2000-10-28 17:07:51 +00:00
stskeeps 00b464154b +- Fixed the SJB64 bugs that misplaced users 2000-10-28 15:42:27 +00:00
codemastr e534e67628 made use of ircsprintf in more places 2000-10-27 22:28:41 +00:00
codemastr 10bc9a408b made IsULine take 1 param 2000-10-27 20:50:58 +00:00
codemastr 8a95221fae various fixes 2000-10-26 22:12:47 +00:00
stskeeps 71bdc5c08d +- Added protoctl SJB64, which adds B64-9 timestamps to many timestamping
+  operations
+- Added ircsprintf %B (base64-9^10) with ! as prefix, and %b (no prefix)
2000-10-26 17:09:35 +00:00
stskeeps 857b3c3a84 +[Unreal3.1.1-Darkshades]
+- Fixed a warning in CENSOR_QUIT
+- Fixed the G:Line user wrongly matching (ip-alike addys didnt check user)
2000-10-26 16:01:32 +00:00
stskeeps 7eb9d0e71a +- Made find_server_b64_or_real be a little faster, possible fixing bug
+- Made /stats s checking check for sanity or insanity (ignore them for 0
+  numerics)
+- Fixed SJOIN (mp2parv) bug, that caused insane desynchs
+- Changed Cannot find server message to be to sendto_realops
+- Fixed a warning in CENSOR_QUIT
2000-10-26 13:50:44 +00:00
stskeeps f4fde73489 . 2000-10-25 18:32:45 +00:00
stskeeps 14bb1968ba Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.258
diff -u -r1.1.1.1.2.1.2.1.2.258 Changes
--- Changes	2000/10/22 17:51:31	1.1.1.1.2.1.2.1.2.258
+++ Changes	2000/10/25 18:26:37
@@ -638,3 +638,5 @@
 - Merged in changes from TEMPcvs branch
 - Fixed a /UNSQLINE para problem, found by Joe
 - #define SHOW_SECRET now allows all ircops to see +s channels in /whois.  If not defined, only net/tech admins can.
+- Added #define CENSOR_QUIT, for WaveRide
+- Fixed hashing bug that caused the server to crash on exit
2000-10-25 18:26:40 +00:00
angel11 ee31dd9fa0 Changed the way +s channels show up in /whois 2000-10-22 17:51:31 +00:00
stskeeps 30be1fa550 +- Fixed a /UNSQLINE para problem, found by Joe 2000-10-22 06:35:50 +00:00
stskeeps aa0ac19e18 +- Changed ./Config to detect SSL better, and generate certificates properly
+- Removed some annoying logging in ssl.c
+- Merged in changes from TEMPcvs branch
2000-10-21 06:56:22 +00:00
stskeeps 8c481239de +- Made SHOWCONNECTNOTICES work properly again, also with SSL 2000-10-07 18:51:36 +00:00
codemastr 8297e30cd4 .. 2000-10-07 18:28:19 +00:00
codemastr 0983f82c08 Added some P:line flags 2000-10-07 18:08:08 +00:00
stskeeps 554f1a0c15 +- Added SSL connections, open ports with P:ip:s:*:port to make them SSL
+  ports, made after hq.alert.sk's implementation
2000-10-07 06:34:33 +00:00
stskeeps e94bf80328 SSL support for UnrealIRCD! 2000-10-07 06:33:42 +00:00
stskeeps 5b3b13772b *** empty log message *** 2000-10-04 18:22:07 +00:00
stskeeps 32122c7018 .. 2000-09-17 15:24:01 +00:00
drbin a1b617b6d0 *** empty log message *** 2000-09-17 15:19:54 +00:00
drbin a46f14412d Fixed Bug in Win32 New DNS system ... bloody pointers and locking 2000-09-17 15:18:05 +00:00
drbin 0f2dd2ef18 NewDNS System 2000-09-17 11:43:36 +00:00
cvs2hg bfb98ee28f fixup commit for tag 'unreal3_1_sf' 2000-09-17 10:11:43 +00:00
stskeeps b0c04f4b43 . 2000-09-17 10:11:42 +00:00
stskeeps 362ec0b08d +- Fixed the passwd NICK problem 2000-09-16 19:39:33 +00:00
stskeeps b3fc0f5d6b +- FIXED "BUG" caused by NEWDNS *shrug* 2000-09-16 18:21:29 +00:00
drbin 40075204f0 NewDNS 2000-09-15 20:42:06 +00:00
drbin 9de62da6f3 NewDNS syetem 2000-09-15 20:32:19 +00:00
drbin 98047de919 New DNS UPDATE 2000-09-15 20:16:11 +00:00
stskeeps 29b4c9c983 +- Possible fixed the SJOIN kick bug (mode +Q), servers can now always kick 2000-09-10 18:08:39 +00:00
stskeeps 5392dd8acf +- Fixed /mode # + bug reported by PhatNet/Mind 2000-09-09 20:34:16 +00:00
codemastr 8f561e9337 added LIST_SHOW_MODES to list chmodes in /list 2000-09-09 19:21:47 +00:00
codemastr 6a356f7e2d fixed -Wall warnings 2000-09-08 21:58:11 +00:00
codemastr 978dd4071e Major changes to the way +I works 2000-09-07 21:10:40 +00:00
angel11 72cd2b5e99 Fixed two files that got screwed up in commit (my bad) 2000-09-04 20:18:25 +00:00
angel11 0fdef4f961 Away msgs no longer in whowas 2000-09-04 20:06:12 +00:00
codemastr 73e45d7537 fixed some +K bugs 2000-09-04 19:39:19 +00:00
stskeeps 493ba9981f +- Modified and fixed the NOTICE bug totally, with some waste of the nospoof
+  system
2000-09-03 18:16:25 +00:00
stskeeps cd4349598d +- Fixed a wierd NOTICE bug 2000-09-03 16:54:16 +00:00
stskeeps 537a91666e +- Fixed some REAL dumb find_server_quick bugs 2000-09-03 16:35:30 +00:00
drbin b6dee3fd9d *** empty log message *** 2000-09-02 21:48:28 +00:00
drbin 6cbcc627cf *** empty log message *** 2000-09-02 21:32:59 +00:00
drbin 2bb36dd76c *** empty log message *** 2000-09-02 20:58:40 +00:00
drbin e486efb289 *** empty log message *** 2000-09-02 20:48:41 +00:00
drbin 5c0151f976 Simple Usage Docs for wircd 2000-09-02 20:39:30 +00:00
drbin c5b7e0c1e7 *** empty log message *** 2000-09-02 20:24:33 +00:00
drbin 88c77ce89e *** empty log message *** 2000-09-02 20:16:31 +00:00
codemastr e85a37b814 removed /users and all utmp calls 2000-09-02 17:37:35 +00:00
codemastr a7ee96c3ce fixed a bug when running the ircd with -h 2000-09-02 16:32:28 +00:00
drbin 377d9554d3 Fixed previous thing again 2000-09-02 16:03:15 +00:00
drbin ea41e25761 fixed "if (sptr->passwd[0])" causing win32 fault 2000-09-02 15:50:07 +00:00
stskeeps f564867259 . 2000-09-02 11:34:35 +00:00
stskeeps 23438196eb Fixed a NOTICE bug 2000-09-02 07:52:18 +00:00
stskeeps 55a0b03f03 . 2000-09-02 07:48:52 +00:00
codemastr e68c66b260 ... 2000-09-01 21:09:21 +00:00
codemastr 7cbbef2e36 Made aClient->passwd dynamically allocated 2000-09-01 20:52:00 +00:00
codemastr ecdce7061b Made cached MOTDs dynamically allocated 2000-09-01 20:13:55 +00:00
codemastr 87ca77c48e made some updates to ./update 2000-09-01 15:49:31 +00:00
codemastr cca7cffb93 Fixed some morew -Wall warnings 2000-09-01 14:28:17 +00:00
codemastr bb4f0e3393 fixed some -Wall warnings, and removed all unused vars 2000-08-31 22:05:34 +00:00
stskeeps d83fb7d37f + - Added WHOIS command (working) to IRCbot-
+- Fixed a fun doublechar token problem (the AA unknown command)
2000-08-26 19:26:02 +00:00
stskeeps c07a9207ca +- Added IRCd bot (raw commands) and the IRC bot, webtv.c 2000-08-26 19:05:09 +00:00
stskeeps 7cde16eac1 +- Added IRCd bot (raw commands) and the IRC bot, webtv.c 2000-08-26 15:52:44 +00:00
stskeeps e03c9bdf42 +- Fixed another SJOIN problem, but not the exact one i was looking for 2000-08-26 14:24:22 +00:00
stskeeps 582e6b9f30 +- Removed SUMMON totally 2000-08-25 19:39:54 +00:00
stskeeps ad8a1bf785 +- More memory cleanups, changed aClient->refcnt to a signed char,
+  aClient->hopcount to unsigned char
+- Changed aChannel->mode.msgs & .per to unsigned short, and changed
+  .kmode to unsigned char
+- Changed aChannel->users to unsigned short (max 65536 users per channel)
+  and FloodOpt->nmsg to an unsigned short
2000-08-25 19:30:41 +00:00
codemastr 3e6f1fce93 more memory cleanups 2000-08-25 19:20:54 +00:00
codemastr 18dde16b11 memory cleanups 2000-08-25 18:40:09 +00:00
stskeeps d3cfcdc6b0 - Removed the ERR_NOTONCHANNEL message in numeric.c =P 2000-08-25 17:52:44 +00:00
stskeeps cccda143b1 Last part of fix 2000-08-25 17:32:24 +00:00
stskeeps 649b5d812e -
+- Fixed the G:line bugs, i hope - moved tkl_sweep into a loopstruct
2000-08-25 17:29:24 +00:00
stskeeps e3339d4003 eek 2000-08-25 16:20:41 +00:00
stskeeps 1786f8f03b same as above 2000-08-25 16:18:57 +00:00
stskeeps c28527ade3 . 2000-08-25 16:18:11 +00:00
stskeeps 90f0809b44 . 2000-08-25 15:41:37 +00:00
stskeeps dc5f3390bc . 2000-08-22 15:40:28 +00:00
stskeeps 25760a38f1 . 2000-08-22 15:40:27 +00:00
stskeeps 18c669cf47 .. 2000-08-22 15:30:56 +00:00
cvs2hg ae21e16beb fixup commit for tag 'unreal3_1_plus' 2000-08-20 11:58:24 +00:00
stskeeps 623f6a44a0 . 2000-08-20 11:58:23 +00:00
stskeeps 4981573f80 +- Fixed /server so it doesnt support SERVER name :info anymore.. 2000-08-20 08:21:46 +00:00
stskeeps cb5de25f7e . 2000-08-20 08:04:39 +00:00
stskeeps ae1a133435 +- Made /kick for opers only be possible for netadmin/techadmin 2000-08-20 08:03:13 +00:00
stskeeps fc1a6c313b +- Fixed ban merging/similar bug in SJOIN 2000-08-19 17:48:58 +00:00
stskeeps 601d97dd93 +- Fixed some problems/typos/notlookingsogood (TM) bugs, in the tkl code 2000-08-19 17:44:44 +00:00
codemastr b69361e947 fixed a typo in /vhost 2000-08-19 17:25:38 +00:00
stskeeps c064f9d5e9 +- Removed INV_TRACK 2000-08-19 15:09:38 +00:00
stskeeps fe866e500b . 2000-08-19 15:06:57 +00:00
stskeeps 0bb293925d +- Made vhost strip too long vhosts 2000-08-19 14:40:42 +00:00
stskeeps fe95cb9a1f + and dynconf, chrestrict 2000-08-19 14:28:23 +00:00
stskeeps cd277778a3 . 2000-08-19 13:59:45 +00:00
stskeeps 7bc10582c5 +- Added some portability stuff 2000-08-19 13:49:35 +00:00
stskeeps b93a3e9e93 Checkmate 2000-08-19 13:36:02 +00:00
stskeeps 06a6b4c07f Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.201
diff -u -r1.1.1.1.2.1.2.1.2.201 Changes
--- Changes	2000/08/18 19:04:02	1.1.1.1.2.1.2.1.2.201
+++ Changes	2000/08/19 10:08:57
@@ -560,3 +560,4 @@
 - Added IRIX support (does it work?)
 - Fixed crypter so it actually functions (Makefile now sets mode 700) and
   it encrypts X and N lines too.
+- Fixed empty mode sends in register_user, reported by Bagge
2000-08-19 10:08:58 +00:00
angel11 34b46855a2 Fixed crypter 2000-08-18 19:04:02 +00:00
codemastr 65393c21ca *** empty log message *** 2000-08-18 16:44:35 +00:00
codemastr 0c9fd1139c added IRIX support (does it work?) 2000-08-18 16:44:06 +00:00
codemastr d5da9ddb9e fixed a +h bug 2000-08-18 16:14:24 +00:00
stskeeps 70873bcf00 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.197
diff -u -r1.1.1.1.2.1.2.1.2.197 Changes
--- Changes	2000/08/17 19:27:59	1.1.1.1.2.1.2.1.2.197
+++ Changes	2000/08/18 16:02:24
@@ -555,3 +555,4 @@
   badwords :P, does not work in channels
 - Removed the old GLINE system, TKL is now standard.
 - Added INV_TRACK define, we want people testing this.
+- Fixed the -1 usercount bug, found by codemastr, fixed by Stskeeps
2000-08-18 16:02:25 +00:00
stskeeps a3ec5a5fb8 +- Removed the old GLINE system, TKL is now standard.
+- Added INV_TRACK define, we want people testing this.
2000-08-17 19:28:00 +00:00
stskeeps c0f596fbb7 + badwords :P, does not work in channels
+- Removed the old GLINE system, TKL is now standard.
\ No newline at end of file
2000-08-16 16:51:55 +00:00
stskeeps 4ae6cd2bf4 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.194
diff -u -r1.1.1.1.2.1.2.1.2.194 Changes
--- Changes	2000/08/13 19:03:33	1.1.1.1.2.1.2.1.2.194
+++ Changes	2000/08/15 19:42:31
@@ -550,3 +550,6 @@
 - Fixed a bug with mkpasswd on OpenBSD
 - Added desynch +e warning, and updated ./update enough ...
 - Updated update to work better, and that you can use lynx instead of wget
+- Added #undef SHUN_NOTICES, to add notices for users who are shunned
+- Fixed bug with U:Lines should be able to privmsg/notice and recieve
+  badwords :P, does not work in channels
\ No newline at end of file
2000-08-15 19:42:32 +00:00
codemastr 242d9ab45d ... 2000-08-14 18:47:12 +00:00
stskeeps a4d4b20b2c Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.193
diff -u -r1.1.1.1.2.1.2.1.2.193 Changes
--- Changes	2000/08/13 17:28:30	1.1.1.1.2.1.2.1.2.193
+++ Changes	2000/08/13 19:03:33
@@ -548,4 +548,5 @@
   problem
 - Hopefully fixed the +x problem
 - Fixed a bug with mkpasswd on OpenBSD
-- Added desynch +e warning, and updated ./update enough ...
\ No newline at end of file
+- Added desynch +e warning, and updated ./update enough ...
+- Updated update to work better, and that you can use lynx instead of wget
2000-08-13 19:03:33 +00:00
stskeeps d42135097a . 2000-08-13 18:34:04 +00:00
stskeeps 9c4d0c511a . 2000-08-13 17:28:30 +00:00
stskeeps 85790c8442 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.191
diff -u -r1.1.1.1.2.1.2.1.2.191 Changes
--- Changes	2000/08/13 16:09:57	1.1.1.1.2.1.2.1.2.191
+++ Changes	2000/08/13 17:24:47
@@ -548,3 +548,4 @@
   problem
 - Hopefully fixed the +x problem
 - Fixed a bug with mkpasswd on OpenBSD
+- Added desynch +e warning, and updated ./update enough ..
\ No newline at end of file
2000-08-13 17:24:48 +00:00
codemastr c0c478112f Fixed a bug with mkpasswd on OpenBSD 2000-08-13 16:09:58 +00:00
cvs2hg 5406e9fa99 fixup commit for tag 'unreal3_1_fixpack1' 2000-08-13 15:29:15 +00:00
stskeeps 030b9c8291 cvs diff -u Changes 2000-08-13 15:29:14 +00:00
stskeeps 4493453545 . 2000-08-13 15:03:06 +00:00
stskeeps df0a433709 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.187
diff -u -r1.1.1.1.2.1.2.1.2.187 Changes
--- Changes	2000/08/11 19:31:50	1.1.1.1.2.1.2.1.2.187
+++ Changes	2000/08/13 14:39:47
@@ -543,3 +543,4 @@
 - Added Dianora's /userhost
 - Recoded /links using NS
 - Recoded /map a bit using NS, and added usercounts to Server struct
+- Some crazy time_t -> TS stuff, will save us some time in 2038
2000-08-13 14:39:49 +00:00
stskeeps 6c3bbf0009 *** empty log message *** 2000-08-11 19:34:45 +00:00
stskeeps bf7a3d3133 +- Recoded /map a bit using NS, and added usercounts to Server struct 2000-08-11 19:31:51 +00:00
stskeeps fb602a74e4 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.185
diff -u -r1.1.1.1.2.1.2.1.2.185 Changes
--- Changes	2000/08/11 18:01:14	1.1.1.1.2.1.2.1.2.185
+++ Changes	2000/08/11 18:34:57
@@ -541,3 +541,4 @@
 - Fixed a STRIPBADWORDS bug
 - Fixed a BotMOTD bug
 - Added Dianora's /userhost
+- Recoded /links using NS
2000-08-11 18:34:58 +00:00
stskeeps 040d480e99 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.184
diff -u -r1.1.1.1.2.1.2.1.2.184 Changes
--- Changes	2000/08/08 22:29:15	1.1.1.1.2.1.2.1.2.184
+++ Changes	2000/08/11 18:01:13
@@ -540,3 +540,4 @@
 - Fixed a PART bug
 - Fixed a STRIPBADWORDS bug
 - Fixed a BotMOTD bug
+- Added Dianora's /userhost
2000-08-11 18:01:15 +00:00
codemastr c90d13174d fixed a botmotd bug 2000-08-08 22:29:16 +00:00
codemastr 97e41a7e42 various fixes 2000-08-08 17:22:36 +00:00
stskeeps 7b6582bdcc . 2000-08-08 04:48:46 +00:00
stskeeps 5fde2907f5 *** empty log message *** 2000-08-07 17:48:06 +00:00
cvs2hg 71ce47a71b fixup commit for tag 'unreal3_1_final' 2000-08-07 17:21:49 +00:00
cvs2hg 98b483ee88 fixup commit for tag 'unreal3_1' 2000-08-07 17:21:48 +00:00
stskeeps 4ee74b07e3 *** empty log message *** 2000-08-07 17:21:47 +00:00
stskeeps d33f4a8120 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.179
diff -u -r1.1.1.1.2.1.2.1.2.179 Changes
--- Changes	2000/08/07 16:16:14	1.1.1.1.2.1.2.1.2.179
+++ Changes	2000/08/07 16:56:17
@@ -530,3 +530,4 @@
   Config, and all the things we want them to read/do to compile the IRCd
 - Updated PREFIX Client Protoctl
 - Added ^MrMike^'s command list, this one will be updated
+- Removed ID_CVS, hopefully fixing some bastard stuff
2000-08-07 16:56:31 +00:00
stskeeps b7920658e4 *** empty log message *** 2000-08-07 16:16:58 +00:00
stskeeps 135b4d9d87 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.178
diff -u -r1.1.1.1.2.1.2.1.2.178 Changes
--- Changes	2000/08/07 16:08:24	1.1.1.1.2.1.2.1.2.178
+++ Changes	2000/08/07 16:16:14
@@ -529,3 +529,4 @@
 - Added script ./Setup which makes the user forced through Unreal.nfo, FAQ,
   Config, and all the things we want them to read/do to compile the IRCd
 - Updated PREFIX Client Protoctl
+- Added ^MrMike^'s command list, this one will be updated
2000-08-07 16:16:15 +00:00
codemastr 8af8d17d52 fixed PREFIX= 2000-08-07 16:08:24 +00:00
stskeeps d11a065d37 *** empty log message *** 2000-08-07 16:05:37 +00:00
stskeeps 771dee3a5f *** empty log message *** 2000-08-07 15:50:44 +00:00
stskeeps ea519e2a6d . 2000-08-07 15:12:10 +00:00
stskeeps 9ddffa08ea *** empty log message *** 2000-08-07 15:11:11 +00:00
stskeeps 1e7c36aac0 +- Added script ./Setup which makes the user forced through Unreal.nfo, FAQ,
+  Config, and all the things we want them to read/do to compile the IRCd
2000-08-07 15:09:06 +00:00
stskeeps 3de653cbf2 . 2000-08-07 15:03:10 +00:00
stskeeps 4a08c9ba70 *** empty log message *** 2000-08-07 14:52:24 +00:00
stskeeps b750382333 . 2000-08-07 12:49:22 +00:00
stskeeps 98eb86460b . 2000-08-06 15:22:44 +00:00
stskeeps 3026350806 +- Made find_server_quick a prototype, and made some work more quicker as
+  well
2000-08-06 13:29:46 +00:00
stskeeps da3100e642 +- Changed some find_server(name, NULL) to find_server_quick to speed up
+  lookup of servers
2000-08-06 13:21:52 +00:00
stskeeps 6c1cefed98 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.171
diff -u -r1.1.1.1.2.1.2.1.2.171 Changes
--- Changes	2000/08/06 08:25:18	1.1.1.1.2.1.2.1.2.171
+++ Changes	2000/08/06 13:01:54
@@ -518,3 +518,5 @@
 - Updated ./ircd to also say to look at ircd.log
 - Fixed a SQLINE synch bug
 - Added command line option -F to prevent the ircd to fork out
+- Fixed the f*cken TKL bug
+- Fixed a netsplit bug
2000-08-06 13:01:56 +00:00
stskeeps 6f7b608fac Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.170
diff -u -r1.1.1.1.2.1.2.1.2.170 Changes
--- Changes	2000/08/06 08:06:36	1.1.1.1.2.1.2.1.2.170
+++ Changes	2000/08/06 08:24:08
@@ -517,3 +517,4 @@
   the ircd logs it to ircd.log and dies
 - Updated ./ircd to also say to look at ircd.log
 - Fixed a SQLINE synch bug
+- Added command line option -F to prevent the ircd to fork out
2000-08-06 08:25:18 +00:00
stskeeps 081d14d3e9 +- Fixed a SQLINE synch bug 2000-08-06 08:06:37 +00:00
codemastr 1b47753c0f made a check to see if the server name has a . in it if not, die 2000-08-04 20:16:12 +00:00
codemastr 1ebe25c025 made /knock without a reason work and some /knock clean ups 2000-08-04 19:32:00 +00:00
stskeeps 13790b01e3 *** empty log message *** 2000-08-04 12:14:24 +00:00
stskeeps 004f9222a1 *** empty log message *** 2000-08-03 11:07:46 +00:00
stskeeps c3e053033c +- Fixed a SJ3 bug with ban syncing to SJ2 servers 2000-08-03 10:56:02 +00:00
angel11 5561c155de Opers now see +s channels in /whois 2000-08-02 20:32:07 +00:00
codemastr 33c6e5c93b /chghost bug fix 2000-08-02 18:52:10 +00:00
stskeeps b7ee74ec97 +- Disabled anything with time in /list options temporary, causes bugs 2000-08-02 17:45:14 +00:00
codemastr 58f7ef9ca8 fixed a little typo in umode 2000-08-02 17:37:32 +00:00
codemastr 7f96ccb01e more +u fixes 2000-08-02 17:27:09 +00:00
codemastr 7666ceab87 fixed the ulimit core size failed bug 2000-08-02 17:11:39 +00:00
stskeeps e7c69eca78 +- Possible fixed the lopts bug (which i didnt))
+- Fixed a egcs problem in Config, the strtok bug
2000-08-02 15:59:03 +00:00
stskeeps d69bcc41fa *** empty log message *** 2000-08-02 15:46:15 +00:00
stskeeps 4d616cf680 +- Fixed the +lL (+Ll) bug, will first be fixed 100% when all is 3.1 2000-08-02 15:11:11 +00:00
stskeeps dc1eb8bddf Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.156
diff -u -r1.1.1.1.2.1.2.1.2.156 Changes
--- Changes	2000/08/01 17:27:52	1.1.1.1.2.1.2.1.2.156
+++ Changes	2000/08/02 14:55:29
@@ -496,3 +496,5 @@
 - Added sendto_chanops_butone because of codemastr's laziness
 - Fixed a few +u bugs
 - Fixed a +I bug (yes another one)
+- Changed channel.c so that when an opped non +q/+a Oper kicks a user who
+  is +q/+a it invokes an OperKick (patch by llthangel)
2000-08-02 14:55:33 +00:00
codemastr c9e4ba4c98 fixed a few +u bugs and a +I bug 2000-08-01 17:27:53 +00:00
stskeeps c1c1aa2909 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.154
diff -u -r1.1.1.1.2.1.2.1.2.154 Changes
--- Changes	2000/08/01 16:30:15	1.1.1.1.2.1.2.1.2.154
+++ Changes	2000/08/01 16:34:06
@@ -493,3 +493,4 @@
 - Fixed SVS2MODE bug with illegal modes
 - Fixed /notice @%+ bug, where it didnt work at all
 - Fixed a small chmode +u bug
+- Added sendto_chanops_butone because of codemastr's laziness
2000-08-01 16:34:07 +00:00
codemastr 6f9606b331 fixed a small +u bug 2000-08-01 16:30:16 +00:00
stskeeps 345f51b684 -- Fixed SVS2MODE bug with illegal modes
\ No newline at end of file
+(rc2)
+- Fixed SVS2MODE bug with illegal modes
+- Fixed /notice @%+ bug, where it didnt work at all
2000-08-01 16:11:28 +00:00
stskeeps d885489c48 +- Fixed SVS2MODE bug with illegal modes
\ No newline at end of file
2000-08-01 15:54:53 +00:00
cvs2hg 4659dab89c fixup commit for tag 'unreal3_1_rc2' 2000-08-01 10:10:27 +00:00
stskeeps 760dc8dab8 .CVS: ---------------------------------------------------------------------- 2000-08-01 10:10:26 +00:00
stskeeps 5133d62d3c +- Changed channel.c so when you kick someone as halfop it doesn't show as an
+  OperKick (unless you kick an op) (reported by ^Fanta, patch by llthangel)
2000-08-01 06:11:39 +00:00
stskeeps eded88dd61 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.149
diff -u -r1.1.1.1.2.1.2.1.2.149 Changes
--- Changes	2000/07/29 13:34:20	1.1.1.1.2.1.2.1.2.149
+++ Changes	2000/07/31 18:13:34
@@ -486,3 +486,4 @@
 - Fixed a problem in SVS2MODE not displaying mode changes, and well known
   why
 - Recoded SVSNOOP, but the IRCd doesn't get it at all??
+- added llthangel to credits
2000-07-31 18:13:35 +00:00
stskeeps bfb2ce7bce . 2000-07-29 18:10:48 +00:00
stskeeps 6854c9a063 *** empty log message *** 2000-07-29 13:42:37 +00:00
stskeeps 25077eadc1 +- Recoded SVSNOOP, but the IRCd doesn't get it at all?? 2000-07-29 13:34:21 +00:00
stskeeps 3f41561390 +- Introduced NS in SQLINE..
+- Fixed a problem in SVS2MODE not displaying mode changes, and well known
+  why
2000-07-29 13:02:31 +00:00
stskeeps e1499ca0ed +- Introduced NS in SQLINE.. 2000-07-29 12:37:28 +00:00
stskeeps b61f000488 +- Fixed a problem in synch using acptr->name as info line 2000-07-29 12:16:25 +00:00
stskeeps 3ae66ae4e0 +- NS introduction in sendto_serv_butone_token
+- Fixed Q:lined nick NickServ from <unregistered> on Nickname Server message
2000-07-29 11:36:43 +00:00
stskeeps 51a5fa808e *** empty log message *** 2000-07-29 08:27:21 +00:00
stskeeps 236f8ed033 +- NS introduction in sendto_serv_butone_token 2000-07-29 08:08:46 +00:00
codemastr a977359d9f fixed a _small_ memory over use 2000-07-28 20:02:52 +00:00
stskeeps 6426522201 +- Removed UPING UDP socket. Only resfd opens a udp fd now 2000-07-28 19:25:30 +00:00
stskeeps 47ddee28a4 +- Changed find_server_quick to work with masks too .. 2000-07-28 19:19:21 +00:00
stskeeps 249edda423 +- Added llthangel's whoisfix.patch, Makes sure +hv users show up as
+  %#channel instead of +#channel. Bug report by ^Fanta.
2000-07-28 19:10:26 +00:00
stskeeps bde554aaf9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.138
diff -u -r1.1.1.1.2.1.2.1.2.138 Changes
--- Changes	2000/07/26 10:46:10	1.1.1.1.2.1.2.1.2.138
+++ Changes	2000/07/28 18:57:30
@@ -472,5 +472,5 @@
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
 - Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
-- NS part 1
-- SJ3 fixes
+- SJ3 fixes, loop fix
+- Added NS, new generation ALN.
2000-07-28 18:57:41 +00:00
stskeeps 9ec9cba9d9 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.137
diff -u -r1.1.1.1.2.1.2.1.2.137 Changes
--- Changes	2000/07/25 15:37:52	1.1.1.1.2.1.2.1.2.137
+++ Changes	2000/07/26 10:46:07
@@ -472,4 +472,5 @@
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
 - Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
-- NS part 1
\ No newline at end of file
+- NS part 1
+- SJ3 fixes
2000-07-26 10:46:10 +00:00
stskeeps f046832f10 Indentation. 2000-07-25 17:43:58 +00:00
stskeeps a055d59f9c indentiation 2000-07-25 15:41:55 +00:00
stskeeps a41b0b5bbb . 2000-07-25 15:37:54 +00:00
stskeeps bf7aad741d . 2000-07-25 14:12:42 +00:00
stskeeps cb74571261 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.135
diff -u -r1.1.1.1.2.1.2.1.2.135 Changes
--- Changes	2000/07/24 21:41:30	1.1.1.1.2.1.2.1.2.135
+++ Changes	2000/07/25 09:35:40
@@ -471,3 +471,4 @@
 - Removed a SJ3 debug msg
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
 - Changed to ircu/hybrid6/unreal mix of numeric 005
+- Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
2000-07-25 09:35:43 +00:00
stskeeps 993180689a Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.134
diff -u -r1.1.1.1.2.1.2.1.2.134 Changes
--- Changes	2000/07/24 19:33:42	1.1.1.1.2.1.2.1.2.134
+++ Changes	2000/07/24 21:41:27
@@ -470,3 +470,4 @@
 - Added base64 encoding instead, for ALN v2 (NS)
 - Removed a SJ3 debug msg
 - Removed SVSMODE +l support, and fixed servicestamp and +d support
+- Changed to ircu/hybrid6/unreal mix of numeric 005
2000-07-24 21:41:33 +00:00
codemastr aecec0e171 . 2000-07-24 20:07:01 +00:00
stskeeps 52a5b1b038 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.133
diff -u -r1.1.1.1.2.1.2.1.2.133 Changes
--- Changes	2000/07/24 19:16:10	1.1.1.1.2.1.2.1.2.133
+++ Changes	2000/07/24 19:33:40
@@ -469,3 +469,4 @@
 - Removed ALN, and the ALN system.
 - Added base64 encoding instead, for ALN v2 (NS)
 - Removed a SJ3 debug msg
+- Removed SVSMODE +l support, and fixed servicestamp and +d support
2000-07-24 19:33:43 +00:00
stskeeps 9b181f575f Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.132
diff -u -r1.1.1.1.2.1.2.1.2.132 Changes
--- Changes	2000/07/24 18:58:13	1.1.1.1.2.1.2.1.2.132
+++ Changes	2000/07/24 19:16:08
@@ -468,3 +468,4 @@
 - Added /infoserv (you can stop bugging us now skold ;P)
 - Removed ALN, and the ALN system.
 - Added base64 encoding instead, for ALN v2 (NS)
+- Removed a SJ3 debug msg
2000-07-24 19:16:10 +00:00
stskeeps 7a9cade496 @@ -466,3 +466,5 @@
- SJ3 fixes. Let's hope this works (f*cken hell..)
 - Fixed a V:line bug
 - Added /infoserv (you can stop bugging us now skold ;P)
+- Removed ALN, and the ALN system.
+- Added base64 encoding instead, for ALN v2 (NS)
2000-07-24 18:58:18 +00:00
codemastr 009e5353e7 added /infoserv 2000-07-23 18:34:14 +00:00
stskeeps 2988283c76 . 2000-07-22 18:28:42 +00:00
stskeeps 7f3125a0e2 . 2000-07-22 17:31:22 +00:00
codemastr 07353dcf4b Fixed a V:line bug 2000-07-22 16:14:32 +00:00
stskeeps 110e114d90 +- SJ3 fixes. Let's hope this works (f*cken hell..) 2000-07-21 18:50:15 +00:00
stskeeps 8abce466d6 SJ3 fix 2000-07-17 21:06:16 +00:00
codemastr 6054bfabd2 fixed a +L bug and Config typo 2000-07-17 16:45:04 +00:00
stskeeps b1416fc0c0 . 2000-07-17 15:20:58 +00:00
stskeeps 160d1600a6 . 2000-07-17 10:11:26 +00:00
stskeeps 0ba15e3965 *** empty log message *** 2000-07-17 07:31:05 +00:00
stskeeps 5fe68141ad +- Fixed the pesky hostname bug 2000-07-17 07:04:03 +00:00
stskeeps df0815f9bd . 2000-07-16 20:32:39 +00:00
stskeeps 10ad7e34f5 . 2000-07-16 19:42:09 +00:00
stskeeps fcfb9aa3d2 . 2000-07-16 19:01:28 +00:00
codemastr b47a9f53cc added networks/shatstation.network 2000-07-16 19:00:25 +00:00
stskeeps 8617d1ba4c . 2000-07-16 18:55:11 +00:00
codemastr 9bccd6046d added networks/linuxsquare.network 2000-07-16 18:54:23 +00:00
stskeeps 1c8ea8df8c . 2000-07-16 18:49:03 +00:00
stskeeps 3f4174bb96 FUckeup stuff etc, but lets hope it works 2000-07-16 18:48:00 +00:00
codemastr d1839df783 fixed a +I bug 2000-07-16 16:58:17 +00:00
stskeeps 9390a647ed . 2000-07-16 13:39:18 +00:00
stskeeps 3856856120 . 2000-07-16 13:29:08 +00:00
stskeeps 587defb54e .
kd
2000-07-16 13:11:01 +00:00
stskeeps 047a43253c .
k
2000-07-16 13:07:18 +00:00
stskeeps f1c9feb8f7 . 2000-07-16 12:31:56 +00:00
stskeeps 81ce6d38a2 .
kxkx
2000-07-16 11:15:33 +00:00
stskeeps b57669903d .kd 2000-07-16 11:02:59 +00:00
stskeeps 0a7b6dfc3a .
k
: ----------------------------------------------------------------------
2000-07-16 10:31:38 +00:00
stskeeps 56663f23e1 . 2000-07-16 10:25:53 +00:00
stskeeps 0af5d85de7 . 2000-07-16 10:22:12 +00:00
stskeeps 5e9f767c86 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.116
diff -u -r1.1.1.1.2.1.2.1.2.116 Changes
--- Changes	2000/07/16 10:07:14	1.1.1.1.2.1.2.1.2.116
+++ Changes	2000/07/16 10:17:26
@@ -449,8 +449,5 @@
 - Made it so you can remove a protoctl by putting a - in front
 - Fixed a bug in summon
 - Added protection against webproxies
-- SJ3 part 2/3 and a VL fix
-- Indentation and more SJ3 fixes
 - Fixed TKL?
-- 3/4 SJ3 fix
-- Last part SJ3
+- Added SJ3, removed the old
2000-07-16 10:17:32 +00:00
stskeeps 515945254c fixed synching 2000-07-16 10:13:01 +00:00
stskeeps 9d966aa4d0 +- Last part SJ3 2000-07-16 10:07:14 +00:00
stskeeps bf26a46b15 . 2000-07-16 08:59:02 +00:00
stskeeps 6124a68fde +- 3/4 SJ3 fix 2000-07-16 08:58:48 +00:00
codemastr 65118165d6 Fixed the TKL bug? 2000-07-15 23:56:57 +00:00
stskeeps 2e461cba19 +- Indentation and more SJ3 fixes 2000-07-14 20:22:59 +00:00
stskeeps b89bcd31d9 +- SJ3 part 2/3 and a VL fix 2000-07-14 14:47:40 +00:00
codemastr a78d71ee8b *** empty log message *** 2000-07-09 18:47:25 +00:00
stskeeps 9e7138ace5 +- Added protection against webproxies 2000-07-09 18:44:33 +00:00
codemastr 50a94daec7 fixed a bug in summon 2000-07-09 18:13:53 +00:00
codemastr 401c3918af added ability to remove a protoctl flag 2000-07-07 19:36:12 +00:00
stskeeps eb842353cc +- Tokenized nick->nick PRIVMSG and NOTICE
\ No newline at end of file
2000-07-07 12:14:51 +00:00
stskeeps 6c67a4a6b1 +- Fixed some host revealing nick collision stuff 2000-07-07 09:35:35 +00:00
codemastr 3a385f679b added networks/staticedge.network 2000-07-06 18:11:16 +00:00
codemastr 30b6a30fc5 added networks/makenet 2000-07-06 18:05:03 +00:00
stskeeps 6dd738d91c - Fixed a /rehash -garbage bug reported by Curt|s 2000-07-06 17:13:45 +00:00
stskeeps 61b2e99257 - Added a #define capability to config.h (DISABLE_USERMOD),
disables /sethost, /setident, /chgname, /chghost, /chgident
2000-07-06 08:10:20 +00:00
stskeeps 84d8b082c2 +- Added regex portablity and checks in Config 2000-07-05 22:20:41 +00:00
stskeeps fc26ef3e44 +- Fixed a msg.h location problem ..
+- Added secure connections and openssl tracing to Config
2000-07-05 16:55:14 +00:00
stskeeps 32eaeaaf36 +- Fixed a msg.h location problem ..
\ No newline at end of file
2000-07-05 16:25:39 +00:00
stskeeps 8de5089b84 Index: Changes
===================================================================
RCS file: /home/cmunk/ircsystems/cvsroot/unreal/Changes,v
retrieving revision 1.1.1.1.2.1.2.1.2.97
diff -u -r1.1.1.1.2.1.2.1.2.97 Changes
--- Changes	2000/07/05 15:11:43	1.1.1.1.2.1.2.1.2.97
+++ Changes	2000/07/05 16:25:14
@@ -436,3 +436,4 @@
 - Added VHP protoctl, (not in use in the synch). This makes virthost field
   in NICKv2 use the real virthost even if its +t. (Thanks to SL7)
 - Added support for the CR Java Chat auto join feature
+- Fixed a msg.h location problem ..
\ No newline at end of file
2000-07-05 16:25:19 +00:00
codemastr 3d7b0b6a0b added support for the CR Java Chat autojoin feature 2000-07-05 15:11:43 +00:00
stskeeps 04e9baae17 - Removed any trace of MD5, we use random() for nospoof now, this fixed a
license problem too
- Removed NOSPOOF_SEED01 and 02
- Added VHP protoctl, (not in use in the synch). This makes virthost field
  in NICKv2 use the real virthost even if its +t. (Thanks to SL7)
2000-07-05 13:05:34 +00:00
stskeeps 8a93ea7376 +- Fixed a sendto_serv_butone_token problem 2000-07-04 18:21:41 +00:00
stskeeps fa2a2c2234 - Added doc/crypto.doc describing the encrypted irc protocol 2000-07-04 11:25:37 +00:00
stskeeps 36154d7b10 - Added so stuff like Lost connection to, (report_error) only goes to realops
- Added some more descriptive error messages
2000-07-03 19:25:07 +00:00
stskeeps 5fcadbef9b .
k
2000-07-03 17:25:51 +00:00
codemastr ce9e5c4c84 Added OpenBSD 2.x support 2000-07-02 19:53:31 +00:00
codemastr d6fe0776a2 Fully added V:lines 2000-07-02 00:41:12 +00:00
stskeeps d5fd9a6ce9 +- Fixed some aligning in the VL PROTOCTL
+- Fixed some fucked up passwd stuff again ..
2000-07-01 12:59:00 +00:00
stskeeps 32fc008943 +- Fixed some aligning in the VL PROTOCTL 2000-07-01 10:50:56 +00:00
stskeeps 78545d38dc +- Fixed a crash problem on /quit or /squit 2000-06-30 20:51:03 +00:00
stskeeps 620c7e403d +- Fixed so that in +c it shows if a user is connected securely
+- Backported the passwd stuff, not needed.
2000-06-30 20:28:00 +00:00
codemastr 8ba0a10294 some V:line stuff 2000-06-30 16:33:03 +00:00
codemastr 8b0a1de92f added fclose() calls to vhost, dccdeny, and chrestrict confs 2000-06-29 18:18:37 +00:00
stskeeps b776a4d148 +- Fixed a ->passwd bug caused by codemastr.. 2000-06-29 12:23:26 +00:00
stskeeps a0dcb79a3a +- Added some more crypto stuff
+    - /crypto <algoritm> <keyfile laying in keys/> <parameters>
2000-06-28 20:54:49 +00:00
stskeeps 63e1fa2418 . 2000-06-28 19:45:39 +00:00
stskeeps f2d364aa8a +- Fixed crypto stuff 100% :)) 2000-06-28 19:37:17 +00:00
codemastr 9eeb7a2fc4 made K:line and n:line checking faster 2000-06-28 19:23:17 +00:00
codemastr 7144188368 made a major is_banned speed up 2000-06-28 17:11:55 +00:00
codemastr 2525edca20 removed list_channels 2000-06-28 16:56:21 +00:00
codemastr 279842d017 now can request topic without being a member, and removed topic , support 2000-06-28 16:15:58 +00:00
stskeeps 62323727a8 . 2000-06-27 20:22:33 +00:00
codemastr 645a04aec3 added option to encrypt restart/die passwords 2000-06-27 16:26:05 +00:00
codemastr b8f0063629 added encrypted I:line support 2000-06-27 15:45:41 +00:00
stskeeps 07104d2d7d . 2000-06-27 15:42:38 +00:00
stskeeps 68aba326e1 . 2000-06-27 13:22:57 +00:00
stskeeps 9b0f6b2a9c +- Some more crypto stuff, will work on the new engine tommorow 2000-06-26 21:41:00 +00:00
codemastr 384b7357cd fixed a typo in /stats z 2000-06-25 16:37:41 +00:00
stskeeps 4c039afe84 +- Added Blowfish encryption ability (SetSecure()), will extend to more
+  better encryption
Requires OpenSSL/blowfish
2000-06-25 14:35:24 +00:00
stskeeps 4e96e013ac +- Removed some odd Clone stuff(?) 2000-06-25 08:39:50 +00:00
stskeeps 62fe14251b +- Broken INETD support removed 2000-06-24 21:04:26 +00:00
stskeeps f7acfa8736 . 2000-06-24 20:57:30 +00:00
stskeeps 0a5bb85f2c - Removed IsService() 2000-06-24 20:45:48 +00:00
codemastr 0423078b67 *** empty log message *** 2000-06-24 18:54:11 +00:00
stskeeps 1e250927a2 - Fixed /setname desynch 2000-06-24 18:33:46 +00:00
codemastr 711ffb5c62 ... 2000-06-24 18:29:56 +00:00
stskeeps 2265903961 - Fixed last R_LINE stuff (check_time_interval) 2000-06-24 18:20:58 +00:00
codemastr 65cdea5cfe redid s_err.c to be faster (based on bahamut) 2000-06-24 18:14:26 +00:00
codemastr e3234d5671 *** empty log message *** 2000-06-24 15:19:36 +00:00
codemastr 4dd196bbc6 made /msg irc always work, cleanups, made it so all servers behind a U:lined server are U:lined 2000-06-23 21:32:25 +00:00
codemastr 0b85e10148 added networks/seveneagle.network 2000-06-23 18:37:52 +00:00
codemastr a35dd03e50 *** empty log message *** 2000-06-23 18:30:03 +00:00
stskeeps 4a1cded0fd - Made IRCII_KLUDGE disappear :P
- Fixed SENDQ_ALWAYS to be mainstream define (as always)
2000-06-23 18:24:12 +00:00
stskeeps 5c87943196 - Made IRCII_KLUDGE disappear :P 2000-06-23 18:19:49 +00:00
stskeeps f09b334e86 Missed one thing 2000-06-23 18:18:06 +00:00
stskeeps 985561c522 - Removed DISALLOW_MIXED_CASE and IGNORE_FIRST_CHAR, waste of space
- Made IDLE_FROM_MSG stock define
2000-06-23 18:17:10 +00:00
stskeeps 0b7c79b488 k- Removed aHush, not in use 2000-06-23 18:09:29 +00:00
stskeeps b3d8eb3104 - Fixed a wrongly outputted message (in hash collision detect) 2000-06-23 18:07:25 +00:00
stskeeps b6cb4e3661 - Made operkick be part of NO_OPEROVERRIDE
- Made admins unable to be shunned
- Made some socket errors which normally only showed up in DEBUGMODE, show
  up in ircd.log as well
2000-06-22 13:48:16 +00:00
stskeeps 031a342e60 Made operkick be part of OperOverride 2000-06-21 18:05:21 +00:00
stskeeps 023d869ffd - Small fix with ./Config showing incorrect path of stddef.h 2000-06-20 18:05:43 +00:00
stskeeps 4dcaaec5a3 - Fixed a bug in badwords not loading words correctly, and upped word limit
to 50
2000-06-20 08:15:13 +00:00
codemastr 614587cb7c fixed a chgident overflow 2000-06-19 20:49:27 +00:00
stskeeps 1d750653ab . 2000-06-19 16:21:32 +00:00
cvs2hg a278e31c9f fixup commit for tag 'unreal3_1_rc1' 2000-06-19 09:32:53 +00:00
stskeeps 39a02452d2 . 2000-06-19 09:32:52 +00:00
stskeeps 2016740b47 Stamp. 2000-06-18 10:22:40 +00:00
stskeeps 84c8525bc7 . 2000-06-18 10:21:45 +00:00
stskeeps 4feb893c3f - Made so auditorium mode shows users to @'s 2000-06-18 10:12:41 +00:00
stskeeps a30af17cb8 - Fixed ./Config showing freebsd 3.0 in freebsd 4
- Made so badwords.*.conf accepts # comments
- Added some default default badwords.message.conf and badwords.channel.conf
2000-06-18 10:10:34 +00:00
stskeeps 1d41fae3ca - Fixed /shun showing "1970" to permanently shunned users
- Fixed ./Config showing freebsd 3.0 in freebsd 4
2000-06-17 11:51:34 +00:00
stskeeps a31694c45a - Made /addline write to correct place when you use -f
- Made /zline not memory corrupt/crash, bad df bug
- Fixed a counting bug with unknown connections, very hopefully
- Fixed /htm giving wrong response when /htm to 1
2000-06-17 10:51:35 +00:00
drbin bb015165bc added ircsprintf.h to #include so that DEBUGMODE works !!! 2000-06-16 20:15:44 +00:00
drbin da53d2f0bf Added DEBUGMODE support in ircsprintf.h 2000-06-16 20:08:11 +00:00
drbin a80e94f246 Added DEBUG=1 support in win32 makefile 2000-06-16 19:40:18 +00:00
stskeeps a34dd526f2 - Added config.h setting to disable oper overrides, NO_OPEROVERRIDE 2000-06-16 17:08:10 +00:00
stskeeps 38a9332ce1 - Fixed a +L bug, (3.1 only) where any op could set +L
- Added channel mode +u, "Auditorium". Makes /names and /who #channel only
  show @'s
2000-06-16 17:07:21 +00:00
codemastr 956939e79b made perm TKLs allowed by using 0 as the time 2000-06-15 22:39:14 +00:00
drbin 227a0375e7 Updating to include aln.c 2000-06-15 20:43:36 +00:00
drbin 8afe521a85 *** empty log message *** 2000-06-15 20:06:50 +00:00
drbin a1e3d57d9e Fixed /Shun and /Gline Conflict .... (= != ==) 2000-06-15 20:01:09 +00:00
stskeeps c3dcf78497 Some bashing 2000-06-15 10:22:38 +00:00
stskeeps 3edeb401a7 Allow /shunned users to use /pong now 2000-06-14 17:25:42 +00:00
stskeeps f267677ce5 Poll() stuff 2000-06-11 13:05:36 +00:00
stskeeps c3773ecd9f - /shun accepts nick in add mode now (adds *@host) 2000-06-10 13:52:42 +00:00
stskeeps 51f84140fc - /close doesnt reveal realhost anymore 2000-06-10 13:39:43 +00:00
stskeeps b88cec9d5f bah 2000-06-10 10:45:01 +00:00
stskeeps e6b7e409ce . 2000-06-07 20:09:46 +00:00
stskeeps 422dbf746f - Made all ircops able to use +F (totally this time)
kd
2000-06-07 19:30:41 +00:00
stskeeps 7e3d2d8ea7 Made all IRCops able to use +F 2000-06-07 14:14:49 +00:00
stskeeps 12d99c8026 - Fixed the double +cF notice on local connections exiting, ugly hack
- Removed the last traces of unix sockets, flag 0x10 free now
2000-06-06 20:01:17 +00:00
stskeeps a75432c9ca In ./Config it runs a test program saying how many socket()s you can open 2000-06-06 12:48:10 +00:00
stskeeps bc87b99853 Small testing stuff 2000-06-06 12:39:08 +00:00
stskeeps c2d9acd82e sendto_serv_butone_token_opt 2000-06-04 14:51:38 +00:00
stskeeps afcea0d1ec Fixed the NickServ sets mode +creep SVS2MODE bug 2000-06-04 12:24:20 +00:00
stskeeps 0a2e7468d0 - Fixed a crash problem in register_user and most likely fixed the "strange
vhost" thing, (was a dumb bug, mising ircsprintf)
2000-06-04 09:14:48 +00:00
stskeeps d725dd805d . 2000-06-03 20:31:29 +00:00
stskeeps c8ac2db9f8 .. 2000-06-03 20:25:52 +00:00
stskeeps f1b988d04b Bah! 2000-06-03 20:23:12 +00:00
stskeeps e24344bde1 .. 2000-06-03 20:20:58 +00:00
stskeeps 565266a205 Access list stuff 2000-06-03 20:13:13 +00:00
stskeeps d76006aea2 .. 2000-06-03 20:11:50 +00:00
stskeeps 36b89e78bc . 2000-06-03 19:42:49 +00:00
stskeeps 4c499f8417 Test.. 2000-06-03 19:37:00 +00:00
stskeeps 989a5462d8 .. 2000-06-03 16:38:07 +00:00
stskeeps 4ffba555f3 Took out sequent/dynix support 2000-06-02 18:48:00 +00:00
stskeeps 34d0a3591d Test .. 2000-06-02 14:59:48 +00:00
stskeeps 01a0cbe628 !¤¤%!%1 2000-06-02 11:43:09 +00:00
stskeeps f2a31c5e21 possible res fix 2000-06-02 11:28:26 +00:00
stskeeps 7a78d5afff .. 2000-06-02 11:25:43 +00:00
stskeeps c2d59695ed Took out nick did a userhost on you and minimized hash table size so it went
0.6% memory down.adjust hash.h U_MAX if that is needed for performance
2000-06-02 11:25:00 +00:00
stskeeps 546af36469 - /stats s is now avail only for opers in mainstream 2000-06-02 10:48:49 +00:00
stskeeps b7b6e232ce .. 2000-06-01 20:51:05 +00:00
stskeeps b7d9439bdc - NETINFO protocol 0 is accepted as valid protocool (for services etc) 2000-06-01 14:20:57 +00:00
stskeeps a1cc97be8d Various fixes, and versioned up to RC1 2000-05-31 13:51:32 +00:00
stskeeps 0b3d4164fe - Made SVSO (ofcourse) IRCstats.operators--;
- Another IRCstats.unknown fix. Hope this works (hacked from undernet code)
2000-05-31 13:43:17 +00:00
stskeeps d7231c1801 Made /close reset IRCstats.unknown 2000-05-31 13:10:28 +00:00
codemastr 017bd482f1 *** empty log message *** 2000-05-30 21:46:13 +00:00
stskeeps c763583d33 First patch of ZIP_LINKS 2000-05-30 19:58:50 +00:00
stskeeps 48f9384a82 First part of 2000-05-30 19:58:27 +00:00
codemastr 2f8f56c191 *** empty log message *** 2000-05-29 19:21:03 +00:00
codemastr c53039ed41 *** empty log message *** 2000-05-29 15:48:45 +00:00
stskeeps adced2cf58 Made MODE_X and the family show mode changes, and made STRIPBADWORDS
standard
2000-05-29 15:09:01 +00:00
stskeeps 4dc224d3ff - A little anti-0 fix in channel.c 2000-05-29 14:47:54 +00:00
stskeeps c66be9025d Removed bsdinstall, isnt needed 2000-05-29 10:23:27 +00:00
stskeeps 588614da96 Removed a CVS_ID from whowas.c 2000-05-29 10:22:15 +00:00
stskeeps a59c66fd49 Added /shun 2000-05-29 10:17:13 +00:00
stskeeps 651ec98abc Fixed codemastr fucking up "ircd" 2000-05-29 07:25:26 +00:00
codemastr 59337acc04 fixed /stats C not showing N:lines 2000-05-28 21:53:09 +00:00
stskeeps 769f767b05 A compile fix.. 2000-05-28 17:35:42 +00:00
stskeeps 19a1e80ba8 Did a hack on ALN 2000-05-28 17:32:31 +00:00
stskeeps 58d92222ae Fixes in Unreal.nfo 2000-05-28 16:06:54 +00:00
stskeeps 5b22717119 Made the Own-protection just reduce the class maxli instead of bitching..
(class.c, s_user.c)
2000-05-28 16:03:08 +00:00
stskeeps 1f747eb73a Added rapta to beta tester credits 2000-05-28 15:49:29 +00:00
stskeeps 4f33019ee9 test of new cvs 2000-05-28 14:30:38 +00:00
cmunk 36e9700f16 Some win32 fixes done by Drbin 2000-05-28 09:01:26 +00:00
cvs2hg 843b580a40 fixup commit for branch 'devel' 2000-05-28 08:56:23 +00:00
200 changed files with 23517 additions and 18466 deletions
+15 -10
View File
@@ -1,14 +1,19 @@
Welcome to the UnrealIRCd configuration program. This program
will help you to compile your IRC server, and ask you questions
regarding the setup of it, during the process.
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 to set the IRCd up, mail
unreal-support@lists.sourceforge.net or ask at IRC:
/server irc.ircsystems.net, /join #unrealircd
If you need help setting up your server, mail
supporters@lists.unrealircd.org or ask on IRC:
/server irc.ircsystems.net, /join #unreal-support
For any sake, read Unreal.nfo and read doc/faq before asking questions
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.)
Press Escape now if you want to abort the setup, or press Enter
to continue.
Finally, unofficial UnrealIRCd/32 builds (if it doesn't say "genuine"
in the display) are _NOT_ supported.
- Luke (luke@unrealircd.com)
+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
>
Vendored
+52
View File
@@ -0,0 +1,52 @@
--leave-preprocessor-space
--dont-break-procedure-type
--no-space-after-function-call-names
--brace-indent0
--indent-level8
-ip8
--dont-line-up-parentheses
--continuation-indentation4
--case-indentation2
--no-space-after-casts
--blank-lines-after-procedures
--no-blank-lines-after-declarations
--braces-on-struct-decl-line
--paren-indentation0
--case-brace-indentation0
--line-length80
--declaration-indentation5
-T size_t
-T aClass
-T TS
-T aClient
-T aServer
-T anUser
-T aChannel
-T Mode
-T aConfItem
-T aMessage
-T aMessageTree
-T aGline
-T aListingArgs
-T snomask_t
-T n_short
-T n_long
-T n_time
-T u_char
-T u_short
-T u_long
-T u_int
-T dbuf
-T dbufbuf
-T aHashEntry
-T Link
-T Dlink
-T VOIDSIG
-T aHostent
-T ResRQ
-T aCache
-T CacheTable
-T cainfo
-T reinfo
-T RETSIGTYPE
-T OPT_TYPE
-2
View File
@@ -1,2 +0,0 @@
List of helpers in the alpha/beta phase:
* Headbang, Alpha/beta tester
+866 -306
View File
File diff suppressed because it is too large Load Diff
+371 -103
View File
@@ -11,7 +11,7 @@
# distribution without the author's prior consent.
#
# $Id$
IRCD_VERSION="Unreal3.1-beta3"
IRCD_VERSION="Unreal3.1.6 Noon"
CONF_DATE=`date`
LAST_VERSION="very very old"
#
@@ -33,6 +33,7 @@ STRINGH=undef
STRINGSH=undef
RUSAGEH=undef
NOINDEX=undef
FORCECORE=define
NSTRERROR=undef
NSTRTOKEN=undef
NSTRTOK=undef
@@ -42,8 +43,15 @@ NINETNETOF=undef
GETTIMEOFDAY=undef
LRAND48=undef
STRTOUL=undef
OPENSSL=""
OPENSSL_OTHERPLACE=""
REGEXP=""
NEEDSKIPNAME=""
CRYPTOLIB=""
CRYPTOIRCD=""
OPENSSLPATH=""
CCPATH=''
STRCASECMP=undef
SIGNAL=''
BLOCKING=''
TMP=/tmp/.Configtmp$$.c
@@ -59,12 +67,11 @@ DIR=`pwd`
DEFOPT="-O -g"
DEFCFLAGS="$DEFOPT"
DEFLIBS="none"
MKPASSWDLIBS="-lcrypt"
OSNAME="an unrecgonized operating system"
#
IRCNET=""
NOSPOOF="1"
NOSPOOF_SEED01="0x12345678"
NOSPOOF_SEED02="0x9abcdef0"
KLINE_ADDRESS=""
DPATH="$DIR"
SPATH="$DIR/src/ircd"
@@ -72,6 +79,8 @@ MODE_X=""
TRUEHUB=""
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
LISTEN_SIZE="5"
MAXSENDQLENGTH="3000000"
BUFFERPOOL="(9 * MAXSENDQLENGTH)"
@@ -96,13 +105,18 @@ fi
clear
if [ "$LAST_VERSION" != "$IRCD_VERSION" ] ; then
if [ -r .CHANGES.NEW ] ; then
more .CHANGES.NEW
echo $n "[Enter to begin]"
read cc
clear
fi
if [ -r .RELEASE.NOTES ] ; then
more .RELEASE.NOTES
echo $n "[Enter to begin]"
read cc
clear
fi
fi
if [ "$1" = "-n" ] ; then
if [ "$LAST_VERSION" != "$IRCD_VERSION" ] ; then
@@ -134,6 +148,8 @@ case "$OS" in
OSNAME="FreeBSD 2.2.x"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
echo "You are using FreeBSD 2.2.x; do NOT crypt passwords at this time"
;;
*FreeBSD*2.2*)
@@ -142,7 +158,19 @@ case "$OS" in
OSNAME="FreeBSD 2.2"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
echo "You are using FreeBSD 2.2; do NOT crypt passwords at this time"
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
echo "You are using FreeBSD 2.2; do NOT crypt passwords at this time"
;;
*FreeBSD*4.0*)
DEFCFLAGS="$DEFOPT"
DEFLIBS="-lcrypt"
OSNAME="FreeBSD 4.0"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
echo "You are using FreeBSD 4.0; You can use encrypted passwords now."
;;
*FreeBSD*3*)
DEFCFLAGS="$DEFOPT"
@@ -150,6 +178,8 @@ case "$OS" in
OSNAME="FreeBSD 3.x"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
echo "You are using FreeBSD 3.x; You can use encrypted passwords now."
;;
*FreeBSD*)
@@ -158,8 +188,20 @@ case "$OS" in
OSNAME="FreeBSD"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
echo "You are using FreeBSD ; do NOT crypt passwords at this time"
;;
*OpenBSD*2*)
DEFCFLAGS="$DEFOPT"
DEFLIBS="none"
MKPASSWDLIBS=""
OSNAME="OpenBSD 2.x"
CRYPT_OPER_PASSWORD=""
CRYPT_LINK_PASSWORD=""
CRYPT_ILINE_PASSWORD=""
CRYPT_XLINE_PASSWORD=""
;;
*SCO_SV*)
DEFCFLAGS="$DEFOPT -DSCOUNIX"
DEFLIBS="-lsocket"
@@ -208,6 +250,11 @@ case "$OS" in
DEFLIBS="-lsocket -lnsl -lresolv"
OSNAME="Solaris 2.x (or SunOS 5.x)"
;;
*IRIX*)
DEFCFLAGS="$DEFOPT -D_USE_BSD"
DEFLIBS="-lbsd"
OSNAME="IRIX"
;;
*Linux*)
cat > $TMP << __EOF__
#include <stdio.h>
@@ -345,6 +392,14 @@ sed -e "s@^XCFLAGS=\(.*\)@XCFLAGS=$XCFLAGS@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
#
# Fix mkpasswd Makefile
#
$RM -f crypt/Makefile.tmp
sed -e "s@^LIBS=\(.*\)@LIBS=$MKPASSWDLIBS@" crypt/Makefile > crypt/Makefile.tmp
cp crypt/Makefile.tmp crypt/Makefile
$RM -f crypt/Makefile.tmp
cat <<__EOF__
If you need to use any extra libraries when compiling the server,
@@ -389,7 +444,7 @@ if [ -r /usr/include/stdlib.h ] ; then
else
echo 'not found :('
fi
echo $n "...Looking for stddef.h...$c"
echo $n "...Looking for /usr/include/stddef.h...$c"
if [ -r /usr/include/stddef.h ] ; then
STDDEFH=define
echo 'found!'
@@ -450,6 +505,56 @@ if [ -r /usr/include/sys/rusage.h ] ; then
else
echo 'not found (good!)'
fi
echo $n "...Looking for /usr/include/openssl/ssl.h...$c"
if [ -r /usr/include/openssl/ssl.h ] ; then
OPENSSL=define
echo 'found!'
else
echo 'not found (you will not be able to do secure connections'
echo 'If you do have it, please type in ln -s <openssl include dir> /usr/include/openssl'
fi
echo $n "...Looking for /usr/include/regex.h...$c"
if [ -r /usr/include/regex.h ] ; then
REGEX=define
echo 'found!'
else
echo 'not found :('
echo $n '*** configuring regex package ***' $n
cd extras/regex
./configure
make
cd ../..
fi
if [ -r /usr/include/openssl/ssl.h ] ; then
echo $n "...Looking where you got the openssl binary...$c"
if [ -r /bin/openssl ] ; then
OPENSSLPATH=/bin/openssl
echo $OPENSSLPATH
elif [ -r /usr/bin/openssl ] ; then
OPENSSLPATH=/usr/bin/openssl
echo $OPENSSLPATH
elif [ -r /usr/sbin/openssl ] ; then
OPENSSLPATH=/usr/sbin/openssl
echo $OPENSSLPATH
elif [ -r /usr/local/bin/openssl ] ; then
OPENSSLPATH=/usr/local/bin/openssl
echo $OPENSSLPATH
elif [ -r /usr/local/ssl/bin/openssl ] ; then
OPENSSLPATH=/usr/local/ssl/bin/openssl
echo $OPENSSLPATH
elif [ -r `which openssl` ] ; then
OPENSSLPATH=`which openssl`
echo $OPENSSLPATH
else
echo "Couldn't find it! (bad)"
OPENSSLPATH=/bin/false
OPENSSLPATH=/bin/false
fi
fi
#
# to b or not to b
#
@@ -687,6 +792,38 @@ __EOF__
fi
fi
#
# Can we set the core size to unlimited
#
echo $n "Can we set the core size to unlimited...$c"
cat > $TMP <<__EOF__
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
main() {
struct rlimit corelim;
corelim.rlim_cur = corelim.rlim_max = RLIM_INFINITY;
if (setrlimit(RLIMIT_CORE, &corelim))
exit(1);
exit(0);
}
__EOF__
$COMP >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo " no"
FORCECORE=undef
else
$EXEC
if [ $? -ne 1 ] ; then
echo " yes"
else
echo " no"
FORCECORE=undef
fi
fi
$RM -f $EXEC $TMP
#
# what do we need that isn't here already ?
#
echo "What else do I need that you don't have..."
@@ -822,7 +959,7 @@ cat > $TMP <<__EOF__
#endif
main()
{
char *t = "1\0", *s;
char t[] = "a\0", *s;
s = strtok(t, ",");
if (!strcmp(t, s))
exit(0);
@@ -886,8 +1023,25 @@ if [ $? -ne 0 ] ; then
echo $n " inet_netof$c"
NINETNETOF=define
fi
$RM -f $EXEC $TMP
echo " "
$RM -f $EXEC $TMP
cat > $TMP << __EOF__
#include <string.h>
main()
{
strcasecmp("moo", "moo");
}
__EOF__
$COMP
# >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo $n " strcasecmp $c "
STRCASECMP=undef
else
STRCASECMP=define
fi
$RM -f $EXEC $TMP
#
#
#
@@ -958,6 +1112,7 @@ cat > $SETUP <<__EOF__
#$STDDEFH STDDEFH
#$SYSSYSLOGH SYSSYSLOGH
#$NOINDEX NOINDEX
#$FORCECORE FORCE_CORE
#$NSTRERROR NEED_STRERROR
#$NSTRTOKEN NEED_STRTOKEN
#$NSTRTOK NEED_STRTOK
@@ -966,6 +1121,7 @@ cat > $SETUP <<__EOF__
#$NINETNETOF NEED_INET_NETOF
#$GETTIMEOFDAY GETTIMEOFDAY
#$LRAND48 LRAND48
#$STRCASECMP GOT_STRCASECMP
__EOF__
if [ "$MALLOCH" = "undef" ] ; then
echo "#undef MALLOCH" >> $SETUP
@@ -1066,87 +1222,6 @@ while [ -z "$FOO" ] ; do
esac
done
if [ -n "$NOSPOOF" ] ; then
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
FOO="$NOSPOOF_SEED01"
echo "For security, the nospoof code uses two special values, called"
echo "seeds. Here, please enter one of them. The values are in"
echo "hexidecimal (base 16) using the digits 0123456789abcdef. Each"
echo "value can contain up to 8 digits, and should be specified in the"
echo "form 0x12345678. If you use the defaults, that should be ok, but"
echo "it is more secure if you choose your own special values and keep"
echo "them secret."
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
else
cc=""
runonce=Yes
fi
if [ -z "$cc" ] ; then
cc=$FOO
fi
case "$cc" in
0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])
NOSPOOF_SEED01=$cc
;;
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])
NOSPOOF_SEED01=0x$cc
;;
*)
echo " "
echo "Read the instructions and try again... You did not enter the"
echo "value correctly."
echo ""
FOO=""
;;
esac
done
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
FOO="$NOSPOOF_SEED02"
echo "For security, the nospoof code uses two special values, called"
echo "seeds. Here, please enter one of them. The values are in"
echo "hexidecimal (base 16) using the digits 0123456789abcdef. Each"
echo "value can contain up to 8 digits, and should be specified in the"
echo "form 0x12345678. If you use the defaults, that should be ok, but"
echo "it is more secure if you choose your own special values and keep"
echo "them secret."
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
else
cc=""
runonce=Yes
fi
if [ -z "$cc" ] ; then
cc=$FOO
fi
case "$cc" in
0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])
NOSPOOF_SEED02=$cc
;;
[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])
NOSPOOF_SEED02=0x$cc
;;
*)
echo " "
echo "Read the instructions and try again... You did not enter the"
echo "value correctly."
echo ""
FOO=""
;;
esac
done
# this matches a NOSPOOF check waaaaaay up there
fi
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
@@ -1224,7 +1299,7 @@ while [ -z "$FOO" ] ; do
esac
done
DOMAINNAME="box.name"
DOMAINNAME=`hostname`
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
@@ -1244,6 +1319,45 @@ while [ -z "$FOO" ] ; do
done
DOMAINNAME=$cc
if [ -n "$OPENSSL" ] ; then
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
if [ -n "$CRYPTOIRCD" ] ; then
FOO="Yes"
else
FOO="No"
fi
echo ""
echo "Do you want to support SSL (Secure Sockets Layer) connections"
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
else
cc=""
runonce=Yes
fi
if [ -z "$cc" ] ; then
cc=$FOO
fi
case "$cc" in
[Yy]*)
CRYPTOIRCD="1"
CRYPTOLIB="-lssl -lcrypto"
;;
[Nn]*)
CRYPTOIRCD=""
;;
*)
echo ""
echo "You need to enter either Yes or No here..."
echo ""
FOO=""
;;
esac
done
fi
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
@@ -1317,6 +1431,77 @@ while [ -z "$FOO" ] ; do
esac
done
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
if [ -n "$CRYPT_XLINE_PASSWORD" ] ; then
FOO="yes"
else
FOO="No"
fi
echo ""
echo "Do you want to use encrypted Restart/Die passwords?"
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
else
cc=""
runonce=Yes
fi
if [ -z "$cc" ] ; then
cc=$FOO
fi
case "$cc" in
[Yy]*)
CRYPT_XLINE_PASSWORD="1"
;;
[Nn]*)
CRYPT_XLINE_PASSWORD=""
;;
*)
echo ""
echo "You need to enter either Yes or No here..."
echo ""
FOO=""
;;
esac
done
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
if [ -n "$CRYPT_ILINE_PASSWORD" ] ; then
FOO="Yes"
else
FOO="No"
fi
echo ""
echo "Do you want to use encrypted I:line passwords?"
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
else
cc=""
runonce=Yes
fi
if [ -z "$cc" ] ; then
cc=$FOO
fi
case "$cc" in
[Yy]*)
CRYPT_ILINE_PASSWORD="1"
;;
[Nn]*)
CRYPT_ILINE_PASSWORD=""
;;
*)
echo ""
echo "You need to enter either Yes or No here..."
echo ""
FOO=""
;;
esac
done
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
@@ -1437,7 +1622,14 @@ while [ -z "$FOO" ] ; do
;;
esac
done
echo ""
echo ""
if [ "$OSNAME" = "Solaris 2.x (or SunOS 5.x)" ] ; then
$CCPATH -lsocket -o src/fdmaxcounter src/fdmaxcounter.c
else
$CCPATH -o src/fdmaxcounter src/fdmaxcounter.c
fi
src/fdmaxcounter
FOO=""
runonce=""
while [ -z "$FOO" ] ; do
@@ -1450,6 +1642,8 @@ else
fi
echo ""
echo "How many file descriptors (or sockets) can the irc server use?"
echo "(The result above, if any - shows how many sockets that the ircd can use",
echo " and can be used as an answer here)"
echo $n "[$FOO] -> $c"
if [ -z "$AUTO_CONFIG" -o -n "$runonce" ] ; then
read cc
@@ -1554,6 +1748,55 @@ else
$RM -f Makefile.tmp
fi
if [ -n "$CRYPTOLIB" ] ; then
$RM -f Makefile.tmp
sed -e "s@^CRYPTOLIB=\(.*\)@CRYPTOLIB=$CRYPTOLIB@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
else
$RM -f Makefile.tmp
sed -e "s@^CRYPTOLIB=\(.*\)@CRYPTOLIB=@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
fi
if [ -n "$CRYPTOIRCD" ] ; then
$RM -f Makefile.tmp
sed -e "s@^OPENSSLPATH=\(.*\)@OPENSSLPATH=$OPENSSLPATH@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
else
$RM -f Makefile.tmp
sed -e "s@^OPENSSLPATH=\(.*\)@OPENSSLPATH=@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
fi
if [ -n "$OPENSSL_OTHERPLACE" ] ; then
$RM -f Makefile.tmp
sed -e "s@^OPENSSLINCLUDE=\(.*\)@OPENSSLINCLUDES=-I/usr/local/ssl/include/openssl@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
else
$RM -f Makefile.tmp
sed -e "s@^OPENSSLINCLUDE=\(.*\)@OPENSSLINCLUDES=@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
fi
if [ -n "$REGEX" ] ; then
$RM -f Makefile.tmp
sed -e "s@^REGEX=\(.*\)@REGEX=@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
else
$RM -f Makefile.tmp
sed -e "s@^REGEX=\(.*\)@REGEX=../extras/regex/regex.o@" Makefile > Makefile.tmp
cp Makefile.tmp Makefile
$RM -f Makefile.tmp
fi
$RM -f $EXEC $TMP
$RM -f ./core
@@ -1588,28 +1831,43 @@ if [ -n "$CRYPT_OPER_PASSWORD" ] ; then
else
echo "#undef CRYPT_OPER_PASSWORD" >> $OPTIONS_H
fi
if [ -n "$CRYPTOIRCD" ] ; then
echo "#define USE_SSL 1" >> $OPTIONS_H
else
echo "#undef USE_SSL" >> $OPTIONS_H
fi
if [ -n "$CRYPT_LINK_PASSWORD" ] ; then
echo "#define CRYPT_LINK_PASSWORD 1" >> $OPTIONS_H
else
echo "#undef CRYPT_LINK_PASSWORD" >> $OPTIONS_H
fi
if [ -n "$CRYPT_ILINE_PASSWORD" ] ; then
echo "#define CRYPT_ILINE_PASSWORD 1" >> $OPTIONS_H
else
echo "#undef CRYPT_ILINE_PASSWORD" >> $OPTIONS_H
fi
if [ -n "$CRYPT_XLINE_PASSWORD" ] ; then
echo "#define CRYPT_XLINE_PASSWORD 1" >> $OPTIONS_H
else
echo "#undef CRYPT_XLINE_PASSWORD" >> $OPTIONS_H
fi
if [ -n "$HUB" ] ; then
echo "#define HUB 1" >> $OPTIONS_H
else
echo "#undef HUB" >> $OPTIONS_H
fi
if [ -n "$REGEX" ] ; then
echo "#define HAVE_REGEX 1" >> $OPTIONS_H
else
echo "#undef HAVE_REGEX" >> $OPTIONS_H
fi
if [ -n "$NOSPOOF" ] ; then
echo "#define NOSPOOF 1" >> $OPTIONS_H
else
echo "#undef NOSPOOF" >> $OPTIONS_H
fi
if [ -n "$NOSPOOF_SEED01" ] ; then
echo "#define NOSPOOF_SEED01 $NOSPOOF_SEED01" >> $OPTIONS_H
fi
if [ -n "$NOSPOOF_SEED02" ] ; then
echo "#define NOSPOOF_SEED02 $NOSPOOF_SEED02" >> $OPTIONS_H
fi
if [ "$OSNAME" = "Linux (with GLIBC 2.x or greater)" ]; then
echo "#define GLIBC2_x" >> $OPTIONS_H
@@ -1632,12 +1890,12 @@ cat > $OPTIONS << __EOF__
IRCNET="$IRCNET"
LAST_VERSION="$IRCD_VERSION"
NOSPOOF="$NOSPOOF"
NOSPOOF_SEED01="$NOSPOOF_SEED01"
NOSPOOF_SEED02="$NOSPOOF_SEED02"
DPATH="$DPATH"
SPATH="$SPATH"
CRYPT_OPER_PASSWORD="$CRYPT_OPER_PASSWORD"
CRYPT_LINK_PASSWORD="$CRYPT_LINK_PASSWORD"
CRYPT_ILINE_PASSWORD="$CRYPT_ILINE_PASSWORD"
CRYPT_XLINE_PASSWORD="$CRYPT_XLINE_PASSWORD"
LISTEN_SIZE="$LISTEN_SIZE"
MAXSENDQLENGTH="$MAXSENDQLENGTH"
BUFFERPOOL="$BUFFERPOOL"
@@ -1652,6 +1910,16 @@ if [ "$OSNAME" = "Linux (with GLIBC 2.x or greater)" ]; then
echo ""
fi
if [ -n "$CRYPTOIRCD" ] ; then
if [ ! -f server.req.pem ]; then
echo "Using openssl in $OPENSSLPATH .."
export OPENSSLPATH
make pem
cat .SICI
read cc
fi
fi
cat << __EOF__
_____________________________________________________________________
@@ -1670,8 +1938,8 @@ cat << __EOF__
|_____________________________________________________________________|
|_____________________________________________________________________|
| - The UnrealIRCd Team - |
| * Stskeeps stskeeps@tspre.org
| * codemastr codemastr@tspre.org
| * DrBin drbin@tspre.org
| * Stskeeps stskeeps@unrealircd.com |
| * codemastr codemastr@unrealircd.com |
| * Luke luke@unrealircd.com |
|_____________________________________________________________________|
__EOF__
+3
View File
@@ -7,6 +7,9 @@ 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$ ]
+3 -3
View File
@@ -11,7 +11,7 @@ an IRC server.
For more information on UnrealIRCD contact us at
unreal-dev@lists.sourceforge.net
The UnrealIRCD is available from http://unreal.tspre.org
The UnrealIRCD is available from http://www.unrealircd.com
along with the latest copy of this document.
@@ -60,8 +60,8 @@ 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.0.tar.gz
tar -xvf Unreal3.0.tar
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.
+38 -5
View File
@@ -33,7 +33,8 @@ FROMDOS=/home/cmunk/bin/4dos
#
XCFLAGS=
IRCDLIBS=
CRYPTOLIB=
OPENSSLINCLUDES=
#
# use the following on MIPS:
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
@@ -97,6 +98,12 @@ IRCDDIR=/usr/local/lib/ircd
# 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.
@@ -115,6 +122,9 @@ STRTOUL=
# 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
@@ -133,7 +143,9 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
'MANDIR=${MANDIR}' 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
'RES=${RES}' 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}'
'RES=${RES}' 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
'CRYPTOLIB=${CRYPTOLIB}' 'REGEX=${REGEX}' \
'CRYPTOINCLUDES=${CRYPTOINCLUDES}'
server:
build:
@@ -152,6 +164,12 @@ build:
@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 |'
@@ -174,8 +192,8 @@ clean:
cleandir: clean
rm -rf include/networks.h include/setup.h include/settings.h Makefile Settings
makex: fromdos
chmod +x Config newnet bsdinstall ircd ircdcron/ircdchk killircd
makex:
chmod +x Config newnet ircd ircdcron/ircdchk killircd
chmod +x makeconf rehash ircdreg
fromdos: cleandir
@@ -186,7 +204,7 @@ fromdos: cleandir
$(FROMDOS) -dv crypt/*
$(FROMDOS) -dv ircdcron/*
makedist: makex
echo "Making UnrealIRCd compatible IRCd Dist."
echo "Stamping.."
stamp: makedist
echo "/* Auto created release stamping */" > include/stamp.h
@@ -203,3 +221,18 @@ depend:
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!"
-13
View File
@@ -1,13 +0,0 @@
WARNING! WARNING! WARNING! WARNING! WARNING!
============================================
THIS IS AN BETA VERSION OF UNREAL. THIS IS
AT NO WAY SUPPORTED BY THE DEVELOPERS. DO NOT
COMPLAIN ABOUT ANY DAMAGE CAUSED WITH THIS VERSION
OF UNREALIRCD - AS THIS IS A VERSION IN DEVELOPMENT.
If - however you decide to compile and run this version
please tell us if you find any bugs, please mail
unreal-dev@lists.sourceforge.net if you do. Any
ideas for features etc goes to same address.
-15
View File
@@ -1,15 +0,0 @@
Some notes to remember:
-----------------------
* Don't EVER try to link it to incompatible IRCds (this does not
include services). It is *INCOMPATIBLE*. Please HEED this warning!!!
* If you need any help you can email me at stskeeps@tspre.org
* Please read the Changes file about release notes
* Bugs? Read Unreal.nfo
* Unreal IRCd is not meant to be a simple IRCd, rather an advanced
IRCd, please read the documentation before asking questions
[ $Id$ ]
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".
-52
View File
@@ -1,52 +0,0 @@
Unreal3.1-Silverheart
Scheduled for 4.0:
* /mode #channel +T hostmask=#channel
On join and a person matches the hostmask,
the person will be joined to #channel instead
/mode # T says what T records there are
----------------
* B:Lines or ircu i:lines
* Raising PING bug
* Config Remote access
-----------------------------------------------------------
* Add svsvline for global vlines
---------------
Assigned to codemastr:
* Remove some of the _little_ config.h defines and replace with
unrealircd.conf lines, ex ADMINCHAT, REMOTE_REHASH
* Documentation documentation AND DOCUMENTATION
Assigned to DrBin:
------------------
* Write Windowze GUI for Remote admin thing
* Write protocoll specification for remote admin thing
* Implement protocoll =)
* modify all instances of exit() to be more win32 frendly =) ...
* Bugg Stskeeps about the 1-message-per-1.5-sec ... and to use an unrealircd.conf line
to say what %age of CPU _can_ be used by the server ... and work out what that means...
-----------------------------------------------------------
* X-Windows GUI (how bad it can be but hey! :P)
* IPv6 support (will need to recode IP portion of cloak.c)
HERZ|v6 is HERZ@3ffe:2502:100:f00d:0:0:0:1 (uncloaked)
HERZ|v6 is HERZ@3ffe:2502:100:f00d:0:0:0:*4314*
or something :P
(from irc2.10.3)
* CTCP flood protection(?)
* More /HTM stuff, when HTM is active certain features are disabled
* A /who flag system, like bahamut's
* More unrealircd.conf options
* Something like bahamut/hybrids P:line system where you can specify
which IPs can you a specific port, maybe port specific passwords too?
* /hush or /shun (shun most likely)
* add -SIGTERM support, /restarts on SIGTERM
* Recode dynconf and all the other new confs
* Make proxy scanner scan port 23 also (postponed)
* #define for auto oflag +H
* Port to MacOS 7-9, 68k architecture and PPC
* Port to BeOS
-54
View File
@@ -1,54 +0,0 @@
NOTE: tspre.org does not exist at the moment,
as I dont have a shell for it anymore.
If anyone want to donate a shell with a background process,
and 1 IP with port 6667 open, they are welcome.
TSpre.org
Many here maybe not heard of the Story
how IRC started (and how EFnet started)
EFnet's name means "Eris-Free Network".
Eris was a central hub at the fomer world-
wide IRC network, that anyone could just add
C:N pairs for and connect to.
I was inspired of the tought of a network
where anyone could link without application and all
that shit..
Combined with the IRCd i made (Unreal) and the tspre.org
domain i got donated by Nutcais (my IRC bro). Ive decided to
start the TSpre IRC network, where anyone with TSpre servers
(dreamforge, IRCu p9, and their alike)
(mostly preffered is Unreal thou).. Its an experimental
network where people can test out thier IRCds and
wIRds without having to fill out apps and so on.
There are no real rules. So just have fun :)
See http://www.tspre.org for more info on this=)
--Stskeeps (stskeeps@tspre.org)
+19 -15
View File
@@ -1,25 +1,29 @@
===============================================
= UnrealIRCd v3.1 =
= UnrealIRCd v3.1.6 =
===============================================
Was brought to you by:
* Stskeeps <stskeeps@tspre.org>
* codemastr <codemastr@tspre.org>
* DrBin <drbin@tspre.org>
* Stskeeps <stskeeps@unrealircd.com>
* codemastr <codemastr@unrealircd.com>
* Luke <luke@unrealircd.com>
Precenses on the Internet:
* http://unreal.tspre.org or http://unreal.sourceforge.net
* ftp://unreal.sourceforge.net/pub/unreal
* http://www.unrealircd.com
CVS Repository:
* Alpha versions (or beta)
==========================
cvs -z9 -d :pserver:anonymous@cvs.unreal.sourceforge.net:/cvsroot/unreal login
(just press enter when it asks for password)
cvs -z9 -d :pserver:anonymous@cvs.unreal.sourgeforge.net:/cvsroot/unreal co alpha
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 #unrealircd
* 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
@@ -52,4 +56,4 @@ cvs -z9 -d :pserver:anonymous@cvs.unreal.sourgeforge.net:/cvsroot/unreal co alph
* Mail it to unreal-dev@lists.sourceforge.net :) or catch one from
the Unreal team online on IRC:)
+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
-84
View File
@@ -1,84 +0,0 @@
#! /bin/sh
#
# $Id$
# Old: @(#)install.sh 4.5 (Berkeley) 10/12/83
#
cmd=/bin/mv
strip=""
chmod="/bin/chmod 755"
chown="chown -f root"
chgrp="/bin/chgrp -f bin"
while true ; do
case $1 in
-s ) strip="strip"
shift
;;
-c ) cmd="/bin/cp"
shift
;;
-m ) chmod="/bin/chmod $2"
shift
shift
;;
-o ) chown="/etc/chown -f $2"
shift
shift
;;
-g ) chgrp="/bin/chgrp -f $2"
shift
shift
;;
-d ) cmd="/bin/mkdir"
shift
;;
* ) break
;;
esac
done
if [ ! ${2-""} ]
then echo "install: no destination specified"
exit 1
fi
if [ ${3-""} ]
then echo "install: too many files specified -> $*"
exit 1
fi
if [ $1 = $2 -o $2 = . ]
then echo "install: can't move $1 onto itself"
exit 1
fi
case $cmd in
/bin/mkdir )
file=$2/$1
;;
* )
if [ '!' -f $1 ]
then echo "install: can't open $1"
exit 1
fi
if [ -d $2 ]
then file=$2/$1
else file=$2
fi
/bin/rm -f $file
;;
esac
case $cmd in
/bin/mkdir )
if [ ! -d "$file" ]
then $cmd $file
fi
;;
* )
$cmd $1 $file
if [ $strip ]
then $strip $file
fi
;;
esac
$chown $file
$chgrp $file
$chmod $file
+4 -2
View File
@@ -23,15 +23,17 @@
#
IRCDCONF = ../ircd.conf
LIBS=-lcrypt
all: mkpasswd
crypt: install
mkpasswd: mkpasswd.c
cc -lcrypt -O mkpasswd.c -o mkpasswd
cc ${LIBS} -O mkpasswd.c -o mkpasswd
install:
crypter ${IRCDCONF}
chmod 700 crypter
./crypter ${IRCDCONF}
@echo 'done.'
clean:
+23 -1
View File
@@ -32,6 +32,8 @@ $tmpfile = "/tmp/ircd.conf.tmp";
#
$ircdconf = @ARGV[0];
$ircdout = "IRCDOUT";
print "crypting ",$ircdconf,"\n";
@saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.', '/');
@@ -40,13 +42,33 @@ open ($ircdout, ">/tmp/ircd.conf.tmp") || die "open $!";
while ($text = <>) {
#if its not an "O" line we can ignore it
$text =~ /^o/i || print ($ircdout $text) && next;
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";
-26
View File
@@ -1,26 +0,0 @@
ALN, Alphanumeric System
(C) Stskeeps 2000
ALN is a quick hack to short down usage of bandwidth-using servernames
in prefixes, NICK commands, etc etc. It replaces the name with a
1 or 2 byte prefix in a system, look at src/aln.c for the prefix
types/values. It will be an PROTOCTL, and used in NICK messages and so on,
and introduce a new prefix server<->server called |server. The value of the
server is calculated by a hash value, the scache system, so that the server
can lookup with a new scache function, scache_find_by_hash(int i). The
question of it will conflict in similar-hash server names, is a wonder to me
:P, we will find out, but scache will fail at same time then.
Examples:
& Medb 4 957458466 ~Medb bservice.org D2 0 +iwrx *
:BotService Bot - bservice.org - Owner: terri{J}
where D2 is the hash value of oxygen.phrozen.org (/stats s on a
#define DEVELOP server). irc.flirt.org has hash 96 (ALN code AX) for
instance.
@D2 GLOBOPS :message
will be a message from server with hash D2, found find-by-hash(256)
-48
View File
@@ -1,48 +0,0 @@
From cmunk@draconic.fyremoon.net Wed Apr 5 18:09:55 2000
Date: Wed, 5 Apr 2000 18:07:55 +0100 (BST)
From: "The Nightwalker (Stskeeps)" <cmunk@draconic.fyremoon.net>
To: unreal-dev@lists.sourceforge.net
Subject: [Unreal-dev] P:Lines
Some stuff i got ideas about.. stripping the IP and port from the M:Line
and enforcing the main port to be in a M:line
M:irc.fyremoon.net:*:Forever is gonna start tonight:*
P:ip:flags:password1,password2,password3:port
| | | \- port to bind to
| | |
| | \- Commaseperated lists of accepted passwords
| | * if none
| |
| \--- C = Allow clients
| S = Allow servers
| R = ONLY allow our remote admin connections
| (may only be on a P:line of its own)
| J = Clients that connect here are counted as Java(Confroomhack)
| * = CS
|
\--- IP to bind to, * = INADDR_ANY (all interfaces)
Will make P:Lines more efficent
---------------------------------------------------------------------
Carsten V. Munk - The Nightwalker, known on IRC as Stskeeps or techie
* ICQ: 16465977 - E-Mail: stskeeps@tspre.org
* Author of UnrealIRCd (http://unreal.tspre.org)
* Technical Admin @ irc.roxnet.org, server admin of irc.fyremoon.net
"To understand a program you must become both the machine and the program."
----------------------------------------------------------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/CC d- s: a--- C+++ UL P L++ E-- W++ N+ o-- K- w--- O- M V-- PS+ PE- Y+
PGP t+ 5 X R- tv- b+ DI++ D++ G e-- h! r z**
------END GEEK CODE BLOCK------
_______________________________________________
Unreal-dev mailing list
Unreal-dev@lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/unreal-dev
-72
View File
@@ -1,72 +0,0 @@
# $Id$
on ^367 * if ([$4] != []) {echo *** $1 \($3 - $stime($4)) $2} {echo *** $1-}
on ^333 * echo *** Topic for $1 set by $2 on $stime($3)
on ^317 * if (index(012345679 $3) != -1) {echo *** $1 has been idle for $2 seconds. Signon at $stime($3)} {echo *** $1 has been idle for $2 seconds.}
On ^329 "*" echo *** $1 : created $stime($2)
on ^
alias silence quote silence
alias sile quote silence
on ^raw_irc "% SILENCE %" echo *** $*
@ hideit = 0
on ^server_notice "% % NOTICE -- CLIENT*" if (hideit != 1) {echo *** $2-}
alias show @ hideit = 0;echo *** You can now see clients connecting/exiting
alias hide @ hideit = 1;echo *** You will no longer see clients connecting/exiting
# ctime and sendq written by bry
# modified by Mmmm
alias ctime {
^on 211 -
if ( [$0] )
{ ^assign SS $0- }
{ ^assign SS $S }
^on ^211 * {
eval ^assign hrs2 ${ ([$7]/60)/60}
eval ^assign min2 ${[$7]/60}
eval ^assign dys ${[$HRS2]/24}
eval ^assign hrs ${[$HRS2]-([$DYS]*24)}
eval ^assign min ${[$MIN2] - ( ([$HRS]+([$DYS]*24) )*60)}
eval ^assign sec ${[$7]-([$MIN2]*60)}
@ a = index(\[ $1) - 1
@ b = left($a $1)
if (index(. $b) == -1)
{eval echo *** $1 $[2]DYS days, $[2]HRS hrs, $[2]MIN min, $[2]SEC s}
{eval echo *** $1 $[2]DYS days, $[2]HRS hrs, $[2]MIN min, $[2]SEC s}
}
^stats l $SS
}
alias sendq {
eval ^on ^211 "$SRV *" {
@ a = index(\[ $1) - 1
@ b = left($a $1)
if (index(. $b) == -1)
{eval echo *** $[11]2 sendq $1}
{eval echo *** $[11]2 sendq $1}
}
if ( [$0] )
{ ^assign SRV $0- }
{ ^assign SRV $S }
stats l $SRV
wait -cmd eval ^on ^211 -"$SRV *"
}
# If you use Daveman's toolbox or any auto rejoin line, remove the old
# on raw_irc for KICK, and use the foll. one instead: (Run)
#
#ON ^RAW_IRC "% KICK % % *" {
# IF ([$3]==[$N])
# {
# //QUOTE JOIN $2
# ECHO $MID(11 5 $STIME($TIME())) * You have been kicked off channel $2 by $LEFT($INDEX(! $0) $0) \($MID(1 256 $4-)\)
# }
# {
# ECHO $MID(11 5 $STIME($TIME())) * $3 has been kicked off channel $2 by $LEFT($INDEX(! $0) $0) \($MID(1 256 $4-)\)
# }
# }
+785
View File
@@ -1,3 +1,788 @@
OLD CHANGES:
[Unreal3.1.1-Darkshades]
- Fixed /userhost showing "unknown" as username for a lot of people
- Fixed ./update error
- Fixed a NO_FDLIST define problem in send.c and channel.c
- Added define PROPER_COREDUMP, will not launch s_segv when done and make
proper coredumps
- Fixed the G:line bugs, i hope - moved tkl_sweep into a loopstruct
- Removed the ERR_NOTONCHANNEL message =P
- Made some memory cleanups on the command list (saved 268 bytes)
- More memory cleanups, changed aClient->refcnt to a signed char,
aClient->hopcount to unsigned char
- Changed aChannel->mode.msgs & .per to unsigned short, and changed
.kmode to unsigned char
- Changed aChannel->users to unsigned short (max 65536 users per channel)
and FloodOpt->nmsg to an unsigned short
- Removed SUMMON totally
- Fixed another SJOIN problem, but not the exact one i was looking for
- Added IRCd bot (raw commands) and the IRC bot, webtv.c
- Added WHOIS command (working) to IRCbot-
- Fixed a fun doublechar token problem (the AA unknown command)
- Removed _alot_ of unused variables
- Fixed *some* -Wall warnings (still alot left to fix)
- Fixed some more -Wall warnings
- ./update now checks when you specify wget if it exists, if not it tries lynx
- Cached MOTDs are now dynamically allocated (saves alot of memory)
- Made aClient->passwd dynamically allocated (saves 32bytes per user/server)
- Fixed a NOTICE crash bug, reported by EJ
- Removed a excessive va_end in send.c
- Fixed a bug when running the ircd with -h
- Readded /summon to return ERR_SUMMONDISABLED (required by RFC1459)
- Made /users return ERR_USERSDISABLED (required by RFC1459)
- Removed all utmp calls
- Fixed Something ... cant remember what ... oh yes, fixed if (sptr->passwd[0]) to if (sptr->passwd)
it stopped the server crashing !
- Made Code revisions so that we can compile on Win32, and fixed some of sts's late nite
coding sessions(dbin)
- Fixed some REAL dumb find_server_quick bugs
- Fixed a wierd NOTICE bug
- Modified and fixed the NOTICE bug totally, with some waste of the nospoof
system
- Fixed a bug where +K could be set when +i was not (reported by rapta)
- Made it so if you set -i on a channel that is +K it sets -iK
- Fixed whowas so it no longer reports away messages
- Made major changes to +I (may need debugging)
- When you set +I while on a chan it sends a PART to the rest of the channel
- When you set -I which on a chan it sends a JOIN to the rest of the channel
- Net/TechAdmins now receive a JOIN/PART when you JOIN/PART a channel - Net/TechAdmins can now see +I users in /names
- Fixed a typo in s_err.c reported by TRON
- Fixed more -Wall warnings
- Added #define LIST_SHOW_MODES to show channel modes in a /list (NOTE: only shows modes, not params)
- Fixed /mode # + bug reported by PhatNet/Mind
- Possible fixed the SJOIN kick bug (mode +Q), servers can now always kick
- Added NEW DNS resolver (Win32 Only atm) ... use by defining NEWDNS
- FIXED "BUG" caused by NEWDNS *shrug*
- Fixed the passwd NICK problem
- Fixed the problem with NewDNS (ive always known about it but never known how it happens) [a pointer prob]
- Redhat 7 (broken string.h problem), ./Config
- Added SSL connections, open ports with P:ip:s:*:port to make them SSL
ports, made after hq.alert.sk's implementation
- Added P:line flags C - client only, S - server only, J - java clients (replaces CONFROOM_JAVA_PORT)
- Fixed up a few various things
- Made SHOWCONNECTNOTICES work properly again, also with SSL
- Changed ./Config to detect SSL better, and generate certificates properly
- Removed some annoying logging in ssl.c
- Merged in changes from TEMPcvs branch
- Fixed a /UNSQLINE para problem, found by Joe
- #define SHOW_SECRET now allows all ircops to see +s channels in /whois. If not defined, only net/tech admins can.
- Added #define CENSOR_QUIT, for WaveRide
- Fixed hashing bug that caused the server to crash on exit
- Made find_server_b64_or_real be a little faster, possible fixing bug
- Made /stats s checking check for sanity or insanity (ignore them for 0
numerics)
- Fixed SJOIN (mp2parv) bug, that caused insane desynchs
- Changed Cannot find server message to be to sendto_realops
- Fixed a warning in CENSOR_QUIT
- Fixed the G:Line user wrongly matching (ip-alike addys didnt check user)
- Added protoctl SJB64, which adds B64-9 timestamps to many timestamping
operations
- Added ircsprintf %B (base64-9^10) with ! as prefix, and %b (no prefix)
- Fixed a few places where for some reason sprintf() was used rather than ircsprintf()
- Tokenized ADCHAT, TECHAT, NACHAT, SWHOIS, and SVSKILL
- Fixed a bug in opermode that would make it display a notice on invalid modes
- Fixed a bug where the Found your hostname (cached) message was messed up
- Fixed a memory leak in the new password code
- Fixed a sptr->passwd bug
- Removed the unnecessary param from IsULine() it is now just IsULine(sptr)
- ircsprintf() is now used everywhere
- Fixed the SJB64 bugs that misplaced users
- Removed sendto_helpops and replaced it with sendto_umode
- Added is_chanownprotop() checks if +q +a or +o with 1 loop
- Added chmode +N (no nick changes) (opers, ulines, +o +q or +a can override)
- Added some fixes on the SJB64 crashing bug, and added tokenization in
channel messsages (yahooooo!)
- Fixed the /list bug, reported by many people
- Fixed a linking bug (where did that come from)
- Fixed bug where duplicate numerics could occur
- Fixed the hashing bug (thank you ROXnet ...)
- Fixed a wierd channel message bug ||
- Fixed a bug where non-NS servers would crash when linking
- Added TS2ts (supporting the SJB64 stuff), and fixed the !0 timestamp bug
- Fixed the /list only showing 64 channels bug! Also sped /list up in the process
- Probably fixed the hash bug, again.
- Possible fixed some b64 bugs
- Autodetects /usr/sbin/openssl now, thanks trinity
- Tokenized PING and PONG
- Fixes a missing : in SJOIN
- Possible fixed a internal server list bug
- When IRC WebTV bot cannot find a command, it sends it to parse() instead,
thanks [Real]
- Added burst.c in extras/
- Moved lopt and whowas to anUser (saves 8 bytes for every server)
- Removed aClient->history, not used (saves 4 bytes for every user/server)
- Fixed compile error with SSL
- Fixed a /list and /quit bug
- Fixed the masskill bug with replacing "Server Exists" code.. i removed it
accidentialy last time
- Added /botserv /bs command, patch by ATHnet.de
- /who's now show +i users for opers in channels, idea by Strider@ChatCircuit
- Fixed NO_OPEROVERRIDE bug reported by otherguy
- #define STATSWRITING will make ircd write ircd.stats every 4 seconds,
idea/sortof by WaveRide
Format of ircd.stats:
<global users>
<global invisible users>
<global servers>
<irc operators>
<unknown connections>
<local clients>
<local servers>
<local max clients>
<global max clients>
- Fixed +d (deaf) so it works again
- Removed some leftovers from the &channel code (which fixed a minor bug as well)
- Fixed a SJOIN3<->services problem
- Fixed a typo where it still said +I instead of +V in an error message
- Fixed the "Bad file descriptor" bug in SSL. This bugfix may be a bit risky
as it is manipulating BIO fds. The reason openssl freaked at this, was
that when a fd is closed, we change fds from 4 to 3 etc, in other words,
we renumber fds. SSL didn't know this and if you would call SSL_set_fd it
would close the connection/crash. Added SSL_change_fd() to change the FD
directly through BIO_set_fd.
- Fixed the masskill bug, hopefully. Was a delimiter/number array bug in
find_server_b64_or_real, causing negative base64 to be accepted (bad).
value 1-256 will never be able to be in two letters (a server name)
- Fixed \r\n bug, hopefully
- made SSL use same cert client/server
- Fixed help.c bug reported by Curt|s
- Different fixes, unreal.tspre.org -> unrealircd.com
- Fixed-fixed-fixed the \r\n bug and removed some useless cpu wasting code
- Removed remapping fds, and did a severe select() speedup, suggested by
Demiurgus. Should speed CPU a lot
- Updated some messages
- Fixed-fixed-fixed the U:line branching thing made by codemastr
- Fixed a G: line-turn-into Z:line problem, reported by eYe-Man
- Added SJOIN (SJ3 only) instead of JOIN/MODE in /join and discovered a bug in
SJOIN code, that if the line doesnt have a " " appeneded, it wont take the
last users or first for that sake. Hopefully patched SJ3 code for it
- Added OPT target OPT_SJB64 and OPT_NOT_SJB64
- Made SSL server<->server work, using __blocking__ sockets (this is only
in connect moment thou) -stskeeps
- Removed 1.0 msg/s when not in HTM
- Fixed cutoff server infos in synch
- Added so /gline and /shun accepts time periods in 1d2h3s etc. a recode of
some potvin stuff
- Added so blocking is only effective when SSL_connect()'ing
- Fixed a couple of SJOIN/Link problems detected by Curt|s
- Changed some stuff with SSL, you may want to seperate server.pem into
server.key.pem and server.cert.pem (or "rm Makefile" and "./Config")
- Fixed a couple of SJOIN/Link problems detected by Curt|s
- Made /stats C show SSL/Zip flags
- Fixed the Stskeeps "mass G:line on /rehash" (tm) bug
- Removed last point of confusion in ALN/NS
- Removed CRYPTOIRCD (replaced by SSL)
- Added support for some more SJB64 stuff
- Added some more support for some even more SJB64 stuff
- Added some network files and even more network files
- Fixed some copyright stuff in ssl.c
- Fixed a /map problem
- Updated doc/conf.doc and doc/example.conf
- Fixed a bug where /map showed U:lines while HIDE_ULINES was set
- Removed "on network" in /whois oper
- Added code to makenet to stop fake submissions
- Fixed some /whois channels code, which may break +I /whois
- Fixed overflow in SJOIN
- Added SMO *, all users
- If a +r user is /who'ed, it shows a "r" in flags field. Suggested by
Mirar.
- Fixed a typo in ssl.c
- Added SICI information, Donation information, fixed a ./Config problem
overwriting certs ..
- Added hatblade's files
- Added some credits
- Fixed a real bad /whois bug, reported by BiGi
- Fixed a problem with /sajoin .. atleast possible
- Added infofield in /stats L for clients/listeners
- Fixed a blocking socket thing
- Fixed up /stats L bug
- Changed CONNECTTIMEOUT to 30sec
- Changed some _more_ credits
- Fixed compile error found by Headbang
- #define CHINESE_NICK will make you able to use chinese nicks
thanks to RexHsu and Aim
- Fixed up CHINESE_NICK and JAPANESE_NICK, suggested by Aim, see
include/config.h
- Config change in SSL.h detection part
- SSL error change to sendto_umode(UMODE_JUNK)
- Fixed a hash error, topic problem
[fixes]
- Fixed a +d bug (it didnt send ` prefixes)
- Fixed a SJOIN bug, i think, thanks to Web
- Fixed a chinese nick thing, thanks to miCro and RexHsu
- Fixed a typo in config.h
- Fixed a bug in sendto_channel_prefix_tok reported by Strider@ChatCircuit
- Fixed P:line bug, caused by codemastr(tm) coding, (masskills), reported by
sidv@sid-kitty-land.org
- Some few fixes from CodeM and Barubary:
- Fixed /whois to show users for opers when not in the channel.
- Fixed /whois to allow only global eyes opers to see user modes.
- Fixed /whois to not show idle times of global opers to anyone except
another global oper or services.
- Fixed /who to show users for opers when not in the channel.
- Fixed restart bug, reported by RaYmAn
- Fix-fixed " Fixed /whois to not show idle times of global opers to
anyone" patch
- Fixed a recently found exploit involving reverse DNS (fix from bahamut)
- Made more openssl binary detection using 'which'
- Added message when trying to join a +z channel
- New segmentation fault code by Kanzen_Greiver
*** Unreal3.1 *** (final)
- Moved REMOVE_ADVERTISE a little
- Fixed bug where you could /mode #test +L #test (link a channel to
itself)
- Fixed a bug where a +L channel didn't have to be valid ex /mode #test
+L blah would work, dangerous if 0 is used
- Fixed /map showing U:lines even if HIDE_ULINES was set oops :)
- Fixed a bug where opers couldn't walk through +l
- Fixed a bug where /mode #test +f *N:N was recognized the same as +f N:N
(if *2:3 was set then /mode #chan +f 2:3 it wouldn't set, thought it was the same)
- Removed src/cio_init.c src/cio_main.c src/win32.c src/win32.rc as we don't
use that anymore
- Added ircsprintf() (ircsprintf.c and ircsprintf.h)
- Converted to use ircsprintf
- Now using sprintf_irc from ircu, as %li would screw up the hybrid variant
- Some fdlist updates from bahamut
- Header change
- Some more Header change
- Added agent.c for IRCd Agents (remote control etc)
- Fixed up some make misalignments
- Fixed +I /names
- Removed TESTNET defines
- Added poll() engine from bahamut (hard!)
- Made /vhost send failed login's to +e
- Made /stats V/R/F use raw rather than NOTICE
- Fixed some poll() engine problems
- Some more problems with poll()
- Removed the \2's from the is a Coder msg, whywere they there, no one
knows (codemastr) Because i was the only one using it =P (Stskeeps)
- Fixed /names problem..
- Made /mode <nick> use get_mode_str() to list the modes
- Made /lusers info be pre-calculated :) Saves hell of a lot CPU time
- Made /stats z/Z oper only
- Fixed SJOIN bug only totally fixed when all servers upgraded
- Moving old 3.0 stuff to Changes.old
- Re-added README.ALPHA
- Fixed some more SJOIN bugs
- Fixed NICKv2 bugs with non NICKv2
- Fixed up /info, there will be a better layout for this
- Fixed up some poll() engine bugs (i hope)
- Start of telnet proxy scan code
- Took telnet proxy scan code out again =/ It really fux0red up
- Added networks/treklink.network
- Added options to /HTM, ON/OFF TO (what load do we auto start at) NOISY/QUIET (toggle whether HTM should
announce when it starts)
- Fixed a little bug where /part didn't show the correct channel case
- Made unresolved host connections go faster, idea from PTLink IRCd v3.5.4 great job :)
- Removed support for & and + channels (i hope) and made m_message more
handy and support for /notice +#channel, %#channel etc etc
- Topic fix?
- Incorperated the bahamut m_list and send_list, it's faster and smaller :P
- When /HTM is active /list is disabled to non-opers
- OperMOTD is now loaded into memory (faster, saves memory, and CPU)
- Added /rehash -omotd to rehash the OperMOTD
- Added unrealircd.conf option for SETUID and SETGID if ircd started as root. And you can turn that off/on
by defining/undefining BIG_SECURITY_HOLE in config.h
- Fixed small bug in ircd.c and dynconf.c (not using #ifndef BIG_SECURITY_HOLE)
- Removed & and + channels for sure..
- All MOTDs, RULES are read into memory (including T:lines)
- Added /rehash -bmotd (BotMOTD) /rehash -motd/-rules (MOTDs/RULES)
- Fixed memory leak in dynconf.c, allocated 2048 on each /rehash -dynconf
- Fixed _serious_ memory leak in cloak.c, abused 128 bytes every time
someone went +x
- Alphabeticalized making..
- flush_connections more better
- Fixed calls to check_registered*, more CPU spare:)
- Fixed a bug in /tsctl svstime
- Fixed a bug in the cached MOTDs
- Added support for remote /htm
- Even more tokensation
- Removed IRCII_KLUDGE
- Fixed /lusers wrong reply
- Removed V28PlusOnly define
- Fixed a bug in channel_modes()
- More and more and more tokenzation >:)
- Fixed a bug in m_user
- Removed have_ops() and is_deopped(), they weren't used
- Reorganized can_send() to make it faster
- More tokenzation >:)
- Fixed ircsprintf() %lu error when %lu == 0
- Added devel/ directory, put ideas/specifications in here
- Added devel/new.plines to describe new upcoming P:lines
- Added NO_IDENT_CHECKING in config.h
- Fixed bugs in get_version() and also made it a bit faster
- Fixed RPL_MYINFO problem with UnrealIRCd/32 version and ircII
misunderstanding it, prob other clients too
- Updated msg.h hashtable to get most used commands more close
- Removed some unused defines in msg.h
- Removed dusers (not in use)
- m_user stuff
- Made use of : 's in between ircd.conf field working, using this format:
A:"Test test:Moo":Moo:moo
- Fixed some /lusers miscalculations
- Added INET6 patch, now for making it work :P
- More INET6 patching (not working atm)
- INET6 compiles now, works? :P
- Fixed some WebTV stuff
- Made the m_message routine not do a user hash lookup if it starts with #
- Removed some fields in structures like aClient etc that was unused
- Removed Client->iown and the OWNLOGON code
- Removed Channel->blist
- Removed heaps of unused variables in functions
- Fixed THE G:line bug, missing parameter
- Hopefully fixed some calculation bugs
- +F bugfix
- In TKL a gline shows reason in quit message now
- Fixed the SVSMOTD OPERMOTD and BOTMOTD bug, suggest parantheses problem
- In K:Line it shows reason in quit message now, not sure about AKILL
- Experimental NOTE in register_user added
- Implemented hybrid scache.c, created by orabidoo and Dianora
- Fixed /connect scache problem, and actually fixed the OPERMOTD bug
- The hopefully last calculation bug..
- Made bans and exceptions actually sync *ducks*, done in old fashion MODE
manner, better than making BS (bansync) or incorporating it in SJOIN
- Made /opermotd oper-only, bug reported by Bagge@ROXnet
- Made TOPICs be dynamically allocated - saves heaps memory
- Added hybrids/+cs'es /whowas system. Improved so it doesn't use static
character arrays, and uses dynamically allocated strings instead
- Added UMODE2 PROTOCTL and command, when a usermode change it uses :nick
UMODE2 +-umodes. token = '|'
- Made CONNECTFAST default, will ensure faster connecting
- Updated /helpop to list more commands and new modes
- the 1-message-per-2-sec not applied to opers
- Topic fix with dynamic allocation
- 1-message-per-2-sec now 1-message-per-1.5-sec
- Removed TS fix notice
- Removed User %s tries to become server notice
- Made MAXCHANNELSPERUSER an unrealircd.conf option
- Changed unrealircd.conf version to 1.2
- Credit changes..
- Uses dgets() from hybrid now, should be a minor CPU fix
- Moved WebTV support, and +I disabling to an unrealircd.conf option
- Updated doc/conf.doc, removed references to DALnet, and fixed typos
- Moved doc/Elite.Changes to doc/History/Elite.Changes, away away away with
that one
- Tokenized SQLINE
- Recoded dynconf, validates data too now
- Fixed a /list bug that crashed the server
- Fixed a minor bug in the new dynconf
- Fixed a bug in vhost.conf and dccdeny.conf where if the line was not valid it would crash, now it just
ignores that line
- Added comment support to vhost.conf, dccdeny.conf, and chrestrict.conf (makes loading faster)
- Fixed one of those "code, what the fuck were you smoking" bugs in m_svsmode etc
(what = MODE_DEL - eh?)
- Added AUTO_JOIN_CHANS to unrealircd.conf to force a user to join 1 or
more channels on connect, read networks/unrealircd.conf for more info
- Added networks/axenet.network
- Possible change in the -1 operator bug
- /info changes - Unreal3.1-beta1 release
- Added a bunch of networks
- Updated doc/conf.doc
- Updated networks/networks.ndx cause someone *cough* sts *cough* forgot
- Updated m_svso to -H the user
- Added Solaris2.5 support and cleaned up Solaris2.x support
- A little /list fix
- Changed the unrealircd.conf version to 1.3
- Fixed a bug in the AUTO_JOIN_CHANS
- Added OPER_AUTO_JOIN_CHANS to unrealircd.conf, same as AUTO_JOIN_CHANS
but is called on /oper
- Readded /ns, /cs, etc but this time they point to /nickserv, /chanserv,
etc
- Removed IRCd Agents and made it so all opers can join unlimited channels
- Updated src/chkconf.c to recognize new lines
- Added "/mode #chan qa" support to send a list of +q users / +a users in a chan
- Fixed "/mode #chan qa" ... see channel.c m_join for the problem ... sts you owe me a tenner =P ..
- Removed Reg1, Reg2 etc etc and register. Modern compilers optimize better
that way
- Sidenote: /msg nick@ bug can easily be caused in m_message
- Unreal3.1-beta1(build2)
- Disabled ID_* stuff but is still there, saves memory
- Made user->virthost a dynamic string now
- Fixed a virthost bug again, and starting to wreck in meow's badword patch,
gonna be a swearword filter and new version of REMOVE_ADVERTISING
- Added meow's badword patch
- Moved the badword patch chmode to +G (G Rated Channel) cause thats what some other ircd's use so lets try
and keep cross compatibility :P
- Added networks/interturk.network
- Fixed a bug in /names thanks to lucas for reporting it and fixing it :)
- Changed the badword umode to +G also
- Removed some unused variables from dynconf.h
- Cleaned up the dynconf and network file code to use less memory
- Fixed the kill bug in NICKv2, caused by codemastr(TM) code
(was calling m_join before sending NICK info to other servers)
- SO NO IT WAS NOT MY FAULT *slap* (Stskeeps) -
- Did an attempt on fixing the /msg nick@ bug
- /stats s in DEVELOP mode will show cached scache hosts
- Added src/aln.c, for the new ALN system, read doc/aln.doc
- Minor ALN fix
- Introduced ALN system, look at send.c::sendto_serv_butone_nickcmd, a
little better, we can scrape some functions now
- Some more ALN stuff, the server now understands |<aln> prefixes,
find_client too
- Added the "IRC Operators Message Of The Day" to /opermotd
- Made Y:1 class in makeconf max 250 (we might get some complaints here,
but people can change to their limit, but we have to make it this low
because else the program rj had can flood/crash the server
- Fixed a ALN problem with |nick persons getting killed off
- Removed an OLD EliteIRCD reference in ./Config, thanks to Linus
- Moved the ALN prefix to @ instead of |, as | would conflict with
clients
- Fixed ALN problem with it masskilling everyone :P
- ** RELEASE OF UNREAL3.1-BETA2 **
- Small Linux-ALPHA fix
- A small vsendto_prefix bugfix(?)
- Added /stats e to list e:lines
- Fixed a small /list problem
- Added #define USE_LOCALE, uses locale stuff in *nix versions
to make better toupper() tolower(). might help some chinese nick
things too
- Fixed a few minor NOSPOOF things
- Changed ircsprintf() to work with %lu with 0-5
- Added unreal-test.network, for the upcoming Unreal TESTnet (for beta
testers and developers only)
- Using MyFree/MyMalloc now instead of MyRealloc.. lets hope it fixes
something
- Fixed the virthost (possible), need extensive testing
- Possible fix of some server_estab problems
- Added networks/cc2.network, networks/kissland.network, and networks/digital-irc.network
- Changed unrealircd.conf version to 1.5
- Added HOST_TIMEOUT and HOST_RETRIES to unrealircd.conf to customize host resolving times
- Added Freelinks garbage collector (by Stskeeps :)), saves a lot of memory.
Check include/config.h on configuring it (default values should do)
- Fixed a /chghost and /chgident buffer overflow problem reported
by Gravitron.
- Added Solaris2.6 and 2.7 support
- Added /dccdeny to add a temporary dccdeny, erased on /rehash -dccdeny
- Added /undccdeny, if the EXACT file you type is found it is removed, else it uses wildcards to search
- Made it so you can't add duplicate dccdenys
- IRCstats.operators count fix. It MUST work now.
- Fixed a bug in dccdeny
- Added a logo to the IRCd startup and made it work a little bit better
- Made version.c update when .c.SH is changed
- Made sendto_serv_butone_token work with ALN prefixes too
- Fixed an SQLINE bug
- SVSFLINEs now sync when a server links
- SVSFLINEs are now tokenized
- Fixed the /nick othernick thing failing (ALN fault, lets hope it doesnt
break other stuff)
- Implemented DOUGH_HASH from hybrid IRCd
- Ran Unreal thru another memory leak check
- Fixed a whowas.c memory leak
- Added /rehash -garbage which will clean up freelinks
- NOTE on PTlinks so called make yourself oper bug.. cannot see how it
can trigger at all.
- Fixed up some E:line code
- Added n:lines banning based on real names (E:lines override n:lines)
- Fixed a minor bug in m_message
- Fixed up and ALNized SERVER commands like @E8 SERVER name
for instance.. sts tends to severely drool over this
- Hopefully fixed the /msg unknownnick missing ERR_NOSUCHNICK bug
- Fixed the cannot change to lowercase nick thing, and made
find_server() call hash_find_server instead of hash_find_client
*slaps* to stskeeps :P
- Fixed a bug caused by sts's '/msg unknownnick missing ERR_NOSUCHNICK bug' fix :)
- n:lines now checked on /setname (not checked for opers)
- Fixed a bug caused by a line of code I forgot to remove ;P
- Fixed the pesky \r bug caused by windows editors. Unreal ignores \r now
in ircd.conf
- For any sake, included the PTlink bugfix.., had some reports from
zurna.net of it
- Fixed an n:line bug(nice bug really? :P)
- Removed behavoir of co-admins able to set +q in #channels
(i think this was cos i was co-admin long time ago -sts)
- Made IRCops able to talk through +b, suggested by The_Cat
- Added /chgname nick :new realname and /svsname as an alias for it
(suggested by ^Tux^)
- Fixed Sts's favorite mistake
- Indented Unreal .c files
- PROTOCTL's can be said more than once now
- Fixed a /dccdeny - /undccdeny bug reported by auspice
- Fixed the negative oper count bug. Was caused by codemastr-coding(TM)
- Removed the old non-caching motd functions
- Some IRCstats.unknown fixes..
- Took out compatibility for "Pyramid OS", is ancient and let them
fix their fscked up os
- If a user (unknown connection) floods 2K (2048 byte) the user is
disconnected and tkl z:lined for 600 secs (10 mins). Idea by GZ
from StarChat IRCd, code recoded by Stskeeps
- A ircd.conf Y:Line class is not added if it contains max clients
> (MAXCONNECTIONS - 15)
- Flood activates only at unknown connections and only at 4K now ..
- Fixed a bug in m_setname with n:lines
- Added n:line support to m_chgname
- n:lines are now checked after a rehash
- Did a bugfix on ALN and non-ALN servers
- Fixed a bug with /chgname with incorrect parameters to other servers
- "Fixed" the /stats u bug?
- Fixed +f not working (?)
- Made the Own-protection just reduce the class maxli instead of bitching..
- Did a dirty hack on ALN problem with colliding hash (will deny linking in
wrong servers)
- Fixed /stats C not showing N:lines, reported by auspice
- Fixed codemastr (possible) fucked up the shell ircd script with
overwriting it ...
- Created /shun, /gline style. /shun +user@host time reason /shun -user@host
will extend it so you can /shun +nick later
- A little anti-0 fix in channel.c
- Made MODE_X, MODE_I etc show mode change to user
- Added channel mode +C to disallow channel CTCPs, /me (CTCP ACTION) is still allowed
- Fixed a bunch of +H bugs
- Fixed a bug where the channel was still shown in /who for +I users
- First part of ZIP_LINKS
- Fixed a typo in ./newnet
- Made /close reset IRCstats.unknown ..
- Made SVSO (ofcourse) IRCstats.operators--;
- Another IRCstats.unknown fix. Hope this works (hacked from undernet code)
- NETINFO protocol 0 is accepted as valid protocool (for services etc)
- /stats s is now avail only for opers in mainstream
- Took out "nick did a /userhost on you"
- Reduced hashtable size
- Took out sequent/dynix support
- Fixed a bug that prolly was fixed by Potvin, but was "not fixed correctly"
- Fixed a crash problem in register_user and most likely fixed the "strange
vhost" thing, (was a dumb bug, mising ircsprintf)
- Fixed the *** NickServ sets mode +creep SVS2MODE bug..
- sendto_serv_butone_token_opt ()..
- Small testing stuff
- In ./Config it runs a quick test to see how many socket()s you can do
- Fixed the double +cF notice on local connections exiting, ugly hack
- Removed the last traces of unix sockets, flag 0x10 free now
- Made all ircops able to use +F (totally this time)
- /quote close do not show realhost of caller anymore
- /shun accepts nick in add mode now (adds *@host)
- Allowed /shunned users to use /pong now
- Fixed (by DrBin) Shun and Gline bug, where they replaced eachothers ->type
.... Learn that (= != ==) /me looks at Sts
- You can now specify 0 as the time for any TKL (ex Glines, Shun) for it to be perm
- Fixed a +L bug, (3.1 only) where any op could set +L
- Added channel mode +u, "Auditorium". Makes /names and /who #channel only
show @'s
- Added config.h setting to disable oper overrides, NO_OPEROVERRIDE
- Added Debug support to win32 makefile ... compile with syntax
NMAKE -f makefile.win32 DEBUG=1
inorder to have debug support ... leave the DEBUG=1 out for normal builds
- Fixed ircsprintf.h ... we do want it to compile in debug mode yes ?
- Made /addline write to correct place when you use -f
- Made /zline not memory corrupt/crash, bad df bug
- Fixed a counting bug with unknown connections, very hopefully
- Fixed /htm giving wrong response when /htm to 1
- Fixed /shun showing "1970" to permanently shunned users
- Fixed ./Config showing freebsd 3.0 in freebsd 4
- Made so badwords.*.conf accepts # comments
- Added some default default badwords.message.conf and badwords.channel.conf
- Made so auditorium mode shows users to @'s
- Fixed a bug where /chgident would overflow into the *real* host if it where greater than USERLEN
because _someone_ aka sts told it to check against HOSTLEN rather than USERLEN... reported by wshs
- Fixed a bug in badwords not loading words correctly, and upped word limit
to 50
- Small fix with ./Config showing incorrect path of stddef.h
- Made operkick be part of NO_OPEROVERRIDE
- Made admins unable to be shunned
- Made some socket errors which normally only showed up in DEBUGMODE, show
up in ircd.log as well
- Fixed a wrongly outputted message (in hash collision detect)
- Removed aHush, not in use
- Removed DISALLOW_MIXED_CASE and IGNORE_FIRST_CHAR, waste of space
- Made IDLE_FROM_MSG stock define
- Made IRCII_KLUDGE disappear :P
- Fixed SENDQ_ALWAYS to be mainstream define (as always)
- Removed s_gline, not in use, removed some modeless channel checks (not needed), removed an old zombie
code, and removed a line from aHush that was missed
- Added networks/seveneagle.network
- /msg irc <command> now works whether or not WEBTV_SUPPORT is on
- Moved /mode #channel ^ and ListBits() to #ifdef DEVELOP
- Made it so servers behind a U:lined server (ex Juped Server) are U:lined too, helpful if HIDE_ULINES is
on (from bahamut)
- Added find_uline (from bahamut) for the new U:line code
- Modified /map to work with the new U:line code
- Redid s_err.c to be ALOT faster, based on bahamut's s_err.c (ALOT of
work)
- Fixed last R_LINE stuff (check_time_interval)
- Fixed /setname desynch
- Removed IsService(), and some wierd stuff
- Broken INETD support removed
- Removed some odd Clone stuff(?)
- Added Blowfish encryption ability (SetSecure()), will extend to more
better encryption
- Fixed a typo in /stats z
- Some more crypto stuff, will work on the new engine tommorow
- You can now encrypt the I:line passwords using mkpasswd (must have CRYPT_ILINE_PASSWORD defined)
- Editted Config to ask if you want encrypted I:line passwords
- Made it so you can encrypt restart/die passwords (same as I:line passwords)
- Editted Config to ask about encrypted restart/die passwords
- Made it so you can *view* a channel topic using /topic #channel without being a member
- Removed , support from /topic (not needed)
- Removed count_channels (not in use)
- Made a major is_banned speed up
- Redid K:line and n:line checking to be alot faster
- Fixed crypto stuff 100% :))
- Added CRYPTOIRCd ('r') to version string
- Added some more crypto stuff
- /crypto <algoritm> <keyfile laying in keys/> <parameters>
- Fixed a ->passwd bug caused by codemastr..
- Added fclose() calls to the vhost, dccdeny, and chrestrict confs
- Some V:line stuff (added VL protoctl, and parsing of the SERVER command for the proto and flags)
- Fixed so that in +c it shows if a user is connected securely
- Backported the passwd stuff, not needed.
- Fixed a crash problem on /quit or /squit
- Fixed some aligning in the VL PROTOCTL
- Fixed some fucked up passwd stuff again ..
- Fixed a little Client Protoctl problem
- Fixed a crypto problem (forgot an #ifdef bad sts!)
- Fully added V:lines (doesn't really do much till the next version, since old versions don't support it)
- Added /stats v to list V:lines (/stats V still does vhost.conf)
- Added OpenBSD 2.x support, thanks to noriko for donating the development shell
- Added so stuff like Lost connection to, (report_error) only goes to realops
- Added some more descriptive error messages
- Added doc/crypto.doc describing the encrypted irc protocol
- Fixed a sendto_serv_butone_token problem
- Removed any trace of MD5, we use random() for nospoof now, this fixed a
license problem too
- Removed NOSPOOF_SEED01 and 02
- Added VHP protoctl, (not in use in the synch). This makes virthost field
in NICKv2 use the real virthost even if its +t. (Thanks to SL7)
- Added support for the CR Java Chat auto join feature
- Fixed a msg.h location problem ..
- Added secure connections and openssl tracing to Config
- Added regex portablity and checks in Config
- Added a #define capability to config.h (DISABLE_USERMOD),
disables /sethost, /setident, /chgname, /chghost, /chgident
- Fixed a /rehash -garbage bug reported by Curt|s
- Added networks/makenet (generates a network configuration file)
- Added networks/staticedge.network
- Fixed some host revealing nick collision stuff
- Tokenized nick->nick PRIVMSG and NOTICE
- Made it so you can remove a protoctl by putting a - in front
- Fixed a bug in summon
- Added protection against webproxies
- Fixed TKL?
- Added SJ3, removed the old
- SJ3 bugfix, and another
- Hopefully a res.c fix.
- Fixed a +I bug
- Fixed a more SJ3 bug
- Updated networks/networks.ndx (bad sts!)
- Added networks/linuxsquare.network
- Added networks/chatstation.network
[recall]
- Fixed the pesky hostname bug
- Fixed a NO_OPEROVERDIE bug reported by Taz
- Fixed a +L bug
- Fixed a typo in Config
- SJ3 fixes. Let's hope this works (f*cken hell..)
- Fixed a V:line bug
- Added /infoserv (you can stop bugging us now skold ;P)
- Removed ALN, and the ALN system.
- Added base64 encoding instead, for ALN v2 (NS)
- Removed a SJ3 debug msg
- Removed SVSMODE +l support, and fixed servicestamp and +d support
- Changed to ircu/hybrid6/unreal mix of numeric 005
- Fixed a SJ3 Fake Direction loopbug (kills on nick collisions)
- SJ3 fixes, loop fix
- Added NS, new generation ALN.
- Added llthangel's whoisfix.patch, Makes sure +hv users show up as
%#channel instead of +#channel. Bug report by ^Fanta.
- Changed find_server_quick to work with masks too ..
- Removed UPING UDP socket. Only resfd opens a udp fd now
- Small memory cleanup
- NS introduction in sendto_serv_butone_token
- Fixed Q:lined nick NickServ from <unregistered> on Nickname Server message
- Fixed a problem in synch using acptr->name as info line
- Introduced NS in SQLINE..
- Fixed a problem in SVS2MODE not displaying mode changes, and well known
why
- Recoded SVSNOOP, but the IRCd doesn't get it at all??
- added llthangel to credits
- Changed channel.c so when you kick someone as halfop it doesn't show as an
OperKick (unless you kick an op) (reported by ^Fanta, patch by llthangel)
(rc2)
- Fixed SVS2MODE bug with illegal modes
- Fixed /notice @%+ bug, where it didnt work at all
- Fixed a small chmode +u bug
- Added sendto_chanops_butone because of codemastr's laziness
- Fixed a few +u bugs
- Fixed a +I bug (yes another one)
- Changed channel.c so that when an opped non +q/+a Oper kicks a user who
is +q/+a it invokes an OperKick (patch by llthangel)
- Fixed the +lL (+Ll) bug, will first be fixed 100% when all is 3.1
- Possible fixed the lopts bug
- Fixed a egcs problem in Config, the strtok bug
- Fixed the 'ulimit core size failed' bug (now checks whether it should
set the core size to unlimited in ./Config
- Changed s_user.c so that Opers will see +s channels in /whois
(patch by llthangel)
- +u now lists +a and +q people, and sends JOINs/PARTs to +a and +q people
- Fixed a /mode (umode) typo where it said no such channel rather than no such nick,
reported by llthangel
- Disabled anything with time in /list options temporary, causes bugs
- Fixed a little /chghost bug
- Fixed a SJ3 bug with ban syncing to SJ2 servers
- Fixed some cloak bugs(???)
- Made it so you can /knock without a reason, and a few /knock cleanups
- Made it so if the server name specified in the M:line does not contain a "."
the ircd logs it to ircd.log and dies
- Updated ./ircd to also say to look at ircd.log
- Fixed a SQLINE synch bug
- Added command line option -F to prevent the ircd to fork out
- Fixed the f*cken TKL bug
- Fixed a netsplit bug
- Changed some find_server(name, NULL) to find_server_quick to speed up
lookup of servers
- Made find_server_quick a prototype, and made some work more quicker as
well
- Removed the : in :nick NICK newnick :timestamp
- Added script ./update to help update, uses pull technology (wget, cvs)
- Added script ./Setup which makes the user forced through Unreal.nfo, FAQ,
Config, and all the things we want them to read/do to compile the IRCd
- Updated PREFIX Client Protoctl
- Added ^MrMike^'s command list, this one will be updated
- Removed ID_CVS, hopefully fixing some bastard stuff
- Fixed a last minute SJOIN bug
[ last fixes ]
- Re-added res_comp.c and win32.c and res_mkquery.c, which was damaged by
the ID_CVS remove
- Fixed a SHOWCONNECTINFO bug
- Fixed a MODE_STRIPWORDS bug
- Fixed a PART bug
- Fixed a STRIPBADWORDS bug
- Fixed a BotMOTD bug
- Added Dianora's /userhost
- Recoded /links using NS
- Recoded /map a bit using NS, and added usercounts to Server struct
- Some crazy time_t -> TS stuff, will save us some time in 2038
- Fixed the "/mode #blah +Cplkf 1 moo 5:5" ( mode/#blah [+pClkf 1moo 5:5]
problem
- Hopefully fixed the +x problem
- Fixed a bug with mkpasswd on OpenBSD
- Added desynch +e warning, and updated ./update enough ...
- Updated update to work better, and that you can use lynx instead of wget
- Added #undef SHUN_NOTICES, to add notices for users who are shunned
- Fixed bug with U:Lines should be able to privmsg/notice and recieve
badwords :P, does not work in channels
- Removed the old GLINE system, TKL is now standard.
- Added INV_TRACK define, we want people testing this.
- Fixed the -1 usercount bug, found by codemastr, fixed by Stskeeps
- Fixed a +h bug reported by Dukemaster
- Added IRIX support (does it work?)
- Fixed crypter so it actually functions (Makefile now sets mode 700) and
it encrypts X and N lines too.
- Fixed empty mode sends in register_user, reported by Bagge
- Added some portability stuff
- Fixed some empty-line/missing parameter stuff in dccdeny, vhost,
and dynconf, chrestrict
- Made vhost strip too long vhosts
- Removed INV_TRACK
- Fixed a typo in /vhost
- Fixed some problems/typos/notlookingsogood (TM) bugs, in the tkl code
- Fixed ban merging/similar bug in SJOIN
- Made /kick for opers only be possible for netadmin/techadmin
- Fixed /server so it doesnt support SERVER name :info anymore..
*** Unreal3.0-Morrigan(fix) ***
* NOTE: If your system clock is wrong you will have problems with TOPICs
being set on all servers. That is because TOPICs which are _new_ are
-16
View File
@@ -1,16 +0,0 @@
The foll. patches are NEW in 19.mu1 (besides the old patches of stats-w,
ban, topic, client connect, signon time, trace times in previous .mu
versions):
* All the modifications contained in U3.2, namely - TSpre8, silence, bquiet
* The K line comments patch.
* The operfail notification patch
* The mixed case userid reject patch
For info on these check the file README.patches
- Mmmm
[ $Id$ ]
-34
View File
@@ -1,34 +0,0 @@
For starters, not a lot is new. What is ?
* STATS o and STATS h added;
* most STATS options are no longer oper-only;
* privacy fixes to all of WHO, WHOIS, TRACE and STATS;
* more options in the ircd.conf file;
* non-debilitating DNS/ident use (DNS routines written specifically
for ircd which indludes small local cache);
* less bugs;
* easier to compile;
* heaps and heaps of new numerics;
* more problems for old clients that do stupid things;
* more numeric replies which replace old NOTICE's;
* compulsory ident checks and optional result usage;
* sendQ can now be class dependant;
* server handles client flooding better;
* for more information on changes, bug fixes during development, see
ircd/ChangeLog and common/ChangeLog
[ $Id$ ]
-41
View File
@@ -1,41 +0,0 @@
The Internet Relay Chat Program - IRC
Author: Jeff Trim, April '89
Revised: Greg Lindahl, Oct '90 (gl8f@virginia.edu)
Re-Revised: Helen Rose, March '94 (hrose@kei.com)
Have you ever wanted to talk with other computer users in other parts of
the world? Well guess what? You can! The program is called IRC and it
is networked much over North America, Europe, and Asia, Oceania, and parts
of Africa. This program is a substitution for talk(1), ytalk(1) and many
other multiple talk programs you might have read about. When you are
talking in IRC, everything you type will instantly be transmitted around
the world to other users that might be watching their terminals at the
time - they can then type something and RESPOND to your messages - and
vise versa. I should warn you that the program can be very addictive once
you begin to make friends and contacts on IRC ;-) especially when you
learn how to cuss in 14 languages.
Topics of discussion on IRC are varied, just like the topics of Usenet
newsgroups are varied. Technical and political discussions are
popular, especially when world events are in progress. IRC is also a
way to expand your horizons, as people from many countries and
cultures are on, 24 hours a day. Most conversations are in English,
but there are always channels in German, Japanese, and Finnish, and
occasionally other languages.
How To Get IRC (technical)
IRC is a fully-distributed client-server system, much like
NNTP-Usenet, with several clients availble in C and elisp. You may ftp
documentation and clients from any of the following sites:
many kinds of clients (C, elisp, X11, VMS, REXX for VM, MSDOS, Macintosh):
cs.bu.edu:/irc/clients
ftp.acsu.buffalo.edu:/pub/irc
ftp.funet.fi:/pub/unix/irc
coombs.anu.edu.au:/pub/irc
If you have any questions about IRC installation, write to hrose@kei.com.
[ $Id$ ]
-86
View File
@@ -1,86 +0,0 @@
/************************************************************************
* IRC - Internet Relay Chat, doc/etiquette
* Copyright (C) 1990, Lea Viljanen and Ari Husa
*
* 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$
*/
HOW TO BEHAVE ON IRC
Authors: Lea Viljanen (LadyBug) viljanen@kreeta.helsinki.fi
Ari Husa (luru) so-luru@tolsun.oulu.fi
1) Language
The most widely understood and spoken language on IRC is English.
However! As IRC is used in many different countries, English is by
no means the only language. If you want to speak some other language
than English (for example with your friends), go to a separate channel
and set the topic (with /topic) to indicate that. For example
/topic Finnish only!
would mean that this channel would be reserved for Finnish discussion.
On the other hand, you should check the topic (with /list command)
before you move to a channel to see if there are any restrictions about
language.
On a channel not restricted by /topic, please speak a language
everybody can understand. If you want to do otherwise, change channels
and set the topic accordingly.
2) Hello/Goodbye
It's not necessary to greet everybody on a channel personally.
Usually one "Hello" or equivalent is enough. And don't expect everybody
to greet you back. On a channel with 20 people that would mean one
screenful of hellos. It's sensible not to greet, in order not to be rude
to the rest of the channel. If you must say hello, do it with a private /msg.
The same applies to goodbyes.
3) Discussion
When you come to a new channel it's advised you to listen
for a while to get an impression of what's discussed. Please feel free
to join in, but do not try to force your topic into the discussion
if that doesn't come naturally.
4) {}|[]\
IRC has quite a lot of people from Scandinavian countries,
the above characters are letters in their alphabet. This
has been explained on IRC about a thousand and one times, so
read the following, do not ask it on IRC:
{ is an A with 2 dots over it
} is an A with a small circle above it
| is either an O with 2 dots over it or an O with a dash (/) through it
[, ], and \ are the preceding three letters in upper case.
There are a lot of people from Japan as well, who use Kanji characters
which may look quite exotic as well. As I don't know Kanji I don't
even try to explain any of the characters.
5) ATTENTION!
Remember, people on IRC form their opinions about you only by
your actions, writings and comments on IRC. So think before you type.
Do not "dump" to a channel or user (send large amounts of unwanted
information). This is likely to get you /kicked off the channel or
/killed off from irc. Dumping causes network 'burbs', connections going
down because servers cannot handle the large amount of traffic any more.
File diff suppressed because it is too large Load Diff
-963
View File
@@ -1,963 +0,0 @@
/************************************************************************
* IRC - Internet Relay Chat, doc/INSTALL
* Copyright (C) 1990,1991,1992, Jeff Trim, Mike Bolotski,
* Jarkko Oikarinen and 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$
*/
Installing IRC - The Internet Relay Chat Program
Overview of this document:
1) The config.h file
2) Editing the Makefile
3) Compiling IRC
4) The ircd.conf file
1) Edit the "config.h" file and make changes to the various #DEFINE's:
a) Copy the config.h.dist file to config.h before editing.
b) Define what type of UNIX your machine uses.
Pick the machine type which best describes your machine and change
the #undef to #define (if needed). Some flavours of Unix require no
#define and in such cases all others should be #undef'd.
c) DEBUGMODE
Define DEBUGMODE if you want to see the ircd debugging information
as the daemon is running. Normally this function will be undefined
as ircd produces a considerable amount of output. DEBUGMODE must be
defined for either of -t or -x command line options to work.
d) DPATH, SPATH, CPATH, MPATH, LPATH, PPATH
DPATH is provided so that the other pathnames (SPATH, CPATH, etc)
may be provided in just filename form. When the server starts, it
chdir's to DPATH before chroot or any other file operation, making
it the "current directory" for the server. This is where core files
will go if it core dumps.
Define SPATH to be the directory path to ircd. This is usually
/usr/local/bin/ircd, unless you don't have installation permission
there.
Define CPATH to be the directory path to the "irc.conf" file.
This path is usually /usr/local/lib/irc.conf. The format of this file
will be discussed later.
The LPATH #define should be set to "/dev/null" unless you plan to
debug the program. Note that the logfile grows very quickly.
Define MPATH to be the path to the 'motd' (message of the day) file
for the server. Keep in mind this is displayed whenever anyone
signs on to your server.
The PPATH is optional, but if defined, should point to a file which
either doesn't exist (but is creatable) or a previously used PPATH
file. It is used for storing the server's PID so a ps(1) isn't
necessary.
e) CHROOTDIR
To use the CHROOTDIR feature, make sure it is #define'd and that
the server is being run as root. The server will chroot to the
directory name provded by DPATH.
f) ENABLE_SUMMON, ENABLE_USERS
For security conscious server admins, they may wish to leave
ENABLE_USERS undefined, disabling the USERS command which can be used
to glean information the same as finger can. ENABLE_SUMMON toggles
whether the server will attempt to summon local users to irc by
writing a message similar to that from talk(1) to a user's tty.
g) SHOW_INVISIBLE_LUSERS, NO_DEFAULT_INVISIBLE
On large IRC networks, the number of invisible users is likely to
be large and reporting that number cause no pain. To aid and effect
this, SHOW_INVISIBLE_LUSERS is provided to cause the LUSERS command
to report the number of invisible users to all people and not just
operators. The NO_DEFAULT_INVISIBLE define is used to toggle whether
clients are automatically made invisible when they register.
h) OPER_KILL, OPER_REHASH, OPER_RESTART, LOCAL_KILL_ONLY
The three operator only commands, KILL, REHASH and RESTART, may all
be disabled to ensure that an operator who does not have the correct
privilidges does not have the power to cause untoward things to occur.
To further curb the actions of guest operators, LOCAL_KILL_ONLY can
be defined to only allow locally connected clients to be KILLed.
i) The rest of the user changable #define's should be pretty much self
explanatory in the config.h file. It is *NOT* recommended that any
of the file undef the line with "STOP STOP" in it be changed.
3) Configure and compile the code.
Edit the root Makefile for the server, uncomment/comment the correct
CFLAGS/IRCDLIBS lines as appropriate for your system.
Change DESTDIR to be the same as the path for DPATH in config.h.
Type "make". This will compile the server, the client, and the services.
At the end of this step, the server directory will contain 'ircd',
and the client directory will contain 'irc'. To get the server installed,
type "make install" which will build a default m4 file for preprocessing,
copy example.conf and put the server all in DESTDIR. The irc client and
a copy of the server will also be placed in BINDIR and the modes set
accordingly.
4) The ircd.conf file.
After installing the ircd and irc programs, edit the irc.conf file
as per the instructions in this section and install it in the
location you specified in the config.h file. There is a sample
conf file called example.conf in the /doc directory.
Appendix A describes the differences between IP addresses and host
names. If you are unfamiliar with this, you should probably scan
through it before proceeding.
The irc.conf file contains various records that specify configuration
options. The record types are as follows:
1. Server connections (C,N)
2. Machine information (M)
3. Client connections (I)
4. Default local server (U)
5. Operator priviliges (O)
6. Administrative info (A)
7. Excluded accounts (K)
8. Excluded machines (Q)
9. Connection Classes (Y)
10. Leaf connections (L)
11. Service connections (S)
12. Port connections (P)
13. Hub connections (H)
1. SERVER CONNECTIONS: How to connect to other servers
How other servers can connect to you
WARNING:
The hostnames used as examples are really only examples and
not meant to be used (simply because they don't work) in real life.
Now you must decide WHICH hosts you want to connect to and WHAT ORDER you
want to connect to them in. For my example let us assume I am on the
machine "rieska.oulu.fi" and I want to connect to irc daemons on 3 other
machines:
"garfield.mit.edu" - Tertiary Connection
"irc.nada.kth.se" - Secondary Connection
"nic.funet.fi" - Primary Connection
And I prefer to connect to them in that order, meaning I first want to
try connecting to "nic.funet.fi", then to "irc.nada.kth.edu", and
finally to "garfield.mit.edu". So if "nic.funet.fi" is down or
unreachable, the program will try to connect to "irc.nada.kth.se".
If irc.nada.kth.se is down it will try to connect to garfield and so forth.
PLEASE limit the number of hosts you will attempt to connect to down to 3.
This is because of two main reasons:
a) to save your server from causing extra load and delays
to users
b) to save internet from extra network traffic
(remember the old rwho program with traffic problems when
the number of machines increased).
The format for the CONNECT entry in the "irc.conf" is:
C:<TARGET Host Addr>:<Password>:<TARGET Host NAME>:<TARGET Host PORT>
Field: 1 2 3 4 5
for example:
C:nic.funet.fi:passwd:nic.funet.fi:6667
- or -
C:128.214.6.100:passwd:nic.funet.fi:6667
- or -
C:root@nic.funet.fi:passwd:nic.funet.fi:6667
Explanation:
Each field is separated with a ":" charcter:
Field 1: Field 1 tells the IRC program which option is being configured.
"C" corresponds to a server Connect option.
Field 2: Specifies the host name or IP address of the machine to connect
to. If "user@" prefixes the actual hostname or IP address
the server will require that the remote username returned by
the ident server be the same as the one given before the "@".
Field 3: The password of the other host. A password must always be
present for the line to be recognized.
Field 4: The full hostname of the target machine. This is the name that
the TARGET server will identify itself with when you connect
to it. If you were connecting to nic.funet.fi you would receive
"nic.funet.fi" and that is what you should place in
this field.
Field 5: The INTERNET Port that you want to connect to on the TARGET
machine. Most of the time this will be set to "6667".
If this field is left blank, then no connections will
be attempted to the TARGET host, and your host will accept
connections FROM the TARGET host instead.
Some examples:
C:nic.funet.fi::nic.funet.fi:6667
This reads: Connect to host "nic.funet.fi", with no password
and expect this server to identify itself to you as
"nic.funet.fi". Your machine will connect to this host to
PORT 6667.
C:18.72.0.252:Jeff:garfield.mit.edu:6667
This reads: Connect to a host at address "18.72.0.252", using a
password of "Jeff". The TARGET server should identify
itself as "garfield.mit.edu". You will connect to Internet
Port 6667 on this host.
C:irc.nada.kth.se::irc.nada.kth.se
This reads: do not attempt to connect to "irc.nada.kth.se",
but if "irc.nada.kth.se" requests a connection,
allow it to connect.
Now back to our original problem, we wanted OUR server CONNECT to 3
hosts, "nic.funet.fi", "irc.nada.kth.se" and "garfield.mit.edu" in
that order. So as we enter these entries into the file they must be
done in REVERSE order of how we could want to connect to them.
Here's how it would look if we connected "nic.funet.fi" first:
C:garfield.mit.edu::garfield.mit.edu:6667
C:irc.nada.kth.se::irc.nada.kth.se:6667
C:nic.funet.fi::nic.funet.fi:6667
Ircd will attempt to connect to nic.funet.fi first, then to irc.nada
and finally to garfield.
Reciprocal entries:
Each "C" entry requires a corresponding 'N' entry that specifies
connection priviliges to other hosts. The 'N' entry contains
the password, if any, that you require other hosts to have before
they can connect to you. These entries are of the same format as
the "C" entries.
Let us assume that "garfield.mit.edu" connects to your server
and you want to place password authorization authorization on garfield.
The "N" entry would be:
N:garfield.mit.edu:golden:garfield.mit.edu
This line says: expect a connection from host "garfield.mit.edu",
and expect a login password of "golden"
and expect the host to identify itself as "garfield.mit.edu".
N:18.72.0.252::garfield.mit.edu
This line says: expect a Connection from host "18.72.0.252", and
don't expect login password. The connecting host should identify itself
as "garfield.mit.edu".
Wildcards domains:
To reduce the great amount of servers in IRCnet wildcard
DOMAINS were introduced in 2.6. To explain the usage of
wildcard domains we take an example of such:
*.de - a domain name matching all machines
in Germany.
Wildcard domains are useful in that ALL SERVERS in Germany
(or any other domain area) can be shown as one to the
rest of the world. Imagine 100 servers in Germany, it
would be incredible waste of netwotk bandwidth to broadcast
all of them to all servers around the world.
So wildcard domains are a great help, but how to use them ?
They can be defined in the N-line for a given connection,
in place of port number you write a magic number called
wildcard count.
Wildcard count tells you HOW MANY PARTS of your server's name
should be replaced by a wildcard. For example, your server's
name is "tolsun.oulu.fi" and you want to represent it as
"*.oulu.fi" to "nic.funet.fi". In this case the wildcard count
is 1, because only one word (tolsun) is replaced by a wildcard.
If the wildcard count would be 2, then the wildcard domain would
be "*.fi". Note that with wildcard name "*.fi" you could NOT
connect to "nic.funet.fi", because that would result in a server
name COLLISION (*.fi matches nic.funet.fi).
I advice you to not to use wildcard servers before you know
for sure how they are used, they are mostly beneficial for
backbones of countries and other large areas with common domain.
2. MACHINE INFORMATION
IRC needs to know a few things about your UNIX site, and the "M" command
specifies this information for IRC. The fomat of this command is:
M:<YOUR Host NAME>:xxx:<Geographic Location>:<Internet Port>
Field: 1 2 3 4 5
Explanation:
Field 1: "M" specifies a Machine description line
Field 2: The name of YOUR host adding any Internet DOMAINNAME that
might also be present.
Field 3: -- NOT USED --: Set to Value NULL (No spaces at ALL!).
Field 4: Geographic Location is used to say WHERE YOUR SEVRER is,
and gives people in other parts of the world a good
idea of where you are! If your server is in the USA, it is
usually best to say: <CITY> <STATE>, USA. Like for Denver
I say: "Denver Colorado, USA". Finnish sites (like
tolsun.oulu.fi generally say something like "Oulu, Finland".
Field 5: The Internet port your server will use. Should be set to
the same value as in the config.h file.
Example:
M:tolsun.oulu.fi::Oulu, Finland:6667
This line reads: My Host's name is "tolsun.oulu.fi" and
my site is located in "Oulu, Finland". My ircd will use
Internet Port 6667.
M:orion.cair.du.edu::Denver Colorado, USA:6667
This line reads: My Hosts name is "orion.cair.du.edu"
and my site is located in "Denver Colorado, USA".
I have defined Internet Port number "6667" to be used
as my IRCD Socket Port.
3. CLIENT CONNECTIONS - How to let clients connect to your IRCD.
A client is a program that connects to the ircd daemon (ircd). Currently
there are clients written in C and in GNU Emacs Lisp. The "irc"
program is the C client. Each person that talks via IRC is running
their own client.
The irc.conf files contains entries that specify which clients are allowed
to connect to your irc daemon. Obviously you want to allow your cwn
machine's clients to connect. You may want to allow clients from
other sites to connect. These remote clients will use your server
as a connection point. All messages sent by these clients will pass
through your machine.
The format of this entry in the conf file is:
I:<TARGET Host Addr>:<Password>:<TARGET Hosts NAME>:<Internet Port>
Field:1 2 3 4 5
For example, if you were installing IRC on tolsun.oulu.fi and you wanted
to allow examples sake let us assume you were making this file for
tolsun and you wanted to let your own clients to connect to your
server, you would add this entry to the file:
I:128.214.5.6::tolsun.oulu.fi
or
I:tolsun.oulu.fi::tolsun.oulu.fi
If you wanted to let remote clients connect, you could add the
following lines:
I:*.du.edu::*.du.edu
Allow any clients from machines whose names end in "du.edu" to connect
with no password.
I:128.214.6.100::nic.funet.fi
Allow clients from a machine with that IP number and the name
nic.funet.fi to connect.
I:*.tut.fi:secret:*.tut.fi
Allow clients from machines matching *.tut.fi to connect
with the password 'secret'.
I:*::*
Allow anyone from anywhere to connect your server.
This is the easiest way, but it also allows people to for example
dump files to your server, or connect 1000 (or how many open
sockets per process your OS allows) clients to your machine
and take your network ports. Of course the same things can be
done by simply telnetting to your machine's SMTP port (for example).
NEW!!!
As of the 2.7.2d version of the server, the server is able to accept
connections on multiple ports. I-lines are required for each P-line
to allow connections to be accepted. For unix sockets, this means
either adding I:/path/port::/path/port or some variation (wildcards
are recognised here). For internet ports, there must be an I-line
which allows the host access as normal, but the port field of the
I-line must match that of the port of the socket accepting the
connectiion. A port number of 0 is a wildcard (matches all ports).
4. DEFAULT HOSTS (for local clients)
This defines the default connection for the irc client. If you are
running an ircd server on the same machine, you will want to define
this command to connect to your own host. If your site is not running
a server then this command should contain the TARGET host's connection
information and password (if any). The format for this command is:
U:<TARGET Host addr>:<Password>:<TARGET Host NAME>:<Internet Port>
Field: 1 2 3 4 5
For example:
U:tolsun.oulu.fi::tolsun.oulu.fi:6667
U:128.214.5.6::tolsun.oulu.fi:6667
U:tolsun.oulu.fi::tolsun.oulu.fi
If the port number is omitted, irc will default to using 6667.
5. OPERATOR Privileges: How to become the IRC administrator on your site
To become an IRC Administrator, IRC must know who is authorized to become
an operator and what their "Nickname" and "Password" is. To add this
information, EDIT your "irc.conf" file and add the following command
line to it:
O:<TARGET Host NAME>:<password>:<nickname>:<port>:<class>
Field: 1 2 3 4 5 6
Explanation:
Field 1: Speficies Operator record. If you use capital letter ('O')
in it, it specifies a global operator. Small letter ('o')
specifies a local operator. Local operator has basically the
same rights except global operator with some restrictions.
Field 2: Tells IRC which host you have the privileges FROM. This
means that you should be logged into this host when you
ask for the priviliges. If you specify "tolsun.oulu.fi"
then IRC will expect your CLIENT to be connected at
"tolsun.oulu.fi" - when you ask for OPERATOR privileges
from "tolsun.oulu.fi". You cannot be logged in at any
other host and be able to use your OPERATOR privileges
at tolsun, only when you are connected at TOLSUN will this
work - this is a safeguard against unauthorized sites.
Field 3: If your AUTHORIZATION Password - this is the password that
let's IRC know you are who you say you are! Never tell anyone
your password and always keep the "irc.conf" file protected
from all of the other users.
Field 4: The Nickname you usually go by - but you can make this what
you want. It is better to make this a NICKNAME that no one
else knows, but anything will do. I usually use my own
loginname.
Field 5: Unused.
Field 6: The class field should refer to an existing class (preferably
having a lower number than that for the relevant I-line) and
determines the maximum number of simultaneous uses of the
O-line allowable through the max. links field in the Y-line.
Example:
O:orion.cair.du.edu:pyunxc:Jeff
There is an OPERATOR at "orion.cair.du.edu" that can get
Operator priviliges if he specifies a password of "pyunxc"
and uses a NICKNAME of "Jeff".
6. ADMINISTRATIVE INFORMATION
The "A" command is used for administrative information about a site.
The e-mail address of the person running the server should be included
here in case problems arise.
A:<Your Name/Location>:<Your Electronic Mailing Addr>:<other>
Field: 1 2 3 4
Explanation:
Field 1: "A" specifies an Admin record.
Field 2: Use this field to say tell your FULL NAME and where in the
world your machine is. Be sure to add your City,
State/Province and Country.
Field 3: Use this field to specify your Electronic Mailing Address
preferably your Internet Mailing Address. If you have
a UUCP or ARAPnet address - please add that as well. Be
sure to add any extra DOMAIN information that is needed,
for example "mail jtrim@orion" probably won't work as a
mail address to me if you happen to be in Alaska. But
"mail jtrim@orion.cair.du.edu" would work because you
know that "orion" is part of the DOMAIN "cair.du.edu".
So be sure to add your DOMAINNAMES to your mailing addresses.
Field 4: Is really an OTHER field - you can add what you want here,
Examples (the line is just one line in the confuration file, here it
is cut into two lines to make it clearer to read):
A:Jeff Trim - Denver Colorado, USA:INET jtrim@orion.cair.du.edu UUCP {hao,
isis}!udenva!jtrim:Terve! Heippa! Have you said hello in Finnish today?;)
Would look like this when printed out with the /admin command:
Jeff Trim - Denver Colorado, USA
INET jtrim@orion.cair.du.edu UUCP {hao,isis}!udenva!jtrim
Terve! Hei! Heippa! Have you said hello in Finnish today? ;)
Note that the A record cannot be split across multiple lines; it will
typically be longer than 80 characters and will therefore wrap around
the screen.
7. REMOVING A USER FROM IRC Remove an errant user from IRC on your site.
Obviously it is hoped that you wouldn't have to use this command.
Unfortunately sometimes a user can become unmanageable and this is your
only recourse - the KILL USER command. THIS COMMAND ONLY AFFECTS YOUR
SERVER - If this user can connect to another SERVER somewhere else in
the IRC-Network then you would have to talk to the administrator on that
site to disable his access from that IRCD Server as well.
The format of this command is:
K:<Host Name>:<time interval(s)>:<User>
Field: 1 2 3 4
Explanation:
Field 1: "K" tells the IRCD that you are making a KILL USER command
entry.
Field 2: In this field you specify the Hostname that the user is
connecting from. If you wanted to REMOVE connects
to IRC from "orion.cair.du.edu" then you would want to enter
"orion.cair.du.edu". If you want to REMOVE ALL HOSTS
access you can use '*' (Wild Card notation) and no matter
what host the USERNAME (specified in Field 4) connects from
s/he will be denied access. Removing all hosts isn't
very smart thing to do though, why would you run an ircd
if you allow nobody to connect to it anyways ?
Field 3: Either leave this field empty (no spaces), then then lines
is active continuously for the specified user/host machine.
You may also specify intervals during the line should be
active, see examples above.
Field 4: The USERNAME of the user you want removed from IRC. For
example 'root'.
Some Examples:
K:orion.cair.du.edu::jtrim
If user 'jtrim' connects to IRC from host "orion.cair.du.edu"
then IMMEDIATELY REMOVE HIM from my IRCD.
K:*.cair.du.edu::root
If user 'root' connects to IRC from any host that has the
suffix "cair.du.edu" - then IMMEDIATELY REMOVE THEM from
my IRCD.
K:*::vijay
This line reads "I don't care WHAT HOST user 'vijay' is on,
I will NEVER allow username 'vijay' to login to my IRCD.
K:*.oulu.fi:0800-1200,1400-1900:*
This disallows all users from hosts with enddomain 'oulu.fi'
access to your server between 8 and 12am, 2 and 7pm.
Users get kicked off if they're already signed on when the
line becomes active (they'll get a warning 5 minutes ago).
8. Disallowing SERVERS in your irc net.
In some cases people run into difficulties in net administration.
For one reason or another you do not want a certain server to be
in your net (for example because of the security holes it opens
for every server if it's not secured carefully). In that case
you should use Q-lines in your server. When you specify a server
name in Q-line, everytime some server link tries to introduce you
a server (remember, all server names are broadcast around the net),
that name is checked if it matches the Q-lines in your server.
If it matches, then your server disconnects the link. Note that
just placing Q-lines to your server probably results in your server
being left alone, unless other servers have agreed to have the
same Q-line in their ircd configuration files as well.
Example:
Q::of the security holes:foo.bar.baz
This command excludes a server named "foo.bar.baz", the reason
is given to be security holes (you should give a reason, it is
polite). The first field is unused, so leave it empty.
9. Connection Classes.
To enable more efficient use of MAXIMUM_LINKS, connection classes
were implemented. To give a connection a class, add another field
(a sixth) to the C/N lines for a particular server.
Each line for a server should have the same number as the sixth
field. If it is absent, the server deaults it to 0, using the
defaults from the config.h file. To define a connection class,
you need to include a Y: line in the irc.conf file. This enables
you to define the ping frequency, connection frequency and maximum
number of links that class should have. Currently, the Y: line MUST
appear in the irc.conf file BEFORE it is used in any other way.
The format for the line is:
Y:<CLASS>:<PING FREQUENCY>:<CONNECT FREQUENCY>:<MAX LINKS>:<SENDQ>
Field: 1 2 3 4 5 6
Field 2: This is the class number which gains the following attributes
and should match that which is on the end of the C/N line.
Field 3: This field defines how long the server will let the connection
remain "silent" before sending a PING message to make sure it is still
alive. Unless you are sure of what you are doing, use the default value
which is in your config.h file.
Field 4: By changing this number, you change how often your server
checks to see if it can connect to this server. If you want to check
very occasionally, use a large value, but if it is an important
connection, you might want a smaller value so that you connect to it
as soon as possible.
Field 5: This field defines the maximum number of links this class
will allow from automatic connections. Using /CONNECT overrides this
feature.
Field 6: This field defines the 'sendq' value for this class. If this
field is not present, the default (from config.h) is assigned.
NOTE: leaving any of the fields out means their value is 0 (ZERO)!!
example:
Y:23:120:300:5
define class 23 to allow 5 auto-connections, which are checked every
300 seconds. The connection is allowed to remain silent for 120
seconds before a PING is sent. NOTE: fields 3 & 4 are in seconds.
You may also give I lines a class (again the sixth field to define
which class). This is only usefull (currently) for redefining the
ping frequency. It can also be useful as a diagnostic to see how
much each I line is used when combined with the TRACE output.
Another feature of connection class is the ability to do automatic
routing by using the class as a 'priority'. If you are connected
to a server which has a class lower than one of the servers that is
'behind' it, the server will disconnect the lower class one and
schedule a 'new' connection for the higher class server.
10. Leaf Connections.
To stop servers which should only act as leaves from hubs becoming
hubs accidently, the L line was introduced so that hubs can be aware
of which servers should and shouldnt be treated as leaves. A leaf
server is supposed to remain a node for the entirity of its life
whilst connected to the IRC server network. It is quite easy, however
for a leaf server to be incorrectly setup and create problems by
becoming a node of 2 or more servers, ending its life as a leaf. The
L line enables the administrator of an IRC 'Hub server' to 'stop' a
server which is meant to act as a leaf trying to make itself a hub.
If, for example, the leaf server connects to another server which doesnt
have an L-line for it, the one which does will drop the connection, once
again making the server a leaf.
L:<SERVER MASK>:*:<SERVER NAME>:<MAX DEPTH>
Field: 1 2 3 4 5
Field 2 is a mask of which servers the leaf-like attributes are used on
when the server receives SERVER messages. The wildcards * and ? may be
used within this field for matching purposes. If this field is empty,
it acts the same as if it were a single * (ie matches everything).
Field 4 is the the server connectted to you that for which you want to
enforce leaf-like attributes upon.
Field 5 is the maximum depth allowed on that leaf and if not specified,
a value of 1 is assumed. The depth is checked each time a SERVER message
is received by the server, the hops to the server being the field checked
against this max depth and if greater, the connection to the server that
made its leaf too deep has its connection dropped.
For the L-line to come into effect, both fields, 2 and 4, must match up
with the new server being introduced and the server which is responsible
for introducing this new server.
11. Service Connections (Not yet implemented)
Introduction.
The Service is a special kind of IRC client. It does not have the full
abilities of a normal user but can behave in a more active manner than
a normal client. Services as they stand now are not fully implemented.
The following line can be added to your ircd.conf file to enable a
service:
S:<TARGET Host Mask>:<password>:<service_name>
Field: 1 2 3 4
Explanation:
Field 2:
The host mask should be set to match the hosts(s) from which the
service will be connecting from. This may be either an IP# or full
name (prefered).
Field 3:
This is the password which must be passed in the SERVICE command.
Field 4:
The 'service name' is only used for the purpose of finding the
right S-line from the ircd.conf file for password matching. The
actual service name used is that set by NICK commands prior to
SERVICE being sent.
To connect a service to your server, you must first create an S-line
entry in your ircd.conf file and get your server to read this in (ie
rehash or reboot). Once your server has updated itself, you can then
attempt to register your connection as a service.
Registering as a service is similar to registering as a normal user
except that you must send NICK first and then SERVICE. The service
command should look something like this:
SERVICE secretpassword referencename :Service information
A successfull registering of a service at the server will result in
a RPL_YOURESERVICE (383) being sent back to you. Any other reply as
a result of sending service indicates an error has occured.
A service is not a very useful sort of client, it cannot join channels
or issue certain commands although most are available to it. Services,
however, are not affected by flood control. It is therefore wise to
oversee the use of S-lines with some care.
12. Port Connections
Introduction.
The port line adds flexibility to the server's ability to accept
connections. By use of this line in the ircd.conf file, it is easy
to setup both Unix Domain ports for the server to accept connections
on as well as extra internet ports.
P:<Internet IP# Mask>:<*>:<*>:<PORT>
Field: 1 2 3 4 5
or
P:<Directory>:<*>:<*>:<PORT>
Field: 1 2 3 4 5
Explanation
Internet Ports
Field 1
The internet IP mask defines where connections may come from and
be accepted. The IP mask uses either *'s or 0's as wildcards. The
following two lines are the same:
P:128.2.*:::6664
P:128.2.0.0:::6664
The incoming isnt matched against the mask, rather the ip# string
is decoded and compared segment by segment. Thus
P:128.2*.1.2:::6664
will not match 128.20.1.2.
Field 5
The port number field tells the server which port number it should
listen on for incoming connections.
Unix Socket Ports.
Field 1
The path set in field 1 should be the directory name in which to
create the unix socket for later listening to. The server will
attempt to create the directory before creating the unix socket.
Field 5
The port field when used in combination with a pathname in a P-line
is the filename created in the directory set in Field 1.
Example:
P:/tmp/.ircd:::6667
Creates a unix socket in the /tmp/.ircd directory called "6667".
The unix socket (file) must be a numerical.
13. Hub Connections
In direct contrast to L-lines, the server also implements H-lines to
determine which servers may act as a hub and what they may 'hub for'.
If a server is only going to supply its own name (ie act as a solitary
leaf) then no H-line is required for, else a H-line must be added as
follows:
H:<SERVER MASK>:*:<SERVER NAME>
Field: 1 2 3 4
Explanation:
Field 2
All servers that are allowed via this H-line must match the mask
given in this field.
Field 4
This field is used to match exactly against a server name, wildcards
being treated as literal characters.
Examples:
H:*.edu:*:*.bu.edu
Allows a server named "*.bu.edu" to introduce only servers that
match the "*.edu" name mask.
H:*:*:eff.org
Allow "eff.org" to introduce (and act as a hub for) any server.
Note: It is possible to have and use multiple H-lines (or L-lines) for
the one server. eg:
H:*.edu:*:*.bu.edu
H:*.au:*:*.bu.edu
is allowed as is
L:*.edu:*:*.au
L:*.com:*:*.au
Appendix A: Difference between IP addresses and hostnames
There are 2 different types of INTERNET addresses, NAME addresses and
NUMERIC addresses. NAME addresses look like ENGLISH words (and indeed
they are ENGLISH words that refer to a given host). A NAME address looks
like "tolsun.oulu.fi" - and that particular address refers to the machine
named TOLSUN in Finland. It is a UNIQUE address because no other machine
in the world has its NAME address the same as "tolsun.oulu.fi". Anytime
you say "telnet tolsun.oulu.fi" - you would always connect to TOLSUN in
Finland. NUMERIC addresses refer to those addresses that are made up of
NUMBERS for example "128.214.5.6" is the NUMERIC address for TOLSUN. This
address is also UNIQUE in that no other machine in the world will be use
those NUMERIC numbers. The NUMERIC address is usually more reliable than
the NAME address because not all sites can recognize and translate the
NAME address into it's numeric counterpart. NUMERIC always seems to work
best, but use a NAME address when you can because it is easier to tell
what host you are connected to.
Every Unix machine has a file called "/etc/hosts" on it. This file
contains NAME and NUMERIC addresses. When you supply IRC with a NAME
address it will at first try to find it in /etc/hosts, and then (if it's
really smart), use the local Domain Name Server (DNS) to find the NUMERIC
address for the host you want to connect to. Thus if you plan to use NAME
addresses keep in mind that on SOME sites the entry for the TARGET machine
must be found in /etc/hosts or the NAME address will fail. A typical
entry in /etc/hosts looks like this:
130.253.1.15 orion.cair.du.edu orion.du.edu orion # BSD 4.3
This particular example is the Host ORION at the University of Denver.
Notice that on the far left is the NUMERIC Address for orion. The
next few ENGLISH words are the NAME addresses that can be used for orion,
"orion.cair.du.edu", "orion.du.edu", "orion". ALL of these NAME addresses
will return the NUMERIC address "130.253.1.15" which IRC will use to
connect to the TARGET UNIX. (when I say TARGET UNIX I am refering to the
UNIX you want to connect to for IRC). Any futher questions about
/etc/hosts should be directed to "man hosts".
Appendix B: Enabling Summon Messages
+-----------------------------------------------------------------------+
| E N A B L I N G / S U M M O N M E S S A G E S |
+-----------------------------------------------------------------------+
*NOTE* You must have ROOT or special access to the GROUP tty ('/dev')
to do this. If you want to allow users around the world to summon
users at your site to irc, then you should make sure that summon works.
The "IRCD" program needs access to the GROUP of '/dev'. This
directory is where user TTY's are stored (as UNIX treats each Terminal
as a FILE!) IRCD needs GROUP ACCESS to /dev so that users can be
SUMMONED to the program by others users that are *in* the program.
This allows people from other Universities around the world to SUMMON
your users to IRC so that they can chat with them. Berkeley, SUN, HP-UX
and most of the newer versions of UNIX check to see if a USER is
accepting MESSAGES via the GROUP access rights on their TTY listing
in the /dev directory. For example an entry in '/dev' looks like this:
(Unix Path on BSD 4.3 UNIX is: /dev/ttyp0)
crw------- 1 jtrim 20, 0 Apr 29 10:35 ttyp0
You will note that 'jtrim' OWNS this terminal and can READ/WRITE to this
terminal as well (which makes sense because I am ENTERING DATA and
RECEIVEING DATA back from the UNIX). I logged into this particular
UNIX on "April 29th" at "10:35am" and my TTY is "ttyp0". But further
of *note* is that I do not have my MESSAGES ON! (mesg n) -- This is
how my terminal would look with MESSAGES ON (mesg y):
crw--w---- 1 jtrim 20, 0 Apr 29 10:35 ttyp0
With my MESSAGES ON (mesg y) I can receive TALK(1) requests, use the
UNIX WRITE(1) command and other commands that allow users to talk
to one another. In IRC this would also allow me to get IRC /SUMMON
messages. To set up the "IRCD" program to work with /SUMMON type
the following: (using ROOT or an account that has access to '/dev').
% chgrp tty ircd
% chmod 6111 ircd
The above commands read: "Give IRCD access to GROUP tty (which is /dev)
and then when ANYONE runs the IRCD allow SETUID and SETGID priviliges
so that they can use the /SUMMON command.
-382
View File
@@ -1,382 +0,0 @@
/************************************************************************
* IRC - Internet Relay Chat, doc/MANUAL
* Copyright (C) 1990, Karl Kleinpaste
*
* $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.
*/
Date: 04 Apr 1989
Author: Karl Kleinpaste
karl@cis.ohio-state.edu
Last modification: 15 May 1992
by Mauri Haikola
mjh@stekt.oulu.fi
INTERNET RELAY CHAT
a real-time conversational system
* 1: Irc - replacement for talk(1)
Irc is a functional replacement for and improvement to talk(1). Talk
is an old, primitive, atrocious, minimalist sort of keyboard/screen
conversation tool, using a grotesque, machine-dependent protocol.
Irc does everything talk does, but with a better protocol, allowing
more than 2 users to talk at once, with access across the aggregate
Internet, and providing a whole raft of other useful features.
* 2: Entering Internet Relay Chat
There are two ways to enter Internet Relay Chat. If you are using the
emacs lisp client, you need to load the client into your Emacs session
and then M-x irc. If you are using the C client (easier for beginners)
then type (usually) irc. If you wish to be known by a nickname which
is not one's login name, type `irc chosen-nickname' instead.
* 3: How much can be seen from here
The universe - seriously.
This is most formally called Internet Relay Chat. Server hosts are
connected via a tree structure. The various servers relay control and
message data among themselves to advertise the existence of other
servers, users, and the channels and other resources being occupied by
those users.
* 4: Structure
There is quite a lot of structure to the operation of irc, as
compared to crufty old talk(1). Since so little could be done with
talk(1), it needed little structure. But to keep track of people
spread literally around the world (the system was written by Jarkko
Oikarinen of Finland, usually seen on the system as `Wiz'), the
structure is useful so that one can speak to exactly those people with
whom one wishes to speak.
** 4.1: Nicknames
All users of irc are known to the system by a `nickname.' By
default, one's nickname is one's login name. Nickname clashes are not
allowed; this is enforced by the servers. If one's intended nickname
clashes with someone else as one enters chat, one will not be able to
complete entry to irc until one changes one's nickname to something
else.
** 4.2: Presence on a channel
Fundamental to the operation of irc is the concept of a channel. All
users are `on a channel' while inside irc. One enters the `null
channel' first. One cannot send any messages while not in any
chatting channel unless one has set up a private conversation in some
way. The number of channels is essentially unlimited - whatever will
fit in a string of some ungodly length, that must start with a # sign.
** 4.3: Main modes of channels
Public
This is the default mode for a channel. When one is on a public
channel, one can be seen by all other users (if one's own user mode
permits this). Anyone can notice users on a public channel and join
such a channel's conversation.
Private
This means that, although anyone can see that one is using chat, no
one can tell what channel one is using unless one is already on that
channel with oneself. Since the number of potential channels is in
the billions, this is quite some security - all one gives away is the
acknowledgement that one is using chat.
Secret
While one is on a secret channel, no one who is not on one's channel
with oneself can even see that one is there. One's name does not show
up in a list of active users. The only indication of one's presence
is that, when entering chat, all new users are told that there are "N
users on P servers." If one checks on all users and finds less than N
of them, one knows that others are hiding on secret channels. But a
secret channel user still cannot be found except by brute-force
checking through all channels, a hopeless proposition in the face of
the huge number of possible channel names. Security through obscurity
finally means something.
Changing the mode
The mode of a channel (private, secret, invite-only, moderated,
topic-limited, person-number-limited, no-messages-to-channel, ban
someone from channel) is set by the channel operator, who is the
first person to join a channel, or someone who has had channel
operatorship bestowed on them by another channel operator.
*** 4.4: Conversations not using channels
It is possible to conduct conversations with others without using the
formalized channel structure. Doing so requires that two people set
themselves up for private conversation using special commands; see
User Commands below.
* 5: Screen/keyboard structure
Chat is a full-screen utility. It takes over the screen, with the
bulk of activity happening in the top N-2 lines, a modeline (vaguely
emacs-like) on the next to last line, and one's input being entered on
the last line. A very good version of client is the IRC-II client,
avaliable on anonymous ftp from various sites around the world.
** 5.1: Keyboard input
When typing commands at irc, one has a minimalist line-editing
facility in an emacs style. That is, ^A moves the cursor to the
beginning of the line, ^E goes to the end, ^D deletes the character
under the cursor, ^K kills from the cursor to the end, and so on.
** 5.2: Screen activity
Almost everything happens in the upper bulk of the screen. This
includes both messages from other users, as well as the output of the
control commands.
Normal messages from other users appear with the originating nickname
in <angle brackets>. Private messages arrive with the originating
nickname in *asterisks*. Messages which one sends to everyone appear
with a preceding "> " whereas messages which one sends privately to
one other user appear with "-> *nickname*."
Other output (e.g., /who commands, invitations from other users to
join channels, and so forth) appears interspersed with other activity
on the screen.
* 6: Command structure
Ordinary text typed at irc is sent as one's messages to everyone else
on the same channel, modulo personal choices for private messages and
the like. Commands to irc itself all begin with a command character,
which is initially `/' but may be changed to any other character
desired.
Commands may in general be abbreviated to a unique prefix.
** 6.1: Leaving irc
The way to get out of irc is to enter the /signoff command. "/si" is
sufficient. Also equivalent are "/exit," "/bye," and "/quit." A
signoff command may include a comment which will be seen by everyone
on the current channel of the person who left.
** 6.2: Getting help
Type "/help." Follow the instructions.
** 6.3: User commands
The most important commands supported by irc are:
help signoff who whois
list topic join channel
links msg invite ignore
users stats nick away
info clear query cmdch
date mode
*** 6.3.1: help
Information on how to use the rest of the system is available via
/help. The modeline says so as well.
*** 6.3.2: signoff {comment}
/signoff exits chat. Optional comment may be included; see above.
*** 6.3.3: who
/who returns information on who is using chat. /who without arguments
prints info on all users that can be seen. Users of public channels
show up with their channel identified. Users of private channels
appear, but they are specified as being on a private, unspecified
channel. Users of secret channels and users whose user mode is +i
(invisible) do not appear at all.
Giving a channel name as an argument to /who returns only those users of the
specified channel. This still doesn't show users of secret channel or
invisible users one is actually on the same channel with them. Users
of private channels are shown, if an exact channel name is given.
*** 6.3.4: whois
This returns information about individual users. Say "/whois
nickname" to get information on the login name and host from which the
nicknamed user comes.
*** 6.3.5: topic
Channels can be given off-the-cuff "topics." Saying "/topic some
string of text" will associate that topic with the current channel.
*** 6.3.6: list
/list will give lists of active channels, the number of users of each,
and the topics therewith associated. Again, secret channels do not
appear and private channels only appear as Prv.
*** 6.3.7: join & channel
/join or /channel are the means to enter a channel. Give the channel
name as an argument. If this is a secret or hidden channel, /who
commands will show oneself and any other users of one's channel.
One's arrival on a channel is announced to the rest of the users
already on that channel. Silent, anonymous "lurking" is not
supported.
*** 6.3.8: links
/links lists the currently-active set of chat servers. Beware: this
list can be quite long, and will undoubtedly get longer as chat gains
wider use. As of 15 May, 1992, about 130 servers is typical.
*** 6.3.9: msg
A single message can be sent privately to a certain user with /msg.
Type /msg nickname and the text to be sent. It will be sent privately
to the indicated nickname.
*** 6.3.10: invite
If there is a user online to whom one wishes to speak, one may invite
that user to join oneself on a certain channel. One types "/invite
nickname" with an optional channel number. The receiving user gets a
one-line message indicating the sender and the invitation. The
receiving user is free to ignore the invitation, of course.
*** 6.3.11: ignore
If one wants to ignore messages sent by some other user or users, it
may be done with /ignore command. One can ignore someone by their
nickname, or by their user@host data. Wildcards may be used.
*** 6.3.12: users
/users will return a list of the users logged into one's system. With
an optional hostname identifying a chat server host, the users logged
into that system will be listed.
*** 6.3.13: stats
This command returns counts of various protocol operations of one's
chat server. It is neither particularly useful nor interesting to
users other than operators.
*** 6.3.14: nick
One can change nicknames by issuing "/nick new-nickname." All users
on one's channel will be advised of the change. NOTE: If one enters
chat with a nickname clash (e.g., one's login name is the same as
someone else's, and the other user got there first), the system will
not let one enter until one issues a /nick command with a unique
nickname.
*** 6.3.15: away
Sometimes, one wishes to remain connected to the chat system, but one
must be elsewhere for a while. One can issue an /away command with
arbitrary text as argument, which will mark oneself as being away. If
someone sends an away'd user a private message (via /msg or in a
private session set up via /query; see below), the sender will get a
message back from the server indicating the away-ness and the message
which was set.
*** 6.3.16: info
/info returns information regarding the author and copyright of the
chat system.
*** 6.3.17: clear
At times, one wishes that one's screen weren't so cluttered. /clear
makes it so.
*** 6.3.18: query
This command is used to set up private communications `outside' the
normal channel system.
When one enters "/query nickname," the indicated nickname is set up as
the sole recipient of anything which one types thereafter. Thus, if
user A executes "/query B" and user B executes "/query A," they have
set up a private communication between themselves. Significantly, it
remains possible for them to stay on their respective channels, which
need not be the same, and listen to whatever conversation is going on
around them as well, though they cannot respond to that ambient
conversation without leaving the private conversation they have set up.
One leaves this private mode by issuing /query without arguments.
*** 6.3.19: cmdch
The `/' character may not be best for some people to use as their
command character. It can be changed with "/cmdch <character>."
*** 6.3.20: mode
This command can be used for altering the various modes of a channel
(see the explanation of channel modes above). /mode command can only
be issued by channel operators.
** 6.4: Operator commands
The chat system administrators on each host have additional
responsibilities and power over the configuration and operation of the
servers. The commands to do so are delineated below.
*** 6.4.1: oper
Users who have the potential for operator privileges initially invoke
those privileges by "/oper nickname password," where nickname is the
nickname under which operation is intended, and password is the
password known to the chat system for that nickname.
*** 6.4.2: kill
Obnoxious users had best beware the operator who's fast on the /kill
command. "/kill nickname" blows any given nickname completely out of
the chat system.
Obnoxiousness is not to be tolerated. But operators should not use
/kill lightly.
*** 6.4.3: quote
Raw access to the underlying server protocol is possible through the
user of the /quote command. "/quote any text at all" is used to send
direct, unmodified commands to the servers. This has a wide variety
of uses, such as deliberately killing a local or remote chat daemon,
invoking operator privileges for otherwise-operator-priv-forbidden
users, and related tasks. It is, again, a very powerful operation,
and not to be used lightly.
* 7: Questions, problems, troubles?
If you have problems, please contact Christopher Davis (ckd@eff.org) or
Helen Rose (hrose@eff.org). Known as "ckd" and "Trillian" on irc,
respectively. You can also ask for help on some of the operator
channels on irc, for example #twilight_zone and #eu-opers. They will
be able to assist you in whatever problems you are having with IRC.
+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)
+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
-21
View File
@@ -60,7 +60,6 @@ modified for UnrealIRCD3.1 by codemastr
8.8) .......................... Set sadmin_host Line
8.9) .......................... Set netadmin_host Line
8.10) ......................... Set coadmin_host Line
8.11) ......................... Set techadmin_host Line
8.12) ......................... Set hidden_host Line
8.13) ......................... Set netdomain Line
8.14) ......................... Set helpchan Line
@@ -458,7 +457,6 @@ o = local oper, flags included: rhgwlckbBnuf
O = global oper, flags included: oRDCK
a = services admin, access to /samode
C = co admin
T = tech admin
A = admin
N = network admin access to remote /rehash and remote /restart and a bunch more
* = flags included: AaNCTzSHW^
@@ -1635,25 +1633,6 @@ Set coadmin_host ..: coadmin.starspace.net
--------------------
8.11) Set techadmin_host Line:
This allows you to specify a host that TechAdmins will receive when they
/oper, this only works if iNAH (See section 8.17) is enabled. If this is left
blank it can cause some problems in your IRCd so it is recommended that you
fill in a value.
Syntax:
Set techadmin_host : techadminhost
This tells the server to switch the host of the TechAdmin to techadminhost when
they /oper.
Examples:
Set techadmin_host : techadmin.starspace.net
This will make a TechAdmin's host change to techadmin.starspace.net when they
/oper up if iNAH is enabled.
--------------------
8.12) Set hidden_host Line:
The Set hidden_host line allows you to specify what the masked part of a users
+521 -481
View File
File diff suppressed because it is too large Load Diff
+3 -52
View File
@@ -61,65 +61,16 @@ A: T:Lines is a new Unreal feature that makes it able to show different
7) Where can i download updates to Unreal?
A: Mostly you can download the newest version at
http://unreal.tspre.org
http://www.unrealircd.com
Versions may be spewed out regulary due to new features and bugs..
8) Why does it say "unlimit core failed" or something when I boot the IRCd?
A: It's just a warning, mainly just ignore it.
9) I use Linux Mandrake and ./Config always hangs! What can I do??
A: Go edit the Config script and remove those lines:
-SNIP START-
cat > $TMP <<__EOF__
#$STRINGH STRINGH
#$STRINGSH STRINGSH
#ifdef STRINGH
#include <string.h>
#endif
#ifdef STRINGSH
#include <strings.h>
#endif
main()
{
char *t = "a", *s = strtok(t, ",");
if (!strcmp(t, s))
exit(0);
exit(1);
}
__EOF__
$COMP >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo $n " strtok$c"
NSTRTOK=define
else
$EXEC
if [ $? -ne 0 ] ; then
echo $n " strtok$c"
NSTRTOK=define
fi
fi
$RM -f $EXEC $TMP
--- SNIP END---
And replace it by
NSTRTOK=undef
This should get it to work=) (thanks to Joe Whipple for reporting this bug)
---END----
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.global-irc.net #unrealircd
11) The IRCd uses like 66.7% CPU !!!?
A: Try run it with nice :
/usr/bin/nice -n 19 src/ircd
if services go this way too just place ./<name> instead of src/ircd
Any more support seek me at the default place:P
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??
@@ -190,4 +141,4 @@ match.c:247: argument 'n' doesn't match prototype
Then go into include/setup.h and add this line:
#define GOT_STRCASECMP
(C) Carsten Munk 1999
(C) Carsten Munk 1999-2000
-82
View File
@@ -1,82 +0,0 @@
.\" $Id$
.TH IRC 1 "7 October 1990"
.SH NAME
irc \- User Interface to Internet Relay Chat Protocol
.SH SYNOPSIS
\fBirc\fP [\fB-p\fP \fIportnum\fP] [\fB-c\fP \fIchannel\fP] [ \fInickname\fP [ \fIserver\fP ]]
.SH DESCRIPTION
.LP
\fBIrc\fP is a user interface to the Internet Relay Chat, a CB-like
interactive discussion environment. It is structured into \fIchannels\fP,
which are public discussion forums, and also allows for private intercommunication.
Each participant has a \fInickname\fP, which is the one specified in the command
line or else his login name.
.LP
Once invoked, \fBirc\fP connects as a client to the specified server,
\fIserver\fP or to the default one (see below). The screen splits into a dialogue
window (the major part
of the screen) and a command line, from which messages can be sent and
commands given to control irc.
.SH COMMAND SYNTAX
The syntax of irc commands is of the form \fB/COMMAND\fP. The most notable
ones are listed below. For an uptodate list, use the \fBHELP\fP command
of \fBirc\fP. Case is ignored.
.IP "\fB/ADMIN\fR [\fIserver\fP]"
Prints administrative information about an IRC \fIserver\fP.
.IP "\fB/AWAY\fP [\fImessage\fP]"
Mark yourself as being away (with an automatic reply \fImessage\fP
if specified)
.IP "\fB/BYE\fR, \fB/EXIT\fR, \fB/QUIT\fR"
Terminate the session
.IP "\fB/CHANNEL\fR [\fIchannel\fP]"
Join another \fIchannel\fP
.IP "\fB/CLEAR\fR"
Clear the screen
.IP "\fB/HELP\fR [\fIcommand\fP]"
Display a brief description of the \fIcommand\fP (or list all commands, if none
specified).
.IP "\fB/SUMMON\fR \fIuser\fP"
Allows to summon a \fIuser\fP specified as a full Internet address, i.e.,
\fIlogin@host.domain\fP, to an IRC dialogue session (in much the same
way as the talk(1) command). It is usable ONLY if the irc daemon runs on
the target machine (host.domain).
.IP "\fB/TOPIC\fR \fItopic\fP"
Sets the \fItopic\fP for the current channel
.IP "\fB/WHO\fR [\fIchannel\fP|*]"
Lists all users of IRC if no argument, of the specified \fIchannel\fP or of the
current channel (*).
.SH ARGUMENTS
.IP "\fB-p\fP \fIportnum\fP"
TCP/IP "port number. Default is 6667 and this option should seldom if ever"
be used.
.IP "\fB-c\fP \fIchannel\fP"
\fIChannel\fP number to join upon beginning of the session. Default is no channel.
.IP "\fInickname\fP"
\fINickname\fP used in the session (can be changed with the \fB/NICK\fP command).
Default is user login name.
.IP "\fIserver\fP"
\fIServer\fP to connect to. Default is specified in the irc system configuration
file, and can be superseded with the environment variable IRCSERVER.
.SH EXAMPLE
.RS
.nf
tolmoon% \fBirc -p6667 Wizard tolsun\fP
.fi
.RE
.LP
connects you to irc server in host tolsun (port 6667) with nickname Wizard
.SH COPYRIGHT
Copyright (c) 1988 University of Oulu, Computing Center, Finland.
.nf
Copyright (c) 1988,1989,1990 Jarkko Oikarinen
.nf
All rights reserved.
For full COPYRIGHT see LICENSE file with IRC package.
.SH "SEE ALSO"
ircd(8)
.SH BUGS
What bugs ?
.SH AUTHOR
Jarkko Oikarinen <jto@tolsun.oulu.fi>
.nf
Manual page updated by Michel Fingerhut <Michel.Fingerhut@ircam.fr>
-140
View File
@@ -1,140 +0,0 @@
.\" $Id$
.TH IRCD 8 "29 March 1989"
.SH NAME
ircd \- The Internet Relay Chat Program Server
.SH SYNOPSIS
.hy 0
.IP \fBircd\fP
[-a] [-c] [-i] [-o] [-q] [-t] [-d directory]
[-f configfile] [-x debuglevel] [-h hostname] [-p portnum]
.SH DESCRIPTION
.LP
\fIircd\fP is the server (daemon) program for the Internet Relay Chat
Program. The \fIircd\fP is a server in that its function is to "serve"
the client program \fIirc(1)\fP with messages and commands. All commands
and user messages are passed directly to the \fIircd\fP for processing
and relaying to other ircd sites. The \fIirc(1)\fP program depends upon
there being an \fIircd\fP server running somewhere (either on your local
UNIX site or a remote ircd site) so that it will have somewhere to connect
to and thus allow the user to begin talking to other users.
.SH OPTIONS
.TP
.B \-d directory
This option tells the server to change to that directory and use
that as a reference point when opening \fIircd.conf\fP and other startup
files.
.TP
.B \-o
Starts up a local ircdaemon. Standard input can be used to send IRC
commands to the daemon. The user logging in from standard input will
be given operator privileges on this local ircd. If ircd is a setuid program,
it will call setuid(getuid()) before going to local mode. This option
can be used in inetd.conf to allow users to open their own irc clients
by simply connecting their clients to the correct ports. For example:
.TP
.B
irc stream tcp nowait irc /etc/ircd ircd \\-f/etc/ircd.conf \\-o
allows users connecting to irc port (specified in /etc/services) to start
up their own ircdaemon. The configuration file should be used to check from
which hosts these connections are allowed from. This option also turns
on the autodie option -a.
.TP
.B \-a
Instructs the server to automatically die off if it loses all it's clients.
.TP
.B \-t
Instructs the server to direct debugging output to standard output.
.TP
.B \-x#
Defines the debuglevel for ircd. The higher the debuglevel, the more stuff
gets directed to debugging file (or standard output if -t option was used
as well).
.TP
.B \-i
The server was started by inetd and it should start accepting connections
from standard input. The following inetd.conf-line could be used to start
up ircd automatically when needed:
.TP
.B
ircd stream tcp wait irc /etc/ircd ircd \-i
allows inetd to start up ircd on request.
.TP
.B \-f filename
Specifies the ircd.conf file to be used for this ircdaemon. The option
is used to override the default ircd.conf given at compile time.
.TP
.B \-c
This flag must be given if you are running ircd from \fI/dev/console\fP or
any other situation where fd 0 isnt a tty and you want the server to fork
off and run in the background. This needs to be given if you are starting
\fIircd\fP from an \fIrc\fP (such as \fI/etc/rc.local\fP) file.
.TP
.B \-q
Using the -q option stops the server from doing DNS lookups on all the
servers in your \fIircd.conf\fP file when it boots. This can take a lengthy
amount of time if you have a large number of servers and they are not all
close by.
.TP
.B \-h hostname
Allows the user to manually set the server name at startup. The default
name is hostname.domainname.
.B \-p portname
Specifies the port where the daemon should start waiting for connections.
This overrides the default which is given at compile time.
.TP
.SH
If you plan to connect your \fIircd\fP server to an existing Irc-Network,
you will need to alter your local IRC CONFIGURATION FILE (typically named
"ircd.conf") so that it will accept and make connections to other \fIircd\fP
servers. This file contains the hostnames, Network Addresses, and sometimes
passwords for connections to other ircds around the world. Because
description of the actual file format of the "ircs.conf" file is beyond the
scope of this document, please refer to the file INSTALL in the IRC source
files documentation directory.
.LP
BOOTING THE SERVER: The \fIircd\fP server can be started as part of the
UNIX boot procedure or just by placing the server into Unix Background.
Keep in mind that if it is *not* part of your UNIXES Boot-up procedure
then you will have to manually start the \fIircd\fP server each time your
UNIX is rebooted. This means if your UNIX is prone to crashing
or going for for repairs a lot it would make sense to start the \fIircd\fP
server as part of your UNIX bootup procedure. In some cases the \fIirc(1)\fP
will automatically attempt to boot the \fIircd\fP server if the user is
on the SAME UNIX that the \fIircd\fP is supposed to be running on. If the
\fIirc(1)\fP cannot connect to the \fIircd\fP server it will try to start
the server on it's own and will then try to reconnect to the newly booted
\fIircd\fP server.
.SH EXAMPLE
.RS
.nf
tolsun% \fBircd\fP
.fi
.RE
.LP
Places \fIircd\fP into UNIX Background and starts up the server for use.
Note: You do not have to add the "&" to this command, the program will
automatically detach itself from tty.
.SH COPYRIGHT
(c) 1988,1989 University of Oulu, Computing Center, Finland,
.LP
(c) 1988,1989 Department of Information Processing Science,
University of Oulu, Finland
.LP
(c) 1988,1989,1990,1991 Jarkko Oikarinen
.LP
For full COPYRIGHT see LICENSE file with IRC package.
.LP
.RE
.SH FILES
/etc/utmp
"irc.conf"
.SH "SEE ALSO"
irc(1)
.SH BUGS
None... ;-) if somebody finds one, please inform author
.SH AUTHOR
Jarkko Oikarinen, currently jto@tolsun.oulu.fi,
manual page written by Jeff Trim, jtrim@orion.cair.du.edu,
later modified by jto@tolsun.oulu.fi.
-47
View File
@@ -1,47 +0,0 @@
[ $Id$ ]
The following macros are included in "ircd.m4" for use with the m4 text
preprocessor. "ircd.m4" is parsed before the IRC server conf file so they
are all available for use with that.
NOTE: The "ircd.m4" file is *ONLY* created by a "make install".
VERSION - current version string as in patchlevel.h
DEBUGMODE - if DEBUGMODE is define in config.h, is also defined for m4.
HOSTNAME - taken from hostname(1)
USER - username of person doing the "make install"
PORT - default port number as in config.h
PFREQ - default ping frequency as in config.h
CFREQ - default connect frequency as in config.h
MAXSENDQ - default max sendq as in config.h
CL - use this to wrap a class number
HOST - use this to wrap a hostname
HOSTM - use this to wrap the hostmask number in N-lines
ID - when wrapping the host field in an I-line, causes ident string return
to be used instead of user supplised username.
PASS - use this to wrap passwords in C/N/I/O lines
PING - use this to wrap the ping value in Y-lines
APORT - use this to wrap the port number in I-lines
CPORT - use this to wrap the port number in C-lines
SERV - use this to wrap server names
You might use some of these as
C:foo.bar.edu:PASS(boo):foo.bar.edu:APORT(6667)
I:ID(128.250.*)::ID(*.mu.oz.au):CPORT(6667)
In addition to these (rather weak macros), some more complete ones are
defined which already perform the above.
ADMIN - provide fields to it as you would an A-line
ALLOW - provide fields to it as you would an N-line
BAN - provide fields to it as you would an K-line
CLASS - provide fields to it as you would an Y-line
CLIENT - provide fields to it as you would an I-line
CONNECT - provide fields to it as you would an C-line
ME - provide fields to it as you would an M-line
HUB - first parameter is server you want to hub, second is optional and is
a mask against which other servers introduced must match against.
LEAF - works like HUB, except that the mask is matched against server names
to check if the link should be dropped.
SERVER - uses 6 fields, the first 4 as are found in an N-line, the last two
should be as you would use in a C-line. It expands out to provide
both a C and N line.
-294
View File
@@ -1,294 +0,0 @@
[ $Id$ ]
From: Carlo Kid - Runaway <carlo@sg.tn.tudelft.nl>
Subject: GUIDE for compiling your server
To: wastelanders@rush.cc.edu (New Wastelanders MailingList)
Date: Thu, 26 May 94 13:44:10 METDST
Cc: carlo@sg.tn.tudelft.nl
Mailer: Elm [revision: 66.33]
Status: RO
GUIDE for compiling your server, by Runaway
===============================================
First of all you must get all the files you need, as an example
I will explain how to compile irc2.8.19.U3.2.
The files you'll need in general are:
- irc2.8.19.U3.2.tar.gz
Or, when you already have an older version -say irc2.8.19.U3.1- a patch:
- irc2.8.19.U3.1-2.patch
It is possible you need more then one patch, especially when you already
upgraded more often. But in that case you already have those old patches.
Of course, in that case, you also already have the old directory tree:
/home..../yourname/....ircd/irc2.8.19.U3.1/
Scripts, patches and directory trees
====================================
It is good practise to:
1) Call the directory tree after the version
2) Let this directory ONLY contain what comes with the .tar.gz file!
Thus: Do NOT put ircd.conf, or any patches etc in it!!!
In general, you must be able to delete this whole directory tree
when you still have the original .tar.gz file and patches applied to it.
3) Put it in a directory ending on /ircd, THIS directory will contain
your ircd.motd, ircd.pid, ircd.conf and patches...
So, you end up with:
...ircd/irc2.8.19.U3.1-2.patch
...ircd/irc2.8.19.U3.1.tar.gz
or just:
...ircd/irc2.8.19.U3.2.tar.gz
at once.
Before you can delete the old directory tree, you must be SURE to save
everything thats in it. This is thus the .tar.gz file, all patches but
ALSO the following files:
Makefile
include/config.h
include/setup.h
You should always keep a copy of those files OUTSIDE the irc2.8.19.U3.2/
directory tree. For instance:
...ircd/irc.personal/Makefile
...ircd/irc.personal/include/config.h
...ircd/irc.personal/include/setup.h
To make these backups easy, you should make a script, called backup.personal
containing:
cp Makefile ../irc.personal/Makefile
cp include/config.h ../irc.personal/include/config.h
cp include/setup.h ../irc.personal/include/setup.h
If you also change anything in the other Makefiles (ircd/Makefile and
common/Makefile) you can add those too. Be sure to make the directories
by hand first.
Make the script 'backup.personal' executable with:
chmod 700 backup.personal
You must be able to run it from any directory, so put it in your ..bin/
Ok... so now you have a backup of everything. If you wanted to start
ALL over you could delete the directory tree, unzip and untar the archive
again, apply all patches to it, change the Makefile and config.h again,
put setup.h back, recompile and reinstall.
In some cases it is easy to do this with an other script, I call it 'repatch',
it provides you with an easy-to-change overview of the patched you have used.
Here is how my 'repatch' looks now (it is located in .../ircd/repatch).
cd ~/irc/ircd
rm -rf irc2.8.19 irc2.8.19.U3.2
zcat irc2.8.19.tar.gz | tar xf -
mv irc2.8.19 irc2.8.19.U3.2
cd irc2.8.19.U3.2
#patch -p1 < ../Makefile.config.h.patch 2> ../patch.out
#cp ../setup.h include/setup.h
patch -p1 < ../irc2.8.19-TSpre8.2.patch 2>> ../patch.out
patch -p1 < ../irc2.8.19.TSpre8-note.patch 2>> ../patch.out
patch -p1 < ../irc2.8.19.TSpre8-wallops.patch 2>> ../patch.out
patch -p1 < ../irc2.8.19.TSpre8-bquiet.patch 2>> ../patch.out
patch -p1 < ../irc2.8.19.TSpre8-silence.2.patch 2>> ../patch.out
#patch -p1 < ../irc2.8.19.U3-ban.patch 2>> ../patch.out
make clean
vi include/patchlevel.h
grep -e '\.rej' -e '[Ff]ail' -e fuzz ../patch.out
As you can see I commented out the patches Makefile.config.h.patch and
irc2.8.19.U3-ban.patch, and don't copy setup.h here. This is because
I wanted to make a virgin .U3.2.tar.gz for distribution via ftp-sites.
If I change the name of the directory, I have to change it in three
places :/
This script forces me to edit the patchlevel.h :) :)
The last grep warns me if anything went wrong with the patches.
Moreover, as you can see, I have a 'Makefile.config.h.patch'.
You should make your own as soon as you completely installed
and tested your server. It is very handy for re-installing a new
version.
To make this patch, edit the Makefile's and and config.h and type:
backup.personal
cd ..
rm -rf irc2.8.19
zcat irc2.8.19.tar.gz | tar xf -
diff -rc irc2.8.19 irc.personal > Makefile.config.h.patch
Check it with an editor if it looks ok. In the above, 'irc2.8.19.tar.gz'
is the virgin 'Avalon' version, I change the Makefiles in the .U3
however also, so you might wanna use the virgin .U3.2.tar.gz.
Starting ALL over (or begining for the first time)
==================================================
This is about EDITTING the Makefile(s) and config.h, and creating the
setup.h for the first time.
2.8.19 is different from 2.8.16 and before. You will have to EDIT the
Makefile and config.h that comes with the distribution. You can NOT
use the old Makefile and config.h you had !
First write down the path you want to use where you are going to put
the ircd.conf etc...
Edit the Makefile. Comments are in it. You should simply define that
what is needed for your Operating System.
Then edit the config.h
Then run ./Config to create setup.h ... at first simply hit return all the
time. If you insist on using gcc instead of cc, you must edit that in your
Makefile BEFORE running setup.h. You can't change that running Config,
although it asks for it. If you have more then one cc, you can add the
right path to in the Makefile (if it uses the wrong one).
Since U3.2, I changed the Makefile and config.h a little. The changes are:
- I added note.o to the dependency
- I added *.orig files to the 'make clean' (otherwise the *.orig generated
by some 'patch' programs will be left).
If you want this too, and you have .U3.1, you can get the patch from
sg.tn.tudelft.nl (file: Makefile.conf.U3.patch).
As soon as you are done, run backup.personal. To stay up to date with your
backup.
Then make the Makefile.conf.patch as described above. (or wait with that
till you are sure it works... otherwise it might be done more then once
which is a waste of time).
Special remarks
---------------
Makefile:
First occurance of
CC=cc
Change this NOT if you want another compiler, add another CC= later, close
to your OS specific #defines...
# IRCDDIR must be the same as DPATH in include/config.h
#
IRCDDIR=/sb/users/carlo/irc/ircd
Make sure you use the same path in the config.h :)
SUBDIRS=common ircd
By removing the 'irc' from this line, you stop 'make' from making the client
as well.
config.h:
/*
* NOTE: On some systems, valloc() causes many problems.
*/
#undef VALLOC /* Define this if you have valloc(3) */
I never try it, even if I have it.
#define USE_VARARGS
For defines like this, you best check the online manual if you have them
(man vprintf in this case)... I didn't have man page for vscanf() but it
still worked... (I DO have them for vprintf and vsprinf).
#undef DEBUGMODE /* define DEBUGMODE to enable debugging mode.*/
Debug mode uses a lot more memory and is a lot slower. ONLY define
when your server gives problems like crashing/coredumping, or other
things like not wanting to startup etc. In other words: when you are really
*USING* this feature to do DEBUGing !
#define NPATH "/sb/users/carlo/irc/server/Undernet/.ircdnote"
The '#ifdef notdef' '#endif' around NPATH mean: notdef = NOT DEFINED.
You should *never* #define notdef... It is used to "comment out" *examples*.
By defining it, you enable all examples (like making your server SUI :/)
Simply *remove* the lines '#ifdef notdef' and '#endif' around the NPATH.
#define DPATH "/sb/users/carlo/irc/ircd"
Must be the same as in the Makefile!
#define SPATH "/sb/users/carlo/bin/ircd" /* path to server executeable */
This is used when you do a /RESTART. For fast restarting a NEW version (upgrade)you can let this point to a symbolic link, and then change this link to the
new executable. Do a 'restart' and voila...
For instance:
.../bin/ircd.U3.2*
.../bin/ircd -> ircd.U3.2
The last made with:
ln -s ircd.U3.2 ircd
Then when you upgrade:
rm ircd
ln -s ircd.U3.3 ircd
and a /RESTART
#undef CRYPT_LINK_PASSWORD
Make sure your ircd.conf isn't world readable like on pasadena :/
(and on ircserver.et.tudelft.nl once - we DID have to change all passwords
then)
Compiling the server
====================
*** FIRST edit your include/patchlevel.h ***
If you don't want to compile the client, you can change the Makefile
as mentioned above, or type:
make server
After a succesfull compilation (ignore warning ;), you can type
make install
or just
cp ircd/ircd ~/bin/ircd.U3.2
cd ~/bin
chmod 700 ircd.U3.2
rm ircd
ln -s ircd.U3.2 ircd
I changed my Makefile to do the latter thing when I type 'make install'
Then run the server by typing 'ircd'. Don't do this on the
...ircd/irc2.8.19.U3.2/ircd/ directory, because when in your PATH the
'.' comes before your '~/bin' you start up THAT exucutable, disallowing
you to recompile later (text file busy).
Compile errors
==============
If anything goes wrong with note, it most likely is because you
1) Didn't define NPATH correctly
2) Didn't add the note.o to the dependencies.. remove note.o and recompile.
[ For a non-undernet version: irc2.8.19.tar.gz is bugged, get the -note.patch
from ftp.undernet.org. ]
If you get problems while linking saying it has undefined _something
and something is something with 'res', you must add -lresolv to your
IRCDLIBS in the Makefile.
If you get problems with any function beging defines twice are giving
errors like not compatible with previous definition (likely atol() in
note.c), just remove that whole function from the .c file (put #ifdef notdef
around it). You have it already in your system libraries.
Last remarks
============
Add those U: lines!!!
And change your ircd.motd to reflect the new commands/features :)
( /MOTD uxb* -- Nice motd RedRum! :)
-------------------------------------------------------------------
Run
--
-------------------------------------------------------------------------------
| carlo@sg.tn.tudelft.nl | Run @ IRC |
| | Admin of Delft.NL.EU.undernet.org |
| * Don't expect anything of live, | and Ircserver.et.tudelft.nl |
| or you'll miss all the rest of it.| |
-------------------------------------------------------------------------------
+1031 -378
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)
+15 -15
View File
@@ -1,21 +1,21 @@
[ $Id$ ]
Dynamic Configuration Guide
Okay first you have to go edit the file "unrealircd.conf" in
the directory "networks/". In that file you see a field with
name "Include" .. if you want to create your own network file
(IRC network specification) you have to write like
"networks/<irc network>.network" like "networks/myircnetwork.network"
- Edit ircd.conf to correctly reflect your server configuration.
If there is already a network file you can just put in the path
like : "networks/dragonwings.org"
- 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.
If you want to create your own network file
copy the file "template.network" to the name you want to use for
your network file and edit it.
- Assuming you do want your own network file, copy template.network
in networks/ to yourircnet.network. Edit it to your liking.
If you experince any problems email me at stskeeps@tspre.org
or try msg me at /server irc.global-irc.net : #UnrealIRCd
My nick is mostly Stskeeps or Techie (or Nightwalker if i had a bad night:P)
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.
--Stskeeps
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)
+308
View File
@@ -0,0 +1,308 @@
/*
** burst.c
**
** Nicolas Pioch, Dec 93
** <Nicolas.Pioch@enst.fr>
** Carsten V. Munk Nov 2000
*/
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/param.h>
#include <sys/signal.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <netdb.h>
#include <errno.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <ctype.h>
#include <string.h>
#include <fcntl.h>
#include <stdio.h>
#ifdef POSIX
#include <sys/select.h>
#endif
#define MYBUFSIZE 2048
char *jupedservername, *uplinkservername, *jupereason;
int options;
char *password;
typedef struct aClient {
int socket;
char buffer[MYBUFSIZE+1];
int read;
int write;
} aClient;
void fatalrestart(aClient *robotptr, const char *s);
void fatal(const char *s) {
perror(s);
exit(1);
}
typedef void (*signalhandler)(int);
static void signal_catcher(int sig, int code, struct sigcontext *scp) {
fprintf(stderr, "Caught signal %d with code %d\n", sig, code);
switch(sig) {
case SIGFPE: /* Floating point exception */
case SIGILL: /* Illegal instruction */
case SIGSEGV: /* Segmentation violation */
case SIGBUS: /* Bus error */
case SIGSYS: /* Bad argument to system call */
fatal("Fatal signal received, aborting...");
break;
case SIGQUIT:
case SIGINT:
case SIGTERM: /* On se barre */
fatal("AAAAAAAAArrrrrrrrgh!");
break;
}
signal(sig, (signalhandler)signal_catcher);
}
typedef union socket_address {
struct sockaddr_un unixx;
struct sockaddr_in inet;
} socket_address;
void name_to_number(int address_family, const char *hostname, int port,
socket_address *addr, int *len2) {
u_long iaddr;
int len;
struct hostent *host;
char *inaddr;
bzero ((char *) addr, sizeof (socket_address) );
if ( address_family == AF_UNIX ) {
strcpy(addr->unixx.sun_path,hostname);
*len2=sizeof( struct sockaddr_un );
} else {
if ((hostname) && (hostname[0])) {
if (hostname[0] >= '0' && hostname[0] <= '9') {
iaddr = inet_addr(hostname);
inaddr = (char *) &iaddr;
len=sizeof(iaddr);
} else {
host=gethostbyname (hostname);
if (!host)
fatal("Unknown host");
inaddr=host->h_addr_list[0];
len=host->h_length;
}
bcopy(inaddr, (char *)&addr->inet.sin_addr, len);
}
addr->inet.sin_port=htons((u_short) port);
*len2=sizeof(struct sockaddr_in);
}
addr->inet.sin_family = address_family;
}
int read_data(aClient *robotptr) {
int nbytes;
if ((nbytes=read(robotptr->socket, &(robotptr->buffer[robotptr->write]),
(sizeof(robotptr->buffer) - robotptr->write - 1))) < 0)
fatalrestart(robotptr, "read on socket");
if (nbytes == 0) {
close(robotptr->socket);
fatalrestart(robotptr, "Connection Closed");
}
robotptr->write+=nbytes;
robotptr->buffer[robotptr->write]=0;
return(nbytes);
}
void send_data(int socketfd, const char *data, int length) {
int length2;
length2=write(socketfd, data, length);
if (length2 != length)
fprintf(stderr, "*** write truncated to %d chars...\n", length2);
}
int create_client(const char *hostname, const int hostport) {
int descript;
socket_address hostaddr;
int adlen;
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) < 0)
fatal("socket");
name_to_number(AF_INET, hostname, hostport, &hostaddr, &adlen);
if (connect(descript, &hostaddr.inet, adlen) < 0)
fatal("connect");
return(descript);
}
void parse_line(aClient *robotptr) {
char *toparse;
toparse=(robotptr->buffer + robotptr->read);
printf("%s\n",toparse);
/* Special handling for PING messages */
if (!strncasecmp(toparse, "PING ", 5) || !strncasecmp(toparse, "8 ", 2)){
toparse=strtok(toparse, "\r\n");
toparse[1]='\0';
send_data(robotptr->socket, toparse, strlen(toparse));
return;
}
if (!strncasecmp(toparse, "AO", 2) || !strncasecmp(toparse, "NETINFO", 7))
{
if (!(options & 0x80))
exit(1);
}
}
void parse_data(aClient *robotptr) {
int next;
while((robotptr->read < robotptr->write)
&& ((robotptr->buffer[robotptr->read] == '\r')
|| (robotptr->buffer[robotptr->read] == '\n')))
robotptr->read++;
for(next=robotptr->read; next<=robotptr->write; next++) {
if ((robotptr->buffer[next] == '\r')
|| (robotptr->buffer[next] == '\n'))
break;
}
if (next<robotptr->write) {
robotptr->buffer[next]=0;
next++;
parse_line(robotptr);
robotptr->read=next;
parse_data(robotptr);
}
if (robotptr->read == robotptr->write) {
robotptr->read=robotptr->write=0;
} else {
bcopy((robotptr->buffer + robotptr->read),
(robotptr->buffer), (robotptr->write-robotptr->read));
robotptr->write-=robotptr->read;
robotptr->read=0;
}
}
void run_client(aClient *robotptr) {
fd_set mask, returnmask[3];
int selectval;
FD_ZERO(&mask);
FD_SET(robotptr->socket, &mask);
while (1) {
bcopy((char *)&mask,(char *)returnmask,sizeof(fd_set));
FD_ZERO(returnmask+1);
bcopy((char *)&mask,(char *)(returnmask+2),sizeof(fd_set));
selectval=select(FD_SETSIZE,
returnmask, returnmask+1, returnmask+2, NULL);
if (selectval) {
read_data(robotptr);
parse_data(robotptr);
}
}
}
void initialize(aClient *robotptr) {
char passphrase[MYBUFSIZE];
robotptr->socket=create_client(uplinkservername, atol(jupereason));
sprintf(passphrase,
"PROTOCTL %s %s %s %s %s %s %s %s %s\r\n",
(options & 0x1) ? "NOQUIT" : "",
(options & 0x2) ? "TOKEN" : "",
(options & 0x4) ? "NICKv2" : "",
(options & 0x8) ? "SJOIN" : "",
(options & 0x10) ? "SJOIN2" : "",
(options & 0x20) ? "UMODE2" : "",
(options & 0x40) ? "NS" : "",
(options & 0x100) ? "SJ3" : "",
(options & 0x200) ? "SJB64" : "");
write(robotptr->socket, passphrase, strlen(passphrase));
sprintf(passphrase, "PASS %s\r\nSERVER %s 1 :[Burst analysis].\r\n",
password,jupedservername);
write(robotptr->socket, passphrase, strlen(passphrase));
}
void fatalrestart(aClient *robotptr, const char *s) {
perror(s);
close(robotptr->socket);
sleep(10);
initialize(robotptr);
run_client(robotptr);
}
int main(int argc, char* argv[]) {
aClient robot;
char *p;
if (argc != 6) {
fprintf(stderr, "IRCd burst generator, by Carsten V. Munk 2000, based off jupe.c by Nicolas Pioch\n");
fprintf(stderr,
"Usage: %s <burstservername> <uplink> <port> <options> <password>\n", argv[0]);
fprintf(stderr, "Options can be a combination of these:\n");
fprintf(stderr, "1 = Enable NOQUIT 2 = Enable TOKEN\n");
fprintf(stderr, "3 = Enable NICKv2 4 = Enable SJOIN\n");
fprintf(stderr, "5 = Enable SJOIN2 6 = Enable UMODE2\n");
fprintf(stderr, "7 = Enable NS 8 = Ignore end of burst\n");
fprintf(stderr, "9 = Enable SJ3 a = Enable SJB64\n");
fatal("incorrect argument count");
exit(1);
}
jupedservername=argv[1];
uplinkservername=argv[2];
jupereason=argv[3];
password = argv[5];
p = argv[4];
for (; *p; p++)
{
if (*p == '1')
options |= 0x1;
if (*p == '2')
options |= 0x2;
if (*p == '3')
options |= 0x4;
if (*p == '4')
options |= 0x8;
if (*p == '5')
options |= 0x10;
if (*p == '6')
options |= 0x20;
if (*p == '7')
options |= 0x40;
if (*p == '8')
options |= 0x80;
if (*p == '9')
options |= 0x100;
if (*p == 'a')
options |= 0x200;
}
/* installe le signal_catcher */
signal(SIGTERM,(signalhandler)signal_catcher);
robot.read=robot.write=0;
initialize(&robot);
run_client(&robot);
exit(0);
}
+98
View File
@@ -0,0 +1,98 @@
# Makefile for regex.
#
# Copyright (C) 1992, 1993 Free Software Foundation, Inc.
#
# 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 2, 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.
version = 0.12
# You can define CPPFLAGS on the command line. Aside from system-specific
# flags, you can define:
# -DREGEX_MALLOC to use malloc/realloc/free instead of alloca.
# -DDEBUG to enable the compiled pattern disassembler and execution
# tracing; code runs substantially slower.
# -DEXTRACT_MACROS to use the macros EXTRACT_* (as opposed to
# the corresponding C procedures). If not -DDEBUG, the macros
# are used.
CPPFLAGS =
# Likewise, you can override CFLAGS to optimize, use -Wall, etc.
CFLAGS = -g
# Ditto for LDFLAGS and LOADLIBES.
LDFLAGS =
LOADLIBES =
srcdir = @srcdir@
VPATH = @srcdir@
CC = @CC@
DEFS = @DEFS@
SHELL = /bin/sh
subdirs = moo
default all:: regex.o
.PHONY: default all
regex.o: regex.c regex.h
$(CC) $(CFLAGS) $(CPPFLAGS) $(DEFS) -I. -I$(srcdir) -c $<
clean mostlyclean::
rm -f *.o
distclean:: clean
rm -f Makefile config.status
extraclean:: distclean
rm -f patch* *~* *\#* *.orig *.rej *.bak core a.out
configure: configure.in
autoconf
config.status: configure
sh configure --no-create
Makefile: Makefile.in config.status
sh config.status
makeargs = $(MFLAGS) CPPFLAGS='$(CPPFLAGS)' CFLAGS='$(CFLAGS)' CC='$(CC)' \
DEFS='$(DEFS)' LDFLAGS='$(LDFLAGS)' LOADLIBES='$(LOADLIBES)'
default all install \
mostlyclean clean distclean extraclean realclean \
TAGS check::
for d in $(subdirs); do (cd $$d; $(MAKE) $(makeargs) $@); done
.PHONY: install mostlyclean clean distclean extraclean realclean TAGS check
# Prevent GNU make 3 from overflowing arg limit on system V.
.NOEXPORT:
distfiles = AUTHORS ChangeLog COPYING INSTALL NEWS README \
*.in configure regex.c regex.h
distdir = regex-$(version)
distargs = version=$(version) distdir=../$(distdir)/$$d
dist: TAGS configure
@echo "Version numbers in: Makefile.in, ChangeLog, NEWS,"
@echo " regex.c, regex.h,"
@echo " and doc/xregex.texi (if modified)."
rm -rf $(distdir)
mkdir $(distdir)
ln $(distfiles) $(distdir)
for d in $(subdirs); do (cd $$d; $(MAKE) $(distargs) dist); done
tar czhf $(distdir).tar.Z $(distdir)
rm -rf $(distdir)
.PHONY: dist
+60
View File
@@ -0,0 +1,60 @@
This directory contains the GNU regex library. It is compliant with
POSIX.2, except for internationalization features.
See the file NEWS for a list of major changes in the current release.
See the file INSTALL for compilation instructions. (The only thing
installed is the documentation; regex.c is compiled into regex.o, but
not installed anywhere.)
The subdirectory `doc' contains a (programmers') manual for the library.
It's probably out-of-date. Improvements are welcome.
The subdirectory `test' contains the various tests we've written.
We know this code is not as fast as it might be. If you have specific
suggestions, profiling results, or other such useful information to
report, please do.
Emacs 18 is not going use this revised regex (but Emacs 19 will). If
you want to try it with Emacs 18, apply the patch at the end of this
file first.
Mail bug reports to bug-gnu-utils@prep.ai.mit.edu.
Please include an actual regular expression that fails (and the syntax
used to compile it); without that, there's no way to reproduce the bug,
so there's no way we can fix it. Even if you include a patch, also
include the regular expression in error; otherwise, we can't know for
sure what you're trying to fix.
Here is the patch to make this version of regex work with Emacs 18.
*** ORIG/search.c Tue Jan 8 13:04:55 1991
--- search.c Sun Jan 5 10:57:00 1992
***************
*** 25,26 ****
--- 25,28 ----
#include "commands.h"
+
+ #include <sys/types.h>
#include "regex.h"
***************
*** 477,479 ****
/* really needed. */
! && *(searchbuf.buffer) == (char) exactn /* first item is "exact match" */
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
--- 479,482 ----
/* really needed. */
! /* first item is "exact match" */
! && *(searchbuf.buffer) == (char) RE_EXACTN_VALUE
&& searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
***************
*** 1273,1275 ****
searchbuf.allocated = 100;
! searchbuf.buffer = (char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
--- 1276,1278 ----
searchbuf.allocated = 100;
! searchbuf.buffer = (unsigned char *) malloc (searchbuf.allocated);
searchbuf.fastmap = search_fastmap;
Vendored Executable
+462
View File
@@ -0,0 +1,462 @@
#!/bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf.
# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
# 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 2, 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.
# Usage: configure [--srcdir=DIR] [--host=HOST] [--gas] [--nfp] [--no-create]
# [--prefix=PREFIX] [--exec-prefix=PREFIX] [--with-PACKAGE] [TARGET]
# Ignores all args except --srcdir, --prefix, --exec-prefix, --no-create, and
# --with-PACKAGE unless this script has special code to handle it.
for arg
do
# Handle --exec-prefix with a space before the argument.
if test x$next_exec_prefix = xyes; then exec_prefix=$arg; next_exec_prefix=
# Handle --host with a space before the argument.
elif test x$next_host = xyes; then next_host=
# Handle --prefix with a space before the argument.
elif test x$next_prefix = xyes; then prefix=$arg; next_prefix=
# Handle --srcdir with a space before the argument.
elif test x$next_srcdir = xyes; then srcdir=$arg; next_srcdir=
else
case $arg in
# For backward compatibility, also recognize exact --exec_prefix.
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* | --exec=* | --exe=* | --ex=* | --e=*)
exec_prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- | --exec | --exe | --ex | --e)
next_exec_prefix=yes ;;
-gas | --gas | --ga | --g) ;;
-host=* | --host=* | --hos=* | --ho=* | --h=*) ;;
-host | --host | --hos | --ho | --h)
next_host=yes ;;
-nfp | --nfp | --nf) ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre | --no-cr | --no-c | --no- | --no)
no_create=1 ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
next_prefix=yes ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=* | --s=*)
srcdir=`echo $arg | sed 's/[-a-z_]*=//'` ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr | --s)
next_srcdir=yes ;;
-with-* | --with-*)
package=`echo $arg|sed 's/-*with-//'`
# Delete all the valid chars; see if any are left.
if test -n "`echo $package|sed 's/[-a-zA-Z0-9_]*//g'`"; then
echo "configure: $package: invalid package name" >&2; exit 1
fi
eval "with_`echo $package|sed s/-/_/g`=1" ;;
*) ;;
esac
fi
done
trap 'rm -f conftest* core; exit 1' 1 3 15
rm -f conftest*
compile='${CC-cc} $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
unique_file=regex.c
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
srcdirdefaulted=yes
# Try the directory containing this script, then `..'.
prog=$0
confdir=`echo $prog|sed 's%/[^/][^/]*$%%'`
test "X$confdir" = "X$prog" && confdir=.
srcdir=$confdir
if test ! -r $srcdir/$unique_file; then
srcdir=..
fi
fi
if test ! -r $srcdir/$unique_file; then
if test x$srcdirdefaulted = xyes; then
echo "configure: Can not find sources in \`${confdir}' or \`..'." 1>&2
else
echo "configure: Can not find sources in \`${srcdir}'." 1>&2
fi
exit 1
fi
# Preserve a srcdir of `.' to avoid automounter screwups with pwd.
# But we can't avoid them for `..', to make subdirectories work.
case $srcdir in
.|/*|~*) ;;
*) srcdir=`cd $srcdir; pwd` ;; # Make relative path absolute.
esac
if test -z "$CC"; then
echo checking for gcc
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test -f $dir/gcc; then
CC="gcc"
break
fi
done
IFS="$saveifs"
fi
test -z "$CC" && CC="cc"
# Find out if we are using GNU C, under whatever name.
cat > conftest.c <<EOF
#ifdef __GNUC__
yes
#endif
EOF
${CC-cc} -E conftest.c > conftest.out 2>&1
if egrep yes conftest.out >/dev/null 2>&1; then
GCC=1 # For later tests.
fi
rm -f conftest*
# Make sure to not get the incompatible SysV /etc/install and
# /usr/sbin/install, which might be in PATH before a BSD-like install,
# or the SunOS /usr/etc/install directory, or the AIX /bin/install,
# or the AFS install, which mishandles nonexistent args. (Sigh.)
if test -z "$INSTALL"; then
echo checking for install
saveifs="$IFS"; IFS="${IFS}:"
for dir in $PATH; do
test -z "$dir" && dir=.
case $dir in
/etc|/usr/sbin|/usr/etc|/usr/afsws/bin) ;;
*)
if test -f $dir/install; then
if grep dspmsg $dir/install >/dev/null 2>&1; then
: # AIX
else
INSTALL="$dir/install -c"
INSTALL_PROGRAM='$(INSTALL)'
INSTALL_DATA='$(INSTALL) -m 644'
break
fi
fi
;;
esac
done
IFS="$saveifs"
fi
INSTALL=${INSTALL-cp}
INSTALL_PROGRAM=${INSTALL_PROGRAM-'$(INSTALL)'}
INSTALL_DATA=${INSTALL_DATA-'$(INSTALL)'}
echo checking for AIX
echo checking how to run the C preprocessor
if test -z "$CPP"; then
CPP='${CC-cc} -E'
cat > conftest.c <<EOF
#include <stdio.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
:
else
CPP=/lib/cpp
fi
rm -f conftest*
fi
cat > conftest.c <<EOF
#ifdef _AIX
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
DEFS="$DEFS -D_ALL_SOURCE=1"
fi
rm -f conftest*
echo checking for DYNIX/ptx libseq
cat > conftest.c <<EOF
#if defined(_SEQUENT_)
yes
#endif
EOF
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "yes" conftest.out >/dev/null 2>&1; then
SEQUENT=1
fi
rm -f conftest*
test -n "$SEQUENT" && test -f /usr/lib/libseq.a &&
LIBS="$LIBS -lseq"
echo checking for POSIXized ISC
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
ISC=1 # If later tests want to check for ISC.
DEFS="$DEFS -D_POSIX_SOURCE=1"
if test -n "$GCC"; then
CC="$CC -posix"
else
CC="$CC -Xp"
fi
fi
echo checking for minix/config.h
cat > conftest.c <<EOF
#include <minix/config.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
MINIX=1
fi
rm -f conftest*
# The Minix shell can't assign to the same variable on the same line!
if test -n "$MINIX"; then
DEFS="$DEFS -D_POSIX_SOURCE=1"
DEFS="$DEFS -D_POSIX_1_SOURCE=2"
DEFS="$DEFS -D_MINIX=1"
fi
echo checking for ANSI C header files
cat > conftest.c <<EOF
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
# SunOS string.h does not declare mem*, contrary to ANSI.
echo '#include <string.h>' > conftest.c
eval "$CPP $DEFS conftest.c > conftest.out 2>&1"
if egrep "memchr" conftest.out >/dev/null 2>&1; then
# SGI's /bin/cc from Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
cat > conftest.c <<EOF
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#define XOR(e,f) (((e) && !(f)) || (!(e) && (f)))
int main () { int i; for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
eval $compile
if test -s conftest && (./conftest; exit) 2>/dev/null; then
DEFS="$DEFS -DSTDC_HEADERS=1"
fi
rm -f conftest*
fi
rm -f conftest*
fi
rm -f conftest*
for hdr in string.h
do
trhdr=HAVE_`echo $hdr | tr '[a-z]./' '[A-Z]__'`
echo checking for ${hdr}
cat > conftest.c <<EOF
#include <${hdr}>
EOF
err=`eval "$CPP $DEFS conftest.c 2>&1 >/dev/null"`
if test -z "$err"; then
DEFS="$DEFS -D${trhdr}=1"
fi
rm -f conftest*
done
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo checking for working alloca.h
cat > conftest.c <<EOF
#include <alloca.h>
main() { exit(0); }
t() { char *p = alloca(2 * sizeof(int)); }
EOF
if eval $compile; then
DEFS="$DEFS -DHAVE_ALLOCA_H=1"
fi
rm -f conftest*
decl="#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#if HAVE_ALLOCA_H
#include <alloca.h>
#else
#ifdef _AIX
#pragma alloca
#else
char *alloca ();
#endif
#endif
#endif
"
echo checking for alloca
cat > conftest.c <<EOF
$decl
main() { exit(0); }
t() { char *p = (char *) alloca(1); }
EOF
if eval $compile; then
:
else
alloca_missing=1
fi
rm -f conftest*
if test -n "$alloca_missing"; then
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=alloca.o
fi
prog='/* Ultrix mips cc rejects this. */
typedef int charset[2]; const charset x;
/* SunOS 4.1.1 cc rejects this. */
char const *const *p;
char **p2;
/* HPUX 7.0 cc rejects these. */
++p;
p2 = (char const* const*) p;'
echo checking for working const
cat > conftest.c <<EOF
main() { exit(0); }
t() { $prog }
EOF
if eval $compile; then
:
else
DEFS="$DEFS -Dconst="
fi
rm -f conftest*
if test -z "$prefix"
then
echo checking for gcc to derive installation directory prefix
saveifs="$IFS"; IFS="$IFS:"
for dir in $PATH; do
test -z "$dir" && dir=.
if test $dir != . && test -f $dir/gcc; then
# Not all systems have dirname.
prefix=`echo $dir|sed 's%/[^/][^/]*$%%'`
break
fi
done
IFS="$saveifs"
fi
if test -n "$prefix"; then
test -z "$exec_prefix" && exec_prefix='${prefix}'
prsub="s%^prefix\\([ ]*\\)=\\([ ]*\\).*$%prefix\\1=\\2$prefix%"
fi
if test -n "$exec_prefix"; then
prsub="$prsub
s%^exec_prefix\\([ ]*\\)=\\([ ]*\\).*$%\
exec_prefix\\1=\\2$exec_prefix%"
fi
trap 'rm -f config.status; exit 1' 1 3 15
echo creating config.status
rm -f config.status
cat > config.status <<EOF
#!/bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host `(hostname || uname -n) 2>/dev/null`:
#
# $0 $*
for arg
do
case "\$arg" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
exec /bin/sh $0 $* ;;
*) echo "Usage: config.status --recheck" 2>&1; exit 1 ;;
esac
done
trap 'rm -f Makefile; exit 1' 1 3 15
CC='$CC'
INSTALL='$INSTALL'
INSTALL_PROGRAM='$INSTALL_PROGRAM'
INSTALL_DATA='$INSTALL_DATA'
CPP='$CPP'
ALLOCA='$ALLOCA'
LIBS='$LIBS'
srcdir='$srcdir'
DEFS='$DEFS'
prefix='$prefix'
exec_prefix='$exec_prefix'
prsub='$prsub'
EOF
cat >> config.status <<\EOF
top_srcdir=$srcdir
for file in .. Makefile; do if [ "x$file" != "x.." ]; then
srcdir=$top_srcdir
# Remove last slash and all that follows it. Not all systems have dirname.
dir=`echo $file|sed 's%/[^/][^/]*$%%'`
if test "$dir" != "$file"; then
test "$top_srcdir" != . && srcdir=$top_srcdir/$dir
test ! -d $dir && mkdir $dir
fi
echo creating $file
rm -f $file
echo "# Generated automatically from `echo $file|sed 's|.*/||'`.in by configure." > $file
sed -e "
$prsub
s%@CC@%$CC%g
s%@INSTALL@%$INSTALL%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@CPP@%$CPP%g
s%@ALLOCA@%$ALLOCA%g
s%@LIBS@%$LIBS%g
s%@srcdir@%$srcdir%g
s%@DEFS@%$DEFS%
" $top_srcdir/${file}.in >> $file
fi; done
exit 0
EOF
chmod +x config.status
test -n "$no_create" || ./config.status
+23
View File
@@ -0,0 +1,23 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(regex.c)
AC_PROG_CC
AC_PROG_INSTALL
dnl I'm not sure if AC_AIX and AC_DYNIX_SEQ are really necessary. The
dnl Autoconf documentation isn't specific about which BSD functions they
dnl provide.
AC_AIX
AC_DYNIX_SEQ
AC_ISC_POSIX
AC_MINIX
AC_STDC_HEADERS
AC_HAVE_HEADERS(string.h)
AC_ALLOCA
AC_CONST
AC_PREFIX(gcc)
AC_OUTPUT(Makefile doc/Makefile test/Makefile)
+4
View File
@@ -0,0 +1,4 @@
clean:
default:
all:
echo "."
+4948
View File
File diff suppressed because it is too large Load Diff
+490
View File
@@ -0,0 +1,490 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
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 2, 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. */
#ifndef __REGEXP_LIBRARY_H__
#define __REGEXP_LIBRARY_H__
/* POSIX says that <sys/types.h> must be included (by the caller) before
<regex.h>. */
#ifdef VMS
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
should be there. */
#include <stddef.h>
#endif
/* The following bits are used to determine the regexp syntax we
recognize. The set/not-set meanings are chosen so that Emacs syntax
remains the value 0. The bits are given in alphabetical order, and
the definitions shifted by one from the previous bit; thus, when we
add or remove a bit, only one other definition need change. */
typedef unsigned reg_syntax_t;
/* If this bit is not set, then \ inside a bracket expression is literal.
If set, then such a \ quotes the following character. */
#define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
/* If this bit is not set, then + and ? are operators, and \+ and \? are
literals.
If set, then \+ and \? are operators and + and ? are literals. */
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
/* If this bit is set, then character classes are supported. They are:
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
If not set, then character classes are not supported. */
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
/* If this bit is set, then ^ and $ are always anchors (outside bracket
expressions, of course).
If this bit is not set, then it depends:
^ is an anchor if it is at the beginning of a regular
expression or after an open-group or an alternation operator;
$ is an anchor if it is at the end of a regular expression, or
before a close-group or an alternation operator.
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
POSIX draft 11.2 says that * etc. in leading positions is undefined.
We already implemented a previous draft which made those constructs
invalid, though, so we haven't changed the code back. */
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
/* If this bit is set, then special characters are always special
regardless of where they are in the pattern.
If this bit is not set, then special characters are special only in
some contexts; otherwise they are ordinary. Specifically,
* + ? and intervals are only special when not after the beginning,
open-group, or alternation operator. */
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
/* If this bit is set, then *, +, ?, and { cannot be first in an re or
immediately after an alternation or begin-group operator. */
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
/* If this bit is set, then . matches newline.
If not set, then it doesn't. */
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
/* If this bit is set, then . doesn't match NUL.
If not set, then it does. */
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
/* If this bit is set, nonmatching lists [^...] do not match newline.
If not set, they do. */
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
/* If this bit is set, either \{...\} or {...} defines an
interval, depending on RE_NO_BK_BRACES.
If not set, \{, \}, {, and } are literals. */
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
/* If this bit is set, +, ? and | aren't recognized as operators.
If not set, they are. */
#define RE_LIMITED_OPS (RE_INTERVALS << 1)
/* If this bit is set, newline is an alternation operator.
If not set, newline is literal. */
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
/* If this bit is set, then `{...}' defines an interval, and \{ and \}
are literals.
If not set, then `\{...\}' defines an interval. */
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
/* If this bit is set, (...) defines a group, and \( and \) are literals.
If not set, \(...\) defines a group, and ( and ) are literals. */
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
/* If this bit is set, then \<digit> matches <digit>.
If not set, then \<digit> is a back-reference. */
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
/* If this bit is set, then | is an alternation operator, and \| is literal.
If not set, then \| is an alternation operator, and | is literal. */
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
/* If this bit is set, then an ending range point collating higher
than the starting range point, as in [z-a], is invalid.
If not set, then when ending range point collates higher than the
starting range point, the range is ignored. */
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
/* If this bit is set, then an unmatched ) is ordinary.
If not set, then an unmatched ) is invalid. */
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
stored in the pattern buffer, so changing this does not affect
already-compiled regexps. */
extern reg_syntax_t re_syntax_options;
/* Define combinations of the above bits for the standard possibilities.
(The [[[ comments delimit what gets put into the Texinfo file, so
don't delete them!) */
/* [[[begin syntaxes]]] */
#define RE_SYNTAX_EMACS 0
#define RE_SYNTAX_AWK \
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
#define RE_SYNTAX_GREP \
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
| RE_NEWLINE_ALT)
#define RE_SYNTAX_EGREP \
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \
| RE_NO_BK_VBAR)
#define RE_SYNTAX_POSIX_EGREP \
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
/* Syntax bits common to both basic and extended POSIX regex syntax. */
#define _RE_SYNTAX_POSIX_COMMON \
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
| RE_INTERVALS | RE_NO_EMPTY_RANGES)
#define RE_SYNTAX_POSIX_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
isn't minimal, since other operators, such as \`, aren't disabled. */
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
#define RE_SYNTAX_POSIX_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
/* [[[end syntaxes]]] */
/* Maximum number of duplicates an interval can allow. Some systems
(erroneously) define this in other header files, but we want our
value, so remove any previous define. */
#ifdef RE_DUP_MAX
#undef RE_DUP_MAX
#endif
#define RE_DUP_MAX ((1 << 15) - 1)
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
/* If this bit is set, then use extended regular expression syntax.
If not set, then use basic regular expression syntax. */
#define REG_EXTENDED 1
/* If this bit is set, then ignore case when matching.
If not set, then case is significant. */
#define REG_ICASE (REG_EXTENDED << 1)
/* If this bit is set, then anchors do not match at newline
characters in the string.
If not set, then anchors do match at newlines. */
#define REG_NEWLINE (REG_ICASE << 1)
/* If this bit is set, then report only success or fail in regexec.
If not set, then returns differ between not matching and errors. */
#define REG_NOSUB (REG_NEWLINE << 1)
/* POSIX `eflags' bits (i.e., information for regexec). */
/* If this bit is set, then the beginning-of-line operator doesn't match
the beginning of the string (presumably because it's not the
beginning of a line).
If not set, then the beginning-of-line operator does match the
beginning of the string. */
#define REG_NOTBOL 1
/* Like REG_NOTBOL, except for the end-of-line. */
#define REG_NOTEOL (1 << 1)
/* If any error codes are removed, changed, or added, update the
`re_error_msg' table in regex.c. */
typedef enum
{
REG_NOERROR = 0, /* Success. */
REG_NOMATCH, /* Didn't find a match (for regexec). */
/* POSIX regcomp return error codes. (In the order listed in the
standard.) */
REG_BADPAT, /* Invalid pattern. */
REG_ECOLLATE, /* Not implemented. */
REG_ECTYPE, /* Invalid character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* Unmatched left bracket. */
REG_EPAREN, /* Parenthesis imbalance. */
REG_EBRACE, /* Unmatched \{. */
REG_BADBR, /* Invalid contents of \{\}. */
REG_ERANGE, /* Invalid range end. */
REG_ESPACE, /* Ran out of memory. */
REG_BADRPT, /* No preceding re for repetition op. */
/* Error codes we've added. */
REG_EEND, /* Premature end. */
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
} reg_errcode_t;
/* This data structure represents a compiled pattern. Before calling
the pattern compiler, the fields `buffer', `allocated', `fastmap',
`translate', and `no_sub' can be set. After the pattern has been
compiled, the `re_nsub' field is available. All other fields are
private to the regex routines. */
struct re_pattern_buffer
{
/* [[[begin pattern_buffer]]] */
/* Space that holds the compiled pattern. It is declared as
`unsigned char *' because its elements are
sometimes used as array indexes. */
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
unsigned long allocated;
/* Number of bytes actually used in `buffer'. */
unsigned long used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
/* Pointer to a fastmap, if any, otherwise zero. re_search uses
the fastmap, if there is one, to skip over impossible
starting points for matches. */
char *fastmap;
/* Either a translate table to apply to all characters before
comparing them, or zero for no translation. The translation
is applied to a pattern when it is compiled and to a string
when it is matched. */
char *translate;
/* Number of subexpressions found by the compiler. */
size_t re_nsub;
/* Zero if this pattern cannot match the empty string, one else.
Well, in truth it's used only in `re_search_2', to see
whether or not we should use the fastmap, so we don't set
this absolutely perfectly; see `re_compile_fastmap' (the
`duplicate' case). */
unsigned can_be_null : 1;
/* If REGS_UNALLOCATED, allocate space in the `regs' structure
for `max (RE_NREGS, re_nsub + 1)' groups.
If REGS_REALLOCATE, reallocate space if necessary.
If REGS_FIXED, use what's there. */
#define REGS_UNALLOCATED 0
#define REGS_REALLOCATE 1
#define REGS_FIXED 2
unsigned regs_allocated : 2;
/* Set to zero when `regex_compile' compiles a pattern; set to one
by `re_compile_fastmap' if it updates the fastmap. */
unsigned fastmap_accurate : 1;
/* If set, `re_match_2' does not return information about
subexpressions. */
unsigned no_sub : 1;
/* If set, a beginning-of-line anchor doesn't match at the
beginning of the string. */
unsigned not_bol : 1;
/* Similarly for an end-of-line anchor. */
unsigned not_eol : 1;
/* If true, an anchor at a newline matches. */
unsigned newline_anchor : 1;
/* [[[end pattern_buffer]]] */
};
typedef struct re_pattern_buffer regex_t;
/* search.c (search_buffer) in Emacs needs this one opcode value. It is
defined both in `regex.c' and here. */
#define RE_EXACTN_VALUE 1
/* Type for byte offsets within the string. POSIX mandates this. */
typedef int regoff_t;
/* This is the structure we store register match data in. See
regex.texinfo for a full description of what registers match. */
struct re_registers
{
unsigned num_regs;
regoff_t *start;
regoff_t *end;
};
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
`re_match_2' returns information about at least this many registers
the first time a `regs' structure is passed. */
#ifndef RE_NREGS
#define RE_NREGS 30
#endif
/* POSIX specification for registers. Aside from the different names than
`re_registers', POSIX uses an array of structures, instead of a
structure of arrays. */
typedef struct
{
regoff_t rm_so; /* Byte offset from string's start to substring's start. */
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
} regmatch_t;
/* Declarations for routines. */
/* To avoid duplicating every routine declaration -- once with a
prototype (if we are ANSI), and once without (if we aren't) -- we
use the following macro to declare argument types. This
unfortunately clutters up the declarations a bit, but I think it's
worth it. */
#if __STDC__
#define _RE_ARGS(args) args
#else /* not __STDC__ */
#define _RE_ARGS(args) ()
#endif /* not __STDC__ */
/* Sets the current default syntax to SYNTAX, and return the old syntax.
You can also simply assign to the `re_syntax_options' variable. */
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
/* Compile the regular expression PATTERN, with length LENGTH
and syntax given by the global `re_syntax_options', into the buffer
BUFFER. Return NULL if successful, and an error string if not. */
extern const char *re_compile_pattern
_RE_ARGS ((const char *pattern, int length,
struct re_pattern_buffer *buffer));
/* Compile a fastmap for the compiled pattern in BUFFER; used to
accelerate searches. Return 0 if successful and -2 if was an
internal error. */
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
/* Search in the string STRING (with length LENGTH) for the pattern
compiled into BUFFER. Start searching at position START, for RANGE
characters. Return the starting position of the match, -1 for no
match, or -2 for an internal error. Also return register
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
extern int re_search
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, int range, struct re_registers *regs));
/* Like `re_search', but search in the concatenation of STRING1 and
STRING2. Also, stop searching at index START + STOP. */
extern int re_search_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, int range, struct re_registers *regs, int stop));
/* Like `re_search', but return how many characters in STRING the regexp
in BUFFER matched, starting at position START. */
extern int re_match
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, struct re_registers *regs));
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
extern int re_match_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, struct re_registers *regs, int stop));
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using BUFFER and REGS will use this memory
for recording register information. STARTS and ENDS must be
allocated with malloc, and must each be at least `NUM_REGS * sizeof
(regoff_t)' bytes long.
If NUM_REGS == 0, then subsequent matches should allocate their own
register data.
Unless this function is called, the first search or match using
PATTERN_BUFFER will allocate its own register data, without
freeing the old data. */
extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
extern int re_exec _RE_ARGS ((const char *));
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
extern int regexec
_RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags));
extern size_t regerror
_RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size));
extern void regfree _RE_ARGS ((regex_t *preg));
#endif /* not __REGEXP_LIBRARY_H__ */
/*
Local variables:
make-backup-files: t
version-control: t
trim-versions-without-asking: nil
End:
*/
+9 -4
View File
@@ -4,17 +4,22 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_REGEX
#include <regex.h>
#else
#include "../extras/regex/regex.h"
#endif
#define MAX_MATCH 1
#define MAX_WORDLEN 64
#define MAX_WORDS 30
#define MAX_WORDS 50
#define PATTERN "\\w*%s\\w*"
#define REPLACEWORD "<censored>"
char *stripbadwords(char *, int);
int loadbadwords(char *, int);
void freebadwords(void);
char *stripbadwords(char *, int);
int loadbadwords(char *, int);
void freebadwords(void);
#endif
+6 -6
View File
@@ -21,8 +21,8 @@
#ifndef __channel_include__
#define __channel_include__
#define CREATE 1 /* whether a channel should be
created or just tested for existance */
#define CREATE 1 /* whether a channel should be
created or just tested for existance */
#define MODEBUFLEN 200
@@ -30,15 +30,15 @@
#define ChannelExists(n) (find_channel(n, NullChn) != NullChn)
#define IsULine(cptr,sptr) (sptr->flags & FLAGS_ULINE)
#define IsULine(sptr) (sptr->flags & FLAGS_ULINE)
/* NOTE: Timestamps will be added to MODE-commands, so never make
* RESYNCMODES and MODEPARAMS higher than MAXPARA-3. DALnet servers
* before Dreamforge aren't safe with more than six. -Donwulff
*/
#include "msg.h"
#define MAXMODEPARAMS (MAXPARA-2) /* Maximum modes processed */
#define RESYNCMODES 12 /* Max modes per MODE in resync */
#define MODEPARAMS 6 /* Max modes from user */
#define MAXMODEPARAMS (MAXPARA-3) /* Maximum modes processed */
#define RESYNCMODES 12 /* Max modes per MODE in resync */
#define MODEPARAMS 6 /* Max modes from user */
#endif
-27
View File
@@ -1,27 +0,0 @@
// $Id$
#include <windows.h>
#define CIOCLASS "CioClass"
#ifndef CIO
#define CIO
typedef struct tag_CioLine
{
BYTE *Data;
WORD Len;
struct tag_CioLine *Prev, *Next;
} CioLine;
typedef struct tag_CioWndInfo
{
CioLine *FirstLine, *CurLine;
int Lines, Scroll;
int Width, Height, XChar, YChar, YJunk, ScrollMe;
HFONT hFont;
BYTE FR, FG, FB;
} CioWndInfo;
#endif
-20
View File
@@ -1,20 +0,0 @@
// $Id$
#include "Cio.h"
#define GWL_USER 0
#define CIO_ADDSTRING WM_USER
#define CIO_CLEAR WM_USER+1
// Cio_Init.c
BOOL Cio_Init(HINSTANCE hInstance);
// Cio_Main.c
LRESULT CALLBACK Cio_WndProc(HWND, UINT, WPARAM, LPARAM);
HWND Cio_Create(HINSTANCE hInstance, HWND hParent, DWORD Style, int X, int Y, int W, int H);
BOOL Cio_WndCreate(HWND hWnd);
BOOL Cio_WndPaint(HWND hWnd);
BOOL Cio_WndDestroy(HWND hWnd);
BOOL Cio_WndAddString(HWND hWnd, int Len, char *Buffer);
BOOL Cio_WndSize(HWND hWnd, LPARAM lParam);
void Cio_Scroll(HWND hWnd, CioWndInfo *CWI, int Scroll);
BOOL Cio_PrintF(HWND hWnd, char *InBuf, ...);
+15 -15
View File
@@ -31,12 +31,12 @@
#endif
typedef struct Class {
int class;
int conFreq;
int pingFreq;
int maxLinks;
long maxSendq;
int links;
int class;
int conFreq;
int pingFreq;
int maxLinks;
long maxSendq;
int links;
struct Class *next;
} aClass;
@@ -57,15 +57,15 @@ typedef struct Class {
#define FirstClass() classes
#define NextClass(x) ((x)->next)
extern aClass *classes;
extern aClass *classes;
extern aClass *find_class PROTO((int));
extern int get_conf_class PROTO((aConfItem *));
extern int get_client_class PROTO((aClient *));
extern int get_client_ping PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern void add_class PROTO((int, int, int, int, long));
extern void check_class PROTO((void));
extern void initclass PROTO((void));
extern aClass *find_class PROTO((int));
extern int get_conf_class PROTO((aConfItem *));
extern int get_client_class PROTO((aClient *));
extern int get_client_ping PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern void add_class PROTO((int, int, int, int, long));
extern void check_class PROTO((void));
extern void initclass PROTO((void));
#endif /* __class_include__ */
+104 -28
View File
@@ -29,7 +29,7 @@
#include <winsock.h>
#include <process.h>
#include <io.h>
#include "struct.h"
//#include "struct.h"
#endif
#include "dynconf.h"
#include "ircsprintf.h"
@@ -47,17 +47,21 @@
#endif
#ifdef DEVELOP_CVS
#define ID_CVS(x) static char id_cvs[] = x
#define ID_Copyright(x) static char id_copyright[] = x
#define ID_Notes(x) static char id_notes[] = x
#else
#define ID_CVS(x)
#define ID_Copyright(x)
#define ID_Notes(x)
#endif
#define BMAGIC 0x4675636B596F754661736369737473
#define BASE_VERSION "Unreal"
#ifndef _WIN32
#define FDwrite(x,y,z) write(x, y, z)
#else
#define FDwrite(x,y,z) send(x, y, z, 0)
#endif
#ifndef NULL
#define NULL 0
#endif
@@ -79,27 +83,29 @@
#if 0
#ifndef MALLOCH
char *malloc(), *calloc();
void free();
char *malloc(), *calloc();
void free();
#else
#include MALLOCH
#endif
#endif
extern int match PROTO((char *, char *));
#define TS time_t
extern int match PROTO((char *, char *));
#define mycmp(a,b) \
( (toupper((a)[0])!=toupper((b)[0])) || smycmp((a)+1,(b)+1) )
extern int smycmp PROTO((char *, char *));
extern int smycmp PROTO((char *, char *));
#ifndef GLIBC2_x
extern int myncmp PROTO((char *, char *, int));
#endif
extern int myncmp PROTO((char *, char *, int));
#endif
#ifdef NEED_STRTOK
extern char *strtok2 PROTO((char *, char *));
extern char *strtok2 PROTO((char *, char *));
#endif
#ifdef NEED_STRTOKEN
extern char *strtoken PROTO((char **, char *, char *));
extern char *strtoken PROTO((char **, char *, char *));
#endif
#ifdef NEED_INET_ADDR
extern unsigned long inet_addr PROTO((char *));
@@ -116,8 +122,8 @@ extern char *inet_ntoa PROTO((struct IN_ADDR));
extern int inet_netof PROTO((struct IN_ADDR));
#endif
int global_count, max_global_count;
extern char *myctime PROTO((time_t));
int global_count, max_global_count;
extern char *myctime PROTO((TS));
extern char *strtoken PROTO((char **, char *, char *));
#define PRECISE_CHECK
@@ -187,29 +193,75 @@ extern unsigned char char_atribs[];
#define ispunct(c) (!(char_atribs[(u_char)(c)]&(CNTRL|ALPHA|DIGIT)))
#endif
// #ifndef DMALLOC
#ifndef DMALLOC
extern char *MyMalloc();
// #else
// #define MyMalloc malloc
// #define MyRealloc realloc
// #define MyFree free
// #endif
#else
#define MyMalloc malloc
#define MyRealloc realloc
#define MyFree free
#endif
extern void flush_connections();
extern struct SLink *find_user_link(/* struct SLink *, struct Client * */);
extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
/*
* Protocol support text. DO NO CHANGE THIS unless you know what
* you are doing.
*/
#define PROTOCTL_CLIENT "TOKEN WATCH=128 SAFELIST HCN PREFIX=@+%"
#define PROTOCTL_SERVER "NOQUIT TOKEN NICKv2 SJOIN SJOIN2 UMODE2 ALN"
/* IRCu/Hybrid/Unreal way now :) -Stskeeps */
#define PROTOCTL_CLIENT \
":%s 005 %s" \
" MAP" \
" KNOCK" \
" SAFELIST" \
" HCN" \
" WATCH=%i" \
" SILENCE=%i" \
" MODES=%i" \
" MAXCHANNELS=%i" \
" MAXBANS=%i" \
" NICKLEN=%i" \
" TOPICLEN=%i" \
" KICKLEN=%i" \
" CHANTYPES=%s" \
" PREFIX=%s" \
" CHANMODES=%s,%s,%s,%s" \
" :are supported by this server"
#define PROTOCTL_PARAMETERS MAXWATCH, \
MAXSILES, \
MAXMODEPARAMS, \
MAXCHANNELSPERUSER, \
MAXBANS, \
NICKLEN, \
TOPICLEN, \
TOPICLEN, \
"#", \
"(ohv)@%+", \
"ohvbeqa", \
"kfL", \
"l", \
"psmntirRcOAQKVGCuzNSM"
/* Server-Server PROTOCTL -Stskeeps */
#define PROTOCTL_SERVER "NOQUIT" \
" TOKEN" \
" NICKv2" \
" SJOIN" \
" SJOIN2" \
" UMODE2" \
" VL" \
" SJ3" \
" NS" \
" SJB64"
#ifdef _WIN32
/*
* Used to display a string to the GUI interface.
* Windows' internal strerror() function doesn't work with socket errors.
*/
extern int DisplayString(HWND hWnd, char *InBuf, ...);
extern int DisplayString(HWND hWnd, char *InBuf, ...);
#undef strerror
#endif
@@ -217,10 +269,34 @@ extern int DisplayString(HWND hWnd, char *InBuf, ...);
extern char *malloc_options;
#endif
extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
time_t now;
extern int lu_noninv, lu_inv, lu_serv, lu_oper,
lu_unknown, lu_channel, lu_lu, lu_lulocal, lu_lserv,
lu_clu, lu_mlu, lu_cglobalu, lu_mglobalu;
TS now;
#if defined(__STDC__)
#define __const const
#define __signed signed
#define __volatile volatile
#ifndef __GNUC__
#define __inline
#endif
#else
#ifndef __GNUC__
#define __const
#define __inline
#define __signed
#define __volatile
#ifndef NO_ANSI_KEYWORDS
#define const /* delete ANSI C keywords */
#define inline
#define signed
#define volatile
#endif
#endif
#endif
#endif /* __common_include__ */
+111 -166
View File
@@ -49,37 +49,30 @@
#endif
/*
* Define this if you're testing/debugging/programming.
*/
* Define this if you're testing/debugging/programming.
*/
#undef DEBUG
/* Type of host. These should be made redundant somehow. -avalon */
/* BSD Nothing Needed 4.{2,3} BSD, SunOS 3.x, 4.x */
/* HPUX Nothing needed (A.08/A.09) */
/* ULTRIX Nothing needed (4.2) */
/* OSF Nothing needed (1.2) */
/* #undef AIX /* IBM ugly so-called Unix, AIX */
/* #undef MIPS /* MIPS Unix */
/* #undef AIX IBM ugly so-called Unix, AIX */
/* #undef MIPS MIPS Unix */
/* SGI Nothing needed (IRIX 4.0.4) */
/* #undef SVR3 /* SVR3 stuff - being worked on where poss. */
/* #undef DYNIXPTX /* Sequents Brain-dead Posix implement. */
/* #undef SOL20 /* Solaris2 */
/* #undef ESIX /* ESIX */
/* #undef NEXT /* NeXTStep */
/* #undef SVR4 /* */
/* #undef SVR3 SVR3 stuff - being worked on where poss. */
/* #undef DYNIXPTX Sequents Brain-dead Posix implement. */
/* #undef SOL20 Solaris2 */
/* #undef ESIX ESIX */
/* #undef NEXT NeXTStep */
/* #undef SVR4 */
/* Additional flags to give FreeBSD's malloc, only play with this if you
* know what you're doing.
*/
#define MALLOC_FLAGS_EXTRA ""
/*
ConferenceRoom Java Client Hack -Fish
if you want it to work #define CONFROOM_JAVA_PORT <port>
where port MUST be a seperate port java clients connects on ..
*/
#undef CONFROOM_JAVA_PORT
/*
dog3/comstud ircd fdlists
@@ -88,16 +81,72 @@
#undef NO_FDLIST
/*
* Defining this will allow all ircops to see people in +s channels
* By default, only net admins can see this
*/
#undef SEE_SECRET
/*
* This allows you to see modes in /list
*/
#define LIST_SHOW_MODES
/*
* Admin's chat...
*/
#define ADMINCHAT 1
/*
If you want SHUN_NOTICES, define this
*/
#undef SHUN_NOTICES
/*
If you want to support chinese and/or japanese nicks
*/
#undef CHINESE_NICK
#undef JAPANESE_NICK
/*
Remote rehash
*/
#define REMOTE_REHASH
/*
Stripbadwords patch
*/
#define STRIPBADWORDS
/* STATS_ONLYOPER
* This changes all stats related commands so that the output
* is only visible if the user is an oper.
*/
#undef STATS_ONLYOPER
/*
* NO_OPEROVERRIDE
* This will disable OperMode, OperTopic and Banwalks
*/
#undef NO_OPEROVERRIDE
/*
* OPEROVERRIDE_VERIFY
* This will prompt opers before permitting them to join +s/+p
* channels, preventing them from "accidentally" joining random
* channels
*/
#ifndef NO_OPEROVERRIDE
#define OPEROVERRIDE_VERIFY 1
#else
#undef OPEROVERRIDE_VERIFY
#endif
/*
* Disable /sethost, /setident, /chgname, /chghost, /chgident
*/
#undef DISABLE_USERMOD
/*
Ident checking
#define this to disable ident checking
@@ -109,49 +158,13 @@
*
* This enables the spoof protection.
*/
/* #define NOSPOOF 1 /* */
/*
*
* This controls the "nospoof" system. These numbers are "seeds" of the
* "random" number generating formula. Choose any number you like in the
* range of 0x00000000 to 0xFFFFFFFF. Don't tell anyone these numbers, and
* don't use the default ones. Change both #define NOSPOOF... lines below.
*
* Other data is mixed in as well, but these guarantee a per-server secret.
* Also, these values need not remain constant over compilations... Change
* them as often as you like.
*/
#ifdef NOSPOOF
#ifndef NOSPOOF_SEED01
#define NOSPOOF_SEED01 0x12345678
#endif
#ifndef NOSPOOF_SEED02
#define NOSPOOF_SEED02 0x87654321
#endif
#endif /* NOSPOOF */
/* #define NOSPOOF 1 */
/*
* HOSTILENAME - Define this if you want the hostile username patch included,
* it will strip characters that are not 0-9,a-z,A-Z,_,- or .
*/
#define HOSTILENAME /* */
/*
* Define this to prevent mixed case userids that clonebots use. However
* this affects the servers running telclients WLD* FIN* etc.
*/
#undef DISALLOW_MIXED_CASE
/*
* Define this if you wish to ignore the case of the first character of
* the user id when disallowing mixed case. This allows PC users to
* enter the more intuitive first name with the first letter capitalised
*/
#define IGNORE_CASE_FIRST_CHAR
#define HOSTILENAME /* */
/*
** Nick flood limit
@@ -161,7 +174,7 @@
** Define NICK_DELAY if you want this feature.
*/
#define NICK_DELAY 15 /* recommended value 15 */
#define NICK_DELAY 15 /* recommended value 15 */
/*
** Freelinks garbage collector -Stskeeps
@@ -170,10 +183,10 @@
** HOW_MANY_FREELINKS_ALLOWED - how many freelinks allowed
*/
#ifndef GARBAGE_COLLECT_EVERY
#define GARBAGE_COLLECT_EVERY 600 /* default: 600 (10 mins) */
#define GARBAGE_COLLECT_EVERY 600 /* default: 600 (10 mins) */
#endif
#define HOW_MANY_FREELINKS_ALLOWED 200 /* default: 200 */
#define HOW_MANY_FREELINKS_ALLOWED 200 /* default: 200 */
/*
* Define this if you wish to output a *file* to a K lined client rather
@@ -184,9 +197,9 @@
/* Do these work? I dunno... */
/* #undef VMS /* Should work for IRC client, not server */
/* #undef MAIL50 /* If you're running VMS 5.0 */
/* #undef PCS /* PCS Cadmus MUNIX, use with BSD flag! */
/* #undef VMS Should work for IRC client, not server */
/* #undef MAIL50 If you're running VMS 5.0 */
/* #undef PCS PCS Cadmus MUNIX, use with BSD flag! */
/*
* NOTE: On some systems, valloc() causes many problems.
@@ -214,13 +227,14 @@
* the maintainer.
*/
/* #undef DEBUGMODE /* define DEBUGMODE to enable debugging mode.*/
/* #undef DEBUGMODE define DEBUGMODE to enable debugging mode.*/
/* We not check whether this is ok at compile time -- codemastr */
/*
* defining FORCE_CORE will automatically "unlimit core", forcing the
* server to dump a core file whenever it has a fatal error. -mlv
*/
#define FORCE_CORE
/* #define FORCE_CORE */
/*
* Full pathnames and defaults of irc system's support files. Please note that
@@ -229,16 +243,16 @@
*/
#define CPATH "ircd.conf" /* server configuration file */
#define MPATH "ircd.motd" /* server MOTD file */
#define RPATH "ircd.rules" /* server rules file */
#define RPATH "ircd.rules" /* server rules file */
#define ZPATH "ircd.notes" /* server notes */
#define ZCONF "networks/unrealircd.conf" /* ircd configuration .. */
#define OPATH "oper.motd" /* Operators MOTD file */
#define ZCONF "networks/unrealircd.conf" /* ircd configuration .. */
#define OPATH "oper.motd" /* Operators MOTD file */
#define LPATH "debug.log" /* Where the debug file lives, if DEBUGMODE */
#define PPATH "ircd.pid" /* file for server pid */
#define lPATH "ircd.log" /* server log file */
#define VPATH "ircd.svsmotd" /* Services MOTD append. */
#define VPATH "ircd.svsmotd" /* Services MOTD append. */
#define BPATH "bot.motd" /* Bot MOTD */
#define IRCDTUNE "ircd.tune" /* tuning .. */
#define IRCDTUNE "ircd.tune" /* tuning .. */
/*
* Define this filename to maintain a list of persons who log
@@ -267,7 +281,7 @@
*
* You may want to define IRC_UID and IRC_GID
*/
/* #define CHROOTDIR /* */
/* #define CHROOTDIR */
/* SHOW_INVISIBLE_LUSERS
*
@@ -278,13 +292,6 @@
*/
#define SHOW_INVISIBLE_LUSERS
/* OPER_* defines
*
* See ./docs/example.conf for examples of how to restrict access for
* your IRC Operators
*/
/* MAXIMUM LINKS
*
* This define is useful for leaf nodes and gateways. It keeps you from
@@ -323,14 +330,7 @@
* starts up the server with a new conf file that has some extra
* O-lines. So don't use this unless you're debugging.
*/
#define CMDLINE_CONFIG /* allow conf-file to be specified on command line */
/*
* To use m4 as a preprocessor on the ircd.conf file, define M4_PREPROC.
* The server will then call m4 each time it reads the ircd.conf file,
* reading m4 output as the server's ircd.conf file.
*/
#undef M4_PREPROC
#define CMDLINE_CONFIG /* allow conf-file to be specified on command line */
/*
* If you wish to have the server send 'vital' messages about server
@@ -349,11 +349,11 @@
* If you use syslog above, you may want to turn some (none) of the
* spurious log messages for KILL/SQUIT off.
*/
#undef SYSLOG_KILL /* log all operator kills to syslog */
#undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
#undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
#undef SYSLOG_USERS /* send userlog stuff to syslog */
#undef SYSLOG_OPER /* log all users who successfully become an Op */
#undef SYSLOG_KILL /* log all operator kills to syslog */
#undef SYSLOG_SQUIT /* log all remote squits for all servers to syslog */
#undef SYSLOG_CONNECT /* log remote connect messages for other all servs */
#undef SYSLOG_USERS /* send userlog stuff to syslog */
#undef SYSLOG_OPER /* log all users who successfully become an Op */
/*
* If you want to log to a different facility than DAEMON, change
@@ -362,15 +362,6 @@
#define LOG_FACILITY LOG_DAEMON
#endif /* USE_SYSLOG */
/*
* IDLE_FROM_MSG
*
* Idle-time nullified only from privmsg, if undefined idle-time
* is nullified from everything except ping/pong.
* Added 3.8.1992, kny@cs.hut.fi (nam)
*/
#define IDLE_FROM_MSG
/*
* Size of the LISTEN request. Some machines handle this large
* without problem, but not all. It defaults to 5, but can be
@@ -413,13 +404,13 @@
* If you _must_ insist on running as root and not wanting the program to change its
* UID, then define BIG_SECURITY_HOLE below
*/
#if !defined(_WIN32) && !defined(_AMIGA)
/* Change This Line Below \/ */
#define BIG_SECURITY_HOLE
#if !defined(_WIN32)
/* Change This Line Below \/ */
#define BIG_SECURITY_HOLE
/* Its the one above ^^^^^^^ */
#ifndef BIG_SECUTIRY_HOLE
#define IRC_UID un_uid
#define IRC_GID un_gid
#ifndef BIG_SECURITY_HOLE
#define IRC_UID un_uid
#define IRC_GID un_gid
#endif
#endif
@@ -432,10 +423,6 @@
*/
#define CLIENT_FLOOD 8000
/* Define this if you want the server to accomplish ircII standard */
/* Sends an extra NOTICE in the beginning of client connection */
#undef IRCII_KLUDGE
/*
* Define your network service names here.
*/
@@ -445,7 +432,8 @@
#define OperServ "OperServ"
#define HelpServ "HelpServ"
#define StatServ "StatServ"
#define InfoServ "InfoServ"
#define BotServ "BotServ"
/*
* How many seconds in between simultaneous nick changes?
*/
@@ -483,9 +471,6 @@
*/
#define SOCKSPORT 6013
/* Define default Z:line time for SOCKS -taz */
#define ZLINE_TIME 300
/* STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP */
/* You shouldn't change anything below this line, unless absolutely needed. */
@@ -494,7 +479,7 @@
* Port where ircd resides. NOTE: This *MUST* be greater than 1024 if you
* plan to run ircd under any other uid than root.
*/
#define PORTNUM 6667 /* 6667 is default */
#define PORTNUM 6667 /* 6667 is default */
/*
* Maximum number of network connections your server will allow. This should
@@ -535,7 +520,7 @@
* chasing possible for mode and kick.
*/
#ifndef NICKNAMEHISTORYLENGTH
#define NICKNAMEHISTORYLENGTH 2000
#define NICKNAMEHISTORYLENGTH 2000
#endif
/*
@@ -581,23 +566,13 @@
* CONNECTTIMEOUT - 10 seconds for its host to respond to an ident lookup
* query and for a DNS answer to be retrieved.
*/
#define CONNECTTIMEOUT 60 /* Recommended value: 60 */
#define CONNECTTIMEOUT 30 /* Recommended value: 60 */
/*
* Max time from the nickname change that still causes KILL
* automaticly to switch for the current nick of that user. (seconds)
*/
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
/*
* SendQ-Always causes the server to put all outbound data into the sendq and
* flushing the sendq at the end of input processing. This should cause more
* efficient write's to be made to the network.
* There *shouldn't* be any problems with this method.
* -avalon
*/
#define SENDQ_ALWAYS
#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */
/* ------------------------- END CONFIGURATION SECTION -------------------- */
#define MOTD MPATH
@@ -618,11 +593,6 @@
#endif
#endif
#ifdef _SEQUENT_ /* Dynix 1.4 or 2.0 Generic Define.. */
#undef BSD
#define SYSV /* Also #define SYSV */
#endif
#ifdef ultrix
#define ULTRIX
#endif
@@ -643,7 +613,7 @@
#endif
#ifdef DEBUGMODE
extern void debug();
extern void debug();
# define Debug(x) debug x
# define LOGFILE LPATH
#else
@@ -655,82 +625,63 @@ extern void debug();
# endif
#endif
#ifndef ENABLE_SUMMON
# undef LEAST_IDLE
#endif
#if defined(mips) || defined(PCS)
#undef SYSV
#endif
#ifdef MIPS
#undef BSD
#define BSD 1 /* mips only works in bsd43 environment */
#endif
#ifdef sequent /* Dynix (sequent OS) */
#define SEQ_NOFILE 128 /* set to your current kernel impl, */
#endif /* max number of socket connections */
#ifdef _SEQUENT_
#define DYNIXPTX
#define BSD 1 /* mips only works in bsd43 environment */
#endif
#ifdef BSD_RELIABLE_SIGNALS
# if defined(SYSV_UNRELIABLE_SIGNALS) || defined(POSIX_SIGNALS)
error You stuffed up config.h signals #defines use only one.
error You stuffed up config.h signals
#defines use only one.
# endif
#define HAVE_RELIABLE_SIGNALS
#endif
#ifdef SYSV_UNRELIABLE_SIGNALS
# ifdef POSIX_SIGNALS
error You stuffed up config.h signals #defines use only one.
error You stuffed up config.h signals
#defines use only one.
# endif
#undef HAVE_RELIABLE_SIGNALS
#endif
#ifdef POSIX_SIGNALS
#define HAVE_RELIABLE_SIGNALS
#endif
/*
* safety margin so we can always have one spare fd, for motd/authd or
* whatever else. -4 allows "safety" margin of 1 and space reserved.
*/
#define MAXCLIENTS (MAXCONNECTIONS-4)
#ifdef HAVECURSES
# define DOCURSES
#else
# undef DOCURSES
#endif
#ifdef HAVETERMCAP
# define DOTERMCAP
#else
# undef DOTERMCAP
#endif
# define stricmp strcasecmp
# define strnicmp strncasecmp
#if defined(CLIENT_FLOOD)
# if (CLIENT_FLOOD > 8000)
# define CLIENT_FLOOD 8000
# else
# if (CLIENT_FLOOD < 512)
error CLIENT_FLOOD needs redefining.
error CLIENT_FLOOD needs redefining.
# endif
# endif
#else
error CLIENT_FLOOD undefined
error CLIENT_FLOOD undefined
#endif
#if (NICKNAMEHISTORYLENGTH < 100)
# define NICKNAMEHISTORYLENGTH 100
#endif
/*
* Some ugliness for AIX platforms.
*/
@@ -753,8 +704,6 @@ error CLIENT_FLOOD undefined
#if defined(SOL20) || defined(SOL25) || defined(SOL26) || defined(SOL27)
#define _SOLARIS
#endif
/*
* Cleaup for WIN32 platform.
*/
@@ -762,7 +711,6 @@ error CLIENT_FLOOD undefined
# undef FORCE_CORE
#endif
/* use cflag longmodes */
#define USE_LONGMODE
#define Reg1 register
#define Reg2 register
#define Reg3 register
@@ -773,7 +721,4 @@ error CLIENT_FLOOD undefined
#define Reg8 register
#define Reg9 register
#define Reg10 register
#endif /* __config_include__ */
#endif /* __config_include__ */
+20 -32
View File
@@ -45,25 +45,14 @@
** implementation of this package without changing the
** interface.
*/
#if !defined(_SEQUENT_)
typedef struct dbuf
{
u_int length; /* Current number of bytes stored */
u_int offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
typedef struct dbuf {
u_int length; /* Current number of bytes stored */
u_int offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
/* added by mnystrom@mit.edu: */
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
#else
typedef struct dbuf
{
uint length; /* Current number of bytes stored */
uint offset; /* Offset to the first byte */
struct dbufbuf *head; /* First data buffer, if length > 0 */
/* added by mnystrom@mit.edu: */
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
#endif
struct dbufbuf *tail; /* last data buffer, if length > 0 */
} dbuf;
/*
** And this 'dbufbuf' should never be referenced outside the
** implementation of 'dbuf'--would be "hidden" if C had such
@@ -73,11 +62,10 @@ typedef struct dbuf
** as long as a pointer is 4 bytes, we get 2032 bytes for buffer
** data after we take away a bit for malloc to play with. -avalon
*/
typedef struct dbufbuf
{
struct dbufbuf *next; /* Next data buffer, NULL if this is last */
char data[2032]; /* Actual data stored here */
} dbufbuf;
typedef struct dbufbuf {
struct dbufbuf *next; /* Next data buffer, NULL if this is last */
char data[2032]; /* Actual data stored here */
} dbufbuf;
/*
** dbuf_put
@@ -88,10 +76,10 @@ typedef struct dbufbuf
** returns > 0, if operation successfull
** < 0, if failed (due memory allocation problem)
*/
int dbuf_put PROTO((dbuf *, char *, int));
int dbuf_put PROTO((dbuf *, char *, int));
/* Dynamic buffer header */
/* Pointer to data to be stored */
/* Number of bytes to store */
/* Pointer to data to be stored */
/* Number of bytes to store */
/*
** dbuf_get
@@ -108,10 +96,10 @@ int dbuf_put PROTO((dbuf *, char *, int));
** Negative return values indicate some unspecified
** error condition, rather fatal...
*/
int dbuf_get PROTO(( dbuf *, char *, int));
int dbuf_get PROTO((dbuf *, char *, int));
/* Dynamic buffer header */
/* Pointer to buffer to receive the data */
/* Max amount of bytes that can be received */
/* Pointer to buffer to receive the data */
/* Max amount of bytes that can be received */
/*
** dbuf_map, dbuf_delete
@@ -138,8 +126,8 @@ int dbuf_get PROTO(( dbuf *, char *, int));
** between map and delete functions...
*/
char *dbuf_map PROTO((dbuf *, int *));
/* Dynamic buffer header */
/* Return number of bytes accessible */
/* Dynamic buffer header */
/* Return number of bytes accessible */
int dbuf_delete PROTO((dbuf *, int));
/* Dynamic buffer header */
@@ -160,6 +148,6 @@ int dbuf_delete PROTO((dbuf *, int));
*/
#define DBufClear(dyn) dbuf_delete((dyn),DBufLength(dyn))
extern int dbuf_getmsg PROTO((dbuf *, char *, int));
extern int dbuf_getmsg PROTO((dbuf *, char *, int));
#endif /* __dbuf_include__ */
+53 -49
View File
@@ -23,65 +23,66 @@
#define DYNCONF_H
/* config level */
#define DYNCONF_CONF_VERSION "1.5"
#define DYNCONF_NETWORK_VERSION "2.2"
#define DYNCONF_CONF_VERSION "1.6"
#define DYNCONF_NETWORK_VERSION "2.3"
typedef struct zNetwork aNetwork;
struct zNetwork {
unsigned x_inah : 1;
char *x_ircnetwork;
char *x_defserv;
char *x_services_name;
char *x_oper_host;
char *x_admin_host;
char *x_locop_host;
char *x_sadmin_host;
char *x_netadmin_host;
char *x_coadmin_host;
char *x_techadmin_host;
char *x_hidden_host;
char *x_netdomain;
char *x_helpchan;
char *x_stats_server;
typedef struct zNetwork aNetwork;
struct zNetwork {
unsigned x_inah:1;
char *x_ircnetwork;
char *x_defserv;
char *x_services_name;
char *x_oper_host;
char *x_admin_host;
char *x_locop_host;
char *x_sadmin_host;
char *x_netadmin_host;
char *x_coadmin_host;
char *x_hidden_host;
char *x_netdomain;
char *x_helpchan;
char *x_stats_server;
};
typedef struct zConfiguration aConfiguration;
struct zConfiguration {
unsigned som : 1;
unsigned mode_x : 1;
unsigned mode_i : 1;
unsigned mode_stripbadwords : 1;
unsigned truehub : 1;
unsigned stop : 1;
unsigned showopers : 1;
unsigned killdiff : 1;
unsigned hide_ulines : 1;
unsigned allow_chatops : 1;
unsigned webtv_support : 1;
unsigned no_oper_hiding : 1;
struct zConfiguration {
unsigned som:1;
unsigned mode_x:1;
unsigned mode_i:1;
unsigned mode_stripbadwords:1;
unsigned truehub:1;
unsigned stop:1;
unsigned showopers:1;
unsigned killdiff:1;
unsigned hide_ulines:1;
unsigned allow_chatops:1;
unsigned webtv_support:1;
unsigned no_oper_hiding:1;
/* long nospoof_seed01;
long nospoof_seed02; */
long host_timeout;
int host_retries;
char *kline_address;
char *include;
char *domainname;
char *domainmask; /* '*' + domainname */
char *auto_join_chans;
char *oper_auto_join_chans;
int socksbantime;
int maxchannelsperuser;
char *socksbanmessage;
char *socksquitmessage;
aNetwork network;
long host_timeout;
int host_retries;
int exempt_all;
char *kline_address;
char *include;
char *domainname;
char *domainmask; /* '*' + domainname */
char *auto_join_chans;
char *oper_auto_join_chans;
int socksbantime;
int maxchannelsperuser;
char *socksbanmessage;
char *socksquitmessage;
long ckey_1;
long ckey_2;
long ckey_3;
aNetwork network;
};
#ifndef DYNCONF_C
extern aConfiguration iConf;
extern aConfiguration iConf;
#endif
// #define NOSPOOF_SEED01 iConf.nospoof_seed01
// #define NOSPOOF_SEED02 iConf.nospoof_seed02
#define KLINE_ADDRESS iConf.kline_address
#define INCLUDE iConf.include
#define DOMAINNAMEMASK "*" DOMAINNAME
@@ -100,7 +101,11 @@ extern aConfiguration iConf;
#define AUTO_JOIN_CHANS iConf.auto_join_chans
#define OPER_AUTO_JOIN_CHANS iConf.oper_auto_join_chans
#define HOST_TIMEOUT iConf.host_timeout
#define EXEMPT_ALL iConf.exempt_all
#define HOST_RETRIES iConf.host_retries
#define CLOAK_KEY1 iConf.ckey_1
#define CLOAK_KEY2 iConf.ckey_2
#define CLOAK_KEY3 iConf.ckey_3
#define ircnetwork iConf.network.x_ircnetwork
#define defserv iConf.network.x_defserv
@@ -111,7 +116,6 @@ extern aConfiguration iConf;
#define sadmin_host iConf.network.x_sadmin_host
#define netadmin_host iConf.network.x_netadmin_host
#define coadmin_host iConf.network.x_coadmin_host
#define techadmin_host iConf.network.x_techadmin_host
#define hidden_host iConf.network.x_hidden_host
#define netdomain iConf.network.x_netdomain
#define helpchan iConf.network.x_helpchan
+7 -7
View File
@@ -4,21 +4,21 @@
/* $Id$ */
typedef struct fdstruct {
int entry[MAXCONNECTIONS + 2];
int last_entry;
int entry[MAXCONNECTIONS + 2];
int last_entry;
} fdlist;
void addto_fdlist(int a, fdlist * b);
void delfrom_fdlist(int a, fdlist * b);
void init_fdlist(fdlist * b);
void addto_fdlist(int a, fdlist * b);
void delfrom_fdlist(int a, fdlist * b);
void init_fdlist(fdlist * b);
#ifndef TRUE
#define TRUE 1
#endif
#define LOADCFREQ 5
#define LOADRECV 35
#define FDLISTCHKFREQ 2
#define FDLISTCHKFREQ 2
#endif /*
* _IRCD_DOG3_FDLIST
+238 -229
View File
@@ -29,20 +29,24 @@
#include "fdlist.h"
#endif
extern time_t nextconnect, nextdnscheck, nextping;
extern aClient *client, me, *local[];
extern aChannel *channel;
extern struct stats *ircstp;
extern int bootopt;
extern time_t TSoffset;
/* for the new s_err.c */
extern char *getreply(int);
#define rpl_str(x) getreply(x)
#define err_str(x) getreply(x)
extern TS nextconnect, nextdnscheck, nextping;
extern aClient *client, me, *local[];
extern aChannel *channel;
extern struct stats *ircstp;
extern int bootopt;
extern TS TSoffset;
/* Prototype added to force errors -- Barubary */
extern time_t check_pings(time_t now, int check_kills);
extern TS check_pings(TS now);
extern TS TS2ts(char *s);
/* Remmed out for win32 compatibility.. as stated of 467leaf win32 port.. */
#ifdef _WIN32
// extern void *hCio;
#endif
extern LoopStruct loop;
#ifdef SHOWCONNECTINFO
@@ -61,282 +65,287 @@ extern time_t check_pings(time_t now, int check_kills);
#define BREPORT_FAIL_ID "NOTICE AUTH :*** No ident response; username prefixed with ~\r\n"
extern char REPORT_DO_DNS[128], REPORT_FIN_DNS[128], REPORT_FIN_DNSC[128],
REPORT_FAIL_DNS[128], REPORT_DO_ID[128], REPORT_FIN_ID[128],
REPORT_FAIL_ID[128];
REPORT_FAIL_DNS[128], REPORT_DO_ID[128], REPORT_FIN_ID[128],
REPORT_FAIL_ID[128];
#ifdef SOCKSPORT
extern char REPORT_DO_SOCKS[128], REPORT_GOOD_SOCKS[128],
REPORT_NO_SOCKS[128];
extern char REPORT_DO_SOCKS[128], REPORT_GOOD_SOCKS[128], REPORT_NO_SOCKS[128];
#endif
extern int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
R_do_id, R_fin_id, R_fail_id;
R_do_id, R_fin_id, R_fail_id;
#ifdef SOCKSPORT
extern int R_do_socks,
R_good_socks, R_no_socks;
extern int R_do_socks, R_good_socks, R_no_socks;
#endif
#endif
extern aChannel *find_channel PROTO((char *, aChannel *));
extern void remove_user_from_channel PROTO((aClient *, aChannel *));
extern aChannel *find_channel PROTO((char *, aChannel *));
extern void remove_user_from_channel PROTO((aClient *, aChannel *));
extern char *base64enc PROTO((long));
extern long base64dec PROTO((char *));
extern void add_server_to_table PROTO((aClient *));
extern void remove_server_from_tabel PROTO((aClient *));
/* for services */
extern void del_invite PROTO((aClient *, aChannel *));
extern int del_silence PROTO((aClient *, char *));
extern void send_user_joins PROTO((aClient *, aClient *));
extern void clean_channelname PROTO((char *));
extern int do_nick_name PROTO((char *));
extern int can_send PROTO((aClient *, aChannel *, char *));
extern int is_chan_op PROTO((aClient *, aChannel *));
extern int is_zombie PROTO((aClient *, aChannel *));
extern int has_voice PROTO((aClient *, aChannel *));
extern int is_chanowner PROTO((aClient *, aChannel *));
extern int count_channels PROTO((aClient *));
extern Ban *is_banned PROTO((aClient *, aClient *, aChannel *));
extern int parse_help PROTO((aClient *, char *, char *));
extern void del_invite PROTO((aClient *, aChannel *));
extern int del_silence PROTO((aClient *, char *));
extern void send_user_joins PROTO((aClient *, aClient *));
extern void clean_channelname PROTO((char *));
extern int do_nick_name PROTO((char *));
extern int can_send PROTO((aClient *, aChannel *, char *));
extern int is_chan_op PROTO((aClient *, aChannel *));
extern int has_voice PROTO((aClient *, aChannel *));
extern int is_chanowner PROTO((aClient *, aChannel *));
extern Ban *is_banned PROTO((aClient *, aClient *, aChannel *));
extern int parse_help PROTO((aClient *, char *, char *));
extern void ircd_log PROTO((char *, ...));
extern aClient *find_client PROTO((char *, aClient *));
extern aClient *find_name PROTO((char *, aClient *));
extern aClient *find_nickserv PROTO((char *, aClient *));
extern aClient *find_person PROTO((char *, aClient *));
extern aClient *find_server PROTO((char *, aClient *));
extern aClient *find_service PROTO((char *, aClient *));
extern void ircd_log PROTO((char *, ...));
extern aClient *find_client PROTO((char *, aClient *));
extern aClient *find_name PROTO((char *, aClient *));
extern aClient *find_nickserv PROTO((char *, aClient *));
extern aClient *find_person PROTO((char *, aClient *));
extern aClient *find_server PROTO((char *, aClient *));
extern aClient *find_server_quickx PROTO((char *, aClient *));
extern aClient *find_service PROTO((char *, aClient *));
#define find_server_quick(x) find_server_quickx(x, NULL)
extern char *find_or_add PROTO((char *));
extern int attach_conf PROTO((aClient *, aConfItem *));
extern aConfItem *attach_confs PROTO((aClient *, char *, int));
extern aConfItem *attach_confs_host PROTO((aClient *, char *, int));
extern int attach_Iline PROTO((aClient *, struct hostent *, char *));
extern aConfItem *conf, *find_me PROTO(()), *find_admin PROTO(());
extern aConfItem *count_cnlines PROTO((Link *));
extern aSqlineItem *sqline;
extern void det_confs_butmask PROTO((aClient *, int));
extern int detach_conf PROTO((aClient *, aConfItem *));
extern aSqlineItem *find_sqline_nick PROTO((char *));
extern aSqlineItem *find_sqline_match PROTO((char *));
extern aConfItem *det_confs_butone PROTO((aClient *, aConfItem *));
extern char *find_diepass();
extern char *find_restartpass();
extern aConfItem *find_conf PROTO((Link *, char *, int));
extern aConfItem *find_conf_exact PROTO((char *, char *, char *, int));
extern aConfItem *find_conf_host PROTO((Link *, char *, int));
extern aConfItem *find_conf_ip PROTO((Link *, char *, char *, int));
extern aConfItem *find_conf_name PROTO((char *, int));
extern aConfItem *find_temp_conf_entry PROTO((aConfItem *, u_int));
extern aConfItem *find_conf_servern PROTO((char *));
extern int find_kill PROTO((aClient *));
extern char *find_zap PROTO((aClient *, int));
extern int find_restrict PROTO((aClient *));
extern int rehash PROTO((aClient *, aClient *, int));
extern int initconf PROTO((int));
extern void add_temp_conf();
extern void inittoken PROTO(());
extern void reset_help PROTO(());
extern int find_exception(char *); /* hidden host */
extern char *find_or_add PROTO((char *));
extern int attach_conf PROTO((aClient *, aConfItem *));
extern aConfItem *attach_confs PROTO((aClient*, char *, int));
extern aConfItem *attach_confs_host PROTO((aClient*, char *, int));
extern int attach_Iline PROTO((aClient *, struct hostent *, char *));
extern aConfItem *conf, *find_me PROTO(()), *find_admin PROTO(());
extern aConfItem *count_cnlines PROTO((Link *));
extern aSqlineItem *sqline;
extern void det_confs_butmask PROTO((aClient *, int));
extern int detach_conf PROTO((aClient *, aConfItem *));
extern aSqlineItem *find_sqline_nick PROTO((char *));
extern aSqlineItem *find_sqline_match PROTO((char *));
extern aConfItem *det_confs_butone PROTO((aClient *, aConfItem *));
extern char *find_diepass();
extern char *find_restartpass();
extern aConfItem *find_conf PROTO((Link *, char*, int));
extern aConfItem *find_conf_exact PROTO((char *, char *, char *, int));
extern aConfItem *find_conf_host PROTO((Link *, char *, int));
extern aConfItem *find_conf_ip PROTO((Link *, char *, char *, int));
extern aConfItem *find_conf_name PROTO((char *, int));
extern aConfItem *find_temp_conf_entry PROTO((aConfItem *, u_int));
extern aConfItem *find_conf_servern PROTO((char *));
extern int find_kill PROTO((aClient *));
extern char *find_zap PROTO((aClient *, int));
extern int find_restrict PROTO((aClient *));
extern int rehash PROTO((aClient *, aClient *, int));
extern int initconf PROTO((int));
extern void add_temp_conf();
extern void inittoken PROTO(());
extern void reset_help PROTO(());
extern int find_exception(char *); /* hidden host */
extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int));
extern char *debugmode, *configfile, *sbrk0;
extern char *getfield PROTO((char *));
extern void get_sockhost PROTO((aClient *, char *));
extern char *rpl_str PROTO((int)), *err_str PROTO((int));
extern char *strerror PROTO((int));
extern int dgets PROTO((int, char *, int));
extern char *inetntoa PROTO((char *));
#ifndef DMALLOC
extern char *MyMalloc PROTO((int)), *MyRealloc PROTO((char *, int));
#endif
extern char *debugmode, *configfile, *sbrk0;
extern char *getfield PROTO((char *));
extern void get_sockhost PROTO((aClient *, char *));
extern char *strerror PROTO((int));
extern int dgets PROTO((int, char *, int));
extern char *inetntoa PROTO((char *));
#ifdef _WIN32
extern int dbufalloc, dbufblocks, debuglevel;
extern int dbufalloc, dbufblocks, debuglevel;
#else
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
extern int dbufalloc, dbufblocks, debuglevel, errno, h_errno;
#endif
extern int highest_fd, debuglevel, portnum, debugtty, maxusersperchannel;
extern int readcalls, udpfd, resfd;
extern aClient *add_connection PROTO((aClient *, int));
extern int add_listener PROTO((aConfItem *));
extern void add_local_domain PROTO((char *, int));
extern int check_client PROTO((aClient *));
extern int check_server PROTO((aClient *, struct hostent *, \
aConfItem *, aConfItem *, int));
extern int check_server_init PROTO((aClient *));
extern void close_connection PROTO((aClient *));
extern void close_listeners PROTO(());
extern int connect_server PROTO((aConfItem *, aClient *, struct hostent *));
extern void get_my_name PROTO((aClient *, char *, int));
extern int get_sockerr PROTO((aClient *));
extern int inetport PROTO((aClient *, char *, int));
extern void init_sys PROTO(());
extern int highest_fd, debuglevel, portnum, debugtty, maxusersperchannel;
extern int readcalls, udpfd, resfd;
extern aClient *add_connection PROTO((aClient *, int));
extern int add_listener PROTO((aConfItem *));
extern void add_local_domain PROTO((char *, int));
extern int check_client PROTO((aClient *));
extern int check_server PROTO((aClient *, struct hostent *, aConfItem *,
aConfItem *, int));
extern int check_server_init PROTO((aClient *));
extern void close_connection PROTO((aClient *));
extern void close_listeners PROTO(());
extern int connect_server PROTO((aConfItem *, aClient *, struct hostent *));
extern void get_my_name PROTO((aClient *, char *, int));
extern int get_sockerr PROTO((aClient *));
extern int inetport PROTO((aClient *, char *, int));
extern void init_sys PROTO(());
#ifdef NO_FDLIST
extern int read_message PROTO((time_t));
extern int read_message PROTO((TS));
#else
extern int read_message PROTO((time_t, fdlist *));
extern int read_message PROTO((TS, fdlist *));
#endif
extern void report_error PROTO((char *, aClient *));
extern void set_non_blocking PROTO((int, aClient *));
extern int setup_ping PROTO(());
extern void summon PROTO((aClient *, char *, char *, char *));
extern int unixport PROTO((aClient *, char *, int));
extern int utmp_open PROTO(());
extern int utmp_read PROTO((int, char *, char *, char *, int));
extern int utmp_close PROTO((int));
extern void report_error PROTO((char *, aClient *));
extern void set_non_blocking PROTO((int, aClient *));
extern int setup_ping PROTO(());
extern void start_auth PROTO((aClient *));
extern void read_authports PROTO((aClient *));
extern void send_authports PROTO((aClient *));
extern void start_auth PROTO((aClient *));
extern void read_authports PROTO((aClient *));
extern void send_authports PROTO((aClient *));
#ifdef SOCKSPORT
extern void init_socks PROTO((aClient *));
extern void start_socks PROTO((aClient *));
extern void send_socksquery PROTO((aClient *));
extern void read_socks PROTO((aClient *));
extern void init_socks PROTO((aClient *));
extern void start_socks PROTO((aClient *));
extern void send_socksquery PROTO((aClient *));
extern void read_socks PROTO((aClient *));
#endif
extern void restart PROTO((char *));
extern void send_channel_modes PROTO((aClient *, aChannel *));
extern void server_reboot PROTO((char *));
extern void terminate PROTO(()), write_pidfile PROTO(());
extern void restart PROTO((char *));
extern void send_channel_modes PROTO((aClient *, aChannel *));
extern void server_reboot PROTO((char *));
extern void terminate PROTO(()), write_pidfile PROTO(());
extern int send_queued PROTO((aClient *));
extern int send_queued PROTO((aClient *));
/*VARARGS2*/
// extern void sendto_one(char *, ...);
// extern void sendto_one(char *, ...);
/*VARARGS4*/
/* i know this is naughty but :P --stskeeps */
extern void sendto_channel_butone(aClient *, aClient *, aChannel *, char *, ...);
extern void sendto_channelops_butone(aClient *, aClient *, aChannel *, char *, ...);
extern void sendto_channelvoice_butone(aClient *, aClient *, aChannel *, char *, ...);
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
extern void sendto_channel_butone(aClient *, aClient *, aChannel *, char *,
...);
extern void sendto_channelops_butone(aClient *, aClient *, aChannel *,
char *, ...);
extern void sendto_channelvoice_butone(aClient *, aClient *, aChannel *,
char *, ...);
/*VARARGS2*/
extern void sendto_serv_butone(aClient *, char *, ...);
extern void sendto_serv_butone(aClient *, char *, ...);
/*VARARGS2*/
extern void sendto_serv_butone_quit(aClient *, char *, ...);
extern void sendto_serv_butone_sjoin(aClient *, char *, ...);
extern void sendto_serv_sjoin(aClient *, char *, ...);
extern void sendto_serv_butone_quit(aClient *, char *, ...);
extern void sendto_serv_butone_sjoin(aClient *, char *, ...);
extern void sendto_serv_sjoin(aClient *, char *, ...);
/*VARARGS2*/
extern void sendto_common_channels(aClient *, char *, ...);
extern void sendto_common_channels(aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...);
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_match_servs(aChannel *, aClient *, char *, ...);
extern void sendto_match_servs(aChannel *, aClient *, char *, ...);
/*VARARGS5*/
extern void sendto_match_butone(aClient *, aClient *, char *, int, char *pattern, ...);
extern void sendto_match_butone(aClient *, aClient *, char *, int,
char *pattern, ...);
/*VARARGS3*/
extern void sendto_all_butone(aClient *, aClient *, char *, ...);
extern void sendto_all_butone(aClient *, aClient *, char *, ...);
/*VARARGS1*/
extern void sendto_ops(char *, ...);
extern void sendto_ops(char *, ...);
/*VARARGS3*/
extern void sendto_ops_butone(aClient *, aClient *, char *, ...);
extern void sendto_ops_butone(aClient *, aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_ops_butme(aClient *, char *, ...);
extern void sendto_ops_butme(aClient *, char *, ...);
/*VARARGS3*/
extern void sendto_prefix_one(aClient *, aClient *, const char *, ...);
extern void sendto_prefix_one(aClient *, aClient *, const char *, ...);
/*VARARGS3*/
extern void sendto_failops_whoare_opers(char *, ...);
extern void sendto_failops_whoare_opers(char *, ...);
/*VARARGS3*/
extern void sendto_failops(char *, ...);
extern void sendto_failops(char *, ...);
/*VARARGS3*/
extern void sendto_opers(char *, ...);
extern void sendto_opers(char *, ...);
/*VARARGS?*/
extern void sendto_umode(int, char *, ...);
extern void sendto_conn_hcn(char *, ...);
extern int writecalls, writeb[];
extern int deliver_it PROTO((aClient *, char *, int));
extern void sendto_umode(int, char *, ...);
extern int writecalls, writeb[];
extern int deliver_it PROTO((aClient *, char *, int));
extern int check_registered PROTO((aClient *));
extern int check_registered_user PROTO((aClient *));
extern char *get_client_name PROTO((aClient *, int));
extern char *get_client_host PROTO((aClient *));
extern char *my_name_for_link PROTO((char *, aConfItem *));
extern char *myctime PROTO((time_t)), *date PROTO((time_t));
extern int exit_client PROTO((aClient *, aClient *, aClient *, char *));
extern void initstats PROTO(()), tstats PROTO((aClient *, char *));
extern char *check_string PROTO((char *));
extern char *make_nick_user_host PROTO((char *, char *, char *));
extern int check_registered PROTO((aClient *));
extern int check_registered_user PROTO((aClient *));
extern char *get_client_name PROTO((aClient *, int));
extern char *get_client_host PROTO((aClient *));
extern char *my_name_for_link PROTO((char *, aConfItem *));
extern char *myctime PROTO((TS)), *date PROTO((TS));
extern int exit_client PROTO((aClient *, aClient *, aClient *, char *));
extern void initstats PROTO(()), tstats PROTO((aClient *, char *));
extern char *check_string PROTO((char *));
extern char *make_nick_user_host PROTO((char *, char *, char *));
extern int parse PROTO((aClient *, char *, char *, struct Message *));
extern int do_numeric PROTO((int, aClient *, aClient *, int, char **));
extern int hunt_server PROTO((aClient *,aClient *,char *,int,int,char **));
extern aClient *next_client PROTO((aClient *, char *));
extern int m_umode PROTO((aClient *, aClient *, int, char **));
extern int m_names PROTO((aClient *, aClient *, int, char **));
extern int m_server_estab PROTO((aClient *));
extern void send_umode PROTO((aClient *, aClient *, int, int, char *));
extern void send_umode_out PROTO((aClient*, aClient *, int));
extern int parse PROTO((aClient *, char *, char *, struct Message *));
extern int do_numeric PROTO((int, aClient *, aClient *, int, char **));
extern int hunt_server PROTO((aClient *, aClient *, char *, int, int, char **));
extern aClient *next_client PROTO((aClient *, char *));
extern int m_umode PROTO((aClient *, aClient *, int, char **));
extern int m_names PROTO((aClient *, aClient *, int, char **));
extern int m_server_estab PROTO((aClient *));
extern void send_umode PROTO((aClient *, aClient *, long, long, char *));
extern void send_umode_out PROTO((aClient *, aClient *, long));
extern void free_client PROTO((aClient *));
extern void free_link PROTO((Link *));
extern void free_ban PROTO((Ban *));
extern void free_conf PROTO((aConfItem *));
extern void free_class PROTO((aClass *));
extern void free_user PROTO((anUser *, aClient *));
extern int find_str_match_link PROTO((Link **, char *));
extern void free_str_list PROTO ((Link *));
extern Link *make_link PROTO(());
extern Ban *make_ban PROTO(());
extern anUser *make_user PROTO((aClient *));
extern aSqlineItem *make_sqline PROTO(());
extern aConfItem *make_conf PROTO(());
extern aClass *make_class PROTO(());
extern aServer *make_server PROTO(());
extern aClient *make_client PROTO((aClient *, aClient *));
extern Link *find_user_link PROTO((Link *, aClient *));
extern Link *find_channel_link PROTO((Link *, aChannel *));
extern char *pretty_mask PROTO((char *));
extern void add_client_to_list PROTO((aClient *));
extern void checklist PROTO(());
extern void remove_client_from_list PROTO((aClient *));
extern void initlists PROTO(());
extern void free_client PROTO((aClient *));
extern void free_link PROTO((Link *));
extern void free_ban PROTO((Ban *));
extern void free_conf PROTO((aConfItem *));
extern void free_class PROTO((aClass *));
extern void free_user PROTO((anUser *, aClient *));
extern int find_str_match_link PROTO((Link *, char *));
extern void free_str_list PROTO((Link *));
extern Link *make_link PROTO(());
extern Ban *make_ban PROTO(());
extern anUser *make_user PROTO((aClient *));
extern aSqlineItem *make_sqline PROTO(());
extern aConfItem *make_conf PROTO(());
extern aClass *make_class PROTO(());
extern aServer *make_server PROTO(());
extern aClient *make_client PROTO((aClient *, aClient *));
extern Link *find_user_link PROTO((Link *, aClient *));
extern Link *find_channel_link PROTO((Link *, aChannel *));
extern char *pretty_mask PROTO((char *));
extern void add_client_to_list PROTO((aClient *));
extern void checklist PROTO(());
extern void remove_client_from_list PROTO((aClient *));
extern void initlists PROTO(());
extern void add_class PROTO((int, int, int, int, long));
extern void fix_class PROTO((aConfItem *, aConfItem *));
extern long get_sendq PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern int get_client_ping PROTO((aClient *));
extern int get_client_class PROTO((aClient *));
extern int get_conf_class PROTO((aConfItem *));
extern void report_classes PROTO((aClient *));
extern void add_class PROTO((int, int, int, int, long));
extern void fix_class PROTO((aConfItem *, aConfItem *));
extern long get_sendq PROTO((aClient *));
extern int get_con_freq PROTO((aClass *));
extern int get_client_ping PROTO((aClient *));
extern int get_client_class PROTO((aClient *));
extern int get_conf_class PROTO((aConfItem *));
extern void report_classes PROTO((aClient *));
extern struct hostent *get_res PROTO((char *));
extern struct hostent *gethost_byaddr PROTO((char *, Link *));
extern struct hostent *gethost_byname PROTO((char *, Link *));
extern void flush_cache PROTO(());
extern int init_resolver PROTO((int));
extern time_t timeout_query_list PROTO((time_t));
extern time_t expire_cache PROTO((time_t));
extern void del_queries PROTO((char *));
extern struct hostent *get_res PROTO((char *));
extern struct hostent *gethost_byaddr PROTO((char *, Link *));
extern struct hostent *gethost_byname PROTO((char *, Link *));
extern void flush_cache PROTO(());
extern int init_resolver PROTO((int));
extern TS timeout_query_list PROTO((TS));
extern TS expire_cache PROTO((TS));
extern void del_queries PROTO((char *));
extern void clear_channel_hash_table PROTO(());
extern void clear_client_hash_table PROTO(());
extern void clear_notify_hash_table PROTO(());
extern int add_to_client_hash_table PROTO((char *, aClient *));
extern int del_from_client_hash_table PROTO((char *, aClient *));
extern int add_to_channel_hash_table PROTO((char *, aChannel *));
extern int del_from_channel_hash_table PROTO((char *, aChannel *));
extern int add_to_notify_hash_table PROTO((char *, aClient *));
extern int del_from_notify_hash_table PROTO((char *, aClient *));
extern int hash_check_notify PROTO((aClient *, int));
extern int hash_del_notify_list PROTO((aClient *));
extern void count_watch_memory PROTO((int *, u_long *));
extern aNotify *hash_get_notify PROTO((char *));
extern aChannel *hash_get_chan_bucket PROTO((int));
extern aClient *hash_find_client PROTO((char *, aClient *));
extern aClient *hash_find_nickserver PROTO((char *, aClient *));
extern aClient *hash_find_server PROTO((char *, aClient *));
extern char *find_by_aln PROTO((char *));
extern char *convert2aln PROTO((int));
extern int convertfromaln PROTO((char *));
extern char *find_server_aln PROTO((char *));
extern int dopacket PROTO((aClient *, char *, int));
extern void clear_channel_hash_table PROTO(());
extern void clear_client_hash_table PROTO(());
extern void clear_notify_hash_table PROTO(());
extern int add_to_client_hash_table PROTO((char *, aClient *));
extern int del_from_client_hash_table PROTO((char *, aClient *));
extern int add_to_channel_hash_table PROTO((char *, aChannel *));
extern int del_from_channel_hash_table PROTO((char *, aChannel *));
extern int add_to_notify_hash_table PROTO((char *, aClient *));
extern int del_from_notify_hash_table PROTO((char *, aClient *));
extern int hash_check_notify PROTO((aClient *, int));
extern int hash_del_notify_list PROTO((aClient *));
extern void count_watch_memory PROTO((int *, u_long *));
extern aNotify *hash_get_notify PROTO((char *));
extern aChannel *hash_get_chan_bucket PROTO((int));
extern aClient *hash_find_client PROTO((char *, aClient *));
extern aClient *hash_find_nickserver PROTO((char *, aClient *));
extern aClient *hash_find_server PROTO((char *, aClient *));
extern char *find_by_aln PROTO((char *));
extern char *convert2aln PROTO((int));
extern int convertfromaln PROTO((char *));
extern char *find_server_aln PROTO((char *));
extern time_t atime(char *xtime);
extern int dopacket PROTO((aClient *, char *, int));
/*VARARGS2*/
extern void debug();
extern void debug();
#if defined(DEBUGMODE)
extern void send_usage PROTO((aClient *, char *));
extern void send_listinfo PROTO((aClient *, char *));
extern void count_memory PROTO((aClient *, char *));
extern void send_usage PROTO((aClient *, char *));
extern void send_listinfo PROTO((aClient *, char *));
extern void count_memory PROTO((aClient *, char *));
#endif
#ifdef INET6
extern char *inetntop(int af, const void *in, char *local_dummy, size_t the_size);
extern char *inetntop(int af, const void *in, char *local_dummy,
size_t the_size);
#endif
char *crule_parse PROTO((char *));
+6 -6
View File
@@ -23,9 +23,9 @@
#define __hash_include__
typedef struct hashentry {
int hits;
int links;
void *list;
int hits;
int links;
void *list;
} aHashEntry;
/* Taner had BITS_PER_COL 4 BITS_PER_COL_MASK 0xF - Dianora */
@@ -38,7 +38,7 @@ typedef struct hashentry {
* used in hash.c
*/
#define U_MAX_INITIAL 8192
#define U_MAX_INITIAL 2048
#define U_MAX_INITIAL_MASK (U_MAX_INITIAL-1)
#define U_MAX (U_MAX_INITIAL*MAX_SUB)
@@ -58,9 +58,9 @@ typedef struct hashentry {
#define WW_MAX_INITIAL_MASK (WW_MAX_INITIAL-1)
#define WW_MAX (WW_MAX_INITIAL*MAX_SUB)
#define NOTIFYHASHSIZE 10007 /* prime number */
#define NOTIFYHASHSIZE 10007 /* prime number */
#define NullChn ((aChannel *)0)
#define find_channel hash_find_channel
#endif /* __hash_include__ */
#endif /* __hash_include__ */
+2 -2
View File
@@ -22,7 +22,7 @@
*/
/* External definitions for functions in inet(3) */
#include "config.h" /* for system definitions */
#include "config.h" /* for system definitions */
#ifdef __alpha
#define __u_l unsigned int
@@ -35,7 +35,7 @@
extern __u_l inet_addr(char *);
extern char *inet_ntoa(char *);
# endif
extern __u_l inet_makeaddr(int , int);
extern __u_l inet_makeaddr(int, int);
extern __u_l inet_network(char *);
extern __u_l inet_lnaof(struct in_addr);
#else
+4 -1
View File
@@ -14,8 +14,11 @@
* Proto types
*/
/* You do want it to work in debug mode yes ? --DrBin */
extern char *ircvsprintf(char *str, const char *format, va_list);
extern char *ircsprintf(char *str, const char *format, ...);
extern char *ircsprintf(char *str, const char *format, ...);
extern const char atoi_tab[4000];
#endif
+27 -27
View File
@@ -28,32 +28,32 @@
*/
static char *Statement[] = {
" * This file may not be removed from the IRCd package.",
" * It will be a violation of copyright. This program must always",
" * stay free and not be charged for, being sold commercially or privately",
" * Only charge may be for the transport medium like one CD-ROM, floppy",
" * or other kinds.",
0};
char *gnulicense[] = {
" \2UnrealIRCd License\2",
"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.",
"",
"To see the UnrealIRCd License, please point your browser",
"at http://www.gnu.org/copyleft/gpl.html or look in the",
"file LICENSE in the UnrealIRCd dist",
0
" * This file may not be removed from the IRCd package.",
" * It will be a violation of copyright. This program must always",
" * stay free and not be charged for, being sold commercially or privately",
" * Only charge may be for the transport medium like one CD-ROM, floppy",
" * or other kinds.",
0
};
char *gnulicense[] = {
" \2UnrealIRCd License\2",
"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.",
"",
"To see the UnrealIRCd License, please point your browser",
"at http://www.gnu.org/copyleft/gpl.html or look in the",
"file LICENSE in the UnrealIRCd dist",
0
};
+316 -289
View File
@@ -1,3 +1,4 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/msg.h
* Copyright (C) 1990 Jarkko Oikarinen and
@@ -45,204 +46,204 @@
* knowing it, I'm considering that reserved, and TRACE/A is now 'b'.
* The normal msgtab should probably process this as special. -Donwulff
*/
/* 12/05/1999 - I was wrong - I didnt see the token[2] in struct Message
okie 60*60 commands more :P - Sowwy!!! -sts
*/
#define MSG_PRIVATE "PRIVMSG" /* PRIV */
#define TOK_PRIVATE "!" /* 33 */
#define MSG_WHO "WHO" /* WHO -> WHOC */
#define TOK_WHO "\"" /* 34 */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
#define TOK_PRIVATE "!" /* 33 */
#define MSG_WHO "WHO" /* WHO -> WHOC */
#define TOK_WHO "\"" /* 34 */
#define MSG_WHOIS "WHOIS" /* WHOI */
#define TOK_WHOIS "#" /* 35 */
#define MSG_WHOWAS "WHOWAS" /* WHOW */
#define TOK_WHOWAS "$" /* 36 */
#define MSG_USER "USER" /* USER */
#define TOK_USER "%" /* 37 */
#define MSG_NICK "NICK" /* NICK */
#define TOK_NICK "&" /* 38 */
#define TOK_WHOWAS "$" /* 36 */
#define MSG_USER "USER" /* USER */
#define TOK_USER "%" /* 37 */
#define MSG_NICK "NICK" /* NICK */
#define TOK_NICK "&" /* 38 */
#define MSG_SERVER "SERVER" /* SERV */
#define TOK_SERVER "'" /* 39 */
#define MSG_LIST "LIST" /* LIST */
#define TOK_LIST "(" /* 40 */
#define MSG_TOPIC "TOPIC" /* TOPI */
#define TOK_TOPIC ")" /* 41 */
#define TOK_SERVER "'" /* 39 */
#define MSG_LIST "LIST" /* LIST */
#define TOK_LIST "(" /* 40 */
#define MSG_TOPIC "TOPIC" /* TOPI */
#define TOK_TOPIC ")" /* 41 */
#define MSG_INVITE "INVITE" /* INVI */
#define TOK_INVITE "*" /* 42 */
#define TOK_INVITE "*" /* 42 */
#define MSG_VERSION "VERSION" /* VERS */
#define TOK_VERSION "+" /* 43 */
#define MSG_QUIT "QUIT" /* QUIT */
#define TOK_QUIT "," /* 44 */
#define MSG_SQUIT "SQUIT" /* SQUI */
#define TOK_SQUIT "-" /* 45 */
#define MSG_KILL "KILL" /* KILL */
#define TOK_KILL "." /* 46 */
#define MSG_INFO "INFO" /* INFO */
#define TOK_INFO "/" /* 47 */
#define MSG_LINKS "LINKS" /* LINK */
#define TOK_LINKS "0" /* 48 */
#define TOK_VERSION "+" /* 43 */
#define MSG_QUIT "QUIT" /* QUIT */
#define TOK_QUIT "," /* 44 */
#define MSG_SQUIT "SQUIT" /* SQUI */
#define TOK_SQUIT "-" /* 45 */
#define MSG_KILL "KILL" /* KILL */
#define TOK_KILL "." /* 46 */
#define MSG_INFO "INFO" /* INFO */
#define TOK_INFO "/" /* 47 */
#define MSG_LINKS "LINKS" /* LINK */
#define TOK_LINKS "0" /* 48 */
#define MSG_SUMMON "SUMMON" /* SUMM */
#define TOK_SUMMON "1" /* 49 */
#define MSG_STATS "STATS" /* STAT */
#define TOK_STATS "2" /* 50 */
#define MSG_USERS "USERS" /* USER -> USRS */
#define TOK_USERS "3" /* 51 */
#define MSG_HELP "HELP" /* HELP */
#define TOK_SUMMON "1" /* 49 */
#define MSG_STATS "STATS" /* STAT */
#define TOK_STATS "2" /* 50 */
#define MSG_USERS "USERS" /* USER -> USRS */
#define TOK_USERS "3" /* 51 */
#define MSG_HELP "HELP" /* HELP */
#define MSG_HELPOP "HELPOP" /* HELP */
#define TOK_HELP "4" /* 52 */
#define MSG_ERROR "ERROR" /* ERRO */
#define TOK_ERROR "5" /* 53 */
#define MSG_AWAY "AWAY" /* AWAY */
#define TOK_AWAY "6" /* 54 */
#define TOK_HELP "4" /* 52 */
#define MSG_ERROR "ERROR" /* ERRO */
#define TOK_ERROR "5" /* 53 */
#define MSG_AWAY "AWAY" /* AWAY */
#define TOK_AWAY "6" /* 54 */
#define MSG_CONNECT "CONNECT" /* CONN */
#define TOK_CONNECT "7" /* 55 */
#define MSG_PING "PING" /* PING */
#define TOK_PING "8" /* 56 */
#define MSG_PONG "PONG" /* PONG */
#define TOK_PONG "9" /* 57 */
#define MSG_OPER "OPER" /* OPER */
#define TOK_OPER ";" /* 59 */
#define MSG_PASS "PASS" /* PASS */
#define TOK_PASS "<" /* 60 */
#define TOK_CONNECT "7" /* 55 */
#define MSG_PING "PING" /* PING */
#define TOK_PING "8" /* 56 */
#define MSG_PONG "PONG" /* PONG */
#define TOK_PONG "9" /* 57 */
#define MSG_OPER "OPER" /* OPER */
#define TOK_OPER ";" /* 59 */
#define MSG_PASS "PASS" /* PASS */
#define TOK_PASS "<" /* 60 */
#define MSG_WALLOPS "WALLOPS" /* WALL */
#define TOK_WALLOPS "=" /* 61 */
#define MSG_TIME "TIME" /* TIME */
#define TOK_TIME ">" /* 62 */
#define MSG_NAMES "NAMES" /* NAME */
#define TOK_NAMES "?" /* 63 */
#define MSG_ADMIN "ADMIN" /* ADMI */
#define TOK_ADMIN "@" /* 64 */
#define TOK_WALLOPS "=" /* 61 */
#define MSG_TIME "TIME" /* TIME */
#define TOK_TIME ">" /* 62 */
#define MSG_NAMES "NAMES" /* NAME */
#define TOK_NAMES "?" /* 63 */
#define MSG_ADMIN "ADMIN" /* ADMI */
#define TOK_ADMIN "@" /* 64 */
#define MSG_NOTICE "NOTICE" /* NOTI */
#define TOK_NOTICE "B" /* 66 */
#define MSG_JOIN "JOIN" /* JOIN */
#define TOK_JOIN "C" /* 67 */
#define MSG_PART "PART" /* PART */
#define TOK_PART "D" /* 68 */
#define TOK_NOTICE "B" /* 66 */
#define MSG_JOIN "JOIN" /* JOIN */
#define TOK_JOIN "C" /* 67 */
#define MSG_PART "PART" /* PART */
#define TOK_PART "D" /* 68 */
#define MSG_LUSERS "LUSERS" /* LUSE */
#define TOK_LUSERS "E" /* 69 */
#define MSG_MOTD "MOTD" /* MOTD */
#define TOK_MOTD "F" /* 70 */
#define MSG_MODE "MODE" /* MODE */
#define TOK_MODE "G" /* 71 */
#define MSG_KICK "KICK" /* KICK */
#define TOK_KICK "H" /* 72 */
#define TOK_LUSERS "E" /* 69 */
#define MSG_MOTD "MOTD" /* MOTD */
#define TOK_MOTD "F" /* 70 */
#define MSG_MODE "MODE" /* MODE */
#define TOK_MODE "G" /* 71 */
#define MSG_KICK "KICK" /* KICK */
#define TOK_KICK "H" /* 72 */
#define MSG_SERVICE "SERVICE" /* SERV -> SRVI */
#define TOK_SERVICE "I" /* 73 */
#define TOK_SERVICE "I" /* 73 */
#define MSG_USERHOST "USERHOST" /* USER -> USRH */
#define TOK_USERHOST "J" /* 74 */
#define MSG_ISON "ISON" /* ISON */
#define TOK_ISON "K" /* 75 */
#define TOK_USERHOST "J" /* 74 */
#define MSG_ISON "ISON" /* ISON */
#define TOK_ISON "K" /* 75 */
#define MSG_REHASH "REHASH" /* REHA */
#define TOK_REHASH "O" /* 79 */
#define TOK_REHASH "O" /* 79 */
#define MSG_RESTART "RESTART" /* REST */
#define TOK_RESTART "P" /* 80 */
#define MSG_CLOSE "CLOSE" /* CLOS */
#define TOK_CLOSE "Q" /* 81 */
#define MSG_DIE "DIE" /* DIE */
#define TOK_DIE "R" /* 82 */
#define MSG_HASH "HASH" /* HASH */
#define TOK_HASH "S" /* 83 */
#define MSG_DNS "DNS" /* DNS -> DNSS */
#define TOK_DNS "T" /* 84 */
#define TOK_RESTART "P" /* 80 */
#define MSG_CLOSE "CLOSE" /* CLOS */
#define TOK_CLOSE "Q" /* 81 */
#define MSG_DIE "DIE" /* DIE */
#define TOK_DIE "R" /* 82 */
#define MSG_HASH "HASH" /* HASH */
#define TOK_HASH "S" /* 83 */
#define MSG_DNS "DNS" /* DNS -> DNSS */
#define TOK_DNS "T" /* 84 */
#define MSG_SILENCE "SILENCE" /* SILE */
#define TOK_SILENCE "U" /* 85 */
#define MSG_AKILL "AKILL" /* AKILL */
#define TOK_AKILL "V" /* 86 */
#define MSG_KLINE "KLINE" /* KLINE */
#define TOK_KLINE "W" /* 87 */
#define MSG_UNKLINE "UNKLINE" /* UNKLINE */
#define TOK_UNKLINE "X" /* 88 */
#define TOK_SILENCE "U" /* 85 */
#define MSG_AKILL "AKILL" /* AKILL */
#define TOK_AKILL "V" /* 86 */
#define MSG_KLINE "KLINE" /* KLINE */
#define TOK_KLINE "W" /* 87 */
#define MSG_UNKLINE "UNKLINE" /* UNKLINE */
#define TOK_UNKLINE "X" /* 88 */
#define MSG_RAKILL "RAKILL" /* RAKILL */
#define TOK_RAKILL "Y" /* 89 */
#define TOK_RAKILL "Y" /* 89 */
#define MSG_GNOTICE "GNOTICE" /* GNOTICE */
#define TOK_GNOTICE "Z" /* 90 */
#define MSG_GOPER "GOPER" /* GOPER */
#define TOK_GOPER "[" /* 91 */
#define TOK_GNOTICE "Z" /* 90 */
#define MSG_GOPER "GOPER" /* GOPER */
#define TOK_GOPER "[" /* 91 */
#define MSG_GLOBOPS "GLOBOPS" /* GLOBOPS */
#define TOK_GLOBOPS "]" /* 93 */
#define TOK_GLOBOPS "]" /* 93 */
#define MSG_LOCOPS "LOCOPS" /* LOCOPS */
#define TOK_LOCOPS "^" /* 94 */
#define TOK_LOCOPS "^" /* 94 */
#define MSG_PROTOCTL "PROTOCTL" /* PROTOCTL */
#define TOK_PROTOCTL "_" /* 95 */
#define MSG_WATCH "WATCH" /* WATCH */
#define TOK_WATCH "`" /* 96 */
#define MSG_TRACE "TRACE" /* TRAC */
#define TOK_TRACE "b" /* 97 */
#define TOK_PROTOCTL "_" /* 95 */
#define MSG_WATCH "WATCH" /* WATCH */
#define TOK_WATCH "`" /* 96 */
#define MSG_TRACE "TRACE" /* TRAC */
#define TOK_TRACE "b" /* 97 */
#define MSG_SQLINE "SQLINE" /* SQLINE */
#define TOK_SQLINE "c" /* 98 */
#define TOK_SQLINE "c" /* 98 */
#define MSG_UNSQLINE "UNSQLINE" /* UNSQLINE */
#define TOK_UNSQLINE "d" /* 99 */
#define TOK_UNSQLINE "d" /* 99 */
#define MSG_SVSNICK "SVSNICK" /* SVSNICK */
#define TOK_SVSNICK "e" /* 100 */
#define TOK_SVSNICK "e" /* 100 */
#define MSG_SVSNOOP "SVSNOOP" /* SVSNOOP */
#define TOK_SVSNOOP "f" /* 101 */
#define TOK_SVSNOOP "f" /* 101 */
#define MSG_IDENTIFY "IDENTIFY" /* IDENTIFY */
#define TOK_IDENTIFY "g" /* 102 */
#define TOK_IDENTIFY "g" /* 102 */
#define MSG_SVSKILL "SVSKILL" /* SVSKILL */
#define TOK_SVSKILL "h" /* 103 */
#define TOK_SVSKILL "h" /* 103 */
#define MSG_NICKSERV "NICKSERV" /* NICKSERV */
#define MSG_NS "NS"
#define TOK_NICKSERV "i" /* 104 */
#define TOK_NICKSERV "i" /* 104 */
#define MSG_CHANSERV "CHANSERV" /* CHANSERV */
#define MSG_CS "CS"
#define TOK_CHANSERV "j" /* 105 */
#define TOK_CHANSERV "j" /* 105 */
#define MSG_OPERSERV "OPERSERV" /* OPERSERV */
#define MSG_OS "OS"
#define TOK_OPERSERV "k" /* 106 */
#define TOK_OPERSERV "k" /* 106 */
#define MSG_MEMOSERV "MEMOSERV" /* MEMOSERV */
#define MSG_MS "MS"
#define TOK_MEMOSERV "l" /* 107 */
#define TOK_MEMOSERV "l" /* 107 */
#define MSG_SERVICES "SERVICES" /* SERVICES */
#define TOK_SERVICES "m" /* 108 */
#define TOK_SERVICES "m" /* 108 */
#define MSG_SVSMODE "SVSMODE" /* SVSMODE */
#define TOK_SVSMODE "n" /* 109 */
#define TOK_SVSMODE "n" /* 109 */
#define MSG_SAMODE "SAMODE" /* SAMODE */
#define TOK_SAMODE "o" /* 110 */
#define TOK_SAMODE "o" /* 110 */
#define MSG_CHATOPS "CHATOPS" /* CHATOPS */
#define TOK_CHATOPS "p" /* 111 */
#define MSG_ZLINE "ZLINE" /* ZLINE */
#define TOK_ZLINE "q" /* 112 */
#define MSG_UNZLINE "UNZLINE" /* UNZLINE */
#define TOK_UNZLINE "r" /* 113 */
#define MSG_HELPSERV "HELPSERV" /* HELPSERV */
#define TOK_CHATOPS "p" /* 111 */
#define MSG_ZLINE "ZLINE" /* ZLINE */
#define TOK_ZLINE "q" /* 112 */
#define MSG_UNZLINE "UNZLINE" /* UNZLINE */
#define TOK_UNZLINE "r" /* 113 */
#define MSG_HELPSERV "HELPSERV" /* HELPSERV */
#define MSG_HS "HS"
#define TOK_HELPSERV "s" /* 114 */
#define MSG_RULES "RULES" /* RULES */
#define TOK_RULES "t" /* 115 */
#define MSG_MAP "MAP" /* MAP */
#define TOK_MAP "u" /* 117 */
#define MSG_SVS2MODE "SVS2MODE" /* SVS2MODE */
#define TOK_SVS2MODE "v" /* 118 */
#define MSG_DALINFO "DALINFO" /* dalinfo */
#define TOK_DALINFO "w" /* 119 */
#define MSG_ADMINCHAT "ADCHAT" /* Admin chat */
#define TOK_ADMINCHAT "x" /* 120 */
#define TOK_HELPSERV "s" /* 114 */
#define MSG_RULES "RULES" /* RULES */
#define TOK_RULES "t" /* 115 */
#define MSG_MAP "MAP" /* MAP */
#define TOK_MAP "u" /* 117 */
#define MSG_SVS2MODE "SVS2MODE" /* SVS2MODE */
#define TOK_SVS2MODE "v" /* 118 */
#define MSG_DALINFO "DALINFO" /* dalinfo */
#define TOK_DALINFO "w" /* 119 */
#define MSG_ADMINCHAT "ADCHAT" /* Admin chat */
#define TOK_ADMINCHAT "x" /* 120 */
#define MSG_MKPASSWD "MKPASSWD" /* MKPASSWD */
#define TOK_MKPASSWD "y" /* 121 */
#define MSG_ADDLINE "ADDLINE" /* ADDLINE */
#define TOK_ADDLINE "z" /* 122 */
#define MSG_GLINE "GLINE" /* The awesome g-line */
#define TOK_GLINE "}" /* 125 */
#define TOK_MKPASSWD "y" /* 121 */
#define MSG_ADDLINE "ADDLINE" /* ADDLINE */
#define TOK_ADDLINE "z" /* 122 */
#define MSG_GLINE "GLINE" /* The awesome g-line */
#define TOK_GLINE "}" /* 125 */
#define MSG_GZLINE "GZLINE" /* Teh awesome global z-line */
#define TOK_GZLINE "{" /* ahem? */
#define MSG_SJOIN "SJOIN"
#define TOK_SJOIN "~"
#define MSG_SETHOST "SETHOST" /* sethost */
#define TOK_SETHOST "AA" /* 127 4ever !;) */
#define MSG_TECHAT "TECHAT" /* techadmin chat */
#define TOK_TECHAT "AB" /* questionmark? */
#define MSG_NACHAT "NACHAT" /* netadmin chat */
#define TOK_NACHAT "AC" /* *beep* */
#define MSG_SETIDENT "SETIDENT" /* set ident */
#define TOK_SETIDENT "AD" /* good old BASIC ;P */
#define MSG_SETNAME "SETNAME" /* set GECOS */
#define TOK_SETNAME "AE" /* its almost unreeaaall... */
#define MSG_LAG "LAG" /* Lag detect */
#define TOK_LAG "AF" /* a or ? */
#define MSG_SDESC "SDESC" /* set description */
#define MSG_SETHOST "SETHOST" /* sethost */
#define TOK_SETHOST "AA" /* 127 4ever !;) */
#define MSG_NACHAT "NACHAT" /* netadmin chat */
#define TOK_NACHAT "AC" /* *beep* */
#define MSG_SETIDENT "SETIDENT" /* set ident */
#define TOK_SETIDENT "AD" /* good old BASIC ;P */
#define MSG_SETNAME "SETNAME" /* set GECOS */
#define TOK_SETNAME "AE" /* its almost unreeaaall... */
#define MSG_LAG "LAG" /* Lag detect */
#define TOK_LAG "AF" /* a or ? */
#define MSG_SDESC "SDESC" /* set description */
#define TOK_SDESC "AG"
#define MSG_STATSERV "STATSERV" /* alias */
#define TOK_STATSERV "AH"
#define MSG_STATSERV "STATSERV" /* alias */
#define TOK_STATSERV "AH"
#define MSG_KNOCK "KNOCK"
#define TOK_KNOCK "AI"
#define MSG_CREDITS "CREDITS"
@@ -294,7 +295,9 @@
#define MSG_BOTMOTD "BOTMOTD"
#define TOK_BOTMOTD "BF"
#define MSG_REMGLINE "REMGLINE" /* remove g-line */
#define TOK_REMGLINE "BG"
#define TOK_REMGLINE "BG"
#define MSG_REMGZLINE "REMGZLINE" /* remove global z-line */
#define TOK_REMGZLINE "BP"
#define MSG_HTM "HTM"
#define TOK_HTM "BH"
#define MSG_UMODE2 "UMODE2"
@@ -306,8 +309,19 @@
#define MSG_CHGNAME "CHGNAME"
#define MSG_SVSNAME "SVSNAME"
#define TOK_CHGNAME "BK"
#define MSG_SHUN "SHUN"
#define TOK_SHUN "BL"
#define MSG_NEWJOIN "NEWJOIN" /* For CR Java Chat */
#define MSG_POST "POST"
#define TOK_POST "BN"
#define MSG_INFOSERV "INFOSERV"
#define MSG_IS "IS"
#define TOK_INFOSERV "BO"
#define MAXPARA 15
#define MSG_BOTSERV "BOTSERV"
#define TOK_BOTSERV "BS"
#define MAXPARA 15
extern int m_private(), m_topic(), m_join(), m_part(), m_mode(), m_svsmode();
extern int m_ping(), m_pong(), m_wallops(), m_kick(), m_svsnick();
@@ -315,12 +329,14 @@ extern int m_nick(), m_error(), m_notice(), m_samode(), m_svsnoop();
extern int m_invite(), m_quit(), m_kill(), m_svskill(), m_identify();
extern int m_akill(), m_kline(), m_unkline(), m_rakill(), m_sqline();
extern int m_zline(), m_unzline();
extern int m_gnotice(), m_goper(), m_globops(), m_locops(), m_unsqline(), m_chatops();
extern int m_gnotice(), m_goper(), m_globops(), m_locops(), m_unsqline(),
m_chatops();
extern int m_protoctl();
extern int m_motd(), m_who(), m_whois(), m_user(), m_list();
extern int m_server(), m_info(), m_links(), m_summon(), m_stats();
extern int m_users(), m_version(), m_help();
extern int m_nickserv(), m_operserv(), m_chanserv(), m_memoserv(), m_helpserv(), m_services(), m_identify();
extern int m_nickserv(), m_operserv(), m_chanserv(), m_memoserv();
extern int m_infoserv(), m_helpserv(), m_botserv(), m_services(), m_identify();
extern int m_statserv();
extern int m_squit(), m_away(), m_connect();
extern int m_oper(), m_pass(), m_trace();
@@ -331,154 +347,165 @@ extern int m_service(), m_userhost(), m_ison(), m_watch();
extern int m_service(), m_servset(), m_servlist(), m_squery();
extern int m_rehash(), m_restart(), m_die(), m_dns(), m_hash();
/*extern int m_noshortn(),m_noshortc(),m_noshortm(),m_noshorto(),m_noshorth();*/
extern int m_gline(), m_remgline(), m_map(), m_svs2mode(), m_admins(), m_dalinfo();
extern int m_gzline(), m_remgzline();
extern int m_gline(), m_remgline(), m_map(), m_svs2mode(), m_admins(),
m_dalinfo();
extern int m_addline(), m_rules(), m_mkpasswd();
extern int m_sethost(), m_nachat(), m_techat(), m_setident(), m_setname();
extern int m_sethost(), m_nachat(), m_setident(), m_setname();
extern int m_lag(), m_sdesc(), m_knock(), m_credits();
extern int m_license(), m_chghost(), m_rping(), m_rpong();
extern int m_netinfo(), m_sendumode(), m_addmotd(), m_addomotd();
extern int m_svsmotd(), m_opermotd(), m_tsctl();
extern int m_svsmotd(), m_opermotd(), m_tsctl();
extern int m_svsjoin(), m_sajoin(), m_svspart(), m_sapart();
extern int m_chgident(), m_swhois(), m_svso(), m_svsfline();
extern int m_tkl(), m_vhost(), m_botmotd(), m_sjoin(), m_htm();
extern int m_umode2(), m_dccdeny(), m_undccdeny();
extern int m_chgname();
extern int m_chgname(), m_shun(), m_post();
#ifdef GUEST
extern int m_guest();
#endif
#ifdef MSGTAB
struct Message *msgmap[256];
struct Message msgtab[] = {
{ MSG_PRIVATE, m_private, 0, MAXPARA, 1, TOK_PRIVATE, 0L },
{ MSG_NOTICE, m_notice, 0, MAXPARA, 1, TOK_NOTICE, 0L },
{ MSG_MODE, m_mode, 0, MAXPARA, 1, TOK_MODE, 0L },
{ MSG_NICK, m_nick, 0, MAXPARA, 1, TOK_NICK, 0L },
{ MSG_JOIN, m_join, 0, MAXPARA, 1, TOK_JOIN, 0L },
{ MSG_PING, m_ping, 0, MAXPARA, 1, TOK_PING, 0L },
{ MSG_WHOIS, m_whois, 0, MAXPARA, 1, TOK_WHOIS, 0L },
{ MSG_ISON, m_ison, 0, 1, 1, TOK_ISON, 0L },
{ MSG_USER, m_user, 0, MAXPARA, 1, TOK_USER, 0L },
{ MSG_PONG, m_pong, 0, MAXPARA, 1, TOK_PONG, 0L },
{ MSG_PART, m_part, 0, MAXPARA, 1, TOK_PART, 0L },
{ MSG_QUIT, m_quit, 0, MAXPARA, 1, TOK_QUIT, 0L },
{ MSG_WATCH, m_watch, 0, 1, 1, TOK_WATCH, 0L },
{ MSG_USERHOST,m_userhost, 0, 1, 1, TOK_USERHOST,0L },
{ MSG_SVSNICK, m_svsnick, 0, MAXPARA, 1, TOK_SVSNICK, 0L },
{ MSG_SVSMODE, m_svsmode, 0, MAXPARA, 1, TOK_SVSMODE, 0L },
{ MSG_LUSERS, m_lusers, 0, MAXPARA, 1, TOK_LUSERS, 0L },
{ MSG_IDENTIFY,m_identify, 0, 1, 1, TOK_IDENTIFY,0L },
{ MSG_CHANSERV,m_chanserv, 0, 1, 1, TOK_CHANSERV,0L },
{ MSG_TOPIC, m_topic, 0, MAXPARA, 1, TOK_TOPIC, 0L },
{ MSG_INVITE, m_invite, 0, MAXPARA, 1, TOK_INVITE, 0L },
{ MSG_KICK, m_kick, 0, MAXPARA, 1, TOK_KICK, 0L },
{ MSG_WALLOPS, m_wallops, 0, 1, 1, TOK_WALLOPS, 0L },
{ MSG_ERROR, m_error, 0, MAXPARA, 1, TOK_ERROR, 0L },
{ MSG_KILL, m_kill, 0, MAXPARA, 1, TOK_KILL, 0L },
{ MSG_PROTOCTL,m_protoctl, 0, MAXPARA, 1, TOK_PROTOCTL,0L },
{ MSG_AWAY, m_away, 0, MAXPARA, 1, TOK_AWAY, 0L },
{ MSG_SERVER, m_server, 0, MAXPARA, 1, TOK_SERVER, 0L },
{ MSG_SQUIT, m_squit, 0, MAXPARA, 1, TOK_SQUIT, 0L },
{ MSG_WHO, m_who, 0, MAXPARA, 1, TOK_WHO, 0L },
{ MSG_WHOWAS, m_whowas, 0, MAXPARA, 1, TOK_WHOWAS, 0L },
{ MSG_LIST, m_list, 0, MAXPARA, 1, TOK_LIST, 0L },
{ MSG_NAMES, m_names, 0, MAXPARA, 1, TOK_NAMES, 0L },
{ MSG_TRACE, m_trace, 0, MAXPARA, 1, TOK_TRACE, 0L },
{ MSG_PASS, m_pass, 0, MAXPARA, 1, TOK_PASS, 0L },
{ MSG_TIME, m_time, 0, MAXPARA, 1, TOK_TIME, 0L },
{ MSG_OPER, m_oper, 0, MAXPARA, 1, TOK_OPER, 0L },
{ MSG_CONNECT, m_connect, 0, MAXPARA, 1, TOK_CONNECT, 0L },
{ MSG_VERSION, m_version, 0, MAXPARA, 1, TOK_VERSION, 0L },
{ MSG_STATS, m_stats, 0, MAXPARA, 1, TOK_STATS, 0L },
{ MSG_LINKS, m_links, 0, MAXPARA, 1, TOK_LINKS, 0L },
{ MSG_ADMIN, m_admin, 0, MAXPARA, 1, TOK_ADMIN, 0L },
{ MSG_USERS, m_users, 0, MAXPARA, 1, TOK_USERS, 0L },
{ MSG_SAMODE, m_samode, 0, MAXPARA, 1, TOK_SAMODE, 0L },
{ MSG_SVSKILL, m_svskill, 0, MAXPARA, 1, TOK_SVSKILL, 0L },
{ MSG_SVSNOOP, m_svsnoop, 0, MAXPARA, 1, TOK_SVSNOOP, 0L },
{ MSG_CS, m_chanserv, 0, 1, 1, TOK_CHANSERV,0L },
{ MSG_NICKSERV,m_nickserv, 0, 1, 1, TOK_NICKSERV,0L },
{ MSG_NS, m_nickserv, 0, 1, 1, TOK_NICKSERV,0L },
{ MSG_OPERSERV,m_operserv, 0, 1, 1, TOK_OPERSERV,0L },
{ MSG_OS, m_operserv, 0, 1, 1, TOK_OPERSERV,0L },
{ MSG_MEMOSERV,m_memoserv, 0, 1, 1, TOK_MEMOSERV,0L },
{ MSG_MS, m_memoserv, 0, 1, 1, TOK_MEMOSERV,0L },
{ MSG_HELPSERV,m_helpserv, 0, 1, 1, TOK_HELPSERV,0L },
{ MSG_HS, m_helpserv, 0, 1, 1, TOK_HELPSERV,0L },
{ MSG_SERVICES,m_services, 0, 1, 1, TOK_SERVICES,0L },
{ MSG_SUMMON, m_summon, 0, MAXPARA, 1, TOK_SUMMON, 0L },
{ MSG_HELP, m_help, 0, 1, 1, TOK_HELP, 0L },
{ MSG_HELPOP, m_help, 0, 1, 1, TOK_HELP, 0L },
{ MSG_INFO, m_info, 0, MAXPARA, 1, TOK_INFO, 0L },
{ MSG_MOTD, m_motd, 0, MAXPARA, 1, TOK_MOTD, 0L },
{ MSG_CLOSE, m_close, 0, MAXPARA, 1, TOK_CLOSE, 0L },
{ MSG_SILENCE, m_silence, 0, MAXPARA, 1, TOK_SILENCE, 0L },
{ MSG_AKILL, m_akill, 0, MAXPARA, 1, TOK_AKILL, 0L },
{ MSG_SQLINE, m_sqline, 0, MAXPARA, 1, TOK_SQLINE, 0L },
{ MSG_UNSQLINE,m_unsqline, 0, MAXPARA, 1, TOK_UNSQLINE,0L },
{ MSG_KLINE, m_kline, 0, MAXPARA, 1, TOK_KLINE, 0L },
{ MSG_UNKLINE, m_unkline, 0, MAXPARA, 1, TOK_UNKLINE, 0L },
{ MSG_ZLINE, m_zline, 0, MAXPARA, 1, TOK_ZLINE, 0L },
{ MSG_UNZLINE, m_unzline, 0, MAXPARA, 1, TOK_UNZLINE, 0L },
{ MSG_RAKILL, m_rakill, 0, MAXPARA, 1, TOK_RAKILL, 0L },
{ MSG_GNOTICE, m_gnotice, 0, MAXPARA, 1, TOK_GNOTICE, 0L },
{ MSG_GOPER, m_goper, 0, MAXPARA, 1, TOK_GOPER, 0L },
{ MSG_GLOBOPS, m_globops, 0, MAXPARA, 1, TOK_GLOBOPS, 0L },
{ MSG_CHATOPS, m_chatops, 0, 1, 1, TOK_CHATOPS, 0L },
{ MSG_LOCOPS, m_locops, 0, 1, 1, TOK_LOCOPS, 0L },
{ MSG_HASH, m_hash, 0, MAXPARA, 1, TOK_HASH, 0L },
{ MSG_DNS, m_dns, 0, MAXPARA, 1, TOK_DNS, 0L },
{ MSG_REHASH, m_rehash, 0, MAXPARA, 1, TOK_REHASH, 0L },
{ MSG_RESTART, m_restart, 0, MAXPARA, 1, TOK_RESTART, 0L },
{ MSG_DIE, m_die, 0, MAXPARA, 1, TOK_DIE, 0L },
{ MSG_RULES, m_rules, 0, MAXPARA, 1, TOK_RULES, 0L },
{ MSG_MAP, m_map, 0, MAXPARA, 1, TOK_MAP, 0L },
{ MSG_GLINE, m_gline, 0, MAXPARA, 1, TOK_GLINE, 0L },
{ MSG_REMGLINE,m_remgline, 0, MAXPARA, 1, TOK_REMGLINE,0L },
{ MSG_DALINFO, m_dalinfo, 0, MAXPARA, 1, TOK_DALINFO, 0L },
{ MSG_SVS2MODE,m_svs2mode, 0, MAXPARA, 1, TOK_SVS2MODE,0L },
{ MSG_MKPASSWD, m_mkpasswd, 0, MAXPARA, 1, TOK_MKPASSWD, 0L },
{ MSG_ADDLINE, m_addline, 0, 1, 1, TOK_ADDLINE, 0L },
{ MSG_ADMINCHAT, m_admins, 0, 1, 1, TOK_ADMINCHAT, 0L },
{ MSG_SETHOST, m_sethost, 0, MAXPARA, 1, TOK_SETHOST, 0L },
{ MSG_TECHAT, m_techat, 0, 1, 1, TOK_TECHAT, 0L },
{ MSG_NACHAT, m_nachat, 0, 1, 1, TOK_NACHAT, 0L },
{ MSG_SETIDENT, m_setident,0, MAXPARA, 1, TOK_SETIDENT, 0L },
{ MSG_SETNAME, m_setname, 0, 1, 1, TOK_SETNAME, 0L },
{ MSG_LAG, m_lag, 0, MAXPARA, 1, TOK_LAG, 0L },
{ MSG_SDESC, m_sdesc, 0, 1, 1, TOK_SDESC, 0L },
{ MSG_STATSERV,m_statserv, 0, 1, 1, TOK_STATSERV,0L },
{ MSG_KNOCK, m_knock, 0, 2, 1, TOK_KNOCK, 0L },
{ MSG_CREDITS, m_credits, 0, MAXPARA, 1, TOK_CREDITS, 0L },
{ MSG_LICENSE, m_license, 0, MAXPARA, 1, TOK_LICENSE, 0L },
{ MSG_CHGHOST, m_chghost, 0, MAXPARA, 1, TOK_CHGHOST, 0L },
{ MSG_RPING, m_rping, 0, MAXPARA, 1, TOK_RPING, 0L },
{ MSG_RPONG, m_rpong, 0, MAXPARA, 1, TOK_RPONG, 0L },
{ MSG_NETINFO, m_netinfo, 0, MAXPARA, 1, TOK_NETINFO, 0L},
{ MSG_SENDUMODE, m_sendumode, 0, MAXPARA, 1, TOK_SENDUMODE, 0L},
{ MSG_SMO, m_sendumode, 0, MAXPARA, 1, TOK_SMO, 0L},
{ MSG_ADDMOTD, m_addmotd, 0, 1, 1, TOK_ADDMOTD, 0L},
{ MSG_ADDOMOTD, m_addomotd, 0, 1, 1, TOK_ADDOMOTD, 0L},
{ MSG_SVSMOTD, m_svsmotd, 0, MAXPARA, 1, TOK_SVSMOTD, 0L},
{ MSG_OPERMOTD, m_opermotd, 0, MAXPARA, 1, TOK_OPERMOTD, 0L},
{ MSG_TSCTL, m_tsctl, 0, MAXPARA, 1, TOK_TSCTL, 0L},
{ MSG_SVSJOIN, m_svsjoin, 0, MAXPARA, 1, TOK_SVSJOIN, 0L},
{ MSG_SAJOIN, m_sajoin, 0, MAXPARA, 1, TOK_SAJOIN,0L},
{ MSG_SVSPART, m_svspart, 0, MAXPARA, 1, TOK_SVSPART, 0L},
{ MSG_SAPART, m_sapart, 0, MAXPARA, 1, TOK_SAPART,0L},
{ MSG_CHGIDENT, m_chgident,0, MAXPARA, 1, TOK_CHGIDENT,0L},
{ MSG_SWHOIS, m_swhois, 0, MAXPARA, 1, TOK_SWHOIS, 0L},
{ MSG_SVSO, m_svso, 0, MAXPARA, 1, TOK_SVSO, 0L},
{ MSG_SVSFLINE, m_svsfline, 0, MAXPARA,1,TOK_SVSFLINE,0L},
{ MSG_TKL, m_tkl, 0, MAXPARA,1,TOK_TKL,0L},
{ MSG_VHOST, m_vhost, 0, MAXPARA,1,TOK_VHOST,0L},
{ MSG_BOTMOTD, m_botmotd, 0, MAXPARA,1,TOK_BOTMOTD,0L},
{ MSG_SJOIN, m_sjoin, 0, MAXPARA, 1, TOK_SJOIN,0L},
{ MSG_HTM, m_htm, 0, MAXPARA, 1, TOK_HTM, 0L},
{ MSG_UMODE2, m_umode2, 0, MAXPARA, 1, TOK_UMODE2, 0L},
{ MSG_DCCDENY,m_dccdeny, 0, 2, 1, TOK_DCCDENY,0L },
{ MSG_UNDCCDENY,m_undccdeny, 0, MAXPARA, 1, TOK_UNDCCDENY,0L },
{ MSG_CHGNAME, m_chgname, 0, MAXPARA, 1, TOK_CHGNAME, 0L},
{ MSG_SVSNAME, m_chgname, 0, MAXPARA, 1, TOK_CHGNAME, 0L},
{ (char *) 0, (int (*)()) 0 , 0, 0, 0, 0, 0L}
{MSG_PRIVATE, m_private, 0, MAXPARA, TOK_PRIVATE, 0L},
{MSG_NOTICE, m_notice, 0, MAXPARA, TOK_NOTICE, 0L},
{MSG_MODE, m_mode, 0, MAXPARA, TOK_MODE, 0L},
{MSG_NICK, m_nick, 0, MAXPARA, TOK_NICK, 0L},
{MSG_JOIN, m_join, 0, MAXPARA, TOK_JOIN, 0L},
{MSG_PING, m_ping, 0, MAXPARA, TOK_PING, 0L},
{MSG_WHOIS, m_whois, 0, MAXPARA, TOK_WHOIS, 0L},
{MSG_ISON, m_ison, 0, 1, TOK_ISON, 0L},
{MSG_USER, m_user, 0, MAXPARA, TOK_USER, 0L},
{MSG_PONG, m_pong, 0, MAXPARA, TOK_PONG, 0L},
{MSG_PART, m_part, 0, MAXPARA, TOK_PART, 0L},
{MSG_QUIT, m_quit, 0, MAXPARA, TOK_QUIT, 0L},
{MSG_WATCH, m_watch, 0, 1, TOK_WATCH, 0L},
{MSG_USERHOST, m_userhost, 0, 1, TOK_USERHOST, 0L},
{MSG_SVSNICK, m_svsnick, 0, MAXPARA, TOK_SVSNICK, 0L},
{MSG_SVSMODE, m_svsmode, 0, MAXPARA, TOK_SVSMODE, 0L},
{MSG_LUSERS, m_lusers, 0, MAXPARA, TOK_LUSERS, 0L},
{MSG_IDENTIFY, m_identify, 0, 1, TOK_IDENTIFY, 0L},
{MSG_CHANSERV, m_chanserv, 0, 1, TOK_CHANSERV, 0L},
{MSG_TOPIC, m_topic, 0, MAXPARA, TOK_TOPIC, 0L},
{MSG_INVITE, m_invite, 0, MAXPARA, TOK_INVITE, 0L},
{MSG_KICK, m_kick, 0, MAXPARA, TOK_KICK, 0L},
{MSG_WALLOPS, m_wallops, 0, 1, TOK_WALLOPS, 0L},
{MSG_ERROR, m_error, 0, MAXPARA, TOK_ERROR, 0L},
{MSG_KILL, m_kill, 0, MAXPARA, TOK_KILL, 0L},
{MSG_PROTOCTL, m_protoctl, 0, MAXPARA, TOK_PROTOCTL, 0L},
{MSG_AWAY, m_away, 0, MAXPARA, TOK_AWAY, 0L},
{MSG_SERVER, m_server, 0, MAXPARA, TOK_SERVER, 0L},
{MSG_SQUIT, m_squit, 0, MAXPARA, TOK_SQUIT, 0L},
{MSG_WHO, m_who, 0, MAXPARA, TOK_WHO, 0L},
{MSG_WHOWAS, m_whowas, 0, MAXPARA, TOK_WHOWAS, 0L},
{MSG_LIST, m_list, 0, MAXPARA, TOK_LIST, 0L},
{MSG_NAMES, m_names, 0, MAXPARA, TOK_NAMES, 0L},
{MSG_TRACE, m_trace, 0, MAXPARA, TOK_TRACE, 0L},
{MSG_PASS, m_pass, 0, MAXPARA, TOK_PASS, 0L},
{MSG_TIME, m_time, 0, MAXPARA, TOK_TIME, 0L},
{MSG_OPER, m_oper, 0, MAXPARA, TOK_OPER, 0L},
{MSG_CONNECT, m_connect, 0, MAXPARA, TOK_CONNECT, 0L},
{MSG_VERSION, m_version, 0, MAXPARA, TOK_VERSION, 0L},
{MSG_STATS, m_stats, 0, MAXPARA, TOK_STATS, 0L},
{MSG_LINKS, m_links, 0, MAXPARA, TOK_LINKS, 0L},
{MSG_ADMIN, m_admin, 0, MAXPARA, TOK_ADMIN, 0L},
{MSG_SUMMON, m_summon, 0, 1, TOK_SUMMON, 0L},
{MSG_USERS, m_users, 0, MAXPARA, TOK_USERS, 0L},
{MSG_SAMODE, m_samode, 0, MAXPARA, TOK_SAMODE, 0L},
{MSG_SVSKILL, m_svskill, 0, MAXPARA, TOK_SVSKILL, 0L},
{MSG_SVSNOOP, m_svsnoop, 0, MAXPARA, TOK_SVSNOOP, 0L},
{MSG_CS, m_chanserv, 0, 1, TOK_CHANSERV, 0L},
{MSG_NICKSERV, m_nickserv, 0, 1, TOK_NICKSERV, 0L},
{MSG_NS, m_nickserv, 0, 1, TOK_NICKSERV, 0L},
{MSG_INFOSERV, m_infoserv, 0, 1, TOK_INFOSERV, 0L},
{MSG_IS, m_infoserv, 0, 1, TOK_INFOSERV, 0L},
{MSG_OPERSERV, m_operserv, 0, 1, TOK_OPERSERV, 0L},
{MSG_OS, m_operserv, 0, 1, TOK_OPERSERV, 0L},
{MSG_MEMOSERV, m_memoserv, 0, 1, TOK_MEMOSERV, 0L},
{MSG_MS, m_memoserv, 0, 1, TOK_MEMOSERV, 0L},
{MSG_HELPSERV, m_helpserv, 0, 1, TOK_HELPSERV, 0L},
{MSG_HS, m_helpserv, 0, 1, TOK_HELPSERV, 0L},
{MSG_SERVICES, m_services, 0, 1, TOK_SERVICES, 0L},
{MSG_HELP, m_help, 0, 1, TOK_HELP, 0L},
{MSG_HELPOP, m_help, 0, 1, TOK_HELP, 0L},
{MSG_INFO, m_info, 0, MAXPARA, TOK_INFO, 0L},
{MSG_MOTD, m_motd, 0, MAXPARA, TOK_MOTD, 0L},
{MSG_CLOSE, m_close, 0, MAXPARA, TOK_CLOSE, 0L},
{MSG_SILENCE, m_silence, 0, MAXPARA, TOK_SILENCE, 0L},
{MSG_AKILL, m_akill, 0, MAXPARA, TOK_AKILL, 0L},
{MSG_SQLINE, m_sqline, 0, MAXPARA, TOK_SQLINE, 0L},
{MSG_UNSQLINE, m_unsqline, 0, MAXPARA, TOK_UNSQLINE, 0L},
{MSG_KLINE, m_kline, 0, MAXPARA, TOK_KLINE, 0L},
{MSG_UNKLINE, m_unkline, 0, MAXPARA, TOK_UNKLINE, 0L},
{MSG_ZLINE, m_zline, 0, MAXPARA, TOK_ZLINE, 0L},
{MSG_UNZLINE, m_unzline, 0, MAXPARA, TOK_UNZLINE, 0L},
{MSG_RAKILL, m_rakill, 0, MAXPARA, TOK_RAKILL, 0L},
{MSG_GNOTICE, m_gnotice, 0, MAXPARA, TOK_GNOTICE, 0L},
{MSG_GOPER, m_goper, 0, MAXPARA, TOK_GOPER, 0L},
{MSG_GLOBOPS, m_globops, 0, MAXPARA, TOK_GLOBOPS, 0L},
{MSG_CHATOPS, m_chatops, 0, 1, TOK_CHATOPS, 0L},
{MSG_LOCOPS, m_locops, 0, 1, TOK_LOCOPS, 0L},
{MSG_HASH, m_hash, 0, MAXPARA, TOK_HASH, 0L},
{MSG_DNS, m_dns, 0, MAXPARA, TOK_DNS, 0L},
{MSG_REHASH, m_rehash, 0, MAXPARA, TOK_REHASH, 0L},
{MSG_RESTART, m_restart, 0, MAXPARA, TOK_RESTART, 0L},
{MSG_DIE, m_die, 0, MAXPARA, TOK_DIE, 0L},
{MSG_RULES, m_rules, 0, MAXPARA, TOK_RULES, 0L},
{MSG_MAP, m_map, 0, MAXPARA, TOK_MAP, 0L},
{MSG_GLINE, m_gline, 0, MAXPARA, TOK_GLINE, 0L},
{MSG_REMGLINE, m_remgline, 0, MAXPARA, TOK_REMGLINE, 0L},
{MSG_GZLINE, m_gzline, 0, MAXPARA, TOK_GZLINE, 0L},
{MSG_REMGZLINE, m_remgzline, 0, MAXPARA, TOK_REMGZLINE, 0L},
{MSG_DALINFO, m_dalinfo, 0, MAXPARA, TOK_DALINFO, 0L},
{MSG_SVS2MODE, m_svs2mode, 0, MAXPARA, TOK_SVS2MODE, 0L},
{MSG_MKPASSWD, m_mkpasswd, 0, MAXPARA, TOK_MKPASSWD, 0L},
{MSG_ADDLINE, m_addline, 0, 1, TOK_ADDLINE, 0L},
{MSG_ADMINCHAT, m_admins, 0, 1, TOK_ADMINCHAT, 0L},
{MSG_SETHOST, m_sethost, 0, MAXPARA, TOK_SETHOST, 0L},
{MSG_NACHAT, m_nachat, 0, 1, TOK_NACHAT, 0L},
{MSG_SETIDENT, m_setident, 0, MAXPARA, TOK_SETIDENT, 0L},
{MSG_SETNAME, m_setname, 0, 1, TOK_SETNAME, 0L},
{MSG_LAG, m_lag, 0, MAXPARA, TOK_LAG, 0L},
{MSG_SDESC, m_sdesc, 0, 1, TOK_SDESC, 0L},
{MSG_STATSERV, m_statserv, 0, 1, TOK_STATSERV, 0L},
{MSG_KNOCK, m_knock, 0, 2, TOK_KNOCK, 0L},
{MSG_CREDITS, m_credits, 0, MAXPARA, TOK_CREDITS, 0L},
{MSG_LICENSE, m_license, 0, MAXPARA, TOK_LICENSE, 0L},
{MSG_CHGHOST, m_chghost, 0, MAXPARA, TOK_CHGHOST, 0L},
{MSG_RPING, m_rping, 0, MAXPARA, TOK_RPING, 0L},
{MSG_RPONG, m_rpong, 0, MAXPARA, TOK_RPONG, 0L},
{MSG_NETINFO, m_netinfo, 0, MAXPARA, TOK_NETINFO, 0L},
{MSG_SENDUMODE, m_sendumode, 0, MAXPARA, TOK_SENDUMODE, 0L},
{MSG_SMO, m_sendumode, 0, MAXPARA, TOK_SMO, 0L},
{MSG_ADDMOTD, m_addmotd, 0, 1, TOK_ADDMOTD, 0L},
{MSG_ADDOMOTD, m_addomotd, 0, 1, TOK_ADDOMOTD, 0L},
{MSG_SVSMOTD, m_svsmotd, 0, MAXPARA, TOK_SVSMOTD, 0L},
{MSG_OPERMOTD, m_opermotd, 0, MAXPARA, TOK_OPERMOTD, 0L},
{MSG_TSCTL, m_tsctl, 0, MAXPARA, TOK_TSCTL, 0L},
{MSG_SVSJOIN, m_svsjoin, 0, MAXPARA, TOK_SVSJOIN, 0L},
{MSG_SAJOIN, m_sajoin, 0, MAXPARA, TOK_SAJOIN, 0L},
{MSG_SVSPART, m_svspart, 0, MAXPARA, TOK_SVSPART, 0L},
{MSG_SAPART, m_sapart, 0, MAXPARA, TOK_SAPART, 0L},
{MSG_CHGIDENT, m_chgident, 0, MAXPARA, TOK_CHGIDENT, 0L},
{MSG_SWHOIS, m_swhois, 0, MAXPARA, TOK_SWHOIS, 0L},
{MSG_SVSO, m_svso, 0, MAXPARA, TOK_SVSO, 0L},
{MSG_SVSFLINE, m_svsfline, 0, MAXPARA, TOK_SVSFLINE, 0L},
{MSG_TKL, m_tkl, 0, MAXPARA, TOK_TKL, 0L},
{MSG_VHOST, m_vhost, 0, MAXPARA, TOK_VHOST, 0L},
{MSG_BOTMOTD, m_botmotd, 0, MAXPARA, TOK_BOTMOTD, 0L},
{MSG_SJOIN, m_sjoin, 0, MAXPARA, TOK_SJOIN, 0L},
{MSG_HTM, m_htm, 0, MAXPARA, TOK_HTM, 0L},
{MSG_UMODE2, m_umode2, 0, MAXPARA, TOK_UMODE2, 0L},
{MSG_DCCDENY, m_dccdeny, 0, 2, TOK_DCCDENY, 0L},
{MSG_UNDCCDENY, m_undccdeny, 0, MAXPARA, TOK_UNDCCDENY, 0L},
{MSG_CHGNAME, m_chgname, 0, MAXPARA, TOK_CHGNAME, 0L},
{MSG_SVSNAME, m_chgname, 0, MAXPARA, TOK_CHGNAME, 0L},
{MSG_SHUN, m_shun, 0, MAXPARA, TOK_SHUN, 0L},
{MSG_NEWJOIN, m_join, 0, MAXPARA, TOK_JOIN, 0L},
{MSG_BOTSERV, m_botserv, 0, 1, TOK_BOTSERV,0L},
{TOK_BOTSERV, m_botserv, 0, 1, TOK_BOTSERV,0L},
{(char *)0, (int (*)())0, 0, 0, 0, 0L}
};
#else
+109 -109
View File
@@ -23,10 +23,10 @@
/*
* Define constants based on rfc883
*/
#define PACKETSZ 512 /* maximum packet size */
#define MAXDNAME 256 /* maximum domain name */
#define MAXCDNAME 255 /* maximum compressed domain name */
#define MAXLABEL 63 /* maximum length of domain label */
#define PACKETSZ 512 /* maximum packet size */
#define MAXDNAME 256 /* maximum domain name */
#define MAXCDNAME 255 /* maximum compressed domain name */
#define MAXLABEL 63 /* maximum length of domain label */
/* Number of bytes of fixed size data in query structure */
#define QFIXEDSZ 4
/* number of bytes of fixed size data in resource record */
@@ -40,94 +40,94 @@
/*
* Currently defined opcodes
*/
#define QUERY 0x0 /* standard query */
#define IQUERY 0x1 /* inverse query */
#define STATUS 0x2 /* nameserver status query */
#define QUERY 0x0 /* standard query */
#define IQUERY 0x1 /* inverse query */
#define STATUS 0x2 /* nameserver status query */
/*#define xxx 0x3 /* 0x3 reserved */
/* non standard */
#define UPDATEA 0x9 /* add resource record */
#define UPDATED 0xa /* delete a specific resource record */
#define UPDATEDA 0xb /* delete all nemed resource record */
#define UPDATEM 0xc /* modify a specific resource record */
#define UPDATEMA 0xd /* modify all named resource record */
#define UPDATEA 0x9 /* add resource record */
#define UPDATED 0xa /* delete a specific resource record */
#define UPDATEDA 0xb /* delete all nemed resource record */
#define UPDATEM 0xc /* modify a specific resource record */
#define UPDATEMA 0xd /* modify all named resource record */
#define ZONEINIT 0xe /* initial zone transfer */
#define ZONEREF 0xf /* incremental zone referesh */
#define ZONEINIT 0xe /* initial zone transfer */
#define ZONEREF 0xf /* incremental zone referesh */
/*
* Currently defined response codes
*/
#ifdef NOERROR /* defined by solaris2 in */
#undef NOERROR /* <sys/stream.h> to be -1 */
#ifdef NOERROR /* defined by solaris2 in */
#undef NOERROR /* <sys/stream.h> to be -1 */
#endif
#define NOERROR 0 /* no error */
#define FORMERR 1 /* format error */
#define SERVFAIL 2 /* server failure */
#define NXDOMAIN 3 /* non existent domain */
#define NOTIMP 4 /* not implemented */
#define REFUSED 5 /* query refused */
#define NOERROR 0 /* no error */
#define FORMERR 1 /* format error */
#define SERVFAIL 2 /* server failure */
#define NXDOMAIN 3 /* non existent domain */
#define NOTIMP 4 /* not implemented */
#define REFUSED 5 /* query refused */
/* non standard */
#define NOCHANGE 0xf /* update failed to change db */
#define NOCHANGE 0xf /* update failed to change db */
/*
* Type values for resources and queries
*/
#define T_A 1 /* host address */
#define T_NS 2 /* authoritative server */
#define T_MD 3 /* mail destination */
#define T_MF 4 /* mail forwarder */
#define T_CNAME 5 /* connonical name */
#define T_SOA 6 /* start of authority zone */
#define T_MB 7 /* mailbox domain name */
#define T_MG 8 /* mail group member */
#define T_MR 9 /* mail rename name */
#define T_NULL 10 /* null resource record */
#define T_WKS 11 /* well known service */
#define T_PTR 12 /* domain name pointer */
#define T_HINFO 13 /* host information */
#define T_MINFO 14 /* mailbox information */
#define T_MX 15 /* mail routing information */
#define T_TXT 16 /* text strings */
#define T_RP 17 /* responsible person */
#define T_AFSDB 18 /* AFS cell database */
#define T_X25 19 /* X_25 calling address */
#define T_ISDN 20 /* ISDN calling address */
#define T_RT 21 /* router */
#define T_NSAP 22 /* NSAP address */
#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
#define T_SIG 24 /* security signature */
#define T_KEY 25 /* security key */
#define T_PX 26 /* X.400 mail mapping */
#define T_GPOS 27 /* geographical position (withdrawn) */
#define T_AAAA 28 /* IP6 Address */
#define T_LOC 29 /* Location Information */
#define T_NXT 30 /* Next Valid Name in Zone */
#define T_EID 31 /* Endpoint identifier */
#define T_NIMLOC 32 /* Nimrod locator */
#define T_SRV 33 /* Server selection */
#define T_ATMA 34 /* ATM Address */
#define T_NAPTR 35 /* Naming Authority PoinTeR */
#define T_A 1 /* host address */
#define T_NS 2 /* authoritative server */
#define T_MD 3 /* mail destination */
#define T_MF 4 /* mail forwarder */
#define T_CNAME 5 /* connonical name */
#define T_SOA 6 /* start of authority zone */
#define T_MB 7 /* mailbox domain name */
#define T_MG 8 /* mail group member */
#define T_MR 9 /* mail rename name */
#define T_NULL 10 /* null resource record */
#define T_WKS 11 /* well known service */
#define T_PTR 12 /* domain name pointer */
#define T_HINFO 13 /* host information */
#define T_MINFO 14 /* mailbox information */
#define T_MX 15 /* mail routing information */
#define T_TXT 16 /* text strings */
#define T_RP 17 /* responsible person */
#define T_AFSDB 18 /* AFS cell database */
#define T_X25 19 /* X_25 calling address */
#define T_ISDN 20 /* ISDN calling address */
#define T_RT 21 /* router */
#define T_NSAP 22 /* NSAP address */
#define T_NSAP_PTR 23 /* reverse NSAP lookup (deprecated) */
#define T_SIG 24 /* security signature */
#define T_KEY 25 /* security key */
#define T_PX 26 /* X.400 mail mapping */
#define T_GPOS 27 /* geographical position (withdrawn) */
#define T_AAAA 28 /* IP6 Address */
#define T_LOC 29 /* Location Information */
#define T_NXT 30 /* Next Valid Name in Zone */
#define T_EID 31 /* Endpoint identifier */
#define T_NIMLOC 32 /* Nimrod locator */
#define T_SRV 33 /* Server selection */
#define T_ATMA 34 /* ATM Address */
#define T_NAPTR 35 /* Naming Authority PoinTeR */
/* non standard */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
/* Query type values which do not appear in resource records */
#define T_AXFR 252 /* transfer zone of authority */
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
#define T_ANY 255 /* wildcard match */
#define T_AXFR 252 /* transfer zone of authority */
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
#define T_ANY 255 /* wildcard match */
/*
* Values for class field
*/
#define C_IN 1 /* the arpa internet */
#define C_CHAOS 3 /* for chaos net at MIT */
#define C_HS 4 /* for Hesiod name server at MIT */
#define C_IN 1 /* the arpa internet */
#define C_CHAOS 3 /* for chaos net at MIT */
#define C_HS 4 /* for Hesiod name server at MIT */
/* Query class values which do not appear in resource records */
#define C_ANY 255 /* wildcard match */
#define C_ANY 255 /* wildcard match */
/*
* Status return codes for T_UNSPEC conversion routines
@@ -161,7 +161,7 @@
#ifndef BYTE_ORDER
/* you must determine what the correct bit order is for your compiler */
UNDEFINED_BIT_ORDER;
UNDEFINED_BIT_ORDER;
#endif
/*
* Structure for query header, the order of the fields is machine and
@@ -171,38 +171,38 @@
*/
typedef struct {
u_short id; /* query identification number */
u_short id; /* query identification number */
#if BYTE_ORDER == BIG_ENDIAN
/* fields in third byte */
u_char qr:1; /* response flag */
u_char opcode:4; /* purpose of message */
u_char aa:1; /* authoritive answer */
u_char tc:1; /* truncated message */
u_char rd:1; /* recursion desired */
/* fields in fourth byte */
u_char ra:1; /* recursion available */
u_char pr:1; /* primary server required (non standard) */
u_char unused:2; /* unused bits */
u_char rcode:4; /* response code */
/* fields in third byte */
u_char qr:1; /* response flag */
u_char opcode:4; /* purpose of message */
u_char aa:1; /* authoritive answer */
u_char tc:1; /* truncated message */
u_char rd:1; /* recursion desired */
/* fields in fourth byte */
u_char ra:1; /* recursion available */
u_char pr:1; /* primary server required (non standard) */
u_char unused:2; /* unused bits */
u_char rcode:4; /* response code */
#endif
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
/* fields in third byte */
u_char rd:1; /* recursion desired */
u_char tc:1; /* truncated message */
u_char aa:1; /* authoritive answer */
u_char opcode:4; /* purpose of message */
u_char qr:1; /* response flag */
/* fields in fourth byte */
u_char rcode:4; /* response code */
u_char unused:2; /* unused bits */
u_char pr:1; /* primary server required (non standard) */
u_char ra:1; /* recursion available */
/* fields in third byte */
u_char rd:1; /* recursion desired */
u_char tc:1; /* truncated message */
u_char aa:1; /* authoritive answer */
u_char opcode:4; /* purpose of message */
u_char qr:1; /* response flag */
/* fields in fourth byte */
u_char rcode:4; /* response code */
u_char unused:2; /* unused bits */
u_char pr:1; /* primary server required (non standard) */
u_char ra:1; /* recursion available */
#endif
/* remaining bytes */
u_short qdcount; /* number of question entries */
u_short ancount; /* number of answer entries */
u_short nscount; /* number of authority entries */
u_short arcount; /* number of resource entries */
/* remaining bytes */
u_short qdcount; /* number of question entries */
u_short ancount; /* number of answer entries */
u_short nscount; /* number of authority entries */
u_short arcount; /* number of resource entries */
} HEADER;
/*
@@ -214,23 +214,23 @@ typedef struct {
* Structure for passing resource records around.
*/
struct rrec {
short r_zone; /* zone number */
short r_class; /* class number */
short r_type; /* type number */
short r_zone; /* zone number */
short r_class; /* class number */
short r_type; /* type number */
#ifdef __alpha
u_int r_ttl; /* time to live */
u_int r_ttl; /* time to live */
#else
u_long r_ttl; /* time to live */
u_long r_ttl; /* time to live */
#endif
int r_size; /* size of data area */
char *r_data; /* pointer to data */
int r_size; /* size of data area */
char *r_data; /* pointer to data */
};
extern u_short _getshort();
extern u_short _getshort();
#ifdef __alpha
extern u_int _getlong();
extern u_int _getlong();
#else
extern u_long _getlong();
extern u_long _getlong();
#endif
/*
+13 -8
View File
@@ -20,8 +20,6 @@
*/
/*
* -- Potvin -- Feb 20/98
*
* Added numerics 600-799 as numeric_replies2[], we ran out
*/
@@ -78,12 +76,12 @@
#define ERR_NOLOGIN 444
#define ERR_SUMMONDISABLED 445
#define ERR_USERSDISABLED 446
#define ERR_NONICKCHANGE 447
#define ERR_NOTREGISTERED 451
#define ERR_HOSTILENAME 455
#define ERR_NOHIDING 459
#define ERR_NOTFORHALFOPS 460
#define ERR_NEEDMOREPARAMS 461
#define ERR_ALREADYREGISTRED 462
@@ -112,7 +110,9 @@
#define ERR_ATTACKDENY 484
#define ERR_KILLDENY 485
#define ERR_HTMDISABLED 486
#define ERR_HTMDISABLED 486
#define ERR_SECUREONLYCHAN 489
#define ERR_NOOPERHOST 491
#define ERR_NOSERVICEHOST 492
@@ -128,7 +128,7 @@
#define ERR_ADMONLY 519
#define ERR_OPERONLY 520
#define ERR_LISTSYNTAX 521
#define ERR_OPERSPVERIFY 524
/*
* Numberic replies from server commands.
* These are currently in the range 200-399.
@@ -143,7 +143,7 @@
#define RPL_WHOISREGNICK 307
#define RPL_RULESSTART 308
#define RPL_ENDOFRULES 309
#define RPL_WHOISHELPOP 310 /* -Donwulff */
#define RPL_WHOISHELPOP 310 /* -Donwulff */
#define RPL_WHOISUSER 311
#define RPL_WHOISSERVER 312
@@ -153,7 +153,7 @@
/* rpl_endofwho below (315) */
#define RPL_ENDOFWHOWAS 369
#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
#define RPL_WHOISCHANOP 316 /* redundant and not needed but reserved */
#define RPL_WHOISIDLE 317
#define RPL_ENDOFWHOIS 318
@@ -234,6 +234,8 @@
#define RPL_STATSLINKINFO 211
#define RPL_STATSCOMMANDS 212
#define RPL_STATSCLINE 213
#define RPL_STATSOLDNLINE 214
#define RPL_STATSILINE 215
#define RPL_STATSKLINE 216
#define RPL_STATSQLINE 217
@@ -248,6 +250,7 @@
#define RPL_STATSTLINE 224
#define RPL_STATSELINE 225
#define RPL_STATSNLINE 226
#define RPL_STATSVLINE 227
#define RPL_SERVICEINFO 231
#define RPL_RULES 232
#define RPL_SERVICE 233
@@ -260,7 +263,7 @@
#define RPL_STATSHLINE 244
#define RPL_STATSSLINE 245
#define RPL_STATSXLINE 247
#define RPL_STATSULINE 248
#define RPL_STATSULINE 248
#define RPL_STATSDEBUG 249
#define RPL_STATSCONN 250
@@ -312,3 +315,5 @@
#define RPL_DUMPING 640
#define RPL_DUMPRPL 641
#define RPL_EODUMP 642
#define ERR_NUMERICERR 999
+98
View File
@@ -0,0 +1,98 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/proto.h
* (C) Dominick Meglio <codemastr@unrealircd.com> 2000
*
* See file AUTHORS in IRC package for additional names of
* the programmers.
*
* 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.
*/
#ifndef proto_h
#define proto_h
/* badwords.c */
int loadbadwords_message PROTO((char *wordfile));
int loadbadwords_channel PROTO((char *wordfile));
/* channel.c */
int sendmodeto_one PROTO((aClient *cptr, char *from, char *name, char *mode, char *param, TS creationtime));
void make_cmodestr PROTO((void));
/* dynconf.c */
int load_conf PROTO((char *filename, int type));
int load_conf2 PROTO((FILE * conf, char *filename, int type));
int load_conf3 PROTO((FILE * conf, char *filename, int type));
void init_dynconf PROTO((void));
void doneconf PROTO((int type));
/* lusers.c */
void init_ircstats PROTO((void));
/* match.c */
char *collapse PROTO((char *pattern));
/* scache.c */
void clear_scache_hash_table PROTO((void));
/* send.c */
void sendto_one PROTO((aClient *, char *, ...));
void sendto_chanops_butone PROTO((aClient *one, aChannel *chptr, char *pattern, ...));
void sendto_realops PROTO((char *pattern, ...));
void sendto_serv_butone_token PROTO((aClient *one, char *prefix, char *command, char *token, char *pattern, ...));
void sendto_serv_butone_token_opt PROTO((aClient *one, int opt, char *prefix, char *command, char *token, char *pattern, ...));
/* support.c */
char *my_itoa PROTO((int i));
/* s_conf.c */
int find_nline PROTO((aClient *cptr));
/* s_extra.c */
int channel_canjoin PROTO((aClient *sptr, char *name));
int dcc_loadconf PROTO((void));
int cr_loadconf PROTO((void));
int vhost_loadconf PROTO((void));
/* s_kline.c */
int find_tkline_match PROTO((aClient *cptr, int xx));
void tkl_check_expire PROTO((void));
int tkl_sweep PROTO((void));
/* s_serv.c */
void load_tunefile PROTO((void));
void save_tunefile PROTO((void));
aMotd *read_botmotd PROTO((char *filename));
aMotd *read_rules PROTO((char *filename));
aMotd *read_opermotd PROTO((char *filename));
aMotd *read_motd PROTO((char *filename));
aMotd *read_svsmotd PROTO((char *filename));
void read_tlines PROTO((void));
/* s_unreal.c */
void unrealmanual PROTO((void));
/* s_user.c */
int check_for_target_limit PROTO((aClient *sptr, void *target, const char *name));
void make_umodestr PROTO((void));
/* webtv.c */
int is_halfop PROTO((aClient *cptr, aChannel *chptr));
int is_chanprot PROTO((aClient *cptr, aChannel *chptr));
char *convert_time PROTO((time_t ltime));
char *get_mode_str PROTO((aClient *acptr));
/* whowas.c */
void initwhowas PROTO((void));
#endif /* proto_h */
+36 -36
View File
@@ -17,54 +17,54 @@
#define AR_TTL 600 /* TTL in seconds for dns cache entries */
struct hent {
char *h_name; /* official name of host */
char *h_aliases[MAXALIASES]; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
struct hent {
char *h_name; /* official name of host */
char *h_aliases[MAXALIASES]; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
/* list of addresses from name server */
struct IN_ADDR h_addr_list[MAXADDRS];
struct IN_ADDR h_addr_list[MAXADDRS];
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
};
typedef struct reslist {
int id;
int sent; /* number of requests sent */
int srch;
time_t ttl;
char type;
char retries; /* retry counter */
char sends; /* number of sends (>1 means resent) */
char resend; /* send flag. 0 == dont resend */
time_t sentat;
time_t timeout;
struct IN_ADDR addr;
char *name;
struct reslist *next;
Link cinfo;
typedef struct reslist {
int id;
int sent; /* number of requests sent */
int srch;
time_t ttl;
char type;
char retries; /* retry counter */
char sends; /* number of sends (>1 means resent) */
char resend; /* send flag. 0 == dont resend */
time_t sentat;
time_t timeout;
struct IN_ADDR addr;
char *name;
struct reslist *next;
Link cinfo;
#ifndef _WIN32
struct hent he;
struct hent he;
#else
struct hostent *he;
char locked;
struct hostent *he;
char locked;
#endif
} ResRQ;
} ResRQ;
typedef struct cache {
time_t expireat;
time_t ttl;
typedef struct cache {
time_t expireat;
time_t ttl;
#ifndef _WIN32
struct hostent he;
struct hostent he;
#else
struct hostent *he;
struct hostent *he;
#endif
struct cache *hname_next, *hnum_next, *list_next;
} aCache;
struct cache *hname_next, *hnum_next, *list_next;
} aCache;
typedef struct cachetable {
aCache *num_list;
aCache *name_list;
} CacheTable;
typedef struct cachetable {
aCache *num_list;
aCache *name_list;
} CacheTable;
#define ARES_CACSIZE 101
+30 -27
View File
@@ -33,25 +33,25 @@
/*
* Global defines and variables for resolver stub.
*/
#define MAXNS 3 /* max # name servers we'll track */
#define MAXDFLSRCH 3 /* # default domain levels to try */
#define MAXDNSRCH 6 /* max # domains in search path */
#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */
#define MAXSERVICES 2 /* max # of services to search */
#define MAXNS 3 /* max # name servers we'll track */
#define MAXDFLSRCH 3 /* # default domain levels to try */
#define MAXDNSRCH 6 /* max # domains in search path */
#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */
#define MAXSERVICES 2 /* max # of services to search */
#define RES_TIMEOUT 5 /* min. seconds between retries */
#define RES_TIMEOUT 5 /* min. seconds between retries */
struct state {
int retrans; /* retransmition time interval */
int retry; /* number of times to retransmit */
long options; /* option flags - see below. */
int nscount; /* number of name servers */
struct SOCKADDR_IN nsaddr_list[MAXNS]; /* address of name server */
#define nsaddr nsaddr_list[0] /* for backward compatibility */
unsigned short id; /* current packet id */
char defdname[MAXDNAME]; /* default domain */
char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */
unsigned short order[MAXSERVICES+1]; /* search service order */
int retrans; /* retransmition time interval */
int retry; /* number of times to retransmit */
long options; /* option flags - see below. */
int nscount; /* number of name servers */
struct SOCKADDR_IN nsaddr_list[MAXNS]; /* address of name server */
#define nsaddr nsaddr_list[0] /* for backward compatibility */
unsigned short id; /* current packet id */
char defdname[MAXDNAME]; /* default domain */
char *dnsrch[MAXDNSRCH + 1]; /* components of domain to search */
unsigned short order[MAXSERVICES + 1]; /* search service order */
};
#define RES_SERVICE_NONE 0
@@ -61,19 +61,22 @@ struct state {
/*
* Resolver options
*/
#define RES_INIT 0x0001 /* address initialized */
#define RES_DEBUG 0x0002 /* print debug messages */
#define RES_AAONLY 0x0004 /* authoritative answers only */
#define RES_USEVC 0x0008 /* use virtual circuit */
#define RES_PRIMARY 0x0010 /* query primary server only */
#define RES_IGNTC 0x0020 /* ignore trucation errors */
#define RES_RECURSE 0x0040 /* recursion desired */
#define RES_DEFNAMES 0x0080 /* use default domain name */
#define RES_STAYOPEN 0x0100 /* Keep TCP socket open */
#define RES_DNSRCH 0x0200 /* search up local domain tree */
#define RES_INIT 0x0001 /* address initialized */
#define RES_DEBUG 0x0002 /* print debug messages */
#define RES_AAONLY 0x0004 /* authoritative answers only */
#define RES_USEVC 0x0008 /* use virtual circuit */
#define RES_PRIMARY 0x0010 /* query primary server only */
#define RES_IGNTC 0x0020 /* ignore trucation errors */
#define RES_RECURSE 0x0040 /* recursion desired */
#define RES_DEFNAMES 0x0080 /* use default domain name */
#define RES_STAYOPEN 0x0100 /* Keep TCP socket open */
#define RES_DNSRCH 0x0200 /* search up local domain tree */
#define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)
#if ((__GNU_LIBRARY__ == 6) && (__GLIBC__ >=2) && (__GLIBC_MINOR__ >= 2))
#define res_init __res_init
#endif
extern struct state _res;
extern char *p_cdname(), *p_rr(), *p_type(), *p_class(), *p_time();
+12 -26
View File
@@ -21,45 +21,31 @@
*/
typedef struct SynchList aSynchList;
typedef struct SynchList aSynchList;
/* SJOIN synch structure */
struct SynchList {
char nick[NICKLEN];
int deop;
int devoice;
int dehalf;
int deown;
int deprot;
int op;
int voice;
int half;
int own;
int prot;
aSynchList *next, *prev;
aClient *cptr;
long setflags;
aSynchList *next, *prev;
};
aSynchList *SJSynchList = NULL;
aSynchList *make_synchlist()
{
Reg1 aSynchList *synchptr;
Reg1 aSynchList *synchptr;
synchptr = (aSynchList *) MyMalloc(sizeof(aSynchList));
synchptr = (aSynchList *) MyMalloc(sizeof(aSynchList));
synchptr->cptr = NULL;
synchptr->setflags = 0;
synchptr->prev = synchptr->next = NULL;
synchptr->nick[0] = 0;
synchptr->deop = synchptr->dehalf = synchptr->deown = synchptr->deprot = 0;
synchptr->devoice = 0;
synchptr->op = 0;
synchptr->voice = synchptr->half = synchptr->own = synchptr->prot = 0;
synchptr->prev = synchptr->next = NULL;
return synchptr;
return synchptr;
}
void free_synchlist(synchptr)
aSynchList *synchptr;
aSynchList *synchptr;
{
MyFree((char *) synchptr);
MyFree((char *)synchptr);
}
+5 -2
View File
@@ -1,3 +1,4 @@
/************************************************************************
* Unreal Internet Relay Chat Daemon, include/sock.h
* Copyright (C) 1990 Jarkko Oikarinen and
@@ -22,6 +23,9 @@
* $Id$
*
* $Log$
* Revision 1.1.1.1.6.1 2000/05/28 08:55:24 cmunk
* Import of Unreal3.1-beta3
*
* Revision 1.2 2000/03/02 21:22:37 stskeeps
* ...........
*
@@ -73,6 +77,5 @@
#endif
#ifdef RCVTIMEO
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#define SO_RCVTIMEO 0x1006 /* receive timeout */
#endif
+10
View File
@@ -0,0 +1,10 @@
/* Make these what you want for cert & key files */
#define CERTF "server.cert.pem"
#define KEYF "server.key.pem"
extern SSL_CTX * ctx;
extern SSL_METHOD *meth;
extern void init_ssl();
extern int ssl_handshake(aClient *); /* Handshake the accpeted con.*/
extern int ssl_client_handshake(aClient *); /* and the initiated con.*/
+1 -2
View File
@@ -1,4 +1,3 @@
/* Auto created release stamping */
#define RELEASEID2 "959378517"
#define RELEASEID2 "961323751"
#define RELEASESTUFF "draconic"
+484 -458
View File
File diff suppressed because it is too large Load Diff
+26 -25
View File
@@ -53,7 +53,9 @@
# include <string.h>
# endif
#endif
#ifdef SSL
#include <openssl/ssl.h>
#endif
#ifndef GOT_STRCASECMP
#define strcasecmp mycmp
#define strncasecmp myncmp
@@ -84,7 +86,8 @@ extern char *rindex PROTO((char *, char));
#else
#include <sys/time.h>
#endif
#if !defined(DEBUGMODE)
#ifndef DMALLOC
#if !defined(DEBUGMODE)
# ifndef _WIN32
# define MyFree(x) if ((x) != NULL) free(x)
# else
@@ -93,14 +96,15 @@ extern char *rindex PROTO((char *, char));
#else
#define free(x) MyFree(x)
#endif
#endif
#ifdef NEXT
#define VOIDSIG int /* whether signal() returns int of void */
#define VOIDSIG int /* whether signal() returns int of void */
#else
#define VOIDSIG void /* whether signal() returns int of void */
#define VOIDSIG void /* whether signal() returns int of void */
#endif
#ifdef _SOLARIS
#define OPT_TYPE char /* opt type for get/setsockopt */
#define OPT_TYPE char /* opt type for get/setsockopt */
#else
#define OPT_TYPE void
#endif
@@ -113,30 +117,22 @@ extern char *rindex PROTO((char *, char));
#endif
#ifndef _WIN32
extern VOIDSIG dummy();
#endif
#ifdef DYNIXPTX
#define NO_U_TYPES
typedef unsigned short n_short; /* short as received from the net */
typedef unsigned long n_long; /* long as received from the net */
typedef unsigned long n_time; /* ms since 00:00 GMT, byte rev */
#define _NETINET_IN_SYSTM_INCLUDED
extern VOIDSIG dummy();
#endif
#ifdef NO_U_TYPES
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned long u_long;
typedef unsigned int u_int;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned long u_long;
typedef unsigned int u_int;
#endif
#ifdef _WIN32
#define MYOSNAME "Win32"
#endif
#ifdef DEBUGMODE
#define ircsprintf sprintf
#define ircvsprintf vsprintf
// #define ircsprintf sprintf
//#define ircvsprintf vsprintf
#endif
@@ -147,8 +143,11 @@ typedef unsigned int u_int;
#ifdef INET6
# define AND16(x) ((x)[0]&(x)[1]&(x)[2]&(x)[3]&(x)[4]&(x)[5]&(x)[6]&(x)[7]&(x)[8]&(x)[9]&(x)[10]&(x)[11]&(x)[12]&(x)[13]&(x)[14]&(x)[15])
static unsigned char minus_one[]={ 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 0};
static unsigned char minus_one[] =
{ 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 0
};
# define WHOSTENTP(x) ((x)[0]|(x)[1]|(x)[2]|(x)[3]|(x)[4]|(x)[5]|(x)[6]|(x)[7]|(x)[8]|(x)[9]|(x)[10]|(x)[11]|(x)[12]|(x)[13]|(x)[14]|(x)[15])
# define AFINET AF_INET6
@@ -175,8 +174,10 @@ char mydummy2[MYDUMMY_SIZE];
# endif
# if defined(linux)
static const struct in6_addr in6addr_any={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0};
static const struct in6_addr in6addr_any = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0
};
# endif
# define IRCDCONF_DELIMITER '%'
@@ -194,5 +195,5 @@ static const struct in6_addr in6addr_any={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
# define WHOSTENTP(x) (x)
# define IRCDCONF_DELIMITER ':'
#endif
#endif /* __sys_include__ */
+11 -11
View File
@@ -30,25 +30,25 @@
#endif
struct current_load_struct {
u_short client_count, local_count, conn_count;
u_long entries;
};
u_short client_count, local_count, conn_count;
u_long entries;
};
extern struct current_load_struct current_load_data;
struct load_entry {
struct load_entry *prev;
u_short client_count, local_count, conn_count;
struct load_entry *prev;
u_short client_count, local_count, conn_count;
#ifdef DEBUGMODE
u_short cpu_usage;
u_short cpu_usage;
#endif
long time_incr;
long time_incr;
};
extern struct load_entry *load_list_head, *load_list_tail,
*load_free_head, *load_free_tail;
*load_free_head, *load_free_tail;
extern void initload PROTO ((void));
extern void update_load PROTO ((void));
extern void calc_load PROTO ((aClient *, char *));
extern void initload PROTO((void));
extern void update_load PROTO((void));
extern void calc_load PROTO((aClient *, char *));
+14 -16
View File
@@ -16,34 +16,32 @@
#else
#define DEBUGMODESET ""
#endif
/**/
/**/
#ifdef DEBUG
#define DEBUGSET "(Debug)"
#else
#define DEBUGSET ""
#endif
/**/
#endif
/**/
#define COMPILEINFO DEBUGMODESET DEBUGSET
/*
* Version Unreal3.1
* Version Unreal3.1.6-Noon
*/
#define UnrealProtocol 2301
#define UnrealProtocol 2302
#define PATCH1 "3"
#define PATCH2 ".1"
#define PATCH3 "-Silverheart"
#define PATCH4 "(beta3)"
#define PATCH5 ""
#define PATCH3 ".7"
#define PATCH4 "-Jones"
#define PATCH5 "[beta1]"
#define PATCH6 ""
#define PATCH7 ""
#define PATCH8 COMPILEINFO
#define PATCH9 ""
#ifndef _WIN32
#define BASE_VERSION "Unreal"
#ifdef _WIN32
#define PATCH9 "+win32"
#else
#define BASE_VERSION "UnrealIRCd/32 v"
#define PATCH9 ""
#endif
/* release header */
#define Rh BASE_VERSION
#define VERSIONONLY PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7
#endif /* __versioninclude */
#endif /* __versioninclude */
+11 -11
View File
@@ -39,12 +39,12 @@
** WHOWAS structure moved here from whowas.c
*/
typedef struct aname {
anUser *ww_user;
aClient *ww_online;
time_t ww_logout;
long ww_umodes;
char ww_nick[NICKLEN+1];
char ww_info[REALLEN+1];
anUser *ww_user;
aClient *ww_online;
time_t ww_logout;
long ww_umodes;
char ww_nick[NICKLEN + 1];
char ww_info[REALLEN + 1];
} aName;
@@ -55,7 +55,7 @@ typedef struct aname {
** Client must be a fully registered user (specifically,
** the user structure must have been allocated).
*/
void add_history (aClient *, int);
void add_history(aClient *, int);
/*
** off_history
@@ -64,7 +64,7 @@ void add_history (aClient *, int);
** structures and it must know when they cease to exist. This
** also implicitly calls AddHistory.
*/
void off_history (aClient *);
void off_history(aClient *);
/*
** get_history
@@ -72,15 +72,15 @@ void off_history (aClient *);
** nickname within the timelimit. Returns NULL, if no
** one found...
*/
aClient *get_history (char *, time_t);
aClient *get_history(char *, time_t);
/* Nick name */
/* Time limit in seconds */
int m_whowas (aClient *, aClient *, int, char *[]);
int m_whowas(aClient *, aClient *, int, char *[]);
/*
** for debugging...counts related structures stored in whowas array.
*/
void count_whowas_memory (int *, u_long *);
void count_whowas_memory(int *, u_long *);
#endif /* __whowas_include__ */
+24 -2
View File
@@ -1,3 +1,25 @@
#define SPATH "."
/*
* VERSION: Unreal3.1.6 Noon
* DATE: Sat Jun 15 13:43:51 EST 2002
* OS: Win-32
*
*/
#define DPATH "."
#define DOMAINNAME "irc.net"
#define SPATH "."
#define DOMAINNAME "irc.net"
#define LISTEN_SIZE 5
#define MAXSENDQLENGTH 3000000
#define BUFFERPOOL (9 * MAXSENDQLENGTH)
#define MAXCONNECTIONS 1024
#define NICKNAMEHISTORYLENGTH 2000
#define OPEROVERRIDE_VERIFY 1
#undef CRYPT_OPER_PASSWORD
#undef USE_SSL
#undef CRYPT_LINK_PASSWORD
#undef CRYPT_ILINE_PASSWORD
#undef CRYPT_XLINE_PASSWORD
#define HUB 1
#define HAVE_REGEX 1
#define NOSPOOF 1
#define GLIBC2_x
+6 -4
View File
@@ -24,6 +24,8 @@ echo "| (3) DPATH or SPATH's are incorrect. Run |"
echo "| ./Config to correct that. |"
echo "| (4) Someone else is running an ircd on the |"
echo "| default port you chose in ircd.conf. |"
echo "| |"
echo "| see ircd.log for more information |"
echo "|********************************************|"
echo "| If you can't get Unreal IRCd to work - go |"
echo "| to /server irc.flirt.org and join |"
@@ -59,10 +61,10 @@ echo "| (4) Someone else is running an ircd on the |"
echo "| default port you chose in ircd.conf. |"
echo "|********************************************|"
echo "| If you can't get Unreal IRCd to work - go |"
echo "| to /server irc.global-irc.net and join |"
echo "| #Global - Try ask in the channel or /msg |"
echo "| Stskeeps/Techie(me!) or else-- email me at |"
echo "| stskeeps@tspre.org |"
echo "| to /server irc.flirt.org and join |"
echo "| #UnrealIRCd or mail us at |"
echo "| unreal-support@lists.sourceforge.net |"
echo "| |"
echo "|--------------------------------------------|"
exit
-4
View File
@@ -1,4 +0,0 @@
#!/bin/sh
# $Id$
lynx http://unreal.sourceforge.net/register.html
+11 -2
View File
@@ -13,6 +13,7 @@ ADMADDR="admin@no.where.com"
OPERNAME="admin"
OPERADDR="*@*"
OPERPASS="password"
NUMERIC=""
PORT="6667"
OPRT="default"
LINKPASS="linkpass"
@@ -173,6 +174,15 @@ if [ ! -z "$cc" ]; then
PORT="$cc"
fi
echo " "
echo "What server numeric does the server have (range = 1..256)"
echo "Must NOT be the same as other servers you link with"
echo $n " [] -> $c"
read cc
if [ ! -z "$cc" ]; then
NUMERIC="$cc"
fi
echo " "
echo "What is your real name? (ie: John Doe)"
echo $n " [$ADMIN] -> $c"
@@ -214,7 +224,6 @@ echo " O = global oper"
echo " N = network administrator"
echo " A = server administrator"
echo " C = co administrator"
echo " T = technical administrator"
echo " read unrealircd.doc for more info about O:line flags)"
echo $n " [$FLAGS] -> $c"
read cc
@@ -311,7 +320,7 @@ cat > $CONF << __EOF__
########################
############ Server Info ############
M:$SERVNAME:$VIRTUAL:$COMMENT:$PORT
M:$SERVNAME:$VIRTUAL:$COMMENT:$PORT:$NUMERIC
#####################################
############ Administrator Information #############
+243 -187
View File
@@ -1,187 +1,243 @@
#
# Win32Gui Config File .. By DrBin
#
CC=cl
# Here you put your settings
FD_SETSIZE=/D FD_SETSIZE=16384
NS_ADDRESS=/D NS_ADDRESS="\"nospoof@dal.net\""
CFLAGS=/MT /O2 /G5 /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D _WIN32GUI /D NOSPOOF=1 /c
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
./include/msg.h ./include/setup.h ./include/dynconf.h
LINK=link.exe
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /out:WIRCD2.EXE
OBJ_FILES=SRC/CHANNEL.OBJ SRC/USERLOAD.OBJ SRC/SEND.OBJ SRC/BSD.OBJ \
SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ SRC/RES.OBJ \
SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \
SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/RES_COMP.OBJ SRC/S_AUTH.OBJ \
SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \
SRC/S_DEBUG.OBJ SRC/RES_INIT.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/CLASS.OBJ SRC/S_BSD.OBJ \
SRC/MD5.OBJ SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/WIN32GUI.OBJ \
SRC/VERSION.OBJ SRC/win32/WIN32.RES SRC/S_UNREAL.OBJ SRC/DYNCONF.OBJ \
SRC/S_SOCKS.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
SRC/SCACHE.OBJ
RC=rc.exe
ALL: WIRCD.EXE CHKCONF.EXE
@echo Please, please REMEMBER to add those U lines!
@echo Read the file READTHIS.NOW formore info
CLEAN:
-@erase src\*.exe 2>NUL
-@erase src\*.obj 2>NUL
-@erase src\win32.res 2>NUL
-@erase src\version.c 2>NUL
-@erase src\win32\*.obj 2>NUL
-@erase .\*.exe 2>NUL
#include/setup.h:
# @echo Hmm...doesn't look like you've run Config...
# @echo Doing so now.
# @config.exe
#src/version.c: dummy
# @config.exe -v
src/version.obj: src/win32/version.c
$(CC) $(CFLAGS) src/win32/version.c
./WIRCD.EXE: $(OBJ_FILES) src/win32/version.obj
$(LINK) $(LFLAGS) $(OBJ_FILES)
./CHKCONF.EXE: ./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./src/crule.c ./src/match.c ./src/chkconf.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkcrule.obj /c src/crule.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkmatch.obj /c src/match.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkconf.obj /c src/chkconf.c
$(LINK) /nologo /out:./chkconf.exe src/chkconf.obj src/chkmatch.obj \
src/chkcrule.obj
src/parse.obj: src/parse.c $(INCLUDES)
$(CC) $(CFLAGS) src/parse.c
src/bsd.obj: src/bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/bsd.c
src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/dbuf.c
src/ircsprintf.obj: src/ircsprintf.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircsprintf.c
src/packet.obj: src/packet.c $(INCLUDES)
$(CC) $(CFLAGS) src/packet.c
src/fdlist.obj: src/fdlist.c $(INCLUDES)
$(CC) $(CFLAGS) src/fdlist.c
src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/dynconf.c
src/send.obj: src/send.c $(INCLUDES)
$(CC) $(CFLAGS) src/send.c
src/match.obj: src/match.c $(INCLUDES)
$(CC) $(CFLAGS) src/match.c
src/support.obj: src/support.c $(INCLUDES)
$(CC) $(CFLAGS) src/support.c
src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
$(CC) $(CFLAGS) src/channel.c
src/class.obj: src/class.c $(INCLUDES) ./include/class.h
$(CC) $(CFLAGS) src/class.c
src/lusers.obj: src/lusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/lusers.c
src/ircd.obj: src/ircd.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircd.c
src/list.obj: src/list.c $(INCLUDES)
$(CC) $(CFLAGS) src/list.c
src/res.obj: src/res.c $(INCLUDES)
$(CC) $(CFLAGS) src/res.c
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_bsd.c
src/s_auth.obj: src/s_auth.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_auth.c
src/s_conf.obj: src/s_conf.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_conf.c
src/s_debug.obj: src/s_debug.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_debug.c
src/s_err.obj: src/s_err.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_err.c
src/s_kline.obj: src/s_kline.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_kline.c
src/s_misc.obj: src/s_misc.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_misc.c
src/scache.obj: src/scache.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/scache.c
src/s_socks.obj: src/s_socks.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_socks.c
src/s_user.obj: src/s_user.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_user.c
src/s_extra.obj: src/s_extra.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_extra.c
src/s_unreal.obj: src/s_unreal.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_unreal.c
src/s_serv.obj: src/s_serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_serv.c
src/s_numeric.obj: src/s_numeric.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_numeric.c
src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/whowas.c
src/hash.obj: src/hash.c $(INCLUDES) ./include/hash.h
$(CC) $(CFLAGS) src/hash.c
src/crule.obj: src/crule.c $(INCLUDES)
$(CC) $(CFLAGS) src/crule.c
src/win32gui.obj: src/win32/win32gui.c $(INCLUDES) ./src/win32/resource.h
#./include/resource.h
$(CC) $(CFLAGS) src/win32/win32gui.c
src/res_comp.obj: src/res_comp.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_comp.c
src/res_init.obj: src/res_init.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_init.c
src/help.obj: src/help.c $(INCLUDES)
$(CC) $(CFLAGS) src/help.c
src/md5.obj: src/md5.c $(INCLUDES)
$(CC) $(CFLAGS) src/md5.c
src/win32/win32.res: src/win32/win32gui.rc
$(RC) /l 0x409 /fosrc/win32/win32.res /i ./include /i ./src \
/d NDEBUG src/win32/win32gui.rc
dummy:
#
# Win32Gui Config File .. By DrBin
# Modified by Zogg for 3.1.x
CC=cl
COMPILERHELP=compilerhelp.exe
# Here you put your settings
FD_SETSIZE=/D FD_SETSIZE=16384
NS_ADDRESS=/D NS_ADDRESS="\"nospoof@dal.net\""
!IFNDEF DEBUG
!IFNDEF DISTDEBUG
CFLAGS=/MT /O2 /G5 /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D _WIN32GUI /D NOSPOOF=1 /c
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /out:WIRCD2.EXE
!ELSE
CFLAGS= /MTd /Zi /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D _WIN32GUI /D NOSPOOF=1 /c
#/Od /Yd /G5
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /debug /debugtype:BOTH /OUT:WIRCD.EXE
!ENDIF
!ELSE
CFLAGS= /MTd /Zi /I ./INCLUDE /Fosrc/ /nologo $(FD_SETSIZE) $(NS_ADDRESS) /D DEBUG /D DEBUGMODE /D _DEBUG /D _WIN32GUI /D NOSPOOF=1 /c
#/Od /Yd /G5
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib wsock32.lib \
oldnames.lib libcmt.lib comctl32.lib /nodefaultlib /nologo /debug /debugtype:BOTH /OUT:WIRCD.EXE
!ENDIF
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \
./include/msg.h ./include/setup.h ./include/dynconf.h
LINK=link.exe
OBJ_FILES=SRC/CHANNEL.OBJ SRC/USERLOAD.OBJ SRC/SEND.OBJ SRC/BSD.OBJ \
SRC/S_CONF.OBJ SRC/FDLIST.OBJ SRC/DBUF.OBJ \
SRC/CLOAK.OBJ SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \
SRC/S_NUMERIC.OBJ SRC/WHOWAS.OBJ SRC/S_AUTH.OBJ \
SRC/HELP.OBJ SRC/S_MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \
SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/CLASS.OBJ SRC/S_BSD.OBJ \
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/WIN32GUI.OBJ \
SRC/VERSION.OBJ SRC/S_UNREAL.OBJ SRC/DYNCONF.OBJ \
SRC/S_SOCKS.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/BADWORDS.OBJ SRC/WEBTV.OBJ \
SRC/RES.OBJ SRC/RES_INIT.OBJ SRC/RES_COMP.OBJ
RC=rc.exe
ALL: COMPILERHELP.EXE WIRCD.EXE
CLEAN:
-@erase src\*.exe 2>NUL
-@erase src\*.obj 2>NUL
-@erase src\win32.res 2>NUL
-@erase src\version.c 2>NUL
-@erase src\win32\*.obj 2>NUL
-@erase .\*.exe 2>NUL
#include/setup.h:
# @echo Hmm...doesn't look like you've run Config...
# @echo Doing so now.
# @config.exe
#src/version.c: dummy
# @config.exe -v
./COMPILERHELP.EXE:
cl src/win32/compilerhelp.c /link /out:compilerhelp.exe
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/GNU_REGEX.LIB SRC/WIN32/DEBUG/STACKTRACE.LIB /MAPINFO:LINES /MAP
-@erase src\win32\win32.res
!IFNDEF DEBUG
!IFNDEF DISTDEBUG
@echo Non Debug version built
!ELSE
@echo Distribution DEBUG Version Built
!ENDIF
!ELSE
@echo Debug version built ...
!ENDIF
./CHKCONF.EXE: ./include/struct.h ./include/config.h ./include/sys.h \
./include/common.h ./src/crule.c ./src/match.c ./src/chkconf.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkcrule.obj /c src/crule.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkmatch.obj /c src/match.c
$(CC) /nologo /I ./include /D CR_CHKCONF /Fosrc/chkconf.obj /c src/chkconf.c
$(LINK) /nologo /out:./chkconf.exe src/chkconf.obj src/chkmatch.obj \
src/chkcrule.obj
src/version.obj: src/win32/version.c
$(CC) $(CFLAGS) src/win32/version.c
src/parse.obj: src/parse.c $(INCLUDES)
$(CC) $(CFLAGS) src/parse.c
src/badwords.obj: src/badwords.c $(INCLUDES)
$(CC) $(CFLAGS) src/badwords.c
src/webtv.obj: src/webtv.c $(INCLUDES)
$(CC) $(CFLAGS) src/webtv.c
src/bsd.obj: src/bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/bsd.c
src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/dbuf.c
src/ircsprintf.obj: src/ircsprintf.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircsprintf.c
src/packet.obj: src/packet.c $(INCLUDES)
$(CC) $(CFLAGS) src/packet.c
src/fdlist.obj: src/fdlist.c $(INCLUDES)
$(CC) $(CFLAGS) src/fdlist.c
src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/dynconf.c
src/send.obj: src/send.c $(INCLUDES)
$(CC) $(CFLAGS) src/send.c
src/match.obj: src/match.c $(INCLUDES)
$(CC) $(CFLAGS) src/match.c
src/support.obj: src/support.c $(INCLUDES)
$(CC) $(CFLAGS) src/support.c
src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h
$(CC) $(CFLAGS) src/channel.c
src/class.obj: src/class.c $(INCLUDES) ./include/class.h
$(CC) $(CFLAGS) src/class.c
src/lusers.obj: src/lusers.c $(INCLUDES)
$(CC) $(CFLAGS) src/lusers.c
src/aln.obj: src/aln.c $(INCLUDES)
$(CC) $(CFLAGS) src/aln.c
src/ircd.obj: src/ircd.c $(INCLUDES)
$(CC) $(CFLAGS) src/ircd.c
src/list.obj: src/list.c $(INCLUDES)
$(CC) $(CFLAGS) src/list.c
src/res.obj: src/res.c $(INCLUDES)
$(CC) $(CFLAGS) src/res.c
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_bsd.c
src/s_auth.obj: src/s_auth.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_auth.c
src/s_conf.obj: src/s_conf.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_conf.c
src/s_debug.obj: src/s_debug.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_debug.c
src/s_err.obj: src/s_err.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_err.c
src/s_kline.obj: src/s_kline.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_kline.c
src/s_misc.obj: src/s_misc.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_misc.c
src/scache.obj: src/scache.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/scache.c
src/s_socks.obj: src/s_socks.c $(INCLUDES)
$(CC) $(CFLAGS) src/s_socks.c
src/s_user.obj: src/s_user.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_user.c
src/s_extra.obj: src/s_extra.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_extra.c
src/s_unreal.obj: src/s_unreal.c $(INCLUDES) ./include/dbuf.h \
./include/channel.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_unreal.c
src/s_serv.obj: src/s_serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/s_serv.c
src/s_numeric.obj: src/s_numeric.c $(INCLUDES) ./include/dbuf.h
$(CC) $(CFLAGS) src/s_numeric.c
src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h
$(CC) $(CFLAGS) src/whowas.c
src/hash.obj: src/hash.c $(INCLUDES) ./include/hash.h
$(CC) $(CFLAGS) src/hash.c
src/crule.obj: src/crule.c $(INCLUDES)
$(CC) $(CFLAGS) src/crule.c
src/win32gui.obj: src/win32/win32gui.c $(INCLUDES) ./src/win32/resource.h
#./include/resource.h
$(CC) $(CFLAGS) src/win32/win32gui.c
src/res_comp.obj: src/res_comp.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_comp.c
src/res_init.obj: src/res_init.c $(INCLUDES)
$(CC) $(CFLAGS) src/res_init.c
src/help.obj: src/help.c $(INCLUDES)
$(CC) $(CFLAGS) src/help.c
src/md5.obj: src/md5.c $(INCLUDES)
$(CC) $(CFLAGS) src/md5.c
src/win32/win32.res: src/win32/win32gui.rc
!IFNDEF DISTDEBUG
$(COMPILERHELP) src/win32/leavealone.h
!ELSE
$(COMPILERHELP) src/win32/leavealone.h 0
!ENDIF
$(RC) /l 0x409 /fosrc/win32/win32.res /i ./include /i ./src \
/d NDEBUG src/win32/win32gui.rc
dummy:
-71
View File
@@ -1,71 +0,0 @@
ver2^2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: <nick> (<real name>)
# E-Mail: <email>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: 972-Scripterz
Set ircnetwork ....: 972-Scripterz
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.972-Scripterz.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.972-Scripterz.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.972-Scripterz.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.972-Scripterz.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.972-Scripterz.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: serviceop.972-Scripterz.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.972-Scripterz.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.972-Scripterz.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.972-Scripterz.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: sz
# This is the domain of the IRC network
Set netdomain .....: 972-Scripterz.org
# This is where people can go for help
Set helpchan ......: #972-Scripterz
# This is the name of the stats server
Set STATS_SERVER ..: stats.972-Scripters.org
# -- Not in use--
Set HUB ...........: 0
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: sz
-71
View File
@@ -1,71 +0,0 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <11> <09> <1999> <14:32> GMT
# Author: <Kerjin> Steve>)
# E-Mail: <kerjin@alternativenet.org>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: AltNet IRC
Set ircnetwork ....: AltNet IRC
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.alternativenet.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.alternativenet.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.alternativenet.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.alternativenet.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.alternativenet.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: serviceop.alternativenet.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.alternativenet.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.alternativenet.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.alternativenet.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: altirc
# This is the domain of the IRC network
Set netdomain .....: alternativenet.org
# This is where people can go for help
Set helpchan ......: #AltNetHelp
# This is the name of the stats server
Set STATS_SERVER ..: statistics.alternativenet.org
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 1
# -- Not in use but still here --
Set net_quit ......: alt
-56
View File
@@ -1,56 +0,0 @@
ver^2.2
# These two specify the name of the IRC network, set the same in both fields
Network >..........: Axenet
Set ircnetwork ....: Axenet
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.axenet.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.axenet.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: Oper.axenet.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: Admin.axenet.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: Locop.axenet.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: Csop.axenet.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: Netadmin.axenet.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: Coadmin.axenet.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : Techadmin.axenet.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: axe
# This is the domain of the IRC network
Set netdomain .....: Axenet.org
# This is where people can go for help
Set helpchan ......: #Axenethelp
# This is the name of the stats server
Set STATS_SERVER ..: stats.axenet.org
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 1
-29
View File
@@ -1,29 +0,0 @@
ver^2.2
#
# Bunker7.net Network Configuration File
# -----------------------------------------
# Added-at: 17 August 1999 12:34 CT
# Author: Rogue
# E-Mail: rogue@bunker7.net
# $Id$
# -----------------------------------------
#
Network >..........: bunker7
Set ircnetwork ....: bunker7
Set defserv .......: irc.bunker7.net
Set SERVICES_NAME .: services.bunker7.net
Set oper_host .....: global.bunker7.net
Set admin_host ....: admin.bunker7.net
Set locop_host ....: local.bunker7.net
Set sadmin_host ...: sadm.bunker7.net
Set netadmin_host .: netadmin.bunker7.net
Set coadmin_host ..: coadmin.bunker7.net
Set techadmin_host : techadmin.bunker7.net
Set hidden_host ...: bunker7
Set netdomain .....: bunker7.net
Set helpchan ......: #bunker7
Set STATS_SERVER ..: stats.bunker7.net
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: B7
-71
View File
@@ -1,71 +0,0 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: <nick> (<real name>)
# E-Mail: <email>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: CC2
Set ircnetwork ....: CC2
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.cc2.org
# This is the name of your Services Server
Set SERVICES_NAME .: services.cc2.org
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.cc2.org
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.cc2.org
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.cc2.org
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: services.cc2.org
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.cc2.org
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.cc2.org
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : technician.cc2.org
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: user
# This is the domain of the IRC network
Set netdomain .....: cc2.org
# This is where people can go for help
Set helpchan ......: #help
# This is the name of the stats server
Set STATS_SERVER ..: stats.ircnet.org
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 1
# -- Not in use but still here --
Set net_quit ......: cc2
-30
View File
@@ -1,30 +0,0 @@
ver^2.2
#
# ChatPlace (irc.chatplace.net) Network Configuration File
# --------------------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@roxnet.org
# $Id$
# -----------------------------------------
#
Network >..........: ChatPlace
Set ircnetwork ....: ChatPlace
Set defserv .......: irc.chatplace.net
Set SERVICES_NAME .: services.chatplace.net
Set oper_host .....: oper.chatplace.net
Set admin_host ....: admin.chatplace.net
Set locop_host ....: locop.chatplace.net
Set sadmin_host ...: csop.chatplace.net
Set netadmin_host .: netadmin.chatplace.net
Set coadmin_host ..: coadmin.chatplace.net
Set techadmin_host : techadmin.chatplace.net
Set hidden_host ...: cp
Set netdomain .....: chatplace.net
Set helpchan ......: #HelpDesk
Set STATS_SERVER ..: stats.chatplace.net
Set HUB ...........: 1
Set iNAH ..........: 1
Set net_quit ......: CP
-70
View File
@@ -1,70 +0,0 @@
ver^2.2
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: <nick> (<real name>)
# E-Mail: <email>
# $Id$
# -----------------------------------------
# This is a template so you can create your own network configuration files
# Just follow the instructions and it will prolly work ;)
# 0 = No 1 = Yes
# -------------------------------------------------------
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: digital-irc.net
Set ircnetwork ....: digital-irc.net
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.digital-irc.net
# This is the name of your Services Server
Set SERVICES_NAME .: services.digital-irc.net
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: ircop.digital-irc.net
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: admin.digital-irc.net
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: locop.digital-irc.net
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: serviceop.digital-irc.net
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: netadmin.digital-irc.net
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: coadmin.digital-irc.net
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : techadmin.digital-irc.net
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: digital-irc
# This is the domain of the IRC network
Set netdomain .....: digital-irc.net
# This is where people can go for help
Set helpchan ......: #Digital-IRC
# This is the name of the stats server
Set STATS_SERVER ..: stats.digital-irc.net
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: ic
-65
View File
@@ -1,65 +0,0 @@
#
# Network Configuration File Template
# -----------------------------------------
# Added-at: <day> <month> <year> <hh:dd> GMT
# Author: Curt|s
# E-Mail: <email>
# $Id$
#
# These two specify the name of the IRC network, set the same in both fields
Network >..........: DigitalIRC.Net
Set ircnetwork ....: DigitalIRC.Net
# This is where your DNS pool is (like irc.dal.net)
Set defserv .......: irc.digitalirc.net
# This is the name of your Services Server
Set SERVICES_NAME .: Services.DigitalIRC.Net
# This is the virtual hostname IRCops will get if iNAH option is enabled
# on oper up
Set oper_host .....: Oper.DigitalIRC.Net
# This is the virtual hostname Server Admins will get if iNAH option is enabled
# on oper up
Set admin_host ....: Admin.DigitalIRC.Net
# This is the virtual hostname Local IRCops will get if iNAH option is enabled
# on oper up
Set locop_host ....: LocOper.DigitalIRC.Net
# This is the virtual hostname Services Operators/Admins will get
# if iNAH option is enabled on oper up
Set sadmin_host ...: ServicesOp.DigitalIRC.Net
# This is the virtual hostname NetAdmins will get
# if iNAH option is enabled on oper up
Set netadmin_host .: NetAdmin.DigitalIRC.Net
# This is the virtual hostname CoAdmins will get
# if iNAH option is enabled on oper up
Set coadmin_host ..: NetAdmin.DigitalIRC.Net
# This is the virtual hostname TechAdmins will get
# if iNAH option is enabled on oper up
Set techadmin_host : Tech.DigitalIRC.Net
# This is the prefix of the hidden host (cloaking) hostname
Set hidden_host ...: NN
# This is the domain of the IRC network
Set netdomain .....: DigtialIRC.Net
#This is where people can go for help
Set helpchan ......: #Digitalirc
# This is the name of the stats server
Set STATS_SERVER ..: Statistics.DigitalIRC.com
# -- Not in use--
Set HUB ...........: 1
# This enables the auto-setting of f.x @netadmin.network.net
# on oper up
Set iNAH ..........: 0
# -- Not in use but still here --
Set net_quit ......: ic
-29
View File
@@ -1,29 +0,0 @@
ver^2.2
#
# DragonWings.org Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: Stskeeps (Carsten Munk)
# E-Mail: stskeeps@global-irc.net
# $Id$
# -----------------------------------------
#
Network >..........: DragonWings
Set ircnetwork ....: DragonWings
Set defserv .......: irc.dragonwings.org
Set SERVICES_NAME .: saturn.dragonwings.org
Set oper_host .....: ircop.dragonwings.org
Set admin_host ....: admin.dragonwings.org
Set locop_host ....: locop.dragonwings.org
Set sadmin_host ...: serviceop.dragonwings.org
Set netadmin_host .: netadmin.dragonwings.org
Set coadmin_host ..: coadmin.dragonwings.org
Set techadmin_host : techadmin.dragonwings.org
Set hidden_host ...: dw
Set netdomain .....: dragonwings.org
Set helpchan ......: #DragonWings
Set STATS_SERVER ..: stats.dragonwings.org
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: DW
-30
View File
@@ -1,30 +0,0 @@
#
# FireIRC Network Configuration File
# -----------------------------------------
# Added-at: 14 July 1999 00:00 GMT
# Author: MasterSatan (Erik Kerr)
# E-Mail: Kerrfarm@bright.net
#
# -----------------------------------------
#
Network >..........: FireIRC
Set ircnetwork ....: FireIRC
Set defserv .......: irc.FireIRC.Net
Set SERVICES_NAME .: services.FireIRC.Net
Set oper_host .....: ircOP.FireIRC.Net
Set admin_host ....: Admin.FireIRC.Net
Set locop_host ....: localOP.FireIRC.Net
Set sadmin_host ...: serviceOP.FireIRC.Net
Set netadmin_host .: NetADMIN.FireIRC.Net
Set coadmin_host ..: CoADMIN.FireIRC.Net
Set techadmin_host : TechAdmin.FireIRC.Net
Set hidden_host ...: FireIRC
Set netdomain .....: FireIRC.Net
Set helpchan ......: #Services
Set STATS_SERVER ..: stats.FireIRC.Net
Set HUB ...........: 1
Set iNAH ..........: 0
Set net_quit ......: FI

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