mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-14 22:54:48 +02:00
Compare commits
621 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6ea328e05c | |||
| f60d1c2e20 | |||
| 6c548c83e7 | |||
| d0a119a6c9 | |||
| 47c5bcf1fe | |||
| 8a99d15208 | |||
| 28f718593a | |||
| 07f1e7c377 | |||
| cfffbcf605 | |||
| 9a4d359753 | |||
| be78cc4ac8 | |||
| d14f1af650 | |||
| 29d7a0d07c | |||
| 0ad0bd1e55 | |||
| 55f7713dfa | |||
| 60c79e809c | |||
| 5a079cc107 | |||
| 6c3d86f3df | |||
| e4b87e6985 | |||
| db184a8fd3 | |||
| b76ce5b666 | |||
| aae8ad6e00 | |||
| df99acd210 | |||
| 6939ec9779 | |||
| 9cdcd0fed1 | |||
| 261a49eba2 | |||
| dc61fc74ca | |||
| 4dc4249538 | |||
| caebff8d64 | |||
| e9342567bf | |||
| 67f1287fb5 | |||
| a139d804db | |||
| b97965dd0c | |||
| 9bfe99cdd6 | |||
| 9bb7d0adce | |||
| d15261fdae | |||
| 589fa3907d | |||
| eb796f97ea | |||
| 6fb290e077 | |||
| 8601eaadc1 | |||
| 61fd1bbc33 | |||
| 219b30f429 | |||
| 0484f40586 | |||
| 9cd1c23682 | |||
| 5ec26b59d6 | |||
| 25e19fe45b | |||
| 41ce0d3fed | |||
| 280846c00c | |||
| 4f2055b949 | |||
| 012d4300b9 | |||
| de853cfdac | |||
| 09ac0e6ee4 | |||
| 06dc3023ab | |||
| d2a36e13b2 | |||
| f72b278876 | |||
| ff6de09c3c | |||
| d9d9b8b46b | |||
| 9757cd71e2 | |||
| 0028312387 | |||
| ebcb49f729 | |||
| 438fd75d02 | |||
| d04ab8dd73 | |||
| fe9b0e2a49 | |||
| 90fb20a2db | |||
| a85a7a3851 | |||
| 4f642b373b | |||
| 8dd915de96 | |||
| 27a2e5c3e1 | |||
| f7deba3bda | |||
| fe721a0f43 | |||
| 8396e0cce1 | |||
| fbb724b642 | |||
| 4ecf4d4d3a | |||
| 672b345057 | |||
| e6efde5291 | |||
| 4cea0721ec | |||
| f093182370 | |||
| 085eb45175 | |||
| 2fae48a6fc | |||
| 345265ffa8 | |||
| 08584d495c | |||
| b04a23ca0b | |||
| ee664d26ce | |||
| 473c68a265 | |||
| 3632876ba7 | |||
| 10b7478eb6 | |||
| 869bc9bab9 | |||
| 867bd08b5d | |||
| 98683525d4 | |||
| cf36508493 | |||
| 722f5eeaf6 | |||
| 80800635a4 | |||
| 8896e5f3a0 | |||
| b818e63a09 | |||
| 3f4fd52cff | |||
| 5087e07097 | |||
| 5d7e4de313 | |||
| 825c12de9e | |||
| da592b1dba | |||
| ebcbf1f840 | |||
| 93ae6616d9 | |||
| 6c7f028594 | |||
| d94af7a977 | |||
| 8b7110a253 | |||
| 428312ee7d | |||
| b1f249cb75 | |||
| b3587542ba | |||
| 5690256e79 | |||
| e1cfa45db2 | |||
| 39b719d0e2 | |||
| f32e8c4a86 | |||
| eef2668ffb | |||
| 24afee2f4f | |||
| e4a59d36a8 | |||
| 0402c8320f | |||
| 17285e699b | |||
| c7173bb458 | |||
| ccc23e1eb2 | |||
| 078da1b9ee | |||
| b3d1a09808 | |||
| d2d29f2294 | |||
| 9d164e76a3 | |||
| 31471cf6ba | |||
| 2a35040f07 | |||
| 155310065b | |||
| cae7d1366d | |||
| 4dc498b9fb | |||
| 54ba7c7ed2 | |||
| d173324c0d | |||
| 799daac44d | |||
| 1cd81ae077 | |||
| 749a4340ca | |||
| 20c0e8d733 | |||
| 4bebd2cb31 | |||
| da4333aecf | |||
| c8b1de7cdb | |||
| ba924cb7bc | |||
| 0a58f33c27 | |||
| bbaa0b0416 | |||
| d42ae2b5b8 | |||
| b140153d57 | |||
| cd5548cab8 | |||
| ceb8171657 | |||
| 2d4846bfd6 | |||
| 25291cc457 | |||
| f8a112aa07 | |||
| 38bcec9991 | |||
| 367dfb5d3b | |||
| cd69044366 | |||
| 5747fda912 | |||
| 94927f5a7a | |||
| f634ce269b | |||
| 6fa75f2e9e | |||
| 9b14745e47 | |||
| 606967c718 | |||
| 3985a7ceed | |||
| 62cf839f2e | |||
| f0e2d2cb61 | |||
| 6d64f0b505 | |||
| d2d806697b | |||
| ae0dcf2bbf | |||
| cb0cbda5ed | |||
| 5d04afc6c2 | |||
| 9955724ef9 | |||
| 052bcc180d | |||
| b791a8eae9 | |||
| 143a7b6566 | |||
| fc2bf10e3a | |||
| 290495c0ad | |||
| 07a6922d5c | |||
| 59a23b3ce6 | |||
| df07c7f133 | |||
| 17932efad0 | |||
| 82a657a63e | |||
| 12c9891916 | |||
| 9511d161c6 | |||
| 1e39df2cb8 | |||
| 6cdc422490 | |||
| d6247b9a19 | |||
| a896d4f71d | |||
| ef7c0d6672 | |||
| 7adf05ab64 | |||
| 4eda3e1752 | |||
| d7a342fed1 | |||
| 8894015354 | |||
| 9019f35565 | |||
| 92cdd762c4 | |||
| 8dce2d175c | |||
| 2b78d45287 | |||
| fd6eed4477 | |||
| 7461b22a16 | |||
| 0588f18cbb | |||
| b318e6a66a | |||
| 4e26bd1379 | |||
| dba0d3b7c0 | |||
| 9159c377de | |||
| 4712fe781c | |||
| d0f4a514d4 | |||
| 6c59c5b733 | |||
| 8c96800c80 | |||
| 7df008ead4 | |||
| 7b068178a1 | |||
| e4a1669632 | |||
| bba7e664b6 | |||
| 108639b960 | |||
| 7a3d7c8b7f | |||
| 32f0e3f871 | |||
| 678ac0f7cf | |||
| f6a0415148 | |||
| 0505a1ff50 | |||
| 5b515b86b4 | |||
| af8b08775d | |||
| ae3936aca5 | |||
| 3a5e5ee45a | |||
| e6b2159245 | |||
| 4639a2b229 | |||
| 648677c637 | |||
| 0c9f2aa846 | |||
| ef3397baf6 | |||
| 293125eb84 | |||
| 7e8ecc7dac | |||
| 7debfeb86a | |||
| 02582580dd | |||
| 50d67017fc | |||
| 5b6dbb1e54 | |||
| 98c6c668ae | |||
| 9dfc0828f9 | |||
| 5a93d1a5e9 | |||
| f97882d2bb | |||
| 41e02c72a0 | |||
| e64c18860f | |||
| 6510adeb23 | |||
| f954969f7d | |||
| fea8930bb2 | |||
| d51af6f8b5 | |||
| 6d9e619b26 | |||
| 2fd3104391 | |||
| bea668a89f | |||
| c2de53cf85 | |||
| d0404fd0e8 | |||
| 4fb309fbde | |||
| e50d397e93 | |||
| 8735a0f6bf | |||
| b6e61e1302 | |||
| 2353bd2011 | |||
| 56dc3a3e1d | |||
| 856282da07 | |||
| cdea0263ac | |||
| 4400b32055 | |||
| 714c97b006 | |||
| 2c5abc8c2d | |||
| 00b464154b | |||
| e534e67628 | |||
| 10bc9a408b | |||
| 8a95221fae | |||
| 71bdc5c08d | |||
| 857b3c3a84 | |||
| 7eb9d0e71a | |||
| f4fde73489 | |||
| 14bb1968ba | |||
| ee31dd9fa0 | |||
| 30be1fa550 | |||
| aa0ac19e18 | |||
| 8c481239de | |||
| 8297e30cd4 | |||
| 0983f82c08 | |||
| 554f1a0c15 | |||
| e94bf80328 | |||
| 5b3b13772b | |||
| 32122c7018 | |||
| a1b617b6d0 | |||
| a46f14412d | |||
| 0f2dd2ef18 | |||
| bfb98ee28f | |||
| b0c04f4b43 | |||
| 362ec0b08d | |||
| b3fc0f5d6b | |||
| 40075204f0 | |||
| 9de62da6f3 | |||
| 98047de919 | |||
| 29b4c9c983 | |||
| 5392dd8acf | |||
| 8f561e9337 | |||
| 6a356f7e2d | |||
| 978dd4071e | |||
| 72cd2b5e99 | |||
| 0fdef4f961 | |||
| 73e45d7537 | |||
| 493ba9981f | |||
| cd4349598d | |||
| 537a91666e | |||
| b6dee3fd9d | |||
| 6cbcc627cf | |||
| 2bb36dd76c | |||
| e486efb289 | |||
| 5c0151f976 | |||
| c5b7e0c1e7 | |||
| 88c77ce89e | |||
| e85a37b814 | |||
| a7ee96c3ce | |||
| 377d9554d3 | |||
| ea41e25761 | |||
| f564867259 | |||
| 23438196eb | |||
| 55a0b03f03 | |||
| e68c66b260 | |||
| 7cbbef2e36 | |||
| ecdce7061b | |||
| 87ca77c48e | |||
| cca7cffb93 | |||
| bb4f0e3393 | |||
| d83fb7d37f | |||
| c07a9207ca | |||
| 7cde16eac1 | |||
| e03c9bdf42 | |||
| 582e6b9f30 | |||
| ad8a1bf785 | |||
| 3e6f1fce93 | |||
| 18dde16b11 | |||
| d3cfcdc6b0 | |||
| cccda143b1 | |||
| 649b5d812e | |||
| e3339d4003 | |||
| 1786f8f03b | |||
| c28527ade3 | |||
| 90f0809b44 | |||
| dc5f3390bc | |||
| 25760a38f1 | |||
| 18c669cf47 | |||
| ae21e16beb | |||
| 623f6a44a0 | |||
| 4981573f80 | |||
| cb5de25f7e | |||
| ae1a133435 | |||
| fc1a6c313b | |||
| 601d97dd93 | |||
| b69361e947 | |||
| c064f9d5e9 | |||
| fe866e500b | |||
| 0bb293925d | |||
| fe95cb9a1f | |||
| cd277778a3 | |||
| 7bc10582c5 | |||
| b93a3e9e93 | |||
| 06a6b4c07f | |||
| 34b46855a2 | |||
| 65393c21ca | |||
| 0c9fd1139c | |||
| d5da9ddb9e | |||
| 70873bcf00 | |||
| a3ec5a5fb8 | |||
| c0f596fbb7 | |||
| 4ae6cd2bf4 | |||
| 242d9ab45d | |||
| a4d4b20b2c | |||
| d42135097a | |||
| 9c4d0c511a | |||
| 85790c8442 | |||
| c0c478112f | |||
| 5406e9fa99 | |||
| 030b9c8291 | |||
| 4493453545 | |||
| df0a433709 | |||
| 6c3bbf0009 | |||
| bf7a3d3133 | |||
| fb602a74e4 | |||
| 040d480e99 | |||
| c90d13174d | |||
| 97e41a7e42 | |||
| 7b6582bdcc | |||
| 5fde2907f5 | |||
| 71ce47a71b | |||
| 98b483ee88 | |||
| 4ee74b07e3 | |||
| d33f4a8120 | |||
| b7920658e4 | |||
| 135b4d9d87 | |||
| 8af8d17d52 | |||
| d11a065d37 | |||
| 771dee3a5f | |||
| ea519e2a6d | |||
| 9ddffa08ea | |||
| 1e7c36aac0 | |||
| 3de653cbf2 | |||
| 4a08c9ba70 | |||
| b750382333 | |||
| 98eb86460b | |||
| 3026350806 | |||
| da3100e642 | |||
| 6c1cefed98 | |||
| 6f7b608fac | |||
| 081d14d3e9 | |||
| 1b47753c0f | |||
| 1ebe25c025 | |||
| 13790b01e3 | |||
| 004f9222a1 | |||
| c3e053033c | |||
| 5561c155de | |||
| 33c6e5c93b | |||
| b7ee74ec97 | |||
| 58f7ef9ca8 | |||
| 7f96ccb01e | |||
| 7666ceab87 | |||
| e7c69eca78 | |||
| d69bcc41fa | |||
| 4d616cf680 | |||
| dc1eb8bddf | |||
| c9e4ba4c98 | |||
| c1c1aa2909 | |||
| 6f9606b331 | |||
| 345f51b684 | |||
| d885489c48 | |||
| 4659dab89c | |||
| 760dc8dab8 | |||
| 5133d62d3c | |||
| eded88dd61 | |||
| bfb2ce7bce | |||
| 6854c9a063 | |||
| 25077eadc1 | |||
| 3f41561390 | |||
| e1499ca0ed | |||
| b61f000488 | |||
| 3ae66ae4e0 | |||
| 51a5fa808e | |||
| 236f8ed033 | |||
| a977359d9f | |||
| 6426522201 | |||
| 47ddee28a4 | |||
| 249edda423 | |||
| bde554aaf9 | |||
| 9ec9cba9d9 | |||
| f046832f10 | |||
| a055d59f9c | |||
| a41b0b5bbb | |||
| bf7aad741d | |||
| cb74571261 | |||
| 993180689a | |||
| aecec0e171 | |||
| 52a5b1b038 | |||
| 9b181f575f | |||
| 7a9cade496 | |||
| 009e5353e7 | |||
| 2988283c76 | |||
| 7f3125a0e2 | |||
| 07353dcf4b | |||
| 110e114d90 | |||
| 8abce466d6 | |||
| 6054bfabd2 | |||
| b1416fc0c0 | |||
| 160d1600a6 | |||
| 0ba15e3965 | |||
| 5fe68141ad | |||
| df0815f9bd | |||
| 10ad7e34f5 | |||
| fcfb9aa3d2 | |||
| b47a9f53cc | |||
| 8617d1ba4c | |||
| 9bccd6046d | |||
| 1c8ea8df8c | |||
| 3f4174bb96 | |||
| d1839df783 | |||
| 9390a647ed | |||
| 3856856120 | |||
| 587defb54e | |||
| 047a43253c | |||
| f1c9feb8f7 | |||
| 81ce6d38a2 | |||
| b57669903d | |||
| 0a7b6dfc3a | |||
| 56663f23e1 | |||
| 0af5d85de7 | |||
| 5e9f767c86 | |||
| 515945254c | |||
| 9d966aa4d0 | |||
| bf26a46b15 | |||
| 6124a68fde | |||
| 65118165d6 | |||
| 2e461cba19 | |||
| b89bcd31d9 | |||
| a78d71ee8b | |||
| 9e7138ace5 | |||
| 50a94daec7 | |||
| 401c3918af | |||
| eb842353cc | |||
| 6c67a4a6b1 | |||
| 3a385f679b | |||
| 30b6a30fc5 | |||
| 6dd738d91c | |||
| 61b2e99257 | |||
| 84d8b082c2 | |||
| fc26ef3e44 | |||
| 32eaeaaf36 | |||
| 8de5089b84 | |||
| 3d7b0b6a0b | |||
| 04e9baae17 | |||
| 8a93ea7376 | |||
| fa2a2c2234 | |||
| 36154d7b10 | |||
| 5fcadbef9b | |||
| ce9e5c4c84 | |||
| d6fe0776a2 | |||
| d5fd9a6ce9 | |||
| 32fc008943 | |||
| 78545d38dc | |||
| 620c7e403d | |||
| 8ba0a10294 | |||
| 8b0a1de92f | |||
| b776a4d148 | |||
| a0dcb79a3a | |||
| 63e1fa2418 | |||
| f2d364aa8a | |||
| 9eeb7a2fc4 | |||
| 7144188368 | |||
| 2525edca20 | |||
| 279842d017 | |||
| 62323727a8 | |||
| 645a04aec3 | |||
| b8f0063629 | |||
| 07104d2d7d | |||
| 68aba326e1 | |||
| 9b0f6b2a9c | |||
| 384b7357cd | |||
| 4c039afe84 | |||
| 4e96e013ac | |||
| 62fe14251b | |||
| f7acfa8736 | |||
| 0a5bb85f2c | |||
| 0423078b67 | |||
| 1e250927a2 | |||
| 711ffb5c62 | |||
| 2265903961 | |||
| 65cdea5cfe | |||
| e3234d5671 | |||
| 4dd196bbc6 | |||
| 0b85e10148 | |||
| a35dd03e50 | |||
| 4a1cded0fd | |||
| 5c87943196 | |||
| f09b334e86 | |||
| 985561c522 | |||
| 0b7c79b488 | |||
| b3d8eb3104 | |||
| b6cb4e3661 | |||
| 031a342e60 | |||
| 023d869ffd | |||
| 4dcaaec5a3 | |||
| 614587cb7c | |||
| 1d750653ab | |||
| a278e31c9f | |||
| 39a02452d2 | |||
| 2016740b47 | |||
| 84c8525bc7 | |||
| 4feb893c3f | |||
| a30af17cb8 | |||
| 1d41fae3ca | |||
| a31694c45a | |||
| bb015165bc | |||
| da53d2f0bf | |||
| a80e94f246 | |||
| a34dd526f2 | |||
| 38a9332ce1 | |||
| 956939e79b | |||
| 227a0375e7 | |||
| 8afe521a85 | |||
| a1e3d57d9e | |||
| c3dcf78497 | |||
| 3edeb401a7 | |||
| f267677ce5 | |||
| c3773ecd9f | |||
| 51f84140fc | |||
| b88cec9d5f | |||
| e6b7e409ce | |||
| 422dbf746f | |||
| 7e3d2d8ea7 | |||
| 12d99c8026 | |||
| a75432c9ca | |||
| bc87b99853 | |||
| c2d9acd82e | |||
| afcea0d1ec | |||
| 0a2e7468d0 | |||
| d725dd805d | |||
| c8ac2db9f8 | |||
| f1b988d04b | |||
| e24344bde1 | |||
| 565266a205 | |||
| d76006aea2 | |||
| 36b89e78bc | |||
| 4c499f8417 | |||
| 989a5462d8 | |||
| 4ffba555f3 | |||
| 34d0a3591d | |||
| 01a0cbe628 | |||
| f2a31c5e21 | |||
| 7a78d5afff | |||
| c2d59695ed | |||
| 546af36469 | |||
| b7b6e232ce | |||
| b7d9439bdc | |||
| a1cc97be8d | |||
| 0b3d4164fe | |||
| d7231c1801 | |||
| 017bd482f1 | |||
| c763583d33 | |||
| 48f9384a82 | |||
| 2f8f56c191 | |||
| c53039ed41 | |||
| adced2cf58 | |||
| 4dc224d3ff | |||
| c66be9025d | |||
| 588614da96 | |||
| a59c66fd49 | |||
| 651ec98abc | |||
| 59337acc04 | |||
| 769f767b05 | |||
| 19a1e80ba8 | |||
| 58d92222ae | |||
| 5b22717119 | |||
| 1f747eb73a | |||
| 4f33019ee9 | |||
| 36e9700f16 | |||
| 843b580a40 |
+15
-10
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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 |
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -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
@@ -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
|
||||
@@ -1,2 +0,0 @@
|
||||
List of helpers in the alpha/beta phase:
|
||||
* Headbang, Alpha/beta tester
|
||||
@@ -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__
|
||||
|
||||
@@ -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$ ]
|
||||
|
||||
@@ -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
@@ -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
@@ -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.
|
||||
@@ -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$ ]
|
||||
@@ -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".
|
||||
@@ -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
|
||||
@@ -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
@@ -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:)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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-)\)
|
||||
# }
|
||||
# }
|
||||
|
||||
@@ -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
|
||||
@@ -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$ ]
|
||||
@@ -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$ ]
|
||||
@@ -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$ ]
|
||||
@@ -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
@@ -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
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
@@ -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
|
||||
@@ -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;
|
||||
+462
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -0,0 +1,4 @@
|
||||
clean:
|
||||
default:
|
||||
all:
|
||||
echo "."
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -1,4 +1,3 @@
|
||||
/* Auto created release stamping */
|
||||
#define RELEASEID2 "959378517"
|
||||
#define RELEASEID2 "961323751"
|
||||
#define RELEASESTUFF "draconic"
|
||||
|
||||
|
||||
+484
-458
File diff suppressed because it is too large
Load Diff
+26
-25
@@ -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
@@ -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
@@ -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
@@ -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__ */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $Id$
|
||||
|
||||
lynx http://unreal.sourceforge.net/register.html
|
||||
@@ -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
@@ -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:
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
Reference in New Issue
Block a user