mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-14 02:54:47 +02:00
Compare commits
1455 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b1aae19ed5 | |||
| f31a55eaaa | |||
| ce27d8d8ed | |||
| 25af5338e3 | |||
| 1e7391b9ba | |||
| 91e5639a77 | |||
| fb629bd489 | |||
| f72a982a82 | |||
| 059605c341 | |||
| 07ad68e3d4 | |||
| 0fa129325e | |||
| 46314dc3bb | |||
| 78f1540ec5 | |||
| b7e579df89 | |||
| 1f9f12660a | |||
| af0e823116 | |||
| 18c617bb35 | |||
| 3b25ba5aed | |||
| 506870ec86 | |||
| 82781bc3a9 | |||
| 0602bf1991 | |||
| 7eae9f8ffd | |||
| 53616c9ec5 | |||
| 37a6cf430b | |||
| 9ca203c1c6 | |||
| ea2caffdf1 | |||
| 9ccf8250fc | |||
| 976a6eb116 | |||
| 61f94bd6d8 | |||
| 082b9c58db | |||
| d2a544bc17 | |||
| 2df6ad48be | |||
| 625483821a | |||
| 7186af38f0 | |||
| 4a7c15b6b0 | |||
| 4c8c5da383 | |||
| 5cbcd7be86 | |||
| c3538b357b | |||
| 64c347f828 | |||
| 32fff791bd | |||
| 26dc7cbb31 | |||
| 1e3e46d4de | |||
| a1bdaa440d | |||
| 49b34a6cab | |||
| 0fa5dec7d7 | |||
| b16af31e83 | |||
| 6bf05cee61 | |||
| 50de952e0b | |||
| 49b2d6d832 | |||
| 859fb60904 | |||
| 2f758a59ac | |||
| 74346e4b40 | |||
| 5adf4d7e5b | |||
| 0a67350cd0 | |||
| 0f0767d4de | |||
| 8d7b9fca49 | |||
| 00fd88ff0c | |||
| f17eca1154 | |||
| 41019fb446 | |||
| 4b2a9d125a | |||
| bb545c7cbe | |||
| 297c176886 | |||
| dd18157ad0 | |||
| 78b9966a5c | |||
| 7acc5aac6e | |||
| 870eb8710f | |||
| 3091752196 | |||
| 5d9cb664b7 | |||
| 19a8b15b01 | |||
| 47ab99a833 | |||
| 9bb05733c8 | |||
| d5d6ace2e1 | |||
| b7bd436b7f | |||
| f011199ea5 | |||
| 2b2308dcdc | |||
| d8645f710d | |||
| 50afecfaa7 | |||
| f18b7e8df1 | |||
| 167a83f7d2 | |||
| 3c423d31d2 | |||
| 3fd9fc9846 | |||
| a06a748214 | |||
| 3e19dc1a8b | |||
| 60c880834b | |||
| b5bcf6605e | |||
| ccab872222 | |||
| 193b044615 | |||
| 268373635a | |||
| 0362f9c765 | |||
| ff5e6a1a0c | |||
| f0167d1284 | |||
| 7530ce6b29 | |||
| 77ccd6b9dd | |||
| 780a9c4878 | |||
| 1a3175f4e7 | |||
| 6d93e605f3 | |||
| 939b8797e4 | |||
| ee775f3e2e | |||
| 9b296df76c | |||
| c2d75396da | |||
| b1a396ad2b | |||
| c5866e2a80 | |||
| cdd354c306 | |||
| d262f6f5e3 | |||
| 97e3d6a2ce | |||
| 9157912636 | |||
| 86287db434 | |||
| 04820fda45 | |||
| 42cb9fc22a | |||
| 70e06587f9 | |||
| 614d980596 | |||
| 4c93c3d197 | |||
| 85db29488f | |||
| 0178632529 | |||
| 9774805c00 | |||
| 8589555273 | |||
| 08d55f0d5e | |||
| bd865e7a65 | |||
| 537e104611 | |||
| 5d25b1b0d5 | |||
| ee4708774a | |||
| be4e63ac89 | |||
| 139b5e9831 | |||
| 7da12ba3bb | |||
| a831052f22 | |||
| f412e7434f | |||
| 3c6f3bd029 | |||
| 2cc9482e18 | |||
| 87f52e5939 | |||
| f964828434 | |||
| e7b18e80c9 | |||
| 6fc134c919 | |||
| 5752aae6d6 | |||
| fda25d1632 | |||
| 660433ac35 | |||
| 2b7915bfa7 | |||
| 3d9359608e | |||
| 0e39a183c7 | |||
| 963872b401 | |||
| 734c3c8cdc | |||
| 5a27a51a42 | |||
| d66a4dc14b | |||
| 65b56f0b55 | |||
| 8db9f96bb0 | |||
| f70a201715 | |||
| 3fdaf585a0 | |||
| 4c30008313 | |||
| 451dca4522 | |||
| b600dffdc8 | |||
| 55a15008f4 | |||
| 317daa7b79 | |||
| eb12f79ba3 | |||
| 96eb692cc6 | |||
| f1c5f88539 | |||
| e81cf14707 | |||
| 906814a31d | |||
| 3e9d300086 | |||
| 2c4c190c39 | |||
| 7fb0fa1620 | |||
| aa15c4bfe7 | |||
| f38e3382cc | |||
| 3f84b46420 | |||
| a292196590 | |||
| 2429ad557b | |||
| 1418ea873b | |||
| 74d519323f | |||
| b8a13305d3 | |||
| 97909a4ac0 | |||
| 9e03c16e3a | |||
| d57f3c63cc | |||
| 14315463d1 | |||
| 2d01d8a942 | |||
| c279572f22 | |||
| 91ed924134 | |||
| 15667266ab | |||
| 8b8490feb7 | |||
| 1f8ba91b69 | |||
| eb392387e7 | |||
| 1eb1d1da5f | |||
| 3d8fd3f4be | |||
| 982803a6b8 | |||
| 4207b5e60f | |||
| d439c8906b | |||
| 5360e2ffa5 | |||
| 9d6e386f97 | |||
| 3f3b8975e0 | |||
| aa206f667f | |||
| 00ce957812 | |||
| 2570955e4a | |||
| adcb462788 | |||
| 3563c26a93 | |||
| 309dac4f2b | |||
| 3271ec3a23 | |||
| 3d728f5f2e | |||
| 374b79c084 | |||
| ad2c969084 | |||
| edcadc6c58 | |||
| 3ada59bc60 | |||
| 46372dc475 | |||
| a8000c2efb | |||
| 04b68513f8 | |||
| 40004ef1b3 | |||
| 66b3a7fe6b | |||
| e88b6477bd | |||
| 61610fe763 | |||
| 1e152a07c0 | |||
| e40164dcf4 | |||
| bfdc7bae73 | |||
| 56c263269c | |||
| aa5fe1514d | |||
| d4d5d46822 | |||
| 24f2f3b17e | |||
| 72b36e893b | |||
| 4640b4c9ca | |||
| 1a76eb59e5 | |||
| 245dea0a70 | |||
| d1ad60990f | |||
| 8dd4160c78 | |||
| 722064b6f7 | |||
| 02ae61dd29 | |||
| 5dd1454489 | |||
| 9c12b0e896 | |||
| 719c0f73ae | |||
| c46024fa2d | |||
| 2e2eea8146 | |||
| 42a30007e7 | |||
| 61a94fb5bd | |||
| 7ad515fb38 | |||
| 60bad142e0 | |||
| c597c90f4a | |||
| b9137af15c | |||
| 2df00337d4 | |||
| d530dbd43d | |||
| 2b0d66498d | |||
| d8a6b6e512 | |||
| acc011337a | |||
| d9e83f70e3 | |||
| 1adc59893d | |||
| 9ae963e1fe | |||
| 23516d8e99 | |||
| 9ed1e4fa02 | |||
| 82f9cf54bb | |||
| 83527ba76d | |||
| 3b6bbdc038 | |||
| c1af7ca274 | |||
| d512f79a6a | |||
| d272d2d6a0 | |||
| e8244902f8 | |||
| 316828edf8 | |||
| aa0af2ddd2 | |||
| 0e4d604c04 | |||
| 5a57a8f496 | |||
| 2ffa9a174f | |||
| 0ff0b04a56 | |||
| 9299b781f6 | |||
| b753c28bec | |||
| cc5e2bc414 | |||
| ad81d0b049 | |||
| 5298c36d64 | |||
| 095a52e630 | |||
| 6ab9d06a6c | |||
| d19bce6c42 | |||
| 9b3e65c6e7 | |||
| 879d32064c | |||
| deb00ef4ef | |||
| e1574bf1e3 | |||
| 4008e3745f | |||
| ee447742c8 | |||
| 618da4ab5e | |||
| df6e300ecd | |||
| aa6ed2085f | |||
| 24e14eb26f | |||
| 087b306429 | |||
| 1157b77e5e | |||
| 59fbe14175 | |||
| 4d9482c92b | |||
| 371ae17e1c | |||
| f8fbe5e4f0 | |||
| 2cbb7a4a00 | |||
| 8e72ba376b | |||
| cb8e31af86 | |||
| 7ddb51c09f | |||
| 5eb7e9eead | |||
| 80806af8bd | |||
| ceba1d07c6 | |||
| 143858cc5b | |||
| 08871c1e6a | |||
| 1470edd1f7 | |||
| c92df824a5 | |||
| 8ef4e93bc1 | |||
| 57fcb26be2 | |||
| 5dda9cb79d | |||
| 3fe7955615 | |||
| f72574ae22 | |||
| 29b319cb99 | |||
| 10d8bd7ba8 | |||
| cfec5bb08a | |||
| 7ed4b2cac9 | |||
| 9a7ec92d48 | |||
| a70e82c418 | |||
| 1b60d7c763 | |||
| b3398d709c | |||
| 1a1cb25c98 | |||
| 5a847b490c | |||
| aac9b61d9c | |||
| 49ad2b388d | |||
| b0914f9a44 | |||
| 2f0cab1ac1 | |||
| 64776556a9 | |||
| 71102b1d41 | |||
| 0db5417b83 | |||
| 34cab7caff | |||
| 938b591358 | |||
| 8a39b26e56 | |||
| 26847b8692 | |||
| 3acf7b2faa | |||
| 16bd395632 | |||
| 39dd1eaca8 | |||
| 17b5922cea | |||
| a5e7197daf | |||
| f1d9606b4f | |||
| c68c7918dd | |||
| 5a71b706c3 | |||
| abae8bad84 | |||
| 627bfd9cf7 | |||
| e67274fc69 | |||
| 7e24744601 | |||
| cf1a52a927 | |||
| 5268649357 | |||
| 6c69183d5a | |||
| 6baddddc8e | |||
| 0414d09660 | |||
| 2883eea6c7 | |||
| bcb97efdb3 | |||
| 751584bbcb | |||
| 4927abe5b4 | |||
| 48bc3b2f74 | |||
| 91c3283cfa | |||
| f6c843d38f | |||
| df37d83f8b | |||
| 9f710925f8 | |||
| 7041116ec0 | |||
| 311efc56b4 | |||
| 9c30f7b685 | |||
| b994ad33bd | |||
| 6e837537a8 | |||
| 4cb6ed06c8 | |||
| 84007d4c16 | |||
| 0c8f523e1d | |||
| 13a946d0e0 | |||
| 805f1988ec | |||
| aa0f869213 | |||
| cb60ae3442 | |||
| dcb34f43f6 | |||
| d603a53e4e | |||
| baa7d5f4f3 | |||
| ef64b411c8 | |||
| 1309531df8 | |||
| 58260b3917 | |||
| b8026bbc50 | |||
| 6dab6c11b1 | |||
| f6e12c316b | |||
| 59e35dc066 | |||
| 7f8009c4c1 | |||
| 08d8c52885 | |||
| e821be52d3 | |||
| 202318cb12 | |||
| b36a576461 | |||
| 5a3e54c385 | |||
| 292b6ae15c | |||
| 0ae8d7c075 | |||
| 7c86c421c9 | |||
| e5502a3ca0 | |||
| 196a4e323e | |||
| f56639bff0 | |||
| c13ab74144 | |||
| c46205e79d | |||
| a4f69bee1a | |||
| 07b2fbb35e | |||
| 28c19679b2 | |||
| 643355b387 | |||
| 779444448c | |||
| d107a4a6a8 | |||
| d5167c69ad | |||
| da0d21fe57 | |||
| 372fbe7af9 | |||
| d53d7156ae | |||
| 64dcfe6073 | |||
| a2137bda71 | |||
| 6e8b77aa86 | |||
| a741b152c3 | |||
| 4237409031 | |||
| 820fae9054 | |||
| 78952aed40 | |||
| 81dd721ed1 | |||
| ba262c4a56 | |||
| 028f6ff83b | |||
| 73c2f8174d | |||
| e089980d2a | |||
| b09466c8ee | |||
| 639fc51d59 | |||
| 77bc5ab29d | |||
| 6933245997 | |||
| 4a66f658f7 | |||
| 685517eadb | |||
| 4cb8605d95 | |||
| e95ef070d1 | |||
| 64ef568a48 | |||
| 492e30676c | |||
| ed8b8da20b | |||
| 08f86d9b2e | |||
| 574ebf6eed | |||
| b19cb1dcae | |||
| bf40486341 | |||
| 63dd326113 | |||
| 17c97c8442 | |||
| ef7a94164c | |||
| 2d11cf09b9 | |||
| 6ee99cde84 | |||
| d717e0fc62 | |||
| a87f26d911 | |||
| 1a01e725c7 | |||
| 1605db3ced | |||
| ae6415afa0 | |||
| 3dc7f640b8 | |||
| 0bbd7a58cf | |||
| 7bb6728af4 | |||
| c305b860b5 | |||
| bcd89f7db8 | |||
| fface35935 | |||
| b83f096e48 | |||
| a744b9b212 | |||
| ffda323d9d | |||
| 27e4c6f3f7 | |||
| 2c0e131dc7 | |||
| 8895f1e60d | |||
| 9643607334 | |||
| c144008217 | |||
| 35ec730f8b | |||
| 9a5c536cce | |||
| da48cfc039 | |||
| 36c0bdde2e | |||
| 9f823be20b | |||
| 964bb656c7 | |||
| 96da66cf7a | |||
| d46bdd4841 | |||
| e473fbc44c | |||
| 6dcb276f8d | |||
| d012c49f1b | |||
| 7272715cec | |||
| 30c5236f25 | |||
| 2d10ab189d | |||
| fae4629c46 | |||
| a71a1a394f | |||
| 75d4fecb4b | |||
| a0b4fe90ec | |||
| 0b54bd259e | |||
| d8b2069bce | |||
| aaa52b3443 | |||
| f584875279 | |||
| 14472ae09b | |||
| bea978de96 | |||
| 58151df3b7 | |||
| a6c7bb1043 | |||
| 901b9c272a | |||
| e540730751 | |||
| 0a34af8720 | |||
| 94c2b58366 | |||
| a1d076367e | |||
| eb1f41bd9c | |||
| 27c437c953 | |||
| 889dd73f15 | |||
| 46668768cf | |||
| 85904c2277 | |||
| d0cb4dc5f5 | |||
| c4abef39cd | |||
| 7a3bf15558 | |||
| 48b76358f4 | |||
| 48b270347a | |||
| 7c23a98292 | |||
| 8b6967d8b9 | |||
| c40fc340b8 | |||
| 35c30baace | |||
| b2e4cf82f8 | |||
| 45aeb1e61d | |||
| 2510f2c94b | |||
| 4eff1e8493 | |||
| c9acb9d1c7 | |||
| 6b3132e0c6 | |||
| c514288a0a | |||
| f4630c24e0 | |||
| f72ad19637 | |||
| d09b68a942 | |||
| c2279a9298 | |||
| 4cc0244c58 | |||
| 4238fff401 | |||
| d421282cf5 | |||
| 649818d4ad | |||
| ac81a9cd9a | |||
| bd636c4e6d | |||
| 7dbf154d04 | |||
| 5cf8ee21a0 | |||
| 2a6a4b31ff | |||
| c3ea2568b2 | |||
| 7fdd8cce96 | |||
| 11d84d8534 | |||
| 1e5e60d635 | |||
| a523cec997 | |||
| 2980fe011f | |||
| 8ee34484b4 | |||
| c1ca937861 | |||
| aa0c706bff | |||
| 2828e7f8b2 | |||
| 9faa5a6d2b | |||
| d7835d959e | |||
| 6e34938c59 | |||
| 06e807130c | |||
| fc1e848a2a | |||
| 5cf1dc144a | |||
| 304e3ad0d4 | |||
| 6ab3862520 | |||
| 9e64a0121c | |||
| f1ec26a07c | |||
| 625102cacd | |||
| a9e547614b | |||
| a4fc53fc3a | |||
| ab7957a6a8 | |||
| f4e4df6d6a | |||
| df9d102d98 | |||
| 9f6492169b | |||
| fe33820f02 | |||
| 1f89c2f6df | |||
| 38b7350f7c | |||
| 80c21aac2e | |||
| 046eb67100 | |||
| 23f72648c4 | |||
| c0790e90de | |||
| 5f05b3c80b | |||
| 0c939fa194 | |||
| 24d0463d4c | |||
| 8e26c4b540 | |||
| cd3dd80c54 | |||
| e3be08d5d1 | |||
| 84a19ab091 | |||
| e422f24d52 | |||
| a7ea2f49b3 | |||
| b245850fb0 | |||
| 86d8796b77 | |||
| e47baea5da | |||
| 982e5a82c0 | |||
| 1af446e5a3 | |||
| fb68c66f31 | |||
| a41384b37f | |||
| ef745b3423 | |||
| d4d58c1247 | |||
| bd999808d7 | |||
| ee078bb165 | |||
| ab2776eb6b | |||
| b2332556ac | |||
| 3bcb2fe524 | |||
| d794786ec0 | |||
| 8171ea4fd8 | |||
| 89e70ff23f | |||
| a19e31dbd0 | |||
| 75ce9d27e7 | |||
| 9c22c743c6 | |||
| 1defbfc962 | |||
| 1d79699c0d | |||
| 341bb11423 | |||
| 9259ddee06 | |||
| 9d3c5ce8e1 | |||
| 32ab3cba8b | |||
| 7ad6dcd977 | |||
| 6b28bfd1b7 | |||
| cb7c1a821b | |||
| e3da8c7ebe | |||
| 55fbab833b | |||
| ee2f4f5f22 | |||
| dddc8f07e4 | |||
| 080a2d6810 | |||
| cb385bc103 | |||
| feb5d81406 | |||
| 0039f7db25 | |||
| 75685b1684 | |||
| 1eb2a21b49 | |||
| 8f1f47aece | |||
| 20c00d3697 | |||
| 086d464c8a | |||
| 49fa3ed3d8 | |||
| 8b637e344b | |||
| f5d9a87f08 | |||
| 5a0a71de03 | |||
| a5bd782cdf | |||
| 829247a272 | |||
| 6aab6d748d | |||
| 7dee0cdcf1 | |||
| 0ebf84d100 | |||
| aceb72f52e | |||
| a28d62c5f0 | |||
| 236808d8b4 | |||
| 9c234ffdf8 | |||
| 22bf17ddc7 | |||
| 355cc16d32 | |||
| 2ed84ed506 | |||
| e92e2c22c3 | |||
| 51d30af3fd | |||
| 945bceb218 | |||
| 169f754f01 | |||
| c7ea6217e5 | |||
| f60c2574d3 | |||
| c6c2cf9371 | |||
| 4d79d9f5d2 | |||
| 8bf078190e | |||
| 1922d94bf9 | |||
| 4ea0a642ff | |||
| 110b0aa9ac | |||
| d9a77b8112 | |||
| c6ca269538 | |||
| 2921b50e00 | |||
| 125102aad7 | |||
| a5deb6bb23 | |||
| 6319b36e2a | |||
| 660f7d97c4 | |||
| 7ca4d97ae9 | |||
| 4558c380c5 | |||
| fa0060ed27 | |||
| 147b5013aa | |||
| 9b7033b9fe | |||
| cd19366da1 | |||
| 57618c1c6d | |||
| 698660b485 | |||
| dc6eebbe09 | |||
| b070d8805c | |||
| 69b7a3c35d | |||
| dfcdaaa152 | |||
| 3fbec6bf4e | |||
| 8ebb8dfbd6 | |||
| 2efc764311 | |||
| ec7429fb4b | |||
| 6ff6367008 | |||
| f3733c32ca | |||
| 66e4674f3f | |||
| d45a18d7b2 | |||
| 5d8532eb86 | |||
| 5f727eec74 | |||
| 70ec1b1ef8 | |||
| fb60748df2 | |||
| 68ec992861 | |||
| 433760a916 | |||
| 891daa18b4 | |||
| 76c107edba | |||
| cd30253ea2 | |||
| c7b782693c | |||
| f692661583 | |||
| e794eaa393 | |||
| 16d9810740 | |||
| 762bbd407b | |||
| 6df508b06a | |||
| 6687c3188d | |||
| c51039b750 | |||
| c811a925a4 | |||
| 8c13a60907 | |||
| 6dfb1a7847 | |||
| f6e1a74fca | |||
| ac00905029 | |||
| be55051f44 | |||
| 6196abbf7b | |||
| a0e4982335 | |||
| bd4292e301 | |||
| 0ae378c5ce | |||
| a094103c67 | |||
| de4eb8ec75 | |||
| cc8a592557 | |||
| 529bd19465 | |||
| 7dced92085 | |||
| fc5f1c0042 | |||
| 4a4f518380 | |||
| d051624476 | |||
| 2fd46b9cd7 | |||
| 0fba832934 | |||
| 144d2dcd82 | |||
| 662af43a45 | |||
| fd043453b9 | |||
| a62456b243 | |||
| 49f05da55c | |||
| bccb8dba2a | |||
| 46deee2cdc | |||
| 09cf365162 | |||
| 6426b73838 | |||
| 8918b99248 | |||
| 98db288079 | |||
| 72c0cb09e9 | |||
| 651add103b | |||
| 3aa9afefeb | |||
| 8f00cf9dd1 | |||
| 20b66249ca | |||
| c6661334a9 | |||
| 4a431863c6 | |||
| df508ff00c | |||
| ada0607eb7 | |||
| aedce0405f | |||
| c6b0eb6987 | |||
| 90a548c310 | |||
| ffef7193bb | |||
| f982828981 | |||
| d6aafe4a7b | |||
| eac36b6344 | |||
| 5674d8b607 | |||
| 2fe59ca280 | |||
| f0367674e7 | |||
| 28872c4570 | |||
| 6539f0bb92 | |||
| 08e6b37957 | |||
| 734d37feda | |||
| 559376cbf1 | |||
| e689ab0888 | |||
| bd9c1afce3 | |||
| fa328676c6 | |||
| 73114abc47 | |||
| 4c81ce30e8 | |||
| c7172fefd3 | |||
| 56eddc1547 | |||
| cc0641ee00 | |||
| a77b8c4da2 | |||
| aaae2532ea | |||
| 5daa5216ac | |||
| cdd38d79f4 | |||
| f17c5cc9e1 | |||
| 5899dd9596 | |||
| 024a63587a | |||
| ac157694c5 | |||
| 62df06ea1a | |||
| 5cd7ab9f06 | |||
| 5ce5d49c89 | |||
| 6e221c61c4 | |||
| fcbeeea502 | |||
| 58a2f012eb | |||
| 3a3962e7ba | |||
| 7b6905b5a9 | |||
| c79642e840 | |||
| 111891aac3 | |||
| 6080f1da73 | |||
| 6f823465ef | |||
| 35baca56a6 | |||
| 38f1772942 | |||
| 8ed0a98738 | |||
| 69d733c02a | |||
| b8417a1e60 | |||
| 54c4c0960a | |||
| f7c87ee208 | |||
| c0d56f5aa2 | |||
| ced7d9ab6c | |||
| 638e557bee | |||
| 693b5634d5 | |||
| c20f785012 | |||
| 291bc5c8c3 | |||
| b52906461c | |||
| b488517226 | |||
| 70d5d8ba51 | |||
| ebf40ab6e6 | |||
| c48ea59940 | |||
| 450021dec8 | |||
| 637122b021 | |||
| cadd4230e9 | |||
| d10223fc2e | |||
| 0af8ede2f1 | |||
| 6a641aa5f5 | |||
| b809428392 | |||
| 06c209ffce | |||
| 7b92553909 | |||
| f3a4e11355 | |||
| 3364e1fb47 | |||
| 36ca3f55bc | |||
| 330fcd4f82 | |||
| 686ad9e52b | |||
| 3c3fb28955 | |||
| c5b7417e39 | |||
| 99ba7c9acd | |||
| 747d84334a | |||
| 15b25a5afc | |||
| a698c401c7 | |||
| 7c400e7dc1 | |||
| 635ab4858e | |||
| 9a81a2a67f | |||
| 7cd21aa28a | |||
| 9635c45fd0 | |||
| e80c63cf22 | |||
| 38fd630d9f | |||
| f966682883 | |||
| 301452efb7 | |||
| 1cc2a6b355 | |||
| c81820b958 | |||
| 56eff93642 | |||
| 7eef11db14 | |||
| 1c2fd041ae | |||
| a7c8428cc4 | |||
| 41ee204108 | |||
| b9c4ba0d2f | |||
| 10fd56d4e8 | |||
| dd09869ef2 | |||
| f4ff22b7d0 | |||
| 45d335a225 | |||
| 90fbe18a95 | |||
| 7f22468f5f | |||
| 9881318847 | |||
| a26f959aad | |||
| 6220be843b | |||
| 8211dcfdb5 | |||
| d381a74959 | |||
| 41696810a2 | |||
| 61f7edbf70 | |||
| e3abcabdfb | |||
| c97e538442 | |||
| 49fe2c12aa | |||
| 259e03dbcb | |||
| 949f96492f | |||
| 2a498427bf | |||
| 481c374af8 | |||
| bcf6941b4b | |||
| 0609cc8ea1 | |||
| ba517c3f2c | |||
| 1f4279d417 | |||
| 383cce9bb6 | |||
| 75706516ab | |||
| 8cd5d09b16 | |||
| c1a2f7e185 | |||
| 5f60a0d949 | |||
| 48dc0d824a | |||
| ce5c2b3800 | |||
| 409bb73a1d | |||
| 0eb5980d15 | |||
| 3dd887ec05 | |||
| 62af4dd7a0 | |||
| ab3bc3d45a | |||
| 3e24e69fa3 | |||
| 29680132b9 | |||
| 75bf27a52b | |||
| 9e3ae2b758 | |||
| 835b3779bf | |||
| 56d1bdfe67 | |||
| 3160f385a8 | |||
| 5d23e3ed71 | |||
| 68c5bf4f66 | |||
| 15008285aa | |||
| 08e6d2562b | |||
| a9069600c5 | |||
| 9d7ab14167 | |||
| 4331a913cd | |||
| 30ad92ade3 | |||
| a167693904 | |||
| f7f5b203e3 | |||
| 43594c811c | |||
| fd84dc2c12 | |||
| ba83f978fa | |||
| 2062bd4137 | |||
| 3005cafeca | |||
| 302bb75217 | |||
| d26692e6f8 | |||
| 3e5aba5117 | |||
| 3f0d91dc34 | |||
| 71fd0f0af6 | |||
| 3320b9a150 | |||
| 37a896df79 | |||
| 7436ba747e | |||
| 4cca75b0cb | |||
| acda817d3d | |||
| 61b7a1277b | |||
| 06ea24e88b | |||
| 8cb6d662e1 | |||
| 1ae33ddbfb | |||
| d67697b7a2 | |||
| 7bc78fae1e | |||
| e1b48b7d3b | |||
| 686732b674 | |||
| 20d84edaa5 | |||
| ddbb84682d | |||
| 74349aa334 | |||
| 9987ec884e | |||
| 23d91c269f | |||
| d9fbd32352 | |||
| e1e037c1b1 | |||
| 8805dae525 | |||
| dad8477cb3 | |||
| a705ceaa86 | |||
| 21a54860d3 | |||
| a9682b7ae2 | |||
| 0f0ffc9580 | |||
| 0e50f34167 | |||
| 121c4b73ab | |||
| 6ee7e51b40 | |||
| 465c9ed9ae | |||
| 1fd1f3a7b2 | |||
| b3dbc78b8c | |||
| b930545ae7 | |||
| 182df5db2d | |||
| f3fce00218 | |||
| a3d2b68abd | |||
| f3a2d7f6a4 | |||
| 02da9dd0a3 | |||
| 451a05d951 | |||
| 0748ba0aa5 | |||
| db04a13bbe | |||
| 797b6f428c | |||
| 92bd444ac2 | |||
| 8cf43a9596 | |||
| d673c88159 | |||
| ee24127381 | |||
| df0e2ac4de | |||
| 48c9c21708 | |||
| 2857f3efe9 | |||
| b4a879621e | |||
| 4935dfa45e | |||
| f97577ae76 | |||
| 2ff21308f9 | |||
| e33a0d9a09 | |||
| 4762baa11a | |||
| fc714fc288 | |||
| b6ea1ab479 | |||
| 9e5a922ca3 | |||
| 25f5036c35 | |||
| 7506b322a5 | |||
| 87134d99e7 | |||
| 9505a1f520 | |||
| 9be37f7979 | |||
| de9e60bc03 | |||
| 152283b769 | |||
| 1b587dcbff | |||
| 2b9dd64bb3 | |||
| 0e5206ea7d | |||
| de1fea75f4 | |||
| e9bb00fec3 | |||
| cfdd3c2889 | |||
| 1eeae26719 | |||
| 043948990c | |||
| 91391a46b5 | |||
| 33bbe5ea8f | |||
| f6a0ef0cc2 | |||
| fe3eb0db7d | |||
| 2f49eb5aaf | |||
| 2a7f21124f | |||
| e5a40f1045 | |||
| 48d766e308 | |||
| 1a694d14f5 | |||
| 996775f16d | |||
| fc58297eb0 | |||
| dba2097cdd | |||
| 3b0f6ea0ac | |||
| 68595e2d22 | |||
| 5285c52084 | |||
| f00fd6eaef | |||
| 6b370c9c67 | |||
| 231d06c48d | |||
| 8c6bb314c5 | |||
| fe34c10de2 | |||
| 1846da7c5a | |||
| 83dda85a6a | |||
| 9feef46dae | |||
| c88832d960 | |||
| d1827e1835 | |||
| 30bab73c03 | |||
| 35d668ad31 | |||
| 1053948bed | |||
| 686c7e2f21 | |||
| 3f47c89846 | |||
| c834a47f32 | |||
| d99b03660b | |||
| 4807a7330c | |||
| 1e73667155 | |||
| 42c3227864 | |||
| 6532706da0 | |||
| f738943493 | |||
| 9a5dbf345e | |||
| e5f921e186 | |||
| c6c0345b36 | |||
| 1114003d93 | |||
| a34ecabee0 | |||
| ef8ffdda04 | |||
| 0f53a33401 | |||
| 6373b83c39 | |||
| f7ca612817 | |||
| c06f591878 | |||
| 72c6875a80 | |||
| 6c193b7cbe | |||
| 20603ada50 | |||
| 4e3745922e | |||
| 298d28940b | |||
| 4f54a7e982 | |||
| c9e5cc23ff | |||
| a314130ca6 | |||
| 9fcd92d297 | |||
| 4212f96ebc | |||
| e51ac78a93 | |||
| 0537a49be6 | |||
| a1016d0a8e | |||
| bb265f6c41 | |||
| c62d326a7a | |||
| f71fd34887 | |||
| 41efaa9fd8 | |||
| 590c7388cb | |||
| db03b6173e | |||
| 3e134cbb0a | |||
| a6b8d8ff35 | |||
| ba8cf14b9b | |||
| af0b379650 | |||
| 6a44b8c3e5 | |||
| 0390c6c64f | |||
| 7c9ea959f4 | |||
| 974454764f | |||
| 4faaf63e82 | |||
| 63635918f7 | |||
| ace157556b | |||
| ef7344d586 | |||
| 8d68e6fa19 | |||
| a3b32fdedb | |||
| c29ad02587 | |||
| 545c641fe8 | |||
| a962ad2877 | |||
| 628abf114c | |||
| ea2b4a1698 | |||
| d9098e44e3 | |||
| 08e5ee49d1 | |||
| 9b47129ad7 | |||
| b6bed50471 | |||
| c48ab26b0e | |||
| 97c561715a | |||
| 803a67d4c7 | |||
| 697eb2c3e4 | |||
| d3ca3fb0c4 | |||
| 31c15ebb93 | |||
| 2126961b4b | |||
| e50f9f92a4 | |||
| cd1889ce93 | |||
| b58fb7e859 | |||
| 38607d32ce | |||
| 003de86893 | |||
| f4b75de32e | |||
| 3c60bf826d | |||
| 0910bdfd81 | |||
| f3d578f2ec | |||
| 34e54c958b | |||
| ed9e2ccd64 | |||
| f33a2c0d06 | |||
| c4adb49bbb | |||
| 5c8e1da371 | |||
| 1d03d16fcb | |||
| 0848c29f5e | |||
| 013c376c91 | |||
| 313113cfbf | |||
| 0bc77f25f9 | |||
| 3fa0b692ce | |||
| a7fbab3cb9 | |||
| 078e26b128 | |||
| ab7c44f251 | |||
| 45ec1c7c51 | |||
| fe77be7070 | |||
| af598b644f | |||
| 691a5ef783 | |||
| 54c7b1f322 | |||
| f53a8e204d | |||
| 4ba5134d52 | |||
| 25684239fa | |||
| fc3f121cf7 | |||
| 4b3d9c126e | |||
| 61ebb53352 | |||
| b31f629d43 | |||
| 7c3fb9ee6b | |||
| 8c8938a88d | |||
| d4c9f5432a | |||
| 78ce3ffe4f | |||
| 57ec52f274 | |||
| 271a62162d | |||
| 765fc3bde1 | |||
| 9aed223b17 | |||
| 6ee4cf1ab5 | |||
| 38d5833c5b | |||
| 1c1b90a801 | |||
| 9dc8f5fce1 | |||
| 1db0cc7dcd | |||
| 262e2b2ca6 | |||
| 4154d3ff5e | |||
| ac79932314 | |||
| 45dd5b37f4 | |||
| b30ff15c65 | |||
| 6012a6e473 | |||
| a138c0efb2 | |||
| bffba7fc75 | |||
| a3807a8d0a | |||
| 1adfad22f5 | |||
| 30dbdaa750 | |||
| 40d234d182 | |||
| c81b7595ab | |||
| 31aaee7652 | |||
| 745dbfcfe0 | |||
| 198abda16c | |||
| 4ae3b7071b | |||
| 078915c8bd | |||
| 601eb71ba7 | |||
| 78d7291dcb | |||
| 1c993b2b24 | |||
| 38f4a154f3 | |||
| 05f5cfe02b | |||
| c97cfd7a32 | |||
| 30af83b7e3 | |||
| 06630b734d | |||
| c17fc7053d | |||
| d57fda84df | |||
| 9ea2326637 | |||
| 4e26a3d494 | |||
| 21eb4e5b5d | |||
| f5b302c007 | |||
| 9a804de95b | |||
| b2007fb08f | |||
| 85e36fda8d | |||
| 7ef365b991 | |||
| 78463e7d1d | |||
| 198e1c0dd1 | |||
| 909fda772b | |||
| 18bbcb6dbe | |||
| a4152ff15f | |||
| 8eccfa7a33 | |||
| f5a7d5e78b | |||
| 8e59f0c60e | |||
| ed22d43bd2 | |||
| dbddfa8376 | |||
| 4e575921a1 | |||
| e1dd8acd72 | |||
| 32495af164 | |||
| b171bb498f | |||
| 1827f1d59b | |||
| 401a8f7f97 | |||
| 11e6da7c3d | |||
| 8953f00c1f | |||
| 622dd2e02e | |||
| ff8d65b110 | |||
| c57310b809 | |||
| 5f22c1acde | |||
| 2c06dbc9d7 | |||
| a8079fc9d0 | |||
| e7595588d0 | |||
| bf66d7d2df | |||
| c42713b0de | |||
| 2b3e89ab01 | |||
| f7a0338e6c | |||
| 6c1273b311 | |||
| fd5d2342e0 | |||
| 21b8a31aec | |||
| 73ccaa0cf5 | |||
| c0d8bf3330 | |||
| 9d8854164f | |||
| 4badd8fbd1 | |||
| c592701f91 | |||
| 74c38ca2b5 | |||
| e70055008b | |||
| 7369f15b40 | |||
| 0a9cf5420e | |||
| bc90935c77 | |||
| 5c53931125 | |||
| d430eeb58e | |||
| c65b46f966 | |||
| d1b7ac4e40 | |||
| 48c6df3558 | |||
| da44d389ab | |||
| 738cbdabc6 | |||
| 1d5742dbcf | |||
| f584c1f321 | |||
| 5a78c38632 | |||
| f49f6ed4dd | |||
| d6de099c2a | |||
| 72ce893ad4 | |||
| 329ce537ee | |||
| 429d6137e6 | |||
| abf11b8e66 | |||
| 41ac3a1907 | |||
| b6baf5db33 | |||
| 91c49f0615 | |||
| 9d5b6e5a27 | |||
| 5d1487756f | |||
| 71dd4a775c | |||
| d1626291ef | |||
| ad693eebcb | |||
| b78db0393e | |||
| 6e256359c2 | |||
| 5d0d903809 | |||
| 94408ad5f3 | |||
| e310ad6fc2 | |||
| 944f0880a7 | |||
| f46486ebc4 | |||
| 25f0f2a069 | |||
| e03b664abf | |||
| 6fc5cb169b | |||
| a5dd4e6b77 | |||
| 206a2c62d6 | |||
| fdb256ddcb | |||
| 5757c1a50e | |||
| fe4c8b4a83 | |||
| a0fc4bb5e3 | |||
| c69121e001 | |||
| 0625c384a2 | |||
| 8004d10a65 | |||
| d4c9e0af27 | |||
| 0b0c06fa14 | |||
| e7e32993af | |||
| 9c71708529 | |||
| 1ed25f94a6 | |||
| 479e06e01e | |||
| a43388c2b6 | |||
| 93ed724447 | |||
| 154bbc0ca3 | |||
| 1654ced15d | |||
| 346b947794 | |||
| a8d421d3cc | |||
| 1efd22d161 | |||
| 98cd2c254e | |||
| 6b6933c1b9 | |||
| 6a2e196acf | |||
| 6a5677c335 | |||
| e679a6760b | |||
| abfdc9050d | |||
| bdf968e11a | |||
| acbcd3cdd3 | |||
| 1c4b21e129 | |||
| e265c08729 | |||
| 40f1ad1cfe | |||
| 46a65d553d | |||
| 72b530c149 | |||
| f0e14f7847 | |||
| de2e10619d | |||
| cf6da5b6d0 | |||
| dabbe786be | |||
| 76350e1319 | |||
| 49ee17db5d | |||
| fc4d4b8ec5 | |||
| bfb9b91467 | |||
| 8607d950b7 | |||
| e636820eba | |||
| f69fd6bf11 | |||
| 8ff913a2db | |||
| 4826668565 | |||
| 97eff14af2 | |||
| 37e52ffa2d | |||
| 4530ee5219 | |||
| e0b116a663 | |||
| 3c529c7ee1 | |||
| 5f6f296cac | |||
| eee6d3c8d1 | |||
| ae03d2e4e8 | |||
| e88ee5180b | |||
| a95f26b1c9 | |||
| d3fc59b08e | |||
| 6b982f7aae | |||
| 17b201793c | |||
| 82a65df46c | |||
| 2cdfbe6530 | |||
| 5f6e18d6a7 | |||
| f87bee6382 | |||
| 0fc6e26be4 | |||
| a62cb8de7a | |||
| 8c59e918b7 | |||
| 2134f91309 | |||
| 6c1df13565 | |||
| 66a4fb57d4 | |||
| 424520d2cf | |||
| 54c2296dae | |||
| edaec98025 | |||
| 898ff7855d | |||
| 9db31d4032 | |||
| 996381ec47 | |||
| 161624723c | |||
| 3109c877aa | |||
| bc0465ebfe | |||
| 69dc0cfe91 | |||
| fd5c1f778f | |||
| 404a5df740 | |||
| 7a7c5bebaa | |||
| a52dd18f85 | |||
| ae29de76d4 | |||
| bd7520b12d | |||
| 65383f4355 | |||
| 7ecabaeae3 | |||
| 5d2dc222f2 | |||
| bdc18debdc | |||
| 67ea00419a | |||
| d3fc895063 | |||
| aca2a5061d | |||
| 6267898f3e | |||
| 6623b10a16 | |||
| 3e0b0f2e18 | |||
| 13f99d6bc1 | |||
| ca069a7c88 | |||
| 07ccc74036 | |||
| 3d3c59be40 | |||
| 22921c1b1f | |||
| b6c75bf985 | |||
| a47df87139 | |||
| 99b6f2ea38 | |||
| 612c52c7a3 | |||
| c8bc986778 | |||
| 5f8bf556e1 | |||
| 41bdfc3b29 | |||
| e65c17e2e1 | |||
| 8bdd8cb5a5 | |||
| 2487621092 | |||
| 545d087a99 | |||
| 9422a9ffd1 | |||
| decce0d11f | |||
| 050846cd02 | |||
| fa9cf506e7 | |||
| 5dcddc4404 | |||
| d223da8a26 | |||
| 356c492c49 | |||
| 8364783817 | |||
| 43749211fe | |||
| dc19350c70 | |||
| f21bbdadf5 | |||
| 731b77f206 | |||
| bd6979e842 | |||
| a50455c225 | |||
| 4b2da6f3d0 | |||
| ca7f59a473 | |||
| 5298931dd8 | |||
| 08fbbff0f6 | |||
| 8a0ebfdab7 | |||
| 0d05df5237 | |||
| 762e6c7050 | |||
| f8194daa68 | |||
| b30301ecfe | |||
| dbd9932635 | |||
| 6c8c7f36a3 | |||
| f6ae3f8844 | |||
| 8dac61a435 | |||
| 6e70facb1e | |||
| 35ce9949d9 | |||
| 8b42fad320 | |||
| 242f66ed6c | |||
| 88da136dda | |||
| c916651eb4 | |||
| 326a981c0a | |||
| 6990888040 | |||
| 4efd5e60f6 | |||
| 3c0309a98d | |||
| 93cb84f67c | |||
| 1113088f1a | |||
| 1d70016ef8 | |||
| ea02baae7b | |||
| ddd6b8876f | |||
| a73a12c898 | |||
| 02227c7696 | |||
| 5f272b56e7 | |||
| 950ba7c702 | |||
| b38f4fce10 | |||
| 4bf143993b | |||
| 00933ef23b | |||
| 58872ce250 | |||
| e382a3ac95 | |||
| 7e2eb48cea | |||
| b0e527ec87 | |||
| 6feeafa7bc | |||
| 66686bd310 | |||
| a38b5ad538 | |||
| ea1ecd25ab | |||
| 6499bc6a29 | |||
| 379fc66e8b | |||
| 9109d9a8a3 | |||
| 6f7cc9ba88 | |||
| 53741c5c48 | |||
| 383c2ef7c0 | |||
| 8c8d89a763 | |||
| 055ab13080 | |||
| ee918eb576 | |||
| 443e9cdcd6 | |||
| deafe60ff4 | |||
| 0ab55be3d0 | |||
| 1b690bb64a | |||
| ceb75b7a7a | |||
| c9648673fd | |||
| 979eacdaf5 | |||
| 44375e1dd5 | |||
| be917865c3 | |||
| f24d4495a2 | |||
| d7969a5272 | |||
| 34f6b6b058 | |||
| 1c7c7573be | |||
| bb7f0d9261 | |||
| bc6445b8ad | |||
| 7eb7de369e | |||
| 4d47acdbfd | |||
| ec754b69c1 | |||
| f56080324a | |||
| 1393a4c509 | |||
| db1f1aa3f8 | |||
| acad82bd3d | |||
| d3b4892bb8 | |||
| 97f46cef5c | |||
| 356f52c0f7 | |||
| 364bf0f605 | |||
| 4f4fdccf3b | |||
| 38692b1b4b | |||
| 054160a74a | |||
| d7865be511 | |||
| ad2b35ac0f | |||
| 30f6fc4cb3 | |||
| 5d4c820ce3 | |||
| 3f01c4d60c | |||
| 03d541bc7f | |||
| 3e6ca38667 | |||
| 30eb0d1460 | |||
| 4cd3df56c0 | |||
| 1ee84a198a | |||
| fb5c4c7214 | |||
| b930f9a2fc | |||
| 704918754c | |||
| a456bccf38 | |||
| 38abf2ef7f | |||
| 893ecd68e9 | |||
| b70036ed0f | |||
| 8b06a451dd | |||
| a7c177bbe3 | |||
| 91ada621e6 | |||
| 9d6801b271 | |||
| 7bda74183a | |||
| 27a993751a | |||
| 5f34265ded | |||
| b7a7d63223 | |||
| 675ef5b54d | |||
| b5a8e0245f | |||
| fa49ef8cfa | |||
| db0c18dd1e | |||
| a7e3aa01b7 | |||
| 184dedf72a | |||
| 82e437d366 | |||
| ee4860fd6c | |||
| 32cad72182 | |||
| d313bec95b | |||
| e4d352f1f2 | |||
| 541e253598 | |||
| 4307ca8ade | |||
| c60ea26271 | |||
| 8b741865c3 | |||
| 35a8c00214 | |||
| 607625bf91 | |||
| dc59ba4f5f | |||
| eddb406807 | |||
| 6b1e7807ce | |||
| 75ce361222 | |||
| c0f00df2c5 | |||
| 38c1ad2eb7 | |||
| 62d8a8343f | |||
| 357b1879e9 | |||
| b5fd4a816f | |||
| beb891a24b | |||
| dc7554e227 | |||
| f535167cf9 | |||
| e31b23ee8a | |||
| 7ebd0debd7 | |||
| 3cb4be0ad6 |
+1
-1
@@ -7,7 +7,7 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for Unreal3.2.3
|
||||
for Unreal3.2.10.7
|
||||
|
||||
This program will help you to compile your IRC server, and ask you
|
||||
questions regarding the compile-time settings of it during the process.
|
||||
|
||||
+149
-101
@@ -1,116 +1,164 @@
|
||||
Unreal3.2.10.7 Release Notes
|
||||
=============================
|
||||
|
||||
Unreal3.2.3 Release Notes
|
||||
==========================
|
||||
==[ UNREALIRCD 3.2.X IS DEPRECATED ]==
|
||||
You are currently viewing the release notes of UnrealIRCd 3.2.10.7.
|
||||
UnrealIRCd 3.2.* will no longer be supported after December 31, 2016.
|
||||
You should upgrade to UnrealIRCd 4 before that date.
|
||||
See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, make sure you run 'make clean' and './Config'
|
||||
first before doing 'make'
|
||||
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIrcd/faq/
|
||||
- If you are upgrading on *NIX, then make sure you run 'make clean' and
|
||||
'./Config' first, before running 'make'.
|
||||
- The official UnrealIRCd 3.2.x documentation is available online at
|
||||
https://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
FAQ: https://www.vulnscan.org/UnrealIRCd/faq/
|
||||
Read them before asking for help.
|
||||
- Report bugs at http://bugs.unrealircd.org/
|
||||
- When upgrading a network, we assume you are upgrading from the previous
|
||||
version (3.2.2). If you got a net running with servers that are several
|
||||
versions behind (eg: 3.2.1) then you might experience (desynch) problems.
|
||||
Also, if you try to use the new features, some might not work properly
|
||||
until all your servers are upgraded. It is therefore recommended to
|
||||
upgrade all servers in a 'short' time span (x day[s], not weeks).
|
||||
- Report bugs at https://bugs.unrealircd.org/
|
||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a
|
||||
SUMMARY of the changes in this release. See the file 'Changes' for a
|
||||
complete list of all changes.
|
||||
|
||||
==[ .7 RELEASE ]==
|
||||
The following issue was fixed in 3.2.10.7:
|
||||
- Fix SASL EXTERNAL security issue
|
||||
|
||||
==[ .6 RELEASE ]==
|
||||
The following has been addressed in 3.2.10.6:
|
||||
- Add notes regarding deprecation of 3.2.x series
|
||||
- Build with latest OpenSSL to fix crash issue (Windows)
|
||||
- Don't show vcredist dialog if installed (Windows installer)
|
||||
|
||||
==[ .5 RELEASE ]==
|
||||
The following issues have been fixed in 3.2.10.5:
|
||||
- Crash when SASL is enabled (set::sasl-server)
|
||||
- A compile problem with LibreSSL
|
||||
|
||||
==[ .4 RELEASE ]==
|
||||
Two major issues were fixed:
|
||||
- Compile problems when using clang instead of gcc (such as on FreeBSD & OS X)
|
||||
- For services who allow you to log in by account name but still allow you to
|
||||
use a different nick: when you're logged in you are now considered
|
||||
registered as far as mode +M and +R are concerned.
|
||||
Tech: whenever services set SVID and it's not * and does not start with a
|
||||
number, then we consider this user to be 'logged in'.
|
||||
Whenever a user is set +r (s)he is also considered 'logged in'.
|
||||
This way it's compatible with both older and new services and doesn't
|
||||
(or shouldn't) introduce security issues with older services using
|
||||
servicetimestamp for nick tracking or other means.
|
||||
Additionally:
|
||||
- curl-ca-bundle.crt has been updated to use latest certificates
|
||||
- The Windows libraries (OpenSSL, curl, ..) have been updated.
|
||||
|
||||
==[ .3 RELEASE ]==
|
||||
The following issues have been fixed in 3.2.10.3:
|
||||
- Crash when SASL is enabled and ping-cookie is disabled
|
||||
- Compile issue with remote include
|
||||
- OS X compile problems
|
||||
- ./unreal backtrace not always working well
|
||||
Changes:
|
||||
- For silenced users we now only check the current nick!user@host
|
||||
- Server to server links now use latest TLS (eg: v1.2) instead of SSLv3
|
||||
New:
|
||||
- Added set::spamfilter::stop-on-first-match (default yes). You can change
|
||||
this to 'no' to have UnrealIRCd continue processing all spamfilters even
|
||||
after the first match. The spamfilter with the 'gravest action' wins
|
||||
(eg: gzline wins from block).
|
||||
|
||||
==[ .2 RELEASE ]==
|
||||
The following major issues were present in 3.2.10 & 3.2.10.1 and have
|
||||
been fixed in this version:
|
||||
- A remote crash issue when compiled with SSL (NULL pointer dereference)
|
||||
- A second issue that can potentially lead to a crash (read-after-free)
|
||||
|
||||
In addition to these 3.2.10.x fixes there were also some other bugs fixed,
|
||||
mostly in the area of server linking and flood hardening.
|
||||
|
||||
The external libraries of the Windows version have been updated (openssl,
|
||||
c-ares, zlib). The bundled c-ares source (for *NIX) has been updated too.
|
||||
|
||||
==[ .1 RELEASE ]==
|
||||
The following bugs in version 3.2.10 were fixed in this 3.2.10.1 release:
|
||||
- Windows only: outgoing connects from Windows caused severe linking issues,
|
||||
including killing of (ghost) users on the Windows server.
|
||||
- An issue where user modes were stripped from remote clients, this caused
|
||||
a problem for Anope BotServ bots.
|
||||
- A compile problem on OpenBSD.
|
||||
- '/REHASH -global' did not rehash all servers.
|
||||
- Some documentation updates.
|
||||
|
||||
==[ 3.2.10 RELEASE ]==
|
||||
Below is a summary of all changes with respect to 3.2.9:
|
||||
|
||||
==[ NEW ]==
|
||||
- Channel mode +I (invex, invite exceptions). Users on this list can join +i channels
|
||||
without needing an /invite.
|
||||
- Channel mode +j (jointhrottle). If you set +j X:Y you limit each user (individually)
|
||||
to X joins per Y seconds to the channel.
|
||||
- Nick Character System: this allows you to choose which additional characters to
|
||||
allow in nicknames by language (and codepage). Currently available are:
|
||||
catalan, dutch, french, german, swiss-german, icelandic, italian, spanish,
|
||||
swedish, hungarian, polish, romanian, slovak, czech, greek, turkish, russian,
|
||||
hebrew and chinese. There are also several 'groups' available, for more info see:
|
||||
http://www.vulnscan.org/UnrealIrcd/unreal32docs.html#feature_nickchars
|
||||
- *NIX: ./Config -advanced, allows you to choose more options
|
||||
- tld::botmotd and tld::opermotd
|
||||
- Using /INVITE with no parameters will a list of channels you are invited to
|
||||
but have not yet joined.
|
||||
- set::gline-address, works just like set::kline-address but then for glines.
|
||||
- Added a basic regex tutorial in unreal32docs.html
|
||||
- /SAJOIN now supports multiple channels (and '0') again.
|
||||
- Spamfilter topic support ('t' in spamfilter, 'topic' in conf).
|
||||
- Added a feature to +b/+e ~c: ~c:[prefix]<#channel>. This can be used if you for
|
||||
example trust all ops of #leet: mode #x +e ~c:@#leet.
|
||||
- Various translated documents in doc/: unreal32docs.gr.html (Greek), help.fr.conf
|
||||
and example.fr.conf (French), help.de.conf & example.de.conf (German), and
|
||||
example.hu.conf (Hungarian).
|
||||
- Improved socket engine. This brings some performance improvements and
|
||||
also makes it easier to configure a system to hold more than 1024
|
||||
clients (no more editing of header files on Linux!).
|
||||
- ESVID support: services can communicate the account name of the user
|
||||
back to the IRCd. This only works on ESVID-capable services:
|
||||
- Extban ~a:<accountname>: matches users who are logged in to services
|
||||
with that account name.
|
||||
- Show account name in /WHOIS
|
||||
- CAP support: this enables clients to enable certain features more easily.
|
||||
Can be disabled through set::options::disable-cap.
|
||||
- Now that STARTTLS is advertised in CAP it is likely to be used more often.
|
||||
- away-notify: informs clients of AWAY state changes of users on the same
|
||||
channels, for clients that support this.
|
||||
- account-notify: similar to away-notify, inform clients of changes in the
|
||||
login status and account name used by other clients on the same channels.
|
||||
- SASL support. To use this, and if your services support this, you point
|
||||
set::sasl-server to your services server.
|
||||
- Server-side MLOCK support: the IRCd will prevent channel mode changes
|
||||
depending on the MLOCK setting in services. Requires special support
|
||||
from services for this feature.
|
||||
- User Mode +I (IRCOp only): hide idle time
|
||||
- auth-method 'sslclientcertfp': authenticate users using an SSL client
|
||||
certificate by the SHA256 fingerprint of that certificate.
|
||||
The documentation has a new section (3.19) called 'Authentication Types'
|
||||
which contains an (improved) example of how to use SSL client certificate
|
||||
authentication instead of regular passwords.
|
||||
- oper::require-modes: an optional setting, which can be used to require
|
||||
users to have certain user modes (such as 'z') before they can /OPER up.
|
||||
- allow/deny channel: you can now optionally specify a class here as an
|
||||
extra filter.
|
||||
- doc/example.es.conf: Spanish translation of example configuration file.
|
||||
- There have also been some behavior changes, which can be considered NEW,
|
||||
see next section (CHANGED).
|
||||
|
||||
==[ CHANGED ]==
|
||||
- Updated auspice.conf
|
||||
- The usual doc updates, help.conf, spamfilter.conf, dccallow.conf, etc.
|
||||
- The config parser got (mostly) recoded. This makes it rehash much faster,
|
||||
additionally "duplicate item" checking is now available.
|
||||
- Added a 'B' flag to /who output for bots. Also normal users can now /who +m B.
|
||||
- Support in configfiles for \\ (= a \)
|
||||
- set::dns::bind::ip, hardly useful for anyone
|
||||
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is
|
||||
in use, then a part/join is not sent in order to prevent flooding.
|
||||
- OperOverride INVITE notices are now sent out globally to all +s +e users.
|
||||
- User mode 'g' is now operonly, it hardly did anything for non-opers.
|
||||
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands.
|
||||
- Modulized a lot of commands (~5000 lines of code).
|
||||
- Made channel modes +c/+S deal with RGB color codes.
|
||||
- If no log { } block is present, then a warning will be printed and we will log
|
||||
by default to ircd.log (errors only).
|
||||
- If an invalid character is found in a nick then the whole nick is rejected now.
|
||||
- Changed numeric&text of 'is a Secure Connection' to 'is using a Secure Connection',
|
||||
client coders are encouraged to add support for this new numeric 671. Until then,
|
||||
in-window-/whois's will probably be broken.
|
||||
- A locops with can_override/can_gkline/can_gzline is now automatically converted
|
||||
to a globop, just like we do with can_globalroute/can_gkline. These privileges
|
||||
are GLOBAL and therefore are not meant to be granted to locops.
|
||||
- A warning is now sent to an oper if (s)he tries to use /(G)ZLINE on a host.
|
||||
(G)ZLINES should be placed on *@ipmasks because they are processed before any
|
||||
ident and host lookups.
|
||||
- Made (fast) badwords work better with word boundaries, in practice this means
|
||||
blocking of words with accents/umlauts/es-zett/etc now works properly.
|
||||
- Made it so halfops can now -h themselves and chanadmins can -a themselves.
|
||||
- Made spamfilter 'u' also check nickchanges.
|
||||
- Anti-spoof protection (ping cookies) can now be enabled/disabled at
|
||||
run-time through set::ping-cookie [yes|no]. The default is 'yes' (enabled).
|
||||
- A quit with 'Ping timeout' now shows the number of seconds since the ping.
|
||||
- Print out a warning if we can't write to a log file.
|
||||
- Refuse to boot if we can't write to ANY log file.
|
||||
- Windows: if an SSL certificate exists, then uncheck the 'generate SSL
|
||||
certificate' checkbox by default.
|
||||
- *NIX with SSL: We now ask in ./Config if you want to generate an SSL
|
||||
certificate. The certificate is then copied when you run 'make install'.
|
||||
|
||||
==[ MAJOR BUGS FIXED ]==
|
||||
- Serious crashbug [this is the same fix that was fixed by the hotfix/3.2.2b]
|
||||
- TRE mem corruption- & crash-bugs (eg: in backreferences).
|
||||
- Windows SSL crash (this issue was already fixed in 3.2.9-SSL-fix)
|
||||
- Other than that, none?
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- Made kline/shun/zline/gzline without parameters report the correct stats(flag).
|
||||
- Made a few more errors send out to all opers, such as link::bind-ip problems.
|
||||
- A few missing operflags in /STATS O (and SVSO)
|
||||
- DCC Spamfilter was not always working correctly
|
||||
- OperOverriding to, for example, a +zi channel did not print the special join notice.
|
||||
- Servers behind ulines were not properly ulined, one effect that had was causing
|
||||
an odd view in /MAP if you had flat-map + hide ulines + a juped server in services.
|
||||
- Made SVSMODE -b/-e remove bans/excepts placed on IPs
|
||||
- The set::htm::incoming-rate config item was not working correctly
|
||||
- If a user was +R then remote server notices were accidently also filtered.
|
||||
- A locop setting MODE #CHAN +O caused a desynch
|
||||
- Resolver sometimes incorrectly aliased names, causing incorect TTLs etc.
|
||||
- Fixed SVSNOOP not removing ALL oper status properly.
|
||||
- 'shun' target was not working for spamfilter and ban version { }
|
||||
- Removing of shuns placed on IP's did not take effect immediately (had to reconnect).
|
||||
- Fixed a bug in mode skipping (eg: '+qk a b' if not +q) and error msgs.
|
||||
- Chanmode +f #t (per-user text limit) now no longer affects halfops.
|
||||
- Opers w/can_override can now +qa/-qa if they are not netadmins, also affected +L/+u.
|
||||
Be sure you upgrade all servers to 3.2.3 if using these new abilities, or else you
|
||||
will get desynch issues.
|
||||
- Fixed several /SAMODE bugs as well, regarding non-netadmins, being halfop'ed, etc.
|
||||
- /GZLINE [nick] was placing a *line on *@host instead of *@IP, fixed.
|
||||
- alias::format in combination with ::type 'command' caused a crash
|
||||
- zlib upgraded to 1.2.2, curl upgraded to 7.13.1, both fix various issues.
|
||||
- Win32 installer now also installs doc\technical\*.*
|
||||
- Desynch issues regarding +s/+p and +c/+S
|
||||
- /SAMODE causing a 'fishy timestamp' if a cmode with a digit parameter was used.
|
||||
- Various compile problems, in particular with remote includes enabled.
|
||||
- Windows: the installer sometimes insisted that the Visual C++ 2008
|
||||
redistributable package was not installed, when it actually was there.
|
||||
- Windows: MOTD file date/time was always showing up as 1/1/1970.
|
||||
- And more... see Changelog
|
||||
|
||||
==[ REMOVED ]==
|
||||
- NAZIISH_CHBAN_HANDLING (did not work at all)
|
||||
- The 'oldcloak' cloaking module is now removed, since this old algorithm got broken
|
||||
8 months ago, nobody should be using it anymore.
|
||||
==[ REMOVED / DROPPED ]==
|
||||
- Windows 9X is no longer supported
|
||||
- The networks/ directory has been removed
|
||||
|
||||
==[ KNOWN ISSUES ]==
|
||||
- Regexes: Be careful with backreferences (\1, etc), certain regexes can
|
||||
slow the IRCd down considerably and even bring it to a near-halt.
|
||||
In the spamfilter user target it's usually safe though.
|
||||
Slow spamfilter detection can help prevent the slowdown/freeze, but
|
||||
might not work in worst-case scenario's.
|
||||
- Regexes: Possessive quantifiers such as, for example, "++" (not to be
|
||||
confused with "+") are not safe to use, they can easily freeze the IRCd.
|
||||
|
||||
==[ ADDITIONAL INFO ]==
|
||||
* See Changelog for more details
|
||||
- See Changelog for more details
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
ircdcron/ircd.cron
|
||||
ircdcron/ircdchk
|
||||
src/modules/Makefile
|
||||
src/ssl.rnd
|
||||
src/win32/devel/StackTrace.lib
|
||||
src/win32/gnu_regex.lib
|
||||
@@ -0,0 +1,16 @@
|
||||
[repository]
|
||||
native = LF
|
||||
|
||||
[patterns]
|
||||
.RELEASE.NOTES = native
|
||||
README = native
|
||||
Unreal.nfo = native
|
||||
makefile.win32 = native
|
||||
Changes = native
|
||||
**.c = native
|
||||
**.h = native
|
||||
**.conf = native
|
||||
**.html = native
|
||||
**.txt = native
|
||||
**.bat = native
|
||||
**.iss = native
|
||||
@@ -0,0 +1,35 @@
|
||||
syntax: regexp
|
||||
|
||||
# particular targets
|
||||
^ircdcron/ircdchk$
|
||||
^ircdcron/ircd\.cron$
|
||||
^src/ircd$
|
||||
^src/include$
|
||||
^src/version\.c$
|
||||
^unreal$
|
||||
^server\.(cert|key|req)\.pem$
|
||||
|
||||
# extras archives and builds
|
||||
^extras/[^/]*\.(bak|tar)$
|
||||
^extras/[^/]*\d/
|
||||
^extras/(c-ares|regexp)/
|
||||
|
||||
# running unrealircd from the source directory
|
||||
^ircd\.(log|pid|tune)$
|
||||
^ssl\.rnd$
|
||||
|
||||
# General
|
||||
\.(o|so|orig|rej)$
|
||||
~$
|
||||
(^|/)core(\.\d+)?$
|
||||
|
||||
# autotools
|
||||
^aclocal\.m4$
|
||||
^autom4te\.cache/
|
||||
^config\.(status|log)$
|
||||
|
||||
# not quite autotools
|
||||
^config\.settings$
|
||||
^include/setup\.h$
|
||||
^Makefile$
|
||||
^src/modules/Makefile$
|
||||
@@ -1,861 +1,7 @@
|
||||
/*
|
||||
* UnrealIRCd Changes File - (C) Carsten Munk 1999-2005 &
|
||||
* The UnrealIRCd Team
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 1, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
[Unreal 3.2.1]
|
||||
- Replaced tre.dll/tre.lib, previous versions caused a crash (eg: if you included
|
||||
spamfilter.conf).
|
||||
- Fixed a problem when compiling with GUEST enabled. Reported by dvzion (#0001758)
|
||||
- Fixed a documentation typo reported by Konc
|
||||
- Fixed a little problem in ./unreal to move ircd.pid.bak to ircd.pid of starting failed.
|
||||
Fixed by fez (#0001739)
|
||||
- Made it so chg* command usage is not logged from U:lines. Reported by diskman1 (#0001718)
|
||||
- Changed int_to_base64() warning so it has less false positives (#0001797).
|
||||
- Fixed a bug where if set::ssl::options was empty, a crash could occur. Reported by
|
||||
spider312 (#0001799)
|
||||
- Include openssl/md5.h and openssl/ripemd.h if compiled w/SSL, this seems how it
|
||||
should be done and also makes unreal w/SSL able to compile on OpenBSD (3.5).
|
||||
- Added module support for Windows!
|
||||
To module coders:
|
||||
-Building your module on Windows is almost exactly the same as on *nix
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=thefile
|
||||
If you are reading this, then this means you have checked out the Mercurial
|
||||
repository. The change log is now generated from the Mercurial version
|
||||
history.
|
||||
|
||||
-Also, as I'm sure most module developers will begin distributing .dll files for their
|
||||
modules, it is important to note that just like the modules on *nix, the dlls will need
|
||||
to be recompiled each time a new version of Unreal is released. This is simply due to
|
||||
the potential for binary incompatibility which at this point can not be avoided.
|
||||
|
||||
-Most modules already do this, but it is now a requirement for Windows support. At the
|
||||
very minimum, the Mod_Test function must have the DLLFUNC specifier in order to work
|
||||
Unreal will automatically add DLLFUNC to the other functions, but it does not hurt if
|
||||
you use it for all of them.
|
||||
|
||||
NOTE: It is expected that there will probably be a few bugs to work out with this, so
|
||||
please consider testing it! And module coders, please report any problems you experience!
|
||||
- Modulized cloaking:
|
||||
- Currently there are 2 cloaking modules: 'cloak' and 'oldcloak'.
|
||||
- You MUST load at least 1 of them (like: loadmodule "src/modules/cloak.so";).
|
||||
- 'oldcloak' is just the <=3.2 cloaking algorithm.
|
||||
- 'cloak' is the new, recommended, and much more secure cloaking algorithm that uses
|
||||
md5 internally and requires 3 keys of 5-100 characters (10-20 is fine) consisting of
|
||||
mixed lowcase (a-z), upcase (A-Z) and digits (0-9) [eg: "AopAS6WQH2Os6hfosh4SFJHs"].
|
||||
- Note that 'oldcloak' is only ment for use during the upgrade process (it will give
|
||||
a warning if you use it), you should switch to the much more secure 'cloak' module
|
||||
as soon as all your servers are upgraded.
|
||||
- Module coders can code 3rd party cloak modules that use other algorithms or cloak
|
||||
in a different way (have a look at src/modules/cloak.c).
|
||||
- spamfilter: Added Bloodhound.Exploit.6 sig
|
||||
- Compile fixes for win32 modules with ssl/zip/curl
|
||||
- Changed 'Services operator' in /whois (back) to 'Services administrator', this was
|
||||
requested by many people and seems to be the best after all (#0001634).
|
||||
- Local opers can now also join +O (operonly) channels (#0001694).
|
||||
- Changed the way MSG/NOTICE <prefix>#chan works:
|
||||
- It now goes to <prefix> and higher, so '/notice +#chan hi!' goes to +vhoaq
|
||||
- You need at least voice in order to be able to msg/notice +#chan, %#chan or @#chan
|
||||
- You need at least ops in order to be able to msg/notice &#chan or ~#chan
|
||||
- Any multi-prefix targets will be converted automatically (eg: ~&@#chan to @#chan).
|
||||
- internal: use of the CHANOPPFX macro is now deprecated.
|
||||
All of this was done to make it a bit more 'safe' and userfriendly (#0001812).
|
||||
- Fixed a remote include bug that would cause unnecessary blocking
|
||||
- Fixed a /credits typo
|
||||
- Imported TRE 0.6.7 for win32
|
||||
- Imported TRE 0.6.7 for *nix and made use of tre_version to report the version of TRE
|
||||
in use at startup
|
||||
- Fixed a Win32 module bug
|
||||
- Added set::spamfilter::virus-help-channel-deny. This allows you to block any
|
||||
normal joins to the virus-help-channel. This way you could prevent users into
|
||||
accidental (or tricked) joining of the virus-help-channel and becomming infected.
|
||||
This feature is disabled by default. Requested by bleepy (#0001811).
|
||||
- German doc updates (week 20).
|
||||
- Added optional parameter to SVSJOIN to deal with channel keys. Reported by
|
||||
DukePyrolator (#0001822).
|
||||
- Added zlib+SSL version check on boot to make sure the runtime version is the same
|
||||
as the 'compiled for' (header) version. If they mismatch, UnrealIRCd could crash,
|
||||
so a big warning is posted if it happends.
|
||||
- Improved the above: made it work on windows and also added a check for curl.
|
||||
- spamfilter.conf: Added yet another sig for a site that causes Backdoor.Delf.lq
|
||||
infection (reported by nexus), also changed LOI trojan and Bloodhound.Exploit.6
|
||||
action to gline.
|
||||
- Fixed a win32 module bug that broke strcasecmp/stricmp
|
||||
- German doc updates (week 21)
|
||||
- Fixed a permanent modules bug: custom allow/except/ban/deny types were lost
|
||||
after /rehash. Reported by AngryWolf (#0001837).
|
||||
- Fixed a problem with NICK collisions not using NICKv2 (#0001773) reported by thilo
|
||||
- Added NICKIP (#0000605 & #0001376)
|
||||
- Compile warning cleanups
|
||||
- Added release notes (no, we won't release 3.2.1 anytime soon.. just updating ;p).
|
||||
- Added various extra messages to make it a bit more easier for people who are
|
||||
upgrading (win32 commands.dll, cloaking mod).
|
||||
- Made win32 ssl<->non-ssl modules binary compatible.
|
||||
- Added ssl/non-ssl check in Mod_Version on *NIX.
|
||||
- Added set::options::flat-map: This makes all servers look like they are linked
|
||||
directly to the server you are on (/map, /links), thus you cannot see which server
|
||||
is linked to which ("hopcount"). This can make it a bit harder for kiddies to find
|
||||
any 'weak spots' (which server to attack/[D]DoS). Obviously opers will always
|
||||
see the real map.
|
||||
- unreal32docs.html: added flat-map and set::restrict-usermodes "s"; security tips.
|
||||
- Fixed a compile error regarding AF_MAX (#0001839) reported by Rocko
|
||||
- Imported TRE 0.6.8 for *nix
|
||||
- Added NICKIP to doc/technical/protoctl.txt
|
||||
- Imported TRE 0.6.8 for windows
|
||||
- Redid the win32 version to use a dynamically linked libc. This solves memory issues
|
||||
arising from the fact that dlls do not share the same heap as the exe. As a side effect,
|
||||
however, there is now a dependency on msvcr70d.dll. This DLL does not come with any
|
||||
versions of Windows except 2003. It also comes with any .NET application and the .NET
|
||||
framework. Unreal will automatically download th DLL if it is needed. Reported by Bugz
|
||||
(#0001833)
|
||||
- Fixed some other win32 crashes due to modulizing: WHOWAS, STATS [some], SVSMOTD.
|
||||
All caused by missing "MODVAR"s. Reported by Troco (#0001841).
|
||||
- Fixed SSL problem caused by a fix of 2 days ago. Reported by Fury (#0001842).
|
||||
- And one more.
|
||||
- Made socket errors correctly reported under Win32. Thanks to Microsoft for deciding
|
||||
that having a way to get a socket error string was unnecessary.
|
||||
- Fixed a NICKIP bug regarding passing along IPs (#0001846) reported by Troco
|
||||
- And another one, should be fixed now.
|
||||
- Added snomask +S to the documentation (#0001835) reported by medice.
|
||||
- Made a bunch of TKL parameters case insensitive (#0001766) reported by medice.
|
||||
- Made Unreal create the tmp/ dir at startup, rather than configure (#0001824) suggested by
|
||||
LinDevel
|
||||
- Added /dns c to clear the DNS cache (#0001852) suggested by samson.
|
||||
- Seems I forgot to del_Command() SPAMFILTER and TEMPSHUN.
|
||||
- Made the win32 socket error reporting also handle regular system errors (#0001851)
|
||||
reported by Troco
|
||||
- Added a doc/translations.txt which describes the (current) translation process
|
||||
and requirements a bit.
|
||||
- Fixed a synch bug, reported by Troco (#0001857).
|
||||
- Split up the /who oper and user help messages
|
||||
- Added /who +i (search by IP) and /who +I (show IP), oper only.
|
||||
- Made it so /who +m doesn't default to /who if a user uses modes they aren't allowed to
|
||||
use (#0001858) reported by Bugz
|
||||
- Added a couple donators to /credits
|
||||
- Module coders: if CmdoverrideAdd() is called for an override that is already in place, it
|
||||
now sets MODERR_EXISTS as errorcode and returns NULL (previously it added duplicates).
|
||||
In the past module coders had many issues with PERM mods... you had to use weird tricks,
|
||||
but now you can (and should!) just override on INIT and on HOOKTYPE_REHASH_COMPLETE.
|
||||
- Moved register_user declaration to h.h, updated call in m_pingpong.c (due new 'ip' field).
|
||||
- Usermode +v ('receive dcc send rejection notices') is oper-only now for privacy reasons.
|
||||
- Added dcc allow { }, which allows one to make exceptions over deny dcc { }.
|
||||
- Added deny dcc::soft and allow dcc::soft item, if set to 'yes' it allows someone
|
||||
to explicitly override it per-person via /DCCALLOW (see next).
|
||||
- Added DCCALLOW system, taken directly from bahamut.
|
||||
With this system you can block certain (or all) DCC SENDs and then allow the user to
|
||||
'override' this limit for every user he/she trusts via '/DCCALLOW +User'.
|
||||
This is an attempt to stop (or at least limit) the spreading of viruses/etc.
|
||||
See '/DCCALLOW HELP' for more info.
|
||||
- Added example dccallow.conf which filters everything except some known
|
||||
'safe types' (jpg, jpeg, png, gif, etc). Note that the purpose of this file
|
||||
is NOT to get a complete list, rather to limit it to a few 'known safe' entries.
|
||||
- Added set::maxdccallow: max number of entries of the DCCALLOW list (default: 10).
|
||||
- Various (non-critical) fixes for dccallow reported by Rocko (incorrect nick in deny msg,
|
||||
added set::maxdccallow in docs, added bmp/vob/log/ to dccallow.conf).
|
||||
- Made extbans desynchs a bit more friendly: if a bantype is unknown for the server
|
||||
it will just accept it if it's from a remote server, and also ops/etc will be allowed
|
||||
to REMOVE any unknown extbans (but not add new unknown ones).
|
||||
- Added extended ban type ~n (nickchange ban), if a user matches this (s)he can not
|
||||
change nicks (eg: +b ~n:*!*@*.aol.com) unless (s)he has voice or higher.
|
||||
This can be useful as an overall measure for some +m chans (+b ~n:!*@*) or against
|
||||
specific 'good' people that are just nickflooding due to a wrongly configured script.
|
||||
- Added set::restrict-extendedbans by which you can disallow normal users to use
|
||||
any extendedbans ("*") or disallow only certain ones (eg: "qc").
|
||||
- Made the negative TS message a bit more annoying if time is off more than 10 seconds.
|
||||
- Minor doc tweakers, reported by AngryWolf (#0001871).
|
||||
- Win32: Readded /J compiler flag (was accidentally lost in December). This could cause
|
||||
some weird issues. Reported by Troco (#0001877).
|
||||
- Fixed compile problem with debugmode + ipv6
|
||||
- Added CIDR support (#0001296) suggested by many people.
|
||||
- Imported the latest CIDR functions from Hybrid 7.0.1 (and fixed numerous bugs)
|
||||
- Implemented CIDR support for ban ip, ban user, allow, except ban/tkl/throttle, and TKL
|
||||
- Note: This needs testing
|
||||
- To be able to use /ADDLINE you now need the (new) 'can_addline' operflag (oper::flags),
|
||||
reason for this is that it's such a powerful/dangerous command.
|
||||
- Fixed find_qline crashes regarding except tkl 'type qline', reported by Gilou (#0001882).
|
||||
- Fixed some CIDR bugs causing things not to match.
|
||||
- Fixed a CIDR bug when compiled without IPv6 support
|
||||
- Fixed an SVSNICK bug that could lead to duplicate users in very rare circumstances
|
||||
(#0001874) reported by Jiuka.
|
||||
- internal: Added GetIP() which we will now use instead of all the Inet_ia2p() stuff
|
||||
because it's slightly faster (already replaced all of them in src/s_kline.c).
|
||||
GetIP(acptr) will return the ip for local users and remote users that support NICKIP,
|
||||
it returns NULL for remote users that are on non-NICKIP servers (or have non-NICKIP
|
||||
servers along their path).
|
||||
- internal: tkl_add_line now returns aTKline *
|
||||
- Added some more hooks:
|
||||
- HOOKTYPE_TKL_ADD [aClient *cptr, aClient *sptr, aTKline *tk]
|
||||
- HOOKTYPE_TKL_DEL [aClient *cptr, aClient *sptr, aTKline *tk]
|
||||
NOTE: 'NULL, NULL, tk' is used for *lines that are removed due to expiring
|
||||
- HOOKTYPE_LOCAL_KILL [aClient *sptr, aClient *target, char *comment]
|
||||
- Added support for the ELIST 005 token with MNUCT options
|
||||
- Made Mod_Version required (this should be no problem since it's done automatically).
|
||||
- Added HOOKTYPE_LOG [int type, char *timebuf, char *logbuf]
|
||||
- Updated the release notes.
|
||||
- Fixed a CIDR bug reported by poisoner (#0001892)
|
||||
- Documented numerics in use by other IRCds
|
||||
- Converted several notices to numerics (#0001599) suggested by olene
|
||||
- Added a donator to /credits
|
||||
- Fixed '/stats P' negative usercount bug (#0001691).
|
||||
- Made IPv6 bans work the way they should again, reported by al5001 (#0001876).
|
||||
- Added new logtype 'spamfilter' to log spamfilter matches
|
||||
- Updated example.conf: added all new flags we added in the example block, removed
|
||||
old confusing comment on SEGV logging, config.h: ripped out lPATH since that define
|
||||
isn't anywhere used and is only confusing.
|
||||
- Made the new numerics use nicknames (#0001896) suggested by Dukat.
|
||||
- Fixed a problem where the tmp directory was created in the current directory rather than
|
||||
the correct path (#0001898) reported by AngryWolf
|
||||
- Updated HOOKTYPE_TKL_ADD/HOOKTYPE_TKL_DEL to cptr, sptr, tk, parc, parv, else it was
|
||||
impossible to tell *who* removed a *line. Again, parc/parv are 0/NULL for expires.
|
||||
- Fixed "quickly-rehashing + autoconnect linkblocks = crash"-bug. This involved fixing
|
||||
multiple reference count bugs, one related to sptr->serv->conf, and another one related
|
||||
to sptr->serv->class. Both caused problems when someone did a /rehash when a server
|
||||
was in the process of connecting (so it might also happen when connfreq was hit and you
|
||||
did a /rehash). Original bug was reported by sh0 (#0001872).
|
||||
- spamfilter.conf: Added sig for a mIRC decode worm, submitted by nexus.
|
||||
- Some release notes updates.
|
||||
- Changed version to 3.2.1-pre1 and updated protocol # to 2304.
|
||||
- Updated wircd.def
|
||||
** internal 3.2.1-pre1 release **
|
||||
- Various (>15) small fixes for unreal32docs.html, reported by AngryWolf (#0001906).
|
||||
- Added spanish docs, translated by Trocotronic.
|
||||
- Fixed serious crashbug due to quick-rehashing bugfix! Basically if you did a /REHASH and
|
||||
the clientcount for a class reached 0 (due to quits) it would crash.
|
||||
** internal 3.2.1-pre2 release **
|
||||
- Added hungarian docs, translated by AngryWolf.
|
||||
- Fixed a problem with the win32 installer as a result of MSVCR70D.DLL, reported by
|
||||
aquanight
|
||||
- Updated /Credits and added a donator.
|
||||
- Made release notes a bit more scary + some minor english-only doc updates
|
||||
- Changed version to 3.2.1
|
||||
- Moved the 3.2 changes to Changes.old
|
||||
** 3.2.1 release **
|
||||
- Fixed a win32 module problem where file not found errors would display random characters,
|
||||
reported by STING
|
||||
- Fixed a bug where the allow-userhost-change force-rejoin setting was not applied to users
|
||||
who /oper and receive an oper-host (#0001901) reported by hypnetric.
|
||||
- Removed the /hs alias pointing to HelpServ for Anope since this conflicts with HostServ
|
||||
(#0001709) reported by DukePyrolator
|
||||
- Fixed ban bug: halfops were also prevented from doing nickchanges if banned, plus..
|
||||
+b ~n:*!*@* also made nickchanges impossible for voiced(&halfop'ed) people (so like half
|
||||
of the purpose of it was defeated @$#&@#). Reported by Rocko.
|
||||
- Fixed a bug where an ident in a vhost {} was never sent out to other servers and added
|
||||
user@host support for set::hosts (#0001834) reported/suggested by bleepy.
|
||||
- Fixed defizzer module. Reported by Rocko and netrixtardis.
|
||||
- Removed the * and ^ flags from /whois if PREFIX_AQ is not enabled (requested by many people)
|
||||
- Updated the /who docs to use correct English
|
||||
- Added documentation for the /who and /whois flags (#0001881) reported by AngryWolf and Bugz.
|
||||
- Added src/win32/win32.c for generic win32 helper functions
|
||||
- Renamed src/win32/win32gui.c to src/win32/gui.c
|
||||
- Reorganized much of the Windows code
|
||||
- Fixed a whois bug when PREFIX_AQ is undefined, reported by Shaun
|
||||
- Moved the RTF win32 code to a seperate file
|
||||
- More win32 code cleanups
|
||||
- Added src/win32/editor.c (woops), (#0001932) reported by Troco
|
||||
- Fixed a problem with /who incorrectly showing the ? flag to opers even when the user should
|
||||
be visible (#0001888) reported by Bugz and aquanight
|
||||
- Added SAPART and SVSPART reasons. Note, to fully work it requires all servers to upgrade,
|
||||
and due to a bug in older versions, it could cause problems if linked to 3.2 or earlier
|
||||
(#0001859) suggested by Bugz
|
||||
- Fixed a minor issue where Unreal registered itself as an NT service incorrectly
|
||||
(#0001950) reported by rocafella
|
||||
- Possibly fixed a bug that could cause Unreal to eat 100% CPU at startup on Windows.
|
||||
(#0001635) reported by eggburt. Thanks to STING for helping to debug this.
|
||||
- Implemented a new modules Makefile written by fez (#0001930).
|
||||
- Added oper::modes to specify modes to be set for a particular oper (overrides
|
||||
set::modes-on-oper), suggested by parker182 (#0001899).
|
||||
- doc/example.conf now simply refers to unreal32docs.html for oper flags (#0001973)
|
||||
reported by vonitsanet and AngryWolf.
|
||||
- Fixed crash-on-first-connect if SSL was enabled. This seemed to happen on Mac OS X,
|
||||
Sun Solaris, Opteron@Linux and perhaps others (#1982, #1984, #2110), reported by bit,
|
||||
lion and liverbugg.
|
||||
- Fixed a bug if me::info was set to "".
|
||||
- Added a missing error message for ModuleGetErrorStr. Additionally added error checking to
|
||||
ensure NULL is returned when an invalid error code is specified (#0001986) reported by
|
||||
AngryWolf.
|
||||
- Applied patch from slePP for bug #0001252: if IPv6 was enabled then in some cases names
|
||||
were not properly resolved. Original bug reported by kormat.
|
||||
- Fixed bugs regarding HOOKTYPE_SERVER_QUIT: was sometimes called twice and could cause
|
||||
crashes due read-after-free. Reported by SET (#0001988).
|
||||
- Fixed possible crash if /rehash'ing and a servername was just resolving (due to
|
||||
/connect or autoconnect) and was not present in the cache. Reported and traced by sh0
|
||||
(#0001976).
|
||||
- Fixed compile bug at *NIX caused by ModuleGetErrorStr fix.
|
||||
- Improved doc/compiling_win32.txt a lot: now VC7 only, and has instructions on:
|
||||
compiling modules and their (binary) compatability, zip links (zlib), ssl (OpenSSL)...
|
||||
Remote includes (curl and c-ares) instructions still need to be added.
|
||||
- Made 'Install as a service' unchecked by default, this should help beginners a lot.
|
||||
- Updated doc/compiling_win32.txt again with curl build instructions.
|
||||
Also linked to a page with an unreal dev package which contains zlib+ssl+curl
|
||||
precompiled. This basically means many people no longer need to compile zlib/ssl/curl
|
||||
anymore themselves (which is a pain to do and takes a lot of time).
|
||||
- Windows: the 'notice' parameter in the usermsg callback was always 0 due some windows/vc
|
||||
weirdness, this also affected spamfilter (so any spamfilters added only at notice
|
||||
and not at msg on windows would not work). Now using the real 'notice' parameter.
|
||||
- unbroke spamfilter not working for msgs/notices (oops..).
|
||||
- Made zip/non-zip modules on win32 binary compatible. Since it was nowhere documented
|
||||
that you should pass the ZIP_LINKS etc options to 'nmake -f makefile.win32 custommodule'
|
||||
many people didn't do this which caused odd problems when reading certain clientstructs.
|
||||
Module coders: in the meantime, for 3.2.1 mods, use something like:
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
|
||||
ZLIB_LIB_DIR="c:\dev\zlib\dll32" custommodule MODULEFILE=m_mymodule
|
||||
For 3.2.2+ these additional parameters will no longer be needed (but wouldn't harm either).
|
||||
- Some doc/example.conf clarifications, mainly for modules @ win32.
|
||||
- Made /whois show the user's modes to opers regardless of +e
|
||||
- Added snomask to the /whois umode output
|
||||
- Added a patch by rocafella to fix a crash when installing Unreal on Win2003 (#0001949).
|
||||
- Moved the Command API functions to a separate file.
|
||||
- Redesigned the 005 token:
|
||||
- Now renamed to RPL_ISUPPORT.
|
||||
- Replaced KNOCK and MAP tokens with new CMDS token (see doc/technical/005.txt)
|
||||
- Implemented most tokens from the isupport draft (STATUSMSG, EXCEPTS, CHANLIMIT,
|
||||
CHANNELLEN, MAXLIST).
|
||||
- Removed MAXBANS.
|
||||
- Made the isupport system dynamic and provide an API for modules to add tokens, may need
|
||||
testing.
|
||||
- Added an M_ANNOUNCE flag for CommandAdd to add the command to the CMDS token, may need
|
||||
testing.
|
||||
- Fixed some compile warnings.
|
||||
- Fixed a bug where bans were not matched against IPs in all circumstances (#0002045)
|
||||
reported by heper.
|
||||
- Fixed a bug with IP based except tkl {} lines did not validate the ident portion of the mask
|
||||
(#0002049) reported by Rocko.
|
||||
- Fixed a problem where a local TKL could be sent to remote servers when it is being changed
|
||||
(#0002048) reported by AngryWolf.
|
||||
- Added documentation for link::ciphers to unreal32docs.html (#0002019) reported by Bugz.
|
||||
- Updated documentation to reflect that cmode +M allows voiced users to talk, not just
|
||||
registered users (#0002020) reported by crazy.
|
||||
- Made it so WATCH will not respond with an erroneous reply if the parameter was simply + or -
|
||||
(#0002017) reported by GouraudShading.
|
||||
- SVSO now removes +v (#0002023) reported by w00t and aquanight.
|
||||
- Exported the isupport functions for use in Windows modules.
|
||||
- Added a new snomask, +o to show oper-up notices (oper only), (#0001965) suggested by
|
||||
vonitsanet.
|
||||
- Added a /userip command that works just like ircu's.
|
||||
- Fixed a typo in the *nix Makefile reported by Troco (#0002059)
|
||||
- Added french docs, translated by Kolibot & Babass.
|
||||
- Changed some stuff to use the release version of MS libraries.
|
||||
- Updated installer for msvcr70.dll
|
||||
- Fixed prefix bug caused by previous 'fix'/behavior change. Reported by aquanight (#0002067).
|
||||
- Updated doc/technical/token.txt and resolved 2 token conflicts. SVSWATCH is now Sw and
|
||||
SVSJOIN is now BX (#0002073) reported by trystanscott.
|
||||
- Fixed a bug regarding chanmode +mu where the <IRC> messages were not properly relayed
|
||||
to all servers. Reported by Aenox (#0002079).
|
||||
- Added salted passwords. Salts are useful because it "protects" against stored-plaintext
|
||||
attacks (eg: rainbow) and prevents cracking of several passwords at once.
|
||||
This change means /MKPASSWD will now just generate a different string than before.
|
||||
Do note however, that the old syntax/encrypted passwords will still work and _will continue
|
||||
to work_ in the future, for at least the whole 3.2* series.
|
||||
If you are concerned with security and have some time, then converting your passwords
|
||||
is probably a good idea... Just in case your configuration file gets stolen one day ;).
|
||||
- MD5 password encryption is now always available on *NIX, even if SSL is disabled.
|
||||
- Temporary fix for ircsprintf %lu 1..6 issue.
|
||||
- Fixed a problem with +u for some clients that have a strict interpretation of the RFC.
|
||||
- Added TRE 0.7.0, fixes #0001952 reported by Praetorian
|
||||
- Fixed an (unimportant) cloak typo / made it a few nanosec faster. Reported by Martin Brulisauer.
|
||||
- Fixed resolver not working in FreeBSD jail, reported & patch provided by urkel (#0002097).
|
||||
- Added a %n specifier to command aliases that is replaced by the user's nickname,
|
||||
requested by many people.
|
||||
- Added the ability for an alias {} to send to a channel (#0001686) requested by JasonTik
|
||||
- As a result, alias[::format]::nick is now called alias[::format]::target to avoid
|
||||
confusion. ::nick is maintained for backwards compatibility.
|
||||
- Fixed a problem where IsupportAdd did not return a value.
|
||||
- Module coders: Added HOOKTYPE_REMOTE_JOIN, HOOKTYPE_REMOTE_PART, HOOKTYPE_REMOTE_KICK (all
|
||||
work just the same as the HOOKTYPE_LOCAL_* variants).
|
||||
- Module coders: HOOKTYPE_REMOTE_CONNECT is now also called during net-merge. You can use
|
||||
IsSynched(sptr->srvptr) to find out if it's called due to a net merge (0) or a connect (1).
|
||||
- Added spamfiler 'user' (u) target. This regex is checked against nick!user@host:realname
|
||||
when a user connects. This makes it easy to ban drones with simple patterns.
|
||||
For example: '/spamfilter add u gzline 86400 Drone[0-9]+!.+@.+:Drone[0-9]'
|
||||
would kill any drones that have both a nick and realname with 'Drone' followed by digits.
|
||||
- If a nick is qlined, the user is now lagged up to limit qline floods a bit (#0001335).
|
||||
- Made docs a bit more clear on spamfilter targettypes.
|
||||
- Fix for too broad regex in badword::word causing the IRCd to hang, reported by Flop
|
||||
(#0002101).
|
||||
- IPv6: Fixed hostnames in link::hostname not working, reported by Jasmin (#0001990).
|
||||
- Fixed OOB read/write on user quit (did no harm on Linux&FreeBSD).
|
||||
- Fixed some tiny memory leaks (~100 bytes) on rehash.
|
||||
- Updated chinese&japanese GBK nick code, fix supplied by Xuefer (#0002051).
|
||||
- Added release notes (unfinished).
|
||||
- Added file: include/macros.h and a new macro, ARRAY_SIZEOF.
|
||||
- Added the ability to specify multiple types in a tkl except, suggested by Bugz (#0002085).
|
||||
- Added spamfilter 'away' ('a') target (#0002057).
|
||||
- Fixed a qline duplicate msg bug I think
|
||||
- Windows version can now hold ~4096 connections instead of ~1024
|
||||
- help.conf: clarified MKPASSWD documentation, reported by hypnetric (#0001926).
|
||||
- Some modeskip handling for future versions
|
||||
- Fixed serious heap corruption bug if remote users were using qlined nicks, thanks to
|
||||
Gilou and Trankill for making me able to trace this issue down (#0002032).
|
||||
- Fixed qline notices again: now gives msg #1 for local qlined-nick attempts, and
|
||||
another msg in case of a remote client (eg: oper) using a qlined nick.
|
||||
- Added some future SJOIN skip stuff.
|
||||
- Updated version to 3.2.2-pre1 already.
|
||||
** internal 3.2.2-pre1 release **
|
||||
- Fixed some doc & release notes typos. Reported by Rocko, HiT.
|
||||
- French doc updates, hopefully synched now.
|
||||
- (revert of badsyntax fix)
|
||||
- Forgot to mention away spamfilter target in helpop, reported by Rocko.
|
||||
- Changed version to 3.2.2
|
||||
** 3.2.2 release **
|
||||
- Fixed a typo in the makefile for USERIP
|
||||
- Made the WATCH command work for WebTV users (#0002121) suggested by White_Magic.
|
||||
- Some text updates... docs: now 3.2.2-CVS, also got rid of double version to avoid
|
||||
confusion. credits: fixed typo.
|
||||
- Added updated auspice.conf from Rocko since previous one was outdated (#0002147).
|
||||
- Recoded the config parsing code
|
||||
- The new system is much faster, for the programmers out there, the
|
||||
old system averaged O(MN) where N was the number of sub-directives for a block, and
|
||||
M was the number of sub-directives actually contained in the block in the config file.
|
||||
The new system averages O(N), so the number of sub-directives no longer has a significant
|
||||
impact on performance.
|
||||
- Added duplicate config entry detection (#0002126) suggested by brain2
|
||||
- May have a few bugs (easily fixed)
|
||||
- Corrected numerous -Wall warnings
|
||||
- Fixed a bug with /rehash and classes due to the config parser rewrite
|
||||
- Modified the module symbol dependency code to do more accurate searching for the module
|
||||
that contains the necessary symbol (#0002123) suggested by Xuefer.
|
||||
- Unreal will now prepend the pathname to the module and append the appropriate extension
|
||||
(.so or .dll) to the end)
|
||||
- The new module system version is "3.2.3" to allow for backwards compatibility
|
||||
- Documented the default behavior of snomasks when /mode nick +s is used (#0002141) suggested
|
||||
by Bugz.
|
||||
- Added "const" to the functions in match.c, (#0002116) suggested by Xuefer.
|
||||
- Made ./Config better handle command line arguments
|
||||
- Removed NAZIISH_CHBAN_HANDLING as it didn't do anything
|
||||
- Added -advanced flag to ./Config to configure advanced options (#0002145) suggested by
|
||||
Bugz. As a result, some config.h options are now in ./Config -advanced.
|
||||
- Small fix for above
|
||||
- Added the ability to specify a botmotd and opermotd in a tld {} (#0000176) suggested by
|
||||
swissSolaris.
|
||||
- Fixed crashbug on /rehash due to config rewrite, also made DEBUGMODE working again.
|
||||
- Removed an excess space from the SAMODE notice when a mode without a parameter was set
|
||||
(#0002134) reported by Bugz.
|
||||
- Fixed small memory leak on /rehash (post-3.2.2).
|
||||
- Fixed botmotd crash due to last change (post-3.2.2).
|
||||
- Updated the Donation file
|
||||
- Added a 'B' flag to /who output for bots, and allowed normal users to /who +m B
|
||||
(#0002096) suggested by White_Magic
|
||||
- Added support for using \\ in the config file to indicate a \ (#0002178) reported by
|
||||
TimeFX
|
||||
- Added documentation for set::options::fail-oper-warn (#0002166) reported by Snake
|
||||
- Removed an extra ) in the Throttle disconnect message (#0002165) reported by Snake
|
||||
- Fixed a bug where the "looking up your hostname" message could still be displayed even
|
||||
if hostname resolving was disabled (#0002161) reported by Xuefer
|
||||
- Made typing /kline, /shun, /zline, and /gzline correctly report the correct /stats flag,
|
||||
and these commands now produce the same output as the respective /stats flag they emulate
|
||||
(#0002149) reported by Snake
|
||||
- Renamed some calls from report_error() to report_baderror() since otherwise the errors are
|
||||
hardly ever seen (unless you have +s +j set). For example a bad link::bind-ip only caused
|
||||
"Couldn't connect to xxxxxx" without any meaningful error message. Additionally, errors
|
||||
sent to report_baderror() are now logged.
|
||||
- Win32 installer: Apparently 'install as a service' was still not the default, reported
|
||||
by fez (#0002191, #0002189).
|
||||
- Fixed the crule parser to treat - and : as valid 'word' characters rather than separators
|
||||
(#0002188) reported by diskman1.
|
||||
- Fixed bug in remote version reply, reported by DukePyrolator (#0002180).
|
||||
- Added set::dns::bind-ip (rarely ever needed, but might be useful for paranoid people).
|
||||
- Some unreal32docs->security section improvements.
|
||||
- Fixed a minor bug in the new config system when displaying link {} and set::hosts errors
|
||||
(#0002194) reported by AngryWolf.
|
||||
- Renamed RPL_INVITELIST/RPL_ENDOFINVITELIST to RPL_INVEXLIST/RPL_ENDOFINVEXLIST
|
||||
- Using /invite with no parameters now lists the channels you are invited to but have not
|
||||
yet joined (#0002190) suggested by sac.
|
||||
- Added some missing operflags to /stats O and SVSO (#0002193) reported by Bugz.
|
||||
- If a user is +b on a channel, and set::allow-userhost-change force-rejoin is used, a
|
||||
part/join is not sent in order to prevent flooding (#0001933) suggested by Z3l3zT.
|
||||
- Rewrote some of the previous change to deal with some strange issues found by aquanight
|
||||
- Introduced two new macros DYN_LOCAL and DYN_FREE to allow creation/deletion of dynamically
|
||||
sized arrays in the most efficient manner (C99 variable length, alloca, or malloc)
|
||||
- Changed the +z cannot join message to be a bit more descriptive (#0002148) suggested by cust.
|
||||
- Added a config.h options, IPV6_COMPRESSED to make Unreal use compressed IPv6 addresses where
|
||||
possible (#0002107) suggested by Neo-Vortex.
|
||||
- Fixed alloca warning @ Linux (post-3.2.2)
|
||||
- Numeric audit: 15 small changes (int/long mismatches etc). This might have fixed some
|
||||
bugs on architectures where 'long' and 'int' have different sizes (eg: opteron).
|
||||
- Added a set::gline-address which works like set::kline-address (#0001298) suggested by
|
||||
Bugz.
|
||||
- Added missing documentation for spamfilter away target (#0002205) reported by Dukat.
|
||||
- Fixed dcc spamfilter problem reported by TimeFX and Deadalus (#2177, #2204).
|
||||
- Fixed Oper Override not giving a 'special join notice' if +z is set along with another mode
|
||||
(eg: +i/+k), reported by tabrisnet (#0001487).
|
||||
- help.conf: Fixed a typo, updated *CMDS indexes a bit, reported crazy (#0002208),
|
||||
added long flags to OFLAGS.
|
||||
- OperOverride INVITE notices are now also global (if you have the eyes snomask set) (#2212).
|
||||
- Module coders: New function: sendto_snomask_global().
|
||||
- Speedup sendto_snomask/sendto_connectnotice/sendto_fconnectnotice code.
|
||||
- spamfilter.conf: fixed mIRC exploit sigs
|
||||
- Fixed all spamfilters in configfile not working due to configrewrite (post-3.2.2).
|
||||
- Module coders: sendto_snomask* now only sends to opers, sendto_snomask_normal* can be used
|
||||
to send to normal users w/the snomask set.
|
||||
- Fixed dcc filtering a bit more.
|
||||
- Made usermode 'g' operonly since it didn't do much, reported by DukePyrolator (#0002024).
|
||||
- Fixed tkl except { } not working (post-3.2.2).
|
||||
- Fixed bug where servers behind ulines were not ulined, causing for example juped servers to
|
||||
show up if flat-map was enabled, reported by GSF19 (#0002230).
|
||||
- Some doc/ updates: removed: Unreal31_to_32.html & example.settings, updated: Authors &
|
||||
translations.txt.
|
||||
- Added a basic regex tutorial to unreal32docs.html (#0000920)
|
||||
- Updated wircd.def
|
||||
- Made CIDR no longer accept bitmasks with less than 16bits for /*line commands (#0002240)
|
||||
reported by aquanight.
|
||||
- Made the (?) kill message not show IP addresses (#0002227) reported by neothematrix.
|
||||
- Added some error checking to /sapart (#0002253) suggested by Troco.
|
||||
- Imported TRE 0.7.2 for Windows
|
||||
- Imported TRE 0.7.2 for *nix
|
||||
- Got rid of wma/wmv in dccallow.conf, better to require an explicit select here due to
|
||||
recent DRM exploits (spyware etc).
|
||||
- Fixed /restart reasons, reported by SouL-FoRTuNe.
|
||||
- Partial (incomplete!) fix for alloca warnings during compile (especially w/SSL).
|
||||
- Fixed serious crashbug that can be triggered by users, released a hotfix and a seperate
|
||||
version called 3.2.2b (which is just 3.2.2+patch+version change to '3.2.2b',
|
||||
nothing else).
|
||||
- Fixed 'make install' error due to example.settings remove.
|
||||
- Fixed a minor typo in the "now an oper" announcement (#0002284) reported by Rocko.
|
||||
- Made SVSMODE -b and -e remove bans/excepts placed on IPs (#0002270) reported by Snake.
|
||||
- Fixed a couple of problems introduced with the ./Config -advanced changed (#0002239).
|
||||
- Made the win32 installer include the dccallow.conf (#0002269) reported by Ron2K.
|
||||
- Made the win32 installer work with the latest version of Inno Setup (5.0.6).
|
||||
- Made /sajoin support multiple channels and using 0 (#0002231) suggested by acemi.
|
||||
- Fixed a problem where doing ./unreal restart multiple times would not actually restart
|
||||
the ircd (#0002120) reported by SineSwiper.
|
||||
- Made it so +f notices are sent to %#chan, not @%#chan (#0002248) reported by aquanight.
|
||||
- Hopefully fixed the last of the alloca warnings (#0002202) reported by Stoebi.
|
||||
- Fixed a problem with set::htm::incoming-rate being interpreted incorrectly (#0002266)
|
||||
reported by tabrisnet.
|
||||
- Fixed a resolver cache bug regarding CNAME's. Thanks to insiderZ.DE for tracing down
|
||||
this issue.
|
||||
- Fixed a bug related to the sajoin recode regarding notices displayed (#0002293) reported
|
||||
by Troco.
|
||||
- Reworded a cloak-key error message to make it clearer (#0002297) reported by Bugz.
|
||||
- Fixed a bug where /whois notices were not sent to users who are +R if the sender is -r
|
||||
and on a remote server (#0002288) reported by Freadon.
|
||||
- Made /stats E include tkl except stats as well (#0001524) suggested by Cnils.
|
||||
- Added an options member to the ExtbanInfo structure. This currently supports one flag,
|
||||
EXTBOPT_CHSVSMODE. When set, this extban will be removed when an SVSMODE -b [nick] is
|
||||
executed (#0002222) suggested by Snake.
|
||||
- Fixed a bug where specifying a reason to SVSPART would cause it to fail (#0002210) reported
|
||||
by tabrisnet.
|
||||
- Moved channel mode +G to extcmode to make room for invex.
|
||||
- Added debug code to trace proto-check bugs in DEBUGMODE [IsToken() etc]
|
||||
- [Module coders] Added new function: do_cmd(cptr, sptr, cmd, parc, parv) which is an
|
||||
uniform method to call any other commands. For more info, see description in src/packet.c.
|
||||
This will be used for any further modulization of commands that need to call other
|
||||
commands, like NICK (will be done soon).
|
||||
- Added invite exceptions (+I). This prevents users from needing a /invite in for a +i
|
||||
channel (#0002044) suggested by medice.
|
||||
- Updated help.conf's +f documentation for the new syntax
|
||||
- Fixed some problems with the /stats help and documentation (#0002299) reported by Rocko.
|
||||
- Corrected the help.conf documentation for /invite (#0002306) reported by White_Magic.
|
||||
- Fixed a documentation inconsistency with me::numeric (#0002290) reported by Bugz.
|
||||
- Fixed a problem when compiling Unreal with GUEST support (#0001758) dvzion.
|
||||
- Fixed a win32 GUI problem where the tray menu's config submenu was not updated when new
|
||||
files were loaded or files were unloaded (#0002084) reported by Troco.
|
||||
- Made m_template.c use CommandAdd() and CMD_FUNC()
|
||||
- Modulized a lot of commands and related subfunctions: NICK (750 lines), USER (200),
|
||||
MODE (2300), WATCH (250), JOIN (600), PART (250), MOTD (100), OPERMOTD (100),
|
||||
BOTMOTD (100), LUSERS (100). More will follow soon (probably including more subfunctions
|
||||
related to existing commands).
|
||||
- Various (important) fixes to above, also made win32 compile work again.
|
||||
- And some more.
|
||||
- Made unreal_copyfile try hardlinking first, if that fails.. it will try to copy
|
||||
(perhaps this should be a different function?). Anyway, this means less diskspace
|
||||
is needed (~1.5mb or more), and it also makes it a bit easier for RBAC (#2300).
|
||||
- Made a new function DoMD5() which is ssl/non-ssl independent. Also made the cloaking
|
||||
module and the auth functions use it. Hopefully I didn't break anything ;). Suggested
|
||||
by Bugz (#2298).
|
||||
- Fixed mode #chan +O set by locop causing a desynch, reported by Unim4trix0 (#0001946).
|
||||
- Added spamfilter topic support ('t' in /spamfilter, or 'topic' in conf), suggested
|
||||
by Z3l3zT (#0001929).
|
||||
- Updated makefile to fix compile problem, reported by vonitsanet (#0002317) [?].
|
||||
Also made loading m_*.so work again.
|
||||
- Added unreal_copyfileex() which works just like unreal_copyfile() but has an additional
|
||||
param to try hardlinks first.
|
||||
- Win32 crash fixes due to modulizing
|
||||
- Made channel mode +c block RGB color codes.
|
||||
- Fixed a bug with channel alias{}'s where using the format syntax caused a crash (#0002323)
|
||||
reported by Snake.
|
||||
- Made channel mode +S strip RGB color codes.
|
||||
- Added channelmode +j (jointhrottle), syntax: /mode #chan +j X:Y, and then it will
|
||||
throttle the number of joins per-user to X in Y seconds. Idea from Angrywolf (who
|
||||
wrote a module that did this before). This needs testing :).
|
||||
It's enabled by default but can be #undef'ed in include/config.h (line 449).
|
||||
- Added a feature to +b ~c, ~c:[prefix]<#channel>, prefix can be +/%/@/&/~ and will
|
||||
check if the user is voiced/halfoped/etc.. Especially useful for +e ~c. Idea from
|
||||
Bugz (#0002198). Obviously all servers need to be upgraded to make this work.
|
||||
- Fixed SVSNOOP bug where remote servers still thought the opers had privileges, reported
|
||||
by Zell (#0002185)
|
||||
- Docs: log { } from 'optional' -> 'recomended'
|
||||
- If no log { } block is present a warning will be printed out and we will fallback
|
||||
to a default of logging errors to ircd.log. Suggested by w00t (#0002327).
|
||||
- Fixed shuns not working as target in spamfilter and ban version { }, reported by Bugz
|
||||
(#0002223).
|
||||
- Fixed a bug where shuns placed on IP's did not take effect to currently connected users.
|
||||
- Fixed a small doc bug regarding shun in spamfilter, reported by KnuX (#0002338).
|
||||
- Added greek docs, translator: GSF.
|
||||
- Some help.conf/005.txt updates, reported by Ron2K (#0002354).
|
||||
- No longer cutoff nick upon illegal character -- just reject the whole nick. The nick is
|
||||
still cutoff if the nick is too long. Basically this is the same way as Hybrid does it
|
||||
so it should work ok :).
|
||||
- Added nick character system. This allows you to choose which (additional) characters
|
||||
to allow in nicks via set::allowed-nickchars. See unreal32docs.html -> section 3.16
|
||||
for a list of available languages and more info on how to use it.
|
||||
Current list: dutch, french, german, italian, spanish, euro-west, chinese-trad,
|
||||
chinese-simp, chinese-ja, chinese.
|
||||
If you wonder why your language is not yet included or why a certain mistake is present,
|
||||
then please understand that we are most likely not experienced (at all) in your language.
|
||||
If you are a native of your language (or know the language well), and your language
|
||||
is not included yet or you have some corrections, then contact syzop@vulnscan.org or
|
||||
report it as a bug on http://bugs.unrealircd.org/
|
||||
- Added swedish support for nicks, supplied by Tank.
|
||||
- Various updates to unreal32docs from Ron2K (#0002354).
|
||||
- set::allowed-nickchars:
|
||||
- Renamed 'euro-west' to 'latin1' since that's more descriptive/fair ;)
|
||||
- Added 'hungarian' [supplied by AngryWolf]
|
||||
- Added category 'latin2': just Hungarian for now
|
||||
- Added 'catalan' [supplied by Trocotronic]
|
||||
- Added 'greek' [supplied by GSF]
|
||||
- Added category 'latin7': alias for 'greek'
|
||||
- Added category 'gbk': alias for 'chinese'
|
||||
- Removed 2 unneeded characters from 'catalan'.
|
||||
- Added NICKCHARS= in PROTOCTL. This indicates which languages are accepted in nicks.
|
||||
If 2 servers try to link and the allowed nick characters do not fully match, then
|
||||
the link will be rejected. Note that this will not prevent you from 3.2.2<->3.2.3/CVS
|
||||
charsets mistakes, but only with linking CVS/3.2.3+ servers. Suggested by Troco (#0002360)
|
||||
This might need some additional testing, but initial results are positive :).
|
||||
- NickChars:
|
||||
- Got rid of 'latin7', tiny mistake ;)
|
||||
- Removed e' accent from German (used in borrow-words only), reported by Dukat.
|
||||
- Added 'swiss-german', which is just German without es-zett, reported by Dukat.
|
||||
- Added 'turkish', supplied by Ayberk Yancatoral.
|
||||
- Build in some additional checks (especially for Chinese).
|
||||
- Fixed a bug in chinese character range (affecting 3.2*)
|
||||
- Relaxed nick character checking from remote servers (rely on NICKCHARS= PROTOCTL
|
||||
to deal with problems). This is useful to prevent any kills in case we slightly
|
||||
change the characters that are allowed in a language.
|
||||
- Added 'polish' (latin2), supplied by k4be.
|
||||
- Added 'hebrew' (iso8859-8I / windows-1255), supplied by PHANTOm.
|
||||
- Added French example.fr.conf and help.fr.conf, translated/maintained by Babass.
|
||||
- Fixed a doc typo, reported by SDF_of_BC.
|
||||
- NickChars: Updated polish a bit, and added polish-w1250 which is unfortunately more
|
||||
common than real latin2 (iso-8859-2), supplied by k4be as well.
|
||||
- NickChars: Added 'icelandic', supplied by Saevar.
|
||||
- Updated wircd.def
|
||||
- Fixed a bug where USERIP would say USERHOST in the not-enough-parameters numeric
|
||||
(#0002366) reported by vonitsanet.
|
||||
- Fixed a bug causing SVSNICK not to send out a snomask +n notice (#0002359) reported by
|
||||
Rob_.
|
||||
- Fixed a bug where SAJOIN would list channels multiple times in the notices (#0002325)
|
||||
reported by vonitsanet.
|
||||
- Fixed a bug in mode-skipping (eg '+qk a b' if not +q) and error msgs, reported by brain2
|
||||
(#0002372).
|
||||
- Fixed bug where chanmode +f #t (per-user text kick[ban]) was also affecting halfops,
|
||||
reported by seneces (#0002333).
|
||||
- Fixed doc bug reported by Dukat (#0002374). Also fixed 2 error msgs related to
|
||||
the nickchars system printing out incorrect set:: directives.
|
||||
- spamfilter.conf and dccallow.conf are now also copied upon make install, reported by
|
||||
TommyTheKid (#0002313).
|
||||
- Made CHGIDENT, CHGHOST and CHGNAME use more numerics (where possible) (#0002358).
|
||||
- Fixed halfop trying to set chanmode +G/+T/+j not getting an error message, reported
|
||||
by Ron2K (#Ron2K).
|
||||
- Module coders: using extcmode_default_requirechop is now depricated, check src/extcmodes.c
|
||||
ctrl+f extcmode_default_requirechop for more details (solution: copy+paste & fill in modechar).
|
||||
- Nicks with ~ are now also not cutoff anymore but rejected like any other illegal char (#0002074).
|
||||
- Fixed bug in +G where with not-really-matching-words color was needlessly stripped,
|
||||
reported by SpeedFire (#0002375).
|
||||
- Changed the 'is a Secure Connection' msg/numeric in /whois from RPL_WHOISSPECIAL to
|
||||
a slightly changed RPL_WHOISSECURE, namely: ':%s 671 %s %s :is using a Secure connection',
|
||||
I'm sure some client coders will bitch at this, but the current way is brok in 2 ways:
|
||||
- RPL_WHOISSPECIAL is meant for 1 line of additional whois info, usually an IRCOp title or
|
||||
description. Having a dedicated numeric for it allows for client-side interpretations
|
||||
and/or translations.
|
||||
- The 'is a Secure Connection' was incorrect English, this has been reported numerous times.
|
||||
The PRO's of this change are clear, the only CON is that in-window-/whois's are now
|
||||
likely not to show this line properly in-window but rather in the status window, until client
|
||||
coders implement this numeric.
|
||||
If you wonder why we didn't use RPL_USINGSSL, that's because this numeric collides with
|
||||
RPL_STATSDLINE (which we are already using for >5 years).
|
||||
If you wonder why we didn't use the RPL_WHOISSECURE numeric as-is (even though I haven't
|
||||
seen it in use anywhere), then that's because we wanted to minimize display problems in
|
||||
the transition period and the extra parameter would not be used by us anyway.
|
||||
- If a locop now has can_override/can_gkline/can_gzline we will print out a warning and
|
||||
convert it to globops. This is also what we always did for can_globalroute/can_gkill
|
||||
(well, except the warning). Giving such NETWORK (GLOBAL) privileges to a LOCAL operator
|
||||
does not make any sense and is therefore no longer allowed.
|
||||
- NickChars:
|
||||
- Added 'russian-w1251', supplied by Roman Parkin. There are like 7 standards
|
||||
in Russia (and like 2-3 main ones), so I didn't dare to call this one 'russian' ;).
|
||||
- Added 'czech-w1250' and 'slovak-w1250' (both might miss a few characters).
|
||||
- Added 'windows-1250' group which contains czech-w1250, slovak-w1250, polish-w1250
|
||||
and hungarian.
|
||||
- Hungarian characters show both fine in w1250 and latin2, hence hungarian is included
|
||||
both in 'windows-1250' and 'latin2'.
|
||||
- Fixed bug: polish was not included in latin2
|
||||
- Fixed various OperOverride issues:
|
||||
- Opers with can_override can now +qa/-qa even if they are not netadmins,
|
||||
and they can also (un)set L/u.
|
||||
- Fixed several SAMODE bugs, such as not completely working for non-netadmins and
|
||||
not working if you were halfop'ed, etc.
|
||||
Bugs reported by pak, aquanight, niphler, Bugz, and more.
|
||||
If there are still any bugs left, please report them on http://bugs.unrealircd.org/
|
||||
NOTE: some of these enhancements will produce desynchs if your net is not 100%
|
||||
on current CVS / Unreal3.2.3 and an oper tries to use these 'new features'.
|
||||
So use with care on mixed-version nets.
|
||||
- Fixed /(G)ZLINE [nick] placing the *line on *@host instead of *@IP, reported by
|
||||
Snake (#0002246).
|
||||
- A warning is now sent to the oper if (s)he tries to add a (G)ZLINE on *@host.
|
||||
(G)ZLINES should have an ipmask, not a hostmask, because they are processed BEFORE
|
||||
any dns lookups are done. Therefore any (g)zlines placed will probably work
|
||||
(but not necessarily) for like an hour (or whatever TTL), but after that the
|
||||
(ab)user can get in again so this is usually not what you want ;).
|
||||
I suppose I'll add a FAQ entry about this.
|
||||
- Made badwords (+G) now work with hardcoded word boundaries. Also made the fastbadwords
|
||||
system accept more characters. Basically what this means is that the (fast) badwords
|
||||
system can now be used to properly block words with accents and things like that, just
|
||||
the way you block English words. Bug reported by MJ12Helios (#0002311).
|
||||
- Fixed 'russian-w1251', was not working ok at all.
|
||||
- Made it so halfops can -h themselves, and chanadmins can -a themselves, reported
|
||||
by fez (#0001503).
|
||||
- Made spamfilter 'u' also check nickchanges, reported by Gilou (#0002251).
|
||||
- Updated doc/technical/token.txt, reported by webfox (#0002373).
|
||||
- NickChars: Added 'romanian', supplied by crazytoon.
|
||||
- Added 3.2.3 release notes (expected to be changed later on).
|
||||
- Updated russian-w1251 (added 2 chars).
|
||||
- Made the (G)ZLINE warning only happen on add, as it should. Reported by crazy.
|
||||
- Made some (incorrect) -Wall warnings dissapear.
|
||||
- Renamed version to 3.2.3-pre1, for Thursday. I'll keep the doc version numbers
|
||||
at 3.2.2-CVS to avoid confusion with the online semi-realtime docs ;).
|
||||
** internal 3.2.3-pre1 release **
|
||||
- Fixed a bug with /invite with no parameters (accidentily broken when +I was added)
|
||||
(#0002383) reported by trystanscott.
|
||||
- Fixed a bug where /SAJOIN user 0 caused a desynch, reported by trystanscott (#0002384).
|
||||
- Merged NICKCHARS= in PROTOCTL for now, since a seperate one is not (yet!) needed,
|
||||
reported by SolutechUK and psadi (#0002386).
|
||||
- Fixed various (major) problems that the '-h yourself' caused, reported by Trocotronic
|
||||
(#0002387).
|
||||
- Fix for above, also reported by Trocotronic.
|
||||
** internal 3.2.3-pre2 release **
|
||||
- Fixed a couple of typos in doc/example.conf (#0002393) reported by AngryWolf.
|
||||
- Added documentation about channel mode +j (#0002392) suggested by Dukat.
|
||||
- Added doc/help.de.conf and doc/example.hu.conf
|
||||
- Fixed +s/+p and +c/+S desynch issue during netmerge, reported by Ron2K (#0002391).
|
||||
- Fixed a bug where an unknown operflag would cause a crash.
|
||||
- Windows versions will now be compiled with zlib 1.2.2 and curl 7.13.1.
|
||||
- Made windows installer also install doc\technical\*
|
||||
- Removed oldcloak cloaking module, everyone should be using the new cloak one by now.
|
||||
- Updated release notes (translated docs, zlib, doc\technical, sp/cS desynch).
|
||||
- Made +g get removed when an oper sets -o (#0002399) reported by Ron2K.
|
||||
- Made it so the win32 version shows channel modes in /list (#0002397) reported by Ron2K.
|
||||
- Fixed /SAMODE with no can_override not always working with +G/+j/+T (extcmodes), reported
|
||||
by Ron2K (#0002398).
|
||||
- Added doc/example.de.conf
|
||||
** internal 3.2.3-pre3 release **
|
||||
- Some spelling fixes in unreal32docs.html, reported by alex323 (#2412).
|
||||
- Updated the list of donators
|
||||
- /SAMODE could cause 'fishy timestamp' if digit parameters were used (eg: SAMODE #chan +l 5),
|
||||
this has now be fixed by sending an explicit TS 0.
|
||||
- Fixed an important channelmode +j memory corruption bug that would cause crashes, reported
|
||||
by Bergee (#0002416).
|
||||
- Some clarifications on /RESTART, remote restarts were well never supported, so the docs
|
||||
are now updated on that (no code changes).
|
||||
** internal 3.2.3-pre4 release **
|
||||
- Corrected small doc typo in unreal32docs, reported by arbiter.
|
||||
** 3.2.3 release **
|
||||
- Fixed incorrect badword { } in conf causing a crash (should give an error).
|
||||
- spamfilter.conf Gaggle worm sigs were broken causing odd things to match, this is because
|
||||
\\ now needs to be escaped as \\\\ due to the 3.2.3 conf change... didn't think of updating sigs.
|
||||
- Clarified some nickchar stuff in the docs
|
||||
- Added 'danish' nickchars, supplied by klaus (#0002436).
|
||||
- Module coders: Added HOOKTYPE_LOCAL_SPAMFILTER: catches (local) spamfilter matches.
|
||||
- Fixed chanmode G showing up twice in 005, reported by Snake (#0002466).
|
||||
- Fixed a TKL crash on incorrect *line, reported by nanookles1234 (#0002524).
|
||||
- Redid include dependencies in Makefile, this makes things safer because on any .h change it
|
||||
would force a recompile of all files, but it could mean things will be a bit slower for us
|
||||
coders unless we tweak it later on.
|
||||
- Changed whois a bit to print less useless results.
|
||||
- Added several indicators to the "detect binary incompatible modules"-system such as detecting
|
||||
of a ziplinks module on non-ziplinks (on windows this is ok however), nospoof module on a
|
||||
a server without nospoof server, etc. Hopefully this will help some people preventing odd
|
||||
crashes because they did not recompile or (re)install modules properly.
|
||||
- Added './unreal backtrace', so far this has only been tested on Linux and FreeBSD.
|
||||
- Fixed a bug making ./Config not load the previously stored settings on Solaris 10 and
|
||||
probably other Unixes, reported by lion-o (#0002474).
|
||||
- Cosmetic bug in set::modes-on-join: now rejecting +I in it. Reported by Ron2K (#0002508).
|
||||
- Moved all TKL code and register_user to modules (using efuncs), that means 20 functions
|
||||
and 2000 lines total that can be hotfixed if needed ;). The effort involved in moving all
|
||||
this sucks a lot though :/. This might need some more testing to make sure it doesn't break
|
||||
anything.
|
||||
- Updated support OS list in documentation.
|
||||
- Fixed various major bugs due to TKL move from 13h ago.
|
||||
- Fixed 2 problems caused by TKL move: 1 windows crash, 1 problem with loading m_*.so,
|
||||
reported by Trocotronic (#0002553, #0002554).
|
||||
- Added some TSCTL logging (this reminds me we need to add new log levels for 3.3 ;p).
|
||||
- Attempt to fix bug #2431: 3.2.3 broke CNAME delegation for reverse dns. I'm sorry it took
|
||||
so long, but this stuff just plain sucks...
|
||||
- Made '?*' work correctly in wildcard matches ('1 or more characters'), reported by
|
||||
Bugz (#2585).
|
||||
- Added -fno-strict-aliasing.. this might well be temporary, but we get tons of strict-
|
||||
aliasing warnings, so it sounds good to disable this type of optimization for now.
|
||||
- Fixed problem with crash-on-link if compiled with GCC 4, reported by jonneyboy (#2573)
|
||||
and PHANTOm (#2590).
|
||||
- IPv6: Added configure check for in6addr_any to fix Fedora Core 4 compile problem,
|
||||
reported by wheatie80 (#2594).
|
||||
- Added -Wno-pointer-sign (if available) to get rid of those stupid warnings that are
|
||||
enabled by default even without -Wall (!?) on GCC4.
|
||||
- Fixed a bug where allow channel::channel generated a warning when specified multiple times
|
||||
(#0002427) reported by matridom.
|
||||
- Fixed ~c not working properly with * and ?'s in channel names.. Now you just need to
|
||||
escape them like in all bans (eg: to ban #* you need to +b ~c:#\*). As an additional
|
||||
bonus, real wildcards are now accepted and processed (eg: +b ~c:#*sex*, just don't
|
||||
forget to specify the #). Reported by PhantasyX (#2605).
|
||||
- Sidenote on above: ~c:*chan* is not supported (use ~c:#*chan* instead) because it would
|
||||
cause "hidden bans", therefore it now prints a message (which is useful anyway), but
|
||||
does accept such remote bans. In 3.2.5 or so we could enable support for it, it's
|
||||
not that important though... ;)
|
||||
- Added ifdefs for mass closing of file descriptors on start, can now be disabled by
|
||||
adding -DNOCLOSEFD as a compile option. Useful for valgrind w/--db-attach=yes, mpatrol,
|
||||
and some other debugging tools (not useful for anyone normally running a server).
|
||||
- Fixed a read-after-free: sptr->serv->aconf was freed but not NULL'ed in exit_client,
|
||||
causing close_connection to read from it (when deciding on doing a quick reconnect).
|
||||
Could have caused a crash, although nobody ever reported one...
|
||||
- Removed useless strncpyzt with dest==src.
|
||||
- Temporary workaround for spamfilter bug: action 'viruschan' in combination with the
|
||||
'u' (user) target can cause severe problems (crashes, etc). For now, we have disabled
|
||||
'viruschan' in combination with 'u'. A real fix will require quite some work, sorry.
|
||||
- Fixed crash with invalid set::network-name (eg: high ascii), reported by galahad
|
||||
(#0002584), now printing an error instead (the network name is limited by the 005 spec).
|
||||
- Added Bulgarian example.bg.conf, translated by Peace.
|
||||
- Spamfilter: regexes (and reasons) are now more limited in size, this is to combat "I set
|
||||
a spamfilter, but cannot remove it" problems. In practice this means - depending on the
|
||||
length of your spamfilter reason - regexes will be max ~300 characters.
|
||||
Spamfilters set in the .conf can be slightly longer (which still causes them to be
|
||||
truncated in '/stats f', but they don't have to be removed anyway so it's kinda
|
||||
acceptable if it's really needed). This should fix bug #2083, reported by White_Magic.
|
||||
- Fixed a bug where an invalid /*line could cause a crash, reported by Gilou (#2629).
|
||||
- (5 minutes later..) Small update for above, fix was incorrect for ipv6.
|
||||
- CMDLINE_CONFIG behavior change: command line configuration is now still permitted
|
||||
if #undef'ed (which is the default) if uid==euid && gid==egid, since it doesn't make
|
||||
any sense to disable it then and is in fact just plain annoying.
|
||||
- Added FAKELAG_CONFIGURABLE option in include/config.h, this enables an option called
|
||||
class::options::nofakelag, which disables "fake lag" for a certain class (that is:
|
||||
the artificial delay introduced by the ircd to prevent flooding is turned off,
|
||||
allowing the user to flood at full speed).
|
||||
IT'S USE IS DISCOURAGED UNLESS YOU REALLY KNOW WHAT YOU ARE DOING.
|
||||
Sorry, option is not in ./Config -advanced since I don't get autoconf working, but it's
|
||||
such a scary option that this might as well be a good idea to keep in config.h anyway.
|
||||
This feature has been suggested for several years (and refused), but the final
|
||||
suggestion (with implementation specific hints) came from Gilou in bug #0002207.
|
||||
- Fixed win32 makefile, now compiles fine.
|
||||
Simply run the following command to generate this 'Changes' file:
|
||||
./createchangelog
|
||||
- COMMENT (#4251).
|
||||
|
||||
+2523
-4835
File diff suppressed because it is too large
Load Diff
+4844
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,7 @@
|
||||
|
||||
|
||||
RUN_CONFIGURE () {
|
||||
ARG=""
|
||||
ARG=" "
|
||||
# Do this even if we're not in advanced mode
|
||||
if [ "$SHOWLISTMODES" = "1" ] ; then
|
||||
ARG="$ARG--with-showlistmodes "
|
||||
@@ -41,12 +41,9 @@ fi
|
||||
if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then
|
||||
ARG="$ARG--with-operoverride-verify "
|
||||
fi
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
ARG="$ARG--enable-nospoof "
|
||||
fi
|
||||
if [ -n "$HUB" ] ; then
|
||||
ARG="$ARG--enable-hub "
|
||||
fi
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if test x"$SSLDIR" = "x" ; then
|
||||
@@ -68,8 +65,8 @@ fi
|
||||
if [ "$INET6" = "1" ] ; then
|
||||
ARG="$ARG--enable-inet6 "
|
||||
fi
|
||||
if [ "$PREFIXAQ" = "1" ]; then
|
||||
ARG="$ARG--enable-prefixaq "
|
||||
if [ "$PREFIXAQ" != "1" ]; then
|
||||
ARG="$ARG--disable-prefixaq "
|
||||
fi
|
||||
ARG="$ARG--with-listen=$LISTEN_SIZE "
|
||||
ARG="$ARG--with-dpath=$DPATH "
|
||||
@@ -77,20 +74,57 @@ ARG="$ARG--with-spath=$SPATH "
|
||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||
ARG="$ARG--with-hostname=$DOMAINNAME "
|
||||
ARG="$ARG--with-permissions=$DEFPERM "
|
||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||
ARG="$ARG--enable-dynamic-linking "
|
||||
ARG="$ARG $EXTRAPARA "
|
||||
CONF="./configure $ARG"
|
||||
if [ "x$INSTALLCURL" = "x1" ]; then
|
||||
./curlinstall || exit 1
|
||||
fi
|
||||
echo $CONF
|
||||
$CONF
|
||||
$CONF || exit 1
|
||||
cd "$UNREALCWD"
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if [ ! -f server.req.pem ]; then
|
||||
export OPENSSLPATH
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$GENCERTIFICATE" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to generate an SSL certificate for the IRCd?"
|
||||
echo "Only answer No if you already have one."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
GENCERTIFICATE="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
GENCERTIFICATE=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ "$GENCERTIFICATE" = 1 ]; then
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
else
|
||||
echo "Ok, not generating SSL certificate. Make sure that the certificate and key"
|
||||
echo "are installed as server.crt.pem and server.key.pem prior to starting the IRCd."
|
||||
fi
|
||||
else
|
||||
echo "SSL certificate already existing, no need to regenerate"
|
||||
fi
|
||||
@@ -274,14 +308,41 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$DISABLEEXTBANSTACKING" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to disable extended ban stacking (~q:~c:#test, etc) support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
DISABLEEXTBANSTACKING="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
DISABLEEXTBANSTACKING="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
}
|
||||
c=""
|
||||
n=""
|
||||
NOSPOOF=""
|
||||
UNREALCWD="`pwd`"
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
HUB="1"
|
||||
DOMAINNAME=`hostname`
|
||||
DEFPERM="0600"
|
||||
CRYPTOIRCD=""
|
||||
SSLDIR=""
|
||||
@@ -295,13 +356,15 @@ MAXCONNECTIONS="1024"
|
||||
INET6=""
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
PREFIXAQ=""
|
||||
PREFIXAQ="1"
|
||||
SHOWLISTMODES="1"
|
||||
TOPICNICKISNUH=""
|
||||
SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
GENCERTIFICATE="1"
|
||||
EXTRAPARA=""
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
@@ -309,6 +372,23 @@ else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
date|grep 2015 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "*** WARNING ***"
|
||||
echo "UnrealIRCd 3.2.x will no longer be supported after December 31, 2016."
|
||||
echo "You should upgrade to UnrealIRCd 4 before that date."
|
||||
echo "See https://www.unrealircd.org/docs/UnrealIRCd_3.2.x_deprecated"
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo ""
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
#parse arguments
|
||||
NOCACHE=""
|
||||
@@ -336,6 +416,7 @@ while [ $# -ge 1 ] ; do
|
||||
. ./config.settings
|
||||
fi
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
exit 0
|
||||
elif [ $1 = "-clean" -o $1 = "-C" ] ; then
|
||||
CLEAN="1"
|
||||
@@ -345,6 +426,12 @@ while [ $# -ge 1 ] ; do
|
||||
shift 1
|
||||
done
|
||||
|
||||
date|grep 2015 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo $n "[Enter to continue]"
|
||||
read cc
|
||||
fi
|
||||
|
||||
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
||||
. ./config.settings
|
||||
fi
|
||||
@@ -374,41 +461,6 @@ clear
|
||||
clear
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$NOSPOOF" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Many older operating systems have an insecure TCP/IP stack"
|
||||
echo "which may be vulnerable to IP spoofing attacks, if you run"
|
||||
echo "an operating system that is vulnerable to such attacks"
|
||||
echo "enable this option. This option can also be useful to prevent"
|
||||
echo "blind proxies from connecting (eg: HTTP POST proxies)."
|
||||
echo ""
|
||||
echo "Do you want to enable the server anti-spoof protection?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
NOSPOOF="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
NOSPOOF=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DPATH"
|
||||
echo ""
|
||||
echo "What directory are all the server configuration files in?"
|
||||
@@ -420,58 +472,28 @@ else
|
||||
DPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST="$SPATH"
|
||||
echo ""
|
||||
echo "What is the path to the ircd binary including the name of the binary?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
SPATH=$TEST
|
||||
else
|
||||
SPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
SAVEME="$SPATH"
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$HUB" = "1" ] ; then
|
||||
TEST="Hub"
|
||||
else
|
||||
TEST="Leaf"
|
||||
fi
|
||||
TEST="$SAVEME"
|
||||
echo ""
|
||||
echo "Would you like to compile as a hub or as a leaf?"
|
||||
echo "Type Hub to select hub and Leaf to select leaf."
|
||||
echo "What is the path to the ircd binary including the name of the binary?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
SPATH=$TEST
|
||||
else
|
||||
SPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
if [ "$SPATH" = "$DPATH" ]; then
|
||||
echo ""
|
||||
echo "You need to specify the path to the BINARY, not to a directory."
|
||||
echo "The answer to this question can never be identical to the previous one."
|
||||
echo "HINT: perhaps you want $DPATH/ircd ?"
|
||||
TEST=""
|
||||
fi
|
||||
case "$cc" in
|
||||
[Hh]*)
|
||||
HUB="1"
|
||||
;;
|
||||
[Ll]*)
|
||||
HUB=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Hub or Leaf"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST="$DOMAINNAME"
|
||||
echo ""
|
||||
echo "What is the hostname of the server running your IRCd?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
DOMAINNAME=$TEST
|
||||
else
|
||||
DOMAINNAME=`eval echo $cc` # modified
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$DEFPERM"
|
||||
@@ -527,14 +549,14 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST=""
|
||||
TEST="$SSLDIR"
|
||||
echo ""
|
||||
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo "leave this blank (in most cases it will be detected automatically)."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
SSLDIR=""
|
||||
SSLDIR="$TEST"
|
||||
else
|
||||
SSLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
@@ -599,14 +621,14 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
TEST=""
|
||||
TEST="$ZIPLINKSDIR"
|
||||
echo ""
|
||||
echo "If you know the path to zlib on your system, enter it here. If not"
|
||||
echo "leave this blank"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
ZIPLINKSDIR=""
|
||||
ZIPLINKSDIR="$TEST"
|
||||
else
|
||||
ZIPLINKSDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
@@ -621,6 +643,8 @@ while [ -z "$TEST" ] ; do
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable remote includes?"
|
||||
echo "This allows stuff like this in your configuration file:"
|
||||
echo "include \"http://www.somesite.org/files/opers.conf\";"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -643,20 +667,144 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
|
||||
if [ "$REMOTEINC" = "1" ] ; then
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$CURLDIR"
|
||||
echo ""
|
||||
echo "Specify the directory you installed libcurl to"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
else
|
||||
TEST=$cc
|
||||
CURLDIR=`eval echo $cc` # modified
|
||||
if [ ! -d "$CURLDIR" ]; then
|
||||
# Reset any previous CURLDIR if it doesn't exist (anymore)
|
||||
CURLDIR=""
|
||||
fi
|
||||
|
||||
|
||||
INSTALLCURL="0"
|
||||
if [ "x$CURLDIR" = "x" ]; then
|
||||
# There is no reason to support this:
|
||||
if [ -d "/usr/local/include/curl" ]; then
|
||||
CURLDIR="/usr/local"
|
||||
fi
|
||||
done
|
||||
# Zeroeth, let's act SANE
|
||||
if [ -d "/usr/include/curl" ]; then
|
||||
CURLDIR="/usr"
|
||||
fi
|
||||
# First, let's make shell admins happy...
|
||||
if [ -d "/usr/share/unreal-curl" ]; then
|
||||
CURLDIR="/usr/share/unreal-curl"
|
||||
fi
|
||||
|
||||
GOTASYNC=0
|
||||
if [ "x$CURLDIR" != "x" ]; then
|
||||
# Check if it's of any use: a curl without async dns (cares) hangs the entire ircd..
|
||||
# normally this is done in ./configure but now we're forced to do it also here..
|
||||
if "$CURLDIR"/bin/curl-config --features | grep -q -e AsynchDNS; then
|
||||
GOTASYNC="1"
|
||||
fi
|
||||
if [ "$GOTASYNC" != "1" ]; then
|
||||
PREVCURLDIR="$CURLDIR"
|
||||
CURLDIR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Second, use the local curl if it exists (overrides above)
|
||||
if [ -d "$HOME/curl" ]; then
|
||||
CURLDIR="$HOME/curl"
|
||||
|
||||
# Check if it's recent enough...
|
||||
# But first, check if curl-config can be trusted at all: it depends
|
||||
# on 'bc' for some reason and not all systems have that installed!
|
||||
echo "1+1"|bc 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
"$CURLDIR"/bin/curl-config --checkfor 7.21.0
|
||||
if [ "$?" != 0 ]; then
|
||||
echo ""
|
||||
echo "Your self-compiled CURL library in $CURLDIR is slightly outdated."
|
||||
echo "This probably means you had the library from a previous installation of UnrealIRCd."
|
||||
echo "Because previous versions may be linked to a previous version to c-ares which"
|
||||
echo "were not ABI compatible it is highly recommended to remove the version"
|
||||
echo "and recompile it. We now have an automatic downloader and installer to compile"
|
||||
echo "and install curl for you (in $CURLDIR). You can choose to do so in the question"
|
||||
echo "after this one."
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="Yes"
|
||||
echo "Shall I rename $CURLDIR to $CURLDIR.old so it can be rebuild later on?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
rm -rf "$CURLDIR".old
|
||||
mv "$CURLDIR" "$CURLDIR".old
|
||||
CURLDIR=""
|
||||
GOTASYNC=1
|
||||
# wow the GOTASYNC=1 is hackish, but we need to prevent the error from later on
|
||||
;;
|
||||
[Nn]*)
|
||||
echo "Uh, ok... I hope you know what you are doing..."
|
||||
echo ""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Need to output it here, as the HOME check from above may cause this to be no longer relevant.
|
||||
if [ "x$CURLDIR" = "x" -a "$GOTASYNC" != "1" ]; then
|
||||
echo "Curl library was found in $PREVCURLDIR, but it does not support Asynchronous DNS (not compiled with c-ares)"
|
||||
echo "so it's of no use to us."
|
||||
fi
|
||||
|
||||
fi
|
||||
if [ "x$CURLDIR" = "x" ]; then
|
||||
# Still empty?
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="Yes"
|
||||
echo ""
|
||||
echo "Do you want me to automatically download and install curl for you?"
|
||||
echo "(will install in $HOME/curl)"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
INSTALLCURL="1"
|
||||
CURLDIR="$HOME/curl"
|
||||
;;
|
||||
[Nn]*)
|
||||
INSTALLCURL="0"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$INSTALLCURL" != "1" ]; then
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$CURLDIR"
|
||||
echo ""
|
||||
echo "Specify the directory you installed libcurl to"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
else
|
||||
TEST=$cc
|
||||
CURLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -670,8 +818,8 @@ while [ -z "$TEST" ] ; do
|
||||
echo ""
|
||||
echo "Do you want to enable prefixes for chanadmin and chanowner?"
|
||||
echo "This will give +a the & prefix and ~ for +q (just like +o is @)"
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient, PJIRC, etc.)"
|
||||
echo "with the notable exceptions of irssi, KVIrc and CGI:IRC."
|
||||
echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,"
|
||||
echo "PJIRC, irssi, CGI:IRC, etc.)"
|
||||
echo "This feature should be enabled/disabled network-wide."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
@@ -815,16 +963,20 @@ done
|
||||
if [ -n "$ADVANCED" ] ; then
|
||||
RUN_ADVANCED
|
||||
fi
|
||||
|
||||
TEST="$EXTRAPARA"
|
||||
echo ""
|
||||
echo "Would you like any more parameters to configure?"
|
||||
echo "Write them here:"
|
||||
echo $n "[]-> $c"
|
||||
echo "Would you like to pass any custom parameters to configure?"
|
||||
echo "See \`./configure --help' and write them here:"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read EXTRAPARA
|
||||
if [ -z "$EXTRAPARA" ]; then
|
||||
EXTRAPARA="$TEST"
|
||||
fi
|
||||
|
||||
rm -f config.settings
|
||||
cat > config.settings << __EOF__
|
||||
#
|
||||
NOSPOOF="$NOSPOOF"
|
||||
DPATH="$DPATH"
|
||||
SPATH="$SPATH"
|
||||
INET6="$INET6"
|
||||
@@ -834,8 +986,6 @@ MAXSENDQLENGTH="$MAXSENDQLENGTH"
|
||||
BUFFERPOOL="$BUFFERPOOL"
|
||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||
HUB="$HUB"
|
||||
DOMAINNAME="$DOMAINNAME"
|
||||
DEFPERM="$DEFPERM"
|
||||
CRYPTOIRCD="$CRYPTOIRCD"
|
||||
SSLDIR="$SSLDIR"
|
||||
@@ -849,10 +999,13 @@ SHUNNOTICES="$SHUNNOTICES"
|
||||
NOOPEROVERRIDE="$NOOPEROVERRIDE"
|
||||
DISABLEUSERMOD="$DISABLEUSERMOD"
|
||||
OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY"
|
||||
DISABLEEXTBANSTACKING="$DISABLEEXTBANSTACKING"
|
||||
GENCERTIFICATE="$GENCERTIFICATE"
|
||||
EXTRAPARA="$EXTRAPARA"
|
||||
ADVANCED="$ADVANCED"
|
||||
__EOF__
|
||||
RUN_CONFIGURE
|
||||
cd "$UNREALCWD"
|
||||
cat << __EOF__
|
||||
|
||||
_______________________________________________________________________
|
||||
@@ -868,8 +1021,6 @@ cat << __EOF__
|
||||
|_______________________________________________________________________|
|
||||
| - The UnrealIRCd Team - |
|
||||
| |
|
||||
| * Stskeeps stskeeps@unrealircd.com |
|
||||
| * codemastr codemastr@unrealircd.com |
|
||||
| * Syzop syzop@unrealircd.com |
|
||||
|_______________________________________________________________________|
|
||||
__EOF__
|
||||
|
||||
@@ -1,32 +1,18 @@
|
||||
UnrealIRCd is a free program, but we do put a lot of time, effort, and money
|
||||
into creating and maintaining Unreal. To make it easier for user's to show their
|
||||
into creating and maintaining Unreal. To make it easier for users to show their
|
||||
appreciation, the Unreal team has decided to accept donations through PayPal. If
|
||||
you like Unreal, and you'd like to see it continue to exist, please consider making
|
||||
a donation. We're not asking for anything huge, whatever you can afford is fine.
|
||||
|
||||
PayPal Donation Link:
|
||||
<https://www.paypal.com/xclick/business=donation%40unrealircd.org&
|
||||
item_name=UnrealIRCd+Donation&no_shipping=1&cn=Comments&tax=0¤cy_code=USD>
|
||||
PayPal Donation Link: http://unrealircd.com/donate.php
|
||||
|
||||
Or simply send a payment through PayPal to:
|
||||
donation@unrealircd.org
|
||||
If you don't want to use PayPal, or you want to donate something other than money,
|
||||
contact Syzop (syzop@unrealircd.com).
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than money
|
||||
(old computer hardware, etc.), contact Stskeeps (stskeeps@unrealircd.com) and send
|
||||
your donation to:
|
||||
|
||||
UnrealIRCd Project
|
||||
C/O Carsten Munk
|
||||
P.O.Box 52
|
||||
7400 Herning
|
||||
Denmark
|
||||
|
||||
All those who donate at least $10 USD will have their name and/or company listed in /credits.
|
||||
Additionally, all donators will be listed on the website (regardless of the amount). To make
|
||||
this possible, please include along with your donation the name (or nickname) you want to
|
||||
appear in the list as well as the company name (or IRC server) to list.
|
||||
All those who donate at least a certain minimum amount will have their name
|
||||
and/or company listed in /CREDITS.
|
||||
Additionally, all donators will be listed on the website (regardless of the amount).
|
||||
Please check the website for details.
|
||||
|
||||
Thank you for your support,
|
||||
The UnrealIRCd Team
|
||||
|
||||
[ $Id$ ]
|
||||
|
||||
+34
-21
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
|
||||
#
|
||||
|
||||
#XCFLAGS=-O -g -export-dynamic
|
||||
IRCDLIBS=@IRCDLIBS@ @TRELIBS@
|
||||
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @CARES_LIBS@
|
||||
CRYPTOLIB=@CRYPTOLIB@
|
||||
OPENSSLINCLUDES=
|
||||
|
||||
XCFLAGS=-I@TREINCDIR@ @CFLAGS@
|
||||
XCFLAGS=@TRE_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@
|
||||
#
|
||||
# use the following on MIPS:
|
||||
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
||||
@@ -104,9 +104,11 @@ URL=@URL@
|
||||
STRTOUL=@STRTOUL@
|
||||
|
||||
# [CHANGEME]
|
||||
# If you get crashes around a specific number of clients, and that client
|
||||
# load comes close or a little over the system-defined value of FD_SETSIZE,
|
||||
# override it here and see what happens.
|
||||
# If you get crashes around a specific number of clients, and that
|
||||
# client load comes close or a little over the system-defined value of
|
||||
# FD_SETSIZE, override it here and see what happens. You may override
|
||||
# the system FD_SETSIZE by setting the FD_SETSIZE Makefile variable to
|
||||
# -DFD_SETSIZE=<some number>.
|
||||
FD_SETSIZE=@FD_SETSIZE@
|
||||
|
||||
# Where is your openssl binary
|
||||
@@ -131,19 +133,21 @@ MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
|
||||
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
||||
'CRYPTOLIB=${CRYPTOLIB}' \
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' 'URL=${URL}'
|
||||
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
|
||||
'URL=${URL}'
|
||||
|
||||
custommodule:
|
||||
cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
@if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
|
||||
+cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
||||
|
||||
server:
|
||||
build:
|
||||
server: Makefile
|
||||
build: Makefile
|
||||
-@if [ ! -f include/setup.h ] ; then \
|
||||
echo "Hmm...doesn't look like you've run Config..."; \
|
||||
echo "Doing so now."; \
|
||||
sh Config; \
|
||||
fi
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Building $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
||||
done
|
||||
@@ -163,7 +167,7 @@ build:
|
||||
|
||||
clean:
|
||||
$(RM) -f *~ \#* core *.orig include/*.orig
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Cleaning $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
||||
done
|
||||
@@ -172,7 +176,7 @@ clean:
|
||||
fi
|
||||
|
||||
cleandir: clean
|
||||
rm -rf include/networks.h include/setup.h Makefile Settings
|
||||
rm -rf include/setup.h Makefile Settings
|
||||
|
||||
makex:
|
||||
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
||||
@@ -195,18 +199,14 @@ stamp: makedist
|
||||
echo "" >> include/stamp.h
|
||||
|
||||
depend:
|
||||
@for i in $(SUBDIRS); do \
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Making dependencies in $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
||||
done
|
||||
|
||||
install: all
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/*.network $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 networks/makenet $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0600 networks/networks.ndx $(IRCDDIR)/networks
|
||||
$(INSTALL) -m 0700 src/ircd $(BINDIR) 2>/dev/null || { $(INSTALL) -m 0700 -d "$$(dirname '$(BINDIR)')"; $(INSTALL) -m 0700 src/ircd $(BINDIR); }
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0600 doc/Authors doc/example.conf doc/coding-guidelines doc/tao.of.irc doc/unreal32docs.html $(IRCDDIR)/doc
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/aliases
|
||||
@@ -218,17 +218,28 @@ install: all
|
||||
$(INSTALL) -m 0700 unreal $(IRCDDIR)
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/modules
|
||||
$(INSTALL) -m 0700 src/modules/*.so $(IRCDDIR)/modules
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)/ircdcron
|
||||
$(INSTALL) -m 0600 ircdcron/ircd.cron $(IRCDDIR)/ircdcron
|
||||
$(INSTALL) -m 0700 ircdcron/ircdchk $(IRCDDIR)/ircdcron
|
||||
-@if [ ! -f "$(IRCDDIR)/curl-ca-bundle.crt" ] ; then \
|
||||
$(INSTALL) -m 0700 curl-ca-bundle.crt $(IRCDDIR) ; \
|
||||
fi
|
||||
-@if [ server.cert.pem -nt "$(IRCDDIR)/server.cert.pem" ] ; then \
|
||||
$(INSTALL) -m 0600 server.req.pem $(IRCDDIR) ; \
|
||||
$(INSTALL) -m 0600 server.key.pem $(IRCDDIR) ; \
|
||||
$(INSTALL) -m 0600 server.cert.pem $(IRCDDIR) ; \
|
||||
fi
|
||||
|
||||
pem: src/ssl.cnf
|
||||
@echo "Generating certificate request .. "
|
||||
$(OPENSSLPATH) req -new \
|
||||
-config src/ssl.cnf -out server.req.pem \
|
||||
-config src/ssl.cnf -sha256 -out server.req.pem \
|
||||
-keyout server.key.pem -nodes
|
||||
@echo "Generating self-signed certificate .. "
|
||||
$(OPENSSLPATH) req -x509 -days 365 -in server.req.pem \
|
||||
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
|
||||
-key server.key.pem -out server.cert.pem
|
||||
@echo "Generating fingerprint .."
|
||||
$(OPENSSLPATH) x509 -subject -dates -fingerprint -noout \
|
||||
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
|
||||
-in server.cert.pem
|
||||
@echo "Setting o-rwx & g-rwx for files... "
|
||||
chmod o-rwx server.req.pem server.key.pem server.cert.pem
|
||||
@@ -245,3 +256,5 @@ encpem: server.key.pem
|
||||
rm -f server.key.c.pem ; \
|
||||
fi
|
||||
|
||||
Makefile: config.status Makefile.in
|
||||
./config.status
|
||||
|
||||
+60
-53
@@ -1,70 +1,77 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.2.3 =
|
||||
= UnrealIRCd v3.2.10.7 =
|
||||
===============================================
|
||||
Was brought to you by:
|
||||
This release was brought to you by:
|
||||
|
||||
The core team:
|
||||
==============
|
||||
* Stskeeps <stskeeps@tspre.org>
|
||||
* codemastr <codemastr@unrealircd.com>
|
||||
* Syzop <syzop@unrealircd.org>
|
||||
* Luke <luke@unrealircd.com>
|
||||
|
||||
Contributors
|
||||
Head coder:
|
||||
============
|
||||
* McSkaf <mcskaf@unrealircd.org>
|
||||
* Zogg <zogg@unrealircd.org>
|
||||
* NiQuiL <niquil@unrealircd.org>
|
||||
* assyrian <assyrian@unrealircd.org>
|
||||
* nighthawk <nighthawk@unrealircd.com>
|
||||
* DrBin <drbin@unrealircd.com>
|
||||
* llthangel <llthangel@unrealircd.org>
|
||||
* Griever <griever@unrealircd.com>
|
||||
|
||||
Documentation:
|
||||
==============
|
||||
* CKnight^ <cknight@unrealircd.com>
|
||||
* Syzop
|
||||
|
||||
Precenses on the Internet:
|
||||
* http://www.unrealircd.com
|
||||
Coders:
|
||||
========
|
||||
* binki
|
||||
|
||||
Contributors:
|
||||
=============
|
||||
* Heero
|
||||
* nenolod
|
||||
* Adam
|
||||
* warg
|
||||
* Stealth
|
||||
* WolfSage
|
||||
* katsklaw
|
||||
* darkex
|
||||
* fspijkerman
|
||||
* fbi
|
||||
* Apocalypse
|
||||
|
||||
Previous coders:
|
||||
================
|
||||
* Stskeeps
|
||||
* codemastr
|
||||
* Many more..
|
||||
|
||||
Internet Presence:
|
||||
* http://www.unrealircd.com/
|
||||
|
||||
CVS
|
||||
====
|
||||
To get anonymous access: (read only)
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot login"
|
||||
|
||||
press enter when asked for password
|
||||
Then, choose the appropiate branch you want:
|
||||
|
||||
latest 3.2 release ("stable"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r stable -d Unreal-stable unreal"
|
||||
|
||||
latest 3.2 fixes / development ("unreal3_2_fixes"):
|
||||
"cvs -d :pserver:anonymous@cvs.ircsystems.net:/home/cmunk/ircsystems/cvsroot checkout -r unreal3_2_fixes -d Unreal-stable unreal"
|
||||
UnrealIRCd Bugtracker (Where to report bugs, make suggestions, and submit patches)
|
||||
===================================================================================
|
||||
http://bugs.unrealircd.org/
|
||||
|
||||
To get support
|
||||
================
|
||||
Before asking others for help you MUST:
|
||||
* read the docs (doc/unreal32docs.html or online: www.unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (www.vulnscan.org/UnrealIrcd/faq/)
|
||||
* read the docs (doc/unreal32docs.html or online: http://unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (http://vulnscan.org/UnrealIrcd/faq/)
|
||||
|
||||
Means of support:
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #unreal-support
|
||||
[Note: Follow the bots instructions in order to get voice.
|
||||
Please be patient after asking questions, we may do other stuff
|
||||
or we're away. Don't repeat questions, we heard you first time,
|
||||
READ THE TOPIC before you ask anything. We do this on a free
|
||||
base so we are volunteeringly helping you, but we are humans
|
||||
like you, and we got to have peace at times as well.]
|
||||
* IRC: /server irc.unrealircd.com 6667 - /join #unreal-support
|
||||
[Note: Follow the bot's instructions in order to get voice.
|
||||
Please be patient after asking questions, we may be busy
|
||||
or we're away. Don't repeat questions, we will have heard
|
||||
you first time.
|
||||
READ THE TOPIC before you ask anything. We give support
|
||||
on a free basis. We are volunteering to help you, but we
|
||||
are humans like you. We sometimes just need some peace.]
|
||||
* Forum: http://forums.unrealircd.com/
|
||||
* Mailing list: unreal-users@lists.sourceforge.net
|
||||
(http://lists.sourceforge.net/lists/listinfo/unreal-users also
|
||||
has links to the archive).
|
||||
|
||||
UnrealIRCd Bugtracker (Where to report bugs or make suggestions)
|
||||
==================================================================
|
||||
http://bugs.unrealircd.org
|
||||
Development version
|
||||
====================
|
||||
To access the latest development version of UnrealIRCd you need to use mercurial (hg).
|
||||
Note that because you are accessing a development version it may not compile, the
|
||||
server may crash, or other problems can occur since the code is likely to be only
|
||||
lightly tested (or not at all). On the other hand, using the development version may
|
||||
help you to get rid of that single nasty bug that is haunting you, plus if you test
|
||||
it and give us feedback (report bugs) then you actually help us with developing Unreal.
|
||||
|
||||
The command to grab the development version is:
|
||||
hg clone http://hg.unrealircd.org/unreal
|
||||
|
||||
If you get something like 'hg: command not found' then you need to install mercurial.
|
||||
Most *NIX systems have such a 'mercurial' package, but if you don't, or you are on
|
||||
Windows or Mac OS X, then see http://mercurial.selenic.com/
|
||||
|
||||
Want to discuss, chat, etc?
|
||||
=============================
|
||||
* IRC: /server irc.ircsystems.net 6667 - /join #UnrealIRCd
|
||||
* IRC: /server irc.unrealircd.com 6667 - /join #chat
|
||||
(NOT for support! If you want support then use #unreal-support instead!)
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
/* Atheme Aliases */
|
||||
|
||||
alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
alias botserv { type services; };
|
||||
alias bs { target botserv; type services; };
|
||||
alias hostserv { type services; };
|
||||
alias hs { target hostserv; type services; };
|
||||
alias saslserv { type services; };
|
||||
alias sss { target saslserv; type services; };
|
||||
alias gameserv { type services; };
|
||||
alias gms { target gameserv; type services; };
|
||||
alias groupserv { type services; };
|
||||
alias grs { target groupserv; type services; };
|
||||
alias alis { type services; };
|
||||
alias ls { target alis; type services; };
|
||||
|
||||
include "aliases/aliases.conf";
|
||||
|
||||
@@ -21,8 +21,8 @@ alias helpserv { type services; };
|
||||
alias hs { target helpserv; type services; };
|
||||
alias hostserv { type services; };
|
||||
alias ho { target hostserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias operserv { type services; };
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias rootserv { type services; };
|
||||
alias rs { target rootserv; type services; };
|
||||
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
@@ -4,8 +4,8 @@ alias nickserv { type services; };
|
||||
alias ns { target nickserv; type services; };
|
||||
alias chanserv { type services; };
|
||||
alias cs { target chanserv; type services; };
|
||||
alias memoserv { type services; };
|
||||
alias ms { target memoserv; type services; };
|
||||
alias memoserv { type services; spamfilter yes; };
|
||||
alias ms { target memoserv; type services; spamfilter yes; };
|
||||
alias operserv { type services; };
|
||||
alias os { target operserv; type services; };
|
||||
alias helpserv { type services; };
|
||||
|
||||
Vendored
-141
@@ -1,141 +0,0 @@
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.4-p4
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
|
||||
dnl This program is distributed in the hope that it will be useful,
|
||||
dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
dnl PARTICULAR PURPOSE.
|
||||
|
||||
dnl Macro: unet_CHECK_TYPE_SIZES
|
||||
dnl
|
||||
dnl Check the size of several types and define a valid int16_t and int32_t.
|
||||
dnl
|
||||
AC_DEFUN(unreal_CHECK_TYPE_SIZES,
|
||||
[dnl Check type sizes
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
if test "$ac_cv_sizeof_int" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, int)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, short)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned short)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 16 bits])
|
||||
fi
|
||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, int)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, short)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned short)
|
||||
elif test "$ac_cv_sizeof_long" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, long)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned long)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 32 bits])
|
||||
fi
|
||||
AC_CHECK_SIZEOF(rlim_t)
|
||||
if test "$ac_cv_sizeof_rlim_t" = 8 ; then
|
||||
AC_DEFINE(LONG_LONG_RLIM_T)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(CHECK_LIBCURL,
|
||||
[
|
||||
AC_ARG_ENABLE(libcurl,
|
||||
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
|
||||
[
|
||||
CURLCFLAG=`$enableval/bin/curl-config --cflags`
|
||||
CFLAGS="$CFLAGS $CURLCFLAG -DUSE_LIBCURL"
|
||||
CURLLIBS=`$enableval/bin/curl-config --libs`
|
||||
|
||||
dnl curl-7.11.0 and up will include the ares info, older versions do not
|
||||
if test "x`echo $CURLLIBS |grep .*ares.*`" = x ; then
|
||||
CURLLIBS="$CURLLIBS -lares"
|
||||
fi
|
||||
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||
URL="url.o"
|
||||
AC_SUBST(URL)
|
||||
])
|
||||
])
|
||||
|
||||
dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostler@juniper.net>
|
||||
|
||||
AC_DEFUN([CHECK_SSL],
|
||||
[
|
||||
AC_ARG_ENABLE(ssl,
|
||||
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr])],
|
||||
[
|
||||
AC_MSG_CHECKING(for openssl)
|
||||
for dir in $enableval /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do
|
||||
ssldir="$dir"
|
||||
if test -f "$dir/include/openssl/ssl.h"; then
|
||||
AC_MSG_RESULT(found in $ssldir/include/openssl)
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break;
|
||||
fi
|
||||
if test -f "$dir/include/ssl.h"; then
|
||||
AC_MSG_RESULT(found in $ssldir/include)
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test x_$found_ssl != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ssl support)
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
||||
fi
|
||||
AC_DEFINE(USE_SSL)
|
||||
fi
|
||||
],
|
||||
)
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
[
|
||||
AC_ARG_ENABLE(ziplinks,
|
||||
[AC_HELP_STRING([--enable-ziplinks],[enable ziplinks will check /usr/local /usr /usr/pkg])],
|
||||
[
|
||||
AC_MSG_CHECKING(for zlib)
|
||||
for dir in $enableval /usr/local /usr /usr/pkg; do
|
||||
zlibdir="$dir"
|
||||
if test -f "$dir/include/zlib.h"; then
|
||||
AC_MSG_RESULT(found in $zlibdir)
|
||||
found_zlib="yes";
|
||||
if test "$zlibdir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -DZIP_LINKS";
|
||||
else
|
||||
CFLAGS="$CFLAGS -I$zlibdir/include -DZIP_LINKS";
|
||||
fi
|
||||
break;
|
||||
fi
|
||||
done
|
||||
if test x_$found_zlib != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
AC_WARN(disabling ziplink support)
|
||||
else
|
||||
IRCDLIBS="$IRCDLIBS -lz";
|
||||
if test "$zlibdir" != "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$zlibdir/lib";
|
||||
fi
|
||||
HAVE_ZLIB=yes
|
||||
fi
|
||||
AC_SUBST(HAVE_ZLIB)
|
||||
],
|
||||
)
|
||||
])
|
||||
@@ -1,461 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(src/ircd.c)
|
||||
if test $# = 0; then
|
||||
echo "You might want to run ./Config or provide some parameters to this script."
|
||||
echo "./configure --help for information about this script"
|
||||
exit 0
|
||||
fi
|
||||
AC_CONFIG_HEADER(include/setup.h)
|
||||
AC_PROG_CC
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
AC_CACHE_CHECK(if gcc has a working -pipe, ac_cv_pipe, [
|
||||
save_cflags="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -pipe"
|
||||
AC_TRY_COMPILE(,, ac_cv_pipe="yes", ac_cv_pipe="no")
|
||||
CFLAGS="$save_cflags"
|
||||
])
|
||||
if test "$ac_cv_pipe" = "yes"; then
|
||||
CFLAGS="-pipe $CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
|
||||
|
||||
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
|
||||
esac
|
||||
|
||||
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
||||
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
||||
dnl to enable this without -Wall should be shot on sight.
|
||||
case "`gcc -v --help 2>&1`" in
|
||||
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
|
||||
esac
|
||||
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
AC_PATH_PROG(OPENSSLPATH,openssl)
|
||||
AC_PATH_PROG(INSTALL,install)
|
||||
AC_CHECK_PROG(MAKER, gmake, gmake, make)
|
||||
AC_PATH_PROG(GMAKE,gmake)
|
||||
AC_PATH_PROG(GUNZIP, gunzip)
|
||||
AC_PATH_PROG(PKGCONFIG, pkg-config)
|
||||
|
||||
dnl Checks for libraries.
|
||||
AC_CHECK_LIB(descrypt, crypt, [AC_DEFINE(HAVE_CRYPT) IRCDLIBS="$IRCDLIBS-ldescrypt " MKPASSWDLIBS="-ldescrypt"],
|
||||
AC_CHECK_LIB(crypt, crypt,[ AC_DEFINE(HAVE_CRYPT) IRCDLIBS="$IRCDLIBS-lcrypt " MKPASSWDLIBS="-lcrypt"]))
|
||||
AC_CHECK_LIB(socket, socket,IRCDLIBS="$IRCDLIBS-lsocket " SOCKLIB="-lsocket")
|
||||
AC_CHECK_LIB(nsl, inet_ntoa,IRCDLIBS="$IRCDLIBS-lnsl " INETLIB="-lnsl")
|
||||
|
||||
AC_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
|
||||
dnl module checking based on Hyb7's module checking code
|
||||
AC_DEFUN(AC_ENABLE_DYN,
|
||||
[
|
||||
AC_CHECK_FUNC(dlopen,, AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
||||
[
|
||||
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
|
||||
AC_DEFINE(STATIC_LINKING)
|
||||
]))
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -export-dynamic"
|
||||
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
||||
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
||||
if test "$ac_cv_export_dynamic" = "no"; then
|
||||
CFLAGS=$hold_cflags
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
ac_cv_pic="-fPIC -DPIC -shared"
|
||||
case `uname -s` in
|
||||
Darwin*[)]
|
||||
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
|
||||
;;
|
||||
HP-UX*[)]
|
||||
ac_cv_pic="-fPIC"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case `uname -s` in
|
||||
SunOS*[)]
|
||||
ac_cv_pic="-KPIC -DPIC -G"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
|
||||
cat >uscore.c << __EOF__
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
__EOF__
|
||||
$CC -o uscore $CFLAGS uscore.c 1>&5
|
||||
if test -z "`strings -a uscore |grep '^_main$'`"; then
|
||||
ac_cv_underscore=no
|
||||
else
|
||||
ac_cv_underscore=yes
|
||||
fi
|
||||
rm -f uscore uscore.c
|
||||
])
|
||||
if test "$ac_cv_underscore" = "yes"; then
|
||||
AC_DEFINE(UNDERSCORE)
|
||||
fi
|
||||
|
||||
MODULEFLAGS=$ac_cv_pic
|
||||
AC_DEFINE(DYNAMIC_LINKING)
|
||||
])
|
||||
AC_DEFUN(AC_ENABLE_INET6,[
|
||||
AC_CACHE_CHECK(if your system has IPv6 support, ac_cv_ip6, [
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB"
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
int main() {
|
||||
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
], ac_cv_ip6=yes, ac_cv_ip6=no)
|
||||
])
|
||||
if test "$ac_cv_ip6" = "no"; then
|
||||
AC_MSG_WARN(Your system does not support IPv6 so it will not be enabled)
|
||||
else
|
||||
AC_DEFINE(INET6)
|
||||
dnl in6addr_any detection code taken from ratbox
|
||||
AC_MSG_CHECKING([for struct in6addr_any])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#define IN_AUTOCONF
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>]],
|
||||
[[struct in6_addr a = in6addr_any;]]
|
||||
)],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
AC_DEFINE(NO_IN6ADDR_ANY)
|
||||
]
|
||||
)
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
])
|
||||
|
||||
AC_CHECK_HEADER(sys/param.h,AC_DEFINE(PARAMH))
|
||||
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(STDLIBH))
|
||||
AC_CHECK_HEADER(stddef.h,AC_DEFINE(STDDEFH))
|
||||
AC_CHECK_HEADER(sys/syslog.h,AC_DEFINE(SYSSYSLOGH))
|
||||
AC_CHECK_HEADER(unistd.h,AC_DEFINE(UNISTDH))
|
||||
AC_CHECK_HEADER(string.h,AC_DEFINE(STRINGH))
|
||||
AC_CHECK_HEADER(strings.h,AC_DEFINE(STRINGSH))
|
||||
AC_CHECK_HEADER(malloc.h,AC_DEFINE(MALLOCH,<malloc.h>))
|
||||
AC_CHECK_HEADER(sys/rusage.h,AC_DEFINE(RUSAGEH))
|
||||
AC_CHECK_HEADER(glob.h,AC_DEFINE(GLOBH))
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
AC_TYPE_SIZE_T
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
AC_TYPE_UID_T
|
||||
unreal_CHECK_TYPE_SIZES
|
||||
|
||||
AC_CACHE_CHECK(what kind of nonblocking sockets you have, ac_cv_nonblocking,[
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB"
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(1);
|
||||
}
|
||||
int main() {
|
||||
#ifdef O_NONBLOCK
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
],ac_cv_nonblocking=O_NONBLOCK,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(0);
|
||||
}
|
||||
int main() {
|
||||
#ifdef O_NDELAY
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
}],ac_cv_nonblocking=O_NDELAY,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(1);
|
||||
}
|
||||
int main() {
|
||||
#ifdef FIONBIO
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, FIONBIO))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
], ac_cv_nonblocking=FIONBIO,ac_cv_nonblocking=none)])])])
|
||||
if test "$ac_cv_nonblocking" = "O_NONBLOCK"; then
|
||||
AC_DEFINE(NBLOCK_POSIX)
|
||||
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
|
||||
AC_DEFINE(NBLOCK_BSD)
|
||||
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
|
||||
AC_DEFINE(NBLOCK_SYSV)
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
dnl Checks for library functions.
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_FUNC_SETPGRP
|
||||
AC_FUNC_SETVBUF_REVERSED
|
||||
AC_FUNC_ALLOCA
|
||||
AC_CHECK_FUNCS(snprintf,AC_DEFINE(HAVE_SNPRINTF))
|
||||
AC_CHECK_FUNCS(vsnprintf,AC_DEFINE(HAVE_VSNPRINTF))
|
||||
AC_CHECK_FUNCS(strlcpy, AC_DEFINE(HAVE_STRLCPY))
|
||||
AC_CHECK_FUNCS(strlcat, AC_DEFINE(HAVE_STRLCAT))
|
||||
AC_CHECK_FUNCS(strlncat, AC_DEFINE(HAVE_STRLNCAT))
|
||||
AC_CHECK_FUNCS(inet_pton, AC_DEFINE(HAVE_INET_PTON))
|
||||
AC_CHECK_FUNCS(inet_ntop, AC_DEFINE(HAVE_INET_NTOP))
|
||||
dnl Check if it supports C99 style variable length arrays
|
||||
AC_CACHE_CHECK(if C99 variable length arrays are supported, ac_cv_varlen_arrays, [
|
||||
AC_TRY_COMPILE(,[
|
||||
int main() {
|
||||
int i = 5;
|
||||
int a[i];
|
||||
a[0] = 1;
|
||||
return 0;
|
||||
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
|
||||
])
|
||||
if test "$ac_cv_varlen_arrays" = "yes" ; then
|
||||
AC_DEFINE(HAVE_C99_VARLEN_ARRAY)
|
||||
fi
|
||||
AC_CACHE_CHECK(if we can set the core size to unlimited, ac_cv_force_core,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
int main() {
|
||||
struct rlimit corelim;
|
||||
corelim.rlim_cur = corelim.rlim_max = RLIM_INFINITY;
|
||||
if (setrlimit(RLIMIT_CORE, &corelim))
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],ac_cv_force_core=yes,ac_cv_force_core=no)
|
||||
])
|
||||
if test "$ac_cv_force_core" = "yes"; then
|
||||
AC_DEFINE(FORCE_CORE)
|
||||
fi
|
||||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS(gettimeofday,AC_DEFINE(GETTIMEOFDAY),[AC_CHECK_FUNCS(lrand48,AC_DEFINE(LRADN48))])
|
||||
AC_CHECK_FUNCS(getrusage,AC_DEFINE(GETRUSAGE_2),[AC_CHECK_FUNCS(times,AC_DEFINE(TIMES_2))])
|
||||
AC_CHECK_FUNCS(setproctitle,AC_DEFINE(HAVE_SETPROCTITLE),[
|
||||
AC_CHECK_LIB(util,setproctitle,AC_DEFINE(HAVE_SETPROCTITLE) IRCDLIBS="$IRCDLIBS-lutil",[
|
||||
AC_EGREP_HEADER([#define.*PS_STRINGS.*],sys/exec.h,AC_DEFINE(HAVE_PSSTRINGS),[
|
||||
AC_CHECK_FUNCS(pstat,AC_DEFINE(HAVE_PSTAT))
|
||||
])
|
||||
])
|
||||
])
|
||||
AC_CACHE_CHECK(what type of signals you have, ac_cv_sigtype, [
|
||||
AC_TRY_RUN([
|
||||
#include <signal.h>
|
||||
int main() {
|
||||
sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L);
|
||||
}
|
||||
], ac_cv_sigtype=POSIX, [
|
||||
AC_TRY_RUN([
|
||||
#include <signal.h>
|
||||
int calls = 0;
|
||||
void handler()
|
||||
{
|
||||
if (calls)
|
||||
return;
|
||||
calls++;
|
||||
kill(getpid(), SIGTERM);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
int main() {
|
||||
signal(SIGTERM, handler);
|
||||
kill(getpid(), SIGTERM);
|
||||
exit(0);
|
||||
}
|
||||
], ac_cv_sigtype=BSD,ac_cv_sigtype=SYSV)])])
|
||||
|
||||
if test "$ac_cv_sigtype" = "POSIX"; then
|
||||
AC_DEFINE(POSIX_SIGNALS)
|
||||
elif test "$ac_cv_sigtype" = "BSD"; then
|
||||
AC_DEFINE(BSD_RELIABLE_SIGNALS)
|
||||
else
|
||||
AC_DEFINE(SYSV_UNRELIABLE_SIGNALS)
|
||||
fi
|
||||
AC_CHECK_FUNCS(strtoken,,AC_DEFINE(NEED_STRTOKEN))
|
||||
AC_CHECK_FUNCS(strtok,,AC_DEFINE(NEED_STRTOK))
|
||||
AC_CHECK_FUNCS(strerror,,AC_DEFINE(NEED_STRERROR))
|
||||
AC_CHECK_FUNCS(index,,AC_DEFINE(NOINDEX))
|
||||
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
|
||||
AC_CHECK_FUNCS(bcopy,,AC_DEFINE(NEED_BCOPY))
|
||||
AC_CHECK_FUNCS(bcmp,,AC_DEFINE(NEED_BCMP))
|
||||
AC_CHECK_FUNCS(bzero,,AC_DEFINE(NEED_BZERO))
|
||||
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE(GOT_STRCASECMP))
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB $INETLIB"
|
||||
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE(NEED_INET_ADDR))
|
||||
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE(NEED_INET_NTOA))
|
||||
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE(NEED_INET_NETOF))
|
||||
LIBS="$save_libs"
|
||||
AC_CHECK_FUNCS(syslog,AC_DEFINE(HAVE_SYSLOG))
|
||||
AC_CHECK_FUNCS(vsyslog,AC_DEFINE(HAVE_VSYSLOG))
|
||||
AC_SUBST(STRTOUL)
|
||||
AC_SUBST(CRYPTOLIB)
|
||||
AC_SUBST(MODULEFLAGS)
|
||||
AC_ARG_WITH(listen, [AC_HELP_STRING([--with-listen=backlog],[Specify the listen backlog value])],
|
||||
AC_DEFINE_UNQUOTED(LISTEN_SIZE,$withval),AC_DEFINE(LISTEN_SIZE,5))
|
||||
AC_ARG_WITH(nick-history, [AC_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
||||
AC_DEFINE_UNQUOTED(NICKNAMEHISTORYLENGTH,$withval), AC_DEFINE(NICKNAMEHISTORYLENGTH,2000))
|
||||
AC_ARG_WITH(sendq, [AC_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
|
||||
AC_DEFINE_UNQUOTED(MAXSENDQLENGTH,$withval),AC_DEFINE(MAXSENDQLENGTH,3000000))
|
||||
AC_ARG_WITH(bufferpool, [AC_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
||||
AC_DEFINE_UNQUOTED(BUFFERPOOL,[($withval * MAXSENDQLENGTH)]),AC_DEFINE(BUFFERPOOL,[(18 * MAXSENDQLENGTH)]))
|
||||
AC_ARG_WITH(hostname, [AC_HELP_STRING([--with-hostname=host],[Specify the local hostname of the server])], AC_DEFINE_UNQUOTED(DOMAINNAME,"$withval"),AC_DEFINE_UNQUOTED(DOMAINNAME,"`hostname`"))
|
||||
AC_DEFINE_UNQUOTED(MYOSNAME,"`uname -a`")
|
||||
AC_ARG_WITH(permissions, [AC_HELP_STRING([--with-permissions=permissions],[Specify the default permissions for
|
||||
configuration files])], AC_DEFINE_UNQUOTED(DEFAULT_PERMISSIONS,$withval), AC_DEFINE(DEFAULT_PERMISSIONS, 0600))
|
||||
AC_ARG_WITH(dpath, [AC_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
||||
AC_DEFINE_UNQUOTED(DPATH, "$withval") IRCDDIR="$withval", AC_DEFINE_UNQUOTED(DPATH,"`pwd`") IRCDDIR="`pwd`")
|
||||
AC_ARG_WITH(fd-setsize, [AC_HELP_STRING([--with-fd-setsize=size],[Specify the max file descriptors to use])],
|
||||
ac_fd=$withval, ac_fd=1024)
|
||||
AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $ac_fd)
|
||||
AC_ARG_WITH(spath, [AC_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
||||
AC_DEFINE_UNQUOTED(SPATH,"$withval") BINDIR="$withval",AC_DEFINE_UNQUOTED(SPATH,"`pwd`/src/ircd") BINDIR="`pwd`/src/ircd")
|
||||
AC_ARG_ENABLE(nospoof, [AC_HELP_STRING([--enable-nospoof],[Enable spoofing protection])], AC_DEFINE(NOSPOOF))
|
||||
AC_ARG_ENABLE(prefixaq, [AC_HELP_STRING([--enable-prefixaq],[Enable chanadmin and chanowner prefixes])], AC_DEFINE(PREFIX_AQ))
|
||||
AC_ARG_ENABLE(hub, [AC_HELP_STRING([--enable-hub],[Compile as a hub server])], AC_DEFINE(HUB))
|
||||
AC_ARG_WITH(showlistmodes, [AC_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
|
||||
AC_DEFINE(LIST_SHOW_MODES))
|
||||
AC_ARG_WITH(topicisnuhost, [AC_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
|
||||
AC_DEFINE(TOPIC_NICK_IS_NUHOST))
|
||||
AC_ARG_WITH(shunnotices, [AC_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
|
||||
AC_DEFINE(SHUN_NOTICES))
|
||||
AC_ARG_WITH(no-operoverride, [AC_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
|
||||
AC_DEFINE(NO_OPEROVERRIDE))
|
||||
AC_ARG_WITH(disableusermod, [AC_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
|
||||
AC_DEFINE(DISABLE_USERMOD))
|
||||
AC_ARG_WITH(operoverride-verify, [AC_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
||||
AC_DEFINE(OPEROVERRIDE_VERIFY))
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
CHECK_LIBCURL
|
||||
AC_ARG_ENABLE(dynamic-linking, [AC_HELP_STRING([--enable-dynamic-linking],[Make the IRCd dynamically link shared objects rather than statically])], AC_ENABLE_DYN, AC_DEFINE(STATIC_LINKING))
|
||||
AC_ARG_ENABLE(inet6, [AC_HELP_STRING([--enable-inet6],[Make the IRCd support IPv6])], AC_ENABLE_INET6)
|
||||
AC_SUBST(IRCDDIR)
|
||||
AC_SUBST(BINDIR)
|
||||
AC_MSG_CHECKING(if FD_SETSIZE is large enough to allow $ac_fd file descriptors)
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
int main() {
|
||||
if (FD_SETSIZE >= $ac_fd)
|
||||
exit(0);
|
||||
exit(1);
|
||||
}
|
||||
], AC_MSG_RESULT(yes), [
|
||||
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
AC_SUBST(FD_SETSIZE)
|
||||
case `uname -s` in
|
||||
*SunOS*)
|
||||
CFLAGS="$CFLAGS -D_SOLARIS"
|
||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
*solaris*)
|
||||
CFLAGS="$CFLAGS -D_SOLARIS"
|
||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl REMEMBER TO CHANGE WITH A NEW RELEASE!
|
||||
tre_version="0.7.2"
|
||||
AC_MSG_RESULT(extracting TRE regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old tre directory to force a recompile...
|
||||
rm -rf tre-$tre_version
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz tre.tar.gz
|
||||
else
|
||||
cp tre.tar.gz tre.tar.gz.bak
|
||||
gunzip -f tre.tar.gz
|
||||
cp tre.tar.gz.bak tre.tar.gz
|
||||
tar xf tre.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring TRE regex library)
|
||||
cd tre-$tre_version
|
||||
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
$ac_cv_prog_MAKER
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
$ac_cv_prog_MAKER install
|
||||
TREINCDIR="$cur_dir/extras/regexp/include"
|
||||
AC_SUBST(TREINCDIR)
|
||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||
TRELIBS="-L../extras/regexp/lib -ltre"
|
||||
else
|
||||
TRELIBS=`$ac_cv_path_PKGCONFIG --libs tre.pc`
|
||||
fi
|
||||
AC_SUBST(TRELIBS)
|
||||
cd $cur_dir
|
||||
AC_OUTPUT(Makefile src/modules/Makefile unreal ircdcron/ircdchk)
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
@@ -0,0 +1,253 @@
|
||||
#serial 1
|
||||
|
||||
dnl Macro: unreal_CHECK_TYPE_SIZES
|
||||
dnl originally called unet_CHECK_TYPE_SIZES
|
||||
dnl
|
||||
dnl Check the size of several types and define a valid int16_t and int32_t.
|
||||
dnl
|
||||
AC_DEFUN([unreal_CHECK_TYPE_SIZES],
|
||||
[dnl Check type sizes
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
if test "$ac_cv_sizeof_int" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, int)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 2 ; then
|
||||
AC_CHECK_TYPE(int16_t, short)
|
||||
AC_CHECK_TYPE(u_int16_t, unsigned short)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 16 bits])
|
||||
fi
|
||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, int)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned int)
|
||||
elif test "$ac_cv_sizeof_short" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, short)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned short)
|
||||
elif test "$ac_cv_sizeof_long" = 4 ; then
|
||||
AC_CHECK_TYPE(int32_t, long)
|
||||
AC_CHECK_TYPE(u_int32_t, unsigned long)
|
||||
else
|
||||
AC_MSG_ERROR([Cannot find a type with size of 32 bits])
|
||||
fi
|
||||
AC_CHECK_SIZEOF(rlim_t)
|
||||
if test "$ac_cv_sizeof_rlim_t" = 8 ; then
|
||||
AC_DEFINE([LONG_LONG_RLIM_T], [], [Define if rlim_t is long long])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_LIBCURL],
|
||||
[
|
||||
AC_ARG_ENABLE(libcurl,
|
||||
[AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])],
|
||||
[enable_curl=$enableval],
|
||||
[enable_curl=no])
|
||||
|
||||
AS_IF([test "x$enable_curl" != "xno"],
|
||||
[
|
||||
dnl sane, default directory for Operating System-managed libcURL
|
||||
dnl (when --enable-libcurl is passed without any arguments). On
|
||||
dnl systems with stuff in /usr/local, /usr/local/bin should already
|
||||
dnl be in PATH. On sane systems, this will invoke the curl-config
|
||||
dnl installed by the package manager.
|
||||
CURLCONFIG="curl-config"
|
||||
AS_IF([test "x$enable_curl" != "xyes"],
|
||||
[CURLCONFIG="$enable_curl/bin/curl-config"])
|
||||
|
||||
AC_MSG_CHECKING([$CURLCONFIG])
|
||||
AS_IF([$CURLCONFIG --version 2>/dev/null >/dev/null],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_FAILURE([Could not find curl-config, try editing --enable-libcurl])])
|
||||
|
||||
CURLCFLAG="`$CURLCONFIG --cflags`"
|
||||
CURLLIBS="`$CURLCONFIG --libs`"
|
||||
|
||||
dnl This test must be this way because of #3981
|
||||
AS_IF([$CURLCONFIG --features | grep -q -e AsynchDNS],
|
||||
[CURLUSESCARES="1"],
|
||||
[CURLUSESCARES="0"])
|
||||
AS_IF([test "$CURLUSESCARES" = "0"],
|
||||
[AC_MSG_WARN([cURL seems compiled without c-ares support. Your IRCd will possibly stall when REHASHing!])])
|
||||
|
||||
dnl sanity warnings
|
||||
AS_IF([test -z "${CURLLIBS}"],
|
||||
[AC_MSG_WARN([CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config])])
|
||||
|
||||
dnl Ok this is ugly, basically we need to strip the version of c-ares that curl uses
|
||||
dnl because we want to use our own version (which is hopefully fully binary
|
||||
dnl compatible with the curl one as well).
|
||||
dnl Therefore we need to strip the cares libs in a weird way...
|
||||
dnl If anyone can come up with something better and still portable (no awk!?)
|
||||
dnl then let us know. -- Syzop
|
||||
dnl
|
||||
dnl It is dangerous to mix and match cURL with potentially ABI-incompatible versions of
|
||||
dnl c-ares, just use --with-system-cares.
|
||||
dnl Thus, make sure to use --with-system-cares when using system-cURL. If the user
|
||||
dnl wants bundled c-ares + system libcURL, then we should filter out c-ares
|
||||
dnl flags. _Only_ in that case should we mess with the flags. -- ohnobinki
|
||||
|
||||
AS_IF([test "x$with_system_cares" = "xno" && test "x$HOME/curl" != "x$enable_curl" && test "x/usr/share/unreal-curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ],
|
||||
[
|
||||
AC_MSG_ERROR([[
|
||||
|
||||
You have decided to build unrealIRCd with libcURL (remote includes) support.
|
||||
However, you have disabled system-installed c-ares support (--with-system-cares).
|
||||
Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible
|
||||
with the system-installed libcURL, this is a bad idea which may result in error
|
||||
messages looking like:
|
||||
|
||||
\`\`[error] unrealircd.conf:9: include: error downloading '(http://example.net/ex.conf)': Could not resolve host: example.net (Successful completion)''
|
||||
|
||||
Or UnrealIRCd might even crash.
|
||||
|
||||
Please build UnrealIRCd with --with-system-cares when enabling --enable-libcurl
|
||||
]])
|
||||
])
|
||||
|
||||
AS_IF([test "x`echo $CURLLIBS |grep ares`" != x && test "x$with_system_cares" = "xno"],
|
||||
[
|
||||
dnl Attempt one: Linux sed
|
||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -r 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
||||
AS_IF([test "x$XCURLLIBS" = "x"],
|
||||
[
|
||||
dnl Attempt two: FreeBSD (and others?) sed
|
||||
[XCURLLIBS="`echo "$CURLLIBS"|sed -E 's/[^ ]*ares[^ ]*//g' 2>/dev/null`"]
|
||||
AS_IF([test x"$XCURLLIBS" = x],
|
||||
[
|
||||
AC_MSG_ERROR([sed appears to be broken. It is needed for a remote includes compile hack.])
|
||||
])
|
||||
])
|
||||
CURLLIBS="$XCURLLIBS"
|
||||
|
||||
IRCDLIBS_CURL_CARES="$CARES_LIBS"
|
||||
CFLAGS_CURL_CARES="$CARES_CFLAGS"
|
||||
])
|
||||
|
||||
dnl Make sure that linking against cURL works rather than letting the user
|
||||
dnl find out after compiling most of his program. ~ohnobinki
|
||||
IRCDLIBS="$IRCDLIBS $CURLLIBS"
|
||||
CFLAGS="$CFLAGS $CURLCFLAG"
|
||||
AC_DEFINE([USE_LIBCURL], [], [Define if you have libcurl installed to get remote includes and MOTD support])
|
||||
|
||||
AC_MSG_CHECKING([curl_easy_init() in $CURLLIBS])
|
||||
LIBS_SAVEDA="$LIBS"
|
||||
CFLAGS_SAVEDA="$CFLAGS"
|
||||
|
||||
LIBS="$IRCDLIBS $IRCDLIBS_CURL_CARES"
|
||||
CFLAGS="$CFLAGS $CFLAGS_CURL_CARES"
|
||||
AC_LINK_IFELSE(
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[[#include <curl/curl.h>]],
|
||||
[[CURL *curl = curl_easy_init();]])
|
||||
],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_FAILURE([You asked for libcURL (remote includes) support, but it can't be found at $enable_curl])
|
||||
])
|
||||
LIBS="$LIBS_SAVEDA"
|
||||
CFLAGS="$CFLAGS_SAVEDA"
|
||||
|
||||
URL="url.o"
|
||||
AC_SUBST(URL)
|
||||
]) dnl AS_IF(enable_curl)
|
||||
])
|
||||
|
||||
dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostler@juniper.net>
|
||||
|
||||
AC_DEFUN([CHECK_SSL],
|
||||
[
|
||||
AC_ARG_ENABLE(ssl,
|
||||
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr])],
|
||||
[],
|
||||
[enable_ssl=no])
|
||||
AS_IF([test $enable_ssl != "no"],
|
||||
[
|
||||
AC_MSG_CHECKING([for openssl])
|
||||
for dir in $enable_ssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do
|
||||
ssldir="$dir"
|
||||
if test -f "$dir/include/openssl/ssl.h"; then
|
||||
AC_MSG_RESULT([found in $ssldir/include/openssl])
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/include/ssl.h"; then
|
||||
AC_MSG_RESULT([found in $ssldir/include])
|
||||
found_ssl="yes";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$ssldir/include";
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test x_$found_ssl != x_yes; then
|
||||
AC_MSG_RESULT(not found)
|
||||
echo ""
|
||||
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
|
||||
echo "You have two options:"
|
||||
echo "a) Install the needed binaries and libraries"
|
||||
echo " and run ./Config"
|
||||
echo "OR"
|
||||
echo "b) If you don't need SSL..."
|
||||
echo " Run ./Config and say 'no' when asked about SSL"
|
||||
echo " (or pass --disable-ssl to ./configure)"
|
||||
echo ""
|
||||
exit 1
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
||||
fi
|
||||
AC_DEFINE([USE_SSL], [], [Define if you want to allow SSL connections])
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
[
|
||||
AC_ARG_ENABLE([ziplinks],
|
||||
[AC_HELP_STRING([--enable-ziplinks=DIR],[enable ziplinks. will check /usr/local /usr /usr/pkg. Note that SSL does its own compression, so you won't need this for SSL links.])],
|
||||
[],
|
||||
[enable_ziplinks=no])
|
||||
AS_IF([test $enable_ziplinks != "no"],
|
||||
[
|
||||
AC_MSG_CHECKING([for zlib])
|
||||
for dir in $enable_ziplinks /usr/local /usr /usr/pkg; do
|
||||
zlibdir="$dir"
|
||||
if test -f "$dir/include/zlib.h"; then
|
||||
AC_MSG_RESULT(found in $zlibdir)
|
||||
found_zlib="yes";
|
||||
if test "$zlibdir" != "/usr" ; then
|
||||
CFLAGS="$CFLAGS -I$zlibdir/include";
|
||||
fi
|
||||
AC_DEFINE([ZIP_LINKS], [], [Define if you have zlib and want zip links support.])
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test x_$found_zlib != x_yes; then
|
||||
AC_MSG_RESULT([not found])
|
||||
echo ""
|
||||
echo "Apparently you do not have the zlib development library installed."
|
||||
echo "You have two options:"
|
||||
echo "a) Install the zlib development library"
|
||||
echo " and run ./Config"
|
||||
echo "OR"
|
||||
echo "b) If you don't need compressed links..."
|
||||
echo " Run ./Config and say 'no' when asked about ziplinks support"
|
||||
echo ""
|
||||
exit 1
|
||||
else
|
||||
IRCDLIBS="$IRCDLIBS -lz"
|
||||
if test "$zlibdir" != "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$zlibdir/lib"
|
||||
fi
|
||||
HAVE_ZLIB=yes
|
||||
fi
|
||||
AC_SUBST([HAVE_ZLIB])
|
||||
])
|
||||
])
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "${0}")"
|
||||
|
||||
ACLOCAL_AMFLAGS=(-I autoconf/m4)
|
||||
|
||||
aclocal "${ACLOCAL_AMFLAGS[@]}"
|
||||
autoconf
|
||||
autoheader
|
||||
+690
@@ -0,0 +1,690 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
dnl When updating the version, remember to update the following files
|
||||
dnl appropriately:
|
||||
dnl
|
||||
dnl include/win32/setup.h
|
||||
dnl src/win32/unrealinst.iss
|
||||
dnl docs/unreal32docs*.html
|
||||
dnl Unreal.nfo
|
||||
dnl .CHANGES.NEW
|
||||
dnl src/version.c.SH
|
||||
|
||||
AC_INIT([unrealircd], [3.2.10.7], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
|
||||
AC_CONFIG_SRCDIR([src/ircd.c])
|
||||
AC_CONFIG_HEADER([include/setup.h])
|
||||
AC_CONFIG_AUX_DIR([autoconf])
|
||||
AC_CONFIG_MACRO_DIR([autoconf/m4])
|
||||
|
||||
if test "x$enable_dynamic_linking" = "x"; then
|
||||
echo "Please use ./Config instead of ./configure"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dnl Calculate the versions. Perhaps the use of expr is a little too extravagant
|
||||
# Generation version number (e.g.: 3 for Unreal3*)
|
||||
UNREAL_VERSION_GENERATION=["`expr $PACKAGE_VERSION : '\([^.]*\)\.[^.]*\.[^.-_]*'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: 3 for Unreal3*)])
|
||||
|
||||
# Major version number (e.g.: 2 for Unreal3.2*)
|
||||
UNREAL_VERSION_MAJOR=["`expr $PACKAGE_VERSION : '[0-9]*\.\([0-9]*\)\.[0-9]*'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: 2 for Unreal3.2*)])
|
||||
|
||||
# Minor version number (e.g.: 1 for Unreal3.2.1)
|
||||
UNREAL_VERSION_MINOR=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.\([0-9]*\)'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: 1 for Unreal3.2.1)])
|
||||
|
||||
# The version suffix such as a beta marker or release candidate
|
||||
# marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2). This macro is a
|
||||
# string instead of an integer because it contains arbitrary data.
|
||||
UNREAL_VERSION_SUFFIX=["`expr $PACKAGE_VERSION : '[0-9]*\.[0-9]*\.[0-9]*\(.*\)'`"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2)])
|
||||
|
||||
AC_PROG_CC
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
AC_CACHE_CHECK(if gcc has a working -pipe, ac_cv_pipe, [
|
||||
save_cflags="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -pipe"
|
||||
AC_TRY_COMPILE(,, ac_cv_pipe="yes", ac_cv_pipe="no")
|
||||
CFLAGS="$save_cflags"
|
||||
])
|
||||
if test "$ac_cv_pipe" = "yes"; then
|
||||
CFLAGS="-pipe $CFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl (the gcc flag detection trick is taken from xemacs/Vin Shelton)
|
||||
|
||||
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
||||
case "`$CC -v --help 2>&1`" in
|
||||
*-fstrict-aliasing* ) CFLAGS="$CFLAGS -fno-strict-aliasing" ;;
|
||||
esac
|
||||
|
||||
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
||||
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
||||
dnl to enable this without -Wall should be shot on sight.
|
||||
case "`$CC -v --help 2>&1`" in
|
||||
*-Wpointer-sign* ) CFLAGS="$CFLAGS -Wno-pointer-sign" ;;
|
||||
esac
|
||||
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
AC_PATH_PROG(OPENSSLPATH,openssl)
|
||||
AC_PATH_PROG(INSTALL,install)
|
||||
AC_CHECK_PROG(MAKER, gmake, gmake, make)
|
||||
AC_PATH_PROG(GMAKE,gmake)
|
||||
AC_PATH_PROG(GUNZIP, gunzip)
|
||||
AC_PATH_PROG(PKGCONFIG, pkg-config)
|
||||
|
||||
dnl Checks for libraries.
|
||||
AC_CHECK_LIB(descrypt, crypt,
|
||||
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
|
||||
IRCDLIBS="$IRCDLIBS-ldescrypt "
|
||||
MKPASSWDLIBS="-ldescrypt"],
|
||||
[AC_CHECK_LIB(crypt, crypt,
|
||||
[AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt])
|
||||
IRCDLIBS="$IRCDLIBS-lcrypt "
|
||||
MKPASSWDLIBS="-lcrypt"])])
|
||||
AC_CHECK_LIB(socket, socket,
|
||||
[IRCDLIBS="$IRCDLIBS-lsocket "
|
||||
SOCKLIB="-lsocket"])
|
||||
AC_CHECK_LIB(nsl, inet_ntoa,
|
||||
[IRCDLIBS="$IRCDLIBS-lnsl "
|
||||
INETLIB="-lnsl"])
|
||||
AC_CHECK_LIB(crypto, RAND_egd,
|
||||
AC_DEFINE(HAVE_RAND_EGD, 1, [Define if the libcrypto has RAND_egd]))
|
||||
|
||||
AC_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
|
||||
dnl module checking based on Hyb7's module checking code
|
||||
AC_DEFUN([AC_ENABLE_DYN],
|
||||
[
|
||||
AC_CHECK_FUNC(dlopen,, [AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl",
|
||||
[
|
||||
AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found)
|
||||
AC_DEFINE(STATIC_LINKING)
|
||||
])])
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -Wl,-export-dynamic"
|
||||
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
||||
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
||||
if test "$ac_cv_export_dynamic" = "no"; then
|
||||
CFLAGS=$hold_cflags
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
|
||||
if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
ac_cv_pic="-fPIC -DPIC -shared"
|
||||
case `uname -s` in
|
||||
Darwin*[)]
|
||||
ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress"
|
||||
;;
|
||||
HP-UX*[)]
|
||||
ac_cv_pic="-fPIC"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case `uname -s` in
|
||||
SunOS*[)]
|
||||
ac_cv_pic="-KPIC -DPIC -G"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
|
||||
cat >uscore.c << __EOF__
|
||||
int main() {
|
||||
return 0;
|
||||
}
|
||||
__EOF__
|
||||
$CC -o uscore $CFLAGS uscore.c 1>&5
|
||||
if test -z "`strings -a uscore |grep '^_main$'`"; then
|
||||
ac_cv_underscore=no
|
||||
else
|
||||
ac_cv_underscore=yes
|
||||
fi
|
||||
rm -f uscore uscore.c
|
||||
])
|
||||
dnl libtool has built-in tests that determine proper underscorage
|
||||
if test "$ac_cv_underscore" = "yes"; then
|
||||
AC_DEFINE([UNDERSCORE], [], [Define if your system prepends an underscore to symbols])
|
||||
fi
|
||||
|
||||
MODULEFLAGS=$ac_cv_pic
|
||||
dnl DYNAMIC_LINKING is not meant to be defined in include/setup.h, it's
|
||||
dnl defined in the Makefiles using -D. Having it defined globally will
|
||||
dnl only cause braindamage and symbol collisions :-D.
|
||||
dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically. (Dynamic linking is the only supported method of linking atm)])
|
||||
])
|
||||
AC_DEFUN([AC_ENABLE_INET6],[
|
||||
AC_CACHE_CHECK([if your system has IPv6 support], [ac_cv_ip6], [
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB"
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
int main() {
|
||||
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],
|
||||
[ac_cv_ip6=yes],
|
||||
[ac_cv_ip6=no])
|
||||
])
|
||||
if test "$ac_cv_ip6" = "no"; then
|
||||
AC_MSG_ERROR([Your system does not support IPv6 so it will not be enabled])
|
||||
else
|
||||
AC_DEFINE([INET6], [], [Define if you want IPv6 enabled])
|
||||
dnl in6addr_any detection code taken from ratbox
|
||||
AC_MSG_CHECKING([for struct in6addr_any])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#define IN_AUTOCONF
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>]],
|
||||
[[struct in6_addr a = in6addr_any;]]
|
||||
)],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[
|
||||
AC_MSG_RESULT([no])
|
||||
AC_DEFINE([NO_IN6ADDR_ANY], [1], [Define to 1 if your system has no in6addr_any.])
|
||||
]
|
||||
)
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
])
|
||||
|
||||
AC_CHECK_HEADER(sys/param.h,
|
||||
AC_DEFINE([PARAMH], [], [Define if you have the <sys/param.h> header file.]))
|
||||
AC_CHECK_HEADER(stdlib.h,
|
||||
AC_DEFINE([STDLIBH], [], [Define if you have the <stdlib.h> header file.]))
|
||||
AC_CHECK_HEADER(stddef.h,
|
||||
AC_DEFINE([STDDEFH], [], [Define if you have the <stddef.h> header file.]))
|
||||
AC_CHECK_HEADER(sys/syslog.h,
|
||||
AC_DEFINE([SYSSYSLOGH], [], [Define if you have the <sys/syslog.h> header file.]))
|
||||
AC_CHECK_HEADER(unistd.h,
|
||||
AC_DEFINE([UNISTDH], [], [Define if you have the <unistd.h> header file.]))
|
||||
AC_CHECK_HEADER(string.h,
|
||||
AC_DEFINE([STRINGH], [], [Define if you have the <string.h> header file.]))
|
||||
AC_CHECK_HEADER(strings.h,
|
||||
AC_DEFINE([STRINGSH], [], [Define if you have the <strings.h> header file.]))
|
||||
AC_CHECK_HEADER(malloc.h,
|
||||
AC_DEFINE([MALLOCH], [<malloc.h>], [Define to <malloc.h> you need malloc.h.]))
|
||||
AC_CHECK_HEADER(sys/rusage.h,
|
||||
AC_DEFINE([RUSAGEH], [], [Define if you have the <sys/rusage.h> header file.]))
|
||||
AC_CHECK_HEADER(glob.h,
|
||||
AC_DEFINE([GLOBH], [], [Define if you have the <glob.h> header file.]))
|
||||
AC_CHECK_HEADERS([stdint.h inttypes.h])
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
|
||||
AC_TYPE_MODE_T
|
||||
AC_TYPE_SIZE_T
|
||||
AC_TYPE_INTPTR_T
|
||||
|
||||
AC_HEADER_TIME
|
||||
AC_STRUCT_TM
|
||||
AC_TYPE_UID_T
|
||||
unreal_CHECK_TYPE_SIZES
|
||||
|
||||
dnl in the future, it would be nice to avoid AC_TRY_RUN to allow
|
||||
dnl better support for crosscompiling.
|
||||
AC_CACHE_CHECK([what kind of nonblocking sockets you have], [ac_cv_nonblocking],[
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB"
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(1);
|
||||
}
|
||||
int main() {
|
||||
#ifdef O_NONBLOCK
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NONBLOCK))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
],ac_cv_nonblocking=O_NONBLOCK,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(0);
|
||||
}
|
||||
int main() {
|
||||
#ifdef O_NDELAY
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, O_NDELAY))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
}],ac_cv_nonblocking=O_NDELAY,[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/file.h>
|
||||
#include <signal.h>
|
||||
alarmed() {
|
||||
exit(1);
|
||||
}
|
||||
int main() {
|
||||
#ifdef FIONBIO
|
||||
char b[12], x[32];
|
||||
int f, l = sizeof(x);
|
||||
f = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
if (f >= 0 && !(fcntl(f, F_SETFL, FIONBIO))) {
|
||||
signal(SIGALRM, alarmed);
|
||||
alarm(3);
|
||||
recvfrom(f, b, 12, 0, (struct sockaddr *)x, &l);
|
||||
alarm(0);
|
||||
exit(0);
|
||||
}
|
||||
#endif
|
||||
exit(1);
|
||||
], ac_cv_nonblocking=FIONBIO,ac_cv_nonblocking=none)])])])
|
||||
if test "$ac_cv_nonblocking" = "O_NONBLOCK"; then
|
||||
AC_DEFINE([NBLOCK_POSIX], [], [Define if you have O_NONBLOCK])
|
||||
elif test "$ac_cv_nonblocking" = "O_NDELAY"; then
|
||||
AC_DEFINE([NBLOCK_BSD], [], [Define if you have O_NDELAY])
|
||||
elif test "$ac_cv_nonblocking" = "FIONBIO"; then
|
||||
AC_DEFINE([NBLOCK_SYSV], [], [Define if you have FIONBIO])
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
dnl Checks for library functions.
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_FUNC_SETPGRP
|
||||
AC_FUNC_SETVBUF_REVERSED
|
||||
AC_FUNC_ALLOCA
|
||||
AC_CHECK_FUNCS(snprintf,
|
||||
AC_DEFINE([HAVE_SNPRINTF], [], [Define if you have snprintf]))
|
||||
AC_CHECK_FUNCS(vsnprintf,
|
||||
AC_DEFINE([HAVE_VSNPRINTF], [], [Define if you have vsnprintf]))
|
||||
AC_CHECK_FUNCS(strlcpy,
|
||||
AC_DEFINE([HAVE_STRLCPY], [], [Define if you have strlcpy. Otherwise, an internal implementation will be used!]))
|
||||
AC_CHECK_FUNCS(strlcat,
|
||||
AC_DEFINE([HAVE_STRLCAT], [], [Define if you have strlcat]))
|
||||
AC_CHECK_FUNCS(strlncat,
|
||||
AC_DEFINE([HAVE_STRLNCAT], [], [Define if you have strlncat]))
|
||||
AC_CHECK_FUNCS(inet_pton,
|
||||
AC_DEFINE([HAVE_INET_PTON], [], [Define if you have inet_pton]))
|
||||
AC_CHECK_FUNCS(inet_ntop,
|
||||
AC_DEFINE([HAVE_INET_NTOP], [], [Define if you have inet_ntop]))
|
||||
dnl Check if it supports C99 style variable length arrays
|
||||
AC_CACHE_CHECK([if C99 variable length arrays are supported], [ac_cv_varlen_arrays], [
|
||||
AC_TRY_COMPILE(,[
|
||||
int main() {
|
||||
int i = 5;
|
||||
int a[i];
|
||||
a[0] = 1;
|
||||
return 0;
|
||||
}], ac_cv_varlen_arrays=yes, ac_cv_varlen_arrays=no)
|
||||
])
|
||||
if test "$ac_cv_varlen_arrays" = "yes" ; then
|
||||
AC_DEFINE([HAVE_C99_VARLEN_ARRAY], [], [Define if you have a compiler with C99 variable length array support])
|
||||
fi
|
||||
|
||||
dnl This check doesn't need to be in ./configure, we can
|
||||
dnl write the sourcecode to actually handle the return value
|
||||
dnl of setrlimit if necessary... -- ohnobinki
|
||||
AC_CACHE_CHECK([if we can set the core size to unlimited], [ac_cv_force_core], [
|
||||
AC_TRY_RUN([
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <unistd.h>
|
||||
int main() {
|
||||
struct rlimit corelim;
|
||||
corelim.rlim_cur = corelim.rlim_max = RLIM_INFINITY;
|
||||
if (setrlimit(RLIMIT_CORE, &corelim))
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],ac_cv_force_core=yes,ac_cv_force_core=no)
|
||||
])
|
||||
if test "$ac_cv_force_core" = "yes"; then
|
||||
AC_DEFINE([FORCE_CORE], [], [Define if you can set the core size to unlimited])
|
||||
fi
|
||||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS([gettimeofday],
|
||||
[AC_DEFINE([GETTIMEOFDAY], [], [Define if you have gettimeofday])],
|
||||
[AC_CHECK_FUNCS([lrand48],
|
||||
[AC_DEFINE([LRADN48], [], [Define if you have lrand48])])])
|
||||
AC_CHECK_FUNCS([getrusage],
|
||||
[AC_DEFINE([GETRUSAGE_2], [], [Define if you have getrusage])],
|
||||
[AC_CHECK_FUNCS([times],
|
||||
[AC_DEFINE([TIMES_2], [], [Define if you have times])])])
|
||||
AC_CHECK_FUNCS([setproctitle],
|
||||
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])],
|
||||
[AC_CHECK_LIB([util],
|
||||
[setproctitle],
|
||||
[AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])
|
||||
IRCDLIBS="$IRCDLIBS-lutil"],
|
||||
[
|
||||
AC_EGREP_HEADER([#define.*PS_STRINGS.*],[sys/exec.h],
|
||||
[AC_DEFINE([HAVE_PSSTRINGS],[], [Define if you have PS_STRINGS])],
|
||||
[AC_CHECK_FUNCS([pstat],
|
||||
[AC_DEFINE([HAVE_PSTAT], [], [Define if you have pstat])])])
|
||||
])
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
AC_CACHE_CHECK([what type of signals you have], [ac_cv_sigtype], [
|
||||
AC_TRY_RUN([
|
||||
#include <signal.h>
|
||||
int main() {
|
||||
sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L);
|
||||
}
|
||||
], ac_cv_sigtype=POSIX, [
|
||||
AC_TRY_RUN([
|
||||
#include <signal.h>
|
||||
int calls = 0;
|
||||
void handler()
|
||||
{
|
||||
if (calls)
|
||||
return;
|
||||
calls++;
|
||||
kill(getpid(), SIGTERM);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
int main() {
|
||||
signal(SIGTERM, handler);
|
||||
kill(getpid(), SIGTERM);
|
||||
exit(0);
|
||||
}
|
||||
], ac_cv_sigtype=BSD,ac_cv_sigtype=SYSV)])])
|
||||
|
||||
if test "$ac_cv_sigtype" = "POSIX"; then
|
||||
AC_DEFINE([POSIX_SIGNALS], [], [Define if you have POSIX signals])
|
||||
elif test "$ac_cv_sigtype" = "BSD"; then
|
||||
AC_DEFINE([BSD_RELIABLE_SIGNALS], [], [Define if you have BSD signals])
|
||||
else
|
||||
AC_DEFINE([SYSV_UNRELIABLE_SIGNALS], [], [Define if you have SYSV signals])
|
||||
fi
|
||||
AC_CHECK_FUNCS(strtoken,,AC_DEFINE([NEED_STRTOKEN], [], [Define if you need the strtoken function.]))
|
||||
AC_CHECK_FUNCS(strtok,,AC_DEFINE([NEED_STRTOK], [], [Define if you need the strtok function.]))
|
||||
AC_CHECK_FUNCS(strerror,,AC_DEFINE([NEED_STRERROR], [], [Define if you need the strerror function.]))
|
||||
AC_CHECK_FUNCS(index,,AC_DEFINE([NOINDEX], [], [Define if you do not have the index function.]))
|
||||
AC_CHECK_FUNCS(strtoul,,STRTOUL="strtoul.o")
|
||||
AC_CHECK_FUNCS(bcopy,,AC_DEFINE([NEED_BCOPY], [], [Define if you don't have bcopy]))
|
||||
AC_CHECK_FUNCS(bcmp,,AC_DEFINE([NEED_BCMP], [], [Define if you don't have bcmp]))
|
||||
AC_CHECK_FUNCS(bzero,,AC_DEFINE([NEED_BZERO], [], [Define if you need bzero]))
|
||||
AC_CHECK_FUNCS(strcasecmp,AC_DEFINE([GOT_STRCASECMP], [], [Define if you have strcasecmp]))
|
||||
save_libs="$LIBS"
|
||||
LIBS="$LIBS $SOCKLIB $INETLIB"
|
||||
AC_CHECK_FUNCS(inet_addr,,AC_DEFINE([NEED_INET_ADDR], [], [Define if you need inet_addr]))
|
||||
AC_CHECK_FUNCS(inet_ntoa,,AC_DEFINE([NEED_INET_NTOA], [], [Define if you need inet_ntoa]))
|
||||
AC_CHECK_FUNCS(inet_netof,,AC_DEFINE([NEED_INET_NETOF], [], [Define if you need inet_netof]))
|
||||
LIBS="$save_libs"
|
||||
AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog]))
|
||||
AC_SUBST(STRTOUL)
|
||||
AC_SUBST(CRYPTOLIB)
|
||||
AC_SUBST(MODULEFLAGS)
|
||||
AC_ARG_WITH(listen, [AS_HELP_STRING([--with-listen=backlog],[Specify the listen backlog value])],
|
||||
[AC_DEFINE_UNQUOTED([LISTEN_SIZE], [$withval], [Set to the listen backlog size you want])],
|
||||
[AC_DEFINE([LISTEN_SIZE], [5], [Set to the listen backlog size you want])])
|
||||
AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
||||
[AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])],
|
||||
[AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])])
|
||||
AC_ARG_WITH([sendq], [AS_HELP_STRING([--with-sendq=maxsendq],[Specify the max sendq for the server])],
|
||||
[AC_DEFINE_UNQUOTED([MAXSENDQLENGTH], [$withval], [Set to the max sendq you want])],
|
||||
[AC_DEFINE([MAXSENDQLENGTH], [3000000], [Set to the max sendq you want])])
|
||||
AC_ARG_WITH(bufferpool, [AS_HELP_STRING([--with-bufferpool=size],[Specify the size of the buffer pool])],
|
||||
[AC_DEFINE_UNQUOTED([BUFFERPOOL],[($withval * MAXSENDQLENGTH)], [Set to the bufferpool size you want])],
|
||||
[AC_DEFINE([BUFFERPOOL],[(18 * MAXSENDQLENGTH)], [Set to the bufferpool size you want])])
|
||||
AC_ARG_WITH(permissions, [AS_HELP_STRING([--with-permissions=permissions], [Specify the default permissions for
|
||||
configuration files])],
|
||||
dnl We have an apparently out-of-place 0 here because of a MacOSX bug and because
|
||||
dnl we assume that a user thinks that `chmod 0600 blah' is the same as `chmod 600 blah'
|
||||
dnl (#3189)
|
||||
[AC_DEFINE_UNQUOTED([DEFAULT_PERMISSIONS], [0$withval], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])],
|
||||
[AC_DEFINE([DEFAULT_PERMISSIONS], [0600], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])])
|
||||
AC_ARG_WITH(dpath, [AS_HELP_STRING([--with-dpath=path],[Specify the path where configuration files are stored])],
|
||||
[AC_DEFINE_UNQUOTED([DPATH], ["$withval"], [Define the location of the configuration files])
|
||||
IRCDDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([DPATH], ["`pwd`"], [Define the location of the configuration files])
|
||||
IRCDDIR="`pwd`"])
|
||||
|
||||
AC_ARG_WITH(fd-setsize, [AS_HELP_STRING([--with-fd-setsize=size], [Specify the max file descriptors to use])],
|
||||
[ac_fd=$withval],
|
||||
[ac_fd=1024])
|
||||
AC_DEFINE_UNQUOTED([MAXCONNECTIONS], [$ac_fd], [Set to the max connections you want])
|
||||
|
||||
dnl It would be nice if this could just respect --bindir like every other
|
||||
dnl program does someday... -- ohnobinki
|
||||
AC_ARG_WITH(spath, [AS_HELP_STRING([--with-spath],[Specify the location of the executable])],
|
||||
[AC_DEFINE_UNQUOTED([SPATH], ["$withval"], [Define the location of the executable])
|
||||
BINDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([SPATH], ["`pwd`/src/ircd"], [Define the location of the executable])
|
||||
BINDIR="`pwd`/src/ircd"])
|
||||
|
||||
AC_ARG_ENABLE([prefixaq],
|
||||
[AS_HELP_STRING([--disable-prefixaq],[Enable chanadmin (+a) and chanowner (+q) prefixes])],
|
||||
[],
|
||||
[enable_prefixaq=yes])
|
||||
AS_IF([test $enable_prefixaq = "yes"],
|
||||
[AC_DEFINE([PREFIX_AQ], [], [Define if you want +a/+q prefixes])])
|
||||
|
||||
AC_ARG_WITH(showlistmodes,
|
||||
[AS_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([LIST_SHOW_MODES], [], [Define if you want modes shown in /list])])])
|
||||
AC_ARG_WITH(topicisnuhost, [AS_HELP_STRING([--with-topicisnuhost], [Display nick!user@host as the topic setter])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([TOPIC_NICK_IS_NUHOST], [], [Define if you want nick!user@host shown for the topic setter])])])
|
||||
AC_ARG_WITH(shunnotices, [AS_HELP_STRING([--with-shunnotices], [Notify a user when he/she is no longer shunned])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([SHUN_NOTICES], [], [Define if you want users to be notified when their shun is removed])])])
|
||||
AC_ARG_WITH(no-operoverride, [AS_HELP_STRING([--with-no-operoverride], [Disable OperOverride])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([NO_OPEROVERRIDE], [], [Define if you want OperOverride disabled])])])
|
||||
AC_ARG_WITH(disableusermod, [AS_HELP_STRING([--with-disableusermod], [Disable /set* and /chg*])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([DISABLE_USERMOD], [], [Define if you want to disable /set* and /chg*])])])
|
||||
AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([OPEROVERRIDE_VERIFY], [], [Define if you want opers to have to use /invite to join +s/+p channels])])])
|
||||
AC_ARG_WITH(disable-extendedban-stacking, [AS_HELP_STRING([--with-disable-extendedban-stacking], [Disable extended ban stacking])],
|
||||
[AS_IF([test $withval = "yes"],
|
||||
[AC_DEFINE([DISABLE_STACKED_EXTBANS], [], [Define to disable extended ban stacking (~q:~c:\#chan, etc)])])])
|
||||
AC_ARG_WITH(system-tre, [AS_HELP_STRING([--with-system-tre], [Use the system tre package instead of bundled, discovered using pkg-config])], [], [with_system_tre=no])
|
||||
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--with-system-cares], [Use the system c-ares (at least version 1.6.0) package instead of bundled c-ares, discovered using pkg-config])], [], [with_system_cares=no])
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])],
|
||||
[enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"])
|
||||
AS_IF([test $enable_dynamic_linking = "yes"],
|
||||
[AC_ENABLE_DYN],
|
||||
[AC_DEFINE([STATIC_LINKING], [], [Link... statically(?) (defining this macro will probably cause the build tofail)])])
|
||||
|
||||
AC_ARG_ENABLE([inet6], [AS_HELP_STRING([--enable-inet6], [Make the IRCd support IPv6])],
|
||||
[AS_IF([test $enableval = "yes"],
|
||||
[AC_ENABLE_INET6])])
|
||||
AC_SUBST(IRCDDIR)
|
||||
AC_SUBST(BINDIR)
|
||||
AC_MSG_CHECKING([if FD_SETSIZE is large enough to allow $ac_fd file descriptors])
|
||||
AC_COMPILE_IFELSE([
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
int main() {
|
||||
#if FD_SETSIZE < $ac_fd
|
||||
#error FD_SETSIZE is smaller than $ac_fd
|
||||
#endif
|
||||
exit(0);
|
||||
}
|
||||
], AC_MSG_RESULT([yes]), [
|
||||
# must be passed on the commandline to avoid a ``warning, you redefined something''
|
||||
FD_SETSIZE="-DFD_SETSIZE=$ac_fd"
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
AC_SUBST([FD_SETSIZE])
|
||||
|
||||
case `uname -s` in
|
||||
*SunOS*|*solaris*)
|
||||
AC_DEFINE([_SOLARIS], [], [Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris])
|
||||
IRCDLIBS="$IRCDLIBS -lresolv "
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl c-ares needs PATH_SEPARATOR set or it will
|
||||
dnl fail on certain solaris boxes. We might as
|
||||
dnl well set it here.
|
||||
export PATH_SEPARATOR
|
||||
|
||||
AS_IF([test "x$with_system_tre" = "xno"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
|
||||
tre_version="0.8.0"
|
||||
AC_MSG_RESULT(extracting TRE regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old tre directory to force a recompile...
|
||||
dnl and remove its installation prefix just to clean things up.
|
||||
rm -rf tre-$tre_version rege[]xp
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz tre.tar.gz
|
||||
else
|
||||
cp tre.tar.gz tre.tar.gz.bak
|
||||
gunzip -f tre.tar.gz
|
||||
cp tre.tar.gz.bak tre.tar.gz
|
||||
tar xf tre.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring TRE regex library)
|
||||
cd tre-$tre_version
|
||||
./configure --disable-agrep --disable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp || exit 1
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
TRE_CFLAGS="-I$cur_dir/extras/regexp/include"
|
||||
AC_SUBST(TRE_CFLAGS)
|
||||
|
||||
TRE_LIBS=
|
||||
dnl See c-ares's compilation section for more info on this hack.
|
||||
dnl ensure that we're linking against the bundled version of tre
|
||||
dnl (we only reach this code if linking against the bundled version is desired).
|
||||
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
|
||||
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --static --libs tre.pc | sed -e ['s,-L\([^ ]*regex[^ ]*lib\)\( .*\)-ltre,\1/libtre.a \2,']`"])
|
||||
dnl For when pkg-config isn't available -- or for when pkg-config
|
||||
dnl doesn't see the tre.pc file somehow... (#3982)
|
||||
AS_IF([test -z "$TRE_LIBS"],
|
||||
[TRE_LIBS="../extras/regexp/lib/libtre.a"])
|
||||
AC_SUBST(TRE_LIBS)
|
||||
cd $cur_dir
|
||||
],[
|
||||
dnl use pkgconfig for tre:
|
||||
PKG_CHECK_MODULES([TRE], tre >= 0.7.5)
|
||||
])
|
||||
|
||||
AS_IF([test "x$with_system_cares" = "xno"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
||||
dnl NOTE: when changing this here, ALSO change it in ./curlinstall
|
||||
dnl and in the comment in this file around line 400!
|
||||
cares_version="1.10.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old c-ares directory to force a recompile...
|
||||
rm -rf c-ares-$cares_version c-ares
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz c-ares.tar.gz
|
||||
else
|
||||
cp c-ares.tar.gz c-ares.tar.gz.bak
|
||||
gunzip -f c-ares.tar.gz
|
||||
cp c-ares.tar.gz.bak c-ares.tar.gz
|
||||
tar xf c-ares.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring c-ares library)
|
||||
cd c-ares-$cares_version
|
||||
./configure --prefix=$cur_dir/extras/c-ares --disable-shared || exit 1
|
||||
AC_MSG_RESULT(compiling c-ares resolver library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing c-ares resolver library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
CARES_CFLAGS="-I$cur_dir/extras/c-ares/include"
|
||||
AC_SUBST(CARES_CFLAGS)
|
||||
CARES_LIBS="-L../extras/c-ares/lib"
|
||||
|
||||
dnl Set default library parameters for when pkg-config is not available
|
||||
dnl Ugly cd'ing out of extras/c-ares-xxx ;)
|
||||
dnl Note: must be a full path, not relative path.
|
||||
cd ../..
|
||||
CARESLIBSALT="`pwd`/extras/c-ares/lib/libcares.a"
|
||||
cd -
|
||||
case `uname -s` in
|
||||
*FreeBSD*)
|
||||
CARESLIBSALT="$CARESLIBSALT"
|
||||
;;
|
||||
*Linux*)
|
||||
CARESLIBSALT="$CARESLIBSALT -lrt"
|
||||
;;
|
||||
*SunOS*)
|
||||
CARESLIBSALT="$CARESLIBSALT -lrt"
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl Use pkg-config for c-ares libraries, and if not available use defaults
|
||||
dnl from above. Also, if pkg-config returns an empty result (ex: on fbsd
|
||||
dnl or older versions it might be missing --static) then also use defaults.
|
||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
||||
else
|
||||
CARES_LIBSPRE="$CARES_LIBS"
|
||||
dnl the sed expression forces an absolute path to the .a file to be generated
|
||||
dnl because this is what libtool would do. If this wasn't done and /usr/lib*/libcares.so
|
||||
dnl exists, then unrealircd would still try to link against the system c-ares.
|
||||
dnl The [] quotation is needed because the sed expression has [] in it.
|
||||
[CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --static --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.a,'`"]
|
||||
if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then
|
||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(CARES_LIBS)
|
||||
cd $cur_dir
|
||||
],[
|
||||
dnl use pkg-config for system c-ares:
|
||||
PKG_CHECK_MODULES([CARES], libcares >= 1.6.0)
|
||||
])
|
||||
|
||||
CHECK_LIBCURL
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
src/modules/Makefile
|
||||
unreal
|
||||
ircdcron/ircdchk
|
||||
ircdcron/ircd.cron])
|
||||
AC_OUTPUT
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
# This will generate a Changelog similar to our original style.
|
||||
# New are: the name of the author, the date, and the short hash
|
||||
# We still filter translated doc changes as to not polute the
|
||||
# changelog too much.
|
||||
|
||||
hg log -r a673dd0f7b37: --style changelog --template '[{date|shortdate}] {author} ({node|short}):\n- {desc}\n\n' \
|
||||
-b default -X 'doc/unreal32docs.*.html' -X 'doc/help.*.conf' -X 'doc/example.*.conf' -X 'include/version.h'|\
|
||||
sed 's/^- - /- /g' >Changes
|
||||
|
||||
echo "Done. File 'Changes' now contains the full version history"
|
||||
+3953
File diff suppressed because it is too large
Load Diff
+70
-51
@@ -1,66 +1,85 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test "x$1" = x -o "x$2" = x ; then
|
||||
echo "Syntax:"
|
||||
echo "curlinstall ares_path libcurl_path"
|
||||
echo ""
|
||||
URL="http://www.unrealircd.com/files/curl-latest.tar.gz"
|
||||
OUTF="curl-latest.tar.gz"
|
||||
OUTD="curl-latest"
|
||||
ARESPATH="`pwd`/extras/c-ares"
|
||||
CARESVERSION="1.10.0"
|
||||
if [ ! -f "Unreal.nfo" ]; then
|
||||
echo "Please run this program from your UnrealIRCd directory"
|
||||
echo "(usually $HOME/Unreal3.2 or something like that)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
wget --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="wget"
|
||||
else
|
||||
fetch --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="fetch"
|
||||
else
|
||||
lynx --version 1>/dev/null 2>&1
|
||||
if [ "$?" = 0 ]; then
|
||||
FETCHER="lynx"
|
||||
else
|
||||
echo "ERROR: unable to find wget/fetch/lynx, please install at least one of these programs"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d tmp ]; then
|
||||
mkdir tmp || exit 1
|
||||
fi
|
||||
|
||||
cd tmp || exit 1
|
||||
|
||||
rm -f "$OUTF"
|
||||
|
||||
if [ "$FETCHER" = "wget" ]; then
|
||||
wget -O "$OUTF" "$URL"
|
||||
elif [ "$FETCHER" = "lynx" ]; then
|
||||
lynx -dump "$URL" >"$OUTF"
|
||||
elif [ "$FETCHER" = "fetch" ]; then
|
||||
cd tmp #todo: find out the cmd line parameter ;)
|
||||
fetch "$URL"
|
||||
fi
|
||||
|
||||
if [ "$?" != 0 ]; then
|
||||
echo "ERROR: Something went wrong while trying to download $URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf "$OUTD" # remove old directory prior to extracting
|
||||
tar xzf "$OUTF" || exit 1
|
||||
|
||||
|
||||
if [ "`eval echo -n 'a'`" = "-n a" ] ; then
|
||||
c="\c"
|
||||
else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
save_PWD=`pwd`
|
||||
echo "Installing ares"
|
||||
cd $1
|
||||
./configure --prefix=$HOME/ares && make && make install
|
||||
|
||||
SSLFLAG=""
|
||||
while [ -z "$SSLFLAG" ] ; do
|
||||
if [ ! -d "$ARESPATH/lib" ]; then
|
||||
echo "c-ares has not been build yet, let's do that now..."
|
||||
cd ../extras/
|
||||
tar xzf c-ares.tar.gz || exit 1
|
||||
cd c-ares-$CARESVERSION || exit 1
|
||||
./configure --prefix=$ARESPATH || exit 1
|
||||
(make && make install) || exit 1
|
||||
cd ../../tmp/
|
||||
echo "c-ares built."
|
||||
echo ""
|
||||
echo "Should libcurl be built with SSL support?"
|
||||
echo $n "-> " $c
|
||||
read cc
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
SSLFLAG="--with-ssl"
|
||||
;;
|
||||
[Nn]*)
|
||||
SSLFLAG="--without-ssl"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -f $HOME/ares/lib/libcares.a ] ; then
|
||||
if [ -f $HOME/ares/lib/libares.a ] ; then
|
||||
rm -f $HOME/ares/lib/libares.a
|
||||
fi
|
||||
cp $HOME/ares/lib/libcares.a $HOME/ares/lib/libares.a
|
||||
fi
|
||||
|
||||
echo "Installing libcurl"
|
||||
cd $2
|
||||
CPPFLAGS="-I$HOME/ares/include" ./configure --prefix=$HOME/curl --disable-shared \
|
||||
--disable-thread --enable-ares=$HOME/ares --disable-ipv6 $SSLFLAG
|
||||
cp -R $HOME/ares/lib ares
|
||||
# We assume curl has been packaged in a way it will extract to "$OUTD"/
|
||||
cd "$OUTD" || exit 1
|
||||
|
||||
echo "Building and installing libcurl"
|
||||
CPPFLAGS="-I$ARESPATH/include" ./configure --prefix=$HOME/curl --disable-shared \
|
||||
--disable-thread --enable-ares=$ARESPATH --disable-ipv6 $SSLFLAG
|
||||
cp -R $ARESPATH/lib ares
|
||||
make && make install
|
||||
|
||||
if [ -f $HOME/curl/lib/libares.a ] ; then
|
||||
rm -f $HOME/curl/lib/libares.a
|
||||
fi
|
||||
cp $HOME/ares/lib/libares.a $HOME/curl/lib
|
||||
|
||||
cd $save_PWD
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
echo "libcurl has been installed. When running ./Config specify:"
|
||||
echo "$HOME/curl"
|
||||
echo "for the directory you installed libcurl to."
|
||||
|
||||
#cp $ARESPATH/lib/libcares.a $HOME/curl/lib
|
||||
# that isn't needed anymore as the lib is already in unreal...
|
||||
|
||||
+7
-6
@@ -119,12 +119,13 @@ Tom Hopkins <hoppie@buengf.bu.edu> / September, October 1990:
|
||||
lines worth. :)
|
||||
|
||||
UnrealIRCd Coders
|
||||
Carsten Munk <stskeeps@unrealircd.com> / May 1999, date
|
||||
Dominick Meglio <codemastr@unrealircd.com> / June 1999, date
|
||||
David Flynn / March 2000, June 2000
|
||||
McSkaf / June 2001, September 2001
|
||||
Finny Merrill <griever@unrealircd.com> / November 2001, December 2002
|
||||
Bram Matthys <syzop@unrealircd.com> / January 2002, date
|
||||
Carsten Munk <stskeeps@unrealircd.com> / May 1999 - December 2008
|
||||
Dominick Meglio <codemastr@unrealircd.com> / June 1999 - August 2005
|
||||
David Flynn / March 2000 - June 2000
|
||||
McSkaf / June 2001 - September 2001
|
||||
Finny Merrill <griever@unrealircd.com> / November 2001 - December 2002
|
||||
Bram Matthys <syzop@unrealircd.com> / January 2002 - date
|
||||
This list is incomplete, type /INFO on IRC to find the updated list.
|
||||
|
||||
Thanks go to those persons not mentioned here who have added their advice,
|
||||
opinions, and code to IRC.
|
||||
|
||||
+141
-41
@@ -1,41 +1,141 @@
|
||||
|
||||
Some minor rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers,
|
||||
and a $Id$ somewhere.
|
||||
|
||||
3. /*
|
||||
* These kind of comments
|
||||
*/
|
||||
|
||||
NOT
|
||||
|
||||
// These kind of comments
|
||||
|
||||
4. if (something == 1)
|
||||
{
|
||||
moo; /* comment */
|
||||
/* This does what what what */
|
||||
cow(go(moo));
|
||||
}
|
||||
|
||||
NOT
|
||||
|
||||
if (something == 1) {
|
||||
}
|
||||
|
||||
5. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||
if you need a credit in, contact us
|
||||
|
||||
6. Patches are submitted to coders@lists.unrealircd.org,
|
||||
using "cvs diff -u > patchname". A submision must contain description of
|
||||
what it does, etc.
|
||||
|
||||
7. Protocol changes must be discussed before making patches for it.
|
||||
|
||||
8. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
Rules about patches & modifications to UnrealIRCd
|
||||
|
||||
1. When making a change, always add a small description in Changes, in the
|
||||
BOTTOM. Don't forget to mention the bug# and credit the reporter (if any).
|
||||
|
||||
2. If new files are made, it must contain proper copyright headers.
|
||||
|
||||
3. If you want to submit patches (f.e. if you don't have CVS write access)
|
||||
then submit them to http://bugs.unrealircd.org/ (shortly called bugs*)
|
||||
using "cvs diff -u > patchname". A submission must contain description of
|
||||
what it does, etc.
|
||||
|
||||
4. Each bug or feature should have a bug# so people can have a discussion
|
||||
about it. This has a few implications (read!!):
|
||||
* People must report bugs/feature requests to bugs* and not on
|
||||
IRC, e-mail, etc.
|
||||
* That means other people can see the bug# and comment on it. This means
|
||||
discussion is easy to read back for each issue and not spread between
|
||||
several IRC logs.
|
||||
Furthermore, by using the bugtracker instead of directly committing,
|
||||
people could point out that there might be a better way to do things
|
||||
than you originally thought, or it might be that other devs don't like
|
||||
it at all.
|
||||
* If a head coder has 'acknowledged' or 'confirmed' the bug or stated in
|
||||
a comment that it's OK to implement, then a dev may take the issue.
|
||||
The dev should change the status to 'assigned' and work on it, then
|
||||
commit and change it to 'resolved', set 'fixed in version' to next
|
||||
release, and add a comment pasting the relevant Changelog item and the
|
||||
releaseid (.XYZ).
|
||||
Of course other guidelines, like #7 and #8 still apply.
|
||||
|
||||
5. Do not commit changes that do not have an associated bug# and have not
|
||||
had any discussion.
|
||||
Small/tiny bugfixes that do not change any functionality, are very
|
||||
unlikely to break anything and definitely don't require any prior
|
||||
discussion may be exempted.
|
||||
|
||||
6. Regarding reidenting, restructuring or other code cleanups: please
|
||||
discuss before doing so. The other devs might not agree with you on the
|
||||
particular cleanup you have in mind which would result in another
|
||||
clean-up-the-cleanup commit.
|
||||
You may, however reindent and clean up individual sections when you are
|
||||
working on fixing a particular bug# or implementing a new feature. In fact
|
||||
you're encouraged to do so if the code is confusing without it. However,
|
||||
obey the style of Unreal's code (mostly outlined in this document)
|
||||
and do not introduce yet another (new) style. Also, be careful with doing
|
||||
any cleanup: if you're unsure in any way about the use of something,
|
||||
or something that looks redundant on first sight, then look more
|
||||
carefully... it might indeed be useless and/or redundant, but it might
|
||||
also be a subtle thing that can create great bugs when 'cleaned up'.
|
||||
|
||||
7. Prior to a release: be very careful with any restructuring of a subsystem
|
||||
or doing any major commits that may break things. Stuff like this can be
|
||||
perfectly fine if there are many months to go, but are not good to do a
|
||||
month before release. The head coder may impose additional restrictions
|
||||
during such a period.
|
||||
|
||||
8. During the Release Candidate stage (from RC1 until the final release)
|
||||
only the head coder may commit directly, all others should ask and
|
||||
present their patch before committing. Yes, even if you are changing only
|
||||
1 line of code or text.
|
||||
|
||||
9. UnrealIRCd should compile on all supported operating systems and
|
||||
platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or
|
||||
higher on Windows. This means you cannot blindly use all C99 extensions.
|
||||
|
||||
10. Coders should test their code before committing.
|
||||
|
||||
11. /*
|
||||
* These kind of comments
|
||||
*/
|
||||
|
||||
NOT
|
||||
|
||||
// These kind of comments
|
||||
|
||||
12. if (something == 1)
|
||||
{
|
||||
moo; /* comment */
|
||||
/* This does what what what */
|
||||
cow(go(moo));
|
||||
}
|
||||
|
||||
NOT
|
||||
|
||||
if (something == 1) {
|
||||
}
|
||||
|
||||
13. Do not touch version.c.SH or version.h, unless you are a head coder
|
||||
if you need a credit in, contact us
|
||||
|
||||
14. Protocol changes must be discussed before making patches for it.
|
||||
|
||||
15. We do NOT rip people off. If we use other people's code, it MUST be
|
||||
properly credited.
|
||||
|
||||
16. We generally use tabsize 4 and 8. In any case, use tabs and NOT spaces.
|
||||
Some code is old and horrible and has a mix of tabs and spaces used for
|
||||
spacing, that's something we do not want to have ;)
|
||||
|
||||
17. Be careful about overflows. As you know a line from a user can never be longer
|
||||
than 511 (510?) characters, sometimes you can use this knowledge to your
|
||||
advantage. Whenever it's not safe or when you don't know what input size you
|
||||
can expect, use strlcpy instead of strcpy. Do not ever use strncpy, this is
|
||||
older, slower, and does not add proper zero termination.
|
||||
For the same reason, use snprintf if really needed. Note though, that using
|
||||
ircsprintf with a bigger buffer (eg: 1024 bytes) is MUCH faster, so preferably
|
||||
use that instead of snprintf. The same can be true for strcpy vs strlcpy in
|
||||
some circumstances as well.
|
||||
|
||||
18. Speed. When optimizing or writing code, keep in mind that readability and
|
||||
stability comes FIRST, and after that comes speed. So we'd rather prefer some
|
||||
readable code (even if difficult) over some odd highly optimized routine which
|
||||
nobody understands, is difficult to extend, and might have several bugs.
|
||||
As mentioned earlier: use ircsprintf, not sprintf (this is because ircsprintf
|
||||
is optimized for simple strings like the ones we use).
|
||||
Prefer ircsprintf with a bigger buffer over the use of snprintf, since
|
||||
ircsprintf is much faster.
|
||||
|
||||
19. Initialize your structs and use the proper memory calls.
|
||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||
MyMalloc usually maps to malloc, and MyMallocEx is a malloc plus filling
|
||||
the memory area (eg: the struct) with zero's (a la calloc).
|
||||
Use of MyMallocEx is suggested. In general you should not be using MyMalloc.
|
||||
"But MyMalloc is faster!" you might say. This is true, but using MyMallocEx
|
||||
has very little speed impact and enormous benefits: people tend to forget
|
||||
to set certain fields in the struct to NULL, or much more common: when
|
||||
someone later on (eg: 1 year later) adds a field to a struct, there could
|
||||
be several places he/she needs to update to make sure x->something is NULL
|
||||
after allocating a new struct. Bad idea.
|
||||
Little speed impact, huge stability benefits, easy decision ;).
|
||||
|
||||
20. Comment your code! This should speak for itself...
|
||||
Put comments wherever you think they are needed, to aid any further coders
|
||||
with reading your code.. and, in fact, it will aid yourself as well if you
|
||||
would look back at your code 2 years later.
|
||||
If there's some obscure pitfall, do mention it! Don't just "hope" a next
|
||||
author will see it like you did.
|
||||
|
||||
21. Use enums whenever possible, rather than #define constants. Besides making
|
||||
things more clean, it also aids debugging.
|
||||
|
||||
+100
-135
@@ -1,153 +1,118 @@
|
||||
==[ IMPORTANT MESSAGE ABOUT DISABLING NOSPOOF ]==
|
||||
Disabling NOSPOOF at windows (w9x, nt, w2k, xp) is NOT recommended since this
|
||||
WILL allow users to use "spoofed hosts" (like the IP of someone you trust).
|
||||
|
||||
If you got problems with NOSPOOF fix your client (bot?) instead (you should
|
||||
PONG back to the initial PING at connect).
|
||||
|
||||
==[ GENERAL GUIDELINES ]==
|
||||
First of all you need Microsoft Visual C++, compiling with cygwin
|
||||
is not supported.
|
||||
First of all you need Microsoft Visual C++ (see below), compiling with
|
||||
cygwin is not supported.
|
||||
|
||||
VC++ 7.x (.NET) is highly recommended. VC 6 might work but it requires
|
||||
the Platform SDK (PSDK), it also has quite some bugs (there are 5 servicepacks!).
|
||||
Basically VC7 is just much easier and known to work, therefore we'll assume
|
||||
in this text that you are using it.
|
||||
Compatible compilers:
|
||||
cygwin NOT supported. Will not work. Should be no reason to use this anyway
|
||||
as cygwin is an emulation layer. It's obviously much better to run
|
||||
native (Windows) code on Windows.
|
||||
msvc 6.x Microsoft Visual Studio 6 does not work, this compiler is too old.
|
||||
msvc 7.x Microsoft Visual Studio 7.x (.NET), works.
|
||||
msvc 8.x Microsoft Visual Studio 8.x (.NET 2005), including the free kit, works.
|
||||
msvc 9.x Microsoft Visual Studio 9.x (.NET 2008), is used for official compile.
|
||||
mssdk Microsoft Windows SDK for Windows 7
|
||||
|
||||
== Simple compile (no SSL/ZIP/Remote includes) ==
|
||||
If you don't have the paid version of Microsoft Visual Studio 7.x, then you can
|
||||
use the FREE development kit available for Windows 7 explained below:
|
||||
1. Download the 'MS SDK for Windows 7 and .NET Framework 3.5 SP1' at:
|
||||
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en
|
||||
|
||||
2. NOTE: Whenever you need to compile something we say 'Start the Visual Studio
|
||||
.NET Command Prompt' below, but you - a person using the free version - will
|
||||
actually have to start the CMD Shell instead (check out the
|
||||
Start Menu under Microsoft Windows SDK v7.0). Users on x64 environment will have
|
||||
to change their environment to x86 by typing 'SETENV /x86'.
|
||||
|
||||
3. Download http://www.vulnscan.org/tmp/dlltool.exe and put the file somewhere
|
||||
in your path (eg: put it in c:\windows\system32).
|
||||
|
||||
==[ EXTERNAL LIBRARIES ]==
|
||||
Fetch the external libraries (c-ares, tre, openssl, zlib, curl) from:
|
||||
http://www.vulnscan.org/unrealwin32dev/
|
||||
|
||||
==[ COMPILING ]==
|
||||
1. Start the Visual Studio .NET Command Prompt
|
||||
2. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2) and then compile with:
|
||||
nmake -f makefile.win32
|
||||
This will generate a wircd.exe and unreal.exe
|
||||
3. Copy the src\win32\tre.dll to your UnrealIrcd main dir.
|
||||
4. Done!
|
||||
2. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2)
|
||||
3. Have a look at 'makefile.win32' to look at what parameters you need to
|
||||
use, this depends on what libraries you want to link in and their location.
|
||||
4. Two options, use either one (B is preferred), and read step 5 too:
|
||||
A. Edit makefile.win32 directly to reflect your configuration and run
|
||||
'nmake -f makefile.win32'
|
||||
B. Don't edit makefile.win32 but instead create a one-line command (which
|
||||
you can put in a batch file), like this (all on one line!):
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib"
|
||||
ZLIB_LIB_DIR="c:\dev\zlib\dll32" USE_SSL=1
|
||||
OPENSSL_INC_DIR="c:\openssl\include" OPENSSL_LIB_DIR="c:\openssl\lib"
|
||||
USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl-ssl\include"
|
||||
LIBCURL_LIB_DIR="c:\dev\curl-ssl\lib\dll-release"
|
||||
CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release"
|
||||
CARES_INC_DIR="C:\dev\c-ares" CARESLIB="cares.lib"
|
||||
TRE_LIB_DIR="C:\dev\tre\win32\release" TRE_INC_DIR="C:\dev\tre"
|
||||
TRELIB="tre.lib"
|
||||
5. You are likely to encounter an error like
|
||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global
|
||||
referenced in function _m_oper
|
||||
(the exact name and symbol will differ!!)
|
||||
In that case you need to generate a symbols file:
|
||||
nmake -f makefile.win32 SYMBOLFILE
|
||||
And after that simply re-run your nmake -f makefile.win32 [options]
|
||||
command, the same command you ran before the error occured.
|
||||
You should not get any unresolved external symbol error again.
|
||||
If you still do, then something is wrong.
|
||||
6. Your compile is now done, you can package unreal if you have InnoSetup,
|
||||
in that case check out src\win32\unrealinst.iss
|
||||
Otherwise, manually copy over the necessary files (and the dll files
|
||||
from the external libraries).
|
||||
|
||||
== Compiling modules ==
|
||||
==[ Compiling modules ]==
|
||||
1. Put your module (the .c file) in src\modules (eg: c:\dev\unreal3.2\src\modules).
|
||||
2. Start the Visual Studio .NET Command Prompt
|
||||
3. Go to your UnrealIrcd dir (like: cd \dev\unreal3.2).
|
||||
3. Go to your UnrealIRCd dir (like: cd \dev\unreal3.2).
|
||||
4. Compile the module with:
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=<name>
|
||||
nmake -f makefile.win32 <YOUR OPTIONS> custommodule MODULEFILE=<name>
|
||||
<name> is the name of the module WITHOUT the .c suffix, so if your
|
||||
module has the filename 'm_crappymod.c', then you use:
|
||||
nmake -f makefile.win32 custommodule MODULEFILE=m_crappymod
|
||||
nmake -f makefile.win32 <YOUR OPTIONS> custommodule MODULEFILE=m_crappymod
|
||||
Note that <YOUR OPTIONS> is the whole lot of options explained in
|
||||
previous section under 4B. If you use method 4A then there aren't any.
|
||||
Note 2: If you get any symbol file errors, see the section 'SYMBOL FILES'
|
||||
5. Done. A .dll file should have been created.
|
||||
|
||||
If you compiled with VC7 and used the official source (not a CVS version,
|
||||
but for example 3.2.1 source) then the module should work on all these
|
||||
versions (binary compatible) and you could for example put them on
|
||||
your website so users can download them.
|
||||
Such a module will work on both SSL and non-SSL, there should be no need
|
||||
for separate versions... unless, of course, you use SSL-specific code in your mod.
|
||||
DO NOT download a CVS version & compile your mod and then start
|
||||
distributing the .dll for use at another (non-CVS) version!!
|
||||
Every time we change a struct (and in some other cases) it makes the
|
||||
binary/module binary incompatible which practically means your module
|
||||
will CRASH or cause memory corruption and other subtle errors.
|
||||
If you compiled with the same Visual Studio version that we use to compile
|
||||
the official UnrealIRCd version, and use the same Unreal3.2.X.tar.gz as the
|
||||
official version (and not CVS!), then your module is fully binary compatible
|
||||
and you can put it on your website (or ours) so users can use them.
|
||||
If you do anything else, this won't work.
|
||||
So, again, it will NOT work properly, if:
|
||||
1. You use a different UnrealIRCd source (like CVS, or a previous version).
|
||||
2. You use another compiler... this might still work but may require an
|
||||
additional .DLL file to be put in your UnrealIRCd directory (MSVxxxxxx.DLL).
|
||||
3. You compile with different options, such as compiling with SSL but trying
|
||||
to load the module on non-SSL.
|
||||
NOTE: unless your module uses SSL-specific code, you should compile
|
||||
without SSL as it will run on both SSL and non-SSL UnrealIRCd's.
|
||||
|
||||
== COMPILING WITH ZIP LINKS / SSL / REMOTE INCLUDES SUPPORT ==
|
||||
First of all, DO NOT use any precompiled libs from the official
|
||||
zlib/openssl/curl sites. We require certain compile parameters.
|
||||
Versions downloaded from such sites will often CRASH.
|
||||
==[ SYMBOL FILES ]==
|
||||
If you get something like this:
|
||||
|
||||
The easiest is to download the UnrealIRCd development package
|
||||
which contains zlib, openssl and curl precompiled for you.
|
||||
See: www.vulnscan.org/unrealwin32dev/
|
||||
Creating library L_COMMANDS.lib and object L_COMMANDS.exp
|
||||
M_OPER.obj : error LNK2019: unresolved external symbol _sendto_snomask_global re
|
||||
ferenced in function _m_oper
|
||||
|
||||
Just extract it somewhere (eg: to c:\dev).
|
||||
Then, use compile flags to enable the features + specify where to look.
|
||||
Here are examples if you used c:\dev:
|
||||
ZIP: nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
|
||||
SSL: nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib"
|
||||
CURL: nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
|
||||
(note: the exact name of the symbol will vary!)
|
||||
|
||||
Obviously you can (and probably will) combine all these options, like
|
||||
to build a zip+ssl+curl version (all in 1 line):
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" ZLIB_LIB_DIR="c:\dev\zlib\dll32"
|
||||
USE_SSL=1 OPENSSL_INC_DIR="c:\dev\openssl\include" OPENSSL_LIB_DIR="c:\dev\openssl\lib" USE_REMOTEINC=1
|
||||
LIBCURL_INC_DIR="c:\dev\curl\include" LIBCURL_LIB_DIR="c:\dev\curl\lib"
|
||||
Then you will have to rebuild the wircd.def symbol file. You do this by
|
||||
downloading http://www.vulnscan.org/tmp/dlltool.exe and putting the file somewhere
|
||||
in your path (eg: c:\winnt\system32).
|
||||
Then, to compile you do this:
|
||||
nmake -f makefile.win32 [your other options here]
|
||||
nmake -f makefile.win32 SYMBOLFILE
|
||||
nmake -f makefile.win32 [your other options here]
|
||||
|
||||
== COMPILING ZLIB/SSL/CURL YOURSELF ==
|
||||
This is quite some work.. With the precomiled method shown above it
|
||||
just takes like 5-10 minutes to have a zlib+ssl+curl Unreal version.
|
||||
But if you want to compile each of these libs manually then it will
|
||||
probably take an hour or so.
|
||||
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
|
||||
compiling again.
|
||||
|
||||
** THE INFORMATION BELOW IS OUTDATED, WE GOT RID OF MDd, USE MD INSTEAD
|
||||
AND DONT COMPILE OPENSSL W/DEBUG ***
|
||||
|
||||
== ZIP LINKS (zlib) ==
|
||||
[NOTE: precompiled dlls should NOT be used because they will cause a crash
|
||||
(this is due to different compile parameters / api call systems]
|
||||
To compile with ziplinks support you need to do the following:
|
||||
Download the SOURCE from http://www.winimage.com/zLibDll/
|
||||
(at the time of writing, http://www.winimage.com/zLibDll/zlib121.zip)
|
||||
and extract it to somewhere, for example c:\dev\zlib-1.2.1
|
||||
|
||||
Then, edit win32\makefile.msc:
|
||||
- Change -MD to -MDd
|
||||
- Add -D ZLIB_WINAPI to CFLAGS
|
||||
- so the result will be like:
|
||||
CFLAGS = -nologo -MDd -O2 $(LOC) -D ZLIB_WINAPI
|
||||
- Then compile: nmake -f win32\Makefile.msc
|
||||
- Assuming the above step went fine, your zlib is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib-1.2.1" ZLIB_LIB_DIR="c:\dev\zlib-1.2.1"
|
||||
Obviously, change the paths if needed [1st = *.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== SSL (OpenSSL) ==
|
||||
[note: openssl requires perl to configure/compile!]
|
||||
- Download latest openssl (eg: openssl-0.9.7d.tar.gz) and extract it somewhere
|
||||
(we'll use c:\dev\openssl-0.9.7d in this example)
|
||||
- Open util\do_masm.bat, add 'debug' to the lines with 'mk1mf.pl' BUT be careful
|
||||
since it should NOT be the last word, so add it somewhere before that.
|
||||
For example: perl util\mk1mf.pl dll debug VC-W31-32 >ms\w31dll.mak
|
||||
- Start the
|
||||
- Now we go build openssl, run:
|
||||
ms\do_masm
|
||||
nmake -f ms\ntdll.mak
|
||||
- Assuming the above step went fine, your OpenSSL is now ready.
|
||||
- Now, to compile UnrealIRCd with ziplinks you do something like this:
|
||||
nmake -f makefile.win32 USE_SSL=1 OPENSSL_INC_DIR="c:\openssl\inc32\openssl" OPENSSL_LIB_DIR="C:\Dev\openssl\out32dll.dbg"
|
||||
Obviously, change the paths if needed [1st=*.h files, 2nd=*.dll/*.lib]
|
||||
|
||||
== REMOTE INCLUDES (curl, c-ares) ==
|
||||
- Download latest c-ares source from http://daniel.haxx.se/projects/c-ares/
|
||||
Download latest curl source from http://curl.haxx.se/download.html
|
||||
Extract both somewhere (eg: c:\dev\c-ares-1.2.0 and c:\dev\curl-7.12.0)
|
||||
- Open vc\vc.dsw from your ares directory. Assuming you have VC7 it will ask
|
||||
whether it should convert the project, choose 'Yes to all'.
|
||||
- (solution explorer) areslib -> properties
|
||||
C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- at the time of writing 'ares_free_errmem.c' should be removed from the
|
||||
project file (solution explorer -> source files -> find the file + press
|
||||
delete). Also 'ares_version.c' and 'ares_cancel.c' should be added
|
||||
(solution explorer -> source files -> rightclick -> add -> add existing ->
|
||||
go down a few directories if needed and choose the file).
|
||||
- right click at 'areslib' in the solution explorer and select 'Build'.
|
||||
Assuming it compiled fine, we are done with c-ares.
|
||||
- Now go to the curl directory and open lib\curllib.dsw. Choose 'Yes to all'
|
||||
again when asked about converting.
|
||||
- Open config-win32.h (@header files in solution explorer) and add:
|
||||
#define USE_ARES 1
|
||||
- Open include\curl\multi.h and change the line with:
|
||||
#include <winsock2.h>
|
||||
to:
|
||||
#include <winsock.h>
|
||||
- (solution explorer) curllib -> properties
|
||||
- C/C++ -> code generation -> runtime library: Change to
|
||||
'Multi-threaded Debug DLL (/MDd)'
|
||||
- C/C++ -> general -> additional include directories:
|
||||
add the path to your <c-ares-directory> (eg: C:\Dev\c-ares-1.2.0).
|
||||
- linker -> general -> additional library directories:
|
||||
add the path to your <c-ares-directory>\vc\areslib\Debug,
|
||||
for example C:\Dev\c-ares-1.2.0\vc\areslib\Debug.
|
||||
- linker -> input -> additional dependencies:
|
||||
add: areslib.lib
|
||||
- linker -> input -> Module defenition file:
|
||||
set to: libcurl.def
|
||||
Done with editting properties.
|
||||
- Now: Build -> rebuild solution, everything should compile fine.
|
||||
- Now, to compile UnrealIRCd with remote includes you do something like this:
|
||||
nmake -f makefile.win32 USE_REMOTEINC=1 LIBCURL_INC_DIR="C:\Dev\curl-7.12.0\include" LIBCURL_LIB_DIR="C:\Dev\curl-7.12.0\lib\Debug"
|
||||
==[ COMPILING ZLIB/SSL/CURL YOURSELF ]==
|
||||
This is off-topic and not explained here.
|
||||
Again, use the stuff from the win32 development pack unless you have a good
|
||||
reason to do otherwise.
|
||||
|
||||
@@ -1,764 +0,0 @@
|
||||
/*
|
||||
* example.conf by Alexander Ganchev AKA Peace (unrealirc@gmail.com).
|
||||
* $Id$
|
||||
*
|
||||
* Prednaznachen e za Unreal3.2 i versii sled nego
|
||||
* Dobre priqteli. Tova e noviqt example.conf.Izglejda kato nqkoi fail C++ (shega).
|
||||
* Kakto i da e..vreme e da go configurirame. Trudnichko e kato za purvi put, no
|
||||
* sus malko praktikuvane i chetene shte mu sviknete.
|
||||
*
|
||||
* Kopiraite tozi fail vuv vashata glavna direktoriq i go prekrustete na 'unrealircd.conf'.
|
||||
* VAJNO: Vsichki linii (tova sa zavurshvashtite na vseki red),
|
||||
* {trqbwa da zavurshvat sus ; a kraq na samata liniqta slagate i } - demek nakraq stava };
|
||||
* MOLQ PROCHETETE doc/unreal32docs.html!Online versiqta shte namerite tuk -
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Sudurja dosta informaciq za config faila: dava vi informaciq za vseki blok,stoinost, i taka natatuka..
|
||||
*/
|
||||
|
||||
/* Tipove Komentari */
|
||||
#Comment type 1 (Shell type)
|
||||
// Comment type 2(C++ style)
|
||||
/* Comment type 3 (C Style) */
|
||||
#tezi linii shte budat ignorirani ot ircd-to.
|
||||
|
||||
/*
|
||||
* UnrealIRCd poddurja modulite,clock.dll & commands.dll
|
||||
* zavisimost ot vashata operacionna sistema izberete za Windows ili za *NIX shte izpolzvate
|
||||
* Nezavisimo ot Operacionnata vi sistema trqbva da mahnete //- predi loadmodule i na 2-ta reda.
|
||||
*/
|
||||
|
||||
/* FOR *NIX, uncomment the following 2lines: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FOR Windows, uncomment the following 2 lines: */
|
||||
loadmodule "modules/commands.dll";
|
||||
loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Sushto taka moje da vkliuchite i drugi configuracionni failove.
|
||||
* help.conf vi se qvqva komadata /helpop text. The badwords.*.conf
|
||||
* falovete sudurjat vsichki "badword kato slojite mod +G v kanal
|
||||
* spamfilter.conf sudurja nqkoi dobri pravila za zabrani za puskane na troianski kone.
|
||||
* Ako iskate mojete da gi vkliuchite tqh :
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/* NEW: me {}
|
||||
* OLD: M:Line
|
||||
* me {} opredelq imeto,opisanie i cifrata na vashiqt unrealircd server.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Description";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Ako linkvate Servera si,Cifrata moje bi nqma da bude izpolzvaema ot drugite serveri vuv mrejata
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "Imeto Na Servera vi";
|
||||
info "Opisanie Na Servera";
|
||||
numeric Cifra po izbor(po malka e po dobre);
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: admin {}
|
||||
* OLD: A:Line
|
||||
* Admin dava informaciq za server admin-a na mrejata.
|
||||
* Mojete da slojite mnogo linii pod grafata 'admin {' ako iskate.
|
||||
* Sintaksisa kakto sledva:
|
||||
* admin {
|
||||
* "Purva liniq";
|
||||
* "Vtora liniq";
|
||||
* [drugi]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"TUk Slojete informaciq za admina";
|
||||
"Tuk mojete da slojite i ime ili email";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: class {}
|
||||
* OLD: Y:line (old was confusing)
|
||||
* Class e grupa nastroiki za vashata vruzka.Primer,Server connect-vane,max clienti i drugi.
|
||||
* delqt se na 2 Class-a. Class Cliends & Servers.
|
||||
* {
|
||||
* pingfreq ((kolko chesto da pignesh user/server v sekundi);
|
||||
* maxclients (vuzmojnite connekcii za opredelen 'Class');
|
||||
* sendq (maksimuma ot hora v edna opashka);
|
||||
* recvq (maximum receive queue from a connection [flood control]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Maksimum serveri koito moje da se link-nat */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Sekundite mejdu vseki opit za connect-vane */
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow {}
|
||||
* OLD: I:Line
|
||||
* Tazi Opciq opredelq koi shte ima pravo da vliza na servera vi...
|
||||
* Mojete da kontrolirate vashite klienti,da im slagate paroli i drugi.
|
||||
* control and/or set a password.
|
||||
* Syntax is as follows:
|
||||
* allow {
|
||||
* ip (razresheno ip za izpolzvane);
|
||||
* hostname (host mask);
|
||||
* class (class to send them to [see class {}]);
|
||||
* password "(parola)"; (po izbor)
|
||||
* maxperip (pozvoleni vruzki ot edno ip); (optional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Passworded allow line */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "Test";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow channel {}
|
||||
* OLD: chrestrict
|
||||
* Razreshenie na userite da vlizat v opredelen kanal...
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "imeto na kanala";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#Free";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: oper {}
|
||||
* OLD: O:Line
|
||||
* Opredelete koi da bude IRC Operator na servera vi
|
||||
* IRC operators tova sa tochno tezi hora koito da se grijat za servera,
|
||||
* da go poddurjat i da se connect-vat redovno.
|
||||
* Sinktaksisut e kakto sledva :
|
||||
* oper (login) {
|
||||
* class (class to put them in, if different from I, moves them to new
|
||||
* class);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (tuk shte slagate flagovete*);
|
||||
* };
|
||||
* OR
|
||||
* flags "old type flags, like OAaRD"; (sushto moje da slagate i samo bukvite)
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Za lista s oper flagovete, poglednete doc/unreal32docs.html#operblock
|
||||
*[Zaduljitelno da se prochete]
|
||||
*/
|
||||
|
||||
oper admin {
|
||||
class clients;
|
||||
from {
|
||||
userhost *@*;
|
||||
};
|
||||
password "Test";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
coadmin;
|
||||
can_globalkill;
|
||||
can_ungline;
|
||||
can_gline;
|
||||
can_kline;
|
||||
can_unkline;
|
||||
can_rehash;
|
||||
can_globops;
|
||||
can_localroute;
|
||||
can_wallops;
|
||||
can_localkill;
|
||||
can_localnotice;
|
||||
can_globalroute;
|
||||
can_globalnotice;
|
||||
can_dccdeny;
|
||||
can_setq;
|
||||
services-admin;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: listen {}
|
||||
* OLD: P:Line
|
||||
* Tuk shte opredelite porta na vasheto ircd prez koito
|
||||
* da vlizat useri/serveri.
|
||||
* Siktaksisut e kakto sledva :
|
||||
* listen (ip):(nomera na porta)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* or for a plain
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* NOTICE: for ipv6 ips (3ffe:b80:2:51d::2 etc), use listen [ip]:port;
|
||||
*
|
||||
* That works also.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* BELEJKI ZA SSL PORTOVE : SSL portovete sa dosta nestandartni,
|
||||
* osven nomera na 'high-SSL portovete', nqkoi hora kazvat che mojej da gi startirash
|
||||
* na 994 port, zashtoto tova e oficialniqt SSL port..no tova izskva root!Osven tova port 194
|
||||
* e oficialniqt irc port i mojete nqkoi put da probvate da vidite dali ircd-to e startirano
|
||||
* na tozi port.
|
||||
* Nashiqt suvet e da izpolzvate port 6697 za SSL, toi se izpolzva vuv nqkoi mreji i
|
||||
* mojete da otvorite mnogo SSL portove ako iskate, no izpolzvaite i 6697 po standart.
|
||||
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/*
|
||||
* NEW: link {}
|
||||
* OLD: C/N:Lines
|
||||
* Tezi opcii sa za link-vane na serveri
|
||||
* BELEJKA: Dva servera se nujdaqt ot LINK {} za da budat linknati bez problemi!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, moshete da slojite sushto i * );
|
||||
* hostname (ip nomer/hostmask);
|
||||
* bind-ip (kum koe ip da bude svurzano sled kato se connect-ne, ili slojete * );
|
||||
* port (port za svurzvane (moje da slojite vseki);
|
||||
* hub (ako servera vi e hub,slojete * , ili servermask-a);
|
||||
* [ili leaf *;]
|
||||
* password-connect "(parola za svurzvane)";
|
||||
* password-receive "(povtorete parolata)";
|
||||
* class (class);
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* Ako izpolzvate SSL,vie mojete da izberete shifur za da izpolzvate SSL mode
|
||||
* * Lista shte namerite vuv "openssl ciphers",samostoqtelen shifur sus :'s
|
||||
* */
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link services.Test.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Belejka: vie ne mojete da izpolzvate autoconnect kogato linkvate serveri
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEW: ulines {}
|
||||
* OLD: U:Line
|
||||
* U-liniite davat poveche komandi na serverut vi,Uliniite se slagat samo za services/stats
|
||||
* serveri i NIKOGA za normalnite UnrealIRCd serveri!
|
||||
* Sintaksisut e kakto sledva:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.Test.org;
|
||||
stats.Test.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: drpass {}
|
||||
* OLD: X:Line
|
||||
* Tuk shte slagate parolite za /die i /restart na servera.
|
||||
* Sintaksusut e kakto sledva:
|
||||
* drpass {
|
||||
* restart "(parola za restart na servera)";
|
||||
* die "(parola za die na servera)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: log {} OLD: nishto ne se kazva otnosno tova kude i kakvo da logva.Mojete
|
||||
* gi slagate ako iskate
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Iztriite log faila i napravete nov koito da stiga do 2MB.
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* Chrez tezi nastroiki moje da napravite prehod ot /nickserv,/chanserv i drugi kum drugi nickove.
|
||||
* FLAGS: services,stats,normal
|
||||
*
|
||||
** Syntax:
|
||||
* alias "Ime" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
* [BELEJKA: Mojete da vkliuchite i opredeleniq,za celta poglednete doc/unreal32docs.html section 2.9]
|
||||
*/
|
||||
|
||||
// Tova posochva komandata /nickserv-a na user-a NickServ koito e svurzan s set::services-server server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ako iskate komandite da sa na drug nick mojete da promenite nick-a
|
||||
//alias ChanServ {type services; };
|
||||
|
||||
// Posochva /StatServ na user-a StatServ koqto svurzva set::stats-server server
|
||||
//alias StatServ {type stats; };
|
||||
|
||||
// Posochva /superbot na user-a SuperBot
|
||||
//alias SuperBot {type normal; };
|
||||
|
||||
/* Standart Aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* Tezi moje da posochite zamestiteli na /identify,/services, i drugi...
|
||||
* Syntax:
|
||||
* alias "Ime" {
|
||||
* format "format string" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* parameters "parameters to send";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Tova se pokazva otdelno, zashtoto vypreki che ima syshtoto ime kato predishnata direktiva
|
||||
*e dosta razlichno po otnoshenie na sintaksis, vypreki che osigurqva prosta funkciq i raz4ita na standartni alias-i za da raboti.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* alias::format ditektivata e obichaen izraz.Pyrviq format se svyrzva s
|
||||
* komandata /identify kogato pyrviq simvol e "#". Sled tova se izprashta do chanserv
|
||||
* alias-a s parametri identify. %1-. Togava vtoriq ormat se svyrzva s komandata /identify
|
||||
* kogato pyrviq simvol ne e "#".
|
||||
* Togava se izprashta do nickserv alias-a s parametri identify %1-.
|
||||
|
||||
/* Standard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
* OLD: T:Line
|
||||
* Tezi nastroki sa za razlichni 'motd' i 'rules' failove
|
||||
* v zavisimost ot klientskata hostmask-a.
|
||||
* Sintaksisut e kakto sledva:
|
||||
* tld {
|
||||
* * mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*;
|
||||
motd "ircd.motd";
|
||||
rules "ircd.rules";
|
||||
};
|
||||
|
||||
/* BELEJKA: vzemete nqkoi fail primer - vzemete tao.of.irc.doc..sled tova go kopiraite v
|
||||
* glavnata direktoriq na Unrealircd-to vi.Prekrustete go na irc.motd..Napravete po sushtiq
|
||||
* nachin i ircd.rules (FAILOVETE SA ZADULJITELNI)
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEW: ban nick {}
|
||||
* OLD: Q:Line
|
||||
* Ako slojite ban na nickname to veche tozi nick stava neizpolzvaem.
|
||||
* Sintaksisut e kakto sledva :
|
||||
* ban nick {
|
||||
* mask "(nick koito jelaete da zabranite)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "Test";
|
||||
reason "Test Nickname";
|
||||
};
|
||||
/*
|
||||
* NEW: ban ip {}
|
||||
* OLD: Z:Line
|
||||
* Ban na ip.
|
||||
* Sintaksis:
|
||||
* ban ip { mask (ip nomer/hostmask); reason "(prichina)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 100.100.200.300;
|
||||
reason "Wrong Ip";
|
||||
};
|
||||
/*
|
||||
* NEW: ban server {}
|
||||
* OLD: Server Q:Line
|
||||
* Slagane na ban na server.Ako servera e link-nat kum otdalecheniq server
|
||||
* (toest tozi) localniqt server shte se diskonect-ne avtormatichno.
|
||||
* Syntax is as follows:
|
||||
* ban server {
|
||||
* mask "(Imeto na servera)";
|
||||
* reason "(Prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask irc.microsoft.com;
|
||||
reason "Get out of here";
|
||||
};
|
||||
/*
|
||||
* NEW: ban user {}
|
||||
* OLD: K:Line
|
||||
* Tazi opciq pozvolqva da zabranite dostupa na user do vashiqt server
|
||||
* Sintaksis:
|
||||
* ban user { mask (hostmask/ip nomer); reason "(Prichina)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.microsoft.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
/*
|
||||
* NEW: ban realname {}
|
||||
* OLD: n:Line
|
||||
* Tazi opciq vi dava pravo da zabranite dostupa na user ot opredeleno 'realname'.
|
||||
* Sintaksis:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(prichina)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "test";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7";
|
||||
reason "virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* BELEJKA ZA VSICHKI BANOVE, mojete da povtarqte procedurata sus razlichni nickove!
|
||||
*
|
||||
* NEW: except ban {}
|
||||
* OLD: E:Line
|
||||
* Nick koito ne moje da bude bannat.
|
||||
* Sintaksis:
|
||||
* except ban { mask (ident@host); }
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
/*
|
||||
* NEW: deny dcc {}
|
||||
* OLD: dccdeny.conf
|
||||
* Izpolzvaite go za da zabranite dcc.Predpazva vi ot virusi
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "Fail koito shte blokirate (ie, *exe)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "Sub7";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny channel {}
|
||||
* OLD: N/A (NEW)
|
||||
* Zabranqva kanali po vash izbor.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(kanal)";
|
||||
* reason "prichina";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "hackers";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* Tazi nastroika vi slaga Falshivo ip.Slaga se za hora koito ne sa operatori
|
||||
* ili puk za operatori (za po murzelivite /sethost :P
|
||||
* Sintaksis:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host to allow to use it);
|
||||
* };
|
||||
* login (login name);
|
||||
* password (password);
|
||||
* };
|
||||
* then to use this vhost, do /vhost (login) (password) in IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Mojete da vkliuchite i drugi konfiguracionni failove */
|
||||
/* vkliuchete "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "Imeto na Mrejata vi";
|
||||
default-server "Imeto na Servera";
|
||||
services-server "Services.servera";
|
||||
stats-server "Stats.Servera";
|
||||
help-channel "#Kanal za pomosht";
|
||||
hiddenhost-prefix "skrithost";
|
||||
/* prefix-quit "quit na userite"; */
|
||||
/* Cloak Keys se slagat na vsichki serveri ot mrejata.
|
||||
* Te se izpolzvat za po golqma sigurnost.Trqbva da budat izbrani 3 reda
|
||||
* ot 5-100 simvola i da sudurjat SMESENI golemi,malki bukvi i cifri...
|
||||
* V primera e posocheno edin takuv 'Cloak Key'..napishete oshte 2
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
"Slojete Tuk Vashi Razburkani";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "Host za localen operator";
|
||||
global "Host za globalen operator";
|
||||
coadmin "Host za coadmin";
|
||||
admin "Host za admin";
|
||||
servicesadmin "Host za services-admin";
|
||||
netadmin "Host za netadmin";
|
||||
host-on-oper-up "yes\no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "slojete adres za kline";
|
||||
auto-join "#kanal za auto-join";
|
||||
modes-on-connect "+iw";
|
||||
modes-on-oper "+wgs";
|
||||
oper-auto-join "#Kanal za auto-join na operatorite";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Ako jelaete da proverqva identa mahnete */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Tova e minimalnoto vreme v koeto user moje da se svurje sled kato izleze ot servera.
|
||||
* Tova shte pomogne da se spre spam-a */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Napravete statichen quit koito da zamestva drugite quit-ove na userite.
|
||||
custom quits are allowed on local server */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Mojete da blokirate 'Part-reason-ite' kato slojite nqkakuv text po vash izbor */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Mojete da slagate 'stats' ili inache kazano nqkoi flagove da budat razresheni i
|
||||
* izpolzvaemi samo ot operite. Primer za tova sa - klines,glines i shuns
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dolniqt primer pokazva che mojete da slojite limit 3 svurzvaniq
|
||||
za 60 sec (na host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 smenqniq na nicka za 60 seconds (po default) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* vremetraeneto e po default *line ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default prichina */
|
||||
virus-help-channel "#help"; /* Kanal za skanirane na virusi */
|
||||
/* s izkliuchenie "#help"; drugite kanali se osvobojdavat ot filtrirane */
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Ako imate problem ili nujda ot pomosht?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- sudurja 80% ot vuprosite vi!
|
||||
* 3) Ako imate problem moje da se oburnete i kum irc.ircsystems.net #unreal-support,
|
||||
* no purvo PROCHETETE HELP FAILA i 'FAQ'.
|
||||
*/
|
||||
+79
-17
@@ -2,7 +2,7 @@
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Works for Unreal3.2 and up
|
||||
* Works for Unreal3.2.x
|
||||
*
|
||||
* Okay guys. This is the new example.conf. Its look is much like C++, kinda.
|
||||
* Anyway it is time to go over this. It's hard to pick up at first, but
|
||||
@@ -14,9 +14,11 @@
|
||||
* closing } line. The IRCd will ignore commented lines.
|
||||
*
|
||||
* PLEASE READ doc/unreal32docs.html! The online version is also available at:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* It contains a lot information about the configfile: gives information about
|
||||
* every block, variable, etc..
|
||||
* If you try to edit this file without reading the documentation properly
|
||||
* then you are pretty much guaranteed to fail!
|
||||
*/
|
||||
|
||||
/* Type of comments */
|
||||
@@ -159,10 +161,12 @@ allow {
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -288,9 +292,9 @@ listen *:6667;
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* /* If we use SSL, we can choose what cipher to use in SSL mode
|
||||
* * Retrieve a list by "openssl ciphers", seperate ciphers with :'s
|
||||
* */
|
||||
* // If we use SSL, we can choose what cipher to use in SSL mode
|
||||
* // Retrieve a list by "openssl ciphers", separate ciphers with :'s
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
@@ -361,7 +365,7 @@ drpass {
|
||||
* NEW: log {} OLD: N/A Tells the ircd where and what to log(s). You can have
|
||||
* as many as you wish.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
@@ -381,7 +385,6 @@ log "ircd.log" {
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
@@ -505,6 +508,66 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/* This is an example of a real command alias */
|
||||
/* This maps /GLINEBOT to /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: files {}
|
||||
* OLD: include/config.h
|
||||
*
|
||||
* This block overrides the IRCd's default paths for loading things
|
||||
* like the MOTD, saving its PID, or writing/loading its tunefile. The
|
||||
* existence of this block allows one UnrealIRCd installation to
|
||||
* support multiple running instances when combined with the -c
|
||||
* commandline option.
|
||||
*
|
||||
* As usual, relative paths are interpreted relative to the directory
|
||||
* where UnrealIRCd would find unrealircd.conf if -c is _not_
|
||||
* specified on the commandline.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* The Message Of The Day shown to users who log in: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* A short MOTD. If this file exists, it will be displayed to
|
||||
* the user in place of the MOTD. Users can still view the
|
||||
* full MOTD by using the /MOTD command.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Shown when an operator /OPERs up */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* Services MOTD append. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* Bot MOTD */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Shown upon /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Where the IRCd stores and loads a few values which should
|
||||
* be persistent across server restarts. Must point to an
|
||||
* existing file which the IRCd has permission to alter or to
|
||||
* a file in a folder within which the IRCd may create files.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Where to save the IRCd's pid. Should be writable by the IRCd. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: tld {}
|
||||
@@ -649,11 +712,13 @@ deny dcc {
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "reason";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -698,6 +763,8 @@ set {
|
||||
* The keys should be 3 random strings of 5-100 characters
|
||||
* (10-20 chars is just fine) and must consist of lowcase (a-z),
|
||||
* upcase (A-Z) and digits (0-9) [see first key example].
|
||||
* HINT: On *NIX, you can run './unreal gencloak' in your shell to let
|
||||
* Unreal generate 3 random strings for you.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
@@ -723,11 +790,6 @@ set {
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* You can enable ident checking here if you want */
|
||||
@@ -754,7 +816,7 @@ set {
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: this example sets a limit of 3 connections per 60s (per host). */
|
||||
/* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
@@ -776,8 +838,8 @@ set {
|
||||
|
||||
/*
|
||||
* Problems or need more help?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contains 80% of your questions!
|
||||
* 3) If you still have problems you can go irc.ircsystems.net #unreal-support,
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- contains 80% of your questions!
|
||||
* 3) If you still have problems you can go irc.unrealircd.org #unreal-support,
|
||||
* note that we require you to READ THE DOCUMENTATION and FAQ first!
|
||||
*/
|
||||
|
||||
+18
-21
@@ -2,7 +2,7 @@
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
* Arbeitet mit Unreal3.2.x
|
||||
*
|
||||
* Dies hier ist die neue example.conf. Sie ähnelt irgendwie ein wenig C++ und sie
|
||||
* soll sie jedenfalls einmal erläutert werden. Es ist ein wenig schwer, erstmals
|
||||
@@ -19,7 +19,8 @@
|
||||
* BITTE LESE die doc/unreal32docs.html! Sie ist auch online erhältlich bei:
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* Diese Datei enthält zahlreiche ergänzende Informationen über jeden Block, Variablen usw.
|
||||
* Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net)/
|
||||
* Übersetzung durch stylus740@smart-irc.de (bei irc.smart-irc.net)
|
||||
*/
|
||||
|
||||
/* Kommentar Typen */
|
||||
#Kommentar Typ 1 (Shell Typ)
|
||||
@@ -94,8 +95,8 @@ admin {
|
||||
/*
|
||||
* NEU: class {}
|
||||
* ALT: Y:line (alte Form war verwirrend)
|
||||
* Hiermit werden Klassen und ihre Einstellungen festgelegt. Eine Klasse ist eine Gruppen
|
||||
* Einstellung für Verbindungen. So kann man beispielsweise Server Verbindungen in einer
|
||||
* Hiermit werden Klassen und ihre Einstellungen festgelegt. Eine Klasse ist eine Gruppen-
|
||||
* einstellung für Verbindungen. So kann man beispielsweise Server Verbindungen in einer
|
||||
* eigenen Klasse behandeln, statt zusammen mit Clients.
|
||||
* Syntax ist wie folgt:
|
||||
* class (class name)
|
||||
@@ -293,11 +294,11 @@ listen *:6667;
|
||||
* options {
|
||||
* (options hier*);
|
||||
* };
|
||||
* /* Wird SSL benutzt, kann bestimmt werden, welche Verschlüsselung im SSL
|
||||
* * Modus zu benutzen ist
|
||||
* * Bei mehreren "openssl ciphers" sind die einzelnen Verschlüsselungen
|
||||
* * durch ':' zu trennen
|
||||
* */
|
||||
* // Wird SSL benutzt, kann bestimmt werden, welche Verschlüsselung im SSL
|
||||
* // Modus zu benutzen ist
|
||||
* // Bei mehreren "openssl ciphers" sind die einzelnen Verschlüsselungen
|
||||
* // durch ':' zu trennen
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
@@ -368,7 +369,7 @@ drpass {
|
||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||
* beliebig viele festlegen.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
@@ -391,7 +392,6 @@ log "ircd.log" {
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
@@ -632,7 +632,7 @@ except ban {
|
||||
/*
|
||||
* NEU: deny dcc {}
|
||||
* ALT: dccdeny.conf
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Virten aufzuhalten.
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Viren aufzuhalten.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
@@ -702,6 +702,8 @@ set {
|
||||
* Die Keys sollten 3 zufällige Strings von 5-100 Zeichen Länge sein (10-20 Zeichen
|
||||
* (sind ganz ok) und müssen aus Kleinbuchstaben(a-z), Großbuchstaben (A-Z) und
|
||||
* Ziffern (0-9) bestehen [wie im ersten Key Beispiel].
|
||||
* TIPP: Auf *NIX, kann man in der Shell './unreal gencloak' aufrufen und durch
|
||||
* Unreal 3 Zufalls Stings erzeugen und anzeigen lassen.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
@@ -727,11 +729,6 @@ set {
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Man kann hier ident checking aktivieren, wenn man will */
|
||||
@@ -741,7 +738,7 @@ set {
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung
|
||||
* senden darf (Das wird offentlich helfen, Spam zu verhindern */
|
||||
* senden darf (Das wird offentlich helfen, Spam zu verhindern) */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Macht die Meldung statisch, die in allen Quit Meldungen angezeigt wird.
|
||||
Somit sind keine individuellen Quts auf dem lokalen Server mehr erlaubt */
|
||||
@@ -783,7 +780,7 @@ set {
|
||||
* Probleme? Weitere Hilfe nötig?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- enthält 80% deiner Fragen - Wetten Dass?
|
||||
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.ircsystems.net
|
||||
* #unreal-support aufsuchen. Dabei ist zu beachten, dass wir voraussetzen,
|
||||
* dass zuvor DIE DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
* 3) Hat man dann noch Probleme, kann man den Chat bei irc.unrealircd.org
|
||||
* #unreal-support aufsuchen. Achtung, wir setzen voraus, dass zuvor die
|
||||
* DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,842 @@
|
||||
/*
|
||||
* example.conf por Danial Hawton, alias Osiris (osiris@unrealircd.org).
|
||||
* Traducido al castellano por Severus_Snape (javiersnape@gmail.com).
|
||||
*
|
||||
* Funciona desde Unreal3.2.x
|
||||
*
|
||||
* Ok. Este es el nuevo example.conf. Es muy similar a C++.
|
||||
* De todas formas lleva tiempo hacer esto. En un principio, es dificil de comprender pero
|
||||
* con un poco de práctica y lectura lo comprenderás.
|
||||
*
|
||||
* Simplemente copia este archivo al directorio principal de unrealircd y cambiale el nombre a 'unrealircd.conf'.
|
||||
*
|
||||
* NOTA: Todas las líneas, a excepción de la línea de apertura ( { ) terminan en ;, incluyendo la
|
||||
* línea de cierre ( } ). El IRCd ignorará las lineas comentadas.
|
||||
*
|
||||
* ¡POR FAVOR LEE doc/unreal32docs.es.html! La versión online esta disponible en:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
||||
* Contiene mucha información acerca del archivo de configuración: Da información acerca de
|
||||
* cada bloque, variable, etc.
|
||||
* ¡Si intentas editar este archivo sin leer bien la documentación
|
||||
* estas destinado a fallar!
|
||||
*/
|
||||
|
||||
/* Tipos de Comentarios */
|
||||
#Comentario tipo 1 (Estilo Shell)
|
||||
// Comentario tipo 2 (Estilo C++)
|
||||
/* Comentario tipo 3 (Estilo C) */
|
||||
#Estas líneas son ignoradas por el IRCd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd soporta módulos, cargar algunos de ellos es requerido.
|
||||
* Al menos debes cargar el módulo de los comandos y un módulo de cifrado (cloaking).
|
||||
*/
|
||||
|
||||
/* PARA *NIX, descomenta las siguientes 2 líneas: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* PARA Windows, descomenta las siguientes 2 líneas: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Además pudes incluir otros archivos de configuración.
|
||||
* help.conf contiene todo el contenido de /helpop. Los archivos badwords.*.conf
|
||||
* contienen todas las entradas de badwords para el modo +G...
|
||||
* spamfilter.conf contiene algunas buenas reglas para los troyanos actuales.
|
||||
* Probablemente quieres incluirlos:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NUEVO: me {}
|
||||
* VIEJO: M:Line
|
||||
* me {} define el nombre, la descripción y el número de servidor
|
||||
* para este server. La Sintaxis es:
|
||||
* me {
|
||||
* name "nombre.del.servidor";
|
||||
* info "Descripción del Servidor";
|
||||
* numeric (número del servidor*);
|
||||
* };
|
||||
* * = Si estas enlazando este server, el número no debe ser usado por otro server en la red.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: admin {}
|
||||
* VIEJO: A:Line
|
||||
* /Admin te da la información acerca del administrador del servidor. Tu
|
||||
* puedes poner cuantas líneas quieras debajo de admin {.
|
||||
* La sintaxis es:
|
||||
* admin {
|
||||
* "primera línea";
|
||||
* "segunda línea";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: class {}
|
||||
* VIEJO: Y:line (old was confusing)
|
||||
* Esto define la configuración para las clases. Una clase es una configuración en grupo para las
|
||||
* conexiones. Por ejemplo, las conexiones de los servidores, en vez de ir a la clase de los clientes.
|
||||
* la diriges a la clase de servidores. La sintaxis es la siguiente:
|
||||
* class (nombre de la clase)
|
||||
* {
|
||||
* pingfreq (que tan seguido pingueara a el servidor/cliente en segundos);
|
||||
* maxclients (cuantas conexiones para esta clase);
|
||||
* sendq (cola máxima de envios para la conexión);
|
||||
* recvq (cola máxima de mensajes recibidos desde la conexión [Control de Flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Cantidad máxima de servers que podemos enlazar a la vez */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Cuentos segundos entre cada intento de conexión */
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: allow {}
|
||||
* VIEJO: I:Line
|
||||
* Esto define los permisos de las conexiones...
|
||||
* Fundamentalmente para los clientes, les permite conectarse así tu puedes tener un poco de
|
||||
* control y/o poner una contraseña.
|
||||
* La sintaxis es la siguiente:
|
||||
* allow {
|
||||
* ip (IP/IPs a permitir);
|
||||
* hostname (nombre de host);
|
||||
* class (clase asignada a esta conexión [ver class {}]);
|
||||
* password "(contraseña)"; (opcional)
|
||||
* maxperip (cuantas conexiones por IP); (opcional)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* allow {} con contraseña */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.gente.fea.con.clave;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: allow channel {}
|
||||
* VIEJO: chrestrict
|
||||
* Permite a un usuario unirse a un canal...
|
||||
* como una expeción de deny channel.
|
||||
* Sintaxis:
|
||||
* allow channel {
|
||||
* channel "#nombredelcanal";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezApestan";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: oper {}
|
||||
* VIEJO: O:Line
|
||||
* Define a un Operador de IRC
|
||||
* Los Operadores de IRC estan para mantener al servidor "sano" y usualmente
|
||||
* mantenerlo y tenerlo conectado a la red.
|
||||
* La sintaxis es la siguiente:
|
||||
* oper (login) {
|
||||
* class (clase para ponerlos, si es difirente de la que esta en allow {], los mueve a la nueva clase);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (las flags aqui*);
|
||||
* };
|
||||
* O
|
||||
* flags "flags antiguas como, OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Para una lista de banderas de operador, lea doc/unreal32docs.es.html#operblock
|
||||
* [lectura ALTAMENTE recomendada]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: listen {}
|
||||
* VIEJO: P:Line
|
||||
* Esto define el puerto/IP a el que el IRCd debe escuchar y unirse, esto
|
||||
* permite a los usuarios/servidores conectarse al servidor.
|
||||
* La sintaxis es:
|
||||
* listen (Dirección IP):(número de puerto)
|
||||
* {
|
||||
* options {
|
||||
* (opciones aqui);
|
||||
* };
|
||||
* };
|
||||
* o simplemente
|
||||
* listen: listen (ip):(puerto);
|
||||
*
|
||||
* NOTA: para IPs IPv6 (3ffe:b80:2:51d::2, etc.), use listen [ip]:puerto;
|
||||
*
|
||||
* Eso también funciona.
|
||||
*/
|
||||
|
||||
/* Opciones para listen {}:
|
||||
VIEJAS | NUEVAS | SIGNIFICADO
|
||||
S serversonly Sólo Servidores
|
||||
C clientsonly Sólo Clientes
|
||||
J java Sólo Clientes Java
|
||||
s ssl Conexion Cifrada (SSL)
|
||||
* standard Standard
|
||||
*/
|
||||
|
||||
/* NOTA EN PUERTOS SSL: Los puertos SSL no están estandarizados,
|
||||
* muchos puertos SSL estan en números muy altos, algunas personas dicen que deberias hacerlo
|
||||
* en el puerto 994 por que ese es el puerto SSL oficial... ¡pero eso
|
||||
* requiere acceso root! Además, el puerto 194 es el puerto oficial de IRC... y
|
||||
* has visto alguna vez ver un IRCd corriendo en ese puerto? Usan el 6667.
|
||||
* Asi que, nuestra sugerencia es que uses el puerto 6697 para SSL, ese puerto es usado por
|
||||
* una cantidad de redes decente y es reconozido por ejemplo: por StunTour.
|
||||
* Además eres libre de abrir cuantos puertos SSL quieras, pero
|
||||
* correr uno en 6697 ayudaría al mundo a estandarizarlo un poco mas :).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTA: Si estas en shell IRCd con multiples IPs, normalmente
|
||||
* obtendras un error como 'La dirección ya esta en uso/Address already in use' en tus logs
|
||||
* y el IRCd no iniciará. Esto significa que tu DEBES unir el IRCd
|
||||
* a una IP específica en vez de '*', por ejemplo:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Obviamente, reemplaza esa IP con la IP que se te fue asignada.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NUEVO: link {}
|
||||
* VIEJO: C/N:Lines
|
||||
* Esto define los enlazes entre servidores.
|
||||
* NOTA: ¡LOS DOS SERVIDORES NECESITAN UN BLOQUE LINK {} PARA ENLAZARSE BIEN!
|
||||
* La sintaxis es:
|
||||
* link (nombre.del.servidor)
|
||||
* {
|
||||
* username (nombre de usuario, * también funciona);
|
||||
* hostname (dirección IP/máscara de host);
|
||||
* bind-ip (A que IP unirse cuando se estan enlazando, o *);
|
||||
* port (Puerto al cual conectarse);
|
||||
* hub (Si esto es un hub, * funciona.);
|
||||
* [o leaf *;]
|
||||
* password-connect "(contraseña a enviar)";
|
||||
* password-receive "(contraseña que deberiamos)";
|
||||
* class (Clase a donde dirigir los servers);
|
||||
* options {
|
||||
* (las opciones van aqui*);
|
||||
* };
|
||||
* // Si tu uses SSL, debes escoger que cifrado usar en el modo SSL
|
||||
* // Obtiene una lista con "openssl ciphers", separa los métodos de cifrados con ":"
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciones:
|
||||
VIEJAS | NUEVAS | SIGNIFICADO
|
||||
S ssl Usar SSL
|
||||
Z zip Comprimir los datos enviados.
|
||||
N/A autoconnect su servidor intentará conectar automáticamente.
|
||||
El tiempo usado entre intentos es el que especificó en class::connfreq
|
||||
(se recomienda para un sólo lado, de leaf a hub)
|
||||
N/A quarantine Aislar
|
||||
N/A nodnscache No usar Caché DNS (Muy útil para DDNS)
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Nota: No deberias usar autoconnect cuando conectas servicios */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NUEVO: ulines {}
|
||||
* VIEJO: U:Line
|
||||
* Las ulines {} le dan a los servidores mas poder/comandos, ¡esto SOLO debe ser usado
|
||||
* para los servidores de servicios/estadísticas y NUNCA para servidores UnrealIRCd normales!.
|
||||
* (Para un buen funcionamiento, todos los servidores deberían tener los mismos U:Lines)
|
||||
* La Sintaxis es la siguiente:
|
||||
* ulines {
|
||||
* (servidor a ulinear);
|
||||
* (servidor a ulinear);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: {}
|
||||
* VIEJO: X:Line
|
||||
* Esto define las contraseñas para /die y /restart.
|
||||
* La sintaxis es:
|
||||
* drpass {
|
||||
* restart "(contraseña para reiniciar)";
|
||||
* die "(contraseña para matar al IRCd)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "amo-reiniciar";
|
||||
die "muere-inepto";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: log {}
|
||||
* VIEJO: N/A
|
||||
* Le dice al IRCd donde y que loguear. Puedes tener cuantos tu quieras.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Sintaxis:
|
||||
* log "archivo.log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc...
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Borra el archivo e inicia uno nuevo cuando logre 2MB, no uses esto para siempre usar el mismo log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: alias {}
|
||||
* VIEJO: N/A
|
||||
* Esto te permite hacer aliases de comandos como /nickserv, /chanserv, etc.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Sintaxis:
|
||||
* alias "nombre" {
|
||||
* target "apunta a";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOTA: Tu también puedes usar un archivo de aliases-predefinidos, lea doc/unreal32docs.es.html sección 2.9]
|
||||
*/
|
||||
|
||||
// Esto apunta el comando a /nickserv a el usuario NickServ el cual esta conectado con el servidor de set::services-server.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si tu quieres el comando que apunta al el mismo nick que el comando, puedes dejar la entrada "nick" vacia.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Apunta el comando /statserv a el usuario StatServ en el servidor set::stats-server.
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Apunta el comando /superbot a el usuario SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Aliases Standard */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NUEVO: alias {}
|
||||
* VIEJO: N/A
|
||||
* Esto te permite configurar aliases de comandos como /identify, /services, etc.
|
||||
*
|
||||
* Sintaxis:
|
||||
* alias "nombre" {
|
||||
* format "Formato de la Cadena" {
|
||||
* target "apunta a";
|
||||
* type tipodealias;
|
||||
* parameters "parametros a enviar";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Esto es mostrado separadamente por que hasta tiene el mismo nombre que la directiva anterioir as, es muy diferente en sintaxis,
|
||||
* pero provee una función muy similar.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La directiva alias::format es una expresión regular. El primer formato coincide con el comando /identify cuando
|
||||
* el primer carácter es #. Luego pasa esto a ChanServ con los parámetros IDENTIFY
|
||||
* %1-. El segundo formato coincide con /identify cuando el primer caracter no es un #. Entonces
|
||||
* el comando pasa a nickserv con los parámetros IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* El alias::format::parameters es similar a los lenguajes de scripting. %N (donde N es un número) representa el
|
||||
* parámetro enviado al comando (en este caso, /identify). Si especificas %N- significa "todos los parámetros desde
|
||||
* N hasta el último parámetro en la cadena". También puedes especificar %n que es reemplazado por el nick del usuario.
|
||||
*/
|
||||
|
||||
/* Aliases Standard */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Este es un ejemplo de un alias de comando real */
|
||||
/* Esto redirije /GLINEBOT a /GLINE <parámetro> Los Bots 2D... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 Los Bots 2D no están permitidos en este servidor, para mas información lea la faq en http://www.ejemplo.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: files {}
|
||||
* VIEJO: include/config.h
|
||||
*
|
||||
* Este bloque se sobrepone con el dirctorio principal del IRCd para cargar cosas
|
||||
* como el MOTD, el PIPfile, o escribir/cargar el tunefile. La
|
||||
* existencia de este bloque permite una instalación de UnrealIRCd a
|
||||
* soportar múltiples instancias corriendo cuando es combinado con la opción -c
|
||||
* en la línea de comandos.
|
||||
*
|
||||
* Usualmente. Los directorios relativos son interpretados relativamente a el directorio
|
||||
* donde UnrealIRCd encuentra unrealircd.conf si -c -no-
|
||||
* es especificado en la línea de comandos.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* El Mensaje del Dia (MOTD - Message of the Day) mostrado a los usuarios que se conectan: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Un MOTD corto. Si el archivo existe, sera mostrado a
|
||||
* el usuario en vez del MOTD. Los usuarios todavia podrán ver el
|
||||
* MOTD completo usando el comando /MOTD.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Mostrado cuando un operador usa /OPER y se loguea exitosamente. */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* El MOTD de los Servicios. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* El MOTD de los Bots */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Las reglas que se muestran al usar /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Donde el IRCd guarda y carga algunos parámetros que deberían
|
||||
* ser persistentes entre reinicios del servidor. Debe apuntar a un
|
||||
* archivo existente el cual el IRCd tiene permiso para alterarlo o un
|
||||
* archivo en una carpeta donde el IRCd puede crear archivos.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Donde guardar el PID del IRCd. Debería ser modificable por el IRCd. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: tld {}
|
||||
* VIEJO: T:Line
|
||||
* Esto configura MOTDs y RULES distintos
|
||||
* dependiendo en la máscara de host del cliente.
|
||||
* La sintaxis es:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(archivo-motd)";
|
||||
* rules "(archivo-rules)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* NOTA: tu puedes simplemente borrar el bloque de ejemplo aqui arriba,
|
||||
* en ese caso los MOTD/RULES normales (ircd.motd, ircd.rules)
|
||||
* serán usados para todos.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NUEVO: ban nick {}
|
||||
* VIEJO: Q:Line
|
||||
* Banea a un nick, así no puede ser usado.
|
||||
* La sintaxis es la siguiente:
|
||||
* ban nick {
|
||||
* mask "(nick a banear)";
|
||||
* reason "(rasón)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservado para los Servicios";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban ip {}
|
||||
* VIEJO: Z:Line
|
||||
* Banea una IP de conectarse a la red.
|
||||
* Sintaxis:
|
||||
* ban ip { mask (ip/hostmask); reason "(rasón)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Servidor delinkeado";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban server {}
|
||||
* VIEJO: Server Q:Line
|
||||
* Prohibe a un servidor de conectarse a la red.
|
||||
* Si el servidor se linkea a un servidor remoto, el servidor local
|
||||
* se desconectará de la red.
|
||||
* La sintaxis es la siguiente:
|
||||
* ban server {
|
||||
* mask "(nombre.del.servidor)";
|
||||
* reason "(Rasón)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Fuera de aca.";
|
||||
};
|
||||
/*
|
||||
* NUEVO: ban user {}
|
||||
* VIEJO: K:Line
|
||||
* Esto hace que un usuario con una máscara de host determinada no se pueda conectar
|
||||
* a tu servidor.
|
||||
* Sintaxis:
|
||||
* ban user { mask (hostmask/ip); reason "(rasón)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiota";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: ban realname {}
|
||||
* VIEJO: n:Line
|
||||
* Este bloque banea a un determinado realname (nombre real) de ser usado.
|
||||
* Sintaxis:
|
||||
* ban realname {
|
||||
* mask "(nombre real)";
|
||||
* reason "(rasón)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTA PARA TODOS LOS BANS, puedes repetirlos para agregar mas!
|
||||
*
|
||||
* NUEVO: except ban {}
|
||||
* VIEJO: E:Line
|
||||
* Eso hace que no puedas ser baneado.
|
||||
* Sintaxis:
|
||||
* except ban { mask (ident@host); };
|
||||
* Repite el except ban {} cuantas veces quieras
|
||||
* para diferentes bans.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* no banees a stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: deny dcc {}
|
||||
* VIEJO: dccdeny.conf
|
||||
* Use este block para denegar DCC SENDs...
|
||||
* detiene a los virus mejor.
|
||||
* Sintaxis
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "(archivo a bloquear (por ejemplo: *.exe"));
|
||||
* reason ("rasón");
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Posiblemente un virus Sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NUEVO: deny channel {}
|
||||
* VIEJO: N/A (NUEVO)
|
||||
* Esto bloquea canales de ser creados.
|
||||
* Sintaxis:
|
||||
* deny channel {
|
||||
* channel "(canal)";
|
||||
* reason "rasón";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "El Warez es ilegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* Setea una IP para los no-operadores, o
|
||||
* para opers muy flojos para hacer /sethost :P
|
||||
* Sintaxis:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host.a.permitir.usar.el.vhost);
|
||||
* };
|
||||
* login (nombre del login);
|
||||
* password (contraseña);
|
||||
* };
|
||||
* para usar este vhost, usa /vhost (login) (contraseña) en IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Puedes incluir otros archivos de configuración */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuración de la red */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Las llaves de cifrado (cloak keys) deberían ser las mismas en toda la red.
|
||||
* Son usadas para generar hosts "enmascarados" y mantenerlos secretos.
|
||||
* Las llaves deben ser 3 cadenas aleatorias de 5 a 100 carácteres
|
||||
* (de 10 a 20 es aceptable también) y deben tener una minúscula (a-z),
|
||||
* mayúscula (A-Z) y dígitos (0-9) [mira el ejemplo de la primera llave].
|
||||
* CONSEJO: En *NIX puedes ejecutar './unreal gencloak' en tu shell para hacer que
|
||||
* Unreal genere tres cadenas aleatorias por ti.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
/* host para los operadores */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuración específica del servidor */
|
||||
|
||||
set {
|
||||
kline-address "configura.este@email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Puedes habilitar el chequeo de ident si quieres*/
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* El tiempo mínimo que un usuario debe estar conectado antes de usar un mensaje QUIT,
|
||||
* Esto podria detener el spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Hace que el mensaje en static-quit se muestr en todos kis quits - significando que
|
||||
no se permiten quits personalizados en este servidor */
|
||||
/* static-quit "El Cliente se desconectó"; */
|
||||
|
||||
/* También puedes bloquear todas las razones de part, descomentando el siguiente comentario y poniendo 'yes',
|
||||
* o especificar otro mensaje (ejemplo: "¡Adiós!") para usar siempre como razón. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Esto permite que pudas hacer algunos comandos de /stats solo para uso de los operadores, use * para ocultar todos los stats,
|
||||
* dejelo en blanco para permitir a los usuarios ver todos los /stats. Escriba '/stats' para una lista completa.
|
||||
* Algunos administradores querrán remover los stats "kGs" para prohibir a los usuarios normales ver los
|
||||
* klines, glines y shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Regulación de Conexiones: este ejemplo setea un límite de 3 intentos de conexión cada 60 segundos (por host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protección anti-flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 cambios de nick por cada 60 segunos (por defecto) */
|
||||
};
|
||||
|
||||
/* Filtro de Spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* duración de un *line puesto por spamfilter (filtro de spam) */
|
||||
ban-reason "Spam/Publicidad"; /* razón */
|
||||
virus-help-channel "#help"; /* canal para usar para la acción "viruchan" */
|
||||
/* exceptuar "#help"; el canal "#help" esta libre de filtro */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problemas o necesitas mas ayuda?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.es.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ (en inglés)<- ¡contiene el 80% de tus preguntas!
|
||||
* 3) Si sigues teniendo problemas, ve a irc.unrealircd.org #unreal-support,
|
||||
* ¡nótese que NECESITAMOS que leas la DOCUMENTACIÓN y la FAQ antes de preguntarnos!
|
||||
*/
|
||||
+214
-149
@@ -1,34 +1,38 @@
|
||||
/*
|
||||
* example.conf par Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* Ancien traducteur français : babass
|
||||
* Tradution française : Alef Burzmali - http://www.burzmali.com
|
||||
* Dernière mise à jour : 2010-09-11
|
||||
* $Id$
|
||||
* Traduction française par babass (babass@unrealircd.org).
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
* Okay les mecs. Voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
*
|
||||
* Fonctionne pour Unreal3.2.x
|
||||
*
|
||||
* Okay les gars, voici la nouvelle version de l'example.conf. Cela ressemble plus à du C++.
|
||||
* Peu importe, il est temps de se lancer. Il est difficile de l'attaquer pour la première fois, mais
|
||||
* avec un peu d'expérience et en lisant vous comprendrez.
|
||||
* avec un peu d'expérience et de lecture vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: Toutes les lignes, excepté la ligne d'ouverture { , les lignes finissant par un ;,
|
||||
* et celle de fermeture } incluses.
|
||||
*
|
||||
* NOTE: Toutes les lignes, exceptées les ligne d'ouvertures { , se terminent par un ;, en particulier
|
||||
* celles de fermeture }.
|
||||
* L'IRCd ignorera les lignes commentées.
|
||||
*
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html! La version en ligne est aussi disponible à :
|
||||
* www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournis des informations
|
||||
* à propos de chaque blocs, variable, etc..
|
||||
* LISEZ S'IL VOUS PLAIT doc/unreal32docs.fr.html !
|
||||
* La version en ligne est aussi disponible à : http://www.unrealircd.com/files/docs/unreal32docs.fr.html
|
||||
* Elle contient beaucoup d'informations à propos du fichier de configuration : fournit des informations
|
||||
* à propos de chaque bloc, variable, etc..
|
||||
* Si vous essayez de modifier ce fichier sans avoir bien lu la documentation,
|
||||
* vous êtes presque sûr de vous tromper.
|
||||
*/
|
||||
|
||||
/* Type de commentaires */
|
||||
#Commentaire type 1 (type Shell)
|
||||
// Commentaire type 2 (style C++)
|
||||
/* Commentaire type 3 (style C) */
|
||||
#Ces lignes sont ignorées par l'ircd.
|
||||
# Toutes ces lignes sont ignorées par l'ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supportes des modules, en charger certains est requis.
|
||||
* UnrealIRCd supporte des modules et certains sont obligatoires.
|
||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||
*/
|
||||
|
||||
@@ -42,28 +46,29 @@
|
||||
|
||||
/*
|
||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||
* help.conf contient tous le texte de /helpop. Les fichiers badwords.*.conf
|
||||
* contiennent tous les badwords pour le mode +G...
|
||||
* doc/help.fr.conf contient tout le texte de /helpop en français.
|
||||
* help.conf contient la version anglaise.
|
||||
* Les fichiers badwords.*.conf contiennent tous les badwords pour le mode +G...
|
||||
* spamfilter.conf contient quelques bonnes règles pour les trojans courrants.
|
||||
* Vous voudrez probablement les inclure:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "doc/help.fr.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et le numeric du serveur unreal
|
||||
* pour ce serveur. La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* ACTUEL : me {}
|
||||
* ANCIEN : M:Line
|
||||
* me {} definit le nom, la description et l'identifiant numérique pour ce serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* me {
|
||||
* name "nom.du.serveur";
|
||||
* info "Description du Serveur";
|
||||
* numeric (numeric* serveur);
|
||||
* };
|
||||
* En cas de link, ce numeric ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
* };
|
||||
* En cas de link, cet identifiant ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
{
|
||||
@@ -73,14 +78,14 @@ me
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* ACTUEL : admin {}
|
||||
* ANCIEN : A:Line
|
||||
* Admin donne des informations sur les server admins.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* Vous pouvez mettre autant de lignes que vous voulez après admin {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
@@ -91,10 +96,10 @@ admin {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Défini les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, les connexions serveurs, au lieu de passer par une classe
|
||||
* ACTUEL : class {}
|
||||
* ANCIEN : Y:line (l'ancien était déroutant)
|
||||
* Définit les réglages pour les classes. Une classe est un groupe de réglages pour
|
||||
* des connexions. Par exemple, pour les connexions serveurs, au lieu de passer par une classe
|
||||
* client, vous utilisez directement une classe serveur. La syntaxe est la suivante :
|
||||
* class (nom de la classe)
|
||||
* {
|
||||
@@ -105,7 +110,7 @@ admin {
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
@@ -113,27 +118,27 @@ class clients
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||
maxclients 10; /* Nombre maximum de serveurs pouvant être reliés en même temps */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||
connfreq 100; /* Combien de secondes entre chaque tentatives de connexions */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* Défini les autorisations de connexions...
|
||||
* Définit les autorisations de connexions...
|
||||
* Principalement pour les clients, cela leur permet de se connecter, vous pouvez donc avoir un certain
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* contrôle et/ou mettre un mot de passe.
|
||||
* La syntaxe est la suivante :
|
||||
* allow {
|
||||
* ip (ip mask à autoriser);
|
||||
* hostname (host mask);
|
||||
* class (classe à laquelle les renvoyer [voir class {}]);
|
||||
* password "(mot de passe)"; (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* maxperip (nombre de connexions par ip); (optionnel)
|
||||
* };
|
||||
*/
|
||||
|
||||
@@ -154,35 +159,20 @@ allow {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Défini un IRC Operateur
|
||||
* ACTUEL : oper {}
|
||||
* ANCIEN : O:Line
|
||||
* Définit un IRC Operateur
|
||||
* Les IRC operateurs sont là pour préserver la qualité du serveur mais aussi d'en assurer
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent de moi, déplacez les vers une
|
||||
* nouvelle classe);
|
||||
* from {
|
||||
* la maintenance et sa connexion au réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* oper (login) {
|
||||
* class (classe à laquelle les associer, si différent du bloc allow, les déplace vers une nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
@@ -214,41 +204,41 @@ oper bobsmith {
|
||||
/*
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Défini un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* Définit un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* listen (ip):(port)
|
||||
* {
|
||||
* options {
|
||||
* (options ici);
|
||||
* };
|
||||
* };
|
||||
* ou pour une écoute
|
||||
* indifférente : listen (ip):(port);
|
||||
*
|
||||
*
|
||||
* NOTICE : pour les ips ipv6 (3ffe:b80:2:51d::2 etc), utilisez listen [ip]:port;
|
||||
*
|
||||
*
|
||||
* Cela fonctionne également.
|
||||
*/
|
||||
|
||||
/* Options de listen:
|
||||
ANCIEN | ACTUEL
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
ANCIEN | ACTUEL
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* NOTE SUR LES PORTS SSL: les ports SSL sont plutôt non standardisés,
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* A côté des nombreux ports high-SSL, certaines personnes disent que vous devez
|
||||
* l'utiliser sur le port 994 car c'est le port SSL officiel.. mais cela
|
||||
* requière d'être root! D'un autre coté, le port 194 est le port irc officiel et
|
||||
* avez vous déjà vu un ircd fonctionner sur celui-ci ?
|
||||
* Donc, notre suggestion est d'utiliser le port 6697 pour le SSL, ceci est utilisé par
|
||||
* assez bien de réseaux et est reconnu par exemple par StunTour.
|
||||
* beaucoup de réseaux et est reconnu par exemple par StunTour.
|
||||
* Vous êtes libre d'ouvrir autant de ports SSL que vous le désirez mais
|
||||
* en utilisant (au moins) 6697 vous aidez le monde à standardiser un peu a bit ;).
|
||||
* en utilisant (au moins) 6697 vous aidez le monde à se standardiser un peu ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
@@ -262,8 +252,8 @@ listen *:6697
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: Si vous êtes sur un shell shell avec de multiples IP's vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
/* NOTE: Si vous êtes sur un shell avec de multiples IP vous êtes
|
||||
* susceptibles d'avoir l'erreur 'Address already in use' (adresse déjà utilisée)
|
||||
* dans vos logs et l'ircd refusera de démarer.
|
||||
* Cela signifie que vous devrez utiliser une IP spécifique au lieu de '*',
|
||||
* Donc par exemple :
|
||||
@@ -274,14 +264,14 @@ listen *:6667;
|
||||
/*
|
||||
* ACTUEL : link {}
|
||||
* ANCIEN : C/N:Lines
|
||||
* Défini un accord pour la connexion d'un serveur.
|
||||
* Définit un accord pour la connexion d'un serveur.
|
||||
* NOTE : CHACUN DES SERVEURS NECESSITE UN PARAMETRE LINK {} POUR SE CONNECTER CORRECTEMENT !
|
||||
* La syntaxe est la suivante :
|
||||
* link (nom du serveur)
|
||||
* {
|
||||
* username (username, * fonctionne aussi);
|
||||
* hostname (ip/hostmask);
|
||||
* bind-ip (Quelle IP à laquelle se relier lors de la connexion, ou *);
|
||||
* bind-ip (IP à laquelle se relier lors de la connexion, ou *);
|
||||
* port (port auquel se connecter, si il y en a un);
|
||||
* hub (Si c'est un a hub, * fonctionne, ou les servermasks qu'il doit porter);
|
||||
* [ou leaf *;]
|
||||
@@ -291,22 +281,22 @@ listen *:6667;
|
||||
* options {
|
||||
* (options ici*);
|
||||
* };
|
||||
* /* Si vous utilisez le SSL, vous pouvez choisir quel cryptage (cipher) utiliser dans le mode SSL
|
||||
* * Retrouvez une liste "crytages openssl", séparez les cryptages par des :
|
||||
* */
|
||||
* // Si vous utilisez le SSL, vous pouvez choisir quel algorithme de hash utiliser dans le mode SSL
|
||||
* // Utilisez la commande "openssl ciphers" pour obtenir la liste des algorithmes disponibles, séparez les par des ":"
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
ANCIEN | ACTUEL
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
@@ -332,7 +322,7 @@ link hub.mynet.com
|
||||
* ACTUEL : ulines {}
|
||||
* ANCIEN : U:Line
|
||||
* Les U-lines donnent aux serveurs plus de pouvoir/commandes, ceci doit UNIQUEMENT être appliqué
|
||||
* aux serveurs de services/stats et JAMAIS pour des servuers UnrealIRCd normaux !
|
||||
* aux serveurs de services/stats et JAMAIS pour des serveurs UnrealIRCd normaux !
|
||||
* La syntaxe est la suivante :
|
||||
* ulines {
|
||||
* (serveur auquel appliquer la uline);
|
||||
@@ -350,9 +340,9 @@ ulines {
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
@@ -361,32 +351,31 @@ drpass {
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* ACTUEL : log {}
|
||||
* ANCIEN : N/A
|
||||
* Dit à l'ircd où et quoi loguer. Vous pouvez en avoir
|
||||
* autant que vous le souhaitez.
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
*
|
||||
* FLAGS : errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
/* Efface le fichier de log et commence un nouveau lorsqu'il dépasse 2MB,
|
||||
retirez ceci pour toujour utiliser le même fichier de log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
@@ -410,7 +399,7 @@ log "ircd.log" {
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
@@ -453,7 +442,7 @@ alias StatServ { type stats; };
|
||||
* };
|
||||
*/
|
||||
/* Ceci est expliqué séparément car même si elle a le même nom que la directive précédente, elle est très
|
||||
* différente dans sa syntaxe, bien que elle a une fonction similaire et dépend des alias standards pour
|
||||
* différente dans sa syntaxe, bien qu'elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
@@ -471,10 +460,10 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* La direcitive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvois donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commanden /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoies alors la commande à l'alias nickserv avec les paramètres
|
||||
/* La directive alias::format est une expression régulière. Le premier format correspond à la commande
|
||||
* /identify command lorsque le premier caractère est un #. Cela renvoit donc à l'alias chanserv avec
|
||||
* les paramètres IDENTIFY %1-. Le second format correspond à la commande /identify lorsque le premier
|
||||
* caractère n'est pas un #. Cela envoie alors la commande à l'alias nickserv avec les paramètres
|
||||
* IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
@@ -513,13 +502,73 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Ceci est un exemple de véritable alias de commande*/
|
||||
/* Ceci renvoye /GLINEBOT à /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Les bots ne sont pas permis sur ce serveur, lisez s'il-vous-plait la faq sur http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : files {}
|
||||
* ANCIEN : include/config.h
|
||||
*
|
||||
* Ce bloc écrase les chemins utilisés par défaut par l'IRCd pour charger des choses
|
||||
* comme le MOTD, enregistrer son PID ou écrire ou lire son fichier de sauvegarde (tunefile).
|
||||
* L'existence de ce bloc permet à une installation de UnrealIRCd de supporter
|
||||
* plusieurs instances tournant simultanément lorsque combinée à l'option de ligne
|
||||
* de commande -c
|
||||
*
|
||||
* Comme d'habitude, les chemins relatifs sont interprétés à partir du répertoire
|
||||
* dans lequel UnrealIRCd trouverait unrealircd.conf si -c N'est PAS spécifiée
|
||||
* sur la ligne de commande.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* Le message du jour (Message Of The Day) affiché aux utilisateurs se connectant : */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Un MOTD court. Si ce fichier existe, il sera affiché aux
|
||||
* utilisateurs à la place du MOTD. Ceux-ci peuvent toujours voir
|
||||
* le MOTD complet en utilisant la commande /MOTD
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Affiché lorsqu'un opérateur utilise /OPER */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* MOTD des services. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* MOTD des bots */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Affiché par la commande /RULES */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Fichier dans lequel l'IRCd sauvegarde et charge quelques valeurs qui devraient
|
||||
* être conservées malgré les redémarrages du serveur. Doit pointer vers un fichier
|
||||
* existant que l'IRCd peut modifier ou vers un fichier dans un dossier dans
|
||||
* lequel l'IRCd peut créer des fichiers.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Fichier dans lequel l'IRCd stocke son pid. L'IRCd doit pouvoir le modifier. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : tld {}
|
||||
* ANCIEN : T:Line
|
||||
* Ceci applique une motd et des fichiers de règles différents
|
||||
* Ceci applique un MOTD et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
@@ -533,15 +582,15 @@ tld {
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||
* en quel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||
/* Note : vous pouvez juste effacer le bloc d'exemple ci-dessus,
|
||||
* auquel cas les fichiers motd/règles par défaut (ircd.motd, ircd.rules)
|
||||
* seront utilisés pour tout le monde.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : ban nick {}
|
||||
* ANCIEN : Q:Line
|
||||
* Banni un pseudo, il ne peut donc être utilisé.
|
||||
* Bannit un pseudo, il ne peut donc être utilisé.
|
||||
* La syntaxe est la suivante :
|
||||
* ban nick {
|
||||
* mask "(pseudo à bannir)";
|
||||
@@ -591,7 +640,7 @@ ban server {
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -617,10 +666,10 @@ ban realname {
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
@@ -628,18 +677,18 @@ ban realname {
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne banni pas stskeeps */
|
||||
/* ne bannit pas stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoie de dcc... stope
|
||||
* mieux les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* Utilisez ceci pour bloquer l'envoi de dcc ...
|
||||
* Utile pour bloquer les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
@@ -652,16 +701,35 @@ deny dcc {
|
||||
/*
|
||||
* ACTUEL : deny channel {}
|
||||
* ANCIEN : N/A (NEW)
|
||||
* Ceci empêche des salons d'être joins.
|
||||
* Syntax:
|
||||
* Ceci empêche des salons d'être joints.
|
||||
* Syntaxe :
|
||||
* deny channel {
|
||||
* channel "(salon)";
|
||||
* reason "raison";
|
||||
* class "clients"; (optionnel)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* ACTUEL : allow channel {}
|
||||
* ANCIEN : chrestrict
|
||||
* Autorise un utilisateur à joindre un salon...
|
||||
* comme une exception au deny channel.
|
||||
* Syntaxe :
|
||||
* allow channel {
|
||||
* channel "nom du salon";
|
||||
* class "clients"; (optionnel)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -669,9 +737,9 @@ deny channel {
|
||||
* ANCIEN : Vhost.conf file
|
||||
* Applique une ip factice aux non-opers, ou aux
|
||||
* opers trop flemmards pour utiliser /sethost :P
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* Syntaxe :
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
@@ -706,6 +774,8 @@ set {
|
||||
* Les clés doivent être 3 chaînes de 5-100 caractères melangés.
|
||||
* (10-20 caractères est parfait) et elles doivent être constituées de minuscules (a-z),
|
||||
* majuscules (A-Z) et chiffres (0-9) [voir le premier exemple de clé].
|
||||
* Astuce : Sur *NIX, vous pouvez utiliser la commande './unreal gencloak' dans votre shell pour que
|
||||
* Unreal génère 3 chaînes aléatoires pour vous.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
@@ -727,15 +797,10 @@ set {
|
||||
/* Configuration spécifique d'un serveur */
|
||||
|
||||
set {
|
||||
kline-address "mettre.cet.email";
|
||||
kline-address "définir.cet.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Vous pouvez enclencher la vérification des idents si vous voulez */
|
||||
@@ -764,7 +829,7 @@ set {
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: cet exemple applique une limite de 3 connexions en 60s (par host). */
|
||||
/* Throttling: cet exemple applique une limite de 3 tentatives de connection en 60s (par host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
@@ -786,8 +851,8 @@ set {
|
||||
|
||||
/*
|
||||
* Problèmes ou besoin de plus d'aide ?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.fr.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- contient 80% de vos questions !
|
||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.ircsystems.net #unreal-support,
|
||||
* 1) http://www.unrealircd.com/files/docs/unreal32docs.fr.html
|
||||
* 2) http://www.vulnscan.org/UnrealIRCd/faq/ <- contient 80% de vos questions !
|
||||
* 3) Si vous avez encore des problèmes vous pouvez aller sur irc.unrealircd.org #unreal-support,
|
||||
* notez que vous devez avoir LU LA DOCUMENTATION ET LA FAQ d'abord !
|
||||
*/
|
||||
|
||||
+84
-21
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||
* A magyar fordítást AngryWolf <angrywolf@flashmail.com> készítette.
|
||||
* A magyar fordítást AngryWolf <angrywolf2009@gmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
* Felhasználható Unreal3.2.x
|
||||
*
|
||||
* Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló
|
||||
* a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte
|
||||
@@ -16,9 +16,11 @@
|
||||
* a záró } sort is. Az IRCd figyelmen kívül hagyja a megjegyzéssorokat.
|
||||
*
|
||||
* KÉRLEK, OLVASD EL A doc/unreal32docs.html-T! Az online verzió is elérhető
|
||||
* a www.vulnscan.org/UnrealIrcd/unreal32docs.html címen.
|
||||
* a www.vulnscan.org/UnrealIRCd/unreal32docs.html címen.
|
||||
* Rengeteg információt tartalmaz a konfigurációs fájlról: tájékoztatást ad
|
||||
* minden blokkról, változóról stb.
|
||||
* Ha megpróbálod szerkeszteni ezt a fájlt anélkül, hogy megfelelően elolvastad
|
||||
* volna a dokumentációt, jó eséllyel kanyarodsz a biztos kudarc felé!
|
||||
*/
|
||||
|
||||
/* Megjegyzések típusai */
|
||||
@@ -162,10 +164,12 @@ allow {
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* class "clients"; (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -293,10 +297,10 @@ listen *:6667;
|
||||
* options {
|
||||
* (opciók ide*);
|
||||
* };
|
||||
* /* Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok
|
||||
* * legyenek használatban SSL módban. Listát kapunk az "openssl ciphers"
|
||||
* * paranccsal. Az egyes rejtjeleket :-tal válasszuk el.
|
||||
* */
|
||||
* // Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok
|
||||
* // legyenek használatban SSL módban. Listát kapunk az "openssl ciphers"
|
||||
* // paranccsal. Az egyes algoritmusokat :-tal válasszuk el.
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
@@ -372,7 +376,7 @@ drpass {
|
||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||
* amennyit szeretnénk.
|
||||
*
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Szintaktika:
|
||||
* log "naplófájl"
|
||||
@@ -394,7 +398,6 @@ log "ircd.log" {
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
@@ -520,6 +523,66 @@ alias "identify" {
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Példa egy valódi álparancsra */
|
||||
/* A /GLINEBOT parancsot leképezi arra, hogy /GLINE <paraméter> 2d stb... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Botok tilosak ezen a szerveren, kérlek, olvasd el a faq-ot a http://www.example.com/faq/123 címen";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: files {}
|
||||
* RÉGI: include/config.h
|
||||
*
|
||||
* Ez a blokk felülírja az IRCd alapértelmezett útvonalait olyan fájlok
|
||||
* betöltésére, mint az MOTD, PID fájl mentése vagy a behangoló fájl
|
||||
* írása/olvasása. Ennek a blokknak a jelenléte támogatást ad arra, hogy
|
||||
* egyetlen telepített UnrealIRCd-nek több példányát futtassuk, amikor
|
||||
* a -c parancssori opcióval párosítjuk.
|
||||
*
|
||||
* Ahogy megszoktuk, a relatív útvonalak ahhoz a könyvtárhoz relatívan
|
||||
* értendőek, ahol az UnrealIRCd megtalálja az unrealircd.conf fájlt,
|
||||
* hacsak nem a -c paramétert megadjuk a parancssorban.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* A Nap Üzenete (Message Of The Day), elküldve a belépett felhasználóknak: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Egy rövid MOTD (short MOTD). Ha létezik ez a fájl, ezt a fájlt
|
||||
* fogják látni a felhasználók az MOTD helyett. A teljes MOTD-t
|
||||
* továbbra is megnézhetik az /MOTD parancs használatával.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Megjelenik, ha egy operátor bejelentkezik (/OPER) */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* MOTD hozzáfűzés a szolgáltatásoknak. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* Bot MOTD */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* Megjelenik a /RULES parancsra */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* Itt tárol és innen tölt be az IRCd néhány olyan értéket, amelyet
|
||||
* minden szerverújraindítás során meg kell őriznie. Egy olyan fájlra
|
||||
* kell, hogy mutasson, amely létezik, és az IRCd-nek van módosítási joga,
|
||||
* vagy pedig olyan könyvtárban van, ahol az IRCd-nek van fájllétrehozási joga.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* Ide mentjük az IRCd PID fájlját. Az IRCd számára írhatónak kell lennie. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: tld {}
|
||||
@@ -664,11 +727,13 @@ deny dcc {
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* class "clients"; (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -710,11 +775,14 @@ set {
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell
|
||||
* lenniük. Álcázott gazdanevek előállításában van szerepük, ezért
|
||||
* lenniük. Az álcázott gazdanevek előállításában van szerepük, ezért
|
||||
* legyenek titokban tartva! Mind 3 kulcs legyen egy-egy véletlenszerű
|
||||
* sztring 5-100 karakterből (10-20 karakter kitűnő), valamint
|
||||
* tartalmazniuk kell kisbetűket (a-z), nagybetűket (A-Z) és számokat
|
||||
* (0-9) [ahogy az első kulcsos példában látható].
|
||||
* TIPP: *NIX alatt az './unreal gencloak' parancsot futtatva
|
||||
* a parancsértelmezőnkben, az Unreal 3 véletlen sztringet
|
||||
* generál nekünk.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
@@ -740,11 +808,6 @@ set {
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#operek";
|
||||
dns {
|
||||
nameserver 127.0.0.1;
|
||||
timeout 2s;
|
||||
retries 2;
|
||||
};
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */
|
||||
@@ -778,8 +841,8 @@ set {
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Elfojtás: ez a példa 60 másodpercenként (gazdánként) legfeljebb
|
||||
* 3 kapcsolatot engedélyező korlátozást állít be. */
|
||||
/* Elfojtás: ez a példa 60 másodpercenként legfeljebb 3 kapcsolódási
|
||||
* kísérletet engedélyező korlátozást állít be (gazdánként). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
@@ -804,9 +867,9 @@ set {
|
||||
|
||||
/*
|
||||
* Problémák akadtak, vagy szükség van további segítségre?
|
||||
* 1) www.vulnscan.org/UnrealIrcd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIrcd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||
* 3) Ha még mindig gondod van, felmehetsz az irc.ircsystems.net #unreal-support
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- a kérdéseid 80%-át tartalmazza!
|
||||
* 3) Ha még mindig gondod van, felmehetsz az irc.unrealircd.org #unreal-support
|
||||
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||
* a GYIK-ot!
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,816 @@
|
||||
/*
|
||||
* example.conf door Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Vertaald door Mark
|
||||
*
|
||||
* Werkt voor Unreal3.2.x
|
||||
*
|
||||
* Dit is de nieuwe example.conf. Het lijkt veel op C++.
|
||||
* Het begin is wellicht moeilijk, maar met wat ervaring en lezen
|
||||
* zul je het wel begrijpen.
|
||||
*
|
||||
* Kopieer dit bestand naar je hoofd UnrealIRCd dir en noem het 'unrealircd.conf'.
|
||||
*
|
||||
* OPMERKING: Alle regels, behalve de openings { regel, eindingen met een ;, dus
|
||||
* ook de sluitende } regel. Commentaar regels worden door de IRCd niet verwerkt.
|
||||
*
|
||||
* LEES doc/unreal32docs.html! De online versie is tevens te bereiken op:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* Er staat heel veel informatie in over het configbestand: informatie over
|
||||
* elk block, variabele, etc..
|
||||
* Wanneer je dit bestand aanpast zonder de documentatie grondig te lezen,
|
||||
* zul je gegarandeerd falen!
|
||||
*/
|
||||
|
||||
/* Type van commentaar */
|
||||
#Commentaar type 1 (Shell type)
|
||||
// Commentaar type 2(C++ style)
|
||||
/* Commentaar type 3 (C Style) */
|
||||
#Deze regels worden niet verwerkt door de IRCd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd ondersteunt modules, het laden van sommige is benodigd.
|
||||
* Je hebt tenminste een commands module en een cloacking module nodig.
|
||||
*/
|
||||
|
||||
/* VOOR *NIX, haal de commentaartekens weg bij de volgende 2 regels: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* VOOR Windows, haal de commentaartekens weg bij de volgende 2 regels: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Je kan tevens andere configuratiebestanden toevoegen.
|
||||
* help.conf bevat alle /helpop tekst. De badwords.*.conf
|
||||
* bestanden bevatten alle badword instellingen voor mode +G..
|
||||
* spamfilter.conf bevat enkele goede regels voor huidige trojans.
|
||||
* Je wilt deze waarschijnlijk laden:
|
||||
*/
|
||||
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NIEUW: me {}
|
||||
* OUD: M:Line
|
||||
* me {} definieert de naam, beschrijving en unreal numeriek voor deze server.
|
||||
* De syntax is als volgt:
|
||||
* me {
|
||||
* name "server.naam";
|
||||
* info "Server Beschrijving";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Waneer je servers linkt, mag de numeric niet door een andere server in gebruik zijn.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: admin {}
|
||||
* OUD: A:Line
|
||||
* Admin geeft informatie over de server admin. Je mag hier
|
||||
* zo veel regels opgeven als je wilt.
|
||||
* De syntax is als volgt:
|
||||
* admin {
|
||||
* "eerste regel";
|
||||
* "tweede regel";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: class {}
|
||||
* OUD: Y:line (de oude was verwarrend)
|
||||
* Hiermee stel je de classes in. Een class is een groepsinstelling voor
|
||||
* connections. Server connecties stuur je naar een andere class dan
|
||||
* gebruikers.
|
||||
* De syntax is als volgt:
|
||||
* class (class naam)
|
||||
* {
|
||||
* pingfreq (hoe vaak er gepingt moet worden naar een gebruiker/server in seconden);
|
||||
* maxclients (hoeveel connecties er maximaal in deze class mogen zijn);
|
||||
* sendq (maximale send queue voor 1 connectie);
|
||||
* recvq (maximale receive queue voor 1 connectie [flood control]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Hoeveel servers we maximaal tegelijk gelinkt kunnen hebben */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Hoeveel seconden tussen een poging to verbinden */
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: allow {}
|
||||
* OUD: I:Line
|
||||
* Hiermee stel je het toestaan van connecties in.
|
||||
* Gebruikers kunnen verbinden, en jij hebt wat controle en kan eventueel
|
||||
* een wachtwoord instellen.
|
||||
* De syntax is als volgt:
|
||||
* allow {
|
||||
* ip (ip mask dat toegestaan moet worden);
|
||||
* hostname (host mask);
|
||||
* class (class waarnaar ze gestuurd moeten worden [see class {}]);
|
||||
* password "(wachtwoord)"; (optioneel)
|
||||
* maxperip (hoeveel connecties per IP); (optioneel)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Allow met wachtwoord */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: allow channel {}
|
||||
* OUD: chrestrict
|
||||
* Geeft de mogelijkheid een kanaal te joinen,
|
||||
* als uitzondering voor een deny channel {}
|
||||
* De syntax is als volgt:
|
||||
* allow channel {
|
||||
* channel "kanaal naam";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: oper {}
|
||||
* OUD: O:Line
|
||||
* Stelt een IRC Operator in
|
||||
* IRC Operators zorgen voor orde op de server en zorgen er
|
||||
* tevens voor dat de server verbonden blijft met het netwerk.
|
||||
* De syntax is als volgt:
|
||||
* oper (login) {
|
||||
* class (class waarin ze geplaatst moeten worden.);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags hier*);
|
||||
* };
|
||||
* OF
|
||||
* flags "oud type flags, zoals OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Voor een lange lijst van oper flags, zie doc/unreal32docs.html#operblock
|
||||
* [wordt ten zeerste aangeraden te lezen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: listen {}
|
||||
* OUD: P:Line
|
||||
* Hiermee stel je een poort in voor de IRCd, zodat
|
||||
* gebruikers/servers kunnen verbinden met je server.
|
||||
* De syntax is als volgt:
|
||||
* listen (ip nummer):(port nummer)
|
||||
* {
|
||||
* options {
|
||||
* (opties hier);
|
||||
* };
|
||||
* };
|
||||
* of een gewone:
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* OPMERKING: voor IPv6 IPs (3ffe:b80:2:51d::2 etc), gebruik listen [ip]:port;
|
||||
*
|
||||
* Dat werkt ook.
|
||||
*/
|
||||
|
||||
/* Opties voor listen:
|
||||
OUD | NIEUW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
|
||||
/* Opmerking voor SSL poorten: SSL poorten zijn niet echt
|
||||
* standaard. Mensen zeggen dat je SSL op poort 994 moet laten
|
||||
* lopen, omdat dit de standaard SSL poort is.. Maar meestal worden
|
||||
* hogere poorten gebruikt. Om poort 994 te gebruiken, moet je root
|
||||
* zijn! Tevens is poort 194 de officiele IRC poort. Maar heb je daar
|
||||
* ooit een IRCd op zien lopen?
|
||||
* Wij raden je aan om poort 6697 voor SSL te gebruiken. Dit wordt op
|
||||
* vrijwel alle netwerken gebruikt en wordt herkend door bijvoorbeeld
|
||||
* StunTour. Je mag zoveel SSL poorten openen als je wil, maar als je
|
||||
* (tevens) 6697 gebruikt, help je mee de wereld meer uniform te maken ;).
|
||||
*/
|
||||
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
|
||||
/* Opmerking: Als je een IRCd shell gebruikt met meerdere IPs, krijg
|
||||
* je wellicht een "Address already in use" error in je log
|
||||
* en de IRCd zal niet starten. Dit betekent dat je MOET binden
|
||||
* naar een specifiek IP in plaats van '*', bijvoorbeeld:
|
||||
* listen 1.2.3.4:6667l
|
||||
* Natuurlijk moet je het IP vervangen door het IP dat je toewezen is.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NIEUW: link {}
|
||||
* OUD: C/N:Lines
|
||||
* Geeft een server toegang om te verbinden.
|
||||
* OPMERKING: Beiden servers hebben een link { } nodig om goed te kunnen verbinden!
|
||||
* De syntax is als volgt:
|
||||
* link (server naam)
|
||||
* {
|
||||
* username (username, * werkt ook);
|
||||
* hostname (ip number/hostmask);
|
||||
* bind-ip (welk IP te binden wanneer je connect, of *);
|
||||
* port (poort om naar te verbinden);
|
||||
* hub (Als dit een hub is, werkt '*');
|
||||
* [of leaf *;]
|
||||
* password-connect "(wachtwoord te zenden)";
|
||||
* password-receive "(wachtwoord te ontvangen)";
|
||||
* class (class waarin de server geplaatst moet worden);
|
||||
* options {
|
||||
* (opties hier*);
|
||||
* };
|
||||
* // Als we SSL gebruiken, kunnen we kiezen welke cipher we willen gebruiken in SSL mode
|
||||
* // Verkrijg een lijst door "openssl ciphers", onderscheid ciphers met :'s
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opties:
|
||||
OUD | NIEUW
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Opmerking: Gebruik geen autoconnect naar Services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NIEUW: ulines {}
|
||||
* OUD: U:Line
|
||||
* U:Lines geven servers meer macht/commando's. Gebruik het alleen voor
|
||||
* services en stats, en NOOIT voor normale UnrealIRCd servers!
|
||||
* De syntax is als volgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: drpass {}
|
||||
* OUD: X:Line
|
||||
* Stelt de wachtwoorden voor /die en /restart in.
|
||||
* De syntax is als volgt:
|
||||
* drpass {
|
||||
* restart "(wachtwoord voor herstart)";
|
||||
* die "(wachtwoord voor beeindigen)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: log {}
|
||||
* OUD: N/A
|
||||
* Laat de IRCd weten wat en waar te loggen. Je kan er
|
||||
* zoveel instellen als je wilt.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, kline, oper
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
*
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Verwijder het logbestand en begint een nieuwe wanneer de oude 2MB groot is. Laat dit leeg om altijd
|
||||
hetzelfde bestand te gebruiken */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: alias {}
|
||||
* OUD: N/A
|
||||
* Hiermee stel je commando's zoals /nickserv, /chanserv etc in.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
* alias "naam" {
|
||||
* target "wijst naar";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [Opmerking: Je kan ook een standaard alias bestand gebruiken, zie doc/unreal32docs.nl.html sectie 2.9]
|
||||
*/
|
||||
|
||||
// Dit wijst het commando /nickserv naar de gebruiker NickServ welke verbonden is met set::services-server
|
||||
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Als je het commando naar dezelfde nick als het commando wil sturen, kun je "target" weglaten.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Wijst het /statserv commando naar de gebruiker Statserv verbonden met set::stats-server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Wijst het /superbot commando naar de gebruiker SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
/* Standaard aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NIEUW: alias {}
|
||||
* OUD: N/A
|
||||
* Hiermee stel je commando's zoals /identify, /services in.
|
||||
*
|
||||
* De syntax is als volgt:
|
||||
* alias "naam" {
|
||||
* format "format string" {
|
||||
* target "wijst naar";
|
||||
* type aliastype;
|
||||
* parameters "parameters te verzenden";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Hier wordt apart notitie van gemaakt, hoewel het dezelfde naam heeft als het vorige block. Het verschilt veel
|
||||
* in syntax, maar het maakt gebruik van dezelfde functies.
|
||||
*/
|
||||
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
|
||||
/* De alias::format is een reguliere expressie. Het eerste formaat matcht het /identify commando wanneer
|
||||
* het eerste teken een # is. Daarna wordt het doorgezonden naar de chanserv alias met de parameters
|
||||
* IDENTIFY %1-. Het tweede formaat matcht het /identify commando wanneer het eerste teken geen # is. Daarna
|
||||
* wordt het commando doorgestuurd naar de nickserv alias met de parameters IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* Het alias::format::parameters is gelijk aan script-talen. %N (N is een nummer) staat voor de parameter die
|
||||
* gezonden is naar het commando (in dit geval /identify). Wanneer je %N- opgeeft, betekent dat alle parameters
|
||||
* vanaf N tot de laatste paramater in de string. Je kan ook %n gebruiken, waar %n vervangen wordt door de nick.
|
||||
*/
|
||||
|
||||
/* Standaard aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Dit is een voorbeeld van een echt commando alias */
|
||||
/* Dit verwijst /GLINEBOT naar /GLINE <parameter> 2d etc... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bots are not allowed on this server, please read the faq at http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: tld {}
|
||||
* OUD: T:Line
|
||||
* Hiermee stel je verschillende MOTD en RULES bestanden in,
|
||||
* afhangend van de gebruikers hostmask.
|
||||
* De syntax is als volgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd bestand)";
|
||||
* rules "(rules bestand)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* Opmerking: je kan het bovenstaande voorbeeld verwijderen.
|
||||
* In dat geval worden de standaard motd/rules bestanden (ircd.motd, ircd.rules).
|
||||
* gebruikt voor iedereen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NIEUW: ban nick {}
|
||||
* OUD: Q:Line
|
||||
* Bant een nickname zodat deze niet gebruikt kan worden.
|
||||
* De syntax is als volgt:
|
||||
* ban nick {
|
||||
* mask "(nick om te bannen)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserved for Services";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban ip {}
|
||||
* OUD: Z:Line
|
||||
* Bant een IP van de server
|
||||
* De syntax is als volgt:
|
||||
* ban ip {
|
||||
* mask (ip number/hostmask);
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Delinked server";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban server {}
|
||||
* OUD: Server Q:Line
|
||||
* Zorgt ervoor dat een server niet kan verbinden met het netwerk.
|
||||
* Als de server naar een andere server linkt, zal de lokale server
|
||||
* de verbinding met het netwerk verbreken.
|
||||
* De syntax is als volgt:
|
||||
* ban server {
|
||||
* mask "(server naam)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Get out of here.";
|
||||
};
|
||||
/*
|
||||
* NIEUW: ban user {}
|
||||
* OUD: K:Line
|
||||
* Zorgt ervoor dat een gebruiker met een bepaalde mask niet
|
||||
* kan verbinden met je server.
|
||||
* De syntax is als volgt:
|
||||
* ban user {
|
||||
* mask (hostmask/ip number);
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: ban realname {}
|
||||
* OUD: n:Line
|
||||
* Belet het gebruik van een bepaalde realname.
|
||||
* De syntax is als volgt:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(reden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* OPMERKING VOOR ALLE BANS: Ze mogen herhaald worden voor extra toevoegingen!
|
||||
*
|
||||
* NIEUW: except ban {}
|
||||
* OUD: E:Line
|
||||
* Zorgt ervoor dat jij niet gebanned kan worden.
|
||||
* De syntax is als volgt:
|
||||
* except ban { mask (ident@host); };
|
||||
* Herhaal de except ban {} zo vaak als je wilt
|
||||
* voor andere hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: deny dcc {}
|
||||
* OUD: dccdeny.conf
|
||||
* Wordt gebruikt om DCC sends te blokkeren..
|
||||
* Stopt virii beter.
|
||||
* De syntax is als volgt:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "bestand te blokkeren (bv, *exe)";
|
||||
* reason "reden";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: deny channel {}
|
||||
* OUD: N/A (NIEUW)
|
||||
* Belet het gebruik van een kanaal.
|
||||
* De syntax is als volgt:
|
||||
* deny channel {
|
||||
* channel "(kanaal)";
|
||||
* reason "reden";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NIEUW: vhost {}
|
||||
* OUD: Vhost.conf file
|
||||
* Dit zet een nep ip voor niet-opers, of voor opers
|
||||
* die te lui zijn /sethost te gebruiken ;)
|
||||
* De syntax is als volgt:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host toegestaan de vhost te gebruiken);
|
||||
* };
|
||||
* login (login name);
|
||||
* password (password);
|
||||
* };
|
||||
* Om je vhost te gebruiken, typ /vhost (login) (password) op IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Je kan ook andere configuratiebestanden laden */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Netwerk configuratie */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Cloak keys moeten op alle servers in het netwerk hetzelfde zijn.
|
||||
* Ze worden gebruikt voor het maken van gemaskte hosts en moeten geheim blijven.
|
||||
* De keys moeten 3 willekeurige strings zijn, bestaande uit 5-100 tekens
|
||||
* (10-20 tekens is genoeg) en moeten bestaan uit kleine letters (a-z),
|
||||
* hoofdletters (A-Z) en getallen (0-9) [zie de eerste key als voorbeeld].
|
||||
* Tip: Wanneer je met een *NIX systeem werkt, kun je './unreal gencloak' gebruiken in
|
||||
* je shell. Dit genereert 3 willekeurige strings die je kunt gebruiken.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"en nog eentje";
|
||||
"en nog eentje";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server gerelateerde configuratie */
|
||||
|
||||
set {
|
||||
kline-address "stel.dit.adres.in";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Je kan hier ident checking aanzetten als je wilt */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Hoelang een gebruiker minimaal verbonden moet zijn voordat hij toegestaan wordt het
|
||||
* QUIT bericht te gebruiken. Dit stopt spam hopelijk. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Stelt een tekst in die standaard wordt gebruikt voor een quit.
|
||||
* Houdt in dat er geen eigen quits gebruikt mogen worden op deze server. */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Je kan ook alle part-redenen blokkeren door hieronder het commentaar weg te halen
|
||||
* en er 'yes' neer te zetten. Je kan ook een standaard tekst gebruiken (bijvoorbeeld
|
||||
* "Bye bye!") om deze tekst altijd te gebruiken..
|
||||
*/
|
||||
/* static-part yes; */
|
||||
|
||||
/* Stelt in dat stats alleen door opers gebruikt mogen worden. Gebruik * voor alle stats,
|
||||
* en laat het weg zodat gebruikers alle stats kunnen zien. Typ '/stats' voor een lijst
|
||||
* van alle stats.
|
||||
* Sommige admins willen 'kGs' wellicht verwijderen zodat gewone gebruikers een lijst van
|
||||
* klines, glines en shunts kunnen zien.
|
||||
*/
|
||||
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttle: dit voorbeeld zet een limie van 3 conneties per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protectie */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 naamsveranderingen per 60 seconden (standaard) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* standaard duur van een *line gezet door spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* standaard reden */
|
||||
virus-help-channel "#help"; /* kanaal te gebruiken voor 'viruschan' actie */
|
||||
/* except "#help"; kanaal waar niet gefilterd wordt */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problemen of meer hulp nodig?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- hier staat 80% van je vragen!
|
||||
* 3) Als je nog steeds problemen hebt, kun je naar irc.unrealircd.org #unreal-support,
|
||||
maar je moet wel eerst de documentatie en FAQ gelezen hebben!
|
||||
*/
|
||||
@@ -0,0 +1,791 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* example.ru.conf by Samets Anton aka Bock (bock@bynets.org).
|
||||
* $Id$
|
||||
*
|
||||
* (Encoding): Windows-1251
|
||||
*
|
||||
* Работает для Unreal3.2.x
|
||||
*
|
||||
* Итак, это русскоязычный пример example.conf. По синтаксису похож на C++.
|
||||
* По началу будет тяжело понять, что тут написано, однако во время практики и чтения
|
||||
* вы научитесь это делать.
|
||||
*
|
||||
* Просто скопируйте этот файл в главную директорию unrealircd и переименуйте в 'unrealircd.conf'.
|
||||
*
|
||||
* Замечание: Все линии, кроме тех, которые начинаются с {, заканчиваются ; включая и закрывающую }.
|
||||
* IRCd проигнорирует закомментированные линии.
|
||||
*
|
||||
* ПРОЧТИТЕ doc/unreal32docs.ru.html! Версия в интернете доступна по адресу:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
||||
* Она содержит большинство информации о конфигурировании, даёт представление о каждом блоке,
|
||||
* переменной и так далее...
|
||||
* Если вы пытаетесь редактировать этот файл без прочтения документации, вы гарантированно
|
||||
* потерпите неудачу!
|
||||
*/
|
||||
|
||||
/* Типы комментариев */
|
||||
# Первый тип (Shell type)
|
||||
// Второй тип (C++ style)
|
||||
/* Третий тип (C Style) */
|
||||
# данные линии игнорируются ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd поддерживает модули, загрузка некоторых необходима для запуска.
|
||||
* Вам необходимо загрузить как минимум модули команд и скрытия хоста.
|
||||
*/
|
||||
|
||||
/* Для *NIX систем раскомментируйте следующие 2 линии: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Для Windows систем раскомментируйте следующие 2 линии: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Вам необходимо подключить и другие конфигурационные файлы.
|
||||
* help.ru.conf содержит весь текст команды /helpop. Файлы badwords.*.conf
|
||||
* содержат все включения матных слов для режима +G...
|
||||
* spamfilter.conf содержит правила для защиты от троянских коней.
|
||||
* Вы вероятно захотите подключить эти файлы:
|
||||
*/
|
||||
include "help.ru.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* НОВОЕ: me {}
|
||||
* СТАРОЕ: M:Line
|
||||
* me {} определяет имя, описание и нумерик сервера unreal для данного сервера.
|
||||
* Синтаксис:
|
||||
* me {
|
||||
* name "Имя.сервера";
|
||||
* info "Описание сервера";
|
||||
* numeric (нумерик сервера*);
|
||||
* };
|
||||
* При соединении с другими серверами, нумерик должен быть уникальным в сети. Имя сервера - англоязычное.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "Сервер FooNet";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: admin {}
|
||||
* СТАРОЕ: A:Line
|
||||
* Данный блок предоставляет информацию об администраторе сервера.
|
||||
* Вы можете поместить сколько угодно линий после admin {.
|
||||
* Синтаксис:
|
||||
* admin {
|
||||
* "первая линия";
|
||||
* "вторая линия";
|
||||
* [так далее]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Вася Пупкин!";
|
||||
"vasya_pupkin";
|
||||
"haker@lamer.ru";
|
||||
"ICQ: 987654321";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: class {}
|
||||
* СТАРОЕ: Y:line (был слишком запутан)
|
||||
* Определяет настройки для классов. Класс определяет групповые настройки для подключений.
|
||||
* Например, подключение сервера, вместо включения его в класс пользователей, вы направляете в
|
||||
* класс серверов. Используется следующий синтаксис:
|
||||
* class (имя класса)
|
||||
* {
|
||||
* pingfreq (как часто пиновать пользователя/сервер в секундах);
|
||||
* maxclients (сколько максимально соединений разрешено данному классу);
|
||||
* sendq (максимальная очередь для отправки от подключения);
|
||||
* recvq (максимальная очередь для получения от подключения [контроль за флудом]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Какое максимальное количество серверов может быть прилинковано к этому серверу */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Через сколько секунд проводить следующую попытку подключения */
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: allow {}
|
||||
* СТАРОЕ: I:Line
|
||||
* Определяет, кому разрешено подключаться к серверу...
|
||||
* В основном используется для клиентов, это разрешает им подключаться к серверу, а вы можете их контролировать
|
||||
* и/или устанавивать пароль.
|
||||
* Синтаксис:
|
||||
* allow {
|
||||
* ip (разрешённая маска ip);
|
||||
* hostname (маска хоста);
|
||||
* class (класс, в который определить[смотри class {}]);
|
||||
* password "(пароль)"; (необязательно)
|
||||
* maxperip (сколько подключений с одного ip); (необязательно)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Разрешение подключения с паролем */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "аццкип0р0ль";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: allow channel {}
|
||||
* СТАРОЕ: chrestrict
|
||||
* Позволяет пользователю зайти на канал...
|
||||
* служит как исключение из запрещённых каналов.
|
||||
* Синтаксис:
|
||||
* allow channel {
|
||||
* channel "имя канала";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: oper {}
|
||||
* СТАРОЕ: O:Line
|
||||
* Определяет IRC оператора
|
||||
* IRC операторы следят за сервером, занимаются его поддержкой и подключением к сети.
|
||||
* Синтаксис:
|
||||
* oper (логин) {
|
||||
* class (класс, в который определять их, если отличен от блока I, в какой класс переместить);
|
||||
* from {
|
||||
* userhost (идент@хост);
|
||||
* userhost (идент@хост);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (тут флаги*);
|
||||
* };
|
||||
* ИЛИ
|
||||
* flags "флаги старого типа, вида OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Для списка флагов оператора прочитайте doc/unreal32docs.ru.html#operblock
|
||||
* [ОЧЕНЬ НАСТОЯТЕЛЬНО рекомендуется к прочтения]
|
||||
*/
|
||||
|
||||
oper vasyapupkin {
|
||||
class clients;
|
||||
from {
|
||||
userhost vasya@somewhere.by;
|
||||
};
|
||||
password "p0r0l'";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: listen {}
|
||||
* СТАРОЕ: P:Line
|
||||
* Определяет, на каких портах будет работать ircd,
|
||||
* позволяя пользователям/серверам подключаться к серверу.
|
||||
* Синтаксис:
|
||||
* listen (ip):(номер порта)
|
||||
* {
|
||||
* options {
|
||||
* (тут опции);
|
||||
* };
|
||||
* };
|
||||
* или просто
|
||||
* listen: listen (ip):(порт);
|
||||
*
|
||||
* ЗАМЕЧАНИЕ: для протокола ip v6 (3ffe:b80:2:51d::2), используйте [ip]:порт;
|
||||
*
|
||||
* Это так же будет работать.
|
||||
*/
|
||||
|
||||
/* Опции для listen:
|
||||
СТАРЫЕ | НОВЫЕ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ЗАМЕЧАНИЕ ДЛЯ ПОРТОВ SSL: SSL порты стандартизированы,
|
||||
* за исключением многочисленных "высоких" портов SSL, некоторые люди могут сказать вам,
|
||||
* чтобы вы запустили на порту 994, потому что он официальный порт SSL... Но это же
|
||||
* требует привилегий пользователя root! К слову, порт 194 - официальный порт irc,
|
||||
* но вы видели когда-нибудь ircd, запущенный на нём?
|
||||
* Итак, наше предложение - использовать порт 6697 для SSL, он используется уже рядом сетей
|
||||
* и используется в примере StunTour.
|
||||
* Вы можете открыть сколько угодно портов SSL, но используя так же и 6697, вы поможете
|
||||
* стандартизировать его;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ЗАМЕЧАНИЕ: Если вы используете шелл IRCd, где несколько IP адресов, вы можете получить сообщение типа
|
||||
* 'Address already in use', ошибки в вашем лог-файле и ircd не запустится.
|
||||
* Это значит, что вам необходимо указать определённый адрес IP вместо '*', к примеру:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Конечно же, измените IP адрес на тот, который назначен вам.
|
||||
*/
|
||||
|
||||
/*
|
||||
* НОВОЕ: link {}
|
||||
* СТАРОЕ: C/N:Lines
|
||||
* Определяет блок для подключения серверов.
|
||||
* ЗАМЕЧАНИЕ: ЧТОБЫ ПОДКЛЮЧИТЬСЯ БЕЗ ВОПРОСОВ, НА ОБОИХ СЕРВЕРАХ НЕОБХОДИМЫ ПРАВИЛЬНЫЕ НАСТРОЙКИ LINK {}!
|
||||
* Синтаксис:
|
||||
* link (имя сервера)
|
||||
* {
|
||||
* username (имя пользователя, * работает тоже);
|
||||
* hostname (адрес ip/маска хоста);
|
||||
* bind-ip (На каком адресе IP слушать или *);
|
||||
* port (порт для соединения);
|
||||
* hub (если это хаб, * так же работает, или макси сервера, которые могут быть под ним);
|
||||
* [или leaf *;]
|
||||
* password-connect "(пароль для отправки)";
|
||||
* password-receive "(пароль, что мы должны получить)";
|
||||
* class (класс, в который определить сервер);
|
||||
* options {
|
||||
* (тут указываются опции*);
|
||||
* };
|
||||
* // Если мы используем SSL, мы можем указать, какой шифр использовать в режиме SSL
|
||||
* // Получить список можно "openssl ciphers", шифры разделяются двоеточиями (:)
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
опции:
|
||||
СТАРЫЕ | НОВЫЕ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.ru.by
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Замечание: Вы не должны использовать автоподключение (autoconnect) при подключении сервисов */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* НОВОЕ: ulines {}
|
||||
* СТАРОЕ: U:Line
|
||||
* U-lines обладают большей силой/властью, чем другие сервера. Это нужно устанавливать только на
|
||||
* сервисы/сервера сбора статистики и НИКОГДА на обычные сервера UnrealIRCd!
|
||||
* Синтаксис:
|
||||
* ulines {
|
||||
* (сервер в uline);
|
||||
* (сервер в uline);
|
||||
* [и т.д.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: drpass {}
|
||||
* СТАРОЕ: X:Line
|
||||
* Определяет пароли для использования команд /die и /restart.
|
||||
* Синтаксис:
|
||||
* drpass {
|
||||
* restart "(пароль для перезапуска)";
|
||||
* die "(пароль для отключения)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Я-люблю-перезапускать-сервер";
|
||||
die "умри-тупое!:)";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: log {}
|
||||
* СТАРОЕ: N/A
|
||||
* Указыает ircd куда и что протоколировать (вести лог). Вы можете указать столько, сколько пожелаете.
|
||||
*
|
||||
* ФЛАГИ: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Синтаксис:
|
||||
* log "путь_к_лог_файлу"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Удалять логфайл и старовать новый, если размер превышает 2MB, оставьте это как есть, чтобы использовать
|
||||
тот же самый файл */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: alias {}
|
||||
* СТАРОЕ: N/A
|
||||
* Позволяет установить вам псевдонимы на команды, такие как /nickserv, /chanserv и т.д.
|
||||
* ФЛАГИ: services, stats, normal
|
||||
*
|
||||
* Синтаксис:
|
||||
* alias "имя" {
|
||||
* target "куда направить";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ЗАМЕЧАНИЕ: Вы так же можете подключить уже определённый файл с псевдонимами,подробнее doc/unreal32docs.ru.html в секции 2.9]
|
||||
*/
|
||||
|
||||
// Данный псевдноним /nickserv направляет команды пользователю NickServ, который подключён к серверу set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Если вы хотите, чтобы команды направлялись на тот же ник, что и команда, вы можете не указывать target
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Указывает, что команда /statserv будет отправлена пользователю StatServ, подключённого к серверу set::stats-server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Указывает, что команда /superbot будет отправлена пользователю SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Стандартные псевдонимы */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* НОВОЕ: alias {}
|
||||
* СТАРОЕ: N/A
|
||||
* Позволяет установить такие псевдонимы на команды как /identify, /services и т.д.
|
||||
*
|
||||
* Синтаксис:
|
||||
* alias "имя" {
|
||||
* format "строка формата" {
|
||||
* target "кому";
|
||||
* type aliastype;
|
||||
* parameters "список параметров";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Вынесено отдельно, так как имеются отличия по сравнению с предыдущим типом псевдонимов и имеются очень большие отличия в
|
||||
* синтаксисе, так же используется для других целей, чем стандартные псевдонимы.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Директива alias::format является регулярным выражением. Под первый формат подпадает команда /identify,
|
||||
* если первым символом является #. Она посылает команду chanserv с параметрами IDENTIFY %1-.
|
||||
* Второй формат срабатывает, если в команде, посланной посредством /identify первый символ не #. Тогда ircd
|
||||
* передаёт эту команду nickserv с параметрами IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* alias::format::parameters сходно со скриптовыми языками. %N (где N число) представляет собой параметр, посланный командой
|
||||
* (в случае /identify). Если вы указали %N-, так вы определили все параметры, начиная от N до последнего в этой строке.
|
||||
* Вы можете так же указать %n, что будет означать ник пользователя.
|
||||
*/
|
||||
|
||||
/* Стандартные псевдонимы */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Тут идёт пример использования "действительно псевдонима" (real command alias) */
|
||||
/* Данный пример - использование /GLINEBOT как /GLINE <параметры> 2d и т.д... */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Боты запрещены на этом сервере, прочитайте ЧаВО на http://www.example.com/faq/123";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* НОВОЕ: tld {}
|
||||
* СТАРОЕ: T:Line
|
||||
* Устанавливает различные different motd и rules файлы
|
||||
* в зависимости от маски хостов клиентов.
|
||||
* Синтаксис:
|
||||
* tld {
|
||||
* mask (идент@хост);
|
||||
* motd "(файл motd)";
|
||||
* rules "(файл rules)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.ru;
|
||||
motd "ircd.motd.ru";
|
||||
rules "ircd.rules.ru";
|
||||
};
|
||||
|
||||
/* замечание: вы можете просто удалить блок выше, указанный для примера в случае, если есть в наличии
|
||||
* файлы motd/rules, используемые по умолчанию (ircd.motd, ircd.rules), которые будут использоваться всеми
|
||||
*/
|
||||
|
||||
/*
|
||||
* НОВОЕ: ban nick {}
|
||||
* СТАРОЕ: Q:Line
|
||||
* Банит ник, он не может быть использован.
|
||||
* Синтаксис:
|
||||
* ban nick {
|
||||
* mask "(ник для бана)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Зарезервирован для сервисов";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban ip {}
|
||||
* СТАРОЕ: Z:Line
|
||||
* Банит адрес ip при подключении в сеть.
|
||||
* Синтаксис:
|
||||
* ban ip { mask (адрес ip/маска хоста); reason "(причина)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Отключённый сервер";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban server {}
|
||||
* СТАРОЕ: Серверный Q:Line
|
||||
* Отключает сервер от попыток подключиться в сеть.
|
||||
* Если сервер подключается к удалённому серверу в сети, локальный сервер
|
||||
* будет отключён он сети.
|
||||
* Синтаксис:
|
||||
* ban server {
|
||||
* mask "(имя сервера)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Ламерский сервер :).";
|
||||
};
|
||||
/*
|
||||
* НОВОЕ: ban user {}
|
||||
* СТАРОЕ: K:Line
|
||||
* Пользователь с указанной маской не может подключиться к вашему серверу.
|
||||
* Синтаксис:
|
||||
* ban user { mask (маска хоста/адрес ip); reason "(причина)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *newiceman@*.irc.by;
|
||||
reason "Идиот!";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: ban realname {}
|
||||
* СТАРОЕ: n:Line
|
||||
* Банит по указанному пользователем реальному имени.
|
||||
* Синтаксис:
|
||||
* ban realname {
|
||||
* mask "(Реальное имя)";
|
||||
* reason "(причина)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* ЗАМЕЧАНИЕ ДЛЯ ВСЕХ БАНОВ: они могут повторятся в случае необходимости уточнений!
|
||||
*
|
||||
* НОВОЕ: except ban {}
|
||||
* СТАРОЕ: E:Line
|
||||
* Предотвращает бан.
|
||||
* Синтаксис:
|
||||
* except ban { mask (идент@хост); };
|
||||
* Повторите except ban {} столько раз, сколько хотите использовать различные хосты.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* не банить wax */
|
||||
mask *wax@195.222.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: deny dcc {}
|
||||
* СТАРОЕ: dccdeny.conf
|
||||
* Используется чтобы запретить отправку dcc... служит для защиты от вирусов
|
||||
* Синтаксис:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "имя файла для блокироваки (т.е. *exe)";
|
||||
* reason "причина";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Вероятность вируса Sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: deny channel {}
|
||||
* СТАРОЕ: N/A (НОВОЕ)
|
||||
* Запрещает вход на указанные каналы.
|
||||
* Синтаксис:
|
||||
* deny channel {
|
||||
* channel "(канал)";
|
||||
* reason "причина";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez нелегален";
|
||||
};
|
||||
|
||||
/*
|
||||
* НОВОЕ: vhost {}
|
||||
* СТАРОЕ: файл Vhost.conf
|
||||
* Устанавливает фейковый ip для не-операторов или операторы слишком
|
||||
* ленивые, чтобы сделать /sethost :P
|
||||
* Синтаксис:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (идент@хост, кому разрешено использовать);
|
||||
* };
|
||||
* login (логин);
|
||||
* password (пароль);
|
||||
* };
|
||||
* чтобы использовать vhost, наберите /vhost (логин) (пароль) в IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Вы так же можете подключить и другие конфигурационные файлы */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Конфигурация Сети */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Ключи скрытия хостов должны быть одинаковы на всех серверах в сети.
|
||||
* Они использутся для генерации замаскированных хостов и должны держаться в секрете.
|
||||
* Ключи должен быть 3-мя случайными срочками с 5-100 символами в каждой
|
||||
* (10-20 символов должно быть достаточно) и должны содержать прописные (a-z),
|
||||
* заглавные (A-Z) буквы и цифрты (0-9) [смотрите пример первого ключа].
|
||||
* Подсказка: В *NIX системах вы можете запустить './unreal gencloak' в вашем шелле, чтобы получить
|
||||
* 3 строки, сгенерированные случайным образом.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"и ещё одна;
|
||||
"и ещё одна";
|
||||
};
|
||||
/* хост on-oper */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Специфическая конфигурация сервера */
|
||||
|
||||
set {
|
||||
kline-address "set.this.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Если желаете, вы можете включить проверку ident */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Указывает минимальное время, сколько был подключен пользователь,
|
||||
* прежде чем разрешать ему использовать сообщение QUIT.
|
||||
* Должно помочь в борьбе со спамом */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Устанавливает постоянное сообщение о выходе - значит, что локальный сервер не разрешит
|
||||
различные сообщения о выходе */
|
||||
/* static-quit "Клиент вышел"; */
|
||||
|
||||
/* Вы так же можете блокировать все сообщения о выходе из канала просто раскомментировав это и указать'yes'
|
||||
* или указать какой-нибудь другой текст (например: "Пока пока!"), который всегда будет использован как причина. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Позволяет сделать важные сообщения stats были использованы только операторами, используйте * для всех сообщений stats,
|
||||
* или закомментируйте, что позволит пользователям видеть все сообщения stats. Чтобы получить весь список, введите '/stats'.
|
||||
* Некоторые администраторы могут убрать 'kGs' для того, чтобы разрешить обычным пользователям видеть список
|
||||
* klines, glines и shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Тротлинг: данный пример устанавливает предел в 3 попытки подключения в 60 секунд (для одного хоста). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Защита от флуда */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 изменения ника в 60 секунд (по умолчанию) */
|
||||
};
|
||||
|
||||
/* Фильтр спама */
|
||||
spamfilter {
|
||||
ban-time 1d; /* длительность по умолчанию бана *line, установленного spamfilter */
|
||||
ban-reason "Спам/Реклама"; /* причина по умолчанию */
|
||||
virus-help-channel "#help"; /* канал при использовании действия 'viruschan' */
|
||||
/* except "#help"; канал для исключения действия фильтра */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Проблемы или нуждаетесь в более подробной информации?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.ru.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- содержит 80% ваших вопросов!
|
||||
* 3) Если у вас до сих пор остались проблемы, зайдите на irc.unrealircd.org #unreal-support,
|
||||
* но мы требуем, чтобы вы ПРЕЖДЕ ПРОЧИТАЛИ ДОКУМЕНТАЦИЮ и ЧаВО!
|
||||
*/
|
||||
@@ -0,0 +1,841 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Önceki Çevirmen: Mustafa "Ironic" Cakmak (ironic@unrealircd.org)
|
||||
* Türkçe Çeviri: Serkan Sepetçi (diablo@unrealircd.org)
|
||||
*
|
||||
* Unreal3.2.x sürümler için kullanılmaktadır
|
||||
*
|
||||
* Peki beyler. Bu example.conf dosyasının yenisi. C++ türüne çok benziyor.
|
||||
* Neyse şimdi bunun üstesinden gelme zamanı. Başlangıçta zor gelebilir, fakat
|
||||
* okuyarak ve biraz pratikle anlayacaksınız.
|
||||
*
|
||||
* Yapmanız gereken bu dosyayı ana dizine atıp, 'unrealircd.conf' olarak adlandırmak.
|
||||
*
|
||||
* NOTE: Bütün satırlar, açılış { satırı dışında, kapama } satırı dahil, sonunda ; taşır.
|
||||
* IRCd açıklama satırlarını göz ardı edecektir.
|
||||
*
|
||||
* Lütfen doc/unreal32docs.tr.html dosyasını okuyunuz! Çevrimiçi sürümüne ulaşabileceğiniz adres:
|
||||
* www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
||||
* Yapılandırma dosyası hakkında bir çok bilgi içerir: Her blok,
|
||||
* değişken vs.. hakkında bilgi verir.
|
||||
* Eğer dökümantasyon dosyasını tam olarak okumadan bu dosyayı düzenlemeye kalkarsanız
|
||||
* başarısız olacağınız oldukça yüksek bir oranda garanti edilir!
|
||||
*
|
||||
*/
|
||||
|
||||
/* Açıklama satırı çeşitleri */
|
||||
#Açıklama satırı 1 (Shell tipi)
|
||||
// Açıklama satırı 2 (C++ tipi)
|
||||
/* Açıklama satırı satırı 3 (C tipi) */
|
||||
#Bu satırlar ircd tarafından göz ardı edilecektir.
|
||||
|
||||
/*
|
||||
* UnrealIRCd modülleri destekler, Bunların bazılarının yüklenmesi gereklidir.
|
||||
* En azından komutlar modülü(commands) ve gizleme modülü(cloaking)'ne ihtiyacınız vardır.
|
||||
*/
|
||||
|
||||
/* *NIX için, sonraki 2 satırın açıklama satıracını(//) kaldırın: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows için, sonraki 2 satırın açıklama satıracını(//) kaldırın: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Diğer yapılandırma dosyalarınıda dahil edebilirsiniz.
|
||||
* help.conf bütün /helpop metinlerini içerir. +G kipi için badwords.*.conf
|
||||
* dosyaları bütün kötü kelime girdilerini içerir...
|
||||
* spamfilter.conf güncel trojanlar için uygun kuralları içerir.
|
||||
* Muhtemelen bunları eklemek isteyeceksiniz:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* YENI: me {}
|
||||
* ESKI: M:Line
|
||||
* me {} bu sunucu için isim, tanımlama ve unreal sunucu sayısalını(numeric) belirler.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* me {
|
||||
* name "sunucu.ismi";
|
||||
* info "Sunucu tanımlaması";
|
||||
* numeric (sunucu sayısalı*);
|
||||
* };
|
||||
* Eğer link varsa, bu sayısal ağ üzerinde varolan herhangi bir server tarafından kullanılmamalıdır.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: admin {}
|
||||
* ESKI: A:Line
|
||||
* Admin sunucu yöneticisine dair bilgi verir. Dilediğiniz kadar
|
||||
* satırı admin { altına yerleştirebilirsiniz.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* admin {
|
||||
* "ilk satır";
|
||||
* "ikinci satır";
|
||||
* [vs]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: class {}
|
||||
* ESKI: Y:line (eskisi karışıktı)
|
||||
* Bu sınıflar için ayarları belirtir. Bir sınıf bağlantılar için bir grup
|
||||
* ayarıdır. Örneğin, sunucu bağlantılarını, bir istemci sınıfı
|
||||
* yerine, sunucu sınıfına yönlendirirsiniz. Sözdizimi aşağıdaki gibidir:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (ne sıklıkta saniye içerisinde kullanıcı veya sunucunun ping edileceği);
|
||||
* maxclients (bu sınıf için kaç bağlantı);
|
||||
* sendq (bir bağlantıdan gönderilecek en yüksek dizi);
|
||||
* recvq (bir bağlantıdan alınacak en yüksek dizi [flood kontrolü]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Link edebileceğimiz en yüksek sunucu sayısı */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Her bağlantı girişimi arasında ne kadar saniye olacağı */
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: allow {}
|
||||
* ESKI: I:Line
|
||||
* Bağlantı izinlerini belirtir..
|
||||
* Temel olarak istemcilerin sunucuya bağlanabilmesi için herhangi bir kontrol
|
||||
* ve/veya bir şifre belirtmenize olanak sağlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* allow {
|
||||
* ip (izin verilecek ip maskesi);
|
||||
* hostname (host maskesi);
|
||||
* class (gönderilecek sınıf [class {} bloğuna göz atınız]);
|
||||
* password "(şifre)"; (isteğe bağlı)
|
||||
* maxperip (ip başına kabul edilecek bağlantı sayısı); (isteğe bağlı)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Şifrelendirilmiş allow bloğu */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: allow channel {}
|
||||
* ESKI: chrestrict
|
||||
* Bir kullanıcının bir kanala girmesine olanak sağlar...
|
||||
* yasak kanal bloğundaki hariçlik gibi.
|
||||
* Sözdizimi:
|
||||
* allow channel {
|
||||
* channel "kanal ismi";
|
||||
* class "clients"; (isteğe bağlı)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: oper {}
|
||||
* ESKI: O:Line
|
||||
* Bir IRC Operatörü tanımlamanızı sağlar.
|
||||
* IRC Operatörleri sunucuya uygun bir biçimde bağlanılmasını ve
|
||||
* makullüğü sağlarlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* oper (login) {
|
||||
* class (sınıf ismini ekleyin, eğer istemciden farklıysa, yeni sınıfı ekleyin);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flaglar buraya*);
|
||||
* };
|
||||
* VEYA
|
||||
* flags "OAaRD gibi eski tip flaglar";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Oper flaglarının listesine doc/unreal32docs.html#operblock dan göz atabilirsiniz.
|
||||
* [Okumanız şiddetle önerilir]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: listen {}
|
||||
* ESKI: P:Line
|
||||
* İstemci ve sunucuların sunucuya bağlanmasını sağlamak için ircd tarafından
|
||||
* kullanılacak bir port tanımlamanızı sağlar .
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* listen (ip adresi):(port numarası)
|
||||
* {
|
||||
* options {
|
||||
* (tercihler buraya);
|
||||
* };
|
||||
* };
|
||||
* veya sade bir biçimde
|
||||
* listen: listen (ip):(port);
|
||||
*
|
||||
* UYARI: ipv6 ipleri için (3ffe:b80:2:51d::2 vb), [ip]:port; kullanınız
|
||||
*
|
||||
* Böylede çalışır.
|
||||
*/
|
||||
|
||||
/* listen için tercihler:
|
||||
ESKI | YENI
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* SSL PORTLARI İÇİN NOT: SSL portları oldukça standart dışıdır,
|
||||
* ayrıca pek çok yüksek-SSL portları için bazı insanlar 994 te çalıştırın
|
||||
* der çünkü bu resmi SSL portudur..Fakat bu root erişimi gerektirir.Yanı sıra,
|
||||
* 194 resmi irc portu olarak bunun üzerinde çalışan ircd
|
||||
* hiç gördünüz mü?
|
||||
* Böyle olunca bizim önerimiz 6697 portunu SSL için kullanmanız, bu hayli
|
||||
* sunucuda kullanılıyor ve örnek için StunTour tarafından kabul görmüş durumda.
|
||||
* İstediğiniz kadar SSL port açmakta özgürsünüz, fakat 6697 yi kullanmanız
|
||||
* dünya standartı haline gelmesine biraz daha yardım edecektir. ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOT: Eğer bir çok IP barındıran bir IRCd Shell kullanıyorsanız logunuzda olası
|
||||
* 'Address already in use' alırsınız ve ircd başlamaz.Bunun anlamı '*' yerine
|
||||
* belirli bir IP adresi kullanmanız gerektiğidir.Yani örneğin:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Açıkça, IP yi önceden koyduğunuz IP ile değiştirin.
|
||||
*/
|
||||
|
||||
/*
|
||||
* YENI: link {}
|
||||
* ESKI: C/N:Lines
|
||||
* Bir sunucu bağlantısı için bir onay tanımlamanızı sağlar.
|
||||
* NOT: HER IKI SUNUCUDA BAĞLANTI IÇIN TAM OLARAK DÜZGÜN BİR LINK {} GEREĞİ DUYAR!
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* link (sunucu ismi)
|
||||
* {
|
||||
* username (username, * da uygundur);
|
||||
* hostname (ip adresi/hostmask);
|
||||
* bind-ip (Bağlanırken hangi IP ile bağlanacağı, veya *);
|
||||
* port (bağlantı portu, eğer herhangi biriyse);
|
||||
* hub (Bu bir hub ise, * çalışır, veya sunucu maskeleri bunu sağlar);
|
||||
* [veya leaf *;]
|
||||
* password-connect "(gönderilecek şifre)";
|
||||
* password-receive "(almamız gereken şifre)";
|
||||
* class (sunucuların yönetileceği sınıf);
|
||||
* options {
|
||||
* (tercihler buraya*);
|
||||
* };
|
||||
* // Eğer SSL kullanıyorsak, SSL modunda ne tür bir anahtar kullanacağımızı seçebiliriz
|
||||
* // "openssl ciphers" ile bir liste alınır, anahtarlar birbirinden : ile ayrılırak belirtilebilirler.
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
tercihler:
|
||||
YENI | ESKI
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.mynet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Note: Servisler link edilirken autoconnect kullanmamalısınız.*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* YENI: ulines {}
|
||||
* ESKI: U:Line
|
||||
* U-lines satırları sunuculara daha güç/komut kazandırır.Bu servis/istatistik
|
||||
* sunucuları içindir ve ASLA normal UnrealIRCd sunucuları için değildir.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ulines {
|
||||
* (uline olacak sunucu);
|
||||
* (uline olacak sunucu);
|
||||
* [vb]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: drpass {}
|
||||
* ESKI: X:Line
|
||||
* Bu blok /die ve /restart için şifre tanımlamanızı sağlar.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* drpass {
|
||||
* restart "(yeniden başlatmak için şfire)";
|
||||
* die "(sona erdirmek için şifre)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: log {} ESKI: N/A Ircd e logun ne ve nerede olacağını bildirir. Dilediğiniz
|
||||
* kadara sahip olabilirsiniz.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Eğer 2 MB yi geçerse log dosyasını sil ve yenisini aç, eğer her zaman aynı log
|
||||
dosyasını kullanmak istiyorsanız karışmayın */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: alias {}
|
||||
* ESKI: N/A
|
||||
* /nickserv, /chanserv gibi komutlar hazırlamanızı sağlar.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Sözdizimi:
|
||||
* alias "isim" {
|
||||
* target "gidecek nokta";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOT: Aynı zamanda önceden tanımlanmış alias dosyası dahil edebilirsiniz, doc/unreal32docs.html bölüm 2.9]
|
||||
*/
|
||||
|
||||
// Bu nokta /NickServ komutu ile set::services-server server üzerinden bağlanmış olan NickServ e döner.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Eğer komutla noktanın aynı olmasını istiyorsanız nick girişini gözardı edebilirsiniz
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Bu nokta /statserv komutu ile set::stats-server server üzerinden bağlanmış olan StatServ e döner.
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Bu nokta /superbot komutu ile kullanıcı SuperBot a döner
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standart aliases */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ESKI: alias {}
|
||||
* YENI: N/A
|
||||
* Bu /identify, /services gibi komutlar hazırlamanızı sağlar.
|
||||
*
|
||||
* Sözdizimi:
|
||||
* alias "isim" {
|
||||
* format "format satırı" {
|
||||
* target "gidecek nokta";
|
||||
* type aliastype;
|
||||
* parameters "gönderilecek parametreler";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Bu ayrı bir şekilde gösterilir.Çünkü bir önceki direktif ile aynı isme sahip olsa bile benzer bir
|
||||
* fonksiyon sağlaması ve standart aliaseslerin çalışmasına dayanması ile birlikte çok farklı sözdizimine sahip olması.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* alias::format direktifi bir düzenli ifadedir. İlk biçim /identify komutundan sonraki ilk karakter bir # ise eşleşir.
|
||||
* Ardından IDENTIFY %1- ile chanserv aliases e döner.
|
||||
* İkinci biçim ise /identify komutundan sonraki ilk karakterin bir # işareti ile eşleşmeme durumunu belirtir.Ardından
|
||||
* IDENTIFY %1- ile nickserv aliases e döner.
|
||||
*/
|
||||
|
||||
/* alias::format::parameters betik diline benzerdir. %N (N bir numaradır) komuta gönderilecek
|
||||
* parametreyi temsil eder.(bu durumda /identify). Eğer bir %N- belirtirseniz bu N den sonraki
|
||||
* bütün parametleri içerir. Ayrıca kullanıcı nickname inin yerine %n kullanabilirsiniz.
|
||||
*/
|
||||
|
||||
/* Standart aliases */
|
||||
alias "services" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "%1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
/* Bu gerçek komut aliası için bir örnektir */
|
||||
/* Bu eşlem /GLINEBOT ile /GLINE <parametre> 2d vb... şeklindedir */
|
||||
alias "glinebot" {
|
||||
format ".+" {
|
||||
command "gline";
|
||||
type real;
|
||||
parameters "%1 2d Bu sunucuda botlara izin verilmemektedir, lütfen http://www.example.com/faq/123 sayfasından sss ı okuyunuz.";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* YENI: dosyalar {}
|
||||
* ESKI: include/config.h
|
||||
*
|
||||
* Bu blok MOTD gibi şeyleri yüklemek için IRCd varsayılan yolları
|
||||
* PID haricinde geçersiz kılar veya yazma/yükleme olarak dosyayı kendi ayarlar.
|
||||
* Bu bloğun varlığı bir UnrealIRCd kurulumuna destek sağlar.
|
||||
* -c ile kombine edildiğinde birden fazla komut seçeneğinin
|
||||
* çalışmasına izin verir.
|
||||
*
|
||||
* Her zamanki gibi bu gibi yakın yollar -c komut satırında belirtilmezse,
|
||||
* UnrealIRCd unrealircd.conf'u nerede bulunacağını dizinine göre yorumlar.
|
||||
*/
|
||||
files
|
||||
{
|
||||
/* Günün mesajı, oturum açan kullanıcılara gösterilir: */
|
||||
/* motd ircd.motd; */
|
||||
|
||||
/*
|
||||
* Kısa MOTD. Eğer bu dosya varsa, MOTD yerine kullanıcıya
|
||||
* bu gösterilecektir. Yinede kullanıcılar /MOTD komutu kullanarak
|
||||
* tam MOTD içeriğini görebilecekler.
|
||||
*/
|
||||
/* shortmotd ircd.smotd; */
|
||||
|
||||
/* Operatör olduğunda gösterilir. /OPER 'liğe yükselmiş */
|
||||
/* opermotd oper.motd; */
|
||||
|
||||
/* Servislere MOTD ekler. */
|
||||
/* svsmotd ircd.svsmotd; */
|
||||
|
||||
/* Bot MOTD */
|
||||
/* botmotd bot.motd; */
|
||||
|
||||
/* /RULES üzerinde gösterilir */
|
||||
/* rules ircd.rules; */
|
||||
|
||||
/*
|
||||
* IRCd'nin bazı değerlerinin nerede olduğunu gösterir.
|
||||
* Bu değerler kalıcı olarak saklanır.Sunucu yeniden başlatıldığında
|
||||
* ise bu değerleri yeniden yükleyecektir.
|
||||
*/
|
||||
/* tunefile ircd.tune; */
|
||||
|
||||
/* IRCd pidini nerede kaydedildiğini gösterir. IRCd tarafından yazılabilir olmalıdır. */
|
||||
/* pidfile ircd.pid; */
|
||||
};
|
||||
|
||||
/*
|
||||
* ESKI: tld {}
|
||||
* YENI: T:Line
|
||||
* Bu istemcilerin hostmaskesine bağlı olarak farklı
|
||||
* motd ve rules dosyaları belirler.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd dosyası)";
|
||||
* rules "(rules dosyası)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* not: Bütün istemciler için aynı motd/rules (ircd.motd, ircd.rules) dosyaları
|
||||
* görüntületmek istiyorsanız sadece yukarıdaki örnek bloğu silebilirsiniz.
|
||||
*/
|
||||
|
||||
/*
|
||||
* YENI: ban nick {}
|
||||
* ESKI: Q:Line
|
||||
* Nir nickname yasaklar, bundan doalyı kullanılamaz.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ban nick {
|
||||
* mask "(yasaklanak nick)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Servisler için ayrılmıştır";
|
||||
};
|
||||
/*
|
||||
* YENI: ban ip {}
|
||||
* ESKI: Z:Line
|
||||
* Ağa bağlanan bir ip yi yasaklar.
|
||||
* Sözdizimi:
|
||||
* ban ip { mask (ip adresi/hostmask); reason "(neden)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Bağlı olmayan sunucu";
|
||||
};
|
||||
/*
|
||||
* YENI: ban server {}
|
||||
* ESKI: Server Q:Line
|
||||
* Ağa bir sunucunun bağlanmasını devredışı kılar.
|
||||
* eğer sunucu uzak bir sunucuya bağlanmışsa, yerel sunucunun
|
||||
* ağdan bağlantısı kesilir.
|
||||
* Sözdizimi aşağıdaki gibidir:
|
||||
* ban server {
|
||||
* mask "(sunucu ismi)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Defol buradan.";
|
||||
};
|
||||
/*
|
||||
* YENI: ban user {}
|
||||
* ESKI: K:Line
|
||||
* Kullanıcının belirtilen kesin bir mask ile sunucuya bağlanmasını engeller.
|
||||
* Sözdizimi:
|
||||
* ban user { mask (hostmask/ip adresi); reason "(neden)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: ban realname {}
|
||||
* ESKI: n:Line
|
||||
* Kullanılan kesin bir realname i yasaklar.
|
||||
* Sözdizimi:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(neden)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* BUTUN BANLAR İÇİN NOT, ilave girdiler için tekrarlanabilir!
|
||||
*
|
||||
* YENI: except ban {}
|
||||
* ESKI: E:Line
|
||||
* Bu yasaklanmamanızı sağlar.
|
||||
* Sözdizimi:
|
||||
* except ban { mask (ident@host); };
|
||||
* Farklı hostlar için istediğiniz kadar except ban {}
|
||||
* bloğunu tekrarlayın.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* stskeeps i yasaklama*/
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: deny dcc {}
|
||||
* ESKI: dccdeny.conf
|
||||
* Dcc gönderimlerini bloklamak için kullanılır..Virüsler
|
||||
* dursa iyi olur.
|
||||
* Sözdizimi:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "bloklanacak dosya (örnek, *exe)";
|
||||
* reason "neden";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Muhtemek Sub7 Virüsü";
|
||||
};
|
||||
|
||||
/*
|
||||
* ESKI: deny channel {}
|
||||
* YENI: N/A (NEW)
|
||||
* Girilen kanalları bloklar.
|
||||
* Sözdizimi:
|
||||
* deny channel {
|
||||
* channel "(kanal)";
|
||||
* reason "neden";
|
||||
* class "clients"; (isteğe bağlı)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez yasaktır";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
* YENI: vhost {}
|
||||
* ESKI: Vhost.conf file
|
||||
* Oper olmayan kullanıcılar için sahte ip hazırlar, veya
|
||||
* tembellik yaparak /sethost kullanmayan operler içindir :P
|
||||
* Sözdizimi:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (kullanılacak ident@host);
|
||||
* };
|
||||
* login (login ismi);
|
||||
* password (şifre);
|
||||
* };
|
||||
* ardından bu vhostu kullanmak için, IRC de /vhost (login) (şifre) yapın
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Diğer yapılandırma dosyalarını dahil edebilirsiniz */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Ağ yapılandırması */
|
||||
set {
|
||||
network-name "ROXnet";
|
||||
default-server "irc.roxnet.org";
|
||||
services-server "services.roxnet.org";
|
||||
stats-server "stats.roxnet.org";
|
||||
help-channel "#ROXnet";
|
||||
hiddenhost-prefix "rox";
|
||||
/* prefix-quit "no"; */
|
||||
/* Gizleme anahtarları ağ üzerindeki bütün sunucularda aynı olmalı.
|
||||
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
|
||||
* Anahtarlar 5-100 karakterlik (10-20 karakter yeterli) 3 rastgele diziden oluşmalı ve
|
||||
* küçük harf (a-z), büyük harf (A-Z) ve rakamlardan (0-9) meydana gelmelidirler.. [ilk örneğe bakınız].
|
||||
* IPUCU: './unreal gencloak' Unreal sizin için rastgele 3 adet dizin oluşturur.
|
||||
* Bunu NIX üzerinde çalıştırabilirsiniz.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
/* on-oper host */
|
||||
hosts {
|
||||
local "locop.roxnet.org";
|
||||
global "ircop.roxnet.org";
|
||||
coadmin "coadmin.roxnet.org";
|
||||
admin "admin.roxnet.org";
|
||||
servicesadmin "csops.roxnet.org";
|
||||
netadmin "netadmin.roxnet.org";
|
||||
host-on-oper-up "no";
|
||||
};
|
||||
};
|
||||
|
||||
/* Sunucunun kendine özgü yapılandırması */
|
||||
|
||||
set {
|
||||
kline-address "bunu.email.olarak.ayarlayın";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Eğer isterseniz identd kontrolünü buradan aktif edebilirsiniz */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* /quit mesajının görüntülenebilmesi için, bir kullanıcının sunucuya bağlı kalması gereken süre
|
||||
* Umarız spamleri durdurmak için yardım eder */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Bütün çıkışlarda değişmeyen bir çıkış mesajı yaratır - anlamı yerel sunucuda
|
||||
ısmarlama çıkışlara izin verilmemesidir */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Ayrıca bu seçeneğin açıklama satırlarını kaldırıp 'yes' diyerek bütün kanaldan ayrılma mesajlarını,
|
||||
* bloklamış veya belirli bir diğer metini bunun için kullanabilirsiniz. (örnek: "Bye bye!") Her zaman kanaldan
|
||||
* ayrılma mesajı olarak kullanılır */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Operlerin sadece belirli istatistikleri görüntüleyebilmesini sağlar, bütün istatistikler için * kullanın,
|
||||
* bütün istatistikleri görebilmeleri için gözardı edin. Full liste için '/stats' yapınız.
|
||||
* Bazı yöneticiler normal kullanıcıların 'kGs' istatistiklerine ulaşmasını istemeyebilir.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Bu örnek bir hosta 60 saniye içerisine yanlızca 3 bağlantı imkanı sağlar. */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood koruması */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* Her 60 saniyede 3 nick değişikliği (varsayılan) */
|
||||
};
|
||||
|
||||
/* Spam filtresi */
|
||||
spamfilter {
|
||||
ban-time 1d; /* spamfilter ile bir *line yasağının varsayılan devaö süresi */
|
||||
ban-reason "Spam/Advertising"; /* varsayılan neden */
|
||||
virus-help-channel "#help"; /* 'viruschan' eylemi için kullanılacak kanal */
|
||||
/* except "#help"; spam filtreden muaf tutulacak kanal */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Sorununuz veya daha fazla yardımamı ihtiyacınız var?
|
||||
* 1) www.vulnscan.org/UnrealIRCd/unreal32docs.tr.html
|
||||
* 2) www.vulnscan.org/UnrealIRCd/faq/ <- sorularınızın %80 ini kapsamakta!
|
||||
* 3) Eğer probleminiz hala devam ediyorsa irc.unrealircd.org sunucusu #unreal-support kanalına girebilirsiniz
|
||||
* DÖKÜMANTASYON ve FAQ kısmını okumanızı gerekli gördüğümüzü belirtiyoruz!
|
||||
*/
|
||||
+90
-22
@@ -15,7 +15,7 @@ help {
|
||||
" zum Begriff 'who' wissen, ist einzugeben:";
|
||||
" /HELPOP WHO";
|
||||
" (Als HelpOp muss man /HELPOP ?WHO eingeben, also vor";
|
||||
" den Begriff noch ein ? setzen);"
|
||||
" den Begriff noch ein ? setzen)";
|
||||
" In diesem Hilfesystem sind alle Server Befehle und";
|
||||
" Optionen aufgeführt, die benutzt werden können.";
|
||||
" Wird darüberhinaus noch Hilfe benötigt, kann diese";
|
||||
@@ -60,7 +60,9 @@ help Opercmds {
|
||||
" einen bestimmten Befehl zu erhalten.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" ADCHAT GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" ADCHAT DNS NACHAT SETIDENT";
|
||||
" ADDMOTD GLINE OPER SHUN";
|
||||
" ADDOMOTD GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" CHATOPS GZLINE REHASH SQUIT";
|
||||
" CHGHOST HTM RESTART TEMPSHUN";
|
||||
" CHGIDENT KILL RPING TRACE";
|
||||
@@ -69,8 +71,6 @@ help Opercmds {
|
||||
" CONNECT LOCOPS SAPART WALLOPS";
|
||||
" DCCDENY MKPASSWD SDESC ZLINE";
|
||||
" DIE MODULE SETHOST";
|
||||
" DNS NACHAT SETIDENT";
|
||||
" GLINE OPER SHUN";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -82,11 +82,11 @@ help Svscmds {
|
||||
" einen bestimmten Befehl zu erhalten.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSNO";
|
||||
" SVS2MODE SVSLUSERS SVSNOOP SVSWATCH";
|
||||
" SVS2SNO SVSMODE SVSO SWHOIS";
|
||||
" SVSFLINE SVSMOTD SVSPART UNSQLINE";
|
||||
" SVSJOIN SVSNICK SVSSILENCE";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSILENCE";
|
||||
" SVS2MODE SVSLUSERS SVSNOLAG SVSSNO";
|
||||
" SVS2SNO SVSMODE SVSNOOP SVSWATCH";
|
||||
" SVSFLINE SVSMOTD SVSO SWHOIS";
|
||||
" SVSJOIN SVSNICK SVSPART UNSQLINE";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -126,12 +126,17 @@ help Umodes {
|
||||
};
|
||||
|
||||
help Snomasks {
|
||||
" Snomask seht für 'Service NOtice MASK'. Hiermit wird (hauptsächlich)";
|
||||
" gesteuert, welche Server Notices empfangen werden.";
|
||||
" Anwendung: /MODE nick +s <snomask>";
|
||||
" Beispiel: /MODE blah +s +cF-j";
|
||||
" Der Parameter legt fest, welche snomasks gewollt sind (oder nicht).";
|
||||
" Man kann einzelne SNoMasks entfernen oder durch -s alle entfernen.";
|
||||
" -";
|
||||
" Hier eine Liste aller verfügbaren SNoMasks";
|
||||
" SNoMasks werden mit dem UMode +s gesetzt, Sie sind ein zusätzlicher Parameter.";
|
||||
" Als Beispiel, um SNoMask +f zu setzen tippt man:";
|
||||
" /MODE <Dein Nick> +s +f";
|
||||
" Man kann einzelne SNoMasks entfernen oder durch -s alle entfernen.";
|
||||
" -";
|
||||
" ==-------------------------oOo-----------------------==";
|
||||
" c = Sieht alle lokalen Connects/Disconnects";
|
||||
" e = Bekommt alle Server Meldungen für +e User (Eyes)";
|
||||
@@ -160,8 +165,9 @@ help Chmodes {
|
||||
" a <nickname> = Gibt einem User Channel-Admin Status";
|
||||
" q <nickname> = Gibt einem User Owner-Status";
|
||||
" -";
|
||||
" b <nick!ident@host> = Bannt alle User, auf die die nick!ident@host-Maske passt [h]";
|
||||
" c = Blockt alle Nachrichten in denen mIRC FarbCodes enthalten sind [o]";
|
||||
" b <nick!ident@host> = Bannt alle User, auf die die nick!ident@host-Maske passt";
|
||||
" Erweiterte Bann Typen werden unter /HELPOP EXTBANS beschrieben [h]";
|
||||
" c = Blockt alle Nachrichten in denen mIRC FarbCodes enthalten sind [o]";
|
||||
" e <nick!ident@host> = Nimmt passende User von einem Bann aus [h]";
|
||||
" f <Floodparameter> = Schutz vor Flood (für weitere Informationen siehe /HELPOP CHMODEF) [o]";
|
||||
" I nick!ident@host> = Nimmt passende User von +i aus [h]";
|
||||
@@ -196,6 +202,37 @@ help Chmodes {
|
||||
" ==------------------------------oOo----------------------------==";
|
||||
};
|
||||
|
||||
help ExtBans {
|
||||
" Erweiterte Banntypen: ";
|
||||
" -";
|
||||
" ==-Typ---------Name---------------------------Beschreibung----------------------==";
|
||||
" | | User, auf die dieser Bann gesetzt wird, können joinen, ";
|
||||
" ~q | Quiet | a´ber nichts schreiben, solange sich nicht +v oder ";
|
||||
" | | höher haben. ";
|
||||
" | | Beispiel: ";
|
||||
" | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | User, auf die dieser Bann gesetzt ist, können ihren ";
|
||||
" ~n | nickchange | Nick nicht ändern, solange sie nicht +v oder höher sind.";
|
||||
" | | Beispiel: ";
|
||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | Wenn der User in diesem Channel ist, kann er/sie nicht ";
|
||||
" | [prefix] | joinen. Es kann ein Prefix (+/%/@/&/~) angegeben werden.";
|
||||
" ~c | channel | Dadurch gilt der Bann nur, wenn der User diese Rechte ";
|
||||
" | | oder höher im angegebenen Channel hat. ";
|
||||
" | | Beispiel: +b ~c:#lamers, +e ~c:@#trusted ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | Wenn der Bann auf den gegebenen Realnamen gesetzt ist, ";
|
||||
" | | kann dieser User nicht joinen. ";
|
||||
" ~r | realname | Beispiel: +b ~r:*Stupid_bot_script* ";
|
||||
" | | ACHTUNG: Ein Unterstrich ('_') steht für Beides: ein ";
|
||||
" | | Leerzeichen und auch ein Unterstrich ('_') ";
|
||||
" | | Dieser Bann würde auch auf 'Stupid bot script v1.4'. ";
|
||||
" | | passen. ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
" Der +f Channel Mode ermöglicht eienn umfangreichen Flood Schutz für einen";
|
||||
" Channel. Durch diesen Modus ist es möglich, Floods durch join, nick change,";
|
||||
@@ -210,7 +247,7 @@ help Chmodef {
|
||||
" ==-----Type-----Name--------Default Action---Other Actions-----==";
|
||||
" c CTCP +C m, M";
|
||||
" j Join +i R";
|
||||
" k Knock +k";
|
||||
" k Knock +K";
|
||||
" m Messages +m M";
|
||||
" n Nickchange +N";
|
||||
" t Text kick b";
|
||||
@@ -430,7 +467,7 @@ help Lusers {
|
||||
};
|
||||
|
||||
help Map {
|
||||
" Zeigt eine pseude-grafische Netzwerks Karte an, aus der die;"
|
||||
" Zeigt eine pseude-grafische Netzwerks Karte an, aus der die";
|
||||
" Struktur des IRC Netzwerkes hervorgeht. Das wird hauptsächlich";
|
||||
" zu Routing Zwecken benötigt.";
|
||||
" -";
|
||||
@@ -711,7 +748,7 @@ help Wallops {
|
||||
};
|
||||
|
||||
help Globops {
|
||||
" Sendet eine globale \"Nachricht\" an alle IRCops. Die Nachricht;"
|
||||
" Sendet eine globale \"Nachricht\" an alle IRCops. Die Nachricht";
|
||||
" kann nur von IRCops gelesen werden (anders, als WALLOPS, die";
|
||||
" auch von normalen Usern gelesen werden können).";
|
||||
" -";
|
||||
@@ -749,12 +786,12 @@ help Nachat {
|
||||
};
|
||||
|
||||
help Kill {
|
||||
" Dieser Befehl entfernt einen User vom Server (anders als KICK";
|
||||
" Dieser Befehl entfernt User vom Server (anders als KICK";
|
||||
" wo der User nur vom Channel entfernt wird). Der User kann direkt";
|
||||
" neu zum Server verbinden.";
|
||||
" Befehl nur für IrcOps.";
|
||||
" -";
|
||||
" Syntax: KILL <user> <reason>";
|
||||
" Syntax: KILL <user1>, <user2>, <user3>,... <reason>";
|
||||
" Beispiel: KILL Jack16 Werbung für Dialer hier nicht erlaubt";
|
||||
};
|
||||
|
||||
@@ -1153,7 +1190,7 @@ help Svskill {
|
||||
|
||||
help Svsnoop {
|
||||
" Dieser Befehl aktiviert oder deaktiviert die Möglichkeit";
|
||||
" globaler IrcOp Funktonen auf dem angegebenen Server.";
|
||||
" IrcOp Funktonen auf dem angegebenen Server.";
|
||||
" Muss durch einen U:Lined Server gesendet werden.";
|
||||
" -";
|
||||
" Syntax: SVSNOOP <server> <+/->";
|
||||
@@ -1247,7 +1284,9 @@ help Svsnline {
|
||||
" sind Leerzeichen durch '_' zu ersetzen, Unreal";
|
||||
" übersetzt diese zu Leerzeichen.";
|
||||
" -";
|
||||
" Syntax: SVSNLINE <grund_für_den_bann> :<realname>";
|
||||
" Syntax: SVSNLINE <grund_für_den_bann> :<realname> (um einen Bann zu setzen)";
|
||||
" SVSNLINE - (um einen Bann zu löschen)";
|
||||
" SVSNLINE * (um alle Banns zu löschen)";
|
||||
" Beispiel: SVSNLINE sub7_drone :*sub7*";
|
||||
};
|
||||
|
||||
@@ -1294,6 +1333,22 @@ help Svs2sno {
|
||||
" Beispiel: SVS2SNO joe +Gc";
|
||||
};
|
||||
|
||||
help Svsnolag {
|
||||
" Aktiviert ein 'kein fake lag' für einen User.";
|
||||
" Muss durch einen U:Lined Server gesendet werden.";
|
||||
" -";
|
||||
" Syntax: SVSNOLAG [+|-] <nickname>";
|
||||
" Example: SVSNOLAG + joe";
|
||||
};
|
||||
|
||||
help Svs2nolag {
|
||||
" Aktiviert ein 'kein fake lag' für einen User.";
|
||||
" Muss durch einen U:Lined Server gesendet werden.";
|
||||
" -";
|
||||
" Syntax: SVS2NOLAG [+|-] <nickname>";
|
||||
" Example: SVS2NOLAG + joe";
|
||||
};
|
||||
|
||||
help Spamfilter {
|
||||
" Diese Befehle setzten oder löschen globale Spam Filter.";
|
||||
" Spamfilter helfen, mit Spam, störenden Bots, Werbung etc. fertig zu werden.";
|
||||
@@ -1308,7 +1363,7 @@ help Spamfilter {
|
||||
" 'kill', 'tempshun' (Shun nur für aktuelle Session), 'shun',";
|
||||
" 'kline', 'gline', 'zline', 'gzline', 'block' (blockiert Nachricht),";
|
||||
" 'dccblock' (kann keine DCC mehr senden), 'viruschan' (verlässt alle Channels";
|
||||
" und joint zwangsweise im Virus Help Channel).";
|
||||
" und joint zwangsweise im Virus Help Channel), warn (Warnung für IrcOps).";
|
||||
" [regex] hier handelt es sich um den Ausdruck in der Nachricht, auf den hin Reaktionen";
|
||||
" erfolgen sollen.";
|
||||
" [tkltime] die Zeitdauer, wie lange *LINEs, die durch [action] gesetzt wurden, gelten sollen";
|
||||
@@ -1336,7 +1391,7 @@ help Tempshun {
|
||||
" gilt der Shun nicht mehr.";
|
||||
" -";
|
||||
" Syntax: TEMPSHUN [+|-]<nickname> [reason]";
|
||||
" Example: TEMPSHUN evilguy suspected infection";
|
||||
" Example: TEMPSHUN evilguy vermutlich Infektion";
|
||||
" TEMPSHUN -niceguy";
|
||||
};
|
||||
|
||||
@@ -1347,3 +1402,16 @@ help DccAllow {
|
||||
*/
|
||||
};
|
||||
|
||||
help Addmotd {
|
||||
" Fügt eine Zeile ans Ende der MOTD an.";
|
||||
" -";
|
||||
" Syntax: ADDMOTD <text>";
|
||||
" Beispiel: ADDMOTD Spielt fair!";
|
||||
};
|
||||
|
||||
help Addomotd {
|
||||
" Fügt eine Zeile ans Ende der OPERMOTD an. ";
|
||||
" -";
|
||||
" Syntax: ADDOMOTD <text>";
|
||||
" Beispiel: ADDOMOTD Abuse it and lose it!";
|
||||
};
|
||||
|
||||
+523
-428
File diff suppressed because it is too large
Load Diff
+1519
File diff suppressed because it is too large
Load Diff
+1404
File diff suppressed because it is too large
Load Diff
+33
-13
@@ -1,5 +1,6 @@
|
||||
Numeric 005 Documentation (c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
Numeric 005 Documentation
|
||||
(c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(c) 2005-2009 syzop (Bram Matthys) [syzop@vulnscan.org]
|
||||
|
||||
Numeric 005 allows the server to inform the client of any protocol specific features in the
|
||||
IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally
|
||||
@@ -23,9 +24,9 @@ impractical and technically impossible to correctly implement due to existing li
|
||||
in the standard. Therefore, this token is not currently supported.
|
||||
|
||||
Unreal does additionally provide a few tokens which are not specified in the standard, these
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, and CMDS. Unreal also maintains a few
|
||||
legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure compatibility until the ISupport
|
||||
standard is more widely accepted by clients.
|
||||
include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, CMDS, NAMESX, UHNAMES, and WATCHOPTS.
|
||||
Unreal also maintains a few legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure
|
||||
compatibility until the ISupport standard is more widely accepted by clients.
|
||||
|
||||
Token Value Default Value Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -107,7 +108,7 @@ CASEMAPPING string ascii Specifies what defini
|
||||
characters are upper/lowercase
|
||||
of eachother.
|
||||
|
||||
EXTBAN prefix,types ~,cqr Specifies what extbans are
|
||||
EXTBAN prefix,types ~,cqnr Specifies what extbans are
|
||||
supported by the server. The prefix
|
||||
defines which character indicates
|
||||
an extban and the types defines
|
||||
@@ -124,7 +125,7 @@ ELIST flags MNUCT Specifies the set of
|
||||
flag allows topic set time
|
||||
searching.
|
||||
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that
|
||||
can be useful for the client to know
|
||||
exist as they may provide a more
|
||||
efficient means for the client to
|
||||
@@ -132,29 +133,48 @@ CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of
|
||||
token replaces the MAP and KNOCK
|
||||
tokens.
|
||||
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
STATUSMSG flags ~&@%+ Specifies the mode flags that may
|
||||
prefix a channel name in a PRIVMSG
|
||||
or NOTICE to limit who receives the
|
||||
message to only those with a certain
|
||||
level of access. This token will
|
||||
replace the WALLCHOPS token.
|
||||
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
EXCEPTS none none Indicates that channel ban exceptions
|
||||
(+e) are supported by the server.
|
||||
|
||||
INVEX none none Indicates that channel invite
|
||||
INVEX none none Indicates that channel invite
|
||||
exceptions (+I) are supported by
|
||||
the server.
|
||||
|
||||
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
|
||||
MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of
|
||||
entries that may be added to a
|
||||
particular mode list (type A modes).
|
||||
This token replaces MAXBANS.
|
||||
|
||||
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
|
||||
CHANLIMIT pfx:num,... #:10 Specifies the maximum number of
|
||||
channels with the specified prefix
|
||||
that a user may join at one time.
|
||||
This token will replace MAXCHANNELS.
|
||||
|
||||
CHANNELLEN number 32 Provides the maximum length of a
|
||||
CHANNELLEN number 32 Provides the maximum length of a
|
||||
channel name that a user can create.
|
||||
|
||||
NAMESX none none Indicates that extended /NAMES info
|
||||
is available on this server. If the
|
||||
client sends "PROTOCTL NAMESX" then
|
||||
the server will, from then on, send
|
||||
all channel rights in a NAMES reply
|
||||
instead of only the highest right
|
||||
(eg: @+Person instead of @Person).
|
||||
|
||||
UHNAMES none none Indicates that (other) extended
|
||||
/NAMES info is available on the
|
||||
server. If the client sends
|
||||
"PROTOCTL UHNAMES" then the server
|
||||
will, from then on, send user@host
|
||||
information in a NAMES reply
|
||||
(eg: @nick!ident@hostname).
|
||||
|
||||
WATCHOPTS flags A WATCH options supported. 'A' means
|
||||
Away Notification is available.
|
||||
|
||||
@@ -139,3 +139,22 @@ NICKCHARS This specifies a list of language characters that are allowed in n
|
||||
The items in the list sent as NICKCHARS=.. must always be sorted.
|
||||
If a server sends NICKCHARS= and if the remote parameters do not match the
|
||||
charsets in use locally, then the server link is rejected.
|
||||
|
||||
CHANMODES Like CHANMODES from the 005 numeric. Useful to see which channel modes are
|
||||
supported/used, and can also be used to properly eat parameters in parameter
|
||||
modes in the MODE command (for eg: +jk 1:1 a).
|
||||
|
||||
EAUTH Early Authorization. This makes it possible for servers to authenticate each
|
||||
other before the regular SERVER command. Needs to be done prior to using the
|
||||
SERVERS token, and possibly other tokens or commands in the future. Hence,
|
||||
is recommended to be sent as first (or early) PROTOCTL token. Note also that
|
||||
the PASS command should be sent prior to this PROTOCTL token.
|
||||
EAUTH=my.server.name[,options]
|
||||
|
||||
SERVERS Informs the other server about the other servers (numerics) on this network
|
||||
(including our own numeric).
|
||||
Syntax: SERVERS=numeric1,numeric2,numeric3,etc
|
||||
|
||||
ESVID This token indicates that the traditional services stamp value may take any
|
||||
arbitrary value for the SVID field, such as an account name or other unique
|
||||
identifier, including a traditional timestamp value.
|
||||
|
||||
@@ -0,0 +1,468 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- $Id$ -->
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
|
||||
<title>Unreal 3.2 Protocol Documentation</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 style="text-align: center;">Unreal 3.2 Protocol Documentation</h1>
|
||||
<h3 style="text-align: center;">Last update: 29 November 2006</h3>
|
||||
<h1>Table of Contents</h1>
|
||||
<p><a href="#S1">1 Introduction</a></p>
|
||||
<p><a href="#S2">2 Server Negotiation</a></p>
|
||||
<blockquote><p><a href="#S2_1">2.1 PASS - Connection Password</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_2">2.2 PROTOCTL - Server Protocol Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_3">2.3 SERVER - Server Negotiation</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_4">2.4 EOS - End Of Synch</a></p></blockquote>
|
||||
<blockquote><p><a href="#S2_5">2.5 NETINFO - Network Information</a></p></blockquote>
|
||||
<p><a href="#S3">3 User Operations</a></p>
|
||||
<blockquote><p><a href="#S3_1">3.1 NICK - User Introduction and Nick Change</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S3_1_1">3.1.1 Nick Collisions</a></p></blockquote></blockquote>
|
||||
<blockquote><p><a href="#S3_2">3.2 MODE, UMODE2 - User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_3">3.3 QUIT - User Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_4">3.4 KILL - Force Disconnect</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_5">3.5 SETHOST/CHGHOST - Change virtual host</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_6">3.6 SETIDENT/CHGIDENT - Change a user's username</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_7">3.7 SETNAME/CHGNAME - Change a user's realname</a></p></blockquote>
|
||||
<blockquote><p><a href="#S3_8">3.8 WHOIS - User Information</a></p></blockquote>
|
||||
<p><a href="#S1">4 Server Operations</a></p>
|
||||
<blockquote><p><a href="#S4_1">4.1 SERVER - Server Introduction</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_2">4.2 SQUIT - Server Removal</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_3">4.3 SDESC - Server Description</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_4">4.4 PING - Live Connection Query</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_5">4.5 PONG - Live Connection Reply</a></p></blockquote>
|
||||
<blockquote><p><a href="#S4_6">4.6 STATS - Server Stats</a></p></blockquote>
|
||||
<p><a href="#S5">5 Channel Operations</a></p>
|
||||
<blockquote><p><a href="#S5_1">5.1 SJOIN - Channel Burst</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_2">5.2 JOIN - Channel Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_3">5.3 PART - Channel Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_4">5.4 KICK - Channel Kick</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_5">5.5 MODE - Channel Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_6">5.6 INVITE - Invite a user to a channel</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_7">5.7 SAJOIN - Channel Force Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_8">5.8 SAPART - Channel Force Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_9">5.9 SAMODE - Channel Force Mode</a></p></blockquote>
|
||||
<blockquote><p><a href="#S5_10">5.10 TOPIC - Chanel Topic</a></p></blockquote>
|
||||
<p><a href="#S6">6 Services Commands</a></p>
|
||||
<blockquote><p><a href="#S6_1">6.1 SVSKILL - Force Disconnect by Service</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_2">6.2 SVSMODE, SVS2MODE - Force User Mode Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_3">6.3 SVSSNO, SVS2SNO - Forced SNomask Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_4">6.4 SVSNICK - Forced Nick Change</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_5">6.5 SVSJOIN - Forced Join</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_6">6.6 SVSPART - Forced Part</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_7">6.7 SVSO - Oper Permissions</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_8">6.8 SVSNOOP - Oper Lockdown</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_9">6.9 SVSNLINE - RealName Ban</a></p></blockquote>
|
||||
<blockquote><p><a href="#S6_10">6.10 SVSFLINE - File Ban</a></p></blockquote>
|
||||
<p><a href="#S7">7 Messaging</a></p>
|
||||
<blockquote><p><a href="#S7_1">7.1 PRIVMSG, NOTICE - Simple Message Transmission</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_2">7.2 SENDUMODE, SMO - Usermode-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_3">7.3 SENDSNO - SNomask-based Delivery</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_4">7.4 CHATOPS - IRCop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_5">7.5 WALLOPS - Wallop Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_6">7.6 GLOBOPS - FailOp Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_7">7.7 ADCHAT - Admin Chat</a></p></blockquote>
|
||||
<blockquote><p><a href="#S7_8">7.8 NACHAT - NetAdmin Chat</a></p></blockquote>
|
||||
<p><a href="#S8">8 Ban Control</a></p>
|
||||
<blockquote><p><a href="#S8_1">8.1 TKL - Master Ban Control</a></p></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_1">8.1.1 GLINE - Network-wide user@host ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_2">8.1.2 GZLINE - Network-wide IP ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_3">8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban</a></p></blockquote></blockquote>
|
||||
<blockquote><blockquote><p><a href="#S8_1_4">8.1.4 SPAMFILTER - Message Spam Filtration System</a></p></blockquote></blockquote>
|
||||
<p><a href="#S9">9 Base64 Tables</a></p>
|
||||
<blockquote><p><a href="#S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></p></blockquote>
|
||||
<blockquote><p><a href="#S9_2">9.2 Table for NICKIP.</a></p></blockquote>
|
||||
<hr/>
|
||||
<h1><a name="S1"></a>1 Introduction</h1>
|
||||
<p>This document describes the UnrealIRCd server-to-server protocol.</p>
|
||||
<h2>A word about clocks.</h2>
|
||||
<p>Unreal is very time-dependant. Users and channels, for example, are timestamped, and if server clocks are not synchronized properly, things can go very wrong very fast. See <a href="http://vulnscan.org/UnrealIrcd/faq/#67">http://vulnscan.org/UnrealIrcd/faq/#67</a> for more information on this. Note that there is a slight difference between server time and what is actually reported by the UNIX date command or by the C time() function. Unreal can apply an offset to the real time to create the server time, allowing servers to be virtually synchronized when synchronizing the real clocks is not possible (such as on shell servers).
|
||||
I should make it quite clear that GMT time is used for everything. To be specific, timestamps in unreal are 32-bit integer values (actually, however many bits the time_t type is, which is 32 on 32-bit systems such as x86). This integer value is the number of seconds that have elapsed since Midnight January 1, 1970 GMT (can be referred to as Epoch time in the UNIX world). This means that timezones are no problem, nor is daylight savings time (or whatever your country of choice calls it).</p>
|
||||
<hr/>
|
||||
<h1><a name="S2"></a>2 Server Negotiation</h1>
|
||||
<p>The first step to establish a server-to-server communication is to negotiate the connection as a server. Negotiation is done using standard IRC commands - no PROTOCTL options are in force until the link is established. The first step is to open a TCP/IP connection to the target server. The target port must be one described by a listen {} block in the remote server's configuration, and that listen block must not have the clientsonly option. After the connection is open, you will be treated as any other connection and be greeted with the "Looking up your hostname..." and "Checking identd..." notices as you would for a client. As these are NOTICE messages and your session as a server isn't established, they should simply be ignored. Use the commands below to introduce a server connection.</p>
|
||||
<h2><a name="S2_1"></a>2.1 PASS - Connection Password</h2>
|
||||
<p><b>Syntax:</b> <tt>PASS :<i>link password</i></tt></p>
|
||||
<p>The PASS command is used to transmit the password required for a server link. It must match the password specified in the remote server's link::password-receive (which can be crypted), otherwise the link will be rejected. This should be the first message sent.</p>
|
||||
<h2><a name="S2_2"></a>2.2 PROTOCTL - Server Protocol Negotiation</h2>
|
||||
<p><b>Syntax:</b> <tt>PROTOCTL <i>protocol options</i></tt></p>
|
||||
<p>The PROTOCTL command sets several protocol options. The tokens supported are listed below.</p>
|
||||
<ul>
|
||||
<li>NOQUIT : When a netsplit occurs, only send a SQUIT message for each server lost. This server will assume that clients on these servers were also lost and will send the appropriate QUIT messages to local clients and to any non-NOQUIT servers.</li>
|
||||
<li>TOKEN : Use tokenized commands. Tokens are case-sensitive, shortened versions of command names. Tokens will be usually one or two characters.</li>
|
||||
<li>NICKv2 : Use extended NICK message for introducing users. See the NICK command for information about this.</li>
|
||||
<li>VHP : When introducing a user, send his cloaked host as if it were a vhost. Usually used for services to avoid having duplicate code.</li>
|
||||
<li>SJOIN : Supports SJOIN version 1 which is no longer in use. Use with SJ3.</li>
|
||||
<li>SJOIN2 : Supports SJOIN version 2 which is no longer in use. Use with SJ3.</li>
|
||||
<li>UMODE2 : Supports the UMODE2 command, which is a shortened version of MODE for usermode changes.</li>
|
||||
<li>VL : Supports V:Line information. Extends the SERVER message to include version information used in deny version{} blocks. Note that this is assumed - unreal will always send its own version information.</li>
|
||||
<li>SJ3 : Supports SJOIN version 3.</li>
|
||||
<li>NS : Supports server numerics which provides a shorthand for server names. In any circumstance where a :server.name is permitted (the server is the message's real source), @servernumeric may be used instead. In addition, the server.name parameter in the NICK message may be simply the server's numeric. Requires VL support.</li>
|
||||
<li>SJB64 : Timestamps in NICK and SJOIN are expressed in base64 rather than base10.</li>
|
||||
<li>TKLEXT : Supports exntended TKL messages for spamfilter support.</li>
|
||||
<li>NICKIP : Adds an IP parameter to the NICK message, which is the base64 encoding of the user's ip address (in network byte order). Requires NICKv2.</li>
|
||||
<li>NICKCHARS : Indicates the set of enabled nickchar options (see the regular documention for info about this).</li>
|
||||
<li>CHANMODES : (Not required to be sent) This is the same as the CHANMODES value in the 005 for client connections. Useful for autodetecting things like what modes are valid for ChanServ MLOCK, for example.</li>
|
||||
<li>CLK : Supports an extra field in NICK for sending the cloaked host (not vhost).</li>
|
||||
<li>ESVID : Supports arbitrary values instead of just numeric timestamps for the services identifier field.</li>
|
||||
</ul>
|
||||
<p>The syntax examples here follow the conventions for TOKEN and also NS in cases of server-only messages.</p>
|
||||
<h2><a name="S2_3"></a>2.3 SERVER - Server Negotiation</h2>
|
||||
<p><b>Note:</b> This message is also used for introducing additional servers, the format of this message in those cases is described later.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>SERVER <i>server.name</i> 1 :<i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i> <i>server description</i></tt></p>
|
||||
<p><b>Syntax (with VL and NS):</b> <tt>SERVER <i>server.name</i> 1 :U<i>protocolversion</i>-<i>protocolflags</i>-<i>servernumeric</i> <i>server description</i></tt></p>
|
||||
<p>The literal 1 in the parameter list is the hopcount parameter. Since you are a direct link, your own hopcount will be 1.</p>
|
||||
<p>The server.name is the same as that in the remote server's link:: block. When received from unreal servers, this will be the value of that server's me::name. The protocol version is the numeric protocol version (2306 for example), and the protocol flags are the server's compilation flags (described below). These two fields are checked against the deny version {} blocks in the remote server's configuration. A value of 0 for either field prevents deny version{} checking for that field. The server description can be anything. When received from unreal servers, it'll be the value of me::description.</p>
|
||||
<p>The following version numbers have been used previously:</p>
|
||||
<ul>
|
||||
<li>2311 - Unreal 3.2.10</li>
|
||||
<li>2310 - Unreal 3.2.9</li>
|
||||
<li>2309 - Unreal 3.2.6, 3.2.7, 3.2.8</li>
|
||||
<li>2308 - Unreal 3.2.5</li>
|
||||
<li>2307 - Unreal 3.2.4</li>
|
||||
<li>2306 - Unreal 3.2.3</li>
|
||||
<li>2305 - Unreal 3.2.2</li>
|
||||
<li>2304 - Unreal 3.2.1</li>
|
||||
<li>2303 - Unreal 3.2beta* through 3.2 Release</li>
|
||||
<li>2302 - Unreal 3.1.1 through 3.1.4</li>
|
||||
<li>2301 - Unreal 3.1 Release</li>
|
||||
<li>2300 - Unreal 3.0 Release</li>
|
||||
</ul>
|
||||
<p>The compile flags as specified in protocol flags are:</p>
|
||||
<ul>
|
||||
<li>c : Server is chrooted (#define CHROOTDIR).</li>
|
||||
<li>C : Server has command line config (-f option) enabled (#define CMDLINE_CONFIG).</li>
|
||||
<li>D : Server is in debugmode (#define DEBUGMODE).</li>
|
||||
<li>F : Using filedescriptor lists.</li>
|
||||
<li>h : Server is compiled with hub support (#define HUB or answer "Hub" to relevant ./Config prompt).</li>
|
||||
<li>i : Server shows invisible users in /TRACE.</li>
|
||||
<li>n : NOSPOOF (pingcookies) is enabled (#define NOSPOOF or answer "Yes" to relevant ./Config prompt).</li>
|
||||
<li>V : Server is using valloc().</li>
|
||||
<li>W : Windows IRCd.</li>
|
||||
<li>Y : Syslog logging enabled.</li>
|
||||
<li>6 : Server has IPv6 support (#define INET6 or answer "yes" to relevant ./Config prompt).</li>
|
||||
<li>X : Server has badword stripping (user and channel modes +G) (#define STRIPBADWORDS).</li>
|
||||
<li>P : Server is using poll().</li>
|
||||
<li>e : Server has SSL Support (#define USE_SSL or answer "yes" (and have ssl libraries installed) to relevant ./Config prompt).</li>
|
||||
<li>O : Server has OperOverride enabled (#undef NO_OPEROVERRIDE or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>o : Server has disabled Oper verify (#undef OPEROVERRIDE_VERIFY or answer "no" to relevant ./Config prompt).</li>
|
||||
<li>Z : Server has ziplink support (#define ZIP_LINKS or answer "yes" to relevant ./Config prompt AND have the zlib dev libraries).</li>
|
||||
<li>E : Server has extended channel mode support.</li>
|
||||
<li>3 : 3rd party modules are loaded or some system libraries are wonky.</li>
|
||||
<li>m : Private message handling is 'tainted' (one or modules registered a USERMSG hook).</li>
|
||||
<li>M : Channel message handling is 'tainted' (one or modules registered a CHANMSG hook).</li>
|
||||
<li>Additional Version flags can be added by 3rd-party modules.</li>
|
||||
</ul>
|
||||
<h2><a name="S2_4"></a>2.4 EOS - End Of Synch (TOKEN: ES)</h2>
|
||||
<p><b>Syntax:</b> ES</p>
|
||||
<p>Marks the end of the synching process. This is really optional, but it might be a good idea to send it anyway when you really are done synching. Once you send this, unreal will announce "Client connecting" or "Client exiting" notices (to those with snomask +F) for users (unless your server is U:Lined), and joins will be counted toward channel flood controls (chanmode +f).</p>
|
||||
<p>Sending EOS only marks your server as synched, but does not do so for servers behind you. EOS would need to be sent on those servers' behalf as well.</p>
|
||||
<h2><a name="S2_5"></a>2.5 NETINFO - Network Information (TOKEN: AO)</h2>
|
||||
<p><b>Syntax:</b> AO <i>maxglobal</i> <i>currenttime</i> <i>protocolversion</i> <i>cloakhash</i> 0 0 0 :<i>networkname</i></p>
|
||||
<p>This tells the other server your current network configuration. The max global is the highest number of concurrent users network-wide that this server has seen. The current time is a timestamp value. Protocolversion is the same as that in the SERVER command. Cloakhash is a hash representing the configured cloak keys. It may be a * if you are implementing services. The network name is that specified in set::network-name. The cloak-prefix is currently not sent here (and thus unreal won't generate warning for mismatching cloak prefixes, but they should be the same anyway).</p>
|
||||
<p>It is NETINFO, not EOS, that triggers the "Link bla bla bla is now synched" notices, but NETINFO does not imply synching is actually complete (see EOS).</p>
|
||||
<hr/>
|
||||
<h1><a name="S3"></a>3 User Operations</h1>
|
||||
<p>One important function of servers is it must notify all other servers about all of the users behind it. These commands represent the operations that can result in the change of a user's global state.</p>
|
||||
<h2><a name="S3_1"></a>3.1 NICK - User Introduction and Nick Change (TOKEN: &)</h2>
|
||||
<p><b>Syntax (nick change):</b> <tt>:<i>oldnick</i> & <i>newnick</i> :<i>timestamp</i></tt></p>
|
||||
<p>This format of the NICK message indicates an existing user is changing his or her nickname. If a collision occurs, see the section on Nick Collisions below. The timestamp is the new nickname's timestamp.</p>
|
||||
<p><b>Syntax (normal):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> :<i>realname</i></tt>
|
||||
<p><b>Syntax (NICKv2+NICKIP):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>nickipaddr</i> :<i>realname</i></tt></p>
|
||||
<p><b>Syntax (NICKv2+NICKIP+CLK):</b> <tt>& <i>nick</i> <i>hopcount</i> <i>timestamp</i> <i>username</i> <i>hostname</i> <i>server</i> <i>service-identifier-token</i> <i>+usermodes</i> <i>virtualhost</i> <i>cloakhost</i> <i>nickipaddr</i> :<i>realname</i></tt>
|
||||
<p><b>Note:</b> Because each server normally does its own cloak generation, Unreal does not expect to receive NICK messages with the CLK info, so do not send it. It will send this info to a server it has received a PROTOCTL CLK from however.</p>
|
||||
<p>This format of the NICK message introduces a new user to the network. If PROTOCTL VHP is enabled, the user's cloaked host is put in the virtualhost field, otherwise it'll be * unless the user is +t. With the addition of CLK, VHP is no longer necessary for determining the cloak host.</p>
|
||||
<h3><a name="S3_1_1"></a>3.1.1 Nick Collisions</h3>
|
||||
<p>A nick collision occurs when a server receives a NICK message (or & token) introducing a user that the server already sees on the network. When a collision occurs, one or both of the colliding clients must be disconnected. The timestamp is examined to determine which client loses. The client with the earlier timestamp remains. If both clients have equal timestamps, both are removed. Currently, Unreal handles NICK collisions both passively and agressively:</p>
|
||||
<ul>
|
||||
<li><b>Aggressive Handling:</b> The server actively sends a KILL message back across the link to terminate that end's client.</li>
|
||||
<li><b>Passive Handling:</b> Upon receipt of a NICK message that should "win", the server simply silently exits it's own client.</li>
|
||||
</ul>
|
||||
<h2><a name="S3_2"></a>3.2 MODE, UMODE2 - User Mode Change (TOKEN: G or |)</h2>
|
||||
<p><b>Syntax (MODE):</b> <tt>:<i>user</i> G <i>user</i> <i>modechange</i></tt></p>
|
||||
<p><b>Syntax (UMODE2):</b> <tt>:<i>user</i> | <i>modechange</i></tt></p>
|
||||
<p>This indicates a usermode change. The modechange can consist of zero or more strings of characters, each prefixed with either a + or -; the only delimiter between them being said + or -. If no + or - is at the beginning of the mode string, a + should be implied.</p>
|
||||
<p>Some user modes are never sent between servers. Specifically, usermode +s and +O are not sent between servers. Modules can define additional usermodes that also might not be sent between servers. The UMODE2 saves bandwidth by not including the redundant target field for usermode changes, so use it when possible.</p>
|
||||
<h2><a name="S3_3"></a>3.3 QUIT - User Disconnect (TOKEN: ,)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>user</i> , :<i>reason</i></tt></p>
|
||||
<p>This command indicates that a user has disconnected. The reason field is filled in with the reason the user disconnected, which will be any of: quit message provided by the user in a /quit command, kill message for local operator kills, "Client exited" if the user does a brutal quit (clean (by TCP's definition) disconnect without sending a QUIT message), or a socket error message if present.</p>
|
||||
<p>The QUIT message must NOT be prefixed when passing on to other servers. Only local user quit messages are affected by set::prefix-quit.</p>
|
||||
<h2><a name="S3_4"></a>3.4 KILL - Force Disconnect (TOKEN: .)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> . <i>target</i> :<i>killpath</i>!<i>source</i> (<i>reason</i>)</tt></p>
|
||||
<p>Used to indicate that an operator has used KILL on a user not on the same server. Anything beyond the last ! in the kill path is used as the reason. The source (reason) part is simply a standard used by Unreal. As each server passes on a KILL message, it usually prepends the bottommost part (up to the first .) of it's name followed by a ! character. When unreal receives a KILL from a directly connected irc operator, it will usually add that oper's vhost (or realhost if -x) as the first hop in the kill path, then follow with it's own name as mentioned before if it is passing to another server.</p>
|
||||
<p>A server can also send KILLs on it's own. This is done in cases involving nickname collisions, fake senders, bad direction, and other cases of protocol errors. Usually, in these cases, the server puts it's own name as the source, and also prefixes with <i>bottompart</i>! like for any other ircop on that server. For example: @3 . someone :irc!irc.example.com (Nick collision)</p>
|
||||
<h2><a name="S3_5"></a>3.5 SETHOST/CHGHOST - Change virtual host (TOKEN: AA or AL)</h2>
|
||||
<p><b>Syntax (SETHOST):</b> <tt>:<i>source</i> AA <i>newvhost</i></tt></p>
|
||||
<p><b>Syntax (CHGHOST):</b> <tt>:<i>source</i> AL <i>target</i> <i>newvhost</i></tt></p>
|
||||
<p>Indicates the change of a user's virtual host. Currently, servers are expected to assume UMODE2 +xt on the target user in both commands. (In the case of SETHOST, the target is the sender.) Servers using PROTOCTL VHP will receive the cloaked host in a SETHOST message when a user activates his cloaked host. A server can also send CHGHOST (from one of it's opered clients) to change a user's hostname. This is generally used by HostServ implementations. To disable a cloaked host, use CHGHOST to set the user's virtual host equal to his real host, or use SVSMODE -xt, but the latter requires services.</p>
|
||||
<h2><a name="S3_6"></a>3.6 SETIDENT/CHGIDENT - Change a user's username (TOKEN: AD or AZ)</h2>
|
||||
<p><b>Syntax (SETIDENT):</b> <tt>:<i>source</i> AD <i>newusername</i></tt></p>
|
||||
<p><b>Syntax (CHGIDENT):</b> <tt>:<i>source</i> AZ <i>target</i> <i>newusername</i></tt></p>
|
||||
<p>Indicates the change of a user's username. No usermode change is associated with this. Unreal does not use a distinguished virtual username, so servers should only keep the original username (from the NICK message) if they intend to allow the user to reset the original username. Servers can use CHGIDENT to change a user's username.</p>
|
||||
<h2><a name="S3_7"></a>3.7 SETNAME/CHGNAME - Change a user's realname (TOKEN: AE or BK)</h2>
|
||||
<p><b>Syntax (SETNAME):</b> <tt>:<i>source</i> AE :<i>newrealname</i></tt></p>
|
||||
<p><b>Syntax (CHGNAME):</b> <tt>:<i>source</i> BK <i>target</i> :<i>newrealname</i></tt></p>
|
||||
<p>Indicates the change of a user's realname. No usermode change is associated with this. Unreal does not use a distinguished virtual realname, so servers should only keep the original realname (from the NICK message) if they intend to allow the user to reset the original realname. Servers can use CHGNAME to change a user's username. Note that servers must NOT check that the sender be an IRCop in SETNAME - normal users are permitted to use SETNAME.</p>
|
||||
<h2><a name="#S3_8"></a>3.8 WHOIS - User Information (TOKEN: #)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> # [<i>from-server</i> ]<i>nick</i></tt></p>
|
||||
<p>Requests the information on a user. This works exactly like the user /whois command - in fact, the source parameter must be a user, or the command will do nothing. <i>from-server</i> is the server to request the information from; if a server recives a WHOIS message without this parameter, it should return its own information on the user, otherwise it should pass the message to the given server. Note that <i>from-server</i> may name a user instead of a server (such as when a user uses /whois nick nick), in which case the the nick should be interpreted as naming the server that user is on. <i>nick</i> may be several users seperated by commas, but may not contain wildcards.</p>
|
||||
<p>The reply to a WHOIS message uses the same numeric replies as the user command.</p>
|
||||
<hr/>
|
||||
<h1><a name="S4"></a>4 Server Operations</h1>
|
||||
<p>This is different from server negotiation. Negotiation is when you are first connecting. Server introduction is used for introducing additional servers behind an existing server (aka hubbing). Hubbing is limited as specified by the hub, leaf, and leafdepth parameters in the link block and attempted violation of a hub restriction results in termination of the link. If no hub or leaf directive is given your server is a leaf by default, so any introduction of any server behind you would be an automatic drop. U:Lines don't matter here; services must be configured as a hub in the link block. The reason is U:Line is a permission rule, but hub privilege is a network structure rule.</p>
|
||||
<h2><a name="S4_1"></a>4.1 SERVER - Server Introduction (TOKEN: ')</h2>
|
||||
<p><b>Note: This command is also used for negotiation. Be warned that the token for this command is NOT VALID at that time! See section 2.3 for the syntax for negotiation.</b></p>
|
||||
<p><b>Syntax (without PROTOCTL NS):</b> <tt>:<i>source</i> SERVER <i>new.server</i> <i>hopcount</i> :<i>description</i></tt></p>
|
||||
<p><b>Syntax (with PROTOCTL NS):</b> <tt>@<i>sourcenumeric</i> SERVER <i>new.server</i> <i>hopcount</i> <i>numeric</i> :<i>description</i></tt></p>
|
||||
<p>The command indicates that the server named new.server is being introduced by the source (the source is the server which new.server is directly linked to). The hopcount will be the number of links the receiving server would have to cross to reach new.server. In other words, new.server introduced itself with a hopcount of 1, and as the SERVER message is passed along, hopcount is incremented.</p>
|
||||
<p>As an example, a services server faking a SERVER message for JUPE functionality would use a hopcount of 2.</p>
|
||||
<h2><a name="S4_2"></a>4.2 SQUIT - Server Removal (TOKEN: -)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> SQUIT <i>server.name</i> <i>:reason</i></tt></p>
|
||||
<p>From an IRCop or when server.name is not behind the source, this command requests the removal of the specified server.name. The command in this case is treated very much like KILL in the respect that the message is broadcasted to all servers, except server.name and any servers behind it. When the SQUIT reaches server.name's uplink, that server closes the link to server.name (which would then generate it's own SQUIT on behalf of it's uplink for the servers behind it).</p>
|
||||
<p>A server can also use SQUIT in the same manner as QUIT to note the removal of a server behind it, or that it itself is quitting. In the former case, server.name is behind source, and the message is forward on to all other servers. In the latter case, source and server.name are equal, the receiving server closes the link and forwards the SQUIT message.</p>
|
||||
<p>Unreal closes a direct link by simply sending an ERROR message and then closing the TCP connection. This typically causes the other end to generate an SQUIT bearing the message "Client exited" or similar, however, the ERROR will usually cause the server to send a message to all IRCops.</p>
|
||||
<h2><a name="S4_3"></a>4.3 SDESC - Server Description (TOKEN: AG)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AG :<i>newdesc</i></tt></p>
|
||||
<p>The server to which source is connected to should have it's description updated to newdesc. This does NOT include the VL inforamtion.</p>
|
||||
<h2><a name="S4_4">4.4 PING - Live Connection Query (TOKEN: 8)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>8 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to check if a connection is still live if it has been "quiet" for a certain amount of time. Typically, unreal will send PING requests at intervals determined by the class::pingfreq setting. PINGs originating from the direct uplink will use the token, but it seems PINGs originating from a distant server will not.</p>
|
||||
<p>The response to a PING is sent with the <a href="#S4_5">PONG</a> command.</p>
|
||||
<p>When receiving a two-parameter PING, the second parameter is the target. If the target isn't you, you can either reply on behalf of that target (using its name instead of yours), or if there is a real connection representing the target, forward the PING to the target.</p>
|
||||
<h2><a name="S4_5">4.5 PONG - Live Connection Reply (TOKEN: 9)</a></h2>
|
||||
<p><b>Syntax:</b> <tt>9 <i>source</i>[ :<i>destination</i>]</tt></p>
|
||||
<p>Used to respond to a <a href="#S4_4">PING</a> query.</p>
|
||||
<p><b>Responding to a ping:</b> Once a PING is received, you usually have an amount of time to respond equal to your class::pingfreq. The correct response will always have two parameters. If you received one parameter, then the received parameter becomes the second parameter of your response, and the first parameter is your server name. If you received two parameters, the response returns both parameters in reverse order.</p>
|
||||
<p>For example, the response to <tt>8 uplink.server</tt> is <tt>9 my.name uplink.server</tt>, while the response to <tt>PING distant.server your.server</tt> is <tt>9 your.server distant.server</tt>. Unreal typically includes a : prior to the last parameter. This isn't required if that parameter contains no spaces, but it is especially important to not include the colon when reversing the parameters, or else Unreal mistake it for a single-parameter PONG.
|
||||
<p>If a two-parameter PONG is received, the second parameter names the target. If the target is not you, and a real connection represents that target, you should forward the PONG message via that connection.</p>
|
||||
<h2><a name="#S4_6"></a>4.6 STATS - Server Stats (TOKEN: 2)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> 2 [<i>type</i> [<i>server</i>] [<i>extended-params</i>]]</tt></p>
|
||||
<p>Requests statistics or configuration information from a server. This command is used to transport cross-server STATS requests from users (eg: /stats o other.server), and should only be sent from a user (not a server). With no parameters, this will cause unreal to simply dump its help output. <i>type</i> is the type of stats to request, <i>server</i> names a server (or a user on that server) to request stats from, and <i>extended-params</i> is used to filter output from STATS G, etc. When received, it is up to the receiver to determine what stats to support and how to reply, but generally numeric replies are used. For the list of unreal's stats types, type /stats in a client for the helptext dump.</p>
|
||||
<p><b>Note:</b> Stats set as oper-only (see set::oper-only-stats) will be refused from a server. In this case, it will be necessary to send the stats request from a psuedo-oper (such as a services agent, etc) for services/stats/etc.</p>
|
||||
<hr/>
|
||||
<h1><a name="S5"></a>5 Channel Operations</h1>
|
||||
<p>These commands deal with the state of channels across the network. Unreal only supports Network Channels, where the first character is a # character.</p>
|
||||
<h2><a name="S5_1"></a>5.1 SJOIN - Channel Burst (TOKEN: ~)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> ~ <i>timestamp</i> <i>channel</i> +<i>modes</i>[ <i>modeparams</i>] :<i>memberlist</i> <i>&ban</i> <i>"exempt</i> <i>'invex</i></tt></p>
|
||||
<p>Timestamp is the channel timestamp and can be !b64 as defined by PROTOCTL SJB64. Modes should only include those in the last three mode sets listed in CHANMODES. Modeparams is one parameter for each mode character that requires one. Memberlist is a series of users (all of which must at least be behind the server sending the SJOIN), each user is prefixed with one or more characters indicating their status. Owners (+q) are prefixed with *, admins (+a) ~, ops (+o) @, halfops (+h) %, voices (+v) +. Normal users are not prefixed with anything. Ban, ban exception, and invite exception masks are also included, with bans prefixed with &, ban exceptions prefixed with ", and invite exceptions with '. Note that when a &, " or ' is encountered as the first character, further processing of ~, *, @, %, or + characters must not continue because ban, exempt, and invite masks can contain any of those characters. (Plus it's just not right for a ban mask to be marked as a channel admin...)</p>
|
||||
<p>If the channel didn't already exist it is created with the information given in the SJOIN. Otherwise the timestamp is used to determine how the SJOIN information is handled. As a given, all members are joined into the channel, regardless. The mode information (modes, modeparams, memberlist prefixes, bans, exempts, and invites) is subject to the timestamp rules:</p>
|
||||
<ul>
|
||||
<li>If the channel's current timestamp is equal to the timestamp in SJOIN, then the mode information is merged.</li>
|
||||
<li>If the channel's current timestamp is less than the SJOIN timestamp, then the mode information is ignored.</li>
|
||||
<li>If the channel's current timestamp is greater than the SJOIN timestamp, then the channel's existing mode information is cleared (for example, deop, etc all local clients), and the SJOIN mode information is added.</li>
|
||||
</ul>
|
||||
<p>When merging modes, conflicting modes (including +p vs +s, differing +l limits or +k keys, etc) are handled as follows:</p>
|
||||
<ul>
|
||||
<li><b>Private (+p) vs. Secret (+s):</b> Secret (+s) is preferred. Private (+p) is removed. (Note: there is a <a href="http://bugs.unrealircd.org/view.php?id=2391">bug</a> in Unreal versions prior to 3.2.3 in which a desynch will occur in which one side is +p and the other is +s. Update to Unreal 3.2.4 if you have problems with this.)</li>
|
||||
<li><b>Strip Color (+S) vs. Block Color (+c):</b> Block (+c) is preferred. Strip (+S) is removed. (Note: Bug for +p vs. +s in prior unreal versions apply here as well.)</li>
|
||||
<li><b>Channel Limit:</b> Numericly larger limit is preferred (for example, +l 30 versus +l 15 : +l 30 wins).</li>
|
||||
<li><b>Channel Key:</b> "Larger" key (as defined by strcmp) is preferred (for example, +k moo versus +k meow : +k moo wins).</li>
|
||||
<li><b>Channel Link:</b> "Larger" link name (as defined by stricmp - not case sensitive) is preferred (for example, +L #moo versus +L #meow : +L #moo wins, but +L #Meow versus +L #meow : values are equal).</li>
|
||||
<li><b>Flood String:</b> Not really sure on this. I think larger value in each component wins.</li>
|
||||
<li><b>Join-Throttle:</b> Highest of time period wins, if equal, highest of join amount wins (so +j 3:40 beats +j 5:20 but +j 5:20 beats +j 3:20).</li>
|
||||
<li>Parameterized modes in third party modules will define their own conflict resolution formula.</li>
|
||||
</ul>
|
||||
<h2><a name="S5_2"></a>5.2 JOIN - Channel Join (TOKEN: C)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> C <i>#channel</i></tt></p>
|
||||
<p>Indicates a user has joined a channel. Only one channel is sent this way, and the key is not sent even if the user gave one one joining. If the channel parameter is the special "0" case, the server must interpret the message as a PART for all channels the user is on.</p>
|
||||
<h2><a name="S5_3"></a>5.3 PART - Channel Part (TOKEN: D)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> D <i>#channel</i>[ :<i>reason</i></tt>]</p>
|
||||
<p>Indicates a user has left a channel. Only one channel is sent this way. The reason parameter may be left out if no reason was given.</p>
|
||||
<h2><a name="S5_4"></a>5.4 KICK - Channel Kick (TOKEN: H)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> H <i>#channel</i> <i>user</i> :<i>reason</i></tt></p>
|
||||
<p>Orders the forced removal of user from #channel with the given reason. When updating state for this command, it should be the same as if :user PART #channel had been received - the user is removed from #channel's memberlist.</p>
|
||||
<h2><a name="S5_5"></a>5.5 MODE - Channel Mode (TOKEN: G)</h2>
|
||||
<p><b>Note:</b> This is the same command as that used for usermode changes.</p>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> G <i>#channel</i> <i>modechange</i> <i>modeparams</i>[ <i>timestamp</i>]</tt></p>
|
||||
<p>Changes the specified modes on the given channel. If the source is a server and the last parameter is numeric, it is interpreted as timestamp (although it can also be consumed as a parameter for modes. For example: :server.name MODE #channel +l 4 <-- 4 will be a timestamp and the +l parameter). When a mode change is timestamped in this way, the mode is treated as it is with SJOIN: the MODE message is ignored if the timestamp is greater than the channel timestamp. (If the timestamp is equal, the mode is simply added replacing any conflicting modes already in place.)</p>
|
||||
<p>A services implementation can easily clear all entries in a list mode such as bans with SVSMODE (see below).</p>
|
||||
<h2><a name="S5_6"></a>5.6 INVITE - Invite a user to a channel (TOKEN: *)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> * <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>Sends to target an invitation to join #channel. If the source is a channel operator on #channel, or a U:Lined server, the invitation grants the user the temporary ability to join the channel regardless of any bans or some restricting channel modes (not +O or +A).</p>
|
||||
<h2><a name="S5_7"></a>5.7 SAJOIN - Channel Force Join (TOKEN: AX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AX <i>targetuser</i> <i>#channel</i></tt></p>
|
||||
<p>This requests the forced join of targetuser to #channel. This type of forced join overrides bans, and most modes. The server to which targetuser is connected to must actually acknowledge the join for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAJOIN was targeted at a service client, in which case it should be ignored...</p>
|
||||
<h2><a name="S5_8"></a>5.8 SAPART - Channel Force Part (TOKEN: AY)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AY <i>targetuser</i> <i>#channel</i>[ :<i>reason</i>]</tt></p>
|
||||
<p>This requests the forced part of targetuser from #channel. This is slightly different from a KICK in that the user's removal is announced with PART. The server to which targetuser is connected to must actually acknowledge the part for it to occur. Service implementations may ignore this command, as they would only ever receive it if an SAPART was targeted at a service client, in which case it should be ignored...</p>
|
||||
<p>The reason field is optional. If provided the acknowledging PART message should prefix the message with "SAPart:".</p>
|
||||
<h2><a name="S5_9"></a>5.9 SAMODE - Channel Force Mode (TOKEN: o)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> o <i>#channel</i> <i>modechange</i> <i>modeparams</i></tt></p>
|
||||
<p>This has the same parameters as for MODE. The only difference is that servers probably will never receive this (but is best to document just in case), and that absolutely NO permission checking is done on anything.</p>
|
||||
<h2><a name="S5_10"></a>5.10 TOPIC - Channel Topic (TOKEN: ) )</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ) <i>#channel</i> <i>nick</i> <i>timestamp</i> :<i>topic</i></tt></p>
|
||||
<p>Changes the channel topic information. This format is used when synching, as well as when a topic is changed normally. Nick is the user who changed the topic (depending on compile options, it can be just nick or a full nick!user@host), timestamp is when the change occured, and topic is the new topic text. Normally, only a newer timestamp will actually change the topic, but a U:Lined server can use an older timestamp as well (such as for TOPICLOCK).
|
||||
<hr/>
|
||||
<h1><a name="S6"></a>6 Services Commands</h1>
|
||||
<p>These are commands typically employed by a service implementation, in addition to some of the normal commands. All of the commands listed here require the sender to be correctly U:Lined. This means that the services server name must appear within a ulines {} block in the unrealircd.conf configuration for ALL servers in the network. All servers and clients behind a U:Lined server are themselves U:Lined.</p>
|
||||
<h2><a name="S6_1"></a>6.1 SVSKILL - Force Disconnect by Service (TOKEN: h)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> h <i>target</i> :<i>reason</i></tt></p>
|
||||
<p>This command is similar to KILL but differs in several ways. First of all: there is no mutilation of the reason value. The reason given is the exact reason used to generate QUIT messages sent to users. Second, it is silent; no server notice is generated in response to this command. Third, it can only be used by a U:Lined server or client (such as services).</p>
|
||||
<p>Because this command can be dangerous in the hands of an abusive person, service implementations should avoid granting humans control over the reason parameter. In cases of commands where a person has control over such parameter, either use a regular KILL instead, or otherwise modify the reason so that operators can be held accountable if necessary.</p>
|
||||
<h2><a name="S6_2"></a>6.2 SVSMODE, SVS2MODE - Force User Mode Change (TOKEN: n or v)</h2>
|
||||
<p><b>Syntax (SVSMODE):</b> <tt>:<i>source</i> n <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p><b>Syntax (SVS2MODE):</b> <tt>:<i>source</i> v <i>target</i> +<i>usermodes</i></tt></p>
|
||||
<p>Judging by these commands alone, you'd think they are identical. Both commands force a usermode change to occur. This is typically used by services to set +r on a user who has successfully identified. They differ in that SVS2MODE also sends the mode change to the user, while SVSMODE does not (hidden mode change).</p>
|
||||
<p>SVSMODE and SVS2MODE also give special treatment to usermode +d. Rather than setting the deaf mode like you might expect, SVS(2)MODE +d allows services to change a user's services stamp (which is given in the NICK message). This could allow services to set the service stamp to an easily identifiable value that could then be used to say "hey, this person identified already". The syntax of this is: +d <i>newservice-identifier-token</i> and can be combined with setting other usermodes as well. The deaf mode <b>can</b> be set by using +d without the service stamp parameter; however, in this case you <b>cannot</b> set the service stamp in the same SVS(2)MODE message.</p>
|
||||
<p><b>Note:</b> Do <b>NOT</b> use SVSMODE to remove IRCop status from a user. Use the SVSO command for that instead.</p>
|
||||
<p>Alternatively, target can name a channel. In this case, the mode change parameter can consist of a - character, followed by any or all of: b, e, I, q, a, o, h, or v. These characters cause the corresponding lists to be cleared of all entries. For example: SVSMODE #channel -b removes ALL bans from #channel, and SVSMODE #channel -qaohv turns ALL users on #channel into normal users (removes all owner, admin, op, halfop, and voice status). In this case, the uplink will acknowledge with a MODE listing the bans, etc that were removed.</p>
|
||||
<p>To completely clear a channel of all modes: MODE #channel -cfijklmnprstzACGMKLNOQRSTVu (plus any added by third-party module) followed by SVSMODE #channel -beIqaohv.</p>
|
||||
<h2><a name="S6_3"></a>6.3 SVSSNO, SVS2SNO - Forced SNomask Change (TOKEN: BV or BW)</h2>
|
||||
<p><b>Syntax (SVSSNO):</b> <tt>:<i>source</i> BV <i>target</i> +<i>snomasks</i></tt></p>
|
||||
<p><b>Syntax (SVS2SNO):</b> <tt>:<i>source</i> BW <i>target</i> +<i>snomask</i></tt></p>
|
||||
<p>Changes a user's snomasks. The difference between SVSSNO and SVS2SNO is the same as with SVSMODE versus SVS2MODE. If the user is not +s, you must add it via SVSMODE +s. For example:</p>
|
||||
<pre>:OperServ v someuser +s
|
||||
:OperServ BW someuser +ks</pre>
|
||||
<h2><a name="S6_4"></a>6.4 SVSNICK - Forced Nick Change (TOKEN: e)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> e <i>target</i> <i>newnick</i> :<i>newtimestamp</i></tt></p>
|
||||
<p>Forces the specified user to change his nick to newnick and also sets the nick timestamp to newtimestamp (so, for example, services could protect identified users from a nick collision by simply setting the nick timestamp to something way less than "now" - though currently this requires actually changing the nick too). SVSNICK requires the server to which the target is connected to acknowledge the nick change. If the user specified by newnick already exists, then target will be disconnected (even if it's something like a case-change).</p>
|
||||
<h2><a name="S6_5"></a>6.5 SVSJOIN - Forced Join (TOKEN: BX)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BX <i>target</i> <i>#channel</i></tt></p>
|
||||
<p>This is identical to SAJOIN with a few exceptions: 1) It is U:Line-only. 2) No opernotice on use. 3) Bans and restricting modes are respected, a prior INVITE message must be sent to cause bans to be ignored.</p>
|
||||
<h2><a name="S6_6"></a>6.6 SVSPART - Forced Part (TOKEN: BT)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BT <i>target</i> <i>#channel</i> :<i>reason</i></tt></p>
|
||||
<p>Also identical to SAPART with a few exceptions: no static prefix on the optional part reason, and no global notice, and requires a U:Line. Usage recommendation of SVSPART versus KICK is the same as for SVSKILL versus KILL.</p>
|
||||
<h2><a name="S6_7"></a>6.7 SVSO - Oper Permissions (TOKEN: BB)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BB <i>target</i> <i>flagchanges</i></tt></p>
|
||||
<p>This allows a service to add or remove IRCop permission flags for a user. Flagchanges is formatted similar to that of MODE with the exception that operflags are used instead of usermodes. If the change string consists only of -, then all oper permissions, usermodes, and snomasks are removed (as if the user had himself typed MODE nick -Oo).</p>
|
||||
<p>If you are granting IRCop permissions to a user who is not currently an IRCop, you should follow up with an SVSMODE +o or SVSMODE +O as appropriate. For example:</p>
|
||||
<pre>:OperServ BB somenick +o
|
||||
:OperServ BW somenick +cefknoqsSv
|
||||
:OperServ AL somenick local.oper.somethinghere.net
|
||||
:OperServ v somenick +Ohs </pre>
|
||||
<h2><a name="S6_8"></a>6.8 SVSNOOP - Oper Lockdown (TOKEN: f)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> f <i>(op)</i><i>server.name</i></tt></p>
|
||||
<p>The (op) parameter is either a + or - indicating if NOOP mode should be activated (+) or deactivated (-). When NOOP mode is activated, all IRCops on the server are deopered (including local operators) and the /oper command is disabled. IRCop privileges can still be granted through use of SVSO. On UnrealIRCd, it is not necessary to masskill all IRCops on the nooped server, as they are deopered automatically.</p>
|
||||
<h2><a name="S6_9"></a>6.9 SVSNLINE - RealName Ban (TOKEN: BR)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> BR <i>op</i> <i>reason</i> :<i>realname mask</i></tt></p>
|
||||
<p>Op is either + (add) or - (remove). In the case of +, reason is a space-escaped string (all space chars are encoded as _). If -, reason is ignored.</p>
|
||||
<h2><a name="S6_10"></a>6.10 SVSFLINE - File Ban (TOKEN: BC)</h2>
|
||||
<p><b>Syntax (add):</b> <tt>:<i>source</i> BC + <i>filemask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Syntax (remove):</b> <tt>:<i>source</i> BC - <i>filemask</i></tt></p>
|
||||
<p><b>Syntax (clear):</b> <tt>:<i>source</i> BC *</tt></p>
|
||||
<p>Adds or removes a DCCDENY item for the specified filemask on all servers. These DCCDENYs are hard dccdenies - the /dccallow command cannot override it. The last form removes all dccdenies added via SVSFLINE.</p>
|
||||
<hr/>
|
||||
<h1><a name="S7"></a>7 Messaging</h1>
|
||||
<p>What good is Internet Relay <b>CHAT</b> if users cannot <b>CHAT</b>? This section addresses the commands through which arbitrary user messages are sent.</p>
|
||||
<h2><a name="S7_1"></a>7.1 PRIVMSG, NOTICE - Simple Message Transmission (Token: ! or B)</h2>
|
||||
<p><b>PRIVMSG Syntax:</b> <tt>:<i>source</i> ! <i>target</i> :<i>message</i></tt></p>
|
||||
<p><b>NOTICE Syntax:</b> <tt>:<i>source</i> B <i>target</i> :<i>message</i></tt></p>
|
||||
<p>Sends a messages to the given target. The target either names a single client, or identifies a list of clients in which the message is to be sent to. The available targets include:</p>
|
||||
<ul>
|
||||
<li><i>nickname</i>: Names a single user to whom the message is delivered.</li>
|
||||
<li><i>nickname</i>@<i>servermask</i>: Also names a single user, but the message will only be delivered if the user is connected to a server matching the specified servermask. This is typically used for sending messages to services. The target must not be changed at any point along the path it must travel for delivery, even up to the final receipt of the message by the target. This allows the target to know it has been sent a message in this way.</li>
|
||||
<li>#<i>channelname</i>: Sends a message to all users on the specified channel (except when channel is a moderated auditorium (+mu), in which case the wierd +mu sending behavior goes off).</li>
|
||||
<li><i>modeprefix</i>#<i>channelname</i>: Sends a message to all users on the given channel having the given status or higher. For example: + means all voices, halfops, etc.</li>
|
||||
<li>$<i>servermask</i>: Sends a message to ALL users on all servers matching the specified servermask (known as a server broadcast message). The RFC requirements of having a TLD with no wildcards is not applied to U:Lined clients.</li>
|
||||
</ul>
|
||||
<p>Unreal does not support the #hostmask format.</p>
|
||||
<h2><a name="S7_2"></a>7.2 SENDUMODE, SMO - Usermode-based Delivery (TOKEN: AP or AU)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> AU <i>umode</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given mode. Only one usermode may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_3"></a>7.3 SENDSNO - SNomask-based Delivery (TOKEN: Ss)</h2>
|
||||
<p><b>Syntax:</b> <tt>@<i>servernumeric</i> Ss <i>snomask</i> :<i>message</i></tt></p>
|
||||
<p>Sends the specified message to all users with the given snomask. Only one snomask may be given. This is a server-only command if you can't tell from the sender prefix :) .</p>
|
||||
<p>The message will be displayed as coming from the receiving client's own server. It may be appropriate to add a "*** Notice (or other leader here) -- from blah:" if you wish to clarify where the message is from.</p>
|
||||
<h2><a name="S7_4"></a>7.4 CHATOPS - IRCop Chat (TOKEN: p)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> p :<i>message</i></tt></p>
|
||||
<p>Sends the message to all IRCops on all servers.</p>
|
||||
<h2><a name="S7_5"></a>7.5 WALLOPS - Wallop Chat (TOKEN: =)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> = :<i>message</i></tt></p>
|
||||
<p>Sends the message to all users with usermode +w, whether they are ircops or not.</p>
|
||||
<h2><a name="S7_6"></a>7.6 GLOBOPS - FailOp Chat (TOKEN: ])</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> ] :<i>message</i></tt></p>
|
||||
<p>Send the message to all IRCops with usermode +g.</p>
|
||||
<h2><a name="S7_7"></a>7.7 ADCHAT - Admin Chat (TOKEN: x)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> x :<i>message</i></tt></p>
|
||||
<p>Send the message to all Server and Network Admins (usermode +A).</p>
|
||||
<h2><a name="S7_8"></a>7.8 NACHAT - NetAdmin Chat (TOKEN: AC)</h2>
|
||||
<p><b>Syntax:</b> <tt>:<i>source</i> AC :<i>message</i></tt></p>
|
||||
<p>Send the message to all Network Admins (usermode +N).</p>
|
||||
<hr/>
|
||||
<h1><a name="S8"></a>8 Ban Control</h1>
|
||||
<p>Sometimes, you have the misfortune of encountering a user who has no purpose but to serve as an annoyance to your server or network. These commands transmit network-wide ban information amongst each other.</p>
|
||||
<h2><a name="S8_1"></a>8.1 TKL - Master Ban Control (TOKEN: BD)</h2>
|
||||
<p>The TKL command seems to have one oddity about it: the real ban source is included in the TKL command rather than in the sender prefix. Most likely this is done for synching reasons (so that the *line ban can be credited to the proper person even if he/she is offline). For this reason, the command syntax is given without any sender prefix at all. It is still permissible to use one, however.</p>
|
||||
<h3><a name="S8_1_1"></a>8.1.1 GLINE - Network-wide user@host ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + G <i>userpart</i> <i>hostpart</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - G <i>userpart</i> <i>hostpart</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide user@host bans, known as G:Lines. The GLINE command itself must not be used. The userpart and hostpart are the user portion and hostname portion of the ban mask. The expiretimestamp is 0 if the G:Line should not expire, otherwise it will expire at the given time. It is an absolute time, not relative, thus it's imperitive to have reasonably synchrnoized clocks or bans may be removed too early or even immediately!</p>
|
||||
<h3><a name="S8_1_2"></a>8.1.2 GZLINE - Network-wide IP ban</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Z * <i>ipmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Z * <i>ipmask</i> <i>source</i></tt></p>
|
||||
<p>Adds and Removes Network-wide IP bans, known as Global Z:Lines. The GZLINE command itself must not be used. Ipmask permits CIDR notation as well as wildcard masks.</p>
|
||||
<h3><a name="S8_1_3"></a>8.1.3 SQLINE, UNSQLINE - Network-wide Nickname ban (TOKEN: c or d)</h3>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + Q <i>hold</i> <i>nickmask</i> <i>source</i> <i>expiretimestamp</i> <i>settimestamp</i> :<i>reason</i></tt></p>
|
||||
<p><b>Add Syntax (SQLINE):</b> <tt>:<i>source</i> c <i>nickmask</i> :<i>reason</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - Q <i>hold</i> <i>nickmask</i> <i>source</i></tt></p>
|
||||
<p><b>Remove Syntax (UNSQLINE):</b> <tt>:<i>source</i> d <i>nickmask</i></tt></p>
|
||||
<p>In the TKL syntax, the hold parameter is either a * to mark the qline as a nick ban, or an H to mark it as a services hold. A services hold does not trigger qline rejection notice, and is typically used by NickServ to reserve registered nicks until they are released by the owner. The (UN)SQLINE syntax can only be used by a server, but any user can be used as the source for the TKL syntax. Unlike G and GZ lines, Q:Lines do not cause existing matching users to be disconnected or otherwise affected.</p>
|
||||
<p>The TKL syntax is preferred, since it is more flexible, but (UN)SQLINE is permitted for compatibility.</p>
|
||||
<h3><a name="S8_1_4"></a>8.1.4 SPAMFILTER - Message Spam Filtration System</h3>
|
||||
<p>Proper use of spamfilter in TKL commands requires use of PROTOCTL TKLEXT, which increases the number of parameters allowed in TKL.</p>
|
||||
<p><b>Add Syntax (TKL):</b> <tt>BD + F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestamp</i> <i>tklduration</i> <i>tklreason</i> :<i>regex</i></tt></p>
|
||||
<p><b>Remove Syntax (TKL):</b> <tt>BD - F <i>target(s)</i> <i>action</i> <i>source</i> 0 <i>settimestap</i> :<i>regex</i></tt></p>
|
||||
<p>Adds and Removes network-wide spamfilters. The SPAMFILTER command itself must not be used. See <a href="http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter">http://vulnscan.org/UnrealIrcd/unreal32docs.html#feature_spamfilter</a> for a list of valid targets. For actions, a single character is used to identify the action to be taken:</p>
|
||||
<ul>
|
||||
<li>K (kill) - The user is simply disconnected, with the reason given.</li>
|
||||
<li>S (tempshun) - A temporary shun is placed on the user. This shun is applied only to that user, and disappears if the user reconnects.</li>
|
||||
<li>s (shun) - A regular shun on the user's IP address is added. This causes all users with the same hostname to be shunned, but they will also stay shunned if they reconnect.</li>
|
||||
<li>k (kline) - A K:Line is added on the user's IP address.</li>
|
||||
<li>z (zline) - A Z:Line is added on the user's IP address.</li>
|
||||
<li>g (gline) - A G:Line is added on the user's IP address.</li>
|
||||
<li>Z (gzline) - A Global Z:Line is added on the user's IP address.</li>
|
||||
<li>b (block) - Messages (or users!) matching the filter are simply blocked.</li>
|
||||
<li>d (dccblock) - The user is prevented from sending files using DCC for the remainder of his session (in other words, until he quits).</li>
|
||||
<li>v (viruschan) - User is removed from all channels, joined to the viruschan as defined in conf, and cannot message anything but that channel.</li>
|
||||
<li>w (warn) - No action on the user is taken. Only the Spamfilter notice is sent to opers with snomask +S.</li>
|
||||
</ul>
|
||||
<h1><a name="S9">9 Base64 Tables</a></h1>
|
||||
<p>Unreal uses base64 encoding to allow saving bandwidth by encoding numbers in a more compact format. Unreal uses two different variations of base64, one used for the SJB64 PROTOCTL option (in NICK and SJOIN), and one used for NICKIP.</p>
|
||||
<h2><a name="S9_1">9.1 Table for SJB64 (NICK and SJOIN).</a></h2>
|
||||
<p>In NICK and SJOIN, remember that the timestamp will be prefixed with ! to signal a base64 timestamp.</p>
|
||||
<p>Just like in base10, the least significant "digit" is last.</p>
|
||||
<pre> 0 0 17 H 34 Y 51 p
|
||||
1 1 18 I 35 Z 52 q
|
||||
2 2 19 J 36 a 53 r
|
||||
3 3 20 K 37 b 54 s
|
||||
4 4 21 L 38 c 55 t
|
||||
5 5 22 M 39 d 56 u
|
||||
6 6 23 N 40 e 57 v
|
||||
7 7 24 O 41 f 58 w
|
||||
8 8 25 P 42 g 59 x
|
||||
9 9 26 Q 43 h 60 y
|
||||
10 A 27 R 44 i 61 z
|
||||
11 B 28 S 45 j 62 {
|
||||
12 C 29 T 46 k 63 }
|
||||
13 D 30 U 47 l
|
||||
14 E 31 V 48 m
|
||||
15 F 32 W 49 n
|
||||
16 G 33 X 50 o</pre>
|
||||
<h2><a name="S9_2">9.2 Table for NICKIP.</a></h2>
|
||||
<p>In this table, the IP is encoded in network byte order. In terms of IPs, this means the first byte of the address really is first. Each "digit" in the base64 encoded IP corresponds to 6 bits of the IP address.</p>
|
||||
<p>An IPv4 address is 32 bits, so 6 base64 "digits" are needed. Since base64 requires values to come in multiples of 4 "digits", padding characters (=) need to be added if a value comes up short. In the case of IPv4 addresses, two are needed.</p>
|
||||
<p>IPv6 addresses are 128-bit. They therefore need 22 base64 "digits" plus 2 pad characters.</p>
|
||||
<pre> 0 A 17 R 34 i 51 z
|
||||
1 B 18 S 35 j 52 0
|
||||
2 C 19 T 36 k 53 1
|
||||
3 D 20 U 37 l 54 2
|
||||
4 E 21 V 38 m 55 3
|
||||
5 F 22 W 39 n 56 4
|
||||
6 G 23 X 40 o 57 5
|
||||
7 H 24 Y 41 p 58 6
|
||||
8 I 25 Z 42 q 59 7
|
||||
9 J 26 a 43 r 60 8
|
||||
10 K 27 b 44 s 61 9
|
||||
11 L 28 c 45 t 62 +
|
||||
12 M 29 d 46 u 63 /
|
||||
13 N 30 e 47 v
|
||||
14 O 31 f 48 w (pad) =
|
||||
15 P 32 g 49 x
|
||||
16 Q 33 h 50 y</pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +1,8 @@
|
||||
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2.3)
|
||||
|
||||
Command Token
|
||||
------------------------------------------------------------------------------------------------
|
||||
PRIVATE !
|
||||
PRIVMSG !
|
||||
WHOIS #
|
||||
NICK &
|
||||
SERVER '
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
Protocol Version
|
||||
------------------------------------------------------------------------------------------------
|
||||
2311 3.2.10
|
||||
2310 3.2.9
|
||||
2309 3.2.6, 3.2.7, 3.2.8
|
||||
2308 3.2.5
|
||||
2307 3.2.4
|
||||
2306 3.2.3
|
||||
2305 3.2.2
|
||||
2304 3.2.1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
==[ Translations ]============================================================
|
||||
==[ Translations ]===========================================================
|
||||
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
documentation files. For now, only translations of unreal32docs.html and
|
||||
@@ -37,9 +37,8 @@ Upon successful completion you will also receive an @unrealircd.org
|
||||
forwarder email address, and of course your name will be in the docs.
|
||||
|
||||
If you want to start translating a document, please send an email to
|
||||
coders@lists.unrealircd.org and mention the language you are willing
|
||||
to translate to.. You will then receive an email back saying you can
|
||||
go ahead (or not). This is mainly to avoid multiple persons working
|
||||
on the same translation.
|
||||
syzop@unrealircd.com and mention the language you are willing to translate
|
||||
to.. You will then receive an email back saying you can go ahead (or not).
|
||||
This is mainly to avoid multiple persons working on the same translation.
|
||||
|
||||
==============================================================================
|
||||
=============================================================================
|
||||
|
||||
+408
-140
@@ -12,32 +12,38 @@
|
||||
.block_old { font-size: 14; }
|
||||
.set { font-weight: bold; }
|
||||
.desc { margin-left: 15px; }
|
||||
pre { font: "times new roman"; font-style: normal;}
|
||||
pre { font: "times new roman"; font-style: normal; background-color: #eeeeee;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<p style="background: #cc0000">NOTE: This documentation is about the <b>old
|
||||
series</b> (UnrealIRCd 3.2.x).
|
||||
If you are using UnrealIRCd 4 then check the
|
||||
<a href="https://www.unrealircd.org/docs/UnrealIRCd_4_documentation">UnrealIRCd 4 documentation</a>
|
||||
instead.</p>
|
||||
|
||||
<a href="unreal32docs.html">English</a> | German |
|
||||
<a href="unreal32docs.es.html">Spanish</a> |
|
||||
<a href="unreal32docs.hu.html">Hungarian</a> |
|
||||
<a href="unreal32docs.fr.html">French</a> |
|
||||
<a href="unreal32docs.gr.html">Greek</a>
|
||||
<a href="unreal32docs.ru.html">Russian</a> |
|
||||
<a href="unreal32docs.tr.html">Turkish</a> |
|
||||
<a href="unreal32docs.es.html">Spanish</a>
|
||||
<br><br>
|
||||
|
||||
<div align="center"><b><font size="7">UnrealIRCd</font></b><br>
|
||||
<font size="4"><a href="http://www.unrealircd.com">http://www.unrealircd.com</a></font><br>
|
||||
<font size="4">Version: 3.2.3 </font><br>
|
||||
<b>Letztes Dokumentation Update:</b> 2005-03-13</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<br>
|
||||
<font size="4">Version: 3.2.10.5</font><br>
|
||||
<b>Letztes Update dieses Handbuchs:</b> 2009-12-24</div>
|
||||
<b>Head Coders:</b> Stskeeps / codemastr / Syzop / Luke<font face="Helvetica,Arial" size="-1">/
|
||||
aquanight / WolfSage</font><br>
|
||||
<b>Contributors:</b> McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk<br>
|
||||
<b>Dokumentation</b><b>:</b> CKnight^ / Syzop<br>
|
||||
<b>Deutsche Übersetzung:</b> Stylus740 (irc.smart-irc.net)<br>
|
||||
<p>Aufgrund des wachsenden Umfangs der Dokumentation von UnrealIRCd3.2 wurde das
|
||||
Dokument auf HTML umgestellt, um leichter navigieren und besser
|
||||
Querverweisen folgen zu können. Um diese Dokumentation zu lesen, wird einer der
|
||||
nachfolgenden Browser benötigt. Aktuelle Dokumentationen sind erhältlich @ <a href="http://www.vulnscan.org/UnrealIrcd/unreal32docs.html">http://www.vulnscan.org/UnrealIrcd/unreal32docs.html</a>
|
||||
und eine FAQ @
|
||||
<a href="http://www.vulnscan.org/UnrealIrcd/faq/.">http://www.vulnscan.org/UnrealIrcd/faq</a>/.</p>
|
||||
<b>Deutsche Übersetzung:</b> LowDigit / Orginalübersetzung: stylus740<br>
|
||||
<p>Um diese Dokumentation zu lesen, ist einer der unten aufgeführten
|
||||
kompatiblen Browser erforderlich. Aktuelle Dokumentationen sind erhältlich @
|
||||
<a href="http://www.vulnscan.org/UnrealIRCd/unreal32docs.html">http://www.vulnscan.org/UnrealIRCd/unreal32docs.html</a>
|
||||
und eine FAQ @ <a href="http://www.vulnscan.org/UnrealIRCd/faq/.">http://www.vulnscan.org/UnrealIRCd/faq</a>/.</p>
|
||||
<p><b>Kompatible Browser: </b><br>
|
||||
<ul>
|
||||
<li>Opera 6.02
|
||||
@@ -68,9 +74,11 @@ und eine FAQ @
|
||||
-- 3.14. <a href="#feature_spamfilter"> Spamfilter</a><br>
|
||||
-- 3.15. <a href="#feature_cidr">CIDR<br>
|
||||
</a>
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Zeichensätze</a><a href="#feature_cidr"><br>
|
||||
-- 3.16. <a href="#feature_nickchars">Nick Zeichensätze<br>
|
||||
</a>-- 3.17 <a href="#feature_cgiirc">CGI:IRC Unterstützung<br>
|
||||
</a>-- 3.18 <a href="#feature_timesync">Zeitsynchronisation</a><a href="#feature_cidr"><br>
|
||||
</a>
|
||||
-- 3.17. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
|
||||
-- 3.19. <a href="#feature_other">Andere Features</a> <a href="#feature_other"><br>
|
||||
</a>
|
||||
4. <a href="#configuringyourunrealircdconf">Konfiguration der unrealircd.conf
|
||||
Datei</a><br>
|
||||
@@ -109,8 +117,10 @@ Konfigurationsdatei</a><br>
|
||||
---4.32. <a href="#aliasblock">Alias Block</a><br>
|
||||
---4.33. <a href="#helpblock">Help Block<br>
|
||||
</a>---4.34. <a href="#officialchannels"> Official Channels Block</a><br>
|
||||
---4.35. <a href="#spamfilter"> Spamfilter Block</a><br>
|
||||
---4.36. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.35. <a href="#spamfilter"> Spamfilter Block<br>
|
||||
</a>---4.36. <a href="#cgiirc">Cgiirc Block</a><br>
|
||||
---4.37. <a href="#setblock">Set Block -=- (networks/unrealircd.conf)</a><br>
|
||||
---4.38. <a href="#filesblock">Files Block</a><br>
|
||||
5. <a href="#addtlfiles">Additional Files</a><br>
|
||||
6. <a href="#userchannelmodes">User & Channel Modi</a><br>
|
||||
7. <a href="#useropercommands">User & Oper Befehlsliste<br>
|
||||
@@ -148,15 +158,17 @@ Verwendung des Textes mit anderer Software oder das Anbieten zusammen mit
|
||||
anderer Software ohne schriftliche Genehmigung des UnrealIRCd Entwicklungsteams
|
||||
ist streng verboten. Solange es der Benutzung von UnrealIRCd dient, darf dieses
|
||||
Dokument beliebig kopiert/gedruckt/veröffentlicht, jedoch nicht verändert
|
||||
werden. – Copyright UnrealIRCd Development Team 2002-2005</p>
|
||||
werden. – Copyright UnrealIRCd Development Team 2002-2006</p>
|
||||
<p>Bitte lesen Sie diese Anleitung, bevor Sie um Hilfe bitten und schauen Sie
|
||||
WIRKLICH erst ein mal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
||||
WIRKLICH erst einmal in die <a href="#faq">FAQ</a>, da rund 80% der Fragen dort
|
||||
beantwortet sind. Hilft
|
||||
dies alles nicht, kann bzgl. Support bei irc.ircsystems.net
|
||||
(Port 6667) Channel #unreal-support
|
||||
dies alles nicht, kann bzgl. Support bei irc.unrealircd.org
|
||||
(Port 6667) im Channel #unreal-support
|
||||
nach Unterstützung gefragt werden (Wir erwarten UNBEDINGT, dass zuvor Dokumentation
|
||||
und
|
||||
FAQ gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!). Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
||||
und <a href="#faq">
|
||||
FAQ</a> gelesen wurden und wir helfen nur zu UnrealIRCd, nicht zu Services!).
|
||||
Ebenso können Sie das Forum nutzen, welches über <a href="http://forums.unrealircd.com/" target="_blank">http://forums.unrealircd.com</a>
|
||||
erreichbar ist. Im Falle eines echten Bugs (z.B. einem Crash) bitte Nachricht an
|
||||
<a href="http://bugs.unrealircd.org" TARGET="_blank">http://bugs.unrealircd.org</a>.</p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="notesonolder">1.1 – Anmerkungen zu Upgrade/Mixing 3.1.x -> 3.2</a> </b></font><br>
|
||||
@@ -179,7 +191,7 @@ Upgrade von 3.2 Versionen</a></b></font><br>
|
||||
<p>Der empfohlene Weg für ein Upgrade ist:<br>
|
||||
Linux:<br>
|
||||
<ul>
|
||||
<li>Altes UnrealIRCd Verzeichnis umbenennen (oder es wird im nächsten Schritt
|
||||
<li>Altes UnrealIRCd Verzeichnis umbenennen (ansonsten wird es im nächsten Schritt
|
||||
überschrieben)
|
||||
<li>Neue UnrealIRCd Version entpacken und "./Config" und "make"
|
||||
laufen lassen (*NIX).
|
||||
@@ -204,14 +216,16 @@ Bug gemeldet wird!</p></div>
|
||||
<li><b>*NIX Versionen:</b>
|
||||
<ul>
|
||||
<li>Linux (2.2.*, 2.4.*, 2.6.*)
|
||||
<li>FreeBSD (4.*, 5.*)
|
||||
<li>FreeBSD (4.*, 5.*, 6.*)
|
||||
<li>NetBSD (2.*)
|
||||
<li>OpenBSD (3.7, 3.8, 3.9)
|
||||
<li>Solaris (9,10)
|
||||
</ul>
|
||||
<li><b>Windows Versionen:</b>
|
||||
<ul>
|
||||
<li>Windows 2000 (Pro, Server, Advanced Server)
|
||||
<li>WindowsXP (Home, Pro)
|
||||
<li>Windows XP (Home, Pro)
|
||||
<li>Windows 2003
|
||||
<li>Windows 7
|
||||
</ul>
|
||||
<li><b>Getestete Architektueren (Prozessoren):</b>
|
||||
<ul>
|
||||
@@ -223,12 +237,12 @@ Bug gemeldet wird!</p></div>
|
||||
</ul>
|
||||
<br>
|
||||
Im Falle, dass Unreal3.2 korrekt unter anderen Betriebssystemen läuft, bitte
|
||||
Details an <a href="mailto:coders@lists.unrealircd.com">coders@lists.unrealircd.com
|
||||
Details an <a href="mailto:coders@lists.unrealircd.org">coders@lists.unrealircd.org
|
||||
</a> senden. <p><b>Installationsanleitungen</b><br>
|
||||
Linux:<br>
|
||||
<ol>
|
||||
<li>gunzip -d Unreal3.2.2.tar.gz
|
||||
<li>tar xvf Unreal3.2.2.tar
|
||||
<li>gunzip -d Unreal3.2.X.tar.gz
|
||||
<li>tar xvf Unreal3.2.X.tar
|
||||
<li>cd Unreal3.2
|
||||
<li>./Config
|
||||
<li>Die hierbei angezeigten Fragen nach bestem Wissen beantworten. Allgemein ist
|
||||
@@ -252,7 +266,8 @@ erl
|
||||
die .conf Datei bezogen wird (die Neuanfängern momentan noch unbekannt sein
|
||||
dürfte).</p>
|
||||
<p>Dieser Abschnitt kann auch übersprungen werden, obwohl es sinnvoll ist ihn
|
||||
vor oder nach der Installation zu lesen.</p></div>
|
||||
vor oder nach der Installation zu lesen, weil man ansonsten Konzepte wie
|
||||
cloaking, snowmask etc. nicht verstehen wird..</p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_cloaking">3.1 - Cloaking</a></b></font></p><div class="desc">
|
||||
<p>Das Cloaking ist eine Möglichkeit, den echten Hostnamen vor Usern zu verbergen.
|
||||
@@ -269,7 +284,7 @@ einstellen k
|
||||
Modul mitgeliefert:<br>
|
||||
<b>cloak:</b><br>
|
||||
Hierbei handelt es sich um das neue offizielle Cloaking Modul, welches viel
|
||||
sicherer, als der alte Algorithmis ist. Es verwendet intern md5 und erfordert, dass 3
|
||||
sicherer, als der alte Algorithmus ist. Es verwendet intern md5 und erfordert, dass 3
|
||||
<b>set::cloak-keys::</b>
|
||||
gesetzt sind, die gemischt Kleinbuchstaben (a-z), Großbuchstaben (A-Z) und
|
||||
Ziffern (0-9) enthalten [z.B. "AopAS6WQH2Os6hfosh4SFJHs"] . Siehe auch
|
||||
@@ -278,18 +293,22 @@ example.conf f
|
||||
GEHEIM gehalten werden. Wenn jemand
|
||||
diese drei Keys kennt, kann er den geschützten Host erkennen und den realen
|
||||
Host ermitteln (was dem Usermodus +x sinnlos macht).</p>
|
||||
<p>Tipp: Wenn man auf *NIX Systemen arbeitet und Cloak Keys neu erstellt werden
|
||||
müssen, kann man in der Shell eingeben: '<font face="Courier New">./unreal
|
||||
gencloak</font>' und erhält als Ausgabe 3 zufällig erzeugte Strings, die man
|
||||
verwenden kann.</p>
|
||||
</div>
|
||||
<p><font size="+2"><b><a name="feature_modules">3.2 - Module</a></b></font></p><div class="desc">
|
||||
<p>UnrealIRCd unterstützt Module, was sehr nützlich
|
||||
ist, weil:<br>
|
||||
- Module können bei laufendem ircd geladen/ersetzt/gelöscht werden (durch /rehash). Dadurch können verschiedene Bugs gefixt
|
||||
oder neue Module hinzugefügt werden, ohne dass ein Neustart erforderlich ist!<br>
|
||||
oder neue Module hinzugefügt werden, ohne dass ein Neustart erforderlich ist.<br>
|
||||
- Andere Entwickler können weitere Module mit neuen Befehlen oder anderen
|
||||
Usermodi erstellen.<br>
|
||||
UnrealIRCd selbst enthält nur wenige Module. Durch eine Suche auf <a href="http://www.unrealircd.com"> www.unrealircd.com</a>
|
||||
(modules) oder per Google können weitere 3rd party Module gefunden werden.</p>
|
||||
<p>Achtung: Minimal müssen zwei Module geladen sein, oder der ircd wird nicht
|
||||
starten!<br>
|
||||
starten:<br>
|
||||
- das commands Modul: commands.so (oder commands.dll bei Windows)<br>
|
||||
- das cloaking Modul: üblicherweise cloak.so (oder cloak.dll bei Windows)</p>
|
||||
</div>
|
||||
@@ -338,7 +357,7 @@ die beispielsweise den Befehl <font face="Courier New" size="2">/register</font>
|
||||
an Chanserv weiterleitet, wenn der erste Parameter mit einem # beginnt oder an
|
||||
Nickserv, wenn der erste Parameter nicht mit einem # beginnt. (Im ersten Fall
|
||||
soll ein Channel registriert werden, im zweiten Fall ein Nickname)</p>
|
||||
<p>Aliases werden in alias Blocks in der Konfigurationsdatei definiert oder in
|
||||
<p>Aliases werden in <a href="#aliasblock"> alias Blocks</a> in der Konfigurationsdatei definiert oder in
|
||||
einer Include Datei mit den häufigsten Default Aliassen. </p></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_helpop">3.5 - Helpop</a></b></font></p><div class="desc">
|
||||
@@ -983,6 +1002,24 @@ die *lines/shuns (Default: 'Spam/advertising'). Mehrere Worte sind durch Undersc
|
||||
Channels, in den bei der Action 'viruschan' gejoined wird (Default: #help)<br>
|
||||
<b>set::spamfilter::virus-help-channel-deny</b> ermöglicht es, normale Joins in
|
||||
den virus-help-channel zu blockieren (Default: no)
|
||||
<p>
|
||||
<font size="+1"><b><a name="feature_spamfilter_slow">Erkennung langsamer
|
||||
Spamfilter</a></b></font><br>
|
||||
Ein Spamfilter Ausdruck (regex) kann einen IRCd beträchtlich verlangsamen. Das
|
||||
hängt davon ab, welcher Ausdruck verwendet wird (und wie dieser Ausdruck
|
||||
ausgewertet wird). Einige Spamfilter Ausdrücke sind sehr schnell und UnrealIRCd
|
||||
kann Tausende von ihnen pro Sekunde verarbeiten. Andere können extrem langsam
|
||||
sein und mehrere Sekunden für die Ausführung benötigen und dadurch den IRCd
|
||||
regelrecht einfrieren..<br>
|
||||
Zur Unterstützung gegen dieses Problem stellt Unreal eine Erkennung langsamer
|
||||
Spamfilter ('Slow Spamfilter Detection' bereit: Für jeden Spamfilter wird bei jeder Ausführung die hierzu benötigte
|
||||
Zeit überprüft. Wird ein
|
||||
bestimmter Grenzwert erreicht, warnt der IRCd oder entfernt einfach diesen Spamfilter.<br>
|
||||
Warnungen werden durch <b>set::spamfilter::slowdetect-warn</b> konfiguriert (Default:
|
||||
250ms) und die automatische Löschung durch <b>set::spamfilter::slowdetect-fatal</b>
|
||||
(Default: 500ms). Man kann beide Werte auf 0 setzen um die Erkennung langsamer
|
||||
Spamfilter zu deaktivieren.<br>
|
||||
Dieses Feature steht unter Windows derzeit noch nicht zur Verfügung.
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_cidr">3.15 - CIDR</a></b></font></p><div class="desc">
|
||||
@@ -991,7 +1028,7 @@ erm
|
||||
unter Verwendung von CIDR vergeben. Daher ist es möglich unter Verwendung eines
|
||||
CIDR basierten Banns auf einfache Weise ganze ISPs zu sperren. Unreal
|
||||
unterstützt CIDR sowohl für IPv4 als auch für IPv6. CIDR Masken können
|
||||
benutzt werden bei: allow::ip, ban user::mask, ban ip::mask, except ban::mask, except
|
||||
benutzt werden bei: allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask, except
|
||||
throttle::mask, und except tkl::mask (für gzline, gline, and shun). Zusätzlich
|
||||
kann CIDR bei /kline, /gline, /zline, /gzline, und /shun benutzt werden. Unreal
|
||||
verwendet die Standard Syntax von IP/bits, z.B. 127.0.0.0/8 (passt auf 127.0.0.0 - 127.255.255.255),
|
||||
@@ -1002,45 +1039,51 @@ und fe80:0:0:123::/64 (passt auf fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:f
|
||||
Zeichensätze/Sprachen in Nicknamen gestattet sein sollen. Dies wird festgelegt
|
||||
in <b> set::allowed-nickchars</b>.<br>
|
||||
Hier eine Liste der möglichen Einstellungen:<br>
|
||||
<table border="1" width="868">
|
||||
<tr><td width="98"><b>Name:</b></td> <td width="494"><b>Beschreibung:</b></td> <td width="254"><b>Character set/encoding:</b></td></tr>
|
||||
<tr><td width="98">catalan</td> <td width="494">Katalanische Zeichen</td> <td width="254">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">danish</td> <td width="494"> Dänische Zeichen</td> <td width="254"> iso8859-1
|
||||
<table border="1" width="868" height="902">
|
||||
<tr><td width="98" height="19"><b>Name:</b></td> <td width="494" height="19"><b>Beschreibung:</b></td> <td width="254" height="19"><b>Character set/encoding:</b></td></tr>
|
||||
<tr><td width="98" height="19">catalan</td> <td width="494" height="19">Katalanische Zeichen</td> <td width="254" height="19">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">danish</td> <td width="494" height="19"> Dänische Zeichen</td> <td width="254" height="19"> iso8859-1
|
||||
(latin1)</td></tr>
|
||||
<tr><td width="98">dutch</td> <td width="494"> Niederländische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">french</td> <td width="494"> Französische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">german</td> <td width="494"> Deutsche Zeichen </td> <td width="254">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">swiss-german</td> <td width="494"> Schweiz-Deutsche Zeichen
|
||||
(kein 'ß')</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">icelandic </td> <td width="494">Isländische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">italian</td> <td width="494"> Italienische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">spanish</td> <td width="494"> Spanische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98">swedish</td> <td width="494"> Schwedische Zeichen</td> <td width="254"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98"><b>latin1</b></td> <td width="494"> katalanisch, dänisch, niederländisch, französisch, deutsch, schweizer deutsch, spanisch,
|
||||
isländisch, italienisch, schwedisch</td> <td width="254"> iso8859-1 (latin1)
|
||||
<tr><td width="98">hungarian</td> <td width="494"> Ungarische Zeichen </td> <td width="254"> iso8859-2 (latin2), windows-1250</td></tr>
|
||||
<tr><td width="98">polish</td> <td width="494"> Polnische Zeichen <td width="254"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98">romanian</td> <td width="494"> Rumänische Zeichen <td width="254"> iso8859-2 (latin2), windows-1250, iso8859-16</td></tr>
|
||||
<tr><td width="98"><b>latin2</b></td> <td width="494"> ungarisch, polnisch,
|
||||
rumänisch <td width="254"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98">polish-w1250</td> <td width="494"> Polnische Zeichen,
|
||||
Windows Variante (leider mehr allgemein, als iso)<td width="254"> windows-1250</td></tr>
|
||||
<tr><td width="98">slovak-w1250</td> <td width="494"> Slowakische Zeichen,
|
||||
Windows Variante<td width="254"> windows-1250</td></tr>
|
||||
<tr><td width="98">czech-w1250</td> <td width="494"> Tschechische Zeichen,
|
||||
Windows Variante <td width="254">windows-1250</td></tr>
|
||||
<tr><td width="98"><b>windows-1250</b></td> <td width="494"> polnisch-w1250,
|
||||
slowakisch-w1250, tschechisch-w1250, ungarisch, rumänisch <td width="254">windows-1250</td></tr>
|
||||
<tr><td width="98">greek</td> <td width="494"> Griechische Zeichen <td width="254">iso8859-7</td></tr>
|
||||
<tr><td width="98">turkish</td> <td width="494"> Türkische Zeichen <td width="254">iso8859-9</td></tr>
|
||||
<tr><td width="98">russian-w1251</td> <td width="494"> Russische Zeichen <td width="254">windows-1251</td></tr>
|
||||
<tr><td width="98">hebrew</td> <td width="494"> Hebräische Zeichen <td width="254">iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td width="98">chinese-simp</td> <td width="494"> Einfaches Chinesisch <td width="254">Multibyte: GBK/GB2312</td></tr>
|
||||
<tr><td width="98">chinese-trad</td> <td width="494"> Traditionelles
|
||||
Chinesisch <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98">chinese-ja</td> <td width="494"> Japanisch Hiragana/Pinyin <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98"><b>chinese</b></td> <td width="494"> chinese-* <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98"><b>gbk</b></td> <td width="494"> chinese-* <td width="254">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19">dutch</td> <td width="494" height="19"> Niederländische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">french</td> <td width="494" height="19"> Französische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">german</td> <td width="494" height="19"> Deutsche Zeichen </td> <td width="254" height="19">iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">swiss-german</td> <td width="494" height="19"> Schweiz-Deutsche Zeichen
|
||||
(kein 'ß')</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">icelandic </td> <td width="494" height="19">Isländische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">italian</td> <td width="494" height="19"> Italienische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">spanish</td> <td width="494" height="19"> Spanische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="19">swedish</td> <td width="494" height="19"> Schwedische Zeichen</td> <td width="254" height="19"> iso8859-1 (latin1)</td></tr>
|
||||
<tr><td width="98" height="57"><b>latin1</b></td> <td width="494" height="57"> katalanisch, dänisch, niederländisch, französisch, deutsch, schweizer deutsch, spanisch,
|
||||
isländisch, italienisch, schwedisch</td> <td width="254" height="57"> iso8859-1 (latin1)
|
||||
<tr><td width="98" height="19">hungarian</td> <td width="494" height="19"> Ungarische Zeichen </td> <td width="254" height="19"> iso8859-2 (latin2), windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">polish</td> <td width="494" height="19"> Polnische Zeichen <td width="254" height="19"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98" height="38">romanian</td> <td width="494" height="38"> Rumänische Zeichen <td width="254" height="38"> iso8859-2 (latin2), windows-1250, iso8859-16</td></tr>
|
||||
<tr><td width="98" height="19"><b>latin2</b></td> <td width="494" height="19"> ungarisch, polnisch,
|
||||
rumänisch <td width="254" height="19"> iso8859-2 (latin2)</td></tr>
|
||||
<tr><td width="98" height="38">polish-w1250</td> <td width="494" height="38"> Polnische Zeichen,
|
||||
Windows Variante (leider mehr allgemein, als iso)<td width="254" height="38"> windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">slovak-w1250</td> <td width="494" height="19"> Slowakische Zeichen,
|
||||
Windows Variante<td width="254" height="19"> windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">czech-w1250</td> <td width="494" height="19"> Tschechische Zeichen,
|
||||
Windows Variante <td width="254" height="19">windows-1250</td></tr>
|
||||
<tr><td width="98" height="38"><b>windows-1250</b></td> <td width="494" height="38"> polnisch-w1250,
|
||||
slowakisch-w1250, tschechisch-w1250, ungarisch, rumänisch <td width="254" height="38">windows-1250</td></tr>
|
||||
<tr><td width="98" height="19">greek</td> <td width="494" height="19"> Griechische Zeichen <td width="254" height="19">iso8859-7</td></tr>
|
||||
<tr><td width="98" height="19">turkish</td> <td width="494" height="19"> Türkische Zeichen <td width="254" height="19">iso8859-9</td></tr>
|
||||
<tr><td width="98" height="19">russian-w1251</td> <td width="494" height="19"> Russische Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">belarussian-w1251</td> <td width="494" height="19"> Belarussische
|
||||
Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">ukrainian-w1251</td> <td width="494" height="19"> Ukrainische
|
||||
Zeichen <td width="254" height="19">windows-1251</td></tr>
|
||||
<tr><td width="98" height="1"><b>windows-1251</b></td> <td width="494" height="26"> russisch-w1251,
|
||||
belarussisch-w1251, ukrainisch-w1251 <td width="254" height="26">windows-1251</td></tr>
|
||||
<tr><td width="98" height="19">hebrew</td> <td width="494" height="19"> Hebräische Zeichen <td width="254" height="19">iso8859-8-I/windows-1255</td></tr>
|
||||
<tr><td width="98" height="19">chinese-simp</td> <td width="494" height="19"> Einfaches Chinesisch <td width="254" height="19">Multibyte: GBK/GB2312</td></tr>
|
||||
<tr><td width="98" height="19">chinese-trad</td> <td width="494" height="19"> Traditionelles
|
||||
Chinesisch <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19">chinese-ja</td> <td width="494" height="19"> Japanisch Hiragana/Pinyin <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19"><b>chinese</b></td> <td width="494" height="19"> chinese-* <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
<tr><td width="98" height="19"><b>gbk</b></td> <td width="494" height="19"> chinese-* <td width="254" height="19">Multibyte: GBK</td></tr>
|
||||
</table>
|
||||
|
||||
<p>Anmerkung 1: Zu beachten ist, dass einige Kombinationen Probleme verursachen können.
|
||||
@@ -1054,9 +1097,9 @@ Anmerkung 2: Die
|
||||
welchem Kleinbuchstaben gehört, erfolgt nach dem US-ASCII, was bedeutet, dass
|
||||
ö und Ö nicht als 'gleiches Zeichen' erkannt werden und deswegen jemand
|
||||
beispielsweise den Nick Bär haben kann, während jemand anderes gleichzeitig
|
||||
den Nick BÄr hat. Das ist eine Einschränkung durch das aktuelle SDystem und IRCd
|
||||
den Nick BÄr hat. Das ist eine Einschränkung durch das aktuelle System und IRCd
|
||||
Standards, die nicht binnen kurzer Zeit gelöst werden können. Den Usern sollte
|
||||
diese Enschränkung klar sein. Zu beachten dabei ist, dass es diese
|
||||
diese Einschränkung klar sein. Zu beachten dabei ist, dass es diese
|
||||
Einschränkung schon immer bei den Channelnamen gegeben hat, in denen ja fast
|
||||
alle Zeichen erlaubt sind und schon immer die US-ASCII Regeln der
|
||||
Zeichenübereinstimmung gegolten haben.<br>
|
||||
@@ -1064,6 +1107,7 @@ Zeichen
|
||||
Anmerkung 3: Die Basis Nick Zeichen (a-z A-Z 0-9 [ \ ] ^ _ - { | }) sind immer
|
||||
erlaubt/aktiviert.<br>
|
||||
<br>
|
||||
<br>
|
||||
Beispiel 1, für West-Europäer:<br>
|
||||
<br>
|
||||
<font face="Courier">
|
||||
@@ -1076,7 +1120,41 @@ Schriftzeichen gestatten will:<br>
|
||||
<font face="Courier">
|
||||
set { allowed-nickchars { chinese-simp; chinese-trad; }; };</font></div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_other">3.17 - Andere Features</a></b></font></p><div class="desc">
|
||||
<p><font size="+2"><b><a name="feature_cgiirc">3.17 - CGI:IRC Unterstützung</a></b></font></p><div class="desc">
|
||||
UnrealIRCD unterstützt eine CGI:IRC Host Manipulation. Das bedeutet: Man kann
|
||||
bestimmte CGI:IRC Gateways als "trusted" ("vertraut")
|
||||
festlegen, wodurch der IRCd veranlasst wird, statt Host/IP des CGI:IRC Gatewäys
|
||||
überall im IRC die reale Host/IP des Users anzuzeigen.
|
||||
<p>Nähere Informationen, wie dies konfiguriert wird, stehen im <a href="#cgiirc">cgiirc
|
||||
Block</a> </div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_timesync">3.18 - Zeitsynchronisation</a></b></font></p>
|
||||
<div class="desc">
|
||||
<p>Es ist für die IRC Server sehr wichtig, immer die korrekte Zeit
|
||||
eingestellt zu haben. Ohne korrekte - insbesondere unterschiedliche Zeit
|
||||
zwischen Servern - können Channel desynchronisieren (auf verschiedenen
|
||||
Servern wird etwas anderes im gleichen Channel angezeigt), ahnungslose User
|
||||
grundlos gekillt werden, Channels gar nicht oder falsch in der /List Anzeige
|
||||
eingetragen sein. Kurzum: es entstehen sehr große Probleme.´</p>
|
||||
<p>UnrealIRCd hat eine eine Unterstützung zur Zeitsybchronisation integriert.
|
||||
Obwohl sie nicht optimal ist (die Zeiten können weiterhin um wenige Sekunden
|
||||
differieren), sollten damit die meisten Zeitunterschiede beseitigt werden.
|
||||
Soweit möglich ist es weiterhin empfehlenswert, eine Zeitsynchronisations
|
||||
Software wie 'ntpd' auf *NIX Systemen oder den Zeit Synchonisations
|
||||
Service von Windosws laufen zu haben. In diesem Fall kann man die Unreal Zeitsynchronisation
|
||||
abschalten. (mehr dazu später)</p>
|
||||
<p>Per Default versucht UnrealIRCd beim Start einen Versuch der
|
||||
Zeitsynchronisation. Es werden hierzu einige Anforderungen an Zeitserver
|
||||
gesendet und sobald die erste (schnellste) Antwort empfangen wird die interne
|
||||
IRCD Uhr (NICHT die Systemuhr) danach eingestellt. Wenn aus irgendwelchen
|
||||
Gründen nicht binnen 3 Sekunden eine Zeitabfrage beantwortet wird, startet
|
||||
der IRCD ohne Zeitsynchronisation (sollte nur selten passieren).</p>
|
||||
<p>Zeitsynchronisation wird im <b>set::timesynch</b> Block konfiguriert (oder
|
||||
abgeschaltet). Siehe in der <a href="#setblock">Set-Block Beschreibung</a>
|
||||
für weitere Informationen.</p>
|
||||
</div>
|
||||
|
||||
<p><font size="+2"><b><a name="feature_other">3.18 - Andere Features</a></b></font></p><div class="desc">
|
||||
<p>UnrealIRCd hat eine Reihe weiterer Features, die hier nicht alle einzeln
|
||||
aufgeführt sind. Man wird sie während der Konfiguration selbst herausfinden ;)</p></div>
|
||||
|
||||
@@ -1085,11 +1163,11 @@ aufgef
|
||||
der unrealircd.conf</a></b></font>
|
||||
<a name="configuringyourunrealircdconf"> </a></p><div class="desc">
|
||||
<p>Beim ersten Mal wird das Erstellen einer guten unrealircd.conf Datei eine
|
||||
gewisse Zeit in Anspruch nehmen - je nach Vorerfahrung etwa 10 - 60 Minuten. Man
|
||||
kann versuchen, so rasch wie möglich den ircd zu starten und später zu
|
||||
verfeinern oder man kann die Haupt Abschnitte Schritt für Schritt erlernen (was
|
||||
der empfohlene Weg ist ;P). Im Falle auftretender Probleme zuerst die Syntax
|
||||
überprüfen, diese Anleitung und auch die FAQ bevor man nach Hilfe fragt oder
|
||||
gewisse Zeit in Anspruch nehmen - je nach Vorerfahrung etwa 15 - 60 Minuten.
|
||||
Eine <u>gute</u> unrealircd.conf zu erstellen, wird bedeutend länger dauern.
|
||||
Man sollte nicht hetzen, um den IRCd rasch gestartet zu bekommen, sondern lieber
|
||||
Schritt für Schritt vorangehen. Im Falle auftretender Probleme zuerst die Syntax
|
||||
überprüfen, diese Anleitung und auch die <a href="#faq"> FAQ</a> bevor man nach Hilfe fragt oder
|
||||
einen Bug meldet.</p></div>
|
||||
<p><b><font size="+2"><a name="configurationfileexplained">4.1 Erklärung der
|
||||
Konfigurationsdatei<br>
|
||||
@@ -1122,7 +1200,7 @@ werden oder in mehreren Zeilen. Normalerweise wird das oben angegebene Format
|
||||
benutzt, welches leicht zu lesen ist und auch in der mitgelieferten
|
||||
unrealircd.conf benutzt wird. </p>
|
||||
<p>Achtung: Die Konfigurationsdatei ist derzeit "case sensitive",
|
||||
daher ist "BLOCK-NAME" nicht dasselbe wie "block-name". Es
|
||||
daher ist "<i>BLOCK-NAME</i>" nicht dasselbe wie "<i>block-name</i>". Es
|
||||
gibt eine spezielle Notation wie Einträge in der Konfigurationsdatei als
|
||||
Beschreibung angegeben werden. Spricht man z.B. über "<directive-name>"
|
||||
im obigen Beispiel, so wird angegeben "<block-name>::<block-directive>"
|
||||
@@ -1140,10 +1218,10 @@ einem Unterblock sein, der keinen Namen hat.</p>
|
||||
über mehrere<br>
|
||||
Zeilen */<br>
|
||||
</p>
|
||||
<p>Es sollte nun klar sein, wie das Block Format der .conf funktioniert und nun
|
||||
kann begonnen werden, eine eigene unrealircd.conf zu erstellen. Hierzu kann man
|
||||
auch dei Beispielsdatei oder Teile der Dokumentation verwenden und sich die
|
||||
entsprechenden Blöcke in die eigene Datei kopieren und editieren. Es ist
|
||||
<p>Nachdem nun klar ist, wie das funktioniert, sollte man die <i>doc/example.conf</i>
|
||||
in das UnrealIRCd Verzeichnis kopieren (z.B.: /home/user/Unreal3.2) und in <i>unrealircd.conf</i>
|
||||
umbenennen. (Oder man erstellt eine unrealircd.conf und kopiert sich die
|
||||
entsprechenden Blöcke und editieret sie). Es ist
|
||||
empfehlenswert, sich Schritt für Schritt durch alle Blöcke und diese Anleitung
|
||||
als Referenz durchzuarbeiten.</p>
|
||||
<p></p></div>
|
||||
@@ -1881,7 +1959,7 @@ in verschiedenen Dateien zu loggen.</p>
|
||||
tkl</p>
|
||||
</td>
|
||||
<td width="484">
|
||||
<p>zeichnet Infos auf über *lines, shuns und Spamfilter (setzen, löschen,
|
||||
<p>zeichnet Infos auf über *lines (kline, zline etc), shuns und Spamfilter (setzen, löschen,
|
||||
Ablauf)</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1904,14 +1982,6 @@ Ablauf)</p>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="113">
|
||||
<p>
|
||||
kline</p>
|
||||
</td>
|
||||
<td width="484"><p>Zeichnet Infos /kline auf</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="113">
|
||||
<p>
|
||||
oper</p>
|
||||
</td>
|
||||
@@ -1956,7 +2026,6 @@ spamfilter
|
||||
errors;
|
||||
kills;
|
||||
oper;
|
||||
kline;
|
||||
tkl;
|
||||
};
|
||||
};
|
||||
@@ -1977,7 +2046,7 @@ bekannt als T:Line)</font><div class="desc">
|
||||
channel <channel-name>;
|
||||
options {
|
||||
ssl;
|
||||
}
|
||||
};
|
||||
};</pre>
|
||||
<p>Mit dem TLD Block kann man eine motd (Messageoftheday), rules und channels für
|
||||
User basierend auf deren Host festlegen. Das ist nützlich, falls man
|
||||
@@ -2058,7 +2127,7 @@ bekannt als Z:Line)</font><div class="desc">
|
||||
};</pre>
|
||||
<p>Der Ban IP Block verhindert das Verbinden von bestimmten IP Adressen her zum
|
||||
Server. Das gilt sowohl für Verbindungsversuche von Usern als auch von Servern.<br>
|
||||
<b>ban::mask</b> ist eine IP, die Wildcards enthalten kann<br>
|
||||
<b>ban::mask</b> ist eine IP, die Wildcards enthalten kann.<br>
|
||||
<b>ban::reason</b> ist der Grund, warum der Bann eingetragen wurde.<br>
|
||||
Da dieser Bann auch Server betreffen kann, sollte man beim Eintrag von IP
|
||||
Adressen sehr vorsichtig sein.</p>
|
||||
@@ -2131,7 +2200,7 @@ Maske kann Wildcards enthalten.<br>
|
||||
<b>ban::reason</b> legt den Grund fest, der dem User angezeigt wird.<br>
|
||||
<b>ban::action</b> kann ebenfalls festgelegt werden. Dabei ist der Default auf
|
||||
"kill". <i>tempshun</i> setzt ein shun auf die Verbindung des Users
|
||||
und arbeitet effektiv gegen zombies und/oder Bots mit dynamischer IP, weil sie
|
||||
und arbeitet effektiv gegen Zombies und/oder Bots mit dynamischer IP, weil sie
|
||||
unschuldige User nicht beeinträchtigen. <i>shun/kline/zline/gzline</i> setzen
|
||||
einen Bann auf die IP (*@IPADDR). Die Dauer dieser Banns kann mit 'set::ban-version-tkl-time'
|
||||
konfiguriert werden und beträgt per Default 1 Tag.</p>
|
||||
@@ -2188,6 +2257,9 @@ angegeben, welcher Bann Typ ausgenommen werden soll. G
|
||||
gline, gzline, qline, gqline und shun, für Ausnahmen von Glines, Global Zlines,
|
||||
Qlines, Global Qlines und Shuns. Wenn das {} Format benutzt wird, können
|
||||
unterschiedliche Typen angegeben werden.</p>
|
||||
<p>Anm. des Übersetzers: Die Ausnahmen funktionieren wirklich nur bei gebanntem
|
||||
<b>breiteren </b>Host (123.123.* oder *@url). Man kann damit z.B. nicht einen
|
||||
versehentlichen Bann auf Localhost verhindern.</p>
|
||||
<p>Beispiel:
|
||||
<pre>except tkl {
|
||||
mask myident@my.isp.com;
|
||||
@@ -2273,7 +2345,7 @@ angegebenen abgelehnt.<br>
|
||||
haben oder nicht haben darf. Die Flags müssen direkt nacheinander ohne
|
||||
Zwischenräume angegeben sein. Wird einem Zeichen ein "!"
|
||||
vorangestellt, darf der Server dieses Flag nicht haben, steht kein "!"
|
||||
davor, so muss der Server dieses Flag haben, um vom Linken ausgeschlossen zu
|
||||
davor, muss der Server dieses Flag haben, um vom Linken ausgeschlossen zu
|
||||
sein.</p>
|
||||
</div>
|
||||
<p><font class="block_section"><a name="denylinkblock">4.24 - </a> </font><a name="denylinkblock"><font class="block_name">Deny Link Block</font>
|
||||
@@ -2290,7 +2362,7 @@ bekannt als D/d:Line)</font><div class="desc">
|
||||
Linken ausschliessen kann.<br>
|
||||
<b>deny::mask</b> definiert eine Wildcard Maske auf den Servernamen, für den
|
||||
die Regel gelten soll.<br>
|
||||
<b>deny::rule</b> ist ein sehr komplexer Ausdruck. Ein crule Ausdruck erlaubt
|
||||
<b>deny::rule</b> ist ein sehr komplexer Ausdruck. Ein rule Ausdruck erlaubt
|
||||
es, den Link sehr detailliert zu steuern und ist aufgebaut wie eine Programm
|
||||
Anweisung. Vier Operatoren werden unterstützt:<br>
|
||||
connected(<servermask>) ergibt 'wahr', wenn ein Server
|
||||
@@ -2439,7 +2511,7 @@ im Oper Block bei "oper::svhost".</p>
|
||||
</a>
|
||||
<font class="block_optional">OPTIONAL</font> <font class="block_old">(Früher
|
||||
bekannt als badwords.*.conf)</font>
|
||||
</p><div class="desc">
|
||||
</p><div class="desc" style="width: 1195; height: 374">
|
||||
<p>Syntax:
|
||||
<pre>badword <type> {
|
||||
word <text-to-match>;
|
||||
@@ -2447,14 +2519,15 @@ bekannt als badwords.*.conf)</font>
|
||||
action <replace|block>;
|
||||
};</pre>
|
||||
<p>Mit dem Badword Block kann die Liste für User- und Channelmodus +G
|
||||
bearbeitet werden, um bestimmte "badwords" zu beahandeln. <b>badword::</b>
|
||||
legt den Typ fest, wobei gültige Werte hier sind: channel, message und quit. channel
|
||||
gilt für Channel Modus +G list, message gilt für User Modus +G list, und quit
|
||||
bearbeitet werden, um bestimmte "badwords" zu behandeln. <b>badword::</b>
|
||||
legt den Typ fest, wobei hier gültige Werte sind: 'channel', 'message' und 'quit'.
|
||||
'channel'
|
||||
gilt für Channel Modus +G Liste, 'message' gilt für User Modus +G Liste, und 'quit'
|
||||
gilt für die quit Meldung. <b> badword::word</b> kann ein einfaches Wort sein
|
||||
oder ein Ausdruck, nach dem gesucht werden soll. <b>badword::replace</b> ist ein
|
||||
Ersetzungstext, der anstelle des gefundenen Badwords angezeigt wird. Wird hier
|
||||
nichts eingetragen, so wird ein gefundenes Badword durch <censored>
|
||||
erstezt. Bei <b> badword::action</b> wird angegeben, was im Falle eines
|
||||
ersezt. Bei <b> badword::action</b> wird angegeben, was im Falle eines
|
||||
gefundenen Badwords geschehen soll. Wird hier das Wort "replace"
|
||||
eingetragen, dann wird das Badword ersetzt. Falls hier "block"
|
||||
angegeben wird, wird die gesamte Nachricht gar nicht erst angezeigt. Falls
|
||||
@@ -2556,19 +2629,23 @@ wie bei "password-connect".
|
||||
</p>
|
||||
<p><b>hub oder leaf</b><br>
|
||||
Zu einem hub sind mehrere Server verbunden, ein leaf hat immer nur eine
|
||||
Verbindung. Ein Server ist entweder ein hub oder ein leaf - die beiden Optionen
|
||||
können nicht kombiniert werden.
|
||||
Verbindung. Ein Server ist solange ein leaf, wie es keine hub Anweisung gibt.
|
||||
Ebenso ist er ein leaf, wenn in der Anweisung lediglich * definiert ist oder die
|
||||
leaf Tiefe (Anzahl der hops) 1 ist.
|
||||
</p>
|
||||
<p><b>hub</b> (optional)<br>
|
||||
Der Wert ist eine Maske, auf welche Server dieser hub connecten darf (z.B.: *.my.net).
|
||||
</p>
|
||||
<p><b>leaf</b> (optional)<br>
|
||||
Der Wert ist eine Maske, dass dieser Server wie ein leaf in Richtung zum eigenen
|
||||
Server fungiert.
|
||||
Dieser Wert gibt an, zu welchen Servern dieser Hub <b>nicht</b> verbindet. Hier
|
||||
einen * anzugeben ist das selbe, wie keine hub Anweisung zu haben.
|
||||
</p>
|
||||
<p><b>leaf-depth</b> (optional)<br>
|
||||
Falls dies angegeben ist, sollte auch "leaf" angegeben sein. Angegeben
|
||||
wird die Tiefe (Anzahl der hops) die dieser Server darunter haben darf.
|
||||
Dieser Wert gibt die Tiefe (Anzahl der hops)an, die dieser Server darunter haben darf.
|
||||
Beispielsweise bedeutet 1, dass der Server keine Links hat (ist ein leaf), 2
|
||||
bedeutet, es kann zu Servern gelinkt werden, aber diese können zu keinem
|
||||
anderen linken (dieser Hub kann also nur zu leafs linken). Ein Wert von 0
|
||||
bedeutet, dass es kein Limit gibt und das ist auch Default.
|
||||
</p>
|
||||
<p><b>class</b><br>
|
||||
Die Klasse, in die der Server kommt, oft ist eine eigene Klasse für Server
|
||||
@@ -2598,7 +2675,8 @@ nicht ben
|
||||
cache speichern, wird bei oft wechselndem Host benutzt (wie dyndns.org)</td></tr>
|
||||
<tr><td><b>nohostcheck</b></td><td> den entfernten Host nicht überprüfen (link::hostname),
|
||||
wird bei oft wechselndem Host benutzt (wie dyndns.org)</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> Opers auf diesem Server behalten locop Status bei</td></tr>
|
||||
<tr><td><b>quarantine</b></td><td> Opers auf diesem Server können keine GLOBAL
|
||||
Oper Privilegien erhalten (sie werden gekilled), dient zu Test Links etc.</td></tr>
|
||||
</table>
|
||||
<p>Beispiel:</p>
|
||||
<pre>link hub.mynet.com {
|
||||
@@ -2626,6 +2704,7 @@ nicht vorhanden)</font>
|
||||
<pre>alias <name> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
spamfilter <yes|no|>
|
||||
};</pre>
|
||||
<p>(Hinweis: siehe auch <a href="#includedirective">hier</a> , welche Standard
|
||||
Alias Dateien bei UnrealIRCd mitgeliefert werden.)</p>
|
||||
@@ -2637,20 +2716,32 @@ der Nickname, an den weitergeleitet wird. Wenn "alias::" identisch mit
|
||||
dem Nick ist, an den weitergeleitet wird, kann "alias::target"
|
||||
weggelassen werden. <b> alias::type</b> gibt den Typ des Alias an, gültige
|
||||
Typen sind hier "services" (der User ist auf dem Services Server),
|
||||
"stats" (der User ist auf dem Stats Server), und "normal" (der
|
||||
User ist normaler User auf irgendeinem Server). Der "alias block" hat
|
||||
auch einen weiteren Zweck, der nachfolgend erklärt ist.</p>
|
||||
"stats" (der User ist auf dem Stats Server) "normal" (der
|
||||
User ist normaler User auf irgendeinem Server) und "channel" (das Ziel
|
||||
ist ein Channel Name). Wenn <b>alias::spamfilter</b> (optional) auf 'yes'
|
||||
eingestellt ist, werden auch Spamfilter geprüft (Default ist 'no'). Der "alias block" hat
|
||||
auch einen weiteren nachfolgend erklärten Zweck.</p>
|
||||
<p>Syntax [Befehl alias]:
|
||||
<pre>alias <name> {
|
||||
</pre>
|
||||
<pre> /* Für Aliase, die an User/Channels gesendet werden */
|
||||
format <regex-expression> {
|
||||
target <nick-to-forward-to>;
|
||||
type <type-of-alias>;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* For 'echte Aliase' */
|
||||
format <regex-expression> {
|
||||
command <command>;
|
||||
type real;
|
||||
parameters <parameter-string>;
|
||||
};
|
||||
/* Etc... You can have as many format blocks as you wish.. */</pre>
|
||||
<pre> format <regex-expression> {
|
||||
...
|
||||
};
|
||||
type command;
|
||||
spamfilter <yes|no>
|
||||
};</pre>
|
||||
<p>Wird der "alias Block" in diesem Format benutzt, ermöglicht er
|
||||
eine breitere Anwendungsweise. Beispielsweise kann man einen Alias wie /identify
|
||||
@@ -2660,15 +2751,19 @@ einen regul
|
||||
Befehl gesandt wurde. Es können mehrere "alias::format" angegeben
|
||||
werden, um unterschiedliche Dinge in Abhängigkeit vom gesandten Text
|
||||
durchführen zu lassen. <b>alias::format::target</b> ist das Ziel (der Name), an den der
|
||||
Alias weitergeleitet wird. <b> alias::format::type</b> definiert den Typ des
|
||||
Alias, zu dem die Nachricht geleitet wird. <b> alias::format::parameters</b>
|
||||
Alias weitergeleitet wird, bei "realen Aliasen" wird allerdings <b>alias::format::command</b>
|
||||
benutzt. <b> alias::format::type</b> definiert den Typ des
|
||||
Alias, zu dem die Nachricht geleitet wird. Neben den zuvor erwähnten Typen in
|
||||
der Syntax bein Standard Alias, kann hier auch der Typ "Real" für
|
||||
reale Aliase angegeben werden. <b>alias::format::parameters</b>
|
||||
ist, was als Parameter an den Alias geschickt wird. Um Parameter für einen
|
||||
Befehl an den Alias anzugeben, wird ein "%" gefolgt von einer Nummer
|
||||
angegeben. So ist z.B. %1 der erste Parameter, %2 der zweite Parameter usw.
|
||||
Man kann auch festlegen, dass ab einem Parameter alle bis zum Ende gelten
|
||||
sollen, dann gibt man z.B. an: %1- (das Minuszeichen bedeutet: "alle
|
||||
weiteren") Zusätzlich kann man %n angeben, was durch den Nicknamen des
|
||||
Users ersetzt wird, der den befehl ausgeführt hat. Um Beispiele zum Alias Block
|
||||
Users ersetzt wird, der den Befehl ausgeführt hat. </p>
|
||||
<p> Um Beispiele zum Alias Block
|
||||
zu sehen, schaue man in doc/example.conf.</p>
|
||||
<p> </p>
|
||||
</div>
|
||||
@@ -2758,7 +2853,66 @@ spamfilter {<br>
|
||||
reason "Kein Spam erlaubt"<br>
|
||||
};<br>
|
||||
</font></div>
|
||||
<p><font class="block_section"><a name="setblock">4.36 - </a> </font><a name="setblock"><font class="block_name">Set Block</font>
|
||||
<p><font class="block_section"><a name="cgiirc">4.36 - </a></font><a name="cgiirc"><font class="block_name">Cgiirc
|
||||
Block</font></a> <font class="block_optional">OPTIONAL</font></p>
|
||||
<div class="desc">
|
||||
<p>Im Cgiirc Block können Host Manipulationen für vertraute CGI:IRC Gateways
|
||||
konfiguriert werden (<a href="#feature_cgiirc">weitere Informationen</a>).</p>
|
||||
<p>Syntax:<br>
|
||||
</p>
|
||||
<pre>cgiirc {
|
||||
type <webirc|old>;
|
||||
username <mask>; /* optional */
|
||||
hostname <mask>;
|
||||
password <password>; /* only for type webirc */
|
||||
};</pre>
|
||||
<p> </p>
|
||||
<p><b>type</b> ist entweder 'webirc' oder 'old'.<br>
|
||||
<b>username</b> wird auf die Ident geprüft (wenn angegeben). Falls nicht
|
||||
definiert, wird '*' angenommen.<br>
|
||||
<b>hostname</b> ist die Hostmaske, auf die geprüft wird.<br>
|
||||
<b>password</b> ist das webirc Passwort, wird nur beim Typ 'webirc' benutzt.<br>
|
||||
</p>
|
||||
<p><b>Konfiguration mit der 'webirc' Methode (empfohlene Methode)</b><br>
|
||||
In der CGI:IRC Konfigurationsdatei (cgiirc.conf) wird für "webirc_password"
|
||||
ein gutes Passwort festgelegt.<br>
|
||||
Danach wird in der unrealircd.conf ein cgiirc block eingetragen, um diesen
|
||||
Host mit diesem Passwort zu erlauben.<br>
|
||||
Dann wird für '<b>set cgiirc::type'</b> "webirc" eingetragen.<br>
|
||||
<br>
|
||||
Beispiel:<br>
|
||||
In die CGI:IRC Konfigurationsdatei (cgiirc.conf) wird eingetragen:</p>
|
||||
<pre>webirc_password = LpT4xqPI5</pre>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert:
|
||||
<pre>cgiirc {
|
||||
type webirc;
|
||||
hostname "1.2.3.4";
|
||||
password "LpT4xqPI5";
|
||||
};</pre>
|
||||
<p> </p>
|
||||
<p><b>Konfiguration mit Methode 'old'</b><br>
|
||||
ACHTUNG: Dies ist nicht die empfohlene Methode, da sie zwei Nachteile hat:
|
||||
Diese Methode sendet den IP/Host, der zu verändern ist, als ein Server
|
||||
Passwort, was bedeutet, als CGI:IRC User kein Server Passwort
|
||||
angeben kann. Außerdem ist die Zugriffskontrolle nur IP-basiert und erfordert
|
||||
kein Extra Passwort, wie die 'webirc' Methode. Kurz gesagt sollten Sie nicht
|
||||
diese Methode nur verwenden, wenn es einen triftigen Grund dazu gibt.<br>
|
||||
<br>
|
||||
In der CGI:IRC Konfigurationsdatei (cgiirc.conf) wird 'realhost_as_password'
|
||||
auf 1 gesetzt.<br>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert, um diesen
|
||||
Host zu erlauben.<br>
|
||||
<br>
|
||||
Beispiel:<br>
|
||||
In die CGI:IRC Konfigurationsdatei (cgiirc.conf) wird eingetragen:</p>
|
||||
<pre>realhost_as_password = 1</pre>
|
||||
Danach wird die unrealircd.conf um einen Cgiirc Block erweitert:
|
||||
<pre>cgiirc {
|
||||
type old;
|
||||
hostname "1.2.3.4";
|
||||
};</pre>
|
||||
</div>
|
||||
<p><font class="block_section"><a name="setblock">4.37 - </a> </font><a name="setblock"><font class="block_name">Set Block</font>
|
||||
</a> <font class="block_required">ERFORDERLICH</font> <font class="block_old">(Früher
|
||||
bekannt als unrealircd.conf/networks file)</font>
|
||||
</p><div class="desc">
|
||||
@@ -2835,6 +2989,10 @@ eingeschr
|
||||
Beispielsweise kann man +G in 'modes-on-connect' setzen und G in 'restrict-usermodes',
|
||||
wodurch erreicht wird, dass sämtliche User +G erhalten, aber kein -G
|
||||
anwenden können.</p>
|
||||
<p><font class="set">set::level-on-join <op|none></font><br>
|
||||
Die Modus, der einem User beim ersten joinen eines Channels gegeben wird. Das
|
||||
ist entweder 'op' (Channel Operator, Default) oder 'none', wenn kein Level
|
||||
gegeben werden soll. Default ist Op.</p>
|
||||
<p><font class="set">set::restrict-channelmodes <modes></font><br>
|
||||
Die Channel-Modi, die User wählen können werden auf die hier angegebenen Modi
|
||||
eingeschränkt. (kein + oder - angeben!).<br>
|
||||
@@ -2883,6 +3041,17 @@ bel
|
||||
angezeigt werden sollen. Ohne Eintrag hier gibt es kein Limit.</p>
|
||||
<p><font class="set">set::silence-limit <limit>;<br>
|
||||
</font>Stellt den Maximalwert der anzeigbaren SILENCE Einträge ein. Ohne Eintrag ist hier ein Limit von 15 voreingestellt.</p>
|
||||
<b><font face="Helvetica,Arial" size="-1">set::maxbans <limit>;<br>
|
||||
</font></b>Stellt den Maximalwert der je Channel erlaubten Banns (+b) ein. Der
|
||||
Defaultwert beträgt 60. Wenn dieser Wert geändert wird, sollte man sich
|
||||
versichern, dass auch der Wert für 'maxbanlength' (siehe nächster Punkt)
|
||||
sinnvoll eingestellt ist.
|
||||
<p><b>set::maxbanlength <limit>;</b><br>
|
||||
Ähnliche Funktion wie im Punkt zuvor, aber legt den Maximalwert der Zeichen
|
||||
für alle Banns zusammen fest. Dadurch wird festgelegt, wie viel Speicherplatz
|
||||
für alle Banns in einem Channel zusammen benutzt wird. Der Default beträgt
|
||||
2048 (Bytes). Bei einem Default von 'set::maxbans 60' gestattet dies 2048:60=34
|
||||
Zeichen je Bann im Durchschnitt.</p>
|
||||
<p><font class="set">set::oper-only-stats <stats-list>;</font><br>
|
||||
Definiert eine Liste von Stats-Flags, die nur von Opers benutzt werden können.
|
||||
Die Flags sind ohne Trennungen (keine Kommata, keine Leerzeichen) anzugeben.
|
||||
@@ -2890,7 +3059,7 @@ Wird hier nichts angegeben, k
|
||||
Angabe von '*' keines. Es dürfen nur <b> kurze Operflags</b> angegeben werden.</p>
|
||||
<p><b>set::oper-only-stats {<stats-flag>; <stats-flag>;};</b><br>
|
||||
Definiert eine Liste von Stats Flags, die nur von Opers benutzt werden können.
|
||||
In dieser Syntax dürfen nur <b>lange Operflags</b> angegeben wwerden.</p>
|
||||
In dieser Syntax dürfen nur <b>lange Operflags</b> angegeben werden.</p>
|
||||
<p><font class="set">set::maxchannelsperuser <amount-of-channels>;</font><br>
|
||||
Einstellung, in wie vielen Channels ein User gleichzeitig sein darf.</p>
|
||||
<p><b>set::maxdccallow <amount-of-entries>;</b><br>
|
||||
@@ -2901,7 +3070,7 @@ Zeichens
|
||||
<p><font class="set">set::channel-command-prefix <command-prefixes>;<br>
|
||||
</font>Stellt das Vorzeichen für Services in "channel Befehlen" ein.
|
||||
Nachrichten, die mit einem dieser Zeichen beginnen, werden auch noch gesendet,
|
||||
wenn der Client +d ist. Die Voreinstellung lautet "`".</p>
|
||||
wenn der Client +d ist. Die Voreinstellung lautet "`!.".</p>
|
||||
<p><font class="set">set::allow-userhost-change [never|always|not-on-channels|force-rejoin]</font><br>
|
||||
Einstellung, was passiert, wenn sich der user@host ändert (+x/-x/chghost/chgident/setident/vhost/etc).<br>
|
||||
<i>never</i> schaltet sämtliche Befehle ab, <i>always</i> gestattet so
|
||||
@@ -2949,12 +3118,13 @@ Oper Zugriff geloggt wurde.</p>
|
||||
Ein Wert, der angibt, innerhalb welcher Zeit ein DNS Server zu antworten hat, bevor
|
||||
"timeout" gemeldet wird. Der Zeitwert ist ein numerischer String, in
|
||||
dem 'd' Tage bedeutet, 'h' Sunden, 'm' Minuten und 's' Sekunden. Beispiel: '1d2h3m'
|
||||
bedeutet 1 Tag, 2 Stunden, 3 Minuten.</p>
|
||||
bedeutet 1 Tag, 2 Stunden, 3 Minuten. (NICHT IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::dns::retries <number-of-retries>;</font><br>
|
||||
Ein Zahlenwert, durch den festgelegt wird, wie oft versucht werden soll, die DNS
|
||||
aufzulösen, bevor ein Fehler gemeldet wird.</p>
|
||||
aufzulösen, bevor ein Fehler gemeldet wird. (NICHT IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::dns::nameserver <name-of-dns-server>;</font><br>
|
||||
Gibt den Hostnamen des Servers an, der zur DNS Namensauflösungen dient.</p>
|
||||
Gibt den Hostnamen des Servers an, der zur DNS Namensauflösungen dient. (NICHT
|
||||
IMPLEMENTIERT)</p>
|
||||
<p><font class="set">set::network-name <name-of-network>;</font><br>
|
||||
Gibt den Namen des Netzwerks an, in dem der Server läuft (also den Namen des
|
||||
irc Netzes!) Dieser Eintrag sollte auf allen Servern im Netzwerk absolut
|
||||
@@ -3019,6 +3189,17 @@ Gibt den Dateinamen an, wo das SSL Zertifikat des Servers liegt.</p>
|
||||
Gibt den Dateinamen an, wo der private SSL Key des Servers liegt.</p>
|
||||
<p><font class="set">set::ssl::trusted-ca-file <filename>;</font><br>
|
||||
Gibt den Dateinamen der Zertifikate der vertrauten CAs an.</p>
|
||||
<p><font class="set">set::ssl::server-cipher-list <cipherlist>;</font><br>
|
||||
Legt fest, welche Verschlüsselungen erlaubt sind, was per Default für OpenSSL
|
||||
eingestellt ist. Siehe <a href="http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT">http://www.openssl.org/docs/apps/ciphers.html</a>
|
||||
wie eine Liste von Verschlüsselungen erstellt wird (englische Seite,
|
||||
nicht übersetzt!).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-bytes <value>;</font><br>
|
||||
Legt fest, wieviele Bytes bei einer SSL Session neu ausgehandelt werden sollen (z.B.:
|
||||
20m für 20 Megabyte).</p>
|
||||
<p><font class="set">set::ssl::renegotiate-timeout <timevalue>;</font><br>
|
||||
Legt fest, nach welcher Zeit eine SSL Session neu ausgehandelt werden soll (z.B.:
|
||||
1h für 1 Stunde).</p>
|
||||
<p><font class="set">set::ssl::options::fail-if-no-clientcert;</font><br>
|
||||
Stellt ein, dass Clients ohne Zertifikat nicht connecten können.</p>
|
||||
<p><font class="set">set::ssl::options::no-self-signed;</font><br>
|
||||
@@ -3026,6 +3207,9 @@ Verbietet Verbindungen von Usern mit selbst erstellten Zertifikaten.</p>
|
||||
<p><font class="set">set::ssl::options::verify-certificate;</font><br>
|
||||
Stellt ein, dass Unreal SSL Zertifikate auf Gültigkeit überprüft, bevor
|
||||
eine Verbindung akzeptiert wird.</p>
|
||||
<p><font class="set">set::ssl::options::no-starttls;</font><br>
|
||||
Deaktiviert STARTTLS. STARTTLS ermöglicht es Clients, über reguläere (nicht
|
||||
SSL) Ports zu verbinden.</p>
|
||||
<p><font class="set">set::throttle::period <timevalue></font><br>
|
||||
Wie lange muss ein User zum erneuten Connecten warten, wenn er häufiger, als
|
||||
unter 'set::throttle::connections' eingestellt, verbunden war.</p>
|
||||
@@ -3081,15 +3265,93 @@ joinen.</p>
|
||||
<b>set::spamfilter::except <target(s)></b><br>
|
||||
Diese Ziele werden vom Spamfilter ausgenommen (es wird also keine Aktion
|
||||
durchgeführt). Es sind einzelne Ziele oder eine durch Kommata getrennte Liste
|
||||
möglich. Beispiel: except "#help,#spamreport"</p> </div>
|
||||
möglich. Beispiel: except "#help,#spamreport"</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-warn <value></font><br>
|
||||
Wenn ein Spamfilter zur Ausführung länger als der hier festgelegte Wert dauert
|
||||
(in Millisekunden, 1000ms = 1 Sekunde), wird eine Warnung per Notice an
|
||||
alle Opers versandt. (Default: 250). Siehe auch <a href="#feature_spamfilter_slow">Erkennung
|
||||
langsamer Spamfilter</a>.</p>
|
||||
<p><font class="set">set::spamfilter::slowdetect-fatal <value></font><br>
|
||||
Wenn ein Spamfilter zur Ausführung länger als der hier festgelegte Wert dauert
|
||||
(in Millisekunden, 1000ms = 1 Sekunde), wird er gelöscht50o). Siehe auch <a href="#feature_spamfilter_slow">Erkennung
|
||||
langsamer Spamfilter</a>.</p>
|
||||
<p><b>set::check-target-nick-bans <yes|no></b><br>
|
||||
Wann immer ein User seinen Nick ändert, wird überprüft, ob der NEUE Nick zu
|
||||
bannen wäre. Ist das der Fall, wird der Nickwechsel nicht erlaubt. Default ist
|
||||
'yes'.</p>
|
||||
<p><b>set::timesynch::enabled<yes|no></b><br>
|
||||
Aktiviert oder deaktiviert die Zeitsynchronisation beim Start des IRCd. Default
|
||||
ist 'yes'.</p>
|
||||
<p><font class="set">set::timesynch::server <IP></font><br>
|
||||
Server mit dem die Zeit synchronisiert werden soll. Hier können bis zu 4 IP's
|
||||
angegeben werden, die durch Komma zu trennen sind. Die Server müssen das NTP Protokoll
|
||||
Version 4 unterstützen. Default ist die Benutzung von 3 Zeitservern (US, EU,
|
||||
AU). Die Anforderungen an diese Server erfolgen zeitgleich, die schnellste
|
||||
Antwort gewinnt.</p>
|
||||
<p><font class="set">set::timesynch::timeout <time></font><br>
|
||||
Maximale Zeit, die auf eine Zeitserverantwort gewartet wird. Möglich ist ein
|
||||
Wert von 1 bis 5, mehr ist nicht möglich, weil das Ergebnis sonst zu ungenau
|
||||
wäre. Default Einstellung ist hier 3 und normalerweise sollte es keinen Grund
|
||||
geben, dies zu ändern.
|
||||
<p><font class="set">set::pingpong-warning<yes|no></font><br>
|
||||
Die Versuche von Name-Servern einen falschen Hostnamen zurückzuliefern, werden
|
||||
Spoofing (Reinlegen) genannt. Um sich davor zu schützen, kann der Resolver so
|
||||
konfiguriert werden, daß er überprüft, ob die gegebene IP-Adresse auch
|
||||
tatsächlich zum erhaltenen Hostnamen gehört. Wenn dies nicht der Fall ist,
|
||||
wird der Name verworfen und ein Fehler zurückgeliefert. Dieses Verhalten wird
|
||||
mit nospoof on eingestellt. Wenn NOSPOOF aktiviert ist (üblicherweise in
|
||||
Windows), wird aene Warnung an jeden User geschickt, '/quote pong ..' zu
|
||||
benutzen, wenn es beim Verbinden Probleme gibt. Voreingestellt ist 'no'.</p>
|
||||
<p><font class="set">set::watch-away-notification <yes|no></font><br>
|
||||
Ermöglicht eine AWAY Meldung in WATCH. Der Default is yes.</p>
|
||||
</div>
|
||||
<p><font class="block_section"><a name="filesblock">4.38 - Files Block</a> </font><font class="block_optional" size="3">OPTIONAL</font>
|
||||
</p>
|
||||
<p>Es ist nicht nötig, für die Default Speicherorte der MOTD und Rules Dateien
|
||||
einen <a href="#tldblock">TLD block</a> zu definieren. Der Files Block steuert
|
||||
die Default Einstellungen für diese Dateien und zusätzlich für die pidfile und
|
||||
irc.tune file. Für alles, was hier nicht angegeben ist, wird der Defaultwert
|
||||
genommen, wie er in <a href="#addtlfiles">Additional Files</a> steht.</p>
|
||||
<p>Relative Pfadnamen werden als relativ zum unrealIRCD Startverzeichnis
|
||||
interpretiert, in dem normalerweise auch die <tt>unrealircd.conf</tt> steht.
|
||||
Dieser Block kan dazu benutzt werden, mehr als einen IRCd im gleichen
|
||||
Verzeichnis laufen zu lassen. In diesem Fall sollten mindestens verschiedene
|
||||
pidfiles und tunefiles definiert werden - eines für jeden Server.</p>
|
||||
<p>Syntax:<br>
|
||||
</p>
|
||||
<pre>files {
|
||||
motd <motd file>;
|
||||
shortmotd <short motd file>;
|
||||
opermotd <oper motd file>;
|
||||
svsmotd <services motd file>;
|
||||
botmotd <bot motd file>;
|
||||
|
||||
rules <rules file>;
|
||||
|
||||
tunefile <tune file>;
|
||||
pidfile <pid file>;
|
||||
};
|
||||
</pre>
|
||||
<p> </p>
|
||||
<p>Beispiel:<br>
|
||||
</p>
|
||||
<pre>files {
|
||||
motd /etc/motd;
|
||||
|
||||
pidfile /var/lib/run/unrealircd.pid;
|
||||
};
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p><b><font size="+2"><a name="addtlfiles">5 – Additional Files</a></font></b></p><div class="desc">
|
||||
Zusätzlich zu den Konfigurationsdateien hat Unreal einige weitere Dateien,
|
||||
wie MOTD, OperMOTD, BotMOTD, und Rules. In der nachfolgenden Liste stehen die
|
||||
Namen dieser dateien und ihr Verwendungszweck.<br>
|
||||
Zu beachten ist, dass die motd Dateien (alle Typen) und die rules Dateien auch
|
||||
in einem speziellen tld Block angegeben sein können. Dies sind nur die
|
||||
in einem speziellen <a href="#tldblock"> tld Block </a>oder einem <a href="#filesblock">files
|
||||
Block</a> angegeben sein können. Dies sind nur die
|
||||
Dateien, die per Default benutzt werden (und für Anforderungen von
|
||||
MOTD/RULES).
|
||||
MOTD/RULES).<br>
|
||||
<table width="83%" border="1">
|
||||
<tr>
|
||||
<td>ircd.motd</td><td>Wird angezeigt, wenn der /motd Befehl ausgeführt wird
|
||||
@@ -3299,7 +3561,8 @@ m
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="19"><div align="center">d</div></td>
|
||||
<td height="19">User kann keine Channel PRIVMSGs empfangen</td>
|
||||
<td height="19">User kann keine Channel PRIVMSGs empfangen (mit der Ausnahme
|
||||
von Text, dem bestimmte Zeichen vorangestellt sind. Siehe hierzu: 'set::channel-command-prefix'.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="19"><div align="center">G</div></td>
|
||||
@@ -3672,13 +3935,13 @@ Befehlsliste</a></b></font></p><div class="desc">
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="33" width="267">globops <message></td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops</td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle globalen IRCops</td>
|
||||
<td width="93" height="33">IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td height="33" width="267">chatops <message></td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops mit dem
|
||||
Usermode +c</td>
|
||||
<td width="486" height="33">Schickt eine Nachricht an alle IRCops (lokal und
|
||||
global)</td>
|
||||
<td width="93" height="33">IRCop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -4177,12 +4440,19 @@ Datei</a></b></font></p>
|
||||
erhöht den Aufwand für einen Angriff oder hack.</div>
|
||||
<p><font size="+2"><b><a name="secantiexpolit">8.8 Schutz gegen Expolits</a></b></font></p>
|
||||
<div class="desc">Es gibt Kernel Patches, die es Stack- oder Heap-basierenden
|
||||
Expolits erschweren, zu arbeiten. Allerdings sollte man nicht nur primär
|
||||
Expolits erschweren, zu arbeiten. Das ist schön, allerdings sollte man nicht nur primär
|
||||
hierauf achten, es gibt weit größere Risiken mit Expolits, die andere
|
||||
Punkte, als den Kernel angreifen.... aus verschiedenen Gründen.<br>
|
||||
Eine andere Option ist es chrooting zu aktivieren (gibt es nur in *nix
|
||||
Systemen), was bedeutet, dass bei einem erfolgreichen expolit der User auf auf
|
||||
das UnrealIRCd Verzeichnis begrenzt ist und keinen Zugriff auf andere Dateien
|
||||
hat. Dies erfordert root Rechte und Änderungen in der include/config.h (suche
|
||||
nach CHROOTDIR und setze sowohl IRC_USER als auch IRC_GROUP und compiliere
|
||||
neu.)
|
||||
<p>
|
||||
<br>
|
||||
Eines allerdings sollte man tun: IMMER DIE NEUESTE VERSION BENUTZEN. Wenn man
|
||||
sich in die <a href="http://mail1.sourceforge.net/mailman/listinfo/unreal-notify"> Unreal-notify mailinglist</a> einträgt, erhält man die Ankündigung
|
||||
sich in die <a href="http://lists.sourceforge.net/mailman/listinfo/unreal-notify" target="_blank"> Unreal-notify mailinglist</a> einträgt, erhält man die Ankündigung
|
||||
über neue Versionen (unreal-notify ist nur für Ankündigungen und man
|
||||
erhält nur alle X Monate 1 Mail). Üblicherweise gibt es neue Releases, wenn
|
||||
es (bedeutende) Sicherheits Fixes gibt, aber eigentlich ist es gut, in jedem
|
||||
@@ -4256,16 +4526,14 @@ Datei</a></b></font></p>
|
||||
Übereinstimmung mit 0 oder 1 der vorhergehenden Zeichen. Dieses
|
||||
"vorhergehende Zeichen" ist auch der Punkt, worin sich das '?' in
|
||||
einer regex von einer Wildcard unterscheidet. In Wildcards bedeutet die Angabe
|
||||
von "a?c" eine Übereinstimmung mit einem "a", gefolgt von irgend einem (oder
|
||||
keinem) anderen Zeichen, gefolgt von einem "c." In Regex hat dies eine andere
|
||||
von "a?c" eine Übereinstimmung mit einem "a", gefolgt von irgend einem anderen Zeichen, gefolgt von einem "c." In Regex hat dies eine andere
|
||||
Bedeutung. Es wird auf Übereinstimmung geprüft mit 0 oder einem
|
||||
"a", gefolgt von dem Buchstaben "c". Damit
|
||||
kann durch das ? angegeben werden, wie viele "a" vorhanden
|
||||
sein dürfen. Soll das ? in einer Wildcard emuliert werden, wird der Punkt
|
||||
Operator verwendet. Der Ausdruck "a.?c" ist gleichbedeutend mit der zuvor
|
||||
Operator verwendet. Der Ausdruck "a.c" ist gleichbedeutend mit der zuvor
|
||||
beschrieben Wildcard. Geprüft wird auf Übereinstimmung mit einem
|
||||
"a", gefolgt von irgend einem oder keinen anderen Zeichen (das ?
|
||||
modifiziert den .), gefolgt von einem "c."</p><p>Der nächste
|
||||
"a", gefolgt von irgend einem anderen Zeichen, gefolgt von einem "c."</p><p>Der nächste
|
||||
Wiederholungsoperator ist der *. Auch dieser ist wieder ähnlich zum Wildcard
|
||||
Zeichen. Geprüft wird die Übereinstimmung mit 0 oder mehr der voranstehenden
|
||||
Zeichen. Zu beachten ist, dass dieses "vornstehende Zeichen" das
|
||||
|
||||
+3729
-3168
File diff suppressed because it is too large
Load Diff
+4916
-3130
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+673
-176
File diff suppressed because it is too large
Load Diff
+760
-276
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -56,7 +56,9 @@ help Opercmds {
|
||||
" a specific command.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" ADCHAT GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" ADCHAT DNS NACHAT SETIDENT";
|
||||
" ADDMOTD GLINE OPER SHUN";
|
||||
" ADDOMOTD GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" CHATOPS GZLINE REHASH SQUIT";
|
||||
" CHGHOST HTM RESTART TEMPSHUN";
|
||||
" CHGIDENT KILL RPING TRACE";
|
||||
@@ -65,8 +67,6 @@ help Opercmds {
|
||||
" CONNECT LOCOPS SAPART WALLOPS";
|
||||
" DCCDENY MKPASSWD SDESC ZLINE";
|
||||
" DIE MODULE SETHOST";
|
||||
" DNS NACHAT SETIDENT";
|
||||
" GLINE OPER SHUN";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -79,11 +79,11 @@ help Svscmds {
|
||||
" a specific command.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSNO";
|
||||
" SVS2MODE SVSLUSERS SVSNOOP SVSWATCH";
|
||||
" SVS2SNO SVSMODE SVSO SWHOIS";
|
||||
" SVSFLINE SVSMOTD SVSPART UNSQLINE";
|
||||
" SVSJOIN SVSNICK SVSSILENCE";
|
||||
" SQLINE SVSKILL SVSNLINE SVSSILENCE";
|
||||
" SVS2MODE SVSLUSERS SVSNOLAG SVSSNO";
|
||||
" SVS2SNO SVSMODE SVSNOOP SVSWATCH";
|
||||
" SVSFLINE SVSMOTD SVSO SWHOIS";
|
||||
" SVSJOIN SVSNICK SVSPART UNSQLINE";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
};
|
||||
|
||||
@@ -98,7 +98,7 @@ help Umodes {
|
||||
" N = Is a Network Administrator";
|
||||
" C = Is a Co Administrator";
|
||||
" -";
|
||||
" d = Makes it so you can not receive channel PRIVMSGs (Deaf)";
|
||||
" d = Only receive channel PRIVMSGs starting with a bot command character (Deaf)";
|
||||
" g = Can read & send to GlobOps, and LocOps";
|
||||
" h = Available for Help (Help Operator)";
|
||||
" i = Invisible (Not shown in /WHO searches)";
|
||||
@@ -114,6 +114,7 @@ help Umodes {
|
||||
" B = Marks you as being a Bot";
|
||||
" G = Filters out all Bad words in your messages with <censored>";
|
||||
" H = Hide IRCop status in /WHO and /WHOIS. (IRC Operators only)";
|
||||
" I = Hide an oper's idle time (in /whois output) from regular users.";
|
||||
" R = Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users";
|
||||
" S = For Services only. (Protects them)";
|
||||
" T = Prevents you from receiving CTCPs";
|
||||
@@ -127,7 +128,7 @@ help Snomasks {
|
||||
" server notices you will receive.";
|
||||
" Usage: /MODE nick +s <snomask>";
|
||||
" Ex: /MODE blah +s +cF-j";
|
||||
" The parameter specifies which snomasks you want (or don't want)."
|
||||
" The parameter specifies which snomasks you want (or don't want).";
|
||||
" You can also remove all snomasks by simply doing /MODE nick -s.";
|
||||
"-";
|
||||
" Below is a list of possible snomasks:";
|
||||
@@ -159,41 +160,104 @@ help Chmodes {
|
||||
" a <nickname> = Gives Channel Admin to the user";
|
||||
" q <nickname> = Gives Owner status to the user";
|
||||
" -";
|
||||
" A = Server/Net Admin only channel (settable by Admins)";
|
||||
" b <nick!ident@host> = Bans the nick!ident@host from the channel [h]";
|
||||
" (For more info on extended bantypes, see /HELPOP EXTBANS)";
|
||||
" c = Block messages containing mIRC color codes [o]";
|
||||
" C = No CTCPs allowed in the channel [o]";
|
||||
" e <nick!ident@host> = Overrides a ban for matching users [h]";
|
||||
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
||||
" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
|
||||
" G = Filters out all Bad words in messages with <censored> [o]";
|
||||
" i = A user must be invited to join the channel [h]";
|
||||
" I <nick!ident@host> = Overrides +i for matching users [h]";
|
||||
" j <joins:sec> = Throttle joins per-user to 'joins' per 'sec' seconds [o]";
|
||||
" k <key> = Users must specify <key> to join [h]";
|
||||
" l <number of max users> = Channel may hold at most <number> of users [o]";
|
||||
" m = Moderated channel (only +vhoaq users may speak) [h]";
|
||||
" n = Users outside the channel can not send PRIVMSGs to the channel [h]";
|
||||
" p = Private channel [o]";
|
||||
" r = The channel is registered (settable by services only)";
|
||||
" s = Secret channel [o]";
|
||||
" t = Only +hoaq may change the topic [h]";
|
||||
" z = Only Clients on a Secure Connection (SSL) can join [o]";
|
||||
" A = Server/Net Admin only channel (settable by Admins)";
|
||||
" C = No CTCPs allowed in the channel [o]";
|
||||
" G = Filters out all Bad words in messages with <censored> [o]";
|
||||
" M = Must be using a registered nick (+r), or have voice access to talk [o]";
|
||||
" K = /KNOCK is not allowed [o]";
|
||||
" L <chan2> = Channel link (If +l is full, the next user will auto-join <chan2>) [q]";
|
||||
" l <number of max users> = Channel may hold at most <number> of users [o]";
|
||||
" m = Moderated channel (only +vhoaq users may speak) [h]";
|
||||
" M = Must be using a registered nick (+r), or have voice access to talk [o]";
|
||||
" N = No Nickname changes are permitted in the channel [o]";
|
||||
" n = Users outside the channel can not send PRIVMSGs to the channel [h]";
|
||||
" O = IRC Operator only channel (settable by IRCops)";
|
||||
" p = Private channel [o]";
|
||||
" Q = No kicks allowed [o]";
|
||||
" R = Only registered (+r) users may join the channel [o]";
|
||||
" r = The channel is registered (settable by services only)";
|
||||
" s = Secret channel [o]";
|
||||
" S = Strips mIRC color codes [o]";
|
||||
" T = No NOTICEs allowed in the channel [o]";
|
||||
" V = /INVITE is not allowed [o]";
|
||||
" t = Only +hoaq may change the topic [h]";
|
||||
" u = Auditorium mode (/names and /who #channel only show channel ops) [q]";
|
||||
" V = /INVITE is not allowed [o]";
|
||||
" z = Only Clients on a Secure Connection (SSL) can join [o]";
|
||||
" Z = All users on the channel are on a Secure connection (SSL) [server]";
|
||||
" (This mode is set/unset by the server. Only if the channel is also +z)";
|
||||
" -";
|
||||
" [h] requires at least halfop, [o] requires at least chanop, [q] requires owner";
|
||||
" ==------------------------------oOo----------------------------==";
|
||||
};
|
||||
|
||||
help ExtBans {
|
||||
" These bans let you ban based on things other than the traditional nick!user@host";
|
||||
" mask. They also provide support for things like ``quieting'' users (on other IRCds";
|
||||
" you might do +q <hostmask>, on UnrealIRCd use +b ~q:<hostmask>).";
|
||||
" -";
|
||||
" These bantypes specify which actions are affected by a ban:";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
" | | People matching these bans can join but are unable to ";
|
||||
" ~q | quiet | speak, unless they have +v or higher. ";
|
||||
" | | Example: ";
|
||||
" | | +bb ~q:*!*@blah.blah.com ~q:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | People matching these bans cannot change nicks, unless ";
|
||||
" ~n | nickchange | they have +v or higher. ";
|
||||
" | | Example: ";
|
||||
" | | +bb ~n:*!*@*.aol.com ~n:nick*!*@* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If a user matches this, he may not join the channel. ";
|
||||
" ~j | join | He may perform all other activities if he is already on ";
|
||||
" | | the channel, such as speaking and changing his nick. ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" -";
|
||||
" These bantypes introduce new criteria which can be used:";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
" | | If the user is in this channel then (s)he is unable to ";
|
||||
" | | join. A prefix can also be specified (+/%/@/&/~) which ";
|
||||
" ~c | channel | means that it will only match if the user has that ";
|
||||
" | | rights or higher on the specified channel. ";
|
||||
" | | Example: +b ~c:#lamers, +e ~c:@#trusted ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If the realname of a user matches this then (s)he is ";
|
||||
" | | unable to join. ";
|
||||
" ~r | realname | Example: +b ~r:*Stupid_bot_script* ";
|
||||
" | | NOTE: an underscore ('_') matches both a space (' ') and";
|
||||
" | | an underscore ('_'), so this ban would ";
|
||||
" | | match 'Stupid bot script v1.4'. ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If a user has identified to services (usually NickServ) ";
|
||||
" | | and matches this nickname, then this ban will match. ";
|
||||
" | | This means this ban is really only useful for ban ";
|
||||
" ~R | registered | exemptions (+e). Example: +e ~R:Nick ";
|
||||
" | | Will allow Nick in the channel, regardless of other ";
|
||||
" | | bans, if he identified to NickServ and is using the ";
|
||||
" | | nickname Nick. ";
|
||||
" ----------------------------------------------------------------------------------";
|
||||
" | | If a user is logged in to services with this account ";
|
||||
" | | name, then this ban will match. ";
|
||||
" | | This is slightly different than ~R, in the sense that ";
|
||||
" ~a | account | a user with nick ABC may be logged in under account XYZ.";
|
||||
" | | Not all services packages support this, in which case ";
|
||||
" | | you will have to use ~R instead. ";
|
||||
" | | Example: +e ~a:Name ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
"You may stack extended bans from the first group with the second group.";
|
||||
"For example +b ~q:~c:#lamers would quiet all users who have joined #lamers.";
|
||||
"Bans from the second group may also be used for invite exceptions (+I),";
|
||||
"such as +I ~c:#trusted and +I ~a:accountname.";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
" The +f channel mode provides comprehensive flood protection for a channel.";
|
||||
" This mode allows you to prevent join, nick change, CTCP, text, and knock";
|
||||
@@ -207,7 +271,7 @@ help Chmodef {
|
||||
" ==-----Type-----Name--------Default Action---Other Actions-----==";
|
||||
" c CTCP +C m, M";
|
||||
" j Join +i R";
|
||||
" k Knock +k";
|
||||
" k Knock +K";
|
||||
" m Messages +m M";
|
||||
" n Nickchange +N";
|
||||
" t Text kick b";
|
||||
@@ -752,10 +816,10 @@ help Nachat {
|
||||
};
|
||||
|
||||
help Kill {
|
||||
" Forcefully Disconnects a user from an IRC Server.";
|
||||
" Forcefully Disconnects users from an IRC Server.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: KILL <user> <reason>";
|
||||
" Syntax: KILL <user1>,<user2>,<user3>,... <reason>";
|
||||
" Example: KILL Jack16 Cloning is not allowed";
|
||||
};
|
||||
|
||||
@@ -859,19 +923,22 @@ help Rehash {
|
||||
" Prompts the server to reread the configuration files.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: REHASH <servername> -<flags>";
|
||||
" REHASH -<flags>";
|
||||
" Syntax: REHASH <servername> [flag]";
|
||||
" REHASH -global [flag]";
|
||||
" REHASH [flag]";
|
||||
" -";
|
||||
" If servername and flags are not specified this rehashes the";
|
||||
" unrealircd.conf , removing any temporary k:lines.";
|
||||
" If servername is specified, this is used to rehash config files on servername.";
|
||||
" Only NetAdmins may specify a server name.";
|
||||
" If servername and flag are not specified this rehashes the";
|
||||
" unrealircd.conf, and re-reads all MOTD, BOTMOTD, OPERMOTD and RULES files.";
|
||||
" If servername is specified, this is used to rehash the remote server.";
|
||||
" If -global is specified, then all servers on the network are rehashed.";
|
||||
" Only NetAdmins may specify a server name and use -global.";
|
||||
" -";
|
||||
" The flags are used to rehash other config files, valid flags are:";
|
||||
" -motd - Rehashes all MOTD files and RULES files (including tld{})";
|
||||
" -opermotd - Rehashes the OPERMOTD";
|
||||
" -botmotd - Rehashes the BOTMOTD";
|
||||
" -dns - Reinitializes and reloads the resolver";
|
||||
" -garbage - Force garbage collection";
|
||||
" -motd - Only re-read all MOTD, BOTMOTD, OPERMOTD and RULES files";
|
||||
" (including those in tld{} blocks)";
|
||||
" -ssl - Reloads SSL certificates";
|
||||
};
|
||||
|
||||
help Restart {
|
||||
@@ -1039,7 +1106,7 @@ help Sdesc {
|
||||
};
|
||||
|
||||
help Mkpasswd {
|
||||
" This command will return a 'hash' of the string that has been specified,"
|
||||
" This command will return a 'hash' of the string that has been specified,";
|
||||
" you can use this hash for any encrypted passwords in your configuration file:";
|
||||
" eg: for oper::password, vhost::password, etc.";
|
||||
" Available types (in order of 'secureness'):";
|
||||
@@ -1132,7 +1199,7 @@ help Svskill {
|
||||
};
|
||||
|
||||
help Svsnoop {
|
||||
" Enables or disables whether Global IRCop functions";
|
||||
" Enables or disables whether IRCop functions";
|
||||
" exist on the server in question or not.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
@@ -1226,9 +1293,11 @@ help Svsnline {
|
||||
" Must be sent through an U:Lined server.";
|
||||
" The reason must be a single parameter therefore";
|
||||
" spaces are indicated by _, Unreal will internally";
|
||||
" translate these to spaces";
|
||||
" translate these to spaces.";
|
||||
" -";
|
||||
" Syntax: SVSNLINE +/- <reason_for_ban> :<realname>";
|
||||
" Syntax: SVSNLINE + <reason_for_ban> :<realname> (To add a ban)";
|
||||
" SVSNLINE - :<realname> (To remove a ban)";
|
||||
" SVSNLINE * (To clear all bans)";
|
||||
" Example: SVSNLINE + sub7_drone :*sub7*";
|
||||
};
|
||||
|
||||
@@ -1244,18 +1313,18 @@ help Svslusers {
|
||||
|
||||
help Svswatch {
|
||||
" Changes the WATCH list of a user.";
|
||||
" Must be sent trough an U:Lined server.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Syntax: SVSWATCH <nick> :<watch parameters>";
|
||||
" Example: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
|
||||
};
|
||||
|
||||
help Svssilence {
|
||||
" Changes the SILENCE list of a user.";
|
||||
" Must be sent trough an U:Lined server.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" In contrast to the SILENCE command, you can add/remove";
|
||||
" multiple entries in one line.";
|
||||
" Syntax: SVSSILENCE <nick> :<silence parameters>";
|
||||
" Example: SILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
|
||||
" Example: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
|
||||
};
|
||||
|
||||
help Svssno {
|
||||
@@ -1272,9 +1341,24 @@ help Svs2sno {
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2SNO <nickname> <snomasks>";
|
||||
" Example: SVSSNO joe +Gc";
|
||||
" Example: SVS2SNO joe +Gc";
|
||||
};
|
||||
|
||||
help Svsnolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSNOLAG [+|-] <nickname>";
|
||||
" Example: SVSNOLAG + joe";
|
||||
};
|
||||
|
||||
help Svs2nolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2NOLAG [+|-] <nickname>";
|
||||
" Example: SVS2NOLAG + joe";
|
||||
};
|
||||
|
||||
help Spamfilter {
|
||||
" This command adds/removes global spam filters.";
|
||||
@@ -1289,7 +1373,7 @@ help Spamfilter {
|
||||
" 'kill', 'tempshun' (only shun current session), 'shun',";
|
||||
" 'kline', 'gline', 'zline', 'gzline', 'block' (blocks the msg),";
|
||||
" 'dccblock' (unable to send any dccs), 'viruschan' (part all channels";
|
||||
" and join the virus help chan).";
|
||||
" and join the virus help chan), 'warn' (warn for IRC Operators).";
|
||||
" [regex] this is the actual regex where we should block on";
|
||||
" [tkltime] the duration of the *LINEs placed by action (use '-' to use the default";
|
||||
" set::spamfilter::ban-time, this value is ignored for block/tempshun');";
|
||||
@@ -1325,3 +1409,17 @@ help DccAllow {
|
||||
* stuff quickly gets out-of-synch.
|
||||
*/
|
||||
};
|
||||
|
||||
help Addmotd {
|
||||
" Adds a line to the end of the MOTD ";
|
||||
" -";
|
||||
" Syntax: ADDMOTD <text>";
|
||||
" Example: ADDMOTD Play nice!";
|
||||
};
|
||||
|
||||
help Addomotd {
|
||||
" Adds a line to the end of the OPERMOTD ";
|
||||
" -";
|
||||
" Syntax: ADDOMOTD <text>";
|
||||
" Example: ADDOMOTD Abuse it and lose it!";
|
||||
};
|
||||
|
||||
@@ -30,6 +30,7 @@ typedef struct {
|
||||
#define AUTHTYPE_SHA1 3
|
||||
#define AUTHTYPE_SSL_CLIENTCERT 4
|
||||
#define AUTHTYPE_RIPEMD160 5
|
||||
#define AUTHTYPE_SSL_CLIENTCERTFP 6
|
||||
|
||||
/* md5 is always available and enabled as of Unreal3.2.1 */
|
||||
#define AUTHENABLE_MD5
|
||||
@@ -37,6 +38,7 @@ typedef struct {
|
||||
#define AUTHENABLE_SHA1
|
||||
#define AUTHENABLE_SSL_CLIENTCERT
|
||||
#define AUTHENABLE_RIPEMD160
|
||||
#define AUTHENABLE_SSL_CLIENTCERTFP
|
||||
/* OpenSSL provides a crypt() */
|
||||
#ifndef AUTHENABLE_UNIXCRYPT
|
||||
#define AUTHENABLE_UNIXCRYPT
|
||||
|
||||
@@ -5,11 +5,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include "tre/regex.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
|
||||
#define MAX_MATCH 1
|
||||
#define MAX_WORDLEN 64
|
||||
|
||||
+4
-2
@@ -265,7 +265,8 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
|
||||
|
||||
/* Server-Server PROTOCTL -Stskeeps
|
||||
* Please check send_proto() for more. -- Syzop
|
||||
* This is the FIRST line only, please check send_proto() for more. -- Syzop
|
||||
* Also take MAXPARA into account !
|
||||
*/
|
||||
#define PROTOCTL_SERVER "NOQUIT" \
|
||||
" TOKEN" \
|
||||
@@ -278,7 +279,8 @@ extern struct SLink *find_user_link( /* struct SLink *, struct Client * */ );
|
||||
" NS" \
|
||||
" SJB64" \
|
||||
" TKLEXT" \
|
||||
" NICKIP"
|
||||
" NICKIP" \
|
||||
" ESVID"
|
||||
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
|
||||
+87
-42
@@ -70,6 +70,16 @@
|
||||
|
||||
#undef NO_FDLIST
|
||||
|
||||
/*
|
||||
* Defining this will enable poll() usage instead of select().
|
||||
* This is the default on *NIX as of 3.2.10.
|
||||
* On Windows this would require Vista or newer so we stick with
|
||||
* select for now.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define USE_POLL
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Defining this will allow all ircops to see people in +s channels
|
||||
* By default, only net/tech admins can see this
|
||||
@@ -99,6 +109,24 @@
|
||||
*/
|
||||
#define REMOTE_REHASH
|
||||
|
||||
/*
|
||||
* Special remote include caching, see this Changelog item:
|
||||
* - Added special caching of remote includes. When a remote include fails to
|
||||
* load (for example when the webserver is down), then the most recent
|
||||
* version of that remote include will be used, and the ircd will still boot
|
||||
* and be able to rehash. Even though this is quite a simple feature, it
|
||||
* can make a key difference when deciding to roll out remote includes on
|
||||
* your network. Previously, servers would be unable to boot or rehash when
|
||||
* the webserver was down, which would be a big problem (often unacceptable).
|
||||
* The latest version of fetched urls are cached in the cache/ directory as
|
||||
* cache/<md5 hash of url>.
|
||||
* Obviously, if there's no 'latest version' and an url fails, the ircd will
|
||||
* still not be able to boot. This would be the case if you added or changed
|
||||
* the path of a remote include and it's trying to fetch it for the first time.
|
||||
* There usually is no reason to disable this.
|
||||
*/
|
||||
#define REMOTEINC_SPECIALCACHE
|
||||
|
||||
/*
|
||||
Stripbadwords patch
|
||||
*/
|
||||
@@ -112,6 +140,8 @@
|
||||
/*
|
||||
* THROTTLING
|
||||
* This will only allow 1 connection per ip in set::throttle::period time
|
||||
* NOTE: There's no reason to disable this (anymore) since it can be fully
|
||||
* configured in the unrealircd.conf. Keep the define...
|
||||
*/
|
||||
#define THROTTLING
|
||||
|
||||
@@ -139,6 +169,13 @@
|
||||
*/
|
||||
#undef JOIN_INSTEAD_OF_SJOIN_ON_REMOTEJOIN
|
||||
|
||||
/*
|
||||
* So called 'smart' banning: if this is enabled and a ban on like *!*@*h.com is present,
|
||||
* then you cannot add a ban like *!*@*blah.com. In other words.. the ircd tries to be "smart".
|
||||
* In general this is considered quite annoying. This was on by default until Unreal 3.2.8.
|
||||
*/
|
||||
#undef SOCALLEDSMARTBANNING
|
||||
|
||||
/*
|
||||
** Freelinks garbage collector -Stskeeps
|
||||
**
|
||||
@@ -198,8 +235,12 @@
|
||||
|
||||
/*
|
||||
* Full pathnames and defaults of irc system's support files. Please note that
|
||||
* these are only the recommened names and paths. Change as needed.
|
||||
* You must define these to something, even if you don't really want them.
|
||||
* these are only the recommened names and paths. You must define PPATH if you
|
||||
* want a pidfile written. Also, IRCDTUNE should be defined because it is needed for
|
||||
* operation. All of these options are runtime-configurable (except for CPATH and LPATH)
|
||||
* in the files block of unrealircd.conf. CPATH is runtime-configurable as a command-
|
||||
* line argument. These used as the default values for options absent from the user's
|
||||
* unrealircd.conf.
|
||||
*/
|
||||
#define CPATH "unrealircd.conf" /* server configuration file */
|
||||
#define MPATH "ircd.motd" /* server MOTD file */
|
||||
@@ -214,15 +255,32 @@
|
||||
|
||||
/* CHROOTDIR
|
||||
*
|
||||
* Define for value added security if you are a rooter.
|
||||
* This enables running the IRCd chrooted (requires initial root privileges,
|
||||
* but will be dropped to IRC_USER/IRC_GROUP privileges if those are defined).
|
||||
*
|
||||
* All files you access must be in the directory you define as DPATH.
|
||||
* The directory to chroot to is simply DPATH (which is set via ./Config).
|
||||
* (This may effect the PATH locations above, though you can symlink it)
|
||||
*
|
||||
* You may want to define IRC_UID and IRC_GID
|
||||
* Usually you only simply need to enable this, and set IRC_USER and
|
||||
* IRC_GROUP, you don't need to create a special chroot environment..
|
||||
* UnrealIRCd will do that by itself (Unreal will create /dev/random,
|
||||
* etc. etc.).
|
||||
*
|
||||
* Change to '#define CHROOTDIR' to enable...
|
||||
*/
|
||||
/* #define CHROOTDIR */
|
||||
|
||||
/*
|
||||
* IRC_USER
|
||||
*
|
||||
* If you start the server as root but wish to have it run as another user,
|
||||
* define IRC_USER to that user name. This should only be defined if you
|
||||
* are running as root and even then perhaps not.
|
||||
*/
|
||||
/* #define IRC_USER "<user name>" */
|
||||
/* #define IRC_GROUP "<group name>" */
|
||||
|
||||
|
||||
/* SHOW_INVISIBLE_LUSERS
|
||||
*
|
||||
* As defined this will show the correct invisible count for anyone who does
|
||||
@@ -281,19 +339,6 @@
|
||||
#define BUFFERPOOL (18 * MAXSENDQLENGTH)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* IRC_UID
|
||||
*
|
||||
* If you start the server as root but wish to have it run as another user,
|
||||
* define IRC_UID to that UID. This should only be defined if you are running
|
||||
* as root and even then perhaps not.
|
||||
* use #define IRC_UID <uid>
|
||||
* and #define IRC_GID <gid>
|
||||
*/
|
||||
|
||||
#undef IRC_UID
|
||||
#undef IRC_GID
|
||||
|
||||
/*
|
||||
* CLIENT_FLOOD
|
||||
*
|
||||
@@ -311,17 +356,13 @@
|
||||
|
||||
#define NO_FLOOD_AWAY
|
||||
|
||||
/*
|
||||
* Define your network service names here.
|
||||
/* You can define the nickname of NickServ here (usually "NickServ").
|
||||
* This is ONLY used for the ""infamous IDENTIFY feature"", which is:
|
||||
* whenever a user connects with a server password but there isn't
|
||||
* a server password set, the password is sent to NickServ in an
|
||||
* 'IDENTIFY <pass>' message.
|
||||
*/
|
||||
#define ChanServ "ChanServ"
|
||||
#define MemoServ "MemoServ"
|
||||
#define NickServ "NickServ"
|
||||
#define OperServ "OperServ"
|
||||
#define HelpServ "HelpServ"
|
||||
#define StatServ "StatServ"
|
||||
#define InfoServ "InfoServ"
|
||||
#define BotServ "BotServ"
|
||||
|
||||
/*
|
||||
* How many open targets can one nick have for messaging nicks and
|
||||
@@ -358,7 +399,7 @@
|
||||
* 8MB or less core memory : 500 (at least 1/4 of max users)
|
||||
* 8MB-16MB core memory : 500-750 (1/4 -> 1/2 of max users)
|
||||
* 16MB-32MB core memory : 750-1000 (1/2 -> 3/4 of max users)
|
||||
* 32MB or more core memory : 1000+ (> 3/4 if max users)
|
||||
* 32MB or more core memory : 1000+ (> 3/4 of max users)
|
||||
* where max users is the expected maximum number of users.
|
||||
* (100 nicks/users ~ 25k)
|
||||
* NOTE: this is directly related to the amount of memory ircd will use whilst
|
||||
@@ -373,12 +414,13 @@
|
||||
|
||||
/*
|
||||
* Time interval to wait and if no messages have been received, then check for
|
||||
* PINGFREQUENCY and CONNECTFREQUENCY
|
||||
* pings, outgoing connects, events, and a couple of other things.
|
||||
* Imo this is quite useless nowdays, it only saves _some_ cpu on tiny networks
|
||||
* with like 10 users all of them being inactive. On a normal network with >30
|
||||
* users this value is completely irrelevant.
|
||||
* The original value here was 60 (which was [hopefuly] never reached and was
|
||||
* stupid anyway), changed to 2.
|
||||
* DO NOT SET THIS TO ANYTHING MORE THAN 5. BETTER YET, JUST LEAVE IT AT 2!
|
||||
*/
|
||||
#define TIMESEC 2
|
||||
|
||||
@@ -387,15 +429,10 @@
|
||||
* PINGFREQUENCY seconds, then the server will attempt to check for
|
||||
* an active link with a PING message. If no reply is received within
|
||||
* (PINGFREQUENCY * 2) seconds, then the connection will be closed.
|
||||
* NOTE: This is simply the class::pingfreq for the default class, nothing fancy ;)
|
||||
*/
|
||||
#define PINGFREQUENCY 120 /* Recommended value: 120 */
|
||||
|
||||
/*
|
||||
* If the connection to to uphost is down, then attempt to reconnect every
|
||||
* CONNECTFREQUENCY seconds.
|
||||
*/
|
||||
#define CONNECTFREQUENCY 600 /* Recommended value: 600 */
|
||||
|
||||
/*
|
||||
* Often net breaks for a short time and it's useful to try to
|
||||
* establishing the same connection again faster than CONNECTFREQUENCY
|
||||
@@ -429,16 +466,10 @@
|
||||
|
||||
/*
|
||||
* Use much faster badwords replace routine (>100 times faster).
|
||||
* Disabling this is not supported.
|
||||
*/
|
||||
#define FAST_BADWORD_REPLACE
|
||||
|
||||
/*
|
||||
* Only important for people using IPv6 (default should be ok for now) -Onliner
|
||||
* Because ip6.arpa is still not delegated for the 6bone (3ffe::/16)
|
||||
* this options allows you to still resolve it using ip6.int.
|
||||
*/
|
||||
#define SIXBONE_HACK
|
||||
|
||||
/*
|
||||
* Forces Unreal to use compressed IPv6 addresses rather than expanding them
|
||||
*/
|
||||
@@ -464,6 +495,16 @@
|
||||
*/
|
||||
#define JOINTHROTTLE
|
||||
|
||||
/* Detect slow spamfilters? This requires a little more cpu time when processing
|
||||
* any spamfilter (like on text/connect/..) but will save you from slowing down
|
||||
* your IRCd to a near-halt (well, in most cases.. there are still cases like when
|
||||
* it goes into a loop that it will still stall completely... forever..).
|
||||
* This is kinda experimental, and requires getrusage.
|
||||
*/
|
||||
#ifndef _WIN32
|
||||
#define SPAMFILTER_DETECTSLOW
|
||||
#endif
|
||||
|
||||
/* ------------------------- END CONFIGURATION SECTION -------------------- */
|
||||
#define MOTD MPATH
|
||||
#define RULES RPATH
|
||||
@@ -471,6 +512,10 @@
|
||||
#define CONFIGFILE CPATH
|
||||
#define IRCD_PIDFILE PPATH
|
||||
|
||||
#if defined(CHROOTDIR) && !defined(IRC_USER)
|
||||
#error "ERROR: It makes no sense to define CHROOTDIR but not IRC_USER and IRC_GROUP! Please define IRC_USER and IRC_GROUP properly as the user/group to change to."
|
||||
#endif
|
||||
|
||||
#ifdef __osf__
|
||||
#define OSF
|
||||
/* OSF defines BSD to be its version of BSD */
|
||||
|
||||
+77
-3
@@ -42,6 +42,7 @@ struct zNetwork {
|
||||
char *x_prefix_quit;
|
||||
char *x_helpchan;
|
||||
char *x_stats_server;
|
||||
char *x_sasl_server;
|
||||
};
|
||||
|
||||
enum UHAllowed { UHALLOW_ALWAYS, UHALLOW_NOCHANS, UHALLOW_REJOIN, UHALLOW_NEVER };
|
||||
@@ -80,8 +81,11 @@ struct zConfiguration {
|
||||
unsigned dont_resolve:1;
|
||||
unsigned use_ban_version:1;
|
||||
unsigned mkpasswd_for_everyone:1;
|
||||
unsigned allow_insane_bans;
|
||||
unsigned allow_part_if_shunned:1;
|
||||
unsigned use_egd;
|
||||
unsigned disable_cap:1;
|
||||
unsigned check_target_nick_bans:1;
|
||||
unsigned use_egd : 1;
|
||||
long host_timeout;
|
||||
int host_retries;
|
||||
char *name_server;
|
||||
@@ -109,20 +113,27 @@ struct zConfiguration {
|
||||
#ifdef USE_SSL
|
||||
char *x_server_cert_pem;
|
||||
char *x_server_key_pem;
|
||||
char *x_server_cipher_list;
|
||||
char *trusted_ca_file;
|
||||
long ssl_options;
|
||||
int ssl_renegotiate_bytes;
|
||||
int ssl_renegotiate_timeout;
|
||||
|
||||
#elif defined(_WIN32)
|
||||
void *bogus1, *bogus2, *bogus3;
|
||||
void *bogus1, *bogus2, *bogus3, *bogus5;
|
||||
long bogus4;
|
||||
int bogus6, bogus7;
|
||||
#endif
|
||||
enum UHAllowed userhost_allowed;
|
||||
char *restrict_usermodes;
|
||||
char *restrict_channelmodes;
|
||||
char *restrict_extendedbans;
|
||||
int new_linking_protocol;
|
||||
char *channel_command_prefix;
|
||||
long unknown_flood_bantime;
|
||||
long unknown_flood_amount;
|
||||
struct ChMode modes_on_join;
|
||||
int level_on_join;
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
unsigned char away_count;
|
||||
long away_period;
|
||||
@@ -145,7 +156,22 @@ struct zConfiguration {
|
||||
char spamfilter_vchan_deny;
|
||||
SpamExcept *spamexcept;
|
||||
char *spamexcept_line;
|
||||
long spamfilter_detectslow_warn;
|
||||
long spamfilter_detectslow_fatal;
|
||||
int spamfilter_stop_on_first_match;
|
||||
int maxbans;
|
||||
int maxbanlength;
|
||||
int timesynch_enabled;
|
||||
int timesynch_timeout;
|
||||
char *timesynch_server;
|
||||
int pingpong_warning;
|
||||
int watch_away_notification;
|
||||
int uhnames;
|
||||
aNetwork network;
|
||||
#ifdef INET6
|
||||
unsigned short default_ipv6_clone_mask;
|
||||
#endif /* INET6 */
|
||||
int ping_cookie;
|
||||
};
|
||||
|
||||
#ifndef DYNCONF_C
|
||||
@@ -178,7 +204,11 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SHOWCONNECTINFO iConf.show_connect_info
|
||||
#define OPER_ONLY_STATS iConf.oper_only_stats
|
||||
#define ANTI_SPAM_QUIT_MSG_TIME iConf.anti_spam_quit_message_time
|
||||
#ifdef HAVE_RAND_EGD
|
||||
#define USE_EGD iConf.use_egd
|
||||
#else
|
||||
#define USE_EGD 0
|
||||
#endif
|
||||
#define EGD_PATH iConf.egd_path
|
||||
|
||||
#define ircnetwork iConf.network.x_ircnetwork
|
||||
@@ -195,6 +225,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define hidden_host iConf.network.x_hidden_host
|
||||
#define helpchan iConf.network.x_helpchan
|
||||
#define STATS_SERVER iConf.network.x_stats_server
|
||||
#define SASL_SERVER iConf.network.x_sasl_server
|
||||
#define iNAH iConf.network.x_inah
|
||||
#define prefix_quit iConf.network.x_prefix_quit
|
||||
#define SSL_SERVER_CERT_PEM (iConf.x_server_cert_pem ? iConf.x_server_cert_pem : "server.cert.pem")
|
||||
@@ -206,6 +237,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define RESTRICT_USERMODES iConf.restrict_usermodes
|
||||
#define RESTRICT_CHANNELMODES iConf.restrict_channelmodes
|
||||
#define RESTRICT_EXTENDEDBANS iConf.restrict_extendedbans
|
||||
#define NEW_LINKING_PROTOCOL iConf.new_linking_protocol
|
||||
#ifdef THROTTLING
|
||||
#define THROTTLING_PERIOD iConf.throttle_period
|
||||
#define THROTTLING_COUNT iConf.throttle_count
|
||||
@@ -214,6 +246,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define UNKNOWN_FLOOD_BANTIME iConf.unknown_flood_bantime
|
||||
#define UNKNOWN_FLOOD_AMOUNT iConf.unknown_flood_amount
|
||||
#define MODES_ON_JOIN iConf.modes_on_join.mode
|
||||
#define LEVEL_ON_JOIN iConf.level_on_join
|
||||
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
#define AWAY_PERIOD iConf.away_period
|
||||
@@ -226,6 +259,7 @@ extern MODVAR aConfiguration iConf;
|
||||
#define IDENT_READ_TIMEOUT iConf.ident_read_timeout
|
||||
|
||||
#define MKPASSWD_FOR_EVERYONE iConf.mkpasswd_for_everyone
|
||||
#define ALLOW_INSANE_BANS iConf.allow_insane_bans
|
||||
#define CHANCMDPFX iConf.channel_command_prefix
|
||||
|
||||
#define DEFAULT_BANTIME iConf.default_bantime
|
||||
@@ -238,6 +272,8 @@ extern MODVAR aConfiguration iConf;
|
||||
|
||||
#define ALLOW_PART_IF_SHUNNED iConf.allow_part_if_shunned
|
||||
|
||||
#define DISABLE_CAP iConf.disable_cap
|
||||
|
||||
#define BAN_VERSION_TKL_TIME iConf.ban_version_tkl_time
|
||||
#define SILENCE_LIMIT (iConf.silence_limit ? iConf.silence_limit : 15)
|
||||
|
||||
@@ -246,8 +282,26 @@ extern MODVAR aConfiguration iConf;
|
||||
#define SPAMFILTER_VIRUSCHAN iConf.spamfilter_virus_help_channel
|
||||
#define SPAMFILTER_VIRUSCHANDENY iConf.spamfilter_vchan_deny
|
||||
#define SPAMFILTER_EXCEPT iConf.spamexcept_line
|
||||
#define SPAMFILTER_DETECTSLOW_WARN iConf.spamfilter_detectslow_warn
|
||||
#define SPAMFILTER_DETECTSLOW_FATAL iConf.spamfilter_detectslow_fatal
|
||||
#define SPAMFILTER_STOP_ON_FIRST_MATCH iConf.spamfilter_stop_on_first_match
|
||||
|
||||
/* Used for duplicate checking */
|
||||
#define CHECK_TARGET_NICK_BANS iConf.check_target_nick_bans
|
||||
|
||||
#define MAXBANS iConf.maxbans
|
||||
#define MAXBANLENGTH iConf.maxbanlength
|
||||
|
||||
#define TIMESYNCH iConf.timesynch_enabled
|
||||
#define TIMESYNCH_TIMEOUT iConf.timesynch_timeout
|
||||
#define TIMESYNCH_SERVER iConf.timesynch_server
|
||||
|
||||
#define PINGPONG_WARNING iConf.pingpong_warning
|
||||
|
||||
#define WATCH_AWAY_NOTIFICATION iConf.watch_away_notification
|
||||
|
||||
#define UHNAMES_ENABLED iConf.uhnames
|
||||
|
||||
/* Used for "is present?" and duplicate checking */
|
||||
struct SetCheck {
|
||||
unsigned has_show_opermotd:1;
|
||||
unsigned has_hide_ulines:1;
|
||||
@@ -261,10 +315,13 @@ struct SetCheck {
|
||||
unsigned has_dont_resolve:1;
|
||||
unsigned has_mkpasswd_for_everyone:1;
|
||||
unsigned has_allow_part_if_shunned:1;
|
||||
unsigned has_disable_cap:1;
|
||||
unsigned has_ssl_egd:1;
|
||||
unsigned has_ssl_server_cipher_list :1;
|
||||
unsigned has_dns_timeout:1;
|
||||
unsigned has_dns_retries:1;
|
||||
unsigned has_dns_nameserver:1;
|
||||
unsigned has_dns_bind_ip:1;
|
||||
#ifdef THROTTLING
|
||||
unsigned has_throttle_period:1;
|
||||
unsigned has_throttle_connections:1;
|
||||
@@ -277,6 +334,10 @@ struct SetCheck {
|
||||
unsigned has_snomask_on_oper:1;
|
||||
unsigned has_auto_join:1;
|
||||
unsigned has_oper_auto_join:1;
|
||||
unsigned has_check_target_nick_bans:1;
|
||||
unsigned has_pingpong_warning:1;
|
||||
unsigned has_watch_away_notification:1;
|
||||
unsigned has_uhnames:1;
|
||||
unsigned has_oper_only_stats:1;
|
||||
unsigned has_maxchannelsperuser:1;
|
||||
unsigned has_maxdccallow:1;
|
||||
@@ -289,15 +350,19 @@ struct SetCheck {
|
||||
unsigned has_ssl_key:1;
|
||||
unsigned has_ssl_trusted_ca_file:1;
|
||||
unsigned has_ssl_options:1;
|
||||
unsigned has_renegotiate_timeout : 1;
|
||||
unsigned has_renegotiate_bytes : 1;
|
||||
#endif
|
||||
unsigned has_allow_userhost_change:1;
|
||||
unsigned has_restrict_usermodes:1;
|
||||
unsigned has_restrict_channelmodes:1;
|
||||
unsigned has_restrict_extendedbans:1;
|
||||
unsigned has_new_linking_protocol:1;
|
||||
unsigned has_channel_command_prefix:1;
|
||||
unsigned has_anti_flood_unknown_flood_bantime:1;
|
||||
unsigned has_anti_flood_unknown_flood_amount:1;
|
||||
unsigned has_modes_on_join:1;
|
||||
unsigned has_level_on_join:1;
|
||||
#ifdef NO_FLOOD_AWAY
|
||||
unsigned has_anti_flood_away_count:1;
|
||||
unsigned has_anti_flood_away_period:1;
|
||||
@@ -307,6 +372,8 @@ struct SetCheck {
|
||||
unsigned has_ident_read_timeout:1;
|
||||
unsigned has_default_bantime:1;
|
||||
unsigned has_who_limit:1;
|
||||
unsigned has_maxbans:1;
|
||||
unsigned has_maxbanlength:1;
|
||||
unsigned has_silence_limit:1;
|
||||
#ifdef NEWCHFLOODPROT
|
||||
unsigned has_modef_default_unsettime:1;
|
||||
@@ -322,6 +389,7 @@ struct SetCheck {
|
||||
unsigned has_network_name:1;
|
||||
unsigned has_default_server:1;
|
||||
unsigned has_services_server:1;
|
||||
unsigned has_sasl_server:1;
|
||||
unsigned has_hosts_global:1;
|
||||
unsigned has_hosts_admin:1;
|
||||
unsigned has_hosts_local:1;
|
||||
@@ -342,7 +410,13 @@ struct SetCheck {
|
||||
unsigned has_options_dont_resolve:1;
|
||||
unsigned has_options_show_connect_info:1;
|
||||
unsigned has_options_mkpasswd_for_everyone:1;
|
||||
unsigned has_options_allow_insane_bans:1;
|
||||
unsigned has_options_allow_part_if_shunned:1;
|
||||
unsigned has_options_disable_cap:1;
|
||||
int cgiirc_type; /* cheat :( */
|
||||
unsigned has_cgiirc_hosts:1;
|
||||
unsigned has_cgiirc_webpass:1;
|
||||
unsigned has_ping_cookie:1;
|
||||
};
|
||||
|
||||
|
||||
|
||||
+86
-36
@@ -73,6 +73,7 @@ extern MODVAR long lastsendK, lastrecvK;
|
||||
* Configuration linked lists
|
||||
*/
|
||||
extern MODVAR ConfigItem_me *conf_me;
|
||||
extern MODVAR ConfigItem_files *conf_files;
|
||||
extern MODVAR ConfigItem_class *conf_class;
|
||||
extern MODVAR ConfigItem_class *default_class;
|
||||
extern MODVAR ConfigItem_admin *conf_admin;
|
||||
@@ -112,6 +113,8 @@ extern void module_loadall(int module_load);
|
||||
extern long set_usermode(char *umode);
|
||||
extern char *get_modestr(long umodes);
|
||||
extern void config_error(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
extern void config_warn(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
|
||||
extern MODVAR int config_verbose;
|
||||
extern void config_progress(char *format, ...) __attribute__((format(printf,1,2)));
|
||||
extern void ipport_seperate(char *string, char **ip, char **port);
|
||||
@@ -123,17 +126,20 @@ ConfigItem_ulines *Find_uline(char *host);
|
||||
ConfigItem_except *Find_except(aClient *, char *host, short type);
|
||||
ConfigItem_tld *Find_tld(aClient *cptr, char *host);
|
||||
ConfigItem_link *Find_link(char *username, char *hostname, char *ip, char *servername);
|
||||
ConfigItem_cgiirc *Find_cgiirc(char *username, char *hostname, char *ip, CGIIRCType type);
|
||||
ConfigItem_ban *Find_ban(aClient *, char *host, short type);
|
||||
ConfigItem_ban *Find_banEx(aClient *,char *host, short type, short type2);
|
||||
ConfigItem_vhost *Find_vhost(char *name);
|
||||
ConfigItem_deny_channel *Find_channel_allowed(char *name);
|
||||
ConfigItem_deny_channel *Find_channel_allowed(aClient *cptr, char *name);
|
||||
ConfigItem_alias *Find_alias(char *name);
|
||||
ConfigItem_help *Find_Help(char *command);
|
||||
int AllowClient(aClient *cptr, struct hostent *hp, char *sockhost, char *username);
|
||||
int parse_netmask(const char *text, struct irc_netmask *netmask);
|
||||
int match_ip(struct IN_ADDR addr, char *uhost, char *mask, struct irc_netmask *netmask);
|
||||
#ifdef INET6
|
||||
int match_ipv6(struct IN_ADDR *addr, struct IN_ADDR *mask, int bits);
|
||||
#endif
|
||||
ConfigItem_ban *Find_ban_ip(aClient *sptr);
|
||||
extern MODVAR struct tm motd_tm, smotd_tm;
|
||||
extern MODVAR Link *Servers;
|
||||
void add_ListItem(ListStruct *, ListStruct **);
|
||||
ListStruct *del_ListItem(ListStruct *, ListStruct **);
|
||||
@@ -161,7 +167,7 @@ extern MODVAR int R_do_dns, R_fin_dns, R_fin_dnsc, R_fail_dns,
|
||||
R_do_id, R_fin_id, R_fail_id;
|
||||
|
||||
#endif
|
||||
extern inline aCommand *find_Command(char *cmd, short token, int flags);
|
||||
extern aCommand *find_Command(char *cmd, short token, int flags);
|
||||
extern aCommand *find_Command_simple(char *cmd);
|
||||
extern aChannel *find_channel(char *, aChannel *);
|
||||
extern Membership *find_membership_link(Membership *lp, aChannel *ptr);
|
||||
@@ -187,7 +193,13 @@ extern long get_access(aClient *, aChannel *);
|
||||
extern int is_chan_op(aClient *, aChannel *);
|
||||
extern int has_voice(aClient *, aChannel *);
|
||||
extern int is_chanowner(aClient *, aChannel *);
|
||||
#ifndef DISABLE_EXTBAN_STACKING
|
||||
extern int ban_check_mask(aClient *, aChannel *, char *, int, int);
|
||||
extern int extban_is_ok_nuh_extban(aClient *, aChannel *, char *, int, int, int);
|
||||
extern char* extban_conv_param_nuh_or_extban(char *);
|
||||
#endif
|
||||
extern Ban *is_banned(aClient *, aChannel *, int);
|
||||
extern Ban *is_banned_with_nick(aClient *, aChannel *, int, char *);
|
||||
extern int parse_help(aClient *, char *, char *);
|
||||
|
||||
extern void ircd_log(int, char *, ...) __attribute__((format(printf,2,3)));
|
||||
@@ -215,11 +227,11 @@ extern MODFUNC char *sock_strerror(int);
|
||||
extern int dgets(int, char *, int);
|
||||
extern char *inetntoa(char *);
|
||||
|
||||
#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF)
|
||||
/* #ifndef _WIN32 XXX why was this?? -- Syzop. */
|
||||
#ifndef HAVE_SNPRINTF
|
||||
extern int snprintf (char *str, size_t count, const char *fmt, ...);
|
||||
#endif
|
||||
#ifndef HAVE_VSNPRINTF
|
||||
extern int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
|
||||
/* #endif */
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
@@ -246,6 +258,7 @@ extern int get_sockerr(aClient *);
|
||||
extern int inetport(aClient *, char *, int);
|
||||
extern void init_sys();
|
||||
extern void init_modef();
|
||||
extern int verify_hostname(char *name);
|
||||
|
||||
#ifdef NO_FDLIST
|
||||
extern int read_message(time_t);
|
||||
@@ -261,21 +274,19 @@ extern void start_auth(aClient *);
|
||||
extern void read_authports(aClient *);
|
||||
extern void send_authports(aClient *);
|
||||
|
||||
extern void set_channel_mlock(aClient *, aClient *, aChannel *, const char *, int);
|
||||
|
||||
extern void restart(char *);
|
||||
extern void send_channel_modes(aClient *, aChannel *);
|
||||
extern void server_reboot(char *);
|
||||
extern void terminate(), write_pidfile();
|
||||
extern void *MyMallocEx(size_t size);
|
||||
extern int advanced_check(char *userhost, int ipstat);
|
||||
extern int send_queued(aClient *);
|
||||
/* i know this is naughty but :P --stskeeps */
|
||||
extern void send_channel_modes_sjoin(aClient *cptr, aChannel *chptr);
|
||||
extern void send_channel_modes_sjoin3(aClient *cptr, aChannel *chptr);
|
||||
extern void sendto_locfailops(char *pattern, ...) __attribute__((format(printf,1,2)));
|
||||
extern void sendto_connectnotice(char *nick, anUser *user, aClient *sptr, int disconnect, char *comment);
|
||||
extern void sendto_serv_butone_nickcmd(aClient *one, aClient *sptr, char *nick, int hopcount,
|
||||
long lastnick, char *username, char *realhost, char *server, long servicestamp, char *info, char *umodes,
|
||||
long lastnick, char *username, char *realhost, char *server, char *svid, char *info, char *umodes,
|
||||
char *virthost);
|
||||
extern void sendto_message_one(aClient *to, aClient *from, char *sender,
|
||||
char *cmd, char *nick, char *msg);
|
||||
@@ -298,6 +309,7 @@ extern void sendto_serv_butone_quit(aClient *, char *, ...) __attribute__((forma
|
||||
extern void sendto_serv_butone_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_serv_sjoin(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_common_channels(aClient *, char *, ...) __attribute__((format(printf,2,3)));
|
||||
extern void sendto_common_channels_local_butone(aClient *, int, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_channel_butserv(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_match_servs(aChannel *, aClient *, char *, ...) __attribute__((format(printf,3,4)));
|
||||
extern void sendto_match_butone(aClient *, aClient *, char *, int,
|
||||
@@ -321,14 +333,7 @@ extern MODVAR int writecalls, writeb[];
|
||||
extern int deliver_it(aClient *, char *, int);
|
||||
extern int check_for_chan_flood(aClient *cptr, aClient *sptr, aChannel *chptr);
|
||||
extern int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
||||
extern char *stripbadwords_message(char *str, int *);
|
||||
extern char *stripbadwords_channel(char *str, int *);
|
||||
extern char *stripbadwords_quit(char *str, int *);
|
||||
extern char *stripbadwords(char *, ConfigItem_badword *, int *);
|
||||
extern unsigned char *StripColors(unsigned char *);
|
||||
extern const char *StripControlCodes(unsigned char *text);
|
||||
extern char *canonize(char *buffer);
|
||||
extern int webtv_parse(aClient *sptr, char *string);
|
||||
extern ConfigItem_deny_dcc *dcc_isforbidden(aClient *sptr, char *filename);
|
||||
extern ConfigItem_deny_dcc *dcc_isdiscouraged(aClient *sptr, char *filename);
|
||||
extern int check_registered(aClient *);
|
||||
@@ -340,6 +345,7 @@ extern int exit_client(aClient *, aClient *, aClient *, char *);
|
||||
extern void initstats(), tstats(aClient *, char *);
|
||||
extern char *check_string(char *);
|
||||
extern char *make_nick_user_host(char *, char *, char *);
|
||||
extern char *make_nick_user_host_r(char *namebuf, char *nick, char *name, char *host);
|
||||
extern char *make_user_host(char *, char *);
|
||||
extern int parse(aClient *, char *, char *);
|
||||
extern int do_numeric(int, aClient *, aClient *, int, char **);
|
||||
@@ -347,7 +353,6 @@ extern int hunt_server(aClient *, aClient *, char *, int, int, char **);
|
||||
extern int hunt_server_token(aClient *, aClient *, char *, char *, char *, int, int, char **);
|
||||
extern int hunt_server_token_quiet(aClient *, aClient *, char *, char *, char *, int, int, char **);
|
||||
extern aClient *next_client(aClient *, char *);
|
||||
extern int m_names(aClient *, aClient *, int, char **);
|
||||
extern int m_server_estab(aClient *);
|
||||
extern void umode_init(void);
|
||||
extern long umode_get(char, int, int (*)(aClient *, int));
|
||||
@@ -385,7 +390,7 @@ extern struct hostent *get_res(char *);
|
||||
extern struct hostent *gethost_byaddr(char *, Link *);
|
||||
extern struct hostent *gethost_byname(char *, Link *);
|
||||
extern void flush_cache();
|
||||
extern int init_resolver(int);
|
||||
extern void init_resolver(int firsttime);
|
||||
extern time_t timeout_query_list(time_t);
|
||||
extern time_t expire_cache(time_t);
|
||||
extern void del_queries(char *);
|
||||
@@ -397,7 +402,7 @@ extern int add_to_client_hash_table(char *, aClient *);
|
||||
extern int del_from_client_hash_table(char *, aClient *);
|
||||
extern int add_to_channel_hash_table(char *, aChannel *);
|
||||
extern int del_from_channel_hash_table(char *, aChannel *);
|
||||
extern int add_to_watch_hash_table(char *, aClient *);
|
||||
extern int add_to_watch_hash_table(char *, aClient *, int);
|
||||
extern int del_from_watch_hash_table(char *, aClient *);
|
||||
extern int hash_check_watch(aClient *, int);
|
||||
extern int hash_del_watch_list(aClient *);
|
||||
@@ -443,6 +448,7 @@ extern MODVAR long UMODE_SETHOST; /* 0x40000000 used sethost */
|
||||
extern MODVAR long UMODE_STRIPBADWORDS; /* 0x80000000 */
|
||||
extern MODVAR long UMODE_HIDEWHOIS; /* hides channels in /whois */
|
||||
extern MODVAR long UMODE_NOCTCP; /* blocks all ctcp (except dcc and action) */
|
||||
extern MODVAR long UMODE_HIDLE; /* hides oper idle times */
|
||||
extern MODVAR long AllUmodes, SendUmodes;
|
||||
|
||||
extern MODVAR long SNO_KILLS;
|
||||
@@ -485,7 +491,6 @@ extern int dopacket(aClient *, char *, int);
|
||||
extern void debug(int, char *, ...);
|
||||
#if defined(DEBUGMODE)
|
||||
extern void send_usage(aClient *, char *);
|
||||
extern void send_listinfo(aClient *, char *);
|
||||
extern void count_memory(aClient *, char *);
|
||||
extern int checkprotoflags(aClient *, int, char *, int);
|
||||
#endif
|
||||
@@ -548,12 +553,12 @@ extern int Auth_CheckError(ConfigEntry *ce);
|
||||
extern long xbase64dec(char *b64);
|
||||
extern aClient *find_server_b64_or_real(char *name);
|
||||
extern aClient *find_server_by_base64(char *b64);
|
||||
extern aClient *find_server_by_numeric(long value);
|
||||
extern int is_chanownprotop(aClient *cptr, aChannel *chptr);
|
||||
extern int is_skochanop(aClient *cptr, aChannel *chptr);
|
||||
extern char *make_virthost(char *curr, char *new, int mode);
|
||||
extern char *make_virthost(aClient *sptr, char *curr, char *new, int mode);
|
||||
extern int channel_canjoin(aClient *sptr, char *name);
|
||||
extern char *collapse(char *pattern);
|
||||
extern void send_list(aClient *cptr, int numsend);
|
||||
extern void dcc_sync(aClient *sptr);
|
||||
extern void report_flines(aClient *sptr);
|
||||
extern void report_network(aClient *sptr);
|
||||
@@ -565,7 +570,6 @@ extern char *oflagstr(long oflag);
|
||||
extern int rehash(aClient *cptr, aClient *sptr, int sig);
|
||||
extern int _match(char *mask, char *name);
|
||||
extern void outofmemory(void);
|
||||
extern unsigned long our_crc32(const unsigned char *s, unsigned int len);
|
||||
extern int add_listener2(ConfigItem_listen *conf);
|
||||
extern void link_cleanup(ConfigItem_link *link_ptr);
|
||||
extern void listen_cleanup();
|
||||
@@ -579,8 +583,7 @@ extern int init_conf(char *filename, int rehash);
|
||||
extern void validate_configuration(void);
|
||||
extern void run_configuration(void);
|
||||
extern void rehash_motdrules();
|
||||
extern aMotd *read_file(char *filename, aMotd **list);
|
||||
extern aMotd *read_file_ex(char *filename, aMotd **list, struct tm *);
|
||||
extern void read_motd(const char *filename, aMotdFile *motd); /* s_serv.c */
|
||||
extern CMD_FUNC(m_server_remote);
|
||||
extern void send_proto(aClient *, ConfigItem_link *);
|
||||
extern char *xbase64enc(long i);
|
||||
@@ -639,13 +642,15 @@ extern void sendto_chmodemucrap(aClient *, aChannel *, char *);
|
||||
extern void verify_opercount(aClient *, char *);
|
||||
extern int valid_host(char *host);
|
||||
extern int count_oper_sessions(char *);
|
||||
extern char *unreal_mktemp(char *dir, char *suffix);
|
||||
extern char *unreal_mktemp(const char *dir, const char *suffix);
|
||||
extern char *unreal_getpathname(char *filepath, char *path);
|
||||
extern char *unreal_getfilename(char *path);
|
||||
extern int unreal_copyfile(char *src, char *dest);
|
||||
extern int unreal_copyfileex(char *src, char *dest, int tryhardlink);
|
||||
extern time_t unreal_getfilemodtime(char *filename);
|
||||
extern void unreal_setfilemodtime(char *filename, time_t mtime);
|
||||
extern char *unreal_mkcache(const char *url);
|
||||
extern int has_cached_version(const char *url);
|
||||
extern int unreal_copyfile(const char *src, const char *dest);
|
||||
extern int unreal_copyfileex(const char *src, const char *dest, int tryhardlink);
|
||||
extern time_t unreal_getfilemodtime(const char *filename);
|
||||
extern void unreal_setfilemodtime(const char *filename, time_t mtime);
|
||||
extern void DeleteTempModules(void);
|
||||
extern MODVAR Extban *extbaninfo;
|
||||
extern Extban *findmod_by_bantype(char c);
|
||||
@@ -665,6 +670,7 @@ extern Spamfilter *unreal_buildspamfilter(char *s);
|
||||
extern char *our_strcasestr(char *haystack, char *needle);
|
||||
extern int spamfilter_getconftargets(char *s);
|
||||
extern void remove_oper_snomasks(aClient *sptr);
|
||||
extern void remove_oper_modes(aClient *sptr);
|
||||
extern char *spamfilter_inttostring_long(int v);
|
||||
extern int check_channelmask(aClient *, aClient *, char *);
|
||||
extern aChannel *get_channel(aClient *cptr, char *chname, int flag);
|
||||
@@ -683,7 +689,6 @@ extern MODVAR aCtab cFlagTab[];
|
||||
extern char *unreal_encodespace(char *s);
|
||||
extern char *unreal_decodespace(char *s);
|
||||
extern MODVAR Link *helpign;
|
||||
extern MODVAR aMotd *rules;
|
||||
extern MODVAR fdlist default_fdlist, busycli_fdlist, serv_fdlist, oper_fdlist;
|
||||
extern void DCCdeny_add(char *filename, char *reason, int type, int type2);
|
||||
extern void DCCdeny_del(ConfigItem_deny_dcc *deny);
|
||||
@@ -729,16 +734,29 @@ extern MODVAR aTKline *(*tkl_expire)(aTKline * tmp);
|
||||
extern MODVAR EVENT((*tkl_check_expire));
|
||||
extern MODVAR int (*find_tkline_match)(aClient *cptr, int xx);
|
||||
extern MODVAR int (*find_shun)(aClient *cptr);
|
||||
extern MODVAR int (*find_spamfilter_user)(aClient *sptr);
|
||||
extern MODVAR int (*find_spamfilter_user)(aClient *sptr, int flags);
|
||||
extern MODVAR aTKline *(*find_qline)(aClient *cptr, char *nick, int *ishold);
|
||||
extern MODVAR int (*find_tkline_match_zap)(aClient *cptr);
|
||||
extern MODVAR int (*find_tkline_match_zap_ex)(aClient *cptr, aTKline **rettk);
|
||||
extern MODVAR void (*tkl_stats)(aClient *cptr, int type, char *para);
|
||||
extern MODVAR void (*tkl_synch)(aClient *sptr);
|
||||
extern MODVAR int (*m_tkl)(aClient *cptr, aClient *sptr, int parc, char *parv[]);
|
||||
extern MODVAR int (*place_host_ban)(aClient *sptr, int action, char *reason, long duration);
|
||||
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target);
|
||||
extern MODVAR int (*dospamfilter)(aClient *sptr, char *str_in, int type, char *target, int flags, aTKline **rettk);
|
||||
extern MODVAR int (*dospamfilter_viruschan)(aClient *sptr, aTKline *tk, int type);
|
||||
extern MODVAR void (*send_list)(aClient *cptr, int numsend);
|
||||
extern MODVAR char *(*stripbadwords_channel)(char *str, int *blocked);
|
||||
extern MODVAR char *(*stripbadwords_message)(char *str, int *blocked);
|
||||
extern MODVAR char *(*stripbadwords_quit)(char *str, int *blocked);
|
||||
extern MODVAR unsigned char *(*StripColors)(unsigned char *text);
|
||||
extern MODVAR const char *(*StripControlCodes)(unsigned char *text);
|
||||
extern MODVAR void (*spamfilter_build_user_string)(char *buf, char *nick, aClient *acptr);
|
||||
extern MODVAR int (*is_silenced)(aClient *sptr, aClient *acptr);
|
||||
extern MODVAR void (*send_protoctl_servers)(aClient *sptr, int response);
|
||||
extern MODVAR int (*verify_link)(aClient *cptr, aClient *sptr, char *servername, ConfigItem_link **link_out);
|
||||
extern MODVAR void (*send_server_message)(aClient *sptr);
|
||||
/* /Efuncs */
|
||||
extern MODVAR aMotd *opermotd, *svsmotd, *motd, *botmotd, *smotd;
|
||||
extern MODVAR aMotdFile opermotd, svsmotd, motd, botmotd, smotd, rules;
|
||||
extern MODVAR int max_connection_count;
|
||||
extern int add_listmode(Ban **list, aClient *cptr, aChannel *chptr, char *banid);
|
||||
extern int del_listmode(Ban **list, aChannel *chptr, char *banid);
|
||||
@@ -748,7 +766,8 @@ extern void chanfloodtimer_del(aChannel *chptr, char mflag, long mbit);
|
||||
extern char *clean_ban_mask(char *, int, aClient *);
|
||||
extern void chanfloodtimer_stopchantimers(aChannel *chptr);
|
||||
extern int find_invex(aChannel *chptr, aClient *sptr);
|
||||
extern void DoMD5(unsigned char *mdout, unsigned char *src, unsigned long n);
|
||||
extern void DoMD5(unsigned char *mdout, const unsigned char *src, unsigned long n);
|
||||
extern char *md5hash(unsigned char *dst, const unsigned char *src, unsigned long n);
|
||||
#ifdef JOINTHROTTLE
|
||||
aJFlood *cmodej_addentry(aClient *cptr, aChannel *chptr);
|
||||
void cmodej_delentry(aJFlood *e);
|
||||
@@ -760,4 +779,35 @@ extern void charsys_addmultibyterange(char s1, char e1, char s2, char e2);
|
||||
extern void charsys_addallowed(char *s);
|
||||
extern void charsys_reset(void);
|
||||
extern MODVAR char langsinuse[4096];
|
||||
extern MODVAR char *casemapping[2];
|
||||
extern MODVAR aTKline *tklines[TKLISTLEN];
|
||||
extern char *cmdname_by_spamftarget(int target);
|
||||
extern int isipv6(struct IN_ADDR *addr);
|
||||
extern void inet4_to_inet6(const void *src_in, void *dst_in);
|
||||
extern void unrealdns_delreq_bycptr(aClient *cptr);
|
||||
extern void inet6_to_inet4(const void *src, void *dst);
|
||||
extern void sendtxtnumeric(aClient *to, char *pattern, ...) __attribute__((format(printf,2,3)));;
|
||||
extern void unrealdns_gethostbyname_link(char *name, ConfigItem_link *conf);
|
||||
extern void unrealdns_delasyncconnects(void);
|
||||
extern int is_autojoin_chan(char *chname);
|
||||
extern void unreal_free_hostent(struct hostent *he);
|
||||
extern int match_esc(const char *mask, const char *name);
|
||||
extern int iplist_onlist(IPList *iplist, char *ip);
|
||||
extern struct hostent *unreal_create_hostent(char *name, struct IN_ADDR *addr);
|
||||
extern char *unreal_time_synch_error(void);
|
||||
extern int unreal_time_synch(int timeout);
|
||||
extern int extban_is_banned_helper(char *buf);
|
||||
extern char *getcloak(aClient *sptr);
|
||||
extern void kick_insecure_users(aChannel *);
|
||||
extern int file_exists(char* file);
|
||||
extern void free_motd(aMotdFile *motd); /* s_serv.c */
|
||||
extern void fix_timers(void);
|
||||
extern char *chfl_to_sjoin_symbol(int s);
|
||||
extern char chfl_to_chanmode(int s);
|
||||
extern void add_pending_net(aClient *sptr, char *str);
|
||||
extern void free_pending_net(aClient *sptr);
|
||||
extern aPendingNet *find_pending_net_by_numeric_butone(int numeric, aClient *exempt);
|
||||
extern aClient *find_pending_net_duplicates(aClient *cptr, aClient **srv, int *numeric);
|
||||
extern aClient *find_non_pending_net_duplicates(aClient *cptr);
|
||||
extern MODVAR char serveropts[];
|
||||
extern MODVAR char *IsupportStrings[];
|
||||
|
||||
@@ -57,3 +57,7 @@ extern __u_l inet_network();
|
||||
extern __u_l inet_lnaof();
|
||||
#endif
|
||||
#undef __u_l
|
||||
|
||||
#ifndef INADDR_NONE
|
||||
#define INADDR_NONE 0xffffffff
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ typedef struct {
|
||||
} MD5_CTX;
|
||||
|
||||
extern void MD5_Init(MD5_CTX *ctx);
|
||||
extern void MD5_Update(MD5_CTX *ctx, void *data, unsigned long size);
|
||||
extern void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size);
|
||||
extern void MD5_Final(unsigned char *result, MD5_CTX *ctx);
|
||||
|
||||
#endif
|
||||
|
||||
+41
-1
@@ -110,6 +110,7 @@ typedef struct {
|
||||
#define MOBJ_CALLBACK 0x0200
|
||||
#define MOBJ_ISUPPORT 0x0400
|
||||
#define MOBJ_EFUNCTION 0x0800
|
||||
#define MOBJ_CMODE 0x1000
|
||||
|
||||
typedef struct {
|
||||
long mode;
|
||||
@@ -222,6 +223,20 @@ typedef struct {
|
||||
* aExtCMtableParam *: their parameter
|
||||
*/
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
|
||||
/** Local channel mode? Prevents remote servers from setting/unsetting this */
|
||||
char local;
|
||||
|
||||
/** Is this mode being unloaded?
|
||||
* This is set to 1 if the chanmode module providing this mode is unloaded
|
||||
* and we are waiting to see if in our new round of loads a "new" chanmode
|
||||
* module will popup to take this mode. This only happens during a rehash,
|
||||
* should never be 0 outside an internal rehash.
|
||||
*/
|
||||
char unloaded;
|
||||
|
||||
/** Module owner */
|
||||
Module *owner;
|
||||
} Cmode;
|
||||
|
||||
typedef struct {
|
||||
@@ -234,6 +249,7 @@ typedef struct {
|
||||
void (*free_param)(CmodeParam *);
|
||||
CmodeParam * (*dup_struct)(CmodeParam *);
|
||||
int (*sjoin_check)(aChannel *, CmodeParam *, CmodeParam *);
|
||||
char local;
|
||||
} CmodeInfo;
|
||||
#endif
|
||||
|
||||
@@ -245,10 +261,11 @@ typedef struct {
|
||||
|
||||
#define EXBTYPE_BAN 0 /* a ban */
|
||||
#define EXBTYPE_EXCEPT 1 /* an except */
|
||||
#define EXBTYPE_INVEX 2 /* an invite exception */
|
||||
|
||||
#define EXTBANTABLESZ 32
|
||||
|
||||
typedef enum ExtbanOptions { EXTBOPT_CHSVSMODE=0x1 } ExtbanOptions;
|
||||
typedef enum ExtbanOptions { EXTBOPT_CHSVSMODE=0x1, EXTBOPT_ACTMODIFIER=0x2, EXTBOPT_NOSTACKCHILD=0x4, EXTBOPT_INVEX=0x8 } ExtbanOptions;
|
||||
|
||||
typedef struct {
|
||||
/** extbans module */
|
||||
@@ -334,6 +351,7 @@ typedef struct _ModuleObject {
|
||||
Callback *callback;
|
||||
Efunction *efunction;
|
||||
Isupport *isupport;
|
||||
Cmode *cmode;
|
||||
} object;
|
||||
} ModuleObject;
|
||||
|
||||
@@ -420,6 +438,7 @@ struct _Module
|
||||
unsigned char errorcode;
|
||||
char *tmp_file;
|
||||
unsigned long mod_sys_version;
|
||||
unsigned int compiler_version;
|
||||
};
|
||||
/*
|
||||
* Symbol table
|
||||
@@ -635,6 +654,13 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define HOOKTYPE_REMOTE_PART 44
|
||||
#define HOOKTYPE_REMOTE_KICK 45
|
||||
#define HOOKTYPE_LOCAL_SPAMFILTER 46
|
||||
#define HOOKTYPE_SILENCED 47
|
||||
#define HOOKTYPE_POST_SERVER_CONNECT 48
|
||||
#define HOOKTYPE_RAWPACKET_IN 49
|
||||
#define HOOKTYPE_LOCAL_NICKPASS 50
|
||||
#define HOOKTYPE_PACKET 51
|
||||
#define HOOKTYPE_HANDSHAKE 52
|
||||
#define HOOKTYPE_AWAY 53
|
||||
|
||||
/* Hook return values */
|
||||
#define HOOK_CONTINUE 0
|
||||
@@ -644,6 +670,7 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
/* Callback types */
|
||||
#define CALLBACKTYPE_CLOAK 1
|
||||
#define CALLBACKTYPE_CLOAKKEYCSUM 2
|
||||
#define CALLBACKTYPE_CLOAK_EX 3
|
||||
|
||||
/* Efunction types */
|
||||
#define EFUNC_DO_JOIN 1
|
||||
@@ -670,6 +697,19 @@ int CallCmdoverride(Cmdoverride *ovr, aClient *cptr, aClient *sptr, int parc, ch
|
||||
#define EFUNC_M_TKL 22
|
||||
#define EFUNC_PLACE_HOST_BAN 23
|
||||
#define EFUNC_DOSPAMFILTER 24
|
||||
#define EFUNC_DOSPAMFILTER_VIRUSCHAN 25
|
||||
#define EFUNC_FIND_TKLINE_MATCH_ZAP_EX 26
|
||||
#define EFUNC_SEND_LIST 27
|
||||
#define EFUNC_STRIPBADWORDS_CHANNEL 28
|
||||
#define EFUNC_STRIPBADWORDS_MESSAGE 29
|
||||
#define EFUNC_STRIPBADWORDS_QUIT 30
|
||||
#define EFUNC_STRIPCOLORS 31
|
||||
#define EFUNC_STRIPCONTROLCODES 32
|
||||
#define EFUNC_SPAMFILTER_BUILD_USER_STRING 33
|
||||
#define EFUNC_IS_SILENCED 34
|
||||
#define EFUNC_SEND_PROTOCTL_SERVERS 35
|
||||
#define EFUNC_VERIFY_LINK 36
|
||||
#define EFUNC_SEND_SERVER_MESSAGE 37
|
||||
|
||||
/* Module flags */
|
||||
#define MODFLAG_NONE 0x0000
|
||||
|
||||
+20
-12
@@ -49,11 +49,6 @@
|
||||
#else
|
||||
#define MYTOKEN_ZIP ""
|
||||
#endif
|
||||
#if defined(NOSPOOF)
|
||||
#define MYTOKEN_NOSPOOF "/NOSPF"
|
||||
#else
|
||||
#define MYTOKEN_NOSPOOF ""
|
||||
#endif
|
||||
#if !defined(EXTCMODE)
|
||||
#define MYTOKEN_EXTCMODE "/NOEXTC"
|
||||
#else
|
||||
@@ -80,12 +75,25 @@
|
||||
#define MYTOKEN_INET6 ""
|
||||
#endif
|
||||
|
||||
#ifdef UNREALCORE
|
||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
#ifdef __GNUC__
|
||||
#if defined(__GNUC_PATCHLEVEL__)
|
||||
#define GCCVER ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8) + __GNUC_PATCHLEVEL__)
|
||||
#else
|
||||
#define GCCVER ((__GNUC__ << 16) + (__GNUC_MINOR__ << 8))
|
||||
#endif
|
||||
#else
|
||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH5 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_NOSPOOF MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
#define GCCVER 0
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef UNREALCORE
|
||||
char our_mod_version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
unsigned int our_compiler_version = GCCVER;
|
||||
#else
|
||||
DLLFUNC char Mod_Version[] = BASE_VERSION PATCH1 PATCH2 PATCH3 PATCH4 PATCH6 PATCH7 PATCH8 PATCH9 \
|
||||
MYTOKEN_SSL MYTOKEN_ZIP MYTOKEN_EXTCMODE MYTOKEN_JOINTHROTTLE \
|
||||
MYTOKEN_NOFLDAWAY MYTOKEN_NEWCHF MYTOKEN_INET6;
|
||||
DLLFUNC unsigned int compiler_version = GCCVER;
|
||||
#endif
|
||||
|
||||
+3
-2
@@ -297,14 +297,15 @@
|
||||
#define MSG_EOS "EOS"
|
||||
#define TOK_EOS "ES"
|
||||
|
||||
#define MSG_MLOCK "MLOCK"
|
||||
#define TOK_MLOCK "ML"
|
||||
|
||||
#define MAXPARA 15
|
||||
|
||||
extern int m_error();
|
||||
extern int m_dns();
|
||||
extern int m_info(), m_summon();
|
||||
extern int m_users(), m_version();
|
||||
extern int m_names();
|
||||
extern int m_service();
|
||||
extern int m_dalinfo();
|
||||
extern int m_credits();
|
||||
extern int m_license();
|
||||
|
||||
@@ -1,388 +0,0 @@
|
||||
/*
|
||||
* ++Copyright++ 1983, 1989, 1993
|
||||
* -
|
||||
* Copyright (c) 1983, 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS `AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* -
|
||||
* Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies, and that
|
||||
* the name of Digital Equipment Corporation not be used in advertising or
|
||||
* publicity pertaining to distribution of the document or software without
|
||||
* specific, written prior permission.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||
* CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
* -
|
||||
* Portions Copyright (c) 1995 by International Business Machines, Inc.
|
||||
*
|
||||
* International Business Machines, Inc. (hereinafter called IBM) grants
|
||||
* permission under its copyrights to use, copy, modify, and distribute this
|
||||
* Software with or without fee, provided that the above copyright notice and
|
||||
* all paragraphs of this notice appear in all copies, and that the name of IBM
|
||||
* not be used in connection with the marketing of any product incorporating
|
||||
* the Software or modifications thereof, without specific, written prior
|
||||
* permission.
|
||||
*
|
||||
* To the extent it has a right to do so, IBM grants an immunity from suit
|
||||
* under its patents, if any, for the use, sale or manufacture of products to
|
||||
* the extent that such products are used for performing Domain Name System
|
||||
* dynamic updates in TCP/IP networks by means of the Software. No immunity is
|
||||
* granted for any product per se or for any other function of any product.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
|
||||
* DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
|
||||
* IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
* --Copyright--
|
||||
*/
|
||||
|
||||
/*
|
||||
* @(#)nameser.h 8.1 (Berkeley) 6/2/93
|
||||
* $NetBSD: nameser.h,v 1.14 2000/08/09 14:41:00 itojun Exp $
|
||||
*/
|
||||
|
||||
#ifndef _ARPA_NAMESER_H_
|
||||
#define _ARPA_NAMESER_H_
|
||||
|
||||
#ifdef PARAMH
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
|
||||
#ifdef _AUX_SOURCE
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* revision information. this is the release date in YYYYMMDD format.
|
||||
* it can change every day so the right thing to do with it is use it
|
||||
* in preprocessor commands such as "#if (__BIND > 19931104)". do not
|
||||
* compare for equality; rather, use it to determine whether your resolver
|
||||
* is new enough to contain a certain feature.
|
||||
*/
|
||||
|
||||
#define __BIND 19960801 /* interface version stamp */
|
||||
|
||||
/*
|
||||
* Define constants based on rfc883
|
||||
*/
|
||||
#define PACKETSZ 512 /* maximum packet size */
|
||||
#define MAXDNAME 1025 /* maximum presentation domain name */
|
||||
#define MAXCDNAME 255 /* maximum compressed domain name */
|
||||
#define MAXLABEL 63 /* maximum length of domain label */
|
||||
#define HFIXEDSZ 12 /* #/bytes of fixed data in header */
|
||||
#define QFIXEDSZ 4 /* #/bytes of fixed data in query */
|
||||
#define RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
|
||||
#define INT32SZ 4 /* for systems without 32-bit ints */
|
||||
#define INT16SZ 2 /* for systems without 16-bit ints */
|
||||
#define INADDRSZ 4 /* IPv4 T_A */
|
||||
#define IN6ADDRSZ 16 /* IPv6 T_AAAA */
|
||||
|
||||
/*
|
||||
* Internet nameserver port number
|
||||
*/
|
||||
#define NAMESERVER_PORT 53
|
||||
|
||||
/*
|
||||
* Currently defined opcodes
|
||||
*/
|
||||
#define QUERY 0x0 /* standard query */
|
||||
#define IQUERY 0x1 /* inverse query */
|
||||
#define STATUS 0x2 /* nameserver status query */
|
||||
/*#define xxx 0x3*/ /* 0x3 reserved */
|
||||
#define NS_NOTIFY_OP 0x4 /* notify secondary of SOA change */
|
||||
/*
|
||||
* Currently defined response codes
|
||||
*/
|
||||
#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 */
|
||||
|
||||
/*
|
||||
* 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 /* canonical 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_OPT 41 /* OPT pseudo-RR, RFC2761 */
|
||||
/* 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) */
|
||||
/* Query type values which do not appear in resource records */
|
||||
#define T_IXFR 251 /* incremental zone transfer */
|
||||
#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 (MIT) */
|
||||
#define C_HS 4 /* for Hesiod name server (MIT) (XXX) */
|
||||
/* Query class values which do not appear in resource records */
|
||||
#define C_ANY 255 /* wildcard match */
|
||||
|
||||
/*
|
||||
* Flags field of the KEY RR rdata
|
||||
*/
|
||||
#define KEYFLAG_TYPEMASK 0xC000 /* Mask for "type" bits */
|
||||
#define KEYFLAG_TYPE_AUTH_CONF 0x0000 /* Key usable for both */
|
||||
#define KEYFLAG_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */
|
||||
#define KEYFLAG_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */
|
||||
#define KEYFLAG_TYPE_NO_KEY 0xC000 /* No key usable for either; no key */
|
||||
/* The type bits can also be interpreted independently, as single bits: */
|
||||
#define KEYFLAG_NO_AUTH 0x8000 /* Key not usable for authentication */
|
||||
#define KEYFLAG_NO_CONF 0x4000 /* Key not usable for confidentiality */
|
||||
|
||||
#define KEYFLAG_EXPERIMENTAL 0x2000 /* Security is *mandatory* if bit=0 */
|
||||
#define KEYFLAG_RESERVED3 0x1000 /* reserved - must be zero */
|
||||
#define KEYFLAG_RESERVED4 0x0800 /* reserved - must be zero */
|
||||
#define KEYFLAG_USERACCOUNT 0x0400 /* key is assoc. with a user acct */
|
||||
#define KEYFLAG_ENTITY 0x0200 /* key is assoc. with entity eg host */
|
||||
#define KEYFLAG_ZONEKEY 0x0100 /* key is zone key for the zone named */
|
||||
#define KEYFLAG_IPSEC 0x0080 /* key is for IPSEC use (host or user)*/
|
||||
#define KEYFLAG_EMAIL 0x0040 /* key is for email (MIME security) */
|
||||
#define KEYFLAG_RESERVED10 0x0020 /* reserved - must be zero */
|
||||
#define KEYFLAG_RESERVED11 0x0010 /* reserved - must be zero */
|
||||
#define KEYFLAG_SIGNATORYMASK 0x000F /* key can sign DNS RR's of same name */
|
||||
|
||||
#define KEYFLAG_RESERVED_BITMASK ( KEYFLAG_RESERVED3 | \
|
||||
KEYFLAG_RESERVED4 | \
|
||||
KEYFLAG_RESERVED10| KEYFLAG_RESERVED11)
|
||||
|
||||
/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */
|
||||
#define ALGORITHM_MD5RSA 1 /* MD5 with RSA */
|
||||
#define ALGORITHM_EXPIRE_ONLY 253 /* No alg, no security */
|
||||
#define ALGORITHM_PRIVATE_OID 254 /* Key begins with OID indicating alg */
|
||||
|
||||
/* Signatures */
|
||||
/* Size of a mod or exp in bits */
|
||||
#define MIN_MD5RSA_KEY_PART_BITS 512
|
||||
#define MAX_MD5RSA_KEY_PART_BITS 2552
|
||||
/* Total of binary mod and exp, bytes */
|
||||
#define MAX_MD5RSA_KEY_BYTES ((MAX_MD5RSA_KEY_PART_BITS+7/8)*2+3)
|
||||
/* Max length of text sig block */
|
||||
#define MAX_KEY_BASE64 (((MAX_MD5RSA_KEY_BYTES+2)/3)*4)
|
||||
|
||||
/*
|
||||
* Status return codes for T_UNSPEC conversion routines
|
||||
*/
|
||||
#define CONV_SUCCESS 0
|
||||
#define CONV_OVERFLOW (-1)
|
||||
#define CONV_BADFMT (-2)
|
||||
#define CONV_BADCKSUM (-3)
|
||||
#define CONV_BADBUFLEN (-4)
|
||||
|
||||
#ifndef BYTE_ORDER
|
||||
#if (BSD >= 199103)
|
||||
# include <machine/endian.h>
|
||||
#else
|
||||
#ifdef linux
|
||||
# include <endian.h>
|
||||
#else
|
||||
#define LITTLE_ENDIAN 1234 /* least-significant byte first (vax, pc) */
|
||||
#define BIG_ENDIAN 4321 /* most-significant byte first (IBM, net) */
|
||||
#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long (pdp)*/
|
||||
|
||||
#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \
|
||||
defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \
|
||||
defined(__alpha__) || defined(__alpha) || defined(__vax__) || defined(_WIN32)
|
||||
#define BYTE_ORDER LITTLE_ENDIAN
|
||||
#endif
|
||||
|
||||
#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \
|
||||
defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \
|
||||
defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\
|
||||
defined(apollo) || defined(__convex__) || defined(_CRAY) || \
|
||||
defined(__hppa) || defined(__hp9000) || \
|
||||
defined(__hp9000s300) || defined(__hp9000s700) || \
|
||||
defined (BIT_ZERO_ON_LEFT) || defined(m68k)
|
||||
#define BYTE_ORDER BIG_ENDIAN
|
||||
#endif
|
||||
#endif /* linux */
|
||||
#endif /* BSD */
|
||||
#endif /* BYTE_ORDER */
|
||||
|
||||
#if !defined(BYTE_ORDER) || \
|
||||
(BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \
|
||||
BYTE_ORDER != PDP_ENDIAN)
|
||||
/* you must determine what the correct bit order is for
|
||||
* your compiler - the next line is an intentional error
|
||||
* which will force your compiles to bomb until you fix
|
||||
* the above macros.
|
||||
*/
|
||||
#error "Undefined or invalid BYTE_ORDER";
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Structure for query header. The order of the fields is machine- and
|
||||
* compiler-dependent, depending on the byte/bit order and the layout
|
||||
* of bit fields. We use bit fields only in int variables, as this
|
||||
* is all ANSI requires. This requires a somewhat confusing rearrangement.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
unsigned id :16; /* query identification number */
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
/* fields in third byte */
|
||||
unsigned qr: 1; /* response flag */
|
||||
unsigned opcode: 4; /* purpose of message */
|
||||
unsigned aa: 1; /* authoritive answer */
|
||||
unsigned tc: 1; /* truncated message */
|
||||
unsigned rd: 1; /* recursion desired */
|
||||
/* fields in fourth byte */
|
||||
unsigned ra: 1; /* recursion available */
|
||||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||
unsigned ad: 1; /* authentic data from named */
|
||||
unsigned cd: 1; /* checking disabled by resolver */
|
||||
unsigned rcode :4; /* response code */
|
||||
#endif
|
||||
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
|
||||
/* fields in third byte */
|
||||
unsigned rd :1; /* recursion desired */
|
||||
unsigned tc :1; /* truncated message */
|
||||
unsigned aa :1; /* authoritive answer */
|
||||
unsigned opcode :4; /* purpose of message */
|
||||
unsigned qr :1; /* response flag */
|
||||
/* fields in fourth byte */
|
||||
unsigned rcode :4; /* response code */
|
||||
unsigned cd: 1; /* checking disabled by resolver */
|
||||
unsigned ad: 1; /* authentic data from named */
|
||||
unsigned unused :1; /* unused bits (MBZ as of 4.9.3a3) */
|
||||
unsigned ra :1; /* recursion available */
|
||||
#endif
|
||||
/* remaining bytes */
|
||||
unsigned qdcount :16; /* number of question entries */
|
||||
unsigned ancount :16; /* number of answer entries */
|
||||
unsigned nscount :16; /* number of authority entries */
|
||||
unsigned arcount :16; /* number of resource entries */
|
||||
} HEADER;
|
||||
|
||||
/*
|
||||
* Defines for handling compressed domain names
|
||||
*/
|
||||
#define INDIR_MASK 0xc0
|
||||
|
||||
|
||||
/*
|
||||
* Inline versions of get/put short/long. Pointer is advanced.
|
||||
*
|
||||
* These macros demonstrate the property of C whereby it can be
|
||||
* portable or it can be elegant but rarely both.
|
||||
*/
|
||||
#define GETSHORT(s, cp) { \
|
||||
register const u_char *t_cp = (const u_char *)(cp); \
|
||||
(s) = ((const u_int16_t)t_cp[0] << 8) \
|
||||
| ((const u_int16_t)t_cp[1]) \
|
||||
; \
|
||||
(cp) += INT16SZ; \
|
||||
}
|
||||
|
||||
#define GETLONG(l, cp) { \
|
||||
register const u_char *t_cp = (const u_char *)(cp); \
|
||||
(l) = ((const u_int32_t)t_cp[0] << 24) \
|
||||
| ((const u_int32_t)t_cp[1] << 16) \
|
||||
| ((const u_int32_t)t_cp[2] << 8) \
|
||||
| ((const u_int32_t)t_cp[3]) \
|
||||
; \
|
||||
(cp) += INT32SZ; \
|
||||
}
|
||||
|
||||
#define PUTSHORT(s, cp) { \
|
||||
register u_int16_t t_s = (u_int16_t)(s); \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
*t_cp++ = (u_int32_t)t_s >> 8; \
|
||||
*t_cp = t_s; \
|
||||
(cp) += INT16SZ; \
|
||||
}
|
||||
|
||||
#define PUTLONG(l, cp) { \
|
||||
register u_int32_t t_l = (u_int32_t)(l); \
|
||||
register u_char *t_cp = (u_char *)(cp); \
|
||||
*t_cp++ = t_l >> 24; \
|
||||
*t_cp++ = t_l >> 16; \
|
||||
*t_cp++ = t_l >> 8; \
|
||||
*t_cp = t_l; \
|
||||
(cp) += INT32SZ; \
|
||||
}
|
||||
|
||||
#endif /* _ARPA_NAMESER_H_ */
|
||||
|
||||
@@ -53,6 +53,8 @@
|
||||
#define ERR_NOSUCHSERVICE 408
|
||||
#define ERR_NOORIGIN 409
|
||||
|
||||
#define ERR_INVALIDCAPCMD 410
|
||||
|
||||
#define ERR_NORECIPIENT 411
|
||||
#define ERR_NOTEXTTOSEND 412
|
||||
#define ERR_NOTOPLEVEL 413
|
||||
@@ -180,6 +182,9 @@
|
||||
#define RPL_LISTEND 323
|
||||
#define RPL_CHANNELMODEIS 324
|
||||
#define RPL_CREATIONTIME 329
|
||||
|
||||
#define RPL_WHOISLOGGEDIN 330 /* ircu/charybdis-family --nenolod */
|
||||
|
||||
#define RPL_NOTOPIC 331
|
||||
#define RPL_TOPIC 332
|
||||
#define RPL_TOPICWHOTIME 333
|
||||
@@ -336,6 +341,9 @@
|
||||
* These are also in the range 600-799.
|
||||
*/
|
||||
|
||||
#define RPL_REAWAY 597
|
||||
#define RPL_GONEAWAY 598
|
||||
#define RPL_NOTAWAY 599
|
||||
#define RPL_LOGON 600
|
||||
#define RPL_LOGOFF 601
|
||||
#define RPL_WATCHOFF 602
|
||||
@@ -344,6 +352,8 @@
|
||||
#define RPL_NOWOFF 605
|
||||
#define RPL_WATCHLIST 606
|
||||
#define RPL_ENDOFWATCHLIST 607
|
||||
#define RPL_CLEARWATCH 608
|
||||
#define RPL_NOWISAWAY 609
|
||||
|
||||
#define RPL_DCCSTATUS 617
|
||||
#define RPL_DCCLIST 618
|
||||
@@ -354,8 +364,27 @@
|
||||
#define RPL_DUMPRPL 641
|
||||
#define RPL_EODUMP 642
|
||||
|
||||
#define RPL_SPAMCMDFWD 659
|
||||
|
||||
#define RPL_STARTTLS 670
|
||||
|
||||
#define RPL_WHOISSECURE 671
|
||||
|
||||
#define ERR_MLOCKRESTRICTED 742
|
||||
|
||||
#define ERR_CANNOTDOCOMMAND 972
|
||||
#define ERR_CANNOTCHANGECHANMODE 974
|
||||
|
||||
#define ERR_STARTTLS 691
|
||||
|
||||
#define RPL_LOGGEDIN 900
|
||||
#define RPL_LOGGEDOUT 901
|
||||
#define ERR_NICKLOCKED 902
|
||||
|
||||
#define RPL_SASLSUCCESS 903
|
||||
#define ERR_SASLFAIL 904
|
||||
#define ERR_SASLTOOLONG 905
|
||||
#define ERR_SASLABORTED 906
|
||||
#define ERR_SASLALREADY 907
|
||||
|
||||
#define ERR_NUMERICERR 999
|
||||
|
||||
+2
-2
@@ -52,14 +52,14 @@ EVENT(htm_calc);
|
||||
EVENT(e_check_fdlists);
|
||||
EVENT(garbage_collect);
|
||||
EVENT(loop_event);
|
||||
EVENT(deprecated_notice);
|
||||
/* support.c */
|
||||
char *my_itoa(int i);
|
||||
|
||||
/* s_serv.c */
|
||||
void load_tunefile(void);
|
||||
extern EVENT(save_tunefile);
|
||||
aMotd *read_rules(char *filename);
|
||||
aMotd *read_motd(char *filename);
|
||||
extern void read_motd(const char *filename, aMotdFile *motd);
|
||||
|
||||
/* s_user.c */
|
||||
int check_for_target_limit(aClient *sptr, void *target, const char *name);
|
||||
|
||||
+71
-66
@@ -1,74 +1,79 @@
|
||||
/*
|
||||
* ircd/res_def.h (C)opyright 1992 Darren Reed.
|
||||
/* OMG... OMG! WHAT AN INCLUDE HORROR !!! */
|
||||
#undef strcasecmp
|
||||
#undef strncasecmp
|
||||
#include <ares.h>
|
||||
#include <ares_version.h>
|
||||
#undef strcasecmp
|
||||
#undef strncasecmp
|
||||
#ifndef GOT_STRCASECMP
|
||||
#define strcasecmp mycmp
|
||||
#define strncasecmp myncmp
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
DNSREQ_CLIENT = 1,
|
||||
DNSREQ_LINKCONF = 2,
|
||||
DNSREQ_CONNECT = 3
|
||||
} DNSReqType;
|
||||
|
||||
typedef struct _dnsreq DNSReq;
|
||||
|
||||
/* Depending on the request type, some fields are filled in:
|
||||
* cptr: DNSREQ_CLIENT, DNSREQ_CONNECT
|
||||
* link: DNSREQ_LINKCONF, DNSREQ_CONNECT
|
||||
*/
|
||||
|
||||
#define RES_INITLIST 1
|
||||
#define RES_CALLINIT 2
|
||||
#define RES_INITSOCK 4
|
||||
#define RES_INITDEBG 8
|
||||
#define RES_INITCACH 16
|
||||
|
||||
#define MAXPACKET 1024
|
||||
#define MAXALIASES 35
|
||||
#define MAXADDRS 35
|
||||
|
||||
#define AR_TTL 300 /* minimum 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 */
|
||||
/* list of addresses from name server */
|
||||
struct IN_ADDR h_addr_list[MAXADDRS];
|
||||
#define h_addr h_addr_list[0] /* address, for backward compatiblity */
|
||||
struct _dnsreq {
|
||||
DNSReq *prev, *next;
|
||||
char *name; /**< Name being resolved (only for DNSREQ_LINKCONF and DNSREQ_CONNECT) */
|
||||
char ipv6; /**< Resolving for ipv6 or ipv4? */
|
||||
DNSReqType type; /**< DNS Request type (DNSREQ_*) */
|
||||
aClient *cptr; /**< Client the request is for, NULL if client died OR unavailable */
|
||||
ConfigItem_link *linkblock; /**< Linkblock */
|
||||
};
|
||||
|
||||
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;
|
||||
struct hent he;
|
||||
} ResRQ;
|
||||
typedef struct _dnscache DNSCache;
|
||||
|
||||
typedef struct cache {
|
||||
time_t expireat;
|
||||
time_t ttl;
|
||||
struct hostent he;
|
||||
struct cache *hname_next, *hnum_next, *list_next;
|
||||
} aCache;
|
||||
struct _dnscache {
|
||||
DNSCache *prev, *next; /**< Previous and next in linked list */
|
||||
DNSCache *hprev, *hnext; /**< Previous and next in hash list */
|
||||
char *name; /**< The hostname */
|
||||
struct IN_ADDR addr; /**< Stored IP address */
|
||||
time_t expires; /**< When record expires */
|
||||
};
|
||||
|
||||
typedef struct cachetable {
|
||||
aCache *num_list;
|
||||
aCache *name_list;
|
||||
} CacheTable;
|
||||
typedef struct _dnsstats DNSStats;
|
||||
|
||||
#define ARES_CACSIZE 101
|
||||
struct _dnsstats {
|
||||
unsigned int cache_hits;
|
||||
unsigned int cache_misses;
|
||||
unsigned int cache_adds;
|
||||
};
|
||||
|
||||
#define MAXCACHED 81
|
||||
#ifdef _WIN32
|
||||
typedef unsigned short u_int16_t;
|
||||
#endif
|
||||
extern struct __res_state ircd_res;
|
||||
extern int ircd_res_init();
|
||||
extern u_int ircd_res_randomid();
|
||||
extern u_int16_t ircd_getshort(const u_char *msgp);
|
||||
extern u_int32_t ircd_getlong(const u_char *msgp);
|
||||
extern void ircd__putshort(register u_int16_t s, register u_char *msgp);
|
||||
extern void ircd__putlong(register u_int32_t l,register u_char *msgp);
|
||||
extern int ircd_dn_expand(const u_char *msg, const u_char *eom, const u_char *src, char *dst, int dstsiz);
|
||||
extern int __ircd_dn_skipname(const u_char *ptr, const u_char *eom);
|
||||
extern int ircd_dn_comp(const char *src, u_char *dst, int dstsiz, u_char **dnptrs, u_char **lastdnptr);
|
||||
extern int ircd_res_mkquery(int op, const char *dname, int class, int type, const u_char *data,
|
||||
int datalen, const u_char *newrr_in, u_char *buf, int buflen);
|
||||
/** Time to keep cache records. */
|
||||
#define DNSCACHE_TTL 600
|
||||
|
||||
/** Size of the hash table (prime!).
|
||||
* Consumes <this>*4 on ia32 and <this>*4 on 64 bit
|
||||
* 241 seems a good bet.. which ~1k on ia32 and ~2k on ia64.
|
||||
*/
|
||||
#define DNS_HASH_SIZE 241
|
||||
|
||||
/** Max # of entries we want in our cache.
|
||||
* This:
|
||||
* a) prevents us from using too much memory, and
|
||||
* b) prevents us from keeping useless cache records
|
||||
*
|
||||
* A dnscache item is roughly ~80 bytes in size (slightly more on x86),
|
||||
* so 241*80=~20k, which seems reasonable ;).
|
||||
*/
|
||||
#define DNS_MAX_ENTRIES DNS_HASH_SIZE
|
||||
|
||||
|
||||
extern ares_channel resolver_channel;
|
||||
|
||||
extern void init_resolver(int);
|
||||
|
||||
struct hostent *unrealdns_doclient(aClient *cptr);
|
||||
|
||||
+339
-206
@@ -1,178 +1,107 @@
|
||||
/* config.h.in. Generated automatically from configure.in by autoheader. */
|
||||
/* include/setup.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define if using alloca.c. */
|
||||
#undef C_ALLOCA
|
||||
/* Define if you have BSD signals */
|
||||
#undef BSD_RELIABLE_SIGNALS
|
||||
|
||||
/* Define to empty if the keyword does not work. */
|
||||
#undef const
|
||||
/* Set to the bufferpool size you want */
|
||||
#undef BUFFERPOOL
|
||||
|
||||
/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
|
||||
This function is required for alloca.c support on those systems. */
|
||||
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||
systems. This function is required for `alloca.c' support on those systems.
|
||||
*/
|
||||
#undef CRAY_STACKSEG_END
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef gid_t
|
||||
/* Define to 1 if using `alloca.c'. */
|
||||
#undef C_ALLOCA
|
||||
|
||||
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||
#undef HAVE_SYS_WAIT_H
|
||||
/* The default permissions for configuration files. Set to 0 to prevent
|
||||
unrealircd from calling chmod() on the files. */
|
||||
#undef DEFAULT_PERMISSIONS
|
||||
|
||||
/* Define if you have the vprintf function. */
|
||||
#undef HAVE_VPRINTF
|
||||
/* Define to disable extended ban stacking (~q:~c:\#chan, etc) */
|
||||
#undef DISABLE_STACKED_EXTBANS
|
||||
|
||||
/* Define as __inline if that's what the C compiler calls it. */
|
||||
#undef inline
|
||||
/* Define if you want to disable /set* and /chg* */
|
||||
#undef DISABLE_USERMOD
|
||||
|
||||
/* Define if the `setpgrp' function takes no argument. */
|
||||
#undef SETPGRP_VOID
|
||||
|
||||
/* Define if the setvbuf function takes the buffering type as its second
|
||||
argument and the buffer pointer as the third, as on System V
|
||||
before release 3. */
|
||||
#undef SETVBUF_REVERSED
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> doesn't define. */
|
||||
#undef size_t
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at run-time.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown
|
||||
*/
|
||||
#undef STACK_DIRECTION
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Define if your <sys/time.h> declares struct tm. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef uid_t
|
||||
|
||||
/* Define if you do not have the index function. */
|
||||
#undef NOINDEX
|
||||
|
||||
/* Define if you need the strtok function. */
|
||||
#undef NEED_STRTOK
|
||||
|
||||
/* Define if you need the strtoken function. */
|
||||
#undef NEED_STRTOKEN
|
||||
|
||||
/* Define if you have the times function. */
|
||||
#undef HAVE_TIMES
|
||||
|
||||
/* Define if you have the <stddef.h> header file. */
|
||||
#undef STDDEFH
|
||||
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
#undef STDLIBH
|
||||
|
||||
/* Define if you have the <string.h> header file. */
|
||||
#undef STRINGH
|
||||
|
||||
/* Define if you have the <strings.h> header file. */
|
||||
#undef STRINGSH
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
#undef PARAMH
|
||||
|
||||
/* Define if you have the <sys/rusage.h> header file. */
|
||||
#undef HAVE_SYS_RUSAGE_H
|
||||
|
||||
/* Define if you have the <sys/syslog.h> header file. */
|
||||
#undef SYSSYSLOGH
|
||||
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#undef UNISTDH
|
||||
|
||||
/* Define to <malloc.h> you need malloc.h. */
|
||||
#undef MALLOCH
|
||||
|
||||
/* Define if you have the <sys/rusage.h> header file. */
|
||||
#undef RUSAGEH
|
||||
|
||||
/* Define if you have the <glob.h> header file. */
|
||||
#undef GLOBH
|
||||
|
||||
/* Define if you have regex */
|
||||
#undef HAVE_REGEX
|
||||
|
||||
/* Define if you don't have bcopy */
|
||||
#undef NEED_BCOPY
|
||||
|
||||
/* Define if you don't have bcmp */
|
||||
#undef NEED_BCMP
|
||||
|
||||
/* Define if you need bzero */
|
||||
#undef NEED_BZERO
|
||||
|
||||
/* Define if you have syslog */
|
||||
#undef HAVE_SYSLOG
|
||||
|
||||
/* Define if you have vsyslog */
|
||||
#undef HAVE_VSYSLOG
|
||||
|
||||
/* Define if you want to allow SSL connections */
|
||||
#undef USE_SSL
|
||||
/* Define the location of the configuration files */
|
||||
#undef DPATH
|
||||
|
||||
/* Define if you can set the core size to unlimited */
|
||||
#undef FORCE_CORE
|
||||
|
||||
/* Define if you have strcasecmp */
|
||||
#undef GOT_STRCASECMP
|
||||
|
||||
/* Define if you need inet_addr */
|
||||
#undef NEED_INET_ADDR
|
||||
|
||||
/* Define if you need inet_ntoa */
|
||||
#undef NEED_INET_NTOA
|
||||
|
||||
/* Define if you need inet_netof */
|
||||
#undef NEED_INET_NETOF
|
||||
/* Define if you have getrusage */
|
||||
#undef GETRUSAGE_2
|
||||
|
||||
/* Define if you have gettimeofday */
|
||||
#undef GETTIMEOFDAY
|
||||
|
||||
/* Define if you have lrand48 */
|
||||
#undef LRAND48
|
||||
/* Define if you have the <glob.h> header file. */
|
||||
#undef GLOBH
|
||||
|
||||
/* Define if you have getrusage */
|
||||
#undef GETRUSAGE_2
|
||||
/* Define if you have strcasecmp */
|
||||
#undef GOT_STRCASECMP
|
||||
|
||||
/* Define if you have times */
|
||||
#undef TIMES_2
|
||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||
#undef HAVE_ALLOCA
|
||||
|
||||
/* Define if you have O_NONBLOCK */
|
||||
#undef NBLOCK_POSIX
|
||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||
*/
|
||||
#undef HAVE_ALLOCA_H
|
||||
|
||||
/* Define if you have O_NDELAY */
|
||||
#undef NBLOCK_BSD
|
||||
/* Define to 1 if you have the `bcmp' function. */
|
||||
#undef HAVE_BCMP
|
||||
|
||||
/* Define if you have FIONBIO */
|
||||
#undef NBLOCK_SYSV
|
||||
/* Define to 1 if you have the `bcopy' function. */
|
||||
#undef HAVE_BCOPY
|
||||
|
||||
/* Define if you have POSIX signals */
|
||||
#undef POSIX_SIGNALS
|
||||
/* Define to 1 if you have the `bzero' function. */
|
||||
#undef HAVE_BZERO
|
||||
|
||||
/* Define if you have BSD signals */
|
||||
#undef RELIABLE_BSD_SIGNALS
|
||||
/* Define if you have a compiler with C99 variable length array support */
|
||||
#undef HAVE_C99_VARLEN_ARRAY
|
||||
|
||||
/* Define if you have SYSV signals */
|
||||
#undef UNRELIABLE_SYSV_SIGNALS
|
||||
/* Define if you have crypt */
|
||||
#undef HAVE_CRYPT
|
||||
|
||||
/* Define these to be unsigned integral internal types,
|
||||
* of respecitvely 2 and 4 bytes in size, when not already
|
||||
* defined in <sys/types.h>, <stdlib.h> or <stddef.h> */
|
||||
#undef u_int16_t
|
||||
#undef u_int32_t
|
||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||
#undef HAVE_DOPRNT
|
||||
|
||||
/* Define if you have setproctitle */
|
||||
#undef HAVE_SETPROCTITLE
|
||||
/* Define to 1 if you have the `getrusage' function. */
|
||||
#undef HAVE_GETRUSAGE
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#undef HAVE_GETTIMEOFDAY
|
||||
|
||||
/* Define to 1 if you have the `index' function. */
|
||||
#undef HAVE_INDEX
|
||||
|
||||
/* Define to 1 if you have the `inet_addr' function. */
|
||||
#undef HAVE_INET_ADDR
|
||||
|
||||
/* Define to 1 if you have the `inet_netof' function. */
|
||||
#undef HAVE_INET_NETOF
|
||||
|
||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||
#undef HAVE_INET_NTOA
|
||||
|
||||
/* Define to 1 if you have the `inet_ntop' function. */
|
||||
#undef HAVE_INET_NTOP
|
||||
|
||||
/* Define to 1 if you have the `inet_pton' function. */
|
||||
#undef HAVE_INET_PTON
|
||||
|
||||
/* Define to 1 if the system has the type `intptr_t'. */
|
||||
#undef HAVE_INTPTR_T
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `lrand48' function. */
|
||||
#undef HAVE_LRAND48
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define if you have PS_STRINGS */
|
||||
#undef HAVE_PSSTRINGS
|
||||
@@ -180,59 +109,140 @@
|
||||
/* Define if you have pstat */
|
||||
#undef HAVE_PSTAT
|
||||
|
||||
/* Define if you have crypt */
|
||||
#undef HAVE_CRYPT
|
||||
/* Define if the libcrypto has RAND_egd */
|
||||
#undef HAVE_RAND_EGD
|
||||
|
||||
/* Local hostname of the server */
|
||||
#undef DOMAINNAME
|
||||
/* Define if you have setproctitle */
|
||||
#undef HAVE_SETPROCTITLE
|
||||
|
||||
/* The OS name and version of the server */
|
||||
#undef MYOSNAME
|
||||
/* Define to 1 if you have the `snprintf' function. */
|
||||
#undef HAVE_SNPRINTF
|
||||
|
||||
/* The default permissions for configuration files */
|
||||
#undef DEFAULT_PERMISSIONS
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define if you want spoof protection */
|
||||
#undef NOSPOOF
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define if you want +a/+q prefixes */
|
||||
#undef PREFIX_AQ
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#undef HAVE_STRCASECMP
|
||||
|
||||
/* Define if you want to compile as a hub */
|
||||
#undef HUB
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define the location of the configuration files */
|
||||
#undef DPATH
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define the location of the executable */
|
||||
#undef SPATH
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Set to the listen backlog size you want */
|
||||
#undef LISTEN_SIZE
|
||||
/* Define to 1 if you have the `strlcat' function. */
|
||||
#undef HAVE_STRLCAT
|
||||
|
||||
/* Set to the max sendq you want */
|
||||
#undef MAXSENDQLENGTH
|
||||
/* Define to 1 if you have the `strlcpy' function. */
|
||||
#undef HAVE_STRLCPY
|
||||
|
||||
/* Set to the nickname history length you want */
|
||||
#undef NICKNAMEHISTORYLENGTH
|
||||
/* Define to 1 if you have the `strlncat' function. */
|
||||
#undef HAVE_STRLNCAT
|
||||
|
||||
/* Set to the bufferpool size you want */
|
||||
#undef BUFFERPOOL
|
||||
/* Define to 1 if you have the `strtok' function. */
|
||||
#undef HAVE_STRTOK
|
||||
|
||||
/* Set to the max connections you want */
|
||||
#undef MAXCONNECTIONS
|
||||
/* Define to 1 if you have the `strtoken' function. */
|
||||
#undef HAVE_STRTOKEN
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#undef HAVE_STRTOUL
|
||||
|
||||
/* Define to 1 if you have the `syslog' function. */
|
||||
#undef HAVE_SYSLOG
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the `times' function. */
|
||||
#undef HAVE_TIMES
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */
|
||||
#undef HAVE_VPRINTF
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#undef HAVE_VSNPRINTF
|
||||
|
||||
/* Define if you want IPv6 enabled */
|
||||
#undef INET6
|
||||
|
||||
/* Set to the listen backlog size you want */
|
||||
#undef LISTEN_SIZE
|
||||
|
||||
/* Define if you want modes shown in /list */
|
||||
#undef LIST_SHOW_MODES
|
||||
|
||||
/* Define if you want nick!user@host shown for the topic setter */
|
||||
#undef TOPIC_NICK_IS_NUHOST
|
||||
/* Define if rlim_t is long long */
|
||||
#undef LONG_LONG_RLIM_T
|
||||
|
||||
/* Define if you want users to be notified when their shun is removed */
|
||||
#undef SHUN_NOTICES
|
||||
/* Define if you have lrand48 */
|
||||
#undef LRADN48
|
||||
|
||||
/* Define to <malloc.h> you need malloc.h. */
|
||||
#undef MALLOCH
|
||||
|
||||
/* Set to the max connections you want */
|
||||
#undef MAXCONNECTIONS
|
||||
|
||||
/* Set to the max sendq you want */
|
||||
#undef MAXSENDQLENGTH
|
||||
|
||||
/* Define if you have O_NDELAY */
|
||||
#undef NBLOCK_BSD
|
||||
|
||||
/* Define if you have O_NONBLOCK */
|
||||
#undef NBLOCK_POSIX
|
||||
|
||||
/* Define if you have FIONBIO */
|
||||
#undef NBLOCK_SYSV
|
||||
|
||||
/* Define if you don't have bcmp */
|
||||
#undef NEED_BCMP
|
||||
|
||||
/* Define if you don't have bcopy */
|
||||
#undef NEED_BCOPY
|
||||
|
||||
/* Define if you need bzero */
|
||||
#undef NEED_BZERO
|
||||
|
||||
/* Define if you need inet_addr */
|
||||
#undef NEED_INET_ADDR
|
||||
|
||||
/* Define if you need inet_netof */
|
||||
#undef NEED_INET_NETOF
|
||||
|
||||
/* Define if you need inet_ntoa */
|
||||
#undef NEED_INET_NTOA
|
||||
|
||||
/* Define if you need the strerror function. */
|
||||
#undef NEED_STRERROR
|
||||
|
||||
/* Define if you need the strtok function. */
|
||||
#undef NEED_STRTOK
|
||||
|
||||
/* Define if you need the strtoken function. */
|
||||
#undef NEED_STRTOKEN
|
||||
|
||||
/* Set to the nickname history length you want */
|
||||
#undef NICKNAMEHISTORYLENGTH
|
||||
|
||||
/* Define if you do not have the index function. */
|
||||
#undef NOINDEX
|
||||
|
||||
/* Define to 1 if your system has no in6addr_any. */
|
||||
#undef NO_IN6ADDR_ANY
|
||||
|
||||
/* Define if you want OperOverride disabled */
|
||||
#undef NO_OPEROVERRIDE
|
||||
@@ -240,44 +250,167 @@
|
||||
/* Define if you want opers to have to use /invite to join +s/+p channels */
|
||||
#undef OPEROVERRIDE_VERIFY
|
||||
|
||||
/* Define if you want to disable /set* and /chg* */
|
||||
#undef DISABLE_USERMOD
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
#undef PARAMH
|
||||
|
||||
/* Define if you have POSIX signals */
|
||||
#undef POSIX_SIGNALS
|
||||
|
||||
/* Define if you want +a/+q prefixes */
|
||||
#undef PREFIX_AQ
|
||||
|
||||
/* Define if you have the <sys/rusage.h> header file. */
|
||||
#undef RUSAGEH
|
||||
|
||||
/* Define to 1 if the `setpgrp' function takes no argument. */
|
||||
#undef SETPGRP_VOID
|
||||
|
||||
/* Define if you want users to be notified when their shun is removed */
|
||||
#undef SHUN_NOTICES
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
#undef SIZEOF_INT
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
#undef SIZEOF_LONG
|
||||
|
||||
/* The size of `rlim_t', as computed by sizeof. */
|
||||
#undef SIZEOF_RLIM_T
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
#undef SIZEOF_SHORT
|
||||
|
||||
/* Define the location of the executable */
|
||||
#undef SPATH
|
||||
|
||||
/* If using the C implementation of alloca, define if you know the
|
||||
direction of stack growth for your system; otherwise it will be
|
||||
automatically deduced at runtime.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
#undef STACK_DIRECTION
|
||||
|
||||
/* Link... statically(?) (defining this macro will probably cause the build
|
||||
tofail) */
|
||||
#undef STATIC_LINKING
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define if you have the <stddef.h> header file. */
|
||||
#undef STDDEFH
|
||||
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
#undef STDLIBH
|
||||
|
||||
/* Define if you have the <string.h> header file. */
|
||||
#undef STRINGH
|
||||
|
||||
/* Define if you have the <strings.h> header file. */
|
||||
#undef STRINGSH
|
||||
|
||||
/* Define if you have the <sys/syslog.h> header file. */
|
||||
#undef SYSSYSLOGH
|
||||
|
||||
/* Define if you have SYSV signals */
|
||||
#undef SYSV_UNRELIABLE_SIGNALS
|
||||
|
||||
/* Define if you have times */
|
||||
#undef TIMES_2
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||
#undef TM_IN_SYS_TIME
|
||||
|
||||
/* Define if you want nick!user@host shown for the topic setter */
|
||||
#undef TOPIC_NICK_IS_NUHOST
|
||||
|
||||
/* Define if your system prepends an underscore to symbols */
|
||||
#undef UNDERSCORE
|
||||
|
||||
/* Define if rlim_t is long long */
|
||||
#undef LONG_LONG_RLIM_T
|
||||
/* Define if you have the <unistd.h> header file. */
|
||||
#undef UNISTDH
|
||||
|
||||
/* Define if you have snprintf */
|
||||
#undef HAVE_SNPRINTF
|
||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
||||
#undef UNREAL_VERSION_GENERATION
|
||||
|
||||
/* Define if you have vsnprintf */
|
||||
#undef HAVE_VSNPRINTF
|
||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
||||
#undef UNREAL_VERSION_MAJOR
|
||||
|
||||
/* Define if you have strlcpy */
|
||||
#undef HAVE_STRLCPY
|
||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
||||
#undef UNREAL_VERSION_MINOR
|
||||
|
||||
/* Define if you have strlcat */
|
||||
#undef HAVE_STRLCAT
|
||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
||||
-rc2 for unrealircd-3.2.9-rc2) */
|
||||
#undef UNREAL_VERSION_SUFFIX
|
||||
|
||||
/* Define if you have strlncat */
|
||||
#undef HAVE_STRLNCAT
|
||||
/* Define if you have libcurl installed to get remote includes and MOTD
|
||||
support */
|
||||
#undef USE_LIBCURL
|
||||
|
||||
/* Define if you have inet_pton */
|
||||
#undef HAVE_INET_PTON
|
||||
/* Define if you want to allow SSL connections */
|
||||
#undef USE_SSL
|
||||
|
||||
/* Define if you have inet_ntop */
|
||||
#undef HAVE_INET_NTOP
|
||||
/* Define if you have zlib and want zip links support. */
|
||||
#undef ZIP_LINKS
|
||||
|
||||
/* Define if you have a compiler with C99 variable length array support */
|
||||
#undef HAVE_C99_VARLEN_ARRAY
|
||||
/* Define if you are compiling unrealircd on Sun's (or Oracle's?) Solaris */
|
||||
#undef _SOLARIS
|
||||
|
||||
/* Define if you have alloca.h */
|
||||
#undef HAVE_ALLOCA_H
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
#undef const
|
||||
|
||||
/* Define if you have alloca */
|
||||
#undef HAVE_ALLOCA
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef gid_t
|
||||
|
||||
/* Define to 1 if your system has no in6addr_any. */
|
||||
#undef NO_IN6ADDR_ANY
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
#undef inline
|
||||
#endif
|
||||
|
||||
/* Define to `short' if <sys/types.h> does not define. */
|
||||
#undef int16_t
|
||||
|
||||
/* Define to `long' if <sys/types.h> does not define. */
|
||||
#undef int32_t
|
||||
|
||||
/* Define to the type of a signed integer type wide enough to hold a pointer,
|
||||
if such a type exists, and if the system does not define it. */
|
||||
#undef intptr_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> does not define. */
|
||||
#undef mode_t
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define to `unsigned short' if <sys/types.h> does not define. */
|
||||
#undef u_int16_t
|
||||
|
||||
/* Define to `unsigned long' if <sys/types.h> does not define. */
|
||||
#undef u_int32_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#undef uid_t
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
extern SSL_CTX * ctx;
|
||||
extern SSL_CTX *ctx_server;
|
||||
extern SSL_CTX *ctx_client;
|
||||
extern MODVAR SSL_CTX *ctx;
|
||||
extern MODVAR SSL_CTX *ctx_server;
|
||||
extern MODVAR SSL_CTX *ctx_client;
|
||||
|
||||
extern SSL_METHOD *meth;
|
||||
extern void init_ssl();
|
||||
|
||||
+200
-50
@@ -24,6 +24,7 @@
|
||||
#define __struct_include__
|
||||
|
||||
#include "config.h"
|
||||
#include "sys.h"
|
||||
/* need to include ssl stuff here coz otherwise you get
|
||||
* conflicting types with isalnum/isalpha/etc @ redhat. -- Syzop
|
||||
*/
|
||||
@@ -64,19 +65,15 @@
|
||||
#include "zip.h"
|
||||
#endif
|
||||
#include "auth.h"
|
||||
#ifndef _WIN32
|
||||
#include "tre/regex.h"
|
||||
#else
|
||||
#include "win32/regex.h"
|
||||
#endif
|
||||
|
||||
#include "channel.h"
|
||||
|
||||
#if defined(_WIN32) && !defined(NOSPOOF)
|
||||
#error "Compiling win32 without nospoof is VERY insecure and NOT supported"
|
||||
#if defined(_MSC_VER)
|
||||
/* needed to workaround a warning / prototype/dll inconsistency crap */
|
||||
#define vsnprintf unrl_vsnprintf
|
||||
#endif
|
||||
|
||||
|
||||
extern MODVAR int sendanyways;
|
||||
|
||||
|
||||
@@ -94,6 +91,7 @@ typedef struct _configflag_ban ConfigFlag_ban;
|
||||
typedef struct _configflag_tld ConfigFlag_tld;
|
||||
typedef struct _configitem ConfigItem;
|
||||
typedef struct _configitem_me ConfigItem_me;
|
||||
typedef struct _configitem_files ConfigItem_files;
|
||||
typedef struct _configitem_admin ConfigItem_admin;
|
||||
typedef struct _configitem_class ConfigItem_class;
|
||||
typedef struct _configitem_oper ConfigItem_oper;
|
||||
@@ -109,6 +107,7 @@ typedef struct _configitem_allow_dcc ConfigItem_allow_dcc;
|
||||
typedef struct _configitem_vhost ConfigItem_vhost;
|
||||
typedef struct _configitem_except ConfigItem_except;
|
||||
typedef struct _configitem_link ConfigItem_link;
|
||||
typedef struct _configitem_cgiirc ConfigItem_cgiirc;
|
||||
typedef struct _configitem_ban ConfigItem_ban;
|
||||
typedef struct _configitem_badword ConfigItem_badword;
|
||||
typedef struct _configitem_deny_dcc ConfigItem_deny_dcc;
|
||||
@@ -141,7 +140,12 @@ typedef struct SChanFloodProt ChanFloodProt;
|
||||
typedef struct SRemoveFld RemoveFld;
|
||||
typedef struct ListOptions LOpts;
|
||||
typedef struct FloodOpt aFloodOpt;
|
||||
typedef struct MotdItem aMotd;
|
||||
typedef struct Motd aMotdFile; /* represents a whole MOTD, including remote MOTD support info */
|
||||
typedef struct MotdItem aMotdLine; /* one line of a MOTD stored as a linked list */
|
||||
#ifdef USE_LIBCURL
|
||||
typedef struct MotdDownload aMotdDownload; /* used to coordinate download of a remote MOTD */
|
||||
#endif
|
||||
|
||||
typedef struct trecord aTrecord;
|
||||
typedef struct Command aCommand;
|
||||
typedef struct _cmdoverride Cmdoverride;
|
||||
@@ -149,6 +153,7 @@ typedef struct SMember Member;
|
||||
typedef struct SMembership Membership;
|
||||
typedef struct SMembershipL MembershipL;
|
||||
typedef struct JFlood aJFlood;
|
||||
typedef struct PendingNet aPendingNet;
|
||||
|
||||
#ifdef ZIP_LINKS
|
||||
typedef struct Zdata aZdata;
|
||||
@@ -169,16 +174,15 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define NICKLEN 30
|
||||
#define USERLEN 10
|
||||
#define REALLEN 50
|
||||
#define SVIDLEN 30
|
||||
#define TOPICLEN 307
|
||||
#define CHANNELLEN 32
|
||||
#define PASSWDLEN 32 /* orig. 20, changed to 32 for nickpasswords */
|
||||
#define PASSWDLEN 48 /* was 20, then 32, now 48. */
|
||||
#define KEYLEN 23
|
||||
#define LINKLEN 32
|
||||
#define BUFSIZE 512 /* WARNING: *DONT* CHANGE THIS!!!! */
|
||||
#define MAXRECIPIENTS 20
|
||||
#define MAXKILLS 20
|
||||
#define MAXBANS 60
|
||||
#define MAXBANLENGTH 1024
|
||||
#define MAXSILELENGTH NICKLEN+USERLEN+HOSTLEN+10
|
||||
#define UMODETABLESZ (sizeof(long) * 8)
|
||||
/*
|
||||
@@ -232,6 +236,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
|
||||
#define STAT_LOG -7 /* logfile for -x */
|
||||
#define STAT_CONNECTING -6
|
||||
#define STAT_SSL_STARTTLS_HANDSHAKE -8
|
||||
#define STAT_SSL_CONNECT_HANDSHAKE -5
|
||||
#define STAT_SSL_ACCEPT_HANDSHAKE -4
|
||||
#define STAT_HANDSHAKE -3
|
||||
@@ -254,9 +259,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsLog(x) ((x)->status == STAT_LOG)
|
||||
|
||||
#ifdef USE_SSL
|
||||
#define IsSSLStartTLSHandshake(x) ((x)->status == STAT_SSL_STARTTLS_HANDSHAKE)
|
||||
#define IsSSLAcceptHandshake(x) ((x)->status == STAT_SSL_ACCEPT_HANDSHAKE)
|
||||
#define IsSSLConnectHandshake(x) ((x)->status == STAT_SSL_CONNECT_HANDSHAKE)
|
||||
#define IsSSLHandshake(x) (IsSSLAcceptHandshake(x) || IsSSLConnectHandshake(x))
|
||||
#define IsSSLHandshake(x) (IsSSLAcceptHandshake(x) || IsSSLConnectHandshake(x) | IsSSLStartTLSHandshake(x))
|
||||
#define SetSSLStartTLSHandshake(x) ((x)->status = STAT_SSL_STARTTLS_HANDSHAKE)
|
||||
#define SetSSLAcceptHandshake(x) ((x)->status = STAT_SSL_ACCEPT_HANDSHAKE)
|
||||
#define SetSSLConnectHandshake(x) ((x)->status = STAT_SSL_CONNECT_HANDSHAKE)
|
||||
#endif
|
||||
@@ -270,6 +277,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SetLog(x) ((x)->status = STAT_LOG)
|
||||
|
||||
#define IsSynched(x) (x->serv->flags.synced)
|
||||
#define IsServerSent(x) (x->serv && x->serv->flags.server_sent)
|
||||
|
||||
/* opt.. */
|
||||
#define OPT_SJOIN 0x0001
|
||||
@@ -290,6 +298,8 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPT_NOT_TKLEXT 0x8000
|
||||
#define OPT_NICKIP 0x10000
|
||||
#define OPT_NOT_NICKIP 0x20000
|
||||
#define OPT_CLK 0x10000
|
||||
#define OPT_NOT_CLK 0x20000
|
||||
|
||||
/* client->flags (32 bits): 28 used, 4 free */
|
||||
#define FLAGS_PINGSENT 0x0001 /* Unreplied ping sent */
|
||||
@@ -307,12 +317,12 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define FLAGS_GOTID 0x1000 /* successful ident lookup achieved */
|
||||
#define FLAGS_DOID 0x2000 /* I-lines say must use ident return */
|
||||
#define FLAGS_NONL 0x4000 /* No \n in buffer */
|
||||
#define FLAGS_TS8 0x8000 /* Why do you want to know? */
|
||||
#define FLAGS_CGIIRC 0x8000 /* CGI IRC host: flag set = ip/host data has been filled in already */
|
||||
#define FLAGS_ULINE 0x10000 /* User/server is considered U-lined */
|
||||
#define FLAGS_SQUIT 0x20000 /* Server has been /squit by an oper */
|
||||
#define FLAGS_PROTOCTL 0x40000 /* Received a PROTOCTL message */
|
||||
#define FLAGS_PING 0x80000
|
||||
#define FLAGS_ASKEDPING 0x100000
|
||||
#define FLAGS_EAUTH 0x100000
|
||||
#define FLAGS_NETINFO 0x200000
|
||||
#define FLAGS_HYBNOTICE 0x400000
|
||||
#define FLAGS_QUARANTINE 0x800000
|
||||
@@ -325,7 +335,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#ifdef USE_SSL
|
||||
#define FLAGS_SSL 0x10000000
|
||||
#endif
|
||||
#define FLAGS_UNOCCUP4 0x20000000 /* [FREE] */
|
||||
#define FLAGS_NOFAKELAG 0x20000000 /* Exception from fake lag */
|
||||
#define FLAGS_DCCBLOCK 0x40000000 /* Block all DCC send requests */
|
||||
#define FLAGS_MAP 0x80000000 /* Show this entry in /map */
|
||||
/* Dec 26th, 1997 - added flags2 when I ran out of room in flags -DuffJ */
|
||||
@@ -358,8 +368,15 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define PROTO_SJB64 0x0800
|
||||
#define PROTO_TKLEXT 0x1000 /* TKL extension: 10 parameters instead of 8 (3.2RC2) */
|
||||
#define PROTO_NICKIP 0x2000 /* Send IP addresses in the NICK command */
|
||||
|
||||
/* note: client->proto is currently a 'short' (max is 0x8000) */
|
||||
#define PROTO_NAMESX 0x4000 /* Send all rights in NAMES output */
|
||||
#define PROTO_CLK 0x8000 /* Send cloaked host in the NICK command (regardless of +x/-x) */
|
||||
#define PROTO_UHNAMES 0x10000 /* Send n!u@h in NAMES */
|
||||
#define PROTO_CLICAP 0x20000 /* client capability negotiation in process */
|
||||
#define PROTO_STARTTLS 0x40000 /* client supports STARTTLS */
|
||||
#define PROTO_SASL 0x80000 /* client is doing SASL */
|
||||
#define PROTO_AWAY_NOTIFY 0x100000 /* client supports away-notify */
|
||||
#define PROTO_ACCOUNT_NOTIFY 0x200000 /* client supports account-notify */
|
||||
#define PROTO_MLOCK 0x400000 /* server supports MLOCK */
|
||||
|
||||
/*
|
||||
* flags macros.
|
||||
@@ -389,6 +406,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsAnOper(x) ((x)->umodes & (UMODE_OPER|UMODE_LOCOP))
|
||||
#define IsARegNick(x) ((x)->umodes & (UMODE_REGNICK))
|
||||
#define IsRegNick(x) ((x)->umodes & UMODE_REGNICK)
|
||||
#define IsLoggedIn(x) (IsRegNick(x) || (x->user && (*x->user->svid != '*') && !isdigit(*x->user->svid))) /* registered nick (+r) or just logged into services (may be -r) */
|
||||
#define IsRegNickMsg(x) ((x)->umodes & UMODE_RGSTRONLY)
|
||||
#define IsNoCTCP(x) ((x)->umodes & UMODE_NOCTCP)
|
||||
#define IsWebTV(x) ((x)->umodes & UMODE_WEBTV)
|
||||
@@ -405,14 +423,15 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsOutgoing(x) ((x)->flags & FLAGS_OUTGOING)
|
||||
#define GotNetInfo(x) ((x)->flags & FLAGS_NETINFO)
|
||||
#define SetNetInfo(x) ((x)->flags |= FLAGS_NETINFO)
|
||||
|
||||
#define IsCGIIRC(x) ((x)->flags & FLAGS_CGIIRC)
|
||||
#define SetEAuth(x) ((x)->flags |= FLAGS_EAUTH)
|
||||
#define IsEAuth(x) ((x)->flags & FLAGS_EAUTH)
|
||||
#define IsShunned(x) ((x)->flags & FLAGS_SHUNNED)
|
||||
#define SetShunned(x) ((x)->flags |= FLAGS_SHUNNED)
|
||||
#define ClearShunned(x) ((x)->flags &= ~FLAGS_SHUNNED)
|
||||
#define IsVirus(x) ((x)->flags & FLAGS_VIRUS)
|
||||
#define SetVirus(x) ((x)->flags |= FLAGS_VIRUS)
|
||||
#define ClearVirus(x) ((x)->flags |= FLAGS_VIRUS)
|
||||
|
||||
#define ClearVirus(x) ((x)->flags &= ~FLAGS_VIRUS)
|
||||
#ifdef USE_SSL
|
||||
#define IsSecure(x) ((x)->flags & FLAGS_SSL)
|
||||
#else
|
||||
@@ -427,19 +446,21 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define IsZipStart(x) (0)
|
||||
#endif
|
||||
|
||||
/* Fake lag exception */
|
||||
#define IsNoFakeLag(x) ((x)->flags & FLAGS_NOFAKELAG)
|
||||
#define SetNoFakeLag(x) ((x)->flags |= FLAGS_NOFAKELAG)
|
||||
#define ClearNoFakeLag(x) ((x)->flags &= ~FLAGS_NOFAKELAG)
|
||||
|
||||
#define IsHybNotice(x) ((x)->flags & FLAGS_HYBNOTICE)
|
||||
#define SetHybNotice(x) ((x)->flags |= FLAGS_HYBNOTICE)
|
||||
#define ClearHybNotice(x) ((x)->flags &= ~FLAGS_HYBNOTICE)
|
||||
#define IsHidden(x) ((x)->umodes & UMODE_HIDE)
|
||||
#define IsSetHost(x) ((x)->umodes & UMODE_SETHOST)
|
||||
#define IsHideOper(x) ((x)->umodes & UMODE_HIDEOPER)
|
||||
#ifdef USE_SSL
|
||||
#define IsSSL(x) IsSecure(x)
|
||||
#endif
|
||||
#ifdef NOSPOOF
|
||||
#define IsNotSpoof(x) ((x)->nospoof == 0)
|
||||
#else
|
||||
#define IsNotSpoof(x) (1)
|
||||
#endif
|
||||
|
||||
#define GetHost(x) (IsHidden(x) ? (x)->user->virthost : (x)->user->realhost)
|
||||
#define GetIP(x) ((x->user && x->user->ip_str) ? x->user->ip_str : (MyConnect(x) ? Inet_ia2p(&x->ip) : NULL))
|
||||
@@ -462,6 +483,7 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SetAccess(x) ((x)->flags |= FLAGS_CHKACCESS); Debug((DEBUG_DEBUG, "SetAccess(%s)", (x)->name))
|
||||
#define SetBlocked(x) ((x)->flags |= FLAGS_BLOCKED)
|
||||
#define SetOutgoing(x) do { x->flags |= FLAGS_OUTGOING; } while(0)
|
||||
#define SetCGIIRC(x) do { x->flags |= FLAGS_CGIIRC; } while(0)
|
||||
#define DoingAuth(x) ((x)->flags & FLAGS_AUTH)
|
||||
#define NoNewLine(x) ((x)->flags & FLAGS_NONL)
|
||||
#define IsDCCNotice(x) ((x)->flags & FLAGS_DCCNOTICE)
|
||||
@@ -517,6 +539,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SupportSJ3(x) (CHECKPROTO(x, PROTO_SJ3))
|
||||
#define SupportVHP(x) (CHECKPROTO(x, PROTO_VHP))
|
||||
#define SupportTKLEXT(x) (CHECKPROTO(x, PROTO_TKLEXT))
|
||||
#define SupportNAMESX(x) (CHECKPROTO(x, PROTO_NAMESX))
|
||||
#define SupportCLK(x) (CHECKPROTO(x, PROTO_CLK))
|
||||
#define SupportUHNAMES(x) (CHECKPROTO(x, PROTO_UHNAMES))
|
||||
|
||||
#define SetSJOIN(x) ((x)->proto |= PROTO_SJOIN)
|
||||
#define SetNoQuit(x) ((x)->proto |= PROTO_NOQUIT)
|
||||
@@ -529,6 +554,9 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define SetSJ3(x) ((x)->proto |= PROTO_SJ3)
|
||||
#define SetVHP(x) ((x)->proto |= PROTO_VHP)
|
||||
#define SetTKLEXT(x) ((x)->proto |= PROTO_TKLEXT)
|
||||
#define SetNAMESX(x) ((x)->proto |= PROTO_NAMESX)
|
||||
#define SetCLK(x) ((x)->proto |= PROTO_CLK)
|
||||
#define SetUHNAMES(x) ((x)->proto |= PROTO_UHNAMES)
|
||||
|
||||
#define ClearSJOIN(x) ((x)->proto &= ~PROTO_SJOIN)
|
||||
#define ClearNoQuit(x) ((x)->proto &= ~PROTO_NOQUIT)
|
||||
@@ -606,6 +634,11 @@ typedef unsigned int u_int32_t; /* XXX Hope this works! */
|
||||
#define OPIsNetAdmin(x) ((x)->oflag & OFLAG_NETADMIN)
|
||||
#define OPIsCoAdmin(x) ((x)->oflag & OFLAG_COADMIN)
|
||||
#define OPIsWhois(x) ((x)->oflag & OFLAG_WHOIS)
|
||||
#ifdef SHOW_SECRET
|
||||
#define OPCanSeeSecret(x) IsAnOper(x)
|
||||
#else
|
||||
#define OPCanSeeSecret(x) IsNetAdmin(x)
|
||||
#endif
|
||||
|
||||
#define OPSetRehash(x) ((x)->oflag |= OFLAG_REHASH)
|
||||
#define OPSetDie(x) ((x)->oflag |= OFLAG_DIE)
|
||||
@@ -693,6 +726,46 @@ struct FloodOpt {
|
||||
TS firstmsg;
|
||||
};
|
||||
|
||||
#ifdef USE_LIBCURL
|
||||
struct Motd;
|
||||
struct MotdDownload
|
||||
{
|
||||
struct Motd *themotd;
|
||||
};
|
||||
#endif /* USE_LIBCURL */
|
||||
|
||||
struct Motd
|
||||
{
|
||||
struct MotdItem *lines;
|
||||
struct tm last_modified; /* store the last modification time */
|
||||
|
||||
#ifdef USE_LIBCURL
|
||||
/*
|
||||
This pointer is used to communicate with an asynchronous MOTD
|
||||
download. The problem is that a download may take 10 seconds or
|
||||
more to complete and, in that time, the IRCd could be rehashed.
|
||||
This would mean that TLD blocks are reallocated and thus the
|
||||
aMotd structs would be free()d in the meantime.
|
||||
|
||||
To prevent such a situation from leading to a segfault, we
|
||||
introduce this remote control pointer. It works like this:
|
||||
1. read_motd() is called with a URL. A new MotdDownload is
|
||||
allocated and the pointer is placed here. This pointer is
|
||||
also passed to the asynchrnous download handler.
|
||||
2.a. The download is completed and read_motd_asynch_downloaded()
|
||||
is called with the same pointer. From this function, this pointer
|
||||
if free()d. No other code may free() the pointer. Not even free_motd().
|
||||
OR
|
||||
2.b. The user rehashes the IRCd before the download is completed.
|
||||
free_motd() is called, which sets motd_download->themotd to NULL
|
||||
to signal to read_motd_asynch_downloaded() that it should ignore
|
||||
the download. read_motd_asynch_downloaded() is eventually called
|
||||
and frees motd_download.
|
||||
*/
|
||||
struct MotdDownload *motd_download;
|
||||
#endif /* USE_LIBCURL */
|
||||
};
|
||||
|
||||
struct MotdItem {
|
||||
char *line;
|
||||
struct MotdItem *next;
|
||||
@@ -736,11 +809,20 @@ struct User {
|
||||
Link *silence; /* chain of silence pointer blocks */
|
||||
Link *dccallow; /* chain of dccallowed entries */
|
||||
char *away; /* pointer to away message */
|
||||
u_int32_t servicestamp; /* Services' time stamp variable */
|
||||
|
||||
/*
|
||||
* svid: a value that is assigned by services to this user record.
|
||||
* in previous versions of Unreal, this was strictly a timestamp value,
|
||||
* which is less useful in the modern world of IRC where nicks are grouped to
|
||||
* accounts, so it is now a string.
|
||||
*/
|
||||
char svid[SVIDLEN + 1];
|
||||
|
||||
signed char refcnt; /* Number of times this block is referenced */
|
||||
unsigned short joined; /* number of channels joined */
|
||||
char username[USERLEN + 1];
|
||||
char realhost[HOSTLEN + 1];
|
||||
char cloakedhost[HOSTLEN + 1]; /* cloaked host (masked host for caching). NOT NECESSARILY THE SAME AS virthost. */
|
||||
char *virthost;
|
||||
char *server;
|
||||
char *swhois; /* special whois thing */
|
||||
@@ -763,6 +845,7 @@ struct User {
|
||||
#ifdef JOINTHROTTLE
|
||||
aJFlood *jflood;
|
||||
#endif
|
||||
TS lastaway;
|
||||
};
|
||||
|
||||
struct Server {
|
||||
@@ -779,6 +862,7 @@ struct Server {
|
||||
#endif
|
||||
struct {
|
||||
unsigned synced:1; /* Server linked? (3.2beta18+) */
|
||||
unsigned server_sent:1; /* SERVER message sent to this link? (for outgoing links) */
|
||||
} flags;
|
||||
};
|
||||
|
||||
@@ -818,6 +902,9 @@ struct Server {
|
||||
#define SPAMF_AWAY 0x0100 /* a */
|
||||
#define SPAMF_TOPIC 0x0200 /* t */
|
||||
|
||||
/* Other flags only for function calls: */
|
||||
#define SPAMFLAG_NOWARN 0x0001
|
||||
|
||||
struct _spamfilter {
|
||||
unsigned short action; /* see BAN_ACT* */
|
||||
regex_t expr;
|
||||
@@ -897,6 +984,8 @@ typedef struct {
|
||||
#define LISTENER_SSL 0x000040
|
||||
#define LISTENER_BOUND 0x000080
|
||||
|
||||
#define IsServersOnlyListener(x) ((x) && ((x)->umodes & LISTENER_SERVERSONLY))
|
||||
|
||||
#define CONNECT_SSL 0x000001
|
||||
#define CONNECT_ZIP 0x000002
|
||||
#define CONNECT_AUTO 0x000004
|
||||
@@ -907,6 +996,8 @@ typedef struct {
|
||||
#define SSLFLAG_FAILIFNOCERT 0x1
|
||||
#define SSLFLAG_VERIFYCERT 0x2
|
||||
#define SSLFLAG_DONOTACCEPTSELFSIGNED 0x4
|
||||
#define SSLFLAG_NOSTARTTLS 0x8
|
||||
|
||||
struct Client {
|
||||
struct Client *next, *prev, *hnext;
|
||||
anUser *user; /* ...defined, if this is a User */
|
||||
@@ -944,10 +1035,8 @@ struct Client {
|
||||
short lastsq; /* # of 2k blocks when sendqueued called last */
|
||||
dbuf sendQ; /* Outgoing message queue--if socket full */
|
||||
dbuf recvQ; /* Hold for data incoming yet to be parsed */
|
||||
#ifdef NOSPOOF
|
||||
u_int32_t nospoof; /* Anti-spoofing random number */
|
||||
#endif
|
||||
short proto; /* ProtoCtl options */
|
||||
int proto; /* ProtoCtl options */
|
||||
long sendM; /* Statistics: protocol messages send */
|
||||
long sendK; /* Statistics: total k-bytes send */
|
||||
long receiveM; /* Statistics: protocol messages received */
|
||||
@@ -986,6 +1075,11 @@ struct Client {
|
||||
TS cputime;
|
||||
#endif
|
||||
char *error_str; /* Quit reason set by dead_link in case of socket/buffer error */
|
||||
|
||||
char sasl_agent[NICKLEN + 1];
|
||||
unsigned char sasl_out;
|
||||
unsigned char sasl_complete;
|
||||
u_short sasl_cookie;
|
||||
};
|
||||
|
||||
|
||||
@@ -1052,17 +1146,18 @@ struct _configflag_tld
|
||||
#define CONF_BAN_TYPE_AKILL 1
|
||||
#define CONF_BAN_TYPE_TEMPORARY 2
|
||||
|
||||
#define BAN_ACT_KILL 1
|
||||
#define BAN_ACT_TEMPSHUN 2
|
||||
#define BAN_ACT_SHUN 3
|
||||
#define BAN_ACT_KLINE 4
|
||||
#define BAN_ACT_ZLINE 5
|
||||
#define BAN_ACT_GLINE 6
|
||||
#define BAN_ACT_GZLINE 7
|
||||
/* below are pretty much spamfilter only */
|
||||
#define BAN_ACT_BLOCK 8
|
||||
#define BAN_ACT_DCCBLOCK 9
|
||||
#define BAN_ACT_VIRUSCHAN 10
|
||||
/* Ban actions. These must be ordered by severity (!) */
|
||||
#define BAN_ACT_GZLINE 1100
|
||||
#define BAN_ACT_GLINE 1000
|
||||
#define BAN_ACT_ZLINE 900
|
||||
#define BAN_ACT_KLINE 800
|
||||
#define BAN_ACT_SHUN 700
|
||||
#define BAN_ACT_KILL 600
|
||||
#define BAN_ACT_TEMPSHUN 500
|
||||
#define BAN_ACT_VIRUSCHAN 400
|
||||
#define BAN_ACT_DCCBLOCK 300
|
||||
#define BAN_ACT_BLOCK 200
|
||||
#define BAN_ACT_WARN 100
|
||||
|
||||
|
||||
#define CRULE_ALL 0
|
||||
@@ -1083,6 +1178,12 @@ struct _configitem_me {
|
||||
unsigned short numeric;
|
||||
};
|
||||
|
||||
struct _configitem_files {
|
||||
char *motd_file, *rules_file, *smotd_file;
|
||||
char *botmotd_file, *opermotd_file, *svsmotd_file;
|
||||
char *pid_file, *tune_file;
|
||||
};
|
||||
|
||||
struct _configitem_admin {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
@@ -1119,6 +1220,9 @@ struct _configitem_allow {
|
||||
ConfigItem_class *class;
|
||||
struct irc_netmask *netmask;
|
||||
ConfigFlag_allow flags;
|
||||
#ifdef INET6
|
||||
unsigned short ipv6_clone_mask;
|
||||
#endif /* INET6 */
|
||||
};
|
||||
|
||||
struct _configitem_oper {
|
||||
@@ -1128,7 +1232,7 @@ struct _configitem_oper {
|
||||
anAuthStruct *auth;
|
||||
ConfigItem_class *class;
|
||||
ConfigItem *from;
|
||||
unsigned long modes;
|
||||
unsigned long modes, require_modes;
|
||||
long oflags;
|
||||
int maxlogins;
|
||||
};
|
||||
@@ -1137,6 +1241,7 @@ struct _configitem_oper_from {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *name;
|
||||
struct irc_netmask *netmask;
|
||||
};
|
||||
|
||||
struct _configitem_drpass {
|
||||
@@ -1156,10 +1261,10 @@ struct _configitem_ulines {
|
||||
struct _configitem_tld {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag_tld flag;
|
||||
char *mask, *motd_file, *rules_file, *smotd_file;
|
||||
char *botmotd_file, *opermotd_file, *channel;
|
||||
struct tm motd_tm, smotd_tm;
|
||||
aMotd *rules, *motd, *smotd, *botmotd, *opermotd;
|
||||
char *mask, *channel;
|
||||
char *motd_file, *rules_file, *smotd_file;
|
||||
char *botmotd_file, *opermotd_file;
|
||||
aMotdFile rules, motd, smotd, botmotd, opermotd;
|
||||
u_short options;
|
||||
};
|
||||
|
||||
@@ -1201,6 +1306,19 @@ struct _configitem_link {
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
CGIIRC_PASS=1, CGIIRC_WEBIRC=2
|
||||
} CGIIRCType;
|
||||
|
||||
struct _configitem_cgiirc {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
CGIIRCType type;
|
||||
char *username;
|
||||
char *hostname;
|
||||
anAuthStruct *auth;
|
||||
};
|
||||
|
||||
struct _configitem_except {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag_except flag;
|
||||
@@ -1217,6 +1335,13 @@ struct _configitem_ban {
|
||||
unsigned short action;
|
||||
};
|
||||
|
||||
typedef struct _iplist IPList;
|
||||
struct _iplist {
|
||||
IPList *prev, *next;
|
||||
char *mask;
|
||||
/* struct irc_netmask *netmask; */
|
||||
};
|
||||
|
||||
#ifdef FAST_BADWORD_REPLACE
|
||||
#define BADW_TYPE_INVALID 0x0
|
||||
#define BADW_TYPE_FAST 0x1
|
||||
@@ -1260,14 +1385,14 @@ struct _configitem_deny_version {
|
||||
struct _configitem_deny_channel {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *channel, *reason, *redirect;
|
||||
char *channel, *reason, *redirect, *class;
|
||||
unsigned char warn;
|
||||
};
|
||||
|
||||
struct _configitem_allow_channel {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *channel;
|
||||
char *channel, *class;
|
||||
};
|
||||
|
||||
struct _configitem_allow_dcc {
|
||||
@@ -1301,7 +1426,7 @@ struct _configitem_unknown_ext {
|
||||
|
||||
|
||||
typedef enum {
|
||||
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL
|
||||
ALIAS_SERVICES=1, ALIAS_STATS, ALIAS_NORMAL, ALIAS_COMMAND, ALIAS_CHANNEL, ALIAS_REAL
|
||||
} AliasType;
|
||||
|
||||
struct _configitem_alias {
|
||||
@@ -1310,6 +1435,7 @@ struct _configitem_alias {
|
||||
ConfigItem_alias_format *format;
|
||||
char *alias, *nick;
|
||||
AliasType type;
|
||||
unsigned int spamfilter:1;
|
||||
};
|
||||
|
||||
struct _configitem_alias_format {
|
||||
@@ -1321,9 +1447,21 @@ struct _configitem_alias_format {
|
||||
regex_t expr;
|
||||
};
|
||||
|
||||
/**
|
||||
* In a rehash scenario, conf_include will contain all of the included
|
||||
* configs that are actually in use. It also will contain includes
|
||||
* that are being processed so that the configuration may be updated.
|
||||
* INCLUDE_NOTLOADED is set on all of the config files that are being
|
||||
* loaded and unset on already-loaded files. See
|
||||
* unload_loaded_includes() and load_includes().
|
||||
*/
|
||||
#define INCLUDE_NOTLOADED 0x1
|
||||
#define INCLUDE_REMOTE 0x2
|
||||
#define INCLUDE_DLQUEUED 0x4
|
||||
/**
|
||||
* Marks that an include was loaded without error. This seems to
|
||||
* overlap with the INCLUDE_NOTLOADED meaning(?). --binki
|
||||
*/
|
||||
#define INCLUDE_USED 0x8
|
||||
|
||||
struct _configitem_include {
|
||||
@@ -1334,13 +1472,15 @@ struct _configitem_include {
|
||||
char *url;
|
||||
char *errorbuf;
|
||||
#endif
|
||||
char *included_from;
|
||||
int included_from_line;
|
||||
};
|
||||
|
||||
struct _configitem_help {
|
||||
ConfigItem *prev, *next;
|
||||
ConfigFlag flag;
|
||||
char *command;
|
||||
aMotd *text;
|
||||
aMotdLine *text;
|
||||
};
|
||||
|
||||
struct _configitem_offchans {
|
||||
@@ -1507,6 +1647,7 @@ struct Channel {
|
||||
#ifdef JOINTHROTTLE
|
||||
aJFlood *jflood;
|
||||
#endif
|
||||
char *mode_lock;
|
||||
char chname[1];
|
||||
};
|
||||
|
||||
@@ -1652,7 +1793,7 @@ struct liststruct {
|
||||
*/
|
||||
#define MyConnect(x) ((x)->fd != -256)
|
||||
#define MyClient(x) (MyConnect(x) && IsClient(x))
|
||||
#define MyOper(x) (MyConnect(x) && IsOper(x))
|
||||
#define MyOper(x) (MyConnect(x) && IsAnOper(x))
|
||||
|
||||
#ifdef CLEAN_COMPILE
|
||||
#define TStime() (time(NULL) + TSoffset)
|
||||
@@ -1699,7 +1840,7 @@ struct liststruct {
|
||||
|
||||
/* misc variable externs */
|
||||
|
||||
extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[];
|
||||
extern MODVAR char *version, *infotext[], *dalinfotext[], *unrealcredits[], *unrealinfo[];
|
||||
extern MODVAR char *generation, *creation;
|
||||
extern MODVAR char *gnulicense[];
|
||||
/* misc defines */
|
||||
@@ -1710,6 +1851,8 @@ extern MODVAR char *gnulicense[];
|
||||
#define PARTFMT ":%s PART %s"
|
||||
#define PARTFMT2 ":%s PART %s :%s"
|
||||
|
||||
#define isexcept void
|
||||
|
||||
#ifdef USE_SSL
|
||||
#include "ssl.h"
|
||||
#endif
|
||||
@@ -1793,6 +1936,13 @@ struct JFlood {
|
||||
};
|
||||
#endif
|
||||
|
||||
struct PendingNet {
|
||||
aPendingNet *prev, *next; /* Previous and next in list */
|
||||
aClient *sptr; /**< Client to which these servers belong */
|
||||
int numservers; /**< Amount of servers in list */
|
||||
int servers[1]; /** The list of servers (array of integer server numerics) */
|
||||
};
|
||||
|
||||
void init_throttling_hash();
|
||||
int hash_throttling(struct IN_ADDR *in);
|
||||
struct ThrottlingBucket *find_throttling_bucket(struct IN_ADDR *in);
|
||||
|
||||
+25
-7
@@ -22,6 +22,9 @@
|
||||
#ifndef __sys_include__
|
||||
#define __sys_include__
|
||||
|
||||
/* PATH_MAX */
|
||||
#include <limits.h>
|
||||
|
||||
/* alloca stuff */
|
||||
#ifdef _WIN32
|
||||
# include <malloc.h>
|
||||
@@ -43,11 +46,7 @@
|
||||
#ifdef ISC202
|
||||
#include <net/errno.h>
|
||||
#else
|
||||
# ifndef _WIN32
|
||||
#include <sys/errno.h>
|
||||
# else
|
||||
#include <errno.h>
|
||||
# endif
|
||||
#endif
|
||||
#include "setup.h"
|
||||
#include <stdio.h>
|
||||
@@ -71,18 +70,28 @@
|
||||
# include <string.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* get intptr_t if the system provides it -- otherwise, ./configure will define it for us */
|
||||
#ifdef HAVE_STDINT_H
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#ifdef HAVE_INTTYPES_H
|
||||
#include <inttypes.h>
|
||||
#endif /* HAVE_INTTYPES_H */
|
||||
#endif /* HAVE_STDINT_H */
|
||||
|
||||
#ifdef SSL
|
||||
#include <openssl/ssl.h>
|
||||
#endif
|
||||
#ifdef INET6
|
||||
#ifndef _WIN32
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#else
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
#endif
|
||||
#ifndef GOT_STRCASECMP
|
||||
#define strcasecmp mycmp
|
||||
#define strncasecmp myncmp
|
||||
@@ -132,6 +141,13 @@ extern char *rindex(char *, char);
|
||||
#define dn_skipname __dn_skipname
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Mac OS X Tiger Support (Intel Only)
|
||||
*/
|
||||
#if defined(macosx) || defined(__APPLE__)
|
||||
#define OSXTIGER
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32
|
||||
extern VOIDSIG dummy();
|
||||
#endif
|
||||
@@ -147,6 +163,8 @@ typedef unsigned int u_int;
|
||||
#define MYOSNAME OSName
|
||||
extern char OSName[256];
|
||||
#define PATH_MAX MAX_PATH
|
||||
#else
|
||||
#define MYOSNAME getosname()
|
||||
#endif
|
||||
#ifdef DEBUGMODE
|
||||
// #define ircsprintf sprintf
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/** Standard include for all UnrealIRCd modules.
|
||||
* This should normally provide all of UnrealIRCd's functionality
|
||||
* (that is publicly exposed anyway).
|
||||
*/
|
||||
#include "config.h"
|
||||
#include "struct.h"
|
||||
#include "common.h"
|
||||
#include "sys.h"
|
||||
#include "numeric.h"
|
||||
#include "msg.h"
|
||||
#include "proto.h"
|
||||
#include "channel.h"
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef _WIN32
|
||||
#include <io.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include "h.h"
|
||||
#ifdef _WIN32
|
||||
#include "version.h"
|
||||
#endif
|
||||
+4
-4
@@ -2,10 +2,10 @@
|
||||
#define URL_H
|
||||
#include "types.h"
|
||||
|
||||
int MODFUNC url_is_valid(char *);
|
||||
char MODFUNC *url_getfilename(char *);
|
||||
char MODFUNC *download_file(char *, char **);
|
||||
void MODFUNC download_file_async(char *, time_t, vFP);
|
||||
int MODFUNC url_is_valid(const char *);
|
||||
char MODFUNC *url_getfilename(const char *url);
|
||||
char MODFUNC *download_file(const char *, char **);
|
||||
void MODFUNC download_file_async(const char *, time_t, vFP, void *callback_data);
|
||||
void MODFUNC url_do_transfers_async(void);
|
||||
void MODFUNC url_init(void);
|
||||
|
||||
|
||||
+37
-7
@@ -7,6 +7,16 @@
|
||||
#ifndef __versioninclude
|
||||
#define __versioninclude 1
|
||||
|
||||
/*
|
||||
* Utility macros to convert version number constants to strings.
|
||||
* Delayed expansion requires two macros to work. See:
|
||||
*
|
||||
* $ info '(cpp) Stringification'
|
||||
*/
|
||||
#define _macro_to_str(n) #n
|
||||
#define macro_to_str(n) _macro_to_str(n)
|
||||
|
||||
|
||||
/*
|
||||
* Mark of settings
|
||||
*/
|
||||
@@ -23,14 +33,34 @@
|
||||
#endif
|
||||
/**/
|
||||
#define COMPILEINFO DEBUGMODESET DEBUGSET
|
||||
/*
|
||||
* Version Unreal3.2.2
|
||||
|
||||
/* Version info follows
|
||||
* Please be sure to update ALL fields when changing the version.
|
||||
* Also don't forget to bump the protocol version every release.
|
||||
*/
|
||||
#define UnrealProtocol 2306
|
||||
#define PATCH1 "3"
|
||||
#define PATCH2 ".2"
|
||||
#define PATCH3 ".3"
|
||||
#define PATCH4 ""
|
||||
|
||||
/**
|
||||
* The following code concerns UNREAL_VERSION_GENERATION,
|
||||
* UNREAL_VERSION_MAJOR, and UNREAL_VERSION_MINOR.
|
||||
*
|
||||
* These UNREAL_VERSION_* macros can be used so (3rd party) modules
|
||||
* can easily distinguish versions.
|
||||
*
|
||||
* They are set during ./configure, so update ./configure.ac's AC_INIT
|
||||
* line upon a new release.
|
||||
*/
|
||||
|
||||
/** Year + week of the year (ISO week number, with Monday as first day of week)
|
||||
* Can be useful if the above 3 versionids are insufficient for you (eg: you want to support CVS).
|
||||
* This is updated automatically on the CVS server every Monday. so don't touch it.
|
||||
*/
|
||||
#define UNREAL_VERSION_TIME 201430
|
||||
|
||||
#define UnrealProtocol 2311
|
||||
#define PATCH1 macro_to_str(UNREAL_VERSION_GENERATION)
|
||||
#define PATCH2 "." macro_to_str(UNREAL_VERSION_MAJOR)
|
||||
#define PATCH3 "." macro_to_str(UNREAL_VERSION_MINOR)
|
||||
#define PATCH4 UNREAL_VERSION_SUFFIX
|
||||
#define PATCH5 ""
|
||||
#define PATCH6 ""
|
||||
#define PATCH7 ""
|
||||
|
||||
@@ -1,250 +0,0 @@
|
||||
/*
|
||||
regex.h - POSIX.2 compatible regexp interface and TRE extensions
|
||||
|
||||
Copyright (C) 2001-2004 Ville Laurikari <vl@iki.fi>.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 (June
|
||||
1991) as published by the Free Software Foundation.
|
||||
|
||||
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TRE_REGEX_H
|
||||
#define TRE_REGEX_H 1
|
||||
|
||||
#include "tre-config.h"
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif /* HAVE_SYS_TYPES_H */
|
||||
|
||||
#ifdef HAVE_LIBUTF8_H
|
||||
#include <libutf8.h>
|
||||
#endif /* HAVE_LIBUTF8_H */
|
||||
|
||||
#ifdef TRE_USE_SYSTEM_REGEX_H
|
||||
/* Include the system regex.h to make TRE ABI compatible with the
|
||||
system regex. */
|
||||
#include TRE_SYSTEM_REGEX_H_PATH
|
||||
#endif /* TRE_USE_SYSTEM_REGEX_H */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef TRE_USE_SYSTEM_REGEX_H
|
||||
|
||||
#ifndef REG_OK
|
||||
#define REG_OK 0
|
||||
#endif /* !REG_OK */
|
||||
|
||||
#ifndef HAVE_REG_ERRCODE_T
|
||||
typedef int reg_errcode_t;
|
||||
#endif /* !HAVE_REG_ERRCODE_T */
|
||||
|
||||
#if !defined(REG_NOSPEC) && !defined(REG_LITERAL)
|
||||
#define REG_LITERAL 0x1000
|
||||
#endif
|
||||
|
||||
/* Extra regcomp() flags. */
|
||||
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
|
||||
|
||||
/* Extra regexec() flags. */
|
||||
#define REG_APPROX_MATCHER 0x1000
|
||||
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
|
||||
|
||||
#else /* !TRE_USE_SYSTEM_REGEX_H */
|
||||
|
||||
/* If the we're not using system regex.h, we need to define the
|
||||
structs and enums ourselves. */
|
||||
|
||||
typedef int regoff_t;
|
||||
typedef struct {
|
||||
size_t re_nsub; /* Number of parenthesized subexpressions. */
|
||||
void *value; /* For internal use only. */
|
||||
} regex_t;
|
||||
|
||||
typedef struct {
|
||||
regoff_t rm_so;
|
||||
regoff_t rm_eo;
|
||||
} regmatch_t;
|
||||
|
||||
|
||||
typedef enum {
|
||||
REG_OK = 0, /* No error. */
|
||||
/* POSIX regcomp() return error codes. (In the order listed in the
|
||||
standard.) */
|
||||
REG_NOMATCH, /* No match. */
|
||||
REG_BADPAT, /* Invalid regexp. */
|
||||
REG_ECOLLATE, /* Unknown collating element. */
|
||||
REG_ECTYPE, /* Unknown character class name. */
|
||||
REG_EESCAPE, /* Trailing backslash. */
|
||||
REG_ESUBREG, /* Invalid back reference. */
|
||||
REG_EBRACK, /* "[]" imbalance */
|
||||
REG_EPAREN, /* "\(\)" or "()" imbalance */
|
||||
REG_EBRACE, /* "\{\}" or "{}" imbalance */
|
||||
REG_BADBR, /* Invalid content of {} */
|
||||
REG_ERANGE, /* Invalid use of range operator */
|
||||
REG_ESPACE, /* Out of memory. */
|
||||
REG_BADRPT
|
||||
} reg_errcode_t;
|
||||
|
||||
/* POSIX regcomp() flags. */
|
||||
#define REG_EXTENDED 1
|
||||
#define REG_ICASE (REG_EXTENDED << 1)
|
||||
#define REG_NEWLINE (REG_ICASE << 1)
|
||||
#define REG_NOSUB (REG_NEWLINE << 1)
|
||||
|
||||
/* Extra regcomp() flags. */
|
||||
#define REG_BASIC 0
|
||||
#define REG_LITERAL (REG_NOSUB << 1)
|
||||
#define REG_RIGHT_ASSOC (REG_LITERAL << 1)
|
||||
|
||||
/* POSIX regexec() flags. */
|
||||
#define REG_NOTBOL 1
|
||||
#define REG_NOTEOL (REG_NOTBOL << 1)
|
||||
|
||||
/* Extra regexec() flags. */
|
||||
#define REG_APPROX_MATCHER (REG_NOTEOL << 1)
|
||||
#define REG_BACKTRACKING_MATCHER (REG_APPROX_MATCHER << 1)
|
||||
|
||||
#endif /* !TRE_USE_SYSTEM_REGEX_H */
|
||||
|
||||
/* REG_NOSPEC and REG_LITERAL mean the same thing. */
|
||||
#ifdef REG_LITERAL
|
||||
#define REG_NOSPEC REG_LITERAL
|
||||
#elif defined(REG_NOSPEC)
|
||||
#define REG_LITERAL REG_NOSPEC
|
||||
#endif /* defined(REG_NOSPEC) */
|
||||
|
||||
/* The maximum number of iterations in a bound expression. */
|
||||
#undef RE_DUP_MAX
|
||||
#define RE_DUP_MAX 255
|
||||
|
||||
/* The POSIX.2 regexp functions */
|
||||
int regcomp(regex_t *preg, const char *regex, int cflags);
|
||||
int regexec(const regex_t *preg, const char *string, size_t nmatch,
|
||||
regmatch_t pmatch[], int eflags);
|
||||
size_t regerror(int errcode, const regex_t *preg, char *errbuf,
|
||||
size_t errbuf_size);
|
||||
void regfree(regex_t *preg);
|
||||
|
||||
#ifdef TRE_WCHAR
|
||||
#ifdef HAVE_WCHAR_H
|
||||
#include <wchar.h>
|
||||
#endif /* HAVE_WCHAR_H */
|
||||
|
||||
/* Wide character versions (not in POSIX.2). */
|
||||
int regwcomp(regex_t *preg, const wchar_t *regex, int cflags);
|
||||
int regwexec(const regex_t *preg, const wchar_t *string, size_t nmatch,
|
||||
regmatch_t pmatch[], int eflags);
|
||||
#endif /* TRE_WCHAR */
|
||||
|
||||
/* Versions with a maximum length argument and therefore the capability to
|
||||
handle null characters in the middle of the strings (not in POSIX.2). */
|
||||
int regncomp(regex_t *preg, const char *regex, size_t len, int cflags);
|
||||
int regnexec(const regex_t *preg, const char *string, size_t len,
|
||||
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||
#ifdef TRE_WCHAR
|
||||
int regwncomp(regex_t *preg, const wchar_t *regex, size_t len, int cflags);
|
||||
int regwnexec(const regex_t *preg, const wchar_t *string, size_t len,
|
||||
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||
#endif /* TRE_WCHAR */
|
||||
|
||||
#ifdef TRE_APPROX
|
||||
|
||||
/* Approximate matching parameter struct. */
|
||||
typedef struct {
|
||||
int cost_ins; /* Default cost of an inserted character. */
|
||||
int cost_del; /* Default cost of a deleted character. */
|
||||
int cost_subst; /* Default cost of a substituted character. */
|
||||
int max_cost; /* Maximum allowed cost of a match. */
|
||||
|
||||
int max_ins; /* Maximum allowed number of inserts. */
|
||||
int max_del; /* Maximum allowed number of deletes. */
|
||||
int max_subst; /* Maximum allowed number of substitutes. */
|
||||
int max_err; /* Maximum allowed number of errors total. */
|
||||
} regaparams_t;
|
||||
|
||||
/* Approximate matching result struct. */
|
||||
typedef struct {
|
||||
size_t nmatch; /* Length of pmatch[] array. */
|
||||
regmatch_t *pmatch; /* Submatch data. */
|
||||
int cost; /* Cost of the match. */
|
||||
int num_ins; /* Number of inserts in the match. */
|
||||
int num_del; /* Number of deletes in the match. */
|
||||
int num_subst; /* Number of substitutes in the match. */
|
||||
} regamatch_t;
|
||||
|
||||
|
||||
/* Approximate matching functions. */
|
||||
int regaexec(const regex_t *preg, const char *string,
|
||||
regamatch_t *match, regaparams_t params, int eflags);
|
||||
int reganexec(const regex_t *preg, const char *string, size_t len,
|
||||
regamatch_t *match, regaparams_t params, int eflags);
|
||||
#ifdef TRE_WCHAR
|
||||
/* Wide character approximate matching. */
|
||||
int regawexec(const regex_t *preg, const wchar_t *string,
|
||||
regamatch_t *match, regaparams_t params, int eflags);
|
||||
int regawnexec(const regex_t *preg, const wchar_t *string, size_t len,
|
||||
regamatch_t *match, regaparams_t params, int eflags);
|
||||
#endif /* TRE_WCHAR */
|
||||
|
||||
/* Sets the parameters to default values. */
|
||||
void regaparams_default(regaparams_t *params);
|
||||
#endif /* TRE_APPROX */
|
||||
|
||||
#ifdef TRE_WCHAR
|
||||
typedef wchar_t tre_char_t;
|
||||
#else /* !TRE_WCHAR */
|
||||
typedef unsigned char tre_char_t;
|
||||
#endif /* !TRE_WCHAR */
|
||||
|
||||
typedef struct {
|
||||
int (*get_next_char)(tre_char_t *c, unsigned int *pos_add, void *context);
|
||||
void (*rewind)(size_t pos, void *context);
|
||||
int (*compare)(size_t pos1, size_t pos2, size_t len, void *context);
|
||||
void *context;
|
||||
} tre_str_source;
|
||||
|
||||
int reguexec(const regex_t *preg, const tre_str_source *string,
|
||||
size_t nmatch, regmatch_t pmatch[], int eflags);
|
||||
|
||||
/* Returns the version string. The returned string is static. */
|
||||
char *tre_version(void);
|
||||
|
||||
/* Returns the value for a config parameter. The type to which `result'
|
||||
must point to depends of the value of `query', see documentation for
|
||||
more details. */
|
||||
int tre_config(int query, void *result);
|
||||
|
||||
enum {
|
||||
TRE_CONFIG_APPROX,
|
||||
TRE_CONFIG_WCHAR,
|
||||
TRE_CONFIG_MULTIBYTE,
|
||||
TRE_CONFIG_SYSTEM_ABI,
|
||||
TRE_CONFIG_VERSION
|
||||
};
|
||||
|
||||
/* Returns 1 if the compiled pattern has back references, 0 if not. */
|
||||
int tre_have_backrefs(const regex_t *preg);
|
||||
|
||||
/* Returns 1 if the compiled pattern uses approximate matching features,
|
||||
0 if not. */
|
||||
int tre_have_approx(const regex_t *preg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* TRE_REGEX_H */
|
||||
|
||||
/* EOF */
|
||||
+31
-1
@@ -21,6 +21,7 @@
|
||||
|
||||
#ifndef __setup_include__
|
||||
#define __setup_include__
|
||||
|
||||
#undef PARAMH
|
||||
#undef UNISTDH
|
||||
#define STRINGH
|
||||
@@ -45,9 +46,38 @@
|
||||
#define HAVE_ALLOCA
|
||||
#define SPATH "."
|
||||
#define DPATH "."
|
||||
#define DOMAINNAME "irc.net"
|
||||
#define NO_U_TYPES
|
||||
#define NEED_U_INT32_T
|
||||
#define PREFIX_AQ
|
||||
#define LIST_SHOW_MODES
|
||||
|
||||
#ifndef mode_t
|
||||
/*
|
||||
Needed in s_conf.c for the third argument of open(3p).
|
||||
|
||||
Should be an int because of http://msdn.microsoft.com/en-us/library/z0kc8e3z(VS.71).aspx
|
||||
*/
|
||||
#define mode_t int
|
||||
#endif
|
||||
|
||||
/*
|
||||
make up for win32 (and win64?) users not being able to run ./configure.
|
||||
*/
|
||||
#ifndef intptr_t
|
||||
#define intptr_t long
|
||||
#endif
|
||||
|
||||
/* Generation version number (e.g.: 3 for Unreal3*) */
|
||||
#define UNREAL_VERSION_GENERATION 3
|
||||
|
||||
/* Major version number (e.g.: 2 for Unreal3.2*) */
|
||||
#define UNREAL_VERSION_MAJOR 2
|
||||
|
||||
/* Minor version number (e.g.: 1 for Unreal3.2.1) */
|
||||
#define UNREAL_VERSION_MINOR 10
|
||||
|
||||
/* Version suffix such as a beta marker or release candidate marker. (e.g.:
|
||||
-rc2 for unrealircd-3.2.9-rc2) */
|
||||
#define UNREAL_VERSION_SUFFIX ".7"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
/* tre-config.h. This file defines all compile time definitions
|
||||
that are needed in `regex.h' for Win32. */
|
||||
#ifndef HAVE_ALLOCA
|
||||
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||
#define HAVE_ALLOCA 1
|
||||
#endif
|
||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||
*/
|
||||
#define HAVE_ALLOCA_H 1
|
||||
|
||||
/* Define to 1 if you have the <libutf8.h> header file. */
|
||||
/* #undef HAVE_LIBUTF8_H */
|
||||
|
||||
/* Define to 1 if the system has the type `reg_errcode_t'. */
|
||||
/* #undef HAVE_REG_ERRCODE_T */
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <wchar.h> header file. */
|
||||
#define HAVE_WCHAR_H 1
|
||||
|
||||
/* Define if you want to enable approximate matching functionality. */
|
||||
#define TRE_APPROX 1
|
||||
|
||||
/* Define to enable multibyte character set support. */
|
||||
#undef TRE_MULTIBYTE
|
||||
|
||||
/* Define to the absolute path to the system regex.h */
|
||||
/* #undef TRE_SYSTEM_REGEX_H_PATH */
|
||||
|
||||
/* Define if you want TRE to use alloca() instead of malloc() when allocating
|
||||
memory needed for regexec operations. */
|
||||
#define TRE_USE_ALLOCA 1
|
||||
|
||||
/* Define to include the system regex.h from TRE regex.h */
|
||||
/* #undef TRE_USE_SYSTEM_REGEX_H */
|
||||
|
||||
/* Define to enable wide character (wchar_t) support. */
|
||||
#undef TRE_WCHAR
|
||||
|
||||
/* TRE version string. */
|
||||
#define TRE_VERSION "0.7.2"
|
||||
|
||||
/* TRE version level 1. */
|
||||
#define TRE_VERSION_1 0
|
||||
|
||||
/* TRE version level 2. */
|
||||
#define TRE_VERSION_2 7
|
||||
|
||||
/* TRE version level 3. */
|
||||
#define TRE_VERSION_3 2
|
||||
@@ -1 +0,0 @@
|
||||
0,10,20,30,40,50 * * * * /home/mydir-to/ircdcron/ircdchk >/dev/null 2>&1
|
||||
Executable
+1
@@ -0,0 +1 @@
|
||||
0,10,20,30,40,50 * * * * @IRCDDIR@/ircdcron/ircdchk >/dev/null 2>&1
|
||||
+109
-53
@@ -4,9 +4,26 @@
|
||||
CC=cl
|
||||
LINK=link
|
||||
RC=rc
|
||||
MT=mt
|
||||
|
||||
############################ USER CONFIGURATION ############################
|
||||
|
||||
# You are encouraged NOT to set these values here, but instead make a batch file
|
||||
# which passes all these arguments to nmake, like:
|
||||
# nmake -f makefile.win32 USE_ZIPLINKS=1 ZLIB_INC_DIR="c:\dev\zlib" etc etc...
|
||||
# Both ways will work, but if you use a batch file it's easier with
|
||||
# upgrading Unreal as you won't have to edit this makefile again.
|
||||
|
||||
### TRE ###
|
||||
#TRE_LIB_DIR="C:\dev\tre\win32\release"
|
||||
#TRE_INC_DIR="C:\dev\tre"
|
||||
#TRELIB="tre.lib"
|
||||
|
||||
### C-ARES ####
|
||||
#CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release"
|
||||
#CARES_INC_DIR="C:\dev\c-ares"
|
||||
#CARESLIB="cares.lib"
|
||||
|
||||
##### REMOTE INCLUDES ####
|
||||
#To enable remote include support you must have libcurl installed on your
|
||||
#system and it must have ares support enabled.
|
||||
@@ -54,17 +71,39 @@ RC=rc
|
||||
#
|
||||
######### END SSL ########
|
||||
|
||||
###### RELEASE BUILD #####
|
||||
#To make a release build comment out the next line a release build
|
||||
#does not contain debugging symbols and can not be used to locate
|
||||
#the source of a crash or bug
|
||||
DEBUG=1
|
||||
###### _EXTRA_ DEBUGGING #####
|
||||
# We always build releases with debugging information, since otherwise
|
||||
# we cannot trace the source of a crash. Plus we do not mind the extra
|
||||
# performance hit caused by not enabling super-optimization, tracing
|
||||
# crashes properly is more important.
|
||||
# You can choose (at your own risk) to enable EVEN MORE debugging,
|
||||
# note that this causes /MDd to be used instead of /MD which can make
|
||||
# libraries incompatible, plus all the other side-effects such as
|
||||
# requiring a different dll we do not ship (and maybe you are not even
|
||||
# allowed to ship due to license agreements), etc...
|
||||
# In any case, this probably should not be used, unless debugging a
|
||||
# problem locally, in which case it can be useful.
|
||||
#DEBUGEXTRA=1
|
||||
#
|
||||
#
|
||||
#### END RELEASE BUILD ###
|
||||
|
||||
############################# END CONFIGURATION ############################
|
||||
|
||||
!IFDEF CARES_INC_DIR
|
||||
CARES_INC=/I "$(CARES_INC_DIR)"
|
||||
!ENDIF
|
||||
!IFDEF CARES_LIB_DIR
|
||||
CARES_LIB=/LIBPATH:"$(CARES_LIB_DIR)"
|
||||
!ENDIF
|
||||
|
||||
!IFDEF TRE_INC_DIR
|
||||
TRE_INC=/I "$(TRE_INC_DIR)"
|
||||
!ENDIF
|
||||
!IFDEF TRE_LIB_DIR
|
||||
TRE_LIB=/LIBPATH:"$(TRE_LIB_DIR)"
|
||||
!ENDIF
|
||||
|
||||
!IFDEF USE_REMOTEINC
|
||||
CURLCFLAGS=/D USE_LIBCURL
|
||||
CURLOBJ=SRC/URL.OBJ
|
||||
@@ -100,26 +139,31 @@ OPENSSL_LIB=/LIBPATH:"$(OPENSSL_LIB_DIR)"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
!IFDEF DEBUG
|
||||
DBGCFLAG=/MD /Zi
|
||||
DBGLFLAG=/debug /debugtype:BOTH
|
||||
MODDBGCFLAG=/LDd /MD /Zi
|
||||
!IFDEF DEBUGEXTRA
|
||||
DBGCFLAG=/MDd /Zi /Od
|
||||
DBGCFLAGST=/MTd /Zi /Od
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MDd /Zi
|
||||
!ELSE
|
||||
DBGCFLAG=/MD /O2 /G5
|
||||
MODDBGCFLAG=/LD /MD
|
||||
DBGCFLAG=/MD /Zi
|
||||
DBGCFLAGST=/MT /Zi
|
||||
DBGLFLAG=/debug
|
||||
MODDBGCFLAG=/LDd /MD /Zi
|
||||
!ENDIF
|
||||
|
||||
FD_SETSIZE=/D FD_SETSIZE=16384
|
||||
CFLAGS=$(DBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /Fosrc/ /nologo \
|
||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c
|
||||
CFLAGS=$(DBGCFLAG) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||
CFLAGSST=$(DBGCFLAGST) $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /J /I ./INCLUDE /I ./INCLUDE/WIN32/ARES /Fosrc/ /nologo \
|
||||
$(ZIPCFLAGS) $(CURLCFLAGS) $(FD_SETSIZE) $(SSLCFLAGS) $(NS_ADDRESS) /D NOSPOOF=1 /c /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||
LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \
|
||||
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(ZLIB_LIB) $(ZIPLIB) \
|
||||
dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(CARES_LIB) $(CARESLIB) $(TRE_LIB) $(TRELIB) $(ZLIB_LIB) $(ZIPLIB) \
|
||||
$(OPENSSL_LIB) $(SSLLIBS) $(LIBCURL_LIB) $(CURLLIB) /def:wircd.def /implib:wircd.lib \
|
||||
/nologo $(DBGLFLAG) /out:WIRCD.EXE
|
||||
MODCFLAGS=$(MODDBGCFLAG) $(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /J /Fesrc/modules/ \
|
||||
/Fosrc/modules/ /nologo $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
|
||||
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE
|
||||
MODLFLAGS=/link /def:src/modules/module.def wircd.lib $(OPENSSL_LIB) $(SSLLIBS) \
|
||||
/Fosrc/modules/ /nologo $(TRE_INC) $(CARES_INC) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /I ./INCLUDE /D \
|
||||
DYNAMIC_LINKING /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _USE_32BIT_TIME_T
|
||||
MODLFLAGS=/link /def:src/modules/module.def wircd.lib ws2_32.lib $(TRE_LIB) $(TRELIB) $(CARES_LIB) $(OPENSSL_LIB) $(SSLLIBS) \
|
||||
$(ZLIB_LIB) $(ZIPLIB) $(LIBCURL_LIB) $(CURLLIB)
|
||||
|
||||
INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \
|
||||
@@ -134,12 +178,11 @@ EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \
|
||||
SRC/S_DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \
|
||||
SRC/S_ERR.OBJ SRC/PACKET.OBJ SRC/S_BSD.OBJ \
|
||||
SRC/S_SERV.OBJ SRC/S_USER.OBJ SRC/CHARSYS.OBJ \
|
||||
SRC/VERSION.OBJ SRC/RES_INIT.OBJ SRC/RES_COMP.OBJ SRC/RES_MKQUERY.OBJ SRC/RES_SKIPNAME.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/MODULES.OBJ \
|
||||
SRC/VERSION.OBJ SRC/S_KLINE.OBJ SRC/S_EXTRA.OBJ SRC/IRCSPRINTF.OBJ SRC/LUSERS.OBJ \
|
||||
SRC/SCACHE.OBJ SRC/ALN.OBJ SRC/RES.OBJ SRC/MODULES.OBJ \
|
||||
SRC/S_SVS.OBJ SRC/EVENTS.OBJ SRC/UMODES.OBJ SRC/AUTH.OBJ SRC/CIDR.OBJ SRC/SSL.OBJ \
|
||||
SRC/RANDOM.OBJ SRC/EXTCMODES.OBJ SRC/MD5.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \
|
||||
SRC/EXTBANS.OBJ $(ZIPOBJ) $(CURLOBJ)
|
||||
SRC/EXTBANS.OBJ SRC/TIMESYNCH.OBJ $(ZIPOBJ) $(CURLOBJ)
|
||||
|
||||
OBJ_FILES=$(EXP_OBJ_FILES) SRC/GUI.OBJ SRC/SERVICE.OBJ SRC/DEBUG.OBJ SRC/RTF.OBJ \
|
||||
SRC/EDITOR.OBJ SRC/WIN32.OBJ
|
||||
@@ -151,7 +194,7 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_SVSNOOP.C SRC/MODULES/M_MKPASSWD.C SRC/MODULES/M_SVSO.C \
|
||||
SRC/MODULES/M_SVSNICK.C SRC/MODULES/M_ADMINCHAT.C SRC/MODULES/M_AKILL.C \
|
||||
SRC/MODULES/M_CHGNAME.C SRC/MODULES/M_GUEST.C SRC/MODULES/M_HTM.C SRC/MODULES/M_LAG.C \
|
||||
SRC/MODULES/M_MESSAGE.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
|
||||
SRC/MODULES/M_MESSAGE.C SRC/MODULES/WEBTV.C SRC/MODULES/M_NACHAT.C SRC/MODULES/M_OPER.C \
|
||||
SRC/MODULES/M_PINGPONG.C SRC/MODULES/M_QUIT.C SRC/MODULES/M_RAKILL.C SRC/MODULES/M_RPING.C \
|
||||
SRC/MODULES/M_SENDUMODE.C SRC/MODULES/M_SQLINE.C SRC/MODULES/M_KILL.C \
|
||||
SRC/MODULES/M_TSCTL.C SRC/MODULES/M_UNKLINE.C SRC/MODULES/M_UNSQLINE.C \
|
||||
@@ -175,7 +218,9 @@ MOD_FILES=SRC/MODULES/L_COMMANDS.C SRC/MODULES/M_CHGHOST.C SRC/MODULES/M_SDESC.C
|
||||
SRC/MODULES/M_NICK.C SRC/MODULES/M_USER.C SRC/MODULES/M_MODE.C \
|
||||
SRC/MODULES/M_WATCH.C SRC/MODULES/M_PART.C SRC/MODULES/M_JOIN.C \
|
||||
SRC/MODULES/M_MOTD.C SRC/MODULES/M_OPERMOTD.C SRC/MODULES/M_BOTMOTD.C \
|
||||
SRC/MODULES/M_LUSERS.C
|
||||
SRC/MODULES/M_LUSERS.C SRC/MODULES/M_NAMES.C SRC/MODULES/M_SVSNOLAG.C \
|
||||
SRC/MODULES/M_STARTTLS.C SRC/MODULES/M_NOPOST.C SRC/MODULES/M_ISSECURE.C SRC/MODULES/M_CAP.C \
|
||||
SRC/MODULES/M_SASL.C
|
||||
|
||||
DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDENT.DLL \
|
||||
SRC/MODULES/M_SETNAME.DLL SRC/MODULES/M_SETHOST.DLL SRC/MODULES/M_CHGIDENT.DLL \
|
||||
@@ -210,7 +255,10 @@ DLL_FILES=SRC/MODULES/M_CHGHOST.DLL SRC/MODULES/M_SDESC.DLL SRC/MODULES/M_SETIDE
|
||||
SRC/MODULES/M_NICK.DLL SRC/MODULES/M_USER.DLL SRC/MODULES/M_MODE.DLL \
|
||||
SRC/MODULES/M_WATCH.DLL SRC/MODULES/M_PART.DLL SRC/MODULES/M_JOIN.DLL \
|
||||
SRC/MODULES/M_MOTD.DLL SRC/MODULES/M_OPERMOTD.DLL SRC/MODULES/M_BOTMOTD.DLL \
|
||||
SRC/MODULES/M_LUSERS.DLL \
|
||||
SRC/MODULES/M_LUSERS.DLL SRC/MODULES/M_NAMES.DLL SRC/MODULES/M_SVSNOLAG.DLL \
|
||||
SRC/MODULES/M_STARTTLS.DLL \
|
||||
SRC/MODULES/M_NOPOST.DLL SRC/MODULES/M_ISSECURE.DLL SRC/MODULES/M_CAP.DLL \
|
||||
SRC/MODULES/M_SASL.DLL \
|
||||
SRC/MODULES/CLOAK.DLL
|
||||
|
||||
|
||||
@@ -231,22 +279,23 @@ CLEAN:
|
||||
-@erase src\modules\*.ilk >NUL
|
||||
|
||||
./UNREAL.EXE: SRC/UNREAL.OBJ SRC/WIN32/UNREAL.RES
|
||||
$(LINK) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
$(LINK) $(DBGLFLAGST) advapi32.lib src/unreal.obj src/win32/unreal.res
|
||||
|
||||
CONF:
|
||||
-@copy include\win32\setup.h include\setup.h >NUL
|
||||
$(CC) src/win32/config.c
|
||||
-@config.exe
|
||||
|
||||
|
||||
|
||||
|
||||
./WIRCD.EXE: $(OBJ_FILES) SRC/win32/WIN32.RES
|
||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES SRC/WIN32/TRE.LIB /MAPINFO:LINES /MAP
|
||||
$(LINK) $(LFLAGS) $(OBJ_FILES) SRC/win32/WIN32.RES /MAP
|
||||
-@erase src\win32\win32.res
|
||||
!IFNDEF DEBUG
|
||||
@echo Non Debug version built
|
||||
$(MT) -manifest WIRCD.EXE.manifest -outputresource:WIRCD.EXE;1
|
||||
!IFNDEF DEBUGEXTRA
|
||||
@echo Standard version built
|
||||
!ELSE
|
||||
@echo Debug version built ...
|
||||
@echo Extra-Debug version built ...
|
||||
!ENDIF
|
||||
|
||||
#Source files
|
||||
@@ -257,12 +306,6 @@ src/version.obj: src/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/socket.obj: src/socket.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/socket.c
|
||||
|
||||
@@ -312,11 +355,8 @@ src/list.obj: src/list.c $(INCLUDES)
|
||||
src/res.obj: src/res.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/res.c
|
||||
|
||||
src/res_mkquery.obj: src/res_mkquery.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/res_mkquery.c
|
||||
|
||||
src/res_skipname.obj: src/res_skipname.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/res_skipname.c
|
||||
src/timesynch.obj: src/timesynch.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/timesynch.c
|
||||
|
||||
src/s_bsd.obj: src/s_bsd.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/s_bsd.c
|
||||
@@ -394,13 +434,7 @@ src/win32.obj: src/win32/win32.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/win32/win32.c
|
||||
|
||||
src/unreal.obj: src/win32/unreal.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/win32/unreal.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
|
||||
$(CC) $(CFLAGSST) src/win32/unreal.c
|
||||
|
||||
src/help.obj: src/help.c $(INCLUDES)
|
||||
$(CC) $(CFLAGS) src/help.c
|
||||
@@ -470,9 +504,10 @@ MODULES: $(DLL_FILES)
|
||||
|
||||
src/modules/commands.dll: $(MOD_FILES) $(INCLUDES)
|
||||
$(CC) $(MODDBGCFLAG) $(LIBCURL_INC) $(ZLIB_INC) $(OPENSSL_INC) /nologo \
|
||||
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) /Fosrc/modules/ \
|
||||
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE $(MOD_FILES) \
|
||||
$(MODLFLAGS) src/win32/tre.lib /OUT:src/modules/commands.dll
|
||||
$(SSLCFLAGS) $(ZIPCFLAGS) $(CURLCFLAGS) $(TRE_INC) /Fosrc/modules/ \
|
||||
/I ./INCLUDE /D NOSPOOF /D MODULE_COMPILE /D _CRT_SECURE_NO_DEPRECATE \
|
||||
/D _USE_32BIT_TIME_T $(MOD_FILES) \
|
||||
$(MODLFLAGS) /OUT:src/modules/commands.dll
|
||||
|
||||
src/modules/m_chghost.dll: src/modules/m_chghost.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_chghost.c $(MODLFLAGS)
|
||||
@@ -499,7 +534,7 @@ src/modules/m_svsmode.dll: src/modules/m_svsmode.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_svsmode.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_tkl.dll: src/modules/m_tkl.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_tkl.c $(MODLFLAGS) src/win32/tre.lib
|
||||
$(CC) $(MODCFLAGS) src/modules/m_tkl.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_swhois.dll: src/modules/m_swhois.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_swhois.c $(MODLFLAGS)
|
||||
@@ -547,7 +582,7 @@ src/modules/m_lag.dll: src/modules/m_lag.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_lag.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_message.dll: src/modules/m_message.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_message.c $(MODLFLAGS)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_message.c src/modules/webtv.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_nachat.dll: src/modules/m_nachat.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_nachat.c $(MODLFLAGS)
|
||||
@@ -774,9 +809,30 @@ src/modules/m_botmotd.dll: src/modules/m_botmotd.c $(INCLUDES)
|
||||
src/modules/m_lusers.dll: src/modules/m_lusers.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_lusers.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_names.dll: src/modules/m_names.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_names.c $(MODLFLAGS)
|
||||
|
||||
src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/cloak.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_svsnolag.dll: src/modules/m_svsnolag.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_svsnolag.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_starttls.dll: src/modules/m_starttls.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_starttls.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_nopost.dll: src/modules/m_nopost.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_nopost.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_issecure.dll: src/modules/m_issecure.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_issecure.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_cap.dll: src/modules/m_cap.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_cap.c $(MODLFLAGS)
|
||||
|
||||
src/modules/m_sasl.dll: src/modules/m_sasl.c $(INCLUDES)
|
||||
$(CC) $(MODCFLAGS) src/modules/m_sasl.c $(MODLFLAGS)
|
||||
|
||||
dummy:
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* AwesomeChristians Chat Network (irc.awesomechristians.com) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 31 December 2001 15:25
|
||||
* Author: ChildLikeFaith
|
||||
* Email: childlikefaith@awesomechristians.com
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "AwesomeChristians Chat Network";
|
||||
default-server "irc.awesomechristians.com";
|
||||
services-server "services.awesomechristians.com";
|
||||
stats-server "services.awesomechristians.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "awesome";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "ircop.awesomechristians.net";
|
||||
global "ircop.awesomechristians.net";
|
||||
coadmin "co.admin.awesomechristians.net";
|
||||
admin "admin.awesomechristians.net";
|
||||
servicesadmin "services.admin.awesomechristians.net";
|
||||
netadmin "network.admin.awesomechristians.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* AXEnet (irc.axenet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Axenet";
|
||||
default-server "irc.axenet.org";
|
||||
services-server "services.axenet.org";
|
||||
stats-server "stats.axenet.org";
|
||||
help-channel "#axenethelp";
|
||||
hiddenhost-prefix "axe";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.axenet.org";
|
||||
global "ircop.axenet.org";
|
||||
coadmin "coadmin.axenet.org";
|
||||
admin "admin.axenet.org";
|
||||
servicesadmin "csop.axenet.org";
|
||||
netadmin "netadmin.axenet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,28 +0,0 @@
|
||||
/*
|
||||
* Bunker7.net Network Configuration File
|
||||
* -----------------------------------------
|
||||
* Added-at: 17 August 1999 12:34 CT
|
||||
* Author: Rogue
|
||||
* E-Mail: rogue@bunker7.net
|
||||
* $Id$
|
||||
*-----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "bunker7";
|
||||
default-server "irc.bunker7.net";
|
||||
services-server "services.bunker7.net";
|
||||
stats-server "stats.bunker7.net";
|
||||
help-channel "#bunker7";
|
||||
hiddenhost-prefix "bunker7";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.bunker7.net";
|
||||
global "global.bunker7.net";
|
||||
coadmin "coadmin.bunker7.net";
|
||||
admin "admin.bunker7.net";
|
||||
servicesadmin "sadm.bunker7.net";
|
||||
netadmin "netadmin.bunker7.net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* BuRnNET (irc.burncycl.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 April 2001 03:31
|
||||
* Author: BuRnCycL
|
||||
* Email: burncycl@burncycl.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "BuRnNET";
|
||||
default-server "irc.burncycl.net";
|
||||
services-server "services.burncycl.net";
|
||||
stats-server "stats.burncycl.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.burncycl.net";
|
||||
global "oper.burncycl.net";
|
||||
coadmin "coadmin.burncycl.net";
|
||||
admin "admin.burncycl.net";
|
||||
servicesadmin "csop.burncycl.net";
|
||||
netadmin "netadmin.burncycl.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* CaboNet (irc.cabonet.org) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 03 February 2001 15:38
|
||||
* Author: Nandin
|
||||
* Email: nandin@cabonet.org
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CaboNet";
|
||||
default-server "irc.cabonet.org";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.cabonet.org";
|
||||
help-channel "#cabonet";
|
||||
hiddenhost-prefix "cnet";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "local.cabonet.org";
|
||||
global "oper.cabonet.org";
|
||||
coadmin "coadmin.cabonet.org";
|
||||
admin "admin.cabonet.org";
|
||||
servicesadmin "csop.cabonet.org";
|
||||
netadmin "netadmin.cabonet.org";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Added-at: 25 november 2000 17:35 GMT
|
||||
* Author: Highlander (J.S. Morrison)
|
||||
* E-Mail: highlander@chatcrap.com
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatCrap";
|
||||
default-server "irc.chatcrap.com";
|
||||
services-server "services.cabonet.org";
|
||||
stats-server "stats.chatcrap.com";
|
||||
help-channel "#operhelp";
|
||||
hiddenhost-prefix "chatcrap";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatcrap.com";
|
||||
global "ircop.chatcrap.com";
|
||||
coadmin "coadmin.chatcrap.com";
|
||||
admin "admin.chatcrap.com";
|
||||
servicesadmin "serviceop.chatcrap.com";
|
||||
netadmin "netadmin.chatcrap.com";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,27 +0,0 @@
|
||||
/*
|
||||
* ChatUniverse (irc.chatuniverse.net) Network Configuration File
|
||||
* --------------------------------------------------
|
||||
* Added-at: 16 March 2001 13:02
|
||||
* Author: PeTrArChY
|
||||
* Email: bradbury@rebeldev.net
|
||||
* -----------------------------------------
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "ChatUniverse";
|
||||
default-server "irc.chatuniverse.net";
|
||||
services-server "services.chatuniverse.net";
|
||||
stats-server "stats.chatuniverse.net";
|
||||
help-channel "#chatuniverse";
|
||||
hiddenhost-prefix "CU";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "locop.chatuniverse.net";
|
||||
global "oper.chatuniverse.net";
|
||||
coadmin "coadmin.chatuniverse.net";
|
||||
admin "admin.chatuniverse.net";
|
||||
servicesadmin "csop.chatuniverse.net";
|
||||
netadmin "netadmin.chatuniverse.net";
|
||||
host-on-oper-up "on";
|
||||
};
|
||||
};
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* CTCP Networks (irc.ctcp.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 12 February 2002 19:54
|
||||
* Author: Mark
|
||||
* Email: mark@ctcp.net
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "CTCP Networks";
|
||||
default-server "irc.ctcp.net";
|
||||
services-server "services.ctcp.net";
|
||||
stats-server "stats.ctcp.net";
|
||||
help-channel "#opers";
|
||||
hiddenhost-prefix "ctcp";
|
||||
hosts {
|
||||
local "locop.ctcp.net";
|
||||
global "oper.ctcp.net";
|
||||
coadmin "coadmin.ctcp.net";
|
||||
admin "admin.ctcp.net";
|
||||
servicesadmin "csop.ctcp.net";
|
||||
netadmin "netadmin.ctcp.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Dark Kaos Network (irc.darkkaos.net) Network Configuration File
|
||||
*
|
||||
* Added-at: 04 February 2002 03:15
|
||||
* Author: ka0t1c_m4n
|
||||
* Email: drk_kaos@yahoo.com
|
||||
*/
|
||||
|
||||
set {
|
||||
network-name "Dark Kaos Network";
|
||||
default-server "irc.darkkaos.net";
|
||||
services-server "services.darkkaos.net";
|
||||
stats-server "stats.darkkaos.net";
|
||||
help-channel "#help";
|
||||
hiddenhost-prefix "hide";
|
||||
hosts {
|
||||
local "localop.darkkaos.net";
|
||||
global "would.u.like.to.be.me.com";
|
||||
coadmin "ircop.darkkaos.net";
|
||||
admin "i.hate.terr.oists.net";
|
||||
servicesadmin "Csop.darkkaos.net";
|
||||
netadmin "netadmin.darkkaos.net";
|
||||
host-on-oper-up yes;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
set {
|
||||
network-name "DigitalIRC.Net";
|
||||
default-server "irc.digitalirc.net";
|
||||
services-server "Services.DigitalIRC.Net";
|
||||
stats-server "Statistics.DigitalIRC.com";
|
||||
help-channel "#Digitalirc";
|
||||
hiddenhost-prefix "NN";
|
||||
prefix-quit "Quit:";
|
||||
hosts {
|
||||
local "LocOper.DigitalIRC.Net";
|
||||
global "Oper.DigitalIRC.Net";
|
||||
coadmin "NetAdmin.DigitalIRC.Net";
|
||||
admin "Admin.DigitalIRC.Net";
|
||||
servicesadmin "ServicesOp.DigitalIRC.Net";
|
||||
netadmin "NetAdmin.DigitalIRC.Net";
|
||||
host-on-oper-up "off";
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user