mirror of
https://github.com/unrealircd/unrealircd.git
synced 2026-06-16 21:44:46 +02:00
Compare commits
2165 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 779a427fc7 | |||
| 6044323d03 | |||
| e133b21703 | |||
| 96ee7083c8 | |||
| 755ef5b052 | |||
| 8babe4db3f | |||
| 58f8943069 | |||
| 332135e5b3 | |||
| eae47eac5f | |||
| 12e1faf417 | |||
| f8de9ec78e | |||
| dc9880ce1e | |||
| ac94ef3c85 | |||
| ce38423b42 | |||
| 06df7cba70 | |||
| 4981bf472c | |||
| 3a0d8fc06c | |||
| 7a7266bc2f | |||
| 64c8096361 | |||
| 9f8e73dca7 | |||
| 872ebca6fa | |||
| 92ceb129da | |||
| b0d3476176 | |||
| 09d31d8ded | |||
| 8a6cbfaaf0 | |||
| 5b63d28e2a | |||
| 377fa25244 | |||
| f9bbeaa6ca | |||
| d3f061bbd9 | |||
| 8bbc136a66 | |||
| cc15cd63de | |||
| 9bd4f25af5 | |||
| 15ea9a9347 | |||
| d6e285bdfc | |||
| b1944284bd | |||
| 1ada6c09f1 | |||
| 4234400e22 | |||
| 81e2099f7b | |||
| f3bd95fa42 | |||
| 2ba65ed35c | |||
| 11c6604aeb | |||
| 4e75af79fa | |||
| 3ba5153362 | |||
| 570c59b2b2 | |||
| 3aa5048300 | |||
| 9d7354147d | |||
| 5c30d1af6d | |||
| 9e69cd722d | |||
| 422f76a723 | |||
| f111b5c1ad | |||
| 05c4cb5e8f | |||
| 83372cc2c8 | |||
| bd05cf8e58 | |||
| ee342d9b84 | |||
| 8b222a1ed2 | |||
| b2307af8ec | |||
| e7de6cf3a4 | |||
| dd2af3b31c | |||
| 5a38d8ed75 | |||
| 6d3a98653e | |||
| ad173cc5d0 | |||
| 5b20716e9b | |||
| 6c837d3ce4 | |||
| 9ca53369e7 | |||
| 15d77298fe | |||
| 4490b8744e | |||
| a9b3e05b0c | |||
| b3e9d391d8 | |||
| e19639a1bd | |||
| 59e3a42304 | |||
| 60952328f0 | |||
| f9db29b768 | |||
| cb60bf286d | |||
| edfc832aa8 | |||
| 7bcf419eda | |||
| e4ddc80c2a | |||
| a11ee2b1a2 | |||
| 5992a759f7 | |||
| ab50bf2afc | |||
| 335a7569bb | |||
| 7ad6b15e92 | |||
| 761ae02935 | |||
| fd73739847 | |||
| 872830bdf2 | |||
| b396dc3c20 | |||
| f47dc78418 | |||
| 2c114d458e | |||
| f039e08f0b | |||
| e0a4e7fe71 | |||
| 2e79c34c11 | |||
| 99b379fca8 | |||
| 584f3e9d6d | |||
| 20550981f8 | |||
| 5d69fe9d93 | |||
| ad063ba36a | |||
| fac1e30b91 | |||
| 87c81e7e9f | |||
| 41c1f01011 | |||
| 16659de0b2 | |||
| 766055d5c0 | |||
| de1548de73 | |||
| f599ea02cb | |||
| d068cd41ca | |||
| d7e5ff82f0 | |||
| e16e2b36d8 | |||
| c6f01aa3f1 | |||
| 294560f944 | |||
| 9a0bd31cf8 | |||
| 1dbef111fb | |||
| 1f03dbdd05 | |||
| 3712fad891 | |||
| 7e444d3b9f | |||
| 77d3e844dc | |||
| 7d5c3a1b68 | |||
| c7f00edd9d | |||
| 78cd122a05 | |||
| dde8f914fb | |||
| a740570710 | |||
| 9c0f1f3505 | |||
| e443182573 | |||
| 988f64e3b3 | |||
| f92a6fec79 | |||
| 70a9a6f6b2 | |||
| 57f97a5a43 | |||
| 1e1f750b44 | |||
| 1e6d8ea536 | |||
| 9f4296d648 | |||
| 7153468081 | |||
| be50ef4a1e | |||
| f9415e1a91 | |||
| eecd29bdc8 | |||
| 52e72c2ed9 | |||
| 1790efd05d | |||
| ff9ca3c8ef | |||
| a999b305a5 | |||
| 6cbd2744d7 | |||
| 41239119f8 | |||
| 88030c63fb | |||
| 98fca7979f | |||
| 5eaa711969 | |||
| d085fb09c1 | |||
| 874d99e0eb | |||
| 4aa2d47deb | |||
| ed1f47f80a | |||
| 2a3dd0e350 | |||
| ac9463a83f | |||
| 083826ee94 | |||
| ee20160bc3 | |||
| 7a3ba05c03 | |||
| 6fcacdf148 | |||
| 41e6d5b7e9 | |||
| bcb667c59e | |||
| 25ede84a04 | |||
| c726df5758 | |||
| 013dd06aee | |||
| 3bacb28555 | |||
| 8a9971618f | |||
| 3e3da94a41 | |||
| 4d5e627b27 | |||
| 425571a8d2 | |||
| e82dbdce1a | |||
| 4681603c52 | |||
| 778be86c66 | |||
| f4b432ae94 | |||
| 67d691fce9 | |||
| 8e7a085474 | |||
| 5fd673d059 | |||
| a1d2698ead | |||
| b0c8629284 | |||
| 72a3a445ee | |||
| 9668aaaade | |||
| dbeb5af2ea | |||
| 227abacdb5 | |||
| 8e1af5f304 | |||
| 9873382e6b | |||
| 7d68ea0570 | |||
| dbbe6e7248 | |||
| 981a5d44b2 | |||
| 2a9b20369b | |||
| 8c9e4b8668 | |||
| dbf7aeb386 | |||
| 4965fc6741 | |||
| c173b17064 | |||
| 5da3ef8889 | |||
| 8b0cad3845 | |||
| 56568f4033 | |||
| 43de2dd747 | |||
| 73502ca4b6 | |||
| bb7bc90612 | |||
| ad9a1b0b94 | |||
| e30712f3d4 | |||
| f3f397b066 | |||
| f1844e40a5 | |||
| 54c17aa65d | |||
| bb0530f694 | |||
| 7755d10829 | |||
| 62e30ec342 | |||
| 267c2f3e56 | |||
| 7f8172faef | |||
| 7aaf5e9a42 | |||
| 88fadc134d | |||
| 0ac56e4444 | |||
| 56a964bba1 | |||
| 6b089dfcd6 | |||
| b1e1b6d9d5 | |||
| ce4aeff63f | |||
| 2ed958f2ee | |||
| 9f3e060a3d | |||
| 0254894368 | |||
| c124f65027 | |||
| 3774e5661f | |||
| a0167c35c0 | |||
| e470541a8b | |||
| 267f6adc54 | |||
| 7dcb5a5bb1 | |||
| 02184fe3a0 | |||
| b335f8c284 | |||
| 8bbcd94071 | |||
| 9fdd93f0e4 | |||
| 942da806dd | |||
| a852b480d5 | |||
| 459a55245a | |||
| 51ed51dff1 | |||
| 7cd0bbbcb9 | |||
| 9cfff2d07d | |||
| 8d1047d4e9 | |||
| 84686f02bb | |||
| 4bef3a5238 | |||
| 4a0dcc5f13 | |||
| 9d5e46c43c | |||
| 9f7b8997f2 | |||
| 112c5d922e | |||
| b89bd719a7 | |||
| d0799a0f04 | |||
| 6f3ef8e3a7 | |||
| 4b5e950ffd | |||
| 793e827218 | |||
| d11b3228e6 | |||
| 98a33f7485 | |||
| 02d69e7d83 | |||
| 2509482e02 | |||
| 6acfa3404b | |||
| 02c5c8567a | |||
| b4b6ebbca3 | |||
| 75e2ed38e2 | |||
| 1feeb86cd3 | |||
| 24ea77f507 | |||
| a7af69b887 | |||
| d56eddd69a | |||
| 7d38909126 | |||
| fb0148a44a | |||
| bd0821fc41 | |||
| c4eac1df0e | |||
| 30da2ae553 | |||
| 886b67ca8a | |||
| dba2081641 | |||
| 3f7ec605dd | |||
| 57a008b808 | |||
| cd2f77defd | |||
| 402958a3c6 | |||
| 8738c42b82 | |||
| 05745124f1 | |||
| a4e076c08c | |||
| d610dfbe9f | |||
| 5445a009a3 | |||
| 5921924297 | |||
| f876983cb3 | |||
| 681640024a | |||
| 2935385bf2 | |||
| 3f0d349e2b | |||
| a66373f74e | |||
| 77000795c7 | |||
| bc139098c9 | |||
| 73f69ccb11 | |||
| 2cbcc29a0d | |||
| 9ed6a9ae79 | |||
| ab321f632b | |||
| bd19e9c87a | |||
| 8d05951298 | |||
| 858aaa774a | |||
| aa3e66bb5b | |||
| 107d8ccf6a | |||
| ffcf85f409 | |||
| c4760cc83c | |||
| c8c0199095 | |||
| aa45ce11cc | |||
| b2be1009a0 | |||
| 1d42ccd973 | |||
| 1eb09484f1 | |||
| 5f116cc64e | |||
| 2537fb5e1c | |||
| d3dba63f56 | |||
| 5f597c0b08 | |||
| cab8ea7066 | |||
| 883a5fe413 | |||
| b1b73e0e56 | |||
| 3c801ced2e | |||
| bf08c5d121 | |||
| 477694bd11 | |||
| d86d4c7c71 | |||
| cf97de890a | |||
| c2f9df9e48 | |||
| 26c194d8db | |||
| 4900fb01df | |||
| 54a6e2f61f | |||
| 8fc4f68bcc | |||
| 8150c6c237 | |||
| 1f4fcb9407 | |||
| 3bd83829e3 | |||
| f3b9753460 | |||
| 98709beee2 | |||
| bc8ac7c7f6 | |||
| 25f08d50ac | |||
| c4d132c8f9 | |||
| 05dcf18ea6 | |||
| f9f03190f8 | |||
| 14eda9638d | |||
| 0961b95ba9 | |||
| 52afbeee50 | |||
| da98080860 | |||
| 49bfb1e782 | |||
| 18b793db9a | |||
| a236eb0fc1 | |||
| 3aec69192b | |||
| 5461d24124 | |||
| 93957fc7ee | |||
| cd6d7a2bb7 | |||
| 46a60ec795 | |||
| ad63a499e1 | |||
| 8b988622cd | |||
| e456f621ef | |||
| 21af7689c0 | |||
| af46d569f6 | |||
| aebf9691bd | |||
| 362033b73f | |||
| 686fc1b03d | |||
| 8a73b96aee | |||
| 2be4668d9b | |||
| 39e2d88f6c | |||
| b597999a34 | |||
| 5e8334a9be | |||
| 8ac5a49d9d | |||
| 85cfe2a779 | |||
| d9c30aaeb8 | |||
| 53f7ee81b1 | |||
| 717be3afcb | |||
| 201159c630 | |||
| cb4be97bdf | |||
| 3b0cb5c2a9 | |||
| 53c1ea6226 | |||
| 923619ba30 | |||
| 8efcd684d3 | |||
| 83be1571ef | |||
| 49394ed346 | |||
| 04b3dd24f8 | |||
| fa9bdcd7df | |||
| 3809168992 | |||
| a6a4196af9 | |||
| 3ea67268fc | |||
| df19b65a78 | |||
| 66b2a036d8 | |||
| 94c718dc3d | |||
| def588917a | |||
| 40b0a5a9b2 | |||
| f615b6fa54 | |||
| 64367d5d4c | |||
| 568a808dbe | |||
| d1d87d4d42 | |||
| 7fe86ac1d8 | |||
| 3a97bc29da | |||
| c342b432d1 | |||
| 34ae2cb0db | |||
| 47e2975f01 | |||
| 52b785cf4e | |||
| 47bfcf7587 | |||
| d8c6201fbb | |||
| 821a0464c7 | |||
| 31409b19a5 | |||
| 255223b308 | |||
| ecf260dfc2 | |||
| 1c2da25573 | |||
| 33db0bf73e | |||
| f535860670 | |||
| 9e2f16db9e | |||
| 992bed3c7a | |||
| 4f0f8478cc | |||
| bb4758f321 | |||
| 6990b7d9a6 | |||
| 61f40a59a7 | |||
| 9a1a4f13a4 | |||
| d5d446c38d | |||
| 680715b1b5 | |||
| 147ae3012b | |||
| 8d7d6d7c4c | |||
| 6ef9a83c97 | |||
| 5044013dd5 | |||
| a7bcb637b7 | |||
| a235b35633 | |||
| 04ca88cc1e | |||
| ad9ca5e449 | |||
| 9b1a79a191 | |||
| 4e1e7d6674 | |||
| f0092fef4e | |||
| 74009b88ba | |||
| 894491fa32 | |||
| 2f4baddf0e | |||
| 15bf82d3c1 | |||
| 8f2b77bb2e | |||
| 9f18118f76 | |||
| 54947ed9b5 | |||
| 41b7e1b735 | |||
| 386d2aaf8b | |||
| afad280a1d | |||
| f4b864c7b8 | |||
| 2bbdf22d76 | |||
| 12848b7dae | |||
| 6c1918bb77 | |||
| 3a67809140 | |||
| 107424de9e | |||
| 3aa13d2bc3 | |||
| 5609b36850 | |||
| 7808330176 | |||
| 0a9306ca5b | |||
| 888b4f549c | |||
| 33ec662205 | |||
| dc7cb17eff | |||
| 079963cdc6 | |||
| 847d7d9f7d | |||
| e4ce20466e | |||
| a07411217f | |||
| c603cc52b3 | |||
| 82659cfecc | |||
| fa2afa8d0b | |||
| cc6d7757fa | |||
| be0b499d94 | |||
| 7851742bc5 | |||
| 40293aaaa7 | |||
| b923b57b35 | |||
| 24a1f5ba9f | |||
| 62277dbccf | |||
| 330498c467 | |||
| abaacb6643 | |||
| b5b01c5263 | |||
| 05e289fc59 | |||
| fb12e1beeb | |||
| e3b91f8b94 | |||
| 2a040b40a5 | |||
| 668e1241b0 | |||
| f7df81fd24 | |||
| 0d99670391 | |||
| 12df5a96ff | |||
| e68f31ba34 | |||
| b7bdb1dc40 | |||
| 87a42edd4b | |||
| 0cc5eddce2 | |||
| e67d49112e | |||
| e16dfdc6a6 | |||
| aa093f3e2b | |||
| d63bc7e187 | |||
| 92afdb56b5 | |||
| 8b0fd74c37 | |||
| 2e1e9a0b91 | |||
| eb205e04cc | |||
| 1b2b28e6c6 | |||
| dd6f67a266 | |||
| b046b86a6e | |||
| e1af5ae6c5 | |||
| d13c7b20d0 | |||
| 7b7f492b71 | |||
| cb6a118c4d | |||
| 3c0db9c72f | |||
| cd7d3f0cc6 | |||
| 527fa9818c | |||
| 512c8fb000 | |||
| 31688fbae8 | |||
| 07f056c1a4 | |||
| d8470bb902 | |||
| f86cf68548 | |||
| 1425583bed | |||
| 1070e43141 | |||
| 7d6d33a5bc | |||
| 67396c808d | |||
| 69264175e7 | |||
| 1e059ca0e4 | |||
| 6b35aa35a8 | |||
| c5e38b9272 | |||
| 704487e124 | |||
| d574183825 | |||
| 0dadba5482 | |||
| 52a7478bd0 | |||
| 1dfcac9794 | |||
| 0318edbad0 | |||
| cec74b0208 | |||
| 13740a7d13 | |||
| 821ad6ec06 | |||
| 5f3f6aa827 | |||
| e1590fc8bc | |||
| 866a060533 | |||
| b23a3ff7b9 | |||
| 4dc5324e57 | |||
| 77234b2b8d | |||
| d11484c2cf | |||
| 8981b87c72 | |||
| 8a17f5aad2 | |||
| a55aa2a39a | |||
| a9a94652ec | |||
| 7527de3820 | |||
| 81e8ef3b49 | |||
| 1a434963b7 | |||
| b3480c3b42 | |||
| a6049add32 | |||
| 99f9d1aa7c | |||
| b941b184f0 | |||
| e505a4b99c | |||
| 5510f6dc0d | |||
| 25864b9cb6 | |||
| 5ec84b1629 | |||
| 593cacbc90 | |||
| 40d8fe9376 | |||
| 6ab81ab7b4 | |||
| d67de82786 | |||
| 5bedeaa9bf | |||
| f8cab0d093 | |||
| a716e3ccaa | |||
| 70b64c2ad8 | |||
| e4f4336f15 | |||
| b56c5b985f | |||
| 3aa6adcbfc | |||
| 98b4832b27 | |||
| c2d80028b3 | |||
| 307243ff7a | |||
| 1d659296c2 | |||
| b7b8e41ac4 | |||
| df5ed0884e | |||
| 9e1160b74f | |||
| 55e4c8ea03 | |||
| 16faccb777 | |||
| 75ab9a766c | |||
| f2603cdc49 | |||
| abd7354bbb | |||
| 16f71e8360 | |||
| 1b6d49a9dc | |||
| 66143927e0 | |||
| b52b82f8a5 | |||
| ee2435689c | |||
| 87815ad397 | |||
| 7801dc888d | |||
| d6e26d59e5 | |||
| 5bd9878413 | |||
| 5c7d89a642 | |||
| 2248699c60 | |||
| 5124e60b7c | |||
| 0fd265349a | |||
| 23ce2eaabe | |||
| 3d38adff4f | |||
| 885e474211 | |||
| 1a80309314 | |||
| 08496ec47b | |||
| 7a33a2c019 | |||
| d6acbf63b0 | |||
| 37dbdfeee3 | |||
| 6dd147b941 | |||
| 47eebad53d | |||
| 5399e060fa | |||
| ac65e32a26 | |||
| 461fa9a48a | |||
| 7d381086ad | |||
| 44052b86c0 | |||
| fbd4e74663 | |||
| 638b189804 | |||
| 838354f155 | |||
| de9216a339 | |||
| 217ea69fe8 | |||
| 3de335ea0c | |||
| 91e108499e | |||
| a20dc5f8c1 | |||
| e7c7b1daff | |||
| 3cbf2536b2 | |||
| 1f856745e5 | |||
| 366a494c00 | |||
| 2914695681 | |||
| 461ce8016a | |||
| ea974ed018 | |||
| 296decf648 | |||
| a21222a672 | |||
| 05c6dfbb35 | |||
| edb144d570 | |||
| a5dbd3aa7c | |||
| b757d2eff0 | |||
| 08bc61ec00 | |||
| 959195e7d7 | |||
| 58ebc9c6be | |||
| 788f628403 | |||
| 3510a98e50 | |||
| 8fad7c563d | |||
| 1faa91ed0e | |||
| 78695f3eea | |||
| 0da1fdb2d2 | |||
| 3ade6c7ecb | |||
| 199a7e162d | |||
| aa829bce12 | |||
| ac66a0fe12 | |||
| 5ff4fb3f87 | |||
| 6d7be72f2b | |||
| 08b621aa08 | |||
| 5cf28d0d46 | |||
| bfb3e0847b | |||
| 74466a4065 | |||
| d490b0ee3e | |||
| efb344b9b2 | |||
| 6afbc4ee99 | |||
| bfa00e95b7 | |||
| 361a354c4b | |||
| d53d46fce4 | |||
| 40e3e11b61 | |||
| 0b5e46cd23 | |||
| c8a67f9436 | |||
| c7457434c4 | |||
| 77f8b9ed5a | |||
| 74d5f380dd | |||
| 18202a0f73 | |||
| f5b29ed7de | |||
| 8ccf5700f1 | |||
| d222a18286 | |||
| 69a2e7d994 | |||
| 6c539c8566 | |||
| 06aa2ad79a | |||
| ab3e65a76f | |||
| 455420afc1 | |||
| 0f612a3b30 | |||
| 84776eeeb2 | |||
| 1cc6dd3d5b | |||
| 6500af6ba5 | |||
| ea651384f8 | |||
| b2129205f9 | |||
| 590e345b8d | |||
| e6a52ec919 | |||
| 0a8cd1347e | |||
| 6591e6bcee | |||
| 4edcb9226c | |||
| 2b94733cbe | |||
| 7b092f7aeb | |||
| 0c1f299b0b | |||
| d27d3760c7 | |||
| 072d8537b8 | |||
| 7b8f17ef5e | |||
| 6c3c55b4e5 | |||
| ffc5f0ce44 | |||
| 2838ef6266 | |||
| 50801f5068 | |||
| 01687486f0 | |||
| b86419173a | |||
| bbf33b62dc | |||
| 3dc27370a1 | |||
| 5e378fb02b | |||
| 0412c86d17 | |||
| a6f5460ad8 | |||
| ee9f8441bc | |||
| 0035cafdba | |||
| e62ea1dedd | |||
| b6f8ddd456 | |||
| 0c6fb46704 | |||
| fcaa69157b | |||
| e6a02003f5 | |||
| 4c39648b03 | |||
| cd0836572f | |||
| ec9db8fd5f | |||
| 000f9e10fc | |||
| af694e0cbd | |||
| 0963cddd28 | |||
| abd4296d8e | |||
| f65d5fce8b | |||
| 5c417b4235 | |||
| 176566962a | |||
| 9dc4e7d31b | |||
| cb59538309 | |||
| 9252ce30e9 | |||
| 2a4714ea73 | |||
| efdf290bd5 | |||
| 12aa3289b9 | |||
| 97467d2480 | |||
| 67184f506c | |||
| 6f90a0d5f9 | |||
| d997ec0576 | |||
| b1807ea399 | |||
| fbf715af9b | |||
| 0136ac3c83 | |||
| d3518eb1ee | |||
| 9a6ef504d0 | |||
| ca9f2ea82e | |||
| d8b67e0afb | |||
| 894ff20ddd | |||
| 7de81c7aa6 | |||
| c97a3e1903 | |||
| 06485a07fb | |||
| cded56f46a | |||
| 43921b07ac | |||
| 2a83066f67 | |||
| 906ab61518 | |||
| 1af75e775c | |||
| e44fb1d355 | |||
| 0b78fa71fc | |||
| e0130ab0b6 | |||
| 5fcff0dd90 | |||
| a687ab022b | |||
| 027826d451 | |||
| eed722a27c | |||
| 84e405ebef | |||
| 35c9c08008 | |||
| b9d84054fd | |||
| e09da031cc | |||
| 8d0ac37604 | |||
| c7cb19b52c | |||
| 7ade64385d | |||
| 08667134ba | |||
| b0af3b71f0 | |||
| 341378008b | |||
| 229ceeb87d | |||
| 8af0172300 | |||
| 90508c74ae | |||
| 6067202cdf | |||
| 00142f90e9 | |||
| e6aa557169 | |||
| 5d390811fd | |||
| 61265ec226 | |||
| 01a86a5133 | |||
| bdbddfde97 | |||
| 780f3d7637 | |||
| bff5e39d67 | |||
| 03b74f6163 | |||
| d003f8bfe9 | |||
| 8237592f3e | |||
| 1fc6a0efaf | |||
| 9da4c7e5d0 | |||
| 1b87d0a20e | |||
| cbcbdc656a | |||
| aae0971cf4 | |||
| 806d80a947 | |||
| 792ef7294e | |||
| 1f1ac6c4ee | |||
| 5ac4125c6f | |||
| 99e087d50c | |||
| 70a6d8be94 | |||
| a1ff9fe2c4 | |||
| 15842b8290 | |||
| df5ac9a76c | |||
| 1927575bbd | |||
| 89e265e043 | |||
| c5af738273 | |||
| 9a8645973c | |||
| 1004f414aa | |||
| 658cbf04da | |||
| 10c038ffc0 | |||
| 728bd4ba15 | |||
| 6f85ec1452 | |||
| daa9260e12 | |||
| 65caabbb97 | |||
| 41bd7ad4b9 | |||
| a3cdb49bc9 | |||
| 79ed5694b2 | |||
| 05220642b3 | |||
| 32a6b7d4e6 | |||
| 1e313b2e88 | |||
| 526de46c07 | |||
| 7c8da13da5 | |||
| ffd661ac7f | |||
| 21d0af6e88 | |||
| ac3a27029c | |||
| 9763956f05 | |||
| 02fec540a1 | |||
| 6d541442e9 | |||
| f521387cf6 | |||
| 2c83cd7dc4 | |||
| 6ea4c93324 | |||
| 5c1b742e4d | |||
| 07d799fa51 | |||
| 21f33064cd | |||
| 4fd616f940 | |||
| aa7c60b91b | |||
| d44f09d1a0 | |||
| 0e44539853 | |||
| 0d554284e7 | |||
| 60d14e7dcc | |||
| 3326af498c | |||
| 63add50931 | |||
| c8125c33e1 | |||
| 223084858b | |||
| 1bb90bec50 | |||
| 0733751730 | |||
| af4c245e4e | |||
| 3b2cde48c6 | |||
| 388497e592 | |||
| 00ad832a59 | |||
| 8c26cbe7f5 | |||
| 7bb6856709 | |||
| 094dde3c70 | |||
| 84424aac06 | |||
| 72f7138cfb | |||
| f0015ee639 | |||
| 02d000f051 | |||
| 69e651aa40 | |||
| 2f3c34fe9f | |||
| 45545ac3d2 | |||
| d504fbe04c | |||
| 8e149bd503 | |||
| abb3e225aa | |||
| 23c14e56ad | |||
| eabf436c2a | |||
| ebd6e8e1cd | |||
| f526a485c8 | |||
| 8859cca6b2 | |||
| c133dfd31e | |||
| 770bb6ac98 | |||
| 6e4cc3e235 | |||
| d51d23e5cb | |||
| bae1dcf147 | |||
| fd35f965a2 | |||
| 9be628450c | |||
| 8b21562c37 | |||
| 2d09d18135 | |||
| 7e05a29aca | |||
| 4e71b31a29 | |||
| 338d874f75 | |||
| b9c5254e2b | |||
| 11a510843b | |||
| 6d63b39d93 | |||
| 52df9937be | |||
| 5bc9b63855 | |||
| 2eafff6a51 | |||
| e8272e28c2 | |||
| 58f4690b03 | |||
| 1cd0cdcd18 | |||
| f2d21943fe | |||
| 7aaf14c138 | |||
| fbde68ef4a | |||
| 74ea7af9b7 | |||
| ea3ac462d1 | |||
| 64b5d89a98 | |||
| 603adb8ec2 | |||
| a7f98af6ed | |||
| ee97298f4d | |||
| b4306842b2 | |||
| 490abc76c1 | |||
| 2de0c4ec80 | |||
| 9203ee1748 | |||
| 4fe7203091 | |||
| 7f703d8991 | |||
| bbca690d48 | |||
| a9db5b8981 | |||
| f71b173f07 | |||
| 6a9b32344e | |||
| 6a812924da | |||
| f473e355e1 | |||
| 3ab7eb23a0 | |||
| ae0fc98a04 | |||
| 26d343861a | |||
| e586b5457c | |||
| be02467b41 | |||
| 73ec3e3305 | |||
| 8873179974 | |||
| e26190f80b | |||
| 0aea33a5a7 | |||
| 265250bcc1 | |||
| b444116c12 | |||
| 72e089f784 | |||
| f30251205f | |||
| 5f232da4bb | |||
| 7c1a192709 | |||
| 60e10bb963 | |||
| 993b5bc721 | |||
| 12f61450d8 | |||
| 8ddf0a8762 | |||
| 762c39eb0d | |||
| 2c25833e19 | |||
| f2f63c29e5 | |||
| 12c739b806 | |||
| e6d2fab103 | |||
| 095330aa36 | |||
| ccf1d0e41c | |||
| 67c998dc9f | |||
| 6d14c95f77 | |||
| 78f9c8cff4 | |||
| 48e2d2aab3 | |||
| b2a00948a3 | |||
| d5c6c545cb | |||
| c16be8f431 | |||
| 51b52f1767 | |||
| 64839a6304 | |||
| d1d4f6d430 | |||
| e4d9a5dd43 | |||
| 089009e121 | |||
| a886c1ebc6 | |||
| 4ec22ed37b | |||
| bcb66894ed | |||
| 493cd647ee | |||
| d36988269d | |||
| 8199b26137 | |||
| 0966e5f859 | |||
| ee79ccea45 | |||
| 820344f49f | |||
| 1474e5d7e2 | |||
| 1a601bec83 | |||
| 9f4496b6a6 | |||
| 2eda1cb285 | |||
| 89eaa72a8e | |||
| db62117f2b | |||
| 67dfa094a7 | |||
| 8d562ededb | |||
| 8527f8720b | |||
| f95aa13d5b | |||
| 975996a702 | |||
| 5d7d957246 | |||
| 54ebe14f99 | |||
| fb26d7ee12 | |||
| f98a5e69dc | |||
| 8da3e3e1bc | |||
| 93afec781b | |||
| eef1308888 | |||
| 3389a99ae1 | |||
| 28a1fca8dc | |||
| e818ab1a16 | |||
| a3493a9e0c | |||
| 5e9a74f0fd | |||
| 1121172418 | |||
| 6c1e9fc63b | |||
| b68befc29a | |||
| cafb08446f | |||
| 6f365747cb | |||
| 1dacddc944 | |||
| caa5eba30f | |||
| 4cad9cb0c5 | |||
| 6307224d89 | |||
| bf1e1502ba | |||
| da9a1be85b | |||
| 99c3fd3c36 | |||
| fa7acafb78 | |||
| 2f7543f846 | |||
| 1e25578c42 | |||
| d540d65251 | |||
| 942f87d886 | |||
| 8c53075c92 | |||
| 9b84f057ab | |||
| 2ae7fc2ef6 | |||
| d8ffeefd92 | |||
| f7dd3cedd8 | |||
| 0905936622 | |||
| 9f4bd7228a | |||
| cbf8f9f265 | |||
| 4d0dbd40c4 | |||
| 51ef387e89 | |||
| c6a48bd6be | |||
| 8357457b7e | |||
| a225a93800 | |||
| 4153df7f8f | |||
| c297237a1b | |||
| c5620687c8 | |||
| c9bd3b7982 | |||
| 9fa1b0df43 | |||
| b3c371ddf4 | |||
| 70a12d154d | |||
| 434e51f69d | |||
| bf06e0825c | |||
| 8aa655df3a | |||
| 916407a453 | |||
| 92cf4b24fc | |||
| 3ca644dc9a | |||
| ce7fd99019 | |||
| 293af0bc21 | |||
| dd31542e2c | |||
| 3a93c887e4 | |||
| 208f4a504b | |||
| b7a1d50d94 | |||
| 7610fbcea2 | |||
| 655fafcf4e | |||
| 3ec4cfb2b8 | |||
| 34b9797ffc | |||
| 5ed4492db7 | |||
| a67d661d36 | |||
| d41d7bdc46 | |||
| db70f68f5e | |||
| 75658591cd | |||
| 7fe85636cf | |||
| ed082e6265 | |||
| 3428528684 | |||
| 01aa08c7af | |||
| bf516646ec | |||
| 067e5bdfce | |||
| 1bde97174d | |||
| c9a21708b0 | |||
| 98b13429a5 | |||
| ce290f7a9a | |||
| 319f06f0b1 | |||
| d68f63b5fe | |||
| 06b07e30dc | |||
| 829af871bf | |||
| 6178ca1c6f | |||
| 4c2323e1a3 | |||
| b9a3e54eb7 | |||
| 1ef38b242c | |||
| 49384b8903 | |||
| fd40bed05f | |||
| 3c2c66b168 | |||
| dd50463126 | |||
| 377ce40ef8 | |||
| 200ea0e0b2 | |||
| ca87684d7f | |||
| 7f07c3f71b | |||
| f04e95376b | |||
| 5b50f080dd | |||
| 76338b4780 | |||
| 7d43bf1203 | |||
| f6a58b60af | |||
| a603898688 | |||
| 9ac8de5003 | |||
| 46581f2bfb | |||
| d50f9468c6 | |||
| 97fb9f1457 | |||
| 4280d57f60 | |||
| 4dd6be721c | |||
| 9fbcfe7911 | |||
| c1c1c9b308 | |||
| b2da8251d8 | |||
| f4d0b7b802 | |||
| 2f2ee0ba03 | |||
| 78a778e3df | |||
| c51ba70cc3 | |||
| 4653879474 | |||
| 122a9b6b46 | |||
| 00d0822320 | |||
| a45b03e0cc | |||
| a5760351fe | |||
| 0dbeab6362 | |||
| 132d9ec2c5 | |||
| 9b4462f099 | |||
| f07e1ae19e | |||
| d67d9ab6cb | |||
| 9dc97a0324 | |||
| c06e3a7ef6 | |||
| e77ebaf26b | |||
| cdbdd2dce0 | |||
| cc54108400 | |||
| 46e7e7bb42 | |||
| d81c52c5aa | |||
| 1533a296fe | |||
| 67a9833104 | |||
| b087f21482 | |||
| 4ec8f772d8 | |||
| cce6eb7586 | |||
| 243045a887 | |||
| c51c3800c3 | |||
| 10f56911c4 | |||
| 4d7e84b39a | |||
| eac9230931 | |||
| 38dbede832 | |||
| f6837d0202 | |||
| 2de3fbf9d0 | |||
| 240f550e4f | |||
| c5ad32e909 | |||
| bc2f58e8dd | |||
| 23e65d3ca0 | |||
| f1426e02ee | |||
| 4e8f954db6 | |||
| b747d00dea | |||
| c0eb5a1faf | |||
| 7637517da2 | |||
| f1e07feec7 | |||
| cf34e4dbe8 | |||
| 8b45169f82 | |||
| 14e90955bf | |||
| 264b43f6a1 | |||
| 29e645874e | |||
| 681fd333cc | |||
| b428f9b3a3 | |||
| a565a68f36 | |||
| ac21d19daa | |||
| cd7feca47f | |||
| e337d8d526 | |||
| 30d5018c8e | |||
| 7cab2bd83d | |||
| 01f3d7a03b | |||
| fb0709e0f1 | |||
| 28d3c00805 | |||
| 0e42c1f5d3 | |||
| 537c9a2eea | |||
| 507d88cf09 | |||
| ccdc948200 | |||
| 75fb661361 | |||
| da7cd5f8cc | |||
| 792dd9a63c | |||
| 20c7e8d825 | |||
| ec3be52568 | |||
| d059505c33 | |||
| 2f112c3efa | |||
| bd7aebc81e | |||
| 9ba9d65c7e | |||
| 3280c3639e | |||
| cd6f127cfd | |||
| 331cdbc1d6 | |||
| ae34c3626b | |||
| d0b53a9b09 | |||
| 69a121278f | |||
| af88bc7e19 | |||
| ada38f7ac3 | |||
| 177f102d26 | |||
| 972ef43a81 | |||
| a89d64869b | |||
| 493ac9aec9 | |||
| 74f2c10e2e | |||
| 09191c47b2 | |||
| c12d05182e | |||
| ec8a7215bd | |||
| 926bbbcec9 | |||
| 123b91cfe1 | |||
| 99fb8dbfd6 | |||
| 208e93ce8e | |||
| 13d7da7a7b | |||
| 15469cae2e | |||
| 8c9ddb4767 | |||
| 8e87a963a1 | |||
| 9b0bd01749 | |||
| 01244b1710 | |||
| 67fe4479ec | |||
| 03616cb853 | |||
| 237d22249b | |||
| f44ad7e608 | |||
| 77e092573d | |||
| 42cec683df | |||
| f211a5424a | |||
| 281ad03681 | |||
| 452aa02737 | |||
| 37a6c078ff | |||
| 4378667303 | |||
| f0bba94144 | |||
| c17d0291c9 | |||
| 0256ea08df | |||
| 5755721d5f | |||
| 502e48bdfa | |||
| 974ccb1066 | |||
| e4139a3c79 | |||
| 787563beef | |||
| 6a5515d4dc | |||
| ad23afc81f | |||
| c5335a6866 | |||
| 351c4a5107 | |||
| 3d60e89e54 | |||
| 810feea66f | |||
| fb157899dc | |||
| 54f30886d2 | |||
| a18596c9b5 | |||
| 20d8f876c8 | |||
| f985f21c54 | |||
| ebc61fe603 | |||
| 13089a6958 | |||
| a843cec6bc | |||
| 9b97e28ccd | |||
| 09895c67f1 | |||
| e627d3682c | |||
| 8df16d5a83 | |||
| 2bd5345eec | |||
| 0bcc8494b7 | |||
| 8a3d1b22f1 | |||
| b12ee99ab2 | |||
| 14aca6bcde | |||
| 8c86721c55 | |||
| 49bb80901e | |||
| ff0b4aba75 | |||
| 6410f82162 | |||
| 4a890e3915 | |||
| c19165c8a6 | |||
| ae23d99e07 | |||
| 3b217f083a | |||
| c8a5bfd2b4 | |||
| a29baf96f6 | |||
| fa87577918 | |||
| 49fb284096 | |||
| ea7a080154 | |||
| 47ec1da3f5 | |||
| 6f34a8203d | |||
| b072a80638 | |||
| 46ee510da6 | |||
| 63724c312b | |||
| 3577583eaf | |||
| d15701bced | |||
| 3ffa547d2e | |||
| a6a5e93524 | |||
| 8e30acda41 | |||
| 80147b2914 | |||
| 7d98523c48 | |||
| 925de764ff | |||
| a049ef22e4 | |||
| a444964730 | |||
| 709c7e890e | |||
| 58b864edd5 | |||
| 26bdea371e | |||
| 012413313c | |||
| 5bfa5c701e | |||
| 55af91a4ce | |||
| a613a29b02 | |||
| 91c6b0025e | |||
| 8597e78038 | |||
| 8417ddf0b9 | |||
| 33f1322def | |||
| 40354d0459 | |||
| 85dceb0bae | |||
| 2a53499610 | |||
| fd375ee284 | |||
| 4ad0ef4c65 | |||
| 80d3205a72 | |||
| 19faef887d | |||
| 35aff98d10 | |||
| c480ee5b91 | |||
| b1a1c51f4e | |||
| 4573a61518 | |||
| 83a2caea3e | |||
| 652795f2c0 | |||
| e1160a0260 | |||
| 9a336fa53b | |||
| ec504a2e49 | |||
| fd3057a462 | |||
| 13390250ec | |||
| 4f8be613b9 | |||
| 55af9ec0a9 | |||
| f7ba695625 | |||
| 644ddd43ca | |||
| 443a8bb734 | |||
| fb0662f67c | |||
| 2cb395216a | |||
| 271d116120 | |||
| 8148d43f6e | |||
| 8bea346263 | |||
| 5fce302336 | |||
| 7072902844 | |||
| c088dd61e5 | |||
| 2164f9ee67 | |||
| ac6fa87e2e | |||
| ecf71f0d4f | |||
| a83ef4eccf | |||
| eedf7e1eb7 | |||
| 6be099d2b1 | |||
| 5a63808741 | |||
| bdbca8a8dc | |||
| 6347b0ca95 | |||
| 2ff4e7857f | |||
| e4a3902d3e | |||
| a8ff8ea18d | |||
| 74c2ff8723 | |||
| a554984b8e | |||
| c478d7d9ef | |||
| 6f6b713fce | |||
| 1452a2821b | |||
| 89e675e254 | |||
| 87c0bbed3c | |||
| 8b039335d6 | |||
| 004fd24368 | |||
| 390a4c2494 | |||
| 02c9b7baca | |||
| c425952cd6 | |||
| b4f3a39af0 | |||
| 9baffb1b30 | |||
| 173b643412 | |||
| 6379956521 | |||
| 209a5a3762 | |||
| be5163af31 | |||
| 13fffa4e1a | |||
| 0f1840da6d | |||
| 19ad342a73 | |||
| 32557d44e5 | |||
| c25c9d8529 | |||
| 7e23713ace | |||
| 6b2fefeadc | |||
| e60ace66b5 | |||
| 23e68fe649 | |||
| bc02f47c06 | |||
| a336e887b9 | |||
| 1bf2124fa4 | |||
| 421b224d8e | |||
| 8b716f337d | |||
| ab4e4bd306 | |||
| b67d4a0e64 | |||
| db9dedace7 | |||
| 64540d14aa | |||
| da9bd09e76 | |||
| 7153d8faa8 | |||
| 6cf476ff8e | |||
| 5d25c36a6c | |||
| 0fb82352af | |||
| 24f3644ecf | |||
| 0698ba296c | |||
| 88aa91eb94 | |||
| 03cb78543a | |||
| b7cbf108d8 | |||
| b3a7774dc1 | |||
| d4d4f5180a | |||
| f8241cede6 | |||
| 252538272e | |||
| c15d1f90ae | |||
| 083ca38554 | |||
| bad3cdbdeb | |||
| c06dc9a142 | |||
| cb18db026f | |||
| dd3993008c | |||
| 6ee1773fbe | |||
| b33a461e9a | |||
| f715ee37cc | |||
| 34d9f0946a | |||
| 3ccb297ba8 | |||
| c6488bb50a | |||
| 9bd211d46e | |||
| 6eddc2685f | |||
| 00e028e6f7 | |||
| 727fdfbfbc | |||
| 591c322d0f | |||
| dcb0c63bd8 | |||
| f22cef97d4 | |||
| dcb4e382a3 | |||
| 168ff802c4 | |||
| f847d2c9e5 | |||
| f265e9f970 | |||
| 5778e53515 | |||
| 50d1b194df | |||
| 1ba5f95ecb | |||
| ceb04cc3eb | |||
| 8ef62b9f34 | |||
| ef341b1f6d | |||
| 02645ac4d6 | |||
| 1978077c79 | |||
| 53bb3c0fb3 | |||
| e9cc914449 | |||
| 2e7ad2f9f7 | |||
| d9756b8254 | |||
| 79c71ea490 | |||
| 2662c6d1b1 | |||
| 3b50d32ec7 | |||
| 0028f6ad64 | |||
| 24cf11575d | |||
| f1a95ffd0b | |||
| cdc6042fa8 | |||
| 3a8a0450c8 | |||
| 9bcaac6ac6 | |||
| fbfb310654 | |||
| 920e260e89 | |||
| ec2a04c7a1 | |||
| 1eaa389140 | |||
| 46f6580171 | |||
| afb4c7bebe | |||
| 020bf7db2f | |||
| 9cafe21d8e | |||
| fd0821bdc3 | |||
| 68ba94c136 | |||
| 7e78f04058 | |||
| 372ce82335 | |||
| e0a12b54af | |||
| d753714abe | |||
| ec61a75cf6 | |||
| 95b13123a3 | |||
| 4e39c08a4d | |||
| c7974591b5 | |||
| 6221333bfe | |||
| a0aa1032a5 | |||
| d33f1ca8f6 | |||
| bbb121383b | |||
| da935b7e41 | |||
| 6c0ebb5bd3 | |||
| 5e23fadefb | |||
| 2d11c132f8 | |||
| 145e2880b5 | |||
| e52545c107 | |||
| 6747653e90 | |||
| 0c516abc76 | |||
| e8dfb284a1 | |||
| 0b13883c69 | |||
| 71d3e8dbfa | |||
| 9ca6d10785 | |||
| d542db2aaa | |||
| a9fc2243aa | |||
| 3cfee0f384 | |||
| 405ede44c2 | |||
| c2f4e0fb2a | |||
| de1c6330eb | |||
| 9241701b0d | |||
| f9a7cdaeab | |||
| 0f84e1c417 | |||
| 900c51ed13 | |||
| fc38b1336a | |||
| 7ea4dc1486 | |||
| 7caa82e868 | |||
| 9e46255922 | |||
| 50a2eacd97 | |||
| 14c4a19d18 | |||
| 9e8f61b2a5 | |||
| 925c3585f1 | |||
| 83720d07d2 | |||
| 9cba20fd60 | |||
| 97b2bbc819 | |||
| 2450909c26 | |||
| a4cd12d932 | |||
| 787cd7c221 | |||
| f3199ec5e5 | |||
| 2f8cb55e47 | |||
| d59b7b4129 | |||
| 3cb780bdb3 | |||
| f03d865e77 | |||
| abd68c6c9e | |||
| 15977e011d | |||
| 00dd10c744 | |||
| 4c3fe8cfc8 | |||
| 19b06df164 | |||
| be863a2180 | |||
| af206b001b | |||
| 60356bd97c | |||
| fe14e21175 | |||
| 7b02afb3e5 | |||
| 0cad63a232 | |||
| 83268d31bb | |||
| b37bab0521 | |||
| 95e37a0bd3 | |||
| 2ca5480dc0 | |||
| e48b5207ef | |||
| 752a34011d | |||
| b52b7afabe | |||
| 52d923b724 | |||
| 760fb261fb | |||
| ad4ab6c5f5 | |||
| a14869cf21 | |||
| ab7912caf4 | |||
| 3059adf668 | |||
| b6d0e23428 | |||
| b6ad7a8c0c | |||
| 501469cc10 | |||
| b971d8b81b | |||
| 5250913905 | |||
| ab571eb7de | |||
| 5a4f971f95 | |||
| 3387a7bdac | |||
| b4e353d6e2 | |||
| e2674fd33a | |||
| 026befb6cd | |||
| 3a87459f91 | |||
| a6075cfc47 | |||
| e342acb0a1 | |||
| 5616f3acf9 | |||
| ee657857fe | |||
| 108d3eab9d | |||
| 09386178b2 | |||
| 5f6a09da00 | |||
| 60dd43c8f2 | |||
| 1b2849d818 | |||
| 133d75ebd0 | |||
| bd21ea902c | |||
| 95667ca9b8 | |||
| c377a83657 | |||
| c5e176f1a8 | |||
| 999d530688 | |||
| f8448145af | |||
| f58402365c | |||
| b04776dc3b | |||
| 45abd09ba7 | |||
| 422b339be1 | |||
| dac3c8c2e7 | |||
| 78c750fb7d | |||
| 564ef061bc | |||
| 06db0f250a | |||
| a90b7354b3 | |||
| 9485e61102 | |||
| 1dd5ebac07 | |||
| ffa6e099d7 | |||
| 36b9a84fb3 | |||
| 8473cc1b1c | |||
| 182879af95 | |||
| 847faeab26 | |||
| 54691d76c5 | |||
| a83be9eb82 | |||
| b884ed3e8d | |||
| d20c73fda5 | |||
| 5cdf8c7e8c | |||
| 1a1ef4d0d3 | |||
| f0be219f98 | |||
| 7960503398 | |||
| e280d2a49f | |||
| fd5a79a16e | |||
| 58b61ab336 | |||
| a1e7fefe94 | |||
| dc2b09a334 | |||
| 5943dd8c09 | |||
| f053eb62ad | |||
| 7b09e1ca97 | |||
| 9161068098 | |||
| 7a96e647eb | |||
| 13f4a8613e | |||
| f0d6f3f550 | |||
| 2f33ae6588 | |||
| 6facc2173e | |||
| e52971946e | |||
| 7c99a8a5f8 | |||
| 51326523cf | |||
| 04ea335f12 | |||
| 87423247c2 | |||
| 2216e4f60a | |||
| b0e951e472 | |||
| 39607fbcde | |||
| dc3eeacbd7 | |||
| 81cba1b12d | |||
| ae1870020f | |||
| 629a4b957a | |||
| cebc8f240d | |||
| d28b4286cf | |||
| 31f430459b | |||
| 93833af9a0 | |||
| 9047ebd4fa | |||
| 9def6847a8 | |||
| 5b3237df8d | |||
| 798da6c61a | |||
| 18524a4446 | |||
| 908bdafb24 | |||
| 9de3516c8c | |||
| 39312a913d | |||
| f5b902894a | |||
| 3f29850851 | |||
| 8df116f2f1 | |||
| 84a61c6d8e | |||
| e5ec2a6487 | |||
| e8d75db5ed | |||
| eabbdac588 | |||
| aa7553abe2 | |||
| ed4ed2a03d | |||
| d01ba1b3b6 | |||
| 15dbacb1b9 | |||
| 92bf3cd33d | |||
| 14e6f115ea | |||
| 317f80cdea | |||
| e52ab7e2c6 | |||
| 329968a425 | |||
| 734fd8ad5f | |||
| a2a31951dc | |||
| 2769e4860a | |||
| f981843672 | |||
| eca9a0e55e | |||
| 19dd192bb6 | |||
| 88e52c85d6 | |||
| f51d191751 | |||
| 9de109b373 | |||
| bf56672249 | |||
| 4e4efd2d38 | |||
| e3f70594f2 | |||
| 10bfb21321 | |||
| 8fc202a6a6 | |||
| 80362e0d9c | |||
| 0f2af3f506 | |||
| 1e525cbf93 | |||
| 10d6fe2651 | |||
| 527a00dafa | |||
| dfbc913013 | |||
| bcc95f67d6 | |||
| 5d64a2ff43 | |||
| 5286b50c19 | |||
| d7e9d00e57 | |||
| efc63dff81 | |||
| 82d21bf2d9 | |||
| 2bbe696df9 | |||
| 3a27176969 | |||
| da8e60bd7e | |||
| f819004deb | |||
| dd3c4ac4f4 | |||
| 329700f745 | |||
| c0f18b3e8e | |||
| 3eead2069c | |||
| 7f5f26d0d8 | |||
| 9aa21c205f | |||
| 8866793bdb | |||
| 4e748b7635 | |||
| c9523e962d | |||
| 16367b7020 | |||
| 8cb381cc8e | |||
| 489230cebf | |||
| 0ed4171bcc | |||
| 10dd6267de | |||
| 69fa434a0c | |||
| 4ae1eb23f0 | |||
| 8ac3906e1f | |||
| 9213d7ca5f | |||
| 35459eedbd | |||
| bf02cfcc15 | |||
| 9e221caa85 | |||
| ed9022b18b | |||
| d99d01e30b | |||
| 2a0c806289 | |||
| def73ee72f | |||
| 7844f70775 | |||
| b1b771c437 | |||
| 12dfccf5d1 | |||
| 0a0a62a9cc | |||
| e76d2fc3c5 | |||
| c17e7ef812 | |||
| 71e5dba0b9 | |||
| 833f8c6a25 | |||
| 2e9f6c9a6e | |||
| 31066ff480 | |||
| 8a7dda0f38 | |||
| b7936be96e | |||
| 9e7e94f7f2 | |||
| cb0fadcba4 | |||
| 39bbab746f | |||
| 3729d9a05a | |||
| 122bb0ed84 | |||
| 5e94fc9c72 | |||
| 9648589d49 | |||
| 1b9915ffa4 | |||
| 7258aa818e | |||
| 2ca1784a7c | |||
| 249de11ec0 | |||
| 0a8e395823 | |||
| 336892be0a | |||
| a128246c65 | |||
| 221bc2a92b | |||
| 67d80d84ba | |||
| f80951a121 | |||
| 33b5df0a10 | |||
| 7e9802c54e | |||
| 8d8d069b6f | |||
| 3a83c0e747 | |||
| 81e7c05463 | |||
| 421400f552 | |||
| 9dffcf6885 | |||
| 6578b8bfaa | |||
| 8bb239bc88 | |||
| 2d622996ad | |||
| 95edb5aebb | |||
| 6d67bc8e79 | |||
| 26e0409c4e | |||
| a0d3756a8b | |||
| 556f40dd6c | |||
| 501daede0c | |||
| c256702c23 | |||
| e29ef414bd | |||
| 66ae6f9f0e | |||
| d4cd92f359 | |||
| 801910d916 | |||
| 0763355062 | |||
| da93d97325 | |||
| 7f675a8663 | |||
| d1b3cb96bc | |||
| f91c87b25e | |||
| dbda0eb419 | |||
| a3212e0f65 | |||
| cb1cb2863c | |||
| e1b7c34c96 | |||
| 0a1ce10e2f | |||
| bd1747f5c4 | |||
| 1dec4c5a98 | |||
| de59bf47ef | |||
| 0994c9431f | |||
| a48a7f81b6 | |||
| cbc898b4c1 | |||
| 45e46d9bdc | |||
| 678268f2a3 | |||
| 6ef0069cd6 | |||
| e49563fc7c | |||
| c107eeff85 | |||
| dc4ae019a3 | |||
| 5d8ffe2aa9 | |||
| 0e9bdce4b0 | |||
| c1a402c85e | |||
| 6cb5cbfc06 | |||
| bb56b6acf2 | |||
| f81d22076c | |||
| 93c0521605 | |||
| b96c711aa6 | |||
| 44dd384904 | |||
| 0eb9c9a36b | |||
| 2b5051710d | |||
| ecd06aa530 | |||
| 090faaccf9 | |||
| 2cacfa1d27 | |||
| a72ce0017e | |||
| b6329b3b44 | |||
| d640ca84ee | |||
| 1f9677a199 | |||
| 574297054c | |||
| 01f997f917 | |||
| adf8a61625 | |||
| 1726669f67 | |||
| 8db6d406a1 | |||
| 3b98eac4a9 | |||
| 7ca84567fe | |||
| d4bb75cd39 | |||
| 547b2d69d0 | |||
| ffe6877fbe | |||
| 58bd3cf60b | |||
| 39c3a03d14 | |||
| a109bdb0f6 | |||
| 542ef1acbb | |||
| 822f27f34c | |||
| 9b9a35a155 | |||
| 1f805a247b | |||
| bcbc3fd082 | |||
| efdefc4eb8 | |||
| 04727556c7 | |||
| db97b23bcb | |||
| a1b3b9e1b9 | |||
| 8049136379 | |||
| 0a42cedf77 | |||
| c2ca896dea | |||
| 1e8c2c0141 | |||
| d386650f49 | |||
| 3623ebae05 | |||
| c66d213748 | |||
| c6fea92257 | |||
| 29f4d5d540 | |||
| d5caf06ec5 | |||
| 56911cad3c | |||
| d8858458a4 | |||
| 6e48ddf3f9 | |||
| 4a38d0c838 | |||
| 10af800c43 | |||
| d12b6962a5 | |||
| 6e886d8dac | |||
| af551ba491 | |||
| 8e43418775 | |||
| bd65916b5a | |||
| 5c0e2b59e1 | |||
| 4ca497ffef | |||
| fd4acdc832 | |||
| a8f2e08ef8 | |||
| 0361248fc3 | |||
| 2dc8cb9e84 | |||
| aea09603a4 | |||
| 229bcca996 | |||
| 68b4f42a52 | |||
| 6b7776cb1c | |||
| bc02d95f33 | |||
| 09c71fc5f9 | |||
| b17245d9a1 | |||
| cafaebff3f | |||
| 4b8d5ac3ba | |||
| 32aeb1fa6c | |||
| b7d11d3e0f | |||
| 0391987147 | |||
| 9da1988375 | |||
| 5ff5e01aa2 | |||
| 7ad4b6db67 | |||
| 222c780d64 | |||
| e8888bae53 | |||
| f9fb628aed | |||
| 28c2e83cc4 | |||
| fa38dbf9e6 | |||
| 6f4ea900c1 | |||
| 347609d958 | |||
| d927dd3cd0 | |||
| a5dc160024 | |||
| 8f7886d9c7 | |||
| 5d42ac844f | |||
| fb58482c4b | |||
| 1ea14aa2ea | |||
| dad74daf0e | |||
| a6403e09b3 | |||
| 8caec780e4 | |||
| 7be77080ea | |||
| 4f59d6dbe7 | |||
| 42214ebdf3 | |||
| e535637621 | |||
| 07e707ae5b | |||
| 6c159756b4 | |||
| 996c084d6f | |||
| 8035168d5f | |||
| 3c42268604 | |||
| 496826f42c | |||
| b0f6a9e50c | |||
| cea0a16bd0 | |||
| 786b650f9c | |||
| c780691c43 | |||
| e365d9a721 | |||
| ef05be9430 | |||
| 5a7358a227 | |||
| 5a90859cee | |||
| be37004c25 | |||
| 640961201d | |||
| c25442901b | |||
| 7887c1bd60 | |||
| 54578a5287 | |||
| 0920c1e160 | |||
| 5428c5cab2 | |||
| f12d8627d0 | |||
| d540adbc7f | |||
| 0e2a15ddab | |||
| ebdbc91f63 | |||
| 32ada3f932 | |||
| 3f9aef57db | |||
| c3b35366e4 | |||
| f92034921e | |||
| 869014ed82 | |||
| f4c68a3a66 | |||
| 20e9da6dff | |||
| 8b05f023fa | |||
| 220e0c01e4 | |||
| ee00bb2801 | |||
| 7e1595dacb | |||
| 4757156f26 | |||
| 40a46f5019 | |||
| 927b5f7bf8 | |||
| b4519cf3d7 | |||
| 94a6305880 | |||
| a51479b614 | |||
| f2db4e4598 | |||
| 9c2d59d99b | |||
| 1dba0bfc43 | |||
| 11d7b49130 | |||
| 7ba2e3214c | |||
| 1a67489368 | |||
| ec294b1373 | |||
| 63cb121130 | |||
| 3710fb67c4 | |||
| fdeb6f06bf | |||
| 866c835a6f | |||
| 2519f9d3ac | |||
| 2e10afdd9c | |||
| 334763c21c | |||
| aebab04b21 | |||
| 110a3f6bfe | |||
| 8169c34a64 | |||
| d18f9ecfa1 | |||
| f49d4286cf | |||
| 5e657e5985 | |||
| 5924674c3f | |||
| 74ab4f51c8 | |||
| df4597b869 | |||
| e2c40c7880 | |||
| b91f683800 | |||
| 8cc0724e76 | |||
| 71ffba5f3b | |||
| 89a38f8eda | |||
| 9e7c77f84b | |||
| 8a45b22bad | |||
| 4956d01e34 | |||
| e75cb1709d | |||
| cffca2c840 | |||
| de3f9b9cc2 | |||
| 8af557a25c | |||
| 9215970b3a | |||
| e21298ea71 | |||
| ec0b431e4f | |||
| d2db300fe8 | |||
| 184d63094b | |||
| 5415c36407 | |||
| 2a2322c31a | |||
| 14c74561c7 | |||
| bd1ec26a8d | |||
| bf3d8161a3 | |||
| 475a9a9c5f | |||
| ef17d28a57 | |||
| 7d2dea9256 | |||
| d7c198cc82 | |||
| 2f74d6bdec | |||
| 51dbf20dc2 | |||
| 564eef1688 | |||
| 98f7a8a80c | |||
| f26f9ea6e0 | |||
| 034d2b239d | |||
| 559bdcbc48 | |||
| 3ac7306c90 | |||
| 81c82839cc | |||
| 1074b18e1f | |||
| 9da678af45 | |||
| ba08bed3cd | |||
| 126795a3e3 | |||
| 26b0c6f9e7 | |||
| 65d5569ef0 | |||
| d4271a0c72 | |||
| 101d2dd6a3 | |||
| 4008883f9c | |||
| 8944ebc093 | |||
| 1b9ced7332 | |||
| a9415f39d3 | |||
| 95137d435a | |||
| e27e2db8e1 | |||
| e39903554a | |||
| 881d79e5b5 | |||
| 8e450fccab | |||
| 56c6c504d1 | |||
| cb35cfd306 | |||
| 24363fd276 | |||
| 91f4e1591d | |||
| bdf6ecf552 | |||
| 349259eecb | |||
| ff2b229663 | |||
| f5cfafb94e | |||
| 17f2ac31c5 | |||
| 7193b84876 | |||
| 7f01bc731d | |||
| 8e74fc64a5 | |||
| 34cb24c62e | |||
| 2fb644e0ba | |||
| 3ba3e9d859 | |||
| 77c3cec8ce | |||
| 29027a21b6 | |||
| 5980dda3d1 | |||
| 63b56b04fb | |||
| 751306f3e3 | |||
| 5cc6b4ae9b | |||
| c2a79026e2 | |||
| 1f3cea4384 | |||
| 85d4ff89b9 | |||
| fcc4d96944 | |||
| ae46850e2b | |||
| 7297e91c71 | |||
| b577128320 | |||
| 5e11b7edd2 | |||
| 473a2dfbee | |||
| c61d4c9079 | |||
| 37b6a3e919 | |||
| 3b29c325c6 | |||
| bb93b10e67 | |||
| 2ccaea07b5 | |||
| 1853eaeeae | |||
| 7f156ad566 | |||
| d4ea47eadd | |||
| afdf5d780a | |||
| 42a0071b2b | |||
| 6d63a1b90f | |||
| deeadee885 | |||
| d7497ed79f | |||
| cea686b7fa | |||
| f9259bf5a5 | |||
| 13351e550a | |||
| 7fa25a3e46 | |||
| 3c38cd42e3 | |||
| ef0b09e1f9 | |||
| ee739f4e46 | |||
| b02069f944 | |||
| 01ff7c4a16 | |||
| 432afdef0f | |||
| e338c318c3 | |||
| 5eac4b95f9 | |||
| 0a1624e24a | |||
| af1e9ebcbf | |||
| 01dffdfa46 | |||
| 06d9bd81ab | |||
| b9eb1efd87 | |||
| 93737c2f28 | |||
| 1698007836 | |||
| 5b32e5fa79 | |||
| c00350b760 | |||
| 9d78a92976 | |||
| f5cc654a06 | |||
| d8d3156f43 | |||
| 5a0891a1f7 | |||
| 27bdd21a4a | |||
| fda8377a02 | |||
| 468f1eddab | |||
| 37b13dd90c | |||
| 42d8a95c2c | |||
| 691503dc3e | |||
| 9a4bea10f8 | |||
| 6b9885e08a | |||
| b9c9f9baa8 | |||
| df1b02adb9 | |||
| 61fe014771 | |||
| 67aacc7e9b | |||
| b72fc723d9 | |||
| a7041c9294 | |||
| 63e1786a7d | |||
| 47e5ac9734 | |||
| 109097b819 | |||
| d415c974b2 | |||
| d570031097 | |||
| 85ff3dd136 | |||
| c843ebe36a | |||
| befbb8b691 | |||
| 1a27e5fc9b | |||
| 65bbf390ce | |||
| b413848524 | |||
| 40aeea3f0f | |||
| 8ad50de220 | |||
| ca86485927 | |||
| 5238ce7df6 | |||
| a9ce94de9b | |||
| ec440be9a3 | |||
| f5adc61da5 | |||
| 5b66f7abe6 | |||
| 3e47992755 | |||
| cecbf38775 | |||
| 0e0d4e2959 | |||
| 853ab1955f | |||
| 061c405172 | |||
| a3d24664ca | |||
| 6085877aa7 | |||
| b2214aba9f | |||
| 9c857d1314 | |||
| 55a169cd75 | |||
| 38888442fb | |||
| 7c42c025dd | |||
| 922aa6a4af | |||
| a1ad90bab4 | |||
| c41ca43145 | |||
| b4424fafb6 | |||
| e2b7389455 | |||
| 67669c0299 | |||
| fa4245546d | |||
| 2076fd5023 | |||
| 4b9370b0a3 | |||
| befe488d14 | |||
| 32776a4ad1 | |||
| 228cf4ae7b | |||
| d7989a1b5b | |||
| d1da8aff73 | |||
| 6ac8721c64 | |||
| 6cde7c6ded | |||
| c47c75f103 | |||
| 04e9199934 | |||
| 7e9cbe6ef8 | |||
| 2fafedf265 | |||
| e92dac1a6f | |||
| af47365272 | |||
| 89d36ffbc8 | |||
| df65c4bc92 | |||
| 2903ca4bad | |||
| 441c5743a8 | |||
| 2dd9708699 | |||
| f54e8dd3e8 | |||
| e73d9dc6cf | |||
| a3b869b80a | |||
| 2b54f0b617 | |||
| 41d5f93171 | |||
| bc2d0937f5 | |||
| 39c117a695 | |||
| 6d6edb3d43 | |||
| 6fa31c5624 | |||
| 3f7577144e | |||
| cb775e1586 | |||
| 6e6e7d1dc4 | |||
| 2eb684000f | |||
| b9565cd2f2 | |||
| a10f48d470 | |||
| 4c2f110e19 | |||
| 0c091e9434 | |||
| 6c2ef637e5 | |||
| 0912de822f | |||
| 5a4babdb9d | |||
| daf6cba195 | |||
| 601d96e82e | |||
| 885c7eba24 | |||
| b704ec74ec | |||
| cd0d9af424 | |||
| 13bf48f3b3 | |||
| 7f1e31193b | |||
| f09c6ef567 | |||
| 71c471fb33 | |||
| 366b4bd612 | |||
| 582496be70 | |||
| 95370c6420 | |||
| 595afafd28 | |||
| 5bbc40438f | |||
| b3208f2332 | |||
| c08628d42d | |||
| 61cfb5ac3e | |||
| 9806ec28e9 | |||
| 9f19b41356 | |||
| a92b7e0d78 | |||
| 372ac909df | |||
| 87807ae81a | |||
| 65881a9ae2 | |||
| cd52331cd0 | |||
| 0b5fb5903e | |||
| 09e4eced35 | |||
| ad25d019b1 | |||
| d96652dc84 | |||
| 3bdae5807d | |||
| 6b5d63c25c | |||
| f9a78be185 | |||
| 1678fc2013 | |||
| 3f2382befa | |||
| 1ac3413039 | |||
| 1affa56133 | |||
| e1ebbf88ed | |||
| e6f9504ded | |||
| 803a89151f | |||
| 424d7afba7 | |||
| cb5e155911 | |||
| f768abc2c2 | |||
| 39919329f5 | |||
| 9532325a24 | |||
| 7641d85d2f | |||
| d53e7613b6 | |||
| 997aae03c4 | |||
| 3653d0148d | |||
| 0349b143d8 | |||
| d522dbfef9 | |||
| 8ec1f2245f | |||
| 614a006900 | |||
| 501d93d6ea | |||
| f80bfb6d74 | |||
| cc4ac836b6 | |||
| f55d5f0b0f | |||
| ec09c447e5 | |||
| 4a58fd967c | |||
| 1f79ca142f | |||
| 19f899f1bb | |||
| 594ca76c00 | |||
| fb21a87a4b | |||
| aa617df36c | |||
| 4efcdfe090 | |||
| 56010d9fb5 | |||
| 2ea5301896 | |||
| 562c30d58d | |||
| 4f8c49d2fb | |||
| 5448462f5d | |||
| 2b3a724524 | |||
| 8829e89f2e | |||
| c2a9dd3273 | |||
| b7aa36e8d1 | |||
| 6883909f2a | |||
| 5e1b5a4dd9 | |||
| 90802ddafa | |||
| 33bffb336f | |||
| 5d586cfc69 | |||
| bae7de47a0 | |||
| 4ca0156f84 | |||
| 04362c8783 | |||
| 275b4f507d | |||
| 092d928b99 | |||
| 024ef23ec6 | |||
| 3b1984cdd8 | |||
| 35dcc7287d | |||
| 9a577aec61 | |||
| ffb4fc56f1 | |||
| bda05b6876 | |||
| a35fe3ea3b | |||
| f09b1ac4d4 | |||
| 9853fa54f4 | |||
| d2ef4a9b10 | |||
| eba3b54459 | |||
| c53dbb87fb | |||
| 6f7d41f5c6 | |||
| ab5e766d9c | |||
| dbe7039123 | |||
| 98ad590a7f | |||
| 856be31a8d | |||
| 31c357bf76 | |||
| 3254f7ba4c | |||
| 054f39cc3d | |||
| fb6da590fb | |||
| efd5c6ec1a | |||
| ac5d1b9979 | |||
| 25318ec24b | |||
| 97b643aad7 | |||
| 0b186e7622 | |||
| 5e427e9f89 | |||
| 6a210e34b1 | |||
| b69b78de4b | |||
| 110aeceaec | |||
| ae7a3912e7 | |||
| 38e6793da8 | |||
| 82854f41a6 | |||
| 17aa93cf04 | |||
| 3dbc023245 | |||
| c2eeeb40f2 | |||
| ea48a5db3a | |||
| 436eb0030d | |||
| 3f09c1c459 | |||
| 7608e3716f | |||
| dfe8206c8e | |||
| b26207df50 | |||
| b1b3f25278 | |||
| 06ea46eea1 | |||
| 6ddeb0ccb3 | |||
| 0772575e48 |
+5
-5
@@ -7,14 +7,14 @@
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Configuration Program
|
||||
for Unreal3.2.10-rc1
|
||||
for UnrealIRCd 4.2.4.1
|
||||
|
||||
This program will help you to compile your IRC server, and ask you
|
||||
questions regarding the compile-time settings of it during the process.
|
||||
regarding the setup of it, during the process.
|
||||
|
||||
If you have problems regarding the setup & compile, read Unreal.nfo to get
|
||||
more information on where to get help. Please, before running this setup,
|
||||
read the documentation in the "doc" folder. Docs are also avail online @
|
||||
http://www.unrealircd.com/unreal32docs.html
|
||||
A short installation guide is available online at:
|
||||
https://www.unrealircd.org/docs/Installing_from_source
|
||||
|
||||
Full documentation is available at:
|
||||
https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
Configuration rant, by Stskeeps
|
||||
--------------------------------
|
||||
|
||||
Right.. so you think you are done now, you can boot your IRCd and be happy,
|
||||
and it just works. No, you still got a lot to do. You need to read all of
|
||||
the documentation through. Would you even have made it this far without
|
||||
makeconf?.
|
||||
|
||||
Well, today, people think they can be 3 months on IRC, and be ready to run
|
||||
an IRC daemon. I hate to say this, but I don't think so.
|
||||
|
||||
If you cannot read an IRC help file, or understand what stuff like "desynch",
|
||||
"masskill", "k-line", or what "mode # +l 5" means - or you got no experince
|
||||
in the UNIX field at all, like, you MUST know how to invoke a editor in a
|
||||
shell, or to unzip a file. If you don't know/can do these things, I suggest
|
||||
you stop trying to set this up, and go read on some UNIX tutorials, and IRC
|
||||
tutorials. It takes a LOT of work to run a IRC server good.
|
||||
|
||||
I mean. I sit on the #unreal-support support channel each day, and I see
|
||||
countless questions about stuff that IS IN the documentation. Numerous
|
||||
people don't even bother to look at the config files (CONFIG_FILE_STOP
|
||||
problem).
|
||||
|
||||
You need to look at the documentation now. You need to see how to "include"
|
||||
other configuration files. You need to know how to work out how to use
|
||||
doc/example.settings. I can only tell you, if you ask for support, and it
|
||||
is for errors that you could solve by reading the first lines of a document,
|
||||
then you'll be firmly ignored. I'm sorry, we cannot help your laziness.
|
||||
|
||||
Anyhow, good luck with setting this up. Hope you understand what I am saying
|
||||
here. You will learn a lot more reading, than just ignoring what we are
|
||||
saying.
|
||||
|
||||
--Stskeeps
|
||||
@@ -1,86 +0,0 @@
|
||||
Unreal3.2.10-rc1 Release Notes
|
||||
===============================
|
||||
|
||||
==[ GENERAL INFORMATION ]==
|
||||
- If you are upgrading on *NIX, then make sure you run 'make clean' and
|
||||
'./Config' first, before running 'make'.
|
||||
- The official UnrealIRCd documentation is doc/unreal32docs.html
|
||||
online version at: http://www.vulnscan.org/UnrealIRCd/unreal32docs.html
|
||||
FAQ: http://www.vulnscan.org/UnrealIRCd/faq/
|
||||
Read them before asking for help.
|
||||
- Report bugs at http://bugs.unrealircd.org/
|
||||
- The purpose of the sections below (NEW, CHANGED, MINOR, etc) is to be a
|
||||
SUMMARY of the changes in this release. There have been 79 changes in
|
||||
total, for the full list of changes see the Changelog.
|
||||
|
||||
==[ NEW ]==
|
||||
- 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 ]==
|
||||
- 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 ]==
|
||||
- None?
|
||||
|
||||
==[ MINOR BUGS FIXED ]==
|
||||
- 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 / 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
|
||||
@@ -1,15 +0,0 @@
|
||||
|-------------------------------------------------------------------------|
|
||||
| Congratulations on your new SSL self-signed certificate for your IRCd. |
|
||||
| However, wouldn't it be better that you get your certifcate signed by |
|
||||
| some kind of Certification Authority (CA), so your users can check that |
|
||||
| they are really connected to the real server, so they feel secure? |
|
||||
| |
|
||||
| There is an initiative at CACert.org - They offer SSL Certificates |
|
||||
| for use with your IRCd for free, so your users can be sure that they |
|
||||
| can trust you and your server. |
|
||||
| |
|
||||
| To get a free signed certificate please visit http://www.CACert.org |
|
||||
| _________________________|
|
||||
| | Press enter to continue |
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
|
||||
_ _ _ ___________ _____ _
|
||||
| | | | | |_ _| ___ \/ __ \ | |
|
||||
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
|
||||
| | | | '_ \| '__/ _ \/ _` | | | | | / | | / _` |
|
||||
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
|
||||
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|
|
||||
|
||||
Update Script v2.0
|
||||
|
||||
What download program do you want to use?
|
||||
-----------------------------------------
|
||||
|
||||
Type "wget" for wget
|
||||
Type "lynx" for lynx
|
||||
|
||||
>
|
||||
@@ -1,77 +0,0 @@
|
||||
#
|
||||
# UnrealIRCd Bug Reporting Script
|
||||
# Copyright (c) 2001, The UnrealIRCd Team
|
||||
# All rights reserved
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
# provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
# and the following disclaimer.
|
||||
# * 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.
|
||||
# * Neither the name of the The UnrealIRCd Team nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written permission.
|
||||
# * The source code may not be redistributed for a fee or in closed source
|
||||
# programs, without expressed oral consent by the UnrealIRCd Team, however
|
||||
# for operating systems where binary distribution is required, if URL
|
||||
# is passed with the package to get the full source
|
||||
# * No warranty is given unless stated so by the The UnrealIRCd Team
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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.
|
||||
|
||||
# First we define some nice settings and some nice functions
|
||||
set print pretty on
|
||||
|
||||
# dumplist <linked list> <structure format>
|
||||
define dumplist
|
||||
echo Dumping linked list $arg0 in format $arg1\n
|
||||
set $p = $arg0
|
||||
while $p
|
||||
print *($arg1 *) $p
|
||||
set $p = $p->next
|
||||
end
|
||||
end
|
||||
|
||||
# dumparray <name> <size>
|
||||
define dumparray
|
||||
echo Dumping array $arg0 size $arg1\n
|
||||
set $p = 0
|
||||
while $p < $arg1
|
||||
if $arg0[$p]
|
||||
print *$arg0[$p]
|
||||
end
|
||||
set $p = $p + 1
|
||||
end
|
||||
end
|
||||
|
||||
echo Full backtrace:\n
|
||||
echo ---------------\n
|
||||
echo \n
|
||||
bt full
|
||||
echo \n
|
||||
echo Backup parse() buffer:\n
|
||||
echo ----------------------\n
|
||||
echo \n
|
||||
print backupbuf
|
||||
echo \n
|
||||
echo me output:\n
|
||||
echo ----------------------\n
|
||||
print me
|
||||
echo \n
|
||||
echo IRCstats:\n
|
||||
echo ----------------------\n
|
||||
print IRCstats
|
||||
echo \n
|
||||
echo Modules:\n
|
||||
echo ----------------------\n
|
||||
dumparray Modules 50
|
||||
quit
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
# Ignore configure step
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
config.log
|
||||
conftest.*
|
||||
config.settings
|
||||
extras/pcre2*
|
||||
extras/c-ares*
|
||||
extras/regexp*
|
||||
config.status
|
||||
extras/tre*
|
||||
extras/ircdcron/ircd.cron
|
||||
extras/ircdcron/ircdchk
|
||||
src/modules/snomasks/Makefile
|
||||
src/modules/chanmodes/Makefile
|
||||
src/modules/extbans/Makefile
|
||||
src/modules/usermodes/Makefile
|
||||
src/modules/Makefile
|
||||
src/modules/third/Makefile
|
||||
/Makefile
|
||||
/src/Makefile
|
||||
/unrealircd
|
||||
include/setup.h
|
||||
|
||||
# Ignore tags file
|
||||
tags
|
||||
|
||||
# Ignore editor files
|
||||
*\#*
|
||||
*~
|
||||
|
||||
# Ignore SSL Stuff
|
||||
server.cert.pem
|
||||
server.key.pem
|
||||
server.req.pem
|
||||
ssl.rnd
|
||||
|
||||
# Ignores for platform stuff
|
||||
.DS_Store
|
||||
|
||||
# Ignores for build artifacts
|
||||
*.so
|
||||
*.o
|
||||
*.dSYM
|
||||
*.dylib
|
||||
src/ircd
|
||||
src/version.c
|
||||
src/include
|
||||
|
||||
# Ignores for mac stuff
|
||||
## Various settings
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
|
||||
## Other
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
*.xcuserstate
|
||||
*.xcscmblueprint
|
||||
|
||||
## Obj-C/Swift specific
|
||||
*.hmap
|
||||
*.ipa
|
||||
|
||||
src/macosx/build/
|
||||
DerivedData
|
||||
src/macosx/pods/
|
||||
@@ -0,0 +1,6 @@
|
||||
[submodule "extras/tests/ircfly"]
|
||||
path = extras/tests/ircfly
|
||||
url = https://github.com/unrealircd/ircfly.git
|
||||
[submodule "extras/tests/functional-tests"]
|
||||
path = extras/tests/functional-tests
|
||||
url = https://github.com/unrealircd/unrealircd-tests-old.git
|
||||
@@ -1,16 +0,0 @@
|
||||
[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
|
||||
@@ -1,22 +0,0 @@
|
||||
syntax: regexp
|
||||
|
||||
# particular targets
|
||||
^ircdcron/ircdchk$
|
||||
^ircdcron/ircd\.cron$
|
||||
^src/ircd$
|
||||
^src/include$
|
||||
^src/version\.c$
|
||||
^unreal$
|
||||
|
||||
# General
|
||||
\.(o|so|orig|rej)$
|
||||
~$
|
||||
|
||||
# autotools
|
||||
^config\.(status|log)$
|
||||
|
||||
# not quite autotools
|
||||
^config\.settings$
|
||||
^include/setup\.h$
|
||||
^Makefile$
|
||||
^src/modules/Makefile$
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
language: c
|
||||
os: linux
|
||||
dist: xenial
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
script: extras/build-tests/nix/build $BUILDCONFIG
|
||||
env:
|
||||
- BUILDCONFIG=""
|
||||
- BUILDCONFIG="system-cares"
|
||||
- BUILDCONFIG="system-cares system-curl"
|
||||
- BUILDCONFIG="local-curl"
|
||||
matrix:
|
||||
include:
|
||||
- os: osx
|
||||
env: BUILDCONFIG=""
|
||||
- os: osx
|
||||
env: BUILDCONFIG="system-cares"
|
||||
- os: osx
|
||||
env: BUILDCONFIG="system-cares system-curl"
|
||||
- os: osx
|
||||
env: BUILDCONFIG="local-curl"
|
||||
- env: BUILDCONFIG="libressl-27"
|
||||
- env: BUILDCONFIG="libressl-28"
|
||||
- env: BUILDCONFIG="libressl-29"
|
||||
- env: BUILDCONFIG="openssl-102"
|
||||
- env: BUILDCONFIG="openssl-110"
|
||||
- env: BUILDCONFIG="openssl-111"
|
||||
@@ -1,6 +0,0 @@
|
||||
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.
|
||||
|
||||
Simply run the following command to generate this 'Changes' file:
|
||||
./createchangelog
|
||||
-2532
File diff suppressed because it is too large
Load Diff
-4844
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Config script for UnrealIRCd
|
||||
# (C) 2001 The UnrealIRCd Team
|
||||
# (C) 2001-2019 The UnrealIRCd Team
|
||||
#
|
||||
# This configure script is free software; the UnrealIRCd Team gives
|
||||
# unlimited permission to copy, distribute and modify as long as the
|
||||
@@ -21,6 +21,20 @@
|
||||
|
||||
RUN_CONFIGURE () {
|
||||
ARG=" "
|
||||
|
||||
if [ -z "$BINDIR" -o -z "$DATADIR" -o -z "$CONFDIR" -o -z "$MODULESDIR" -o -z "$LOGDIR" -o -z "$CACHEDIR" -o -z "$DOCDIR" -o -z "$TMPDIR" -o -z "$LIBDIR" ]; then
|
||||
echo "Sorry './Config -quick' cannot be used because your 'config.settings'"
|
||||
echo "file either does not exist or is from an old UnrealIRCd version"
|
||||
echo "(older than version 4.0.8)."
|
||||
echo ""
|
||||
echo "Please run './Config' without -quick and answer all questions."
|
||||
echo ""
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
mkdir -p $TMPDIR
|
||||
|
||||
# Do this even if we're not in advanced mode
|
||||
if [ "$SHOWLISTMODES" = "1" ] ; then
|
||||
ARG="$ARG--with-showlistmodes "
|
||||
@@ -45,48 +59,52 @@ if [ "$DISABLEEXTBANSTACKING" = "1" ]; then
|
||||
ARG="$ARG--with-disable-extendedban-stacking ";
|
||||
fi
|
||||
fi
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if test x"$SSLDIR" = "x" ; then
|
||||
ARG="$ARG--enable-ssl "
|
||||
else
|
||||
ARG="$ARG--enable-ssl=$SSLDIR "
|
||||
fi
|
||||
fi
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
if test x"$ZIPLINKSDIR" = "x" ; then
|
||||
ARG="$ARG--enable-ziplinks "
|
||||
else
|
||||
ARG="$ARG--enable-ziplinks=$ZIPLINKSDIR "
|
||||
fi
|
||||
fi
|
||||
if [ "$REMOTEINC" = "1" ] ; then
|
||||
ARG="$ARG--enable-libcurl=$CURLDIR "
|
||||
fi
|
||||
if [ "$INET6" = "1" ] ; then
|
||||
ARG="$ARG--enable-inet6 "
|
||||
fi
|
||||
if [ "$PREFIXAQ" != "1" ]; then
|
||||
ARG="$ARG--disable-prefixaq "
|
||||
fi
|
||||
ARG="$ARG--with-listen=$LISTEN_SIZE "
|
||||
ARG="$ARG--with-dpath=$DPATH "
|
||||
ARG="$ARG--with-spath=$SPATH "
|
||||
if [ "$MAXCONNECTIONS_REQUEST" != "auto" ]; then
|
||||
ARG="$ARG--with-maxconnections=$MAXCONNECTIONS_REQUEST "
|
||||
fi
|
||||
|
||||
ARG="$ARG--with-bindir=$BINDIR "
|
||||
ARG="$ARG--with-datadir=$DATADIR "
|
||||
ARG="$ARG--with-pidfile=$DATADIR/unrealircd.pid "
|
||||
ARG="$ARG--with-confdir=$CONFDIR "
|
||||
ARG="$ARG--with-modulesdir=$MODULESDIR "
|
||||
ARG="$ARG--with-logdir=$LOGDIR "
|
||||
ARG="$ARG--with-cachedir=$CACHEDIR "
|
||||
ARG="$ARG--with-docdir=$DOCDIR "
|
||||
ARG="$ARG--with-tmpdir=$TMPDIR "
|
||||
ARG="$ARG--with-privatelibdir=$LIBDIR "
|
||||
ARG="$ARG--with-scriptdir=$BASEPATH "
|
||||
ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH "
|
||||
ARG="$ARG--with-sendq=$MAXSENDQLENGTH "
|
||||
ARG="$ARG--with-bufferpool=$BUFFERPOOL "
|
||||
ARG="$ARG--with-permissions=$DEFPERM "
|
||||
ARG="$ARG--with-fd-setsize=$MAXCONNECTIONS "
|
||||
ARG="$ARG--enable-dynamic-linking "
|
||||
ARG="$ARG $EXTRAPARA "
|
||||
CONF="./configure $ARG"
|
||||
# remove possibly old instances of curl in ~/unrealircd/lib/
|
||||
rm -f $LIBDIR/*curl* 1>/dev/null 2>&1
|
||||
# Ensure we install curl even if someone does ./Config -quick...
|
||||
if [ "x$CURLDIR" = "x$UNREALCWD/extras/curl" ]; then
|
||||
INSTALLCURL=1
|
||||
fi
|
||||
if [ "x$INSTALLCURL" = "x1" ]; then
|
||||
./curlinstall || exit 1
|
||||
extras/curlinstall "$LIBDIR" || exit 1
|
||||
fi
|
||||
echo $CONF
|
||||
$CONF || exit 1
|
||||
cd "$UNREALCWD"
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
if [ ! -f server.req.pem ]; then
|
||||
if [ "$QUICK" != "1" ] ; then
|
||||
if [ ! -f $CONFDIR/ssl/server.cert.pem ]; then
|
||||
export OPENSSLPATH
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
@@ -119,16 +137,21 @@ while [ -z "$TEST" ] ; do
|
||||
done
|
||||
if [ "$GENCERTIFICATE" = 1 ]; then
|
||||
make pem
|
||||
cat .SICI
|
||||
read cc
|
||||
echo "Certificate created successfully."
|
||||
sleep 1
|
||||
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."
|
||||
echo "Ok, not generating SSL certificate. Make sure that the certificate and key"
|
||||
echo "are installed in conf/ssl/server.crt.pem and conf/ssl/server.key.pem prior to starting the IRCd."
|
||||
fi
|
||||
else
|
||||
echo "SSL certificate already existing, no need to regenerate"
|
||||
echo "SSL certificate exists in $CONFDIR/ssl/server.cert.pem, no need to regenerate."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Silently force a 'make clean' as otherwise part (or whole) of the
|
||||
# compiled source could be using different settings than the user
|
||||
# just requested when re-running ./Config.
|
||||
make clean 1>/dev/null 2>&1
|
||||
}
|
||||
|
||||
RUN_ADVANCED () {
|
||||
@@ -199,7 +222,7 @@ while [ -z "$TEST" ] ; do
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Should Unreal notify a user when they are no longer shunned?"
|
||||
echo "Should UnrealIRCd notify a user when they are no longer shunned?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -341,19 +364,12 @@ done
|
||||
c=""
|
||||
n=""
|
||||
UNREALCWD="`pwd`"
|
||||
DPATH="`pwd`"
|
||||
SPATH="`pwd`/src/ircd"
|
||||
BASEPATH="$HOME/unrealircd"
|
||||
DEFPERM="0600"
|
||||
CRYPTOIRCD=""
|
||||
SSLDIR=""
|
||||
ZIPLINKS=""
|
||||
ZIPLINKSDIR=""
|
||||
LISTEN_SIZE="5"
|
||||
NICKNAMEHISTORYLENGTH="2000"
|
||||
MAXSENDQLENGTH="3000000"
|
||||
BUFFERPOOL="18"
|
||||
MAXCONNECTIONS="1024"
|
||||
INET6=""
|
||||
MAXCONNECTIONS_REQUEST="auto"
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
PREFIXAQ="1"
|
||||
@@ -372,10 +388,28 @@ else
|
||||
n="-n"
|
||||
fi
|
||||
|
||||
date|grep 2019 1>/dev/null 2>&1
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "*** WARNING ***"
|
||||
echo "UnrealIRCd 4.x will no longer be supported after December 31, 2020."
|
||||
echo "You should upgrade to UnrealIRCd 5 before that date."
|
||||
echo "See https://www.unrealircd.org/docs/UnrealIRCd_4_EOL"
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
sleep 1
|
||||
echo $n . $c
|
||||
echo ""
|
||||
sleep 1
|
||||
echo "Press ENTER to continue"
|
||||
read xyz
|
||||
fi
|
||||
|
||||
#parse arguments
|
||||
NOCACHE=""
|
||||
IMPORTEDSETTINGS=""
|
||||
NOINTRO=""
|
||||
QUICK=""
|
||||
CLEAN=""
|
||||
ADVANCED=""
|
||||
while [ $# -ge 1 ] ; do
|
||||
@@ -394,6 +428,7 @@ while [ $# -ge 1 ] ; do
|
||||
elif [ $1 = "-nointro" ] ; then
|
||||
NOINTRO="1"
|
||||
elif [ $1 = "-quick" -o $1 = "-q" ] ; then
|
||||
QUICK="1"
|
||||
echo "running quick config"
|
||||
if [ -f "config.settings" ] ; then
|
||||
. ./config.settings
|
||||
@@ -409,10 +444,6 @@ while [ $# -ge 1 ] ; do
|
||||
shift 1
|
||||
done
|
||||
|
||||
if [ -f "config.settings" -a -z "$NOCACHE" ] ; then
|
||||
. ./config.settings
|
||||
fi
|
||||
|
||||
if [ "$PREADVANCED" = "1" ] ; then
|
||||
ADVANCED="1"
|
||||
elif [ "$ADVANCED" = "1" ]; then
|
||||
@@ -431,45 +462,109 @@ clear
|
||||
read cc
|
||||
clear
|
||||
fi
|
||||
if [ -f ".RELEASE.NOTES" -a -z "$NOINTRO" ] ; then
|
||||
more .RELEASE.NOTES
|
||||
if [ -f "doc/RELEASE-NOTES" -a -z "$NOINTRO" ] ; then
|
||||
more doc/RELEASE-NOTES
|
||||
echo $n "[Enter to continue]"
|
||||
read cc
|
||||
clear
|
||||
fi
|
||||
|
||||
TEST="$DPATH"
|
||||
echo "We will now ask you a number of questions."
|
||||
echo "You can just press ENTER to accept the defaults!"
|
||||
echo ""
|
||||
echo "What directory are all the server configuration files in?"
|
||||
|
||||
if [ -z "$NOCACHE" ] ; then
|
||||
# This needs to be updated each release so auto-upgrading works for settings, modules, etc!!:
|
||||
UNREALRELEASES="unrealircd-4.2.3-rc1 unrealircd-4.2.2 unrealircd-4.2.2-rc2 unrealircd-4.2.2-rc1 unrealircd-4.2.1.1 unrealircd-4.2.1 unrealircd-4.2.1-rc1 unrealircd-4.2.0 unrealircd-4.0.19-rc2 unrealircd-4.0.19-rc1 unrealircd-4.0.18 unrealircd-4.0.18-rc2 unrealircd-4.0.18-rc1 unrealircd-4.0.17 unrealircd-4.0.17-rc1 unrealircd-4.0.16.1 unrealircd-4.0.16 unrealircd-4.0.15 unrealircd-4.0.14 unrealircd-4.0.14-rc1 unrealircd-4.0.13 unrealircd-4.0.13-rc1 unrealircd-4.0.12.1 unrealircd-4.0.12"
|
||||
if [ -f "config.settings" ]; then
|
||||
. ./config.settings
|
||||
else
|
||||
# Try to load a previous config.settings
|
||||
for x in $UNREALRELEASES
|
||||
do
|
||||
if [ -f ../$x/config.settings ]; then
|
||||
IMPORTEDSETTINGS="../$x"
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "If you have previously installed UnrealIRCd on this shell then you can specify a"
|
||||
echo "directory here so I can import the build settings and third party modules"
|
||||
echo "to make your life a little easier."
|
||||
if [ ! -z "$IMPORTEDSETTINGS" ]; then
|
||||
echo "Found previous installation in: $IMPORTEDSETTINGS."
|
||||
echo "You can enter a different path or type 'none' if you don't want to use it."
|
||||
echo "Just press Enter to accept the default settings."
|
||||
else
|
||||
echo "If you install UnrealIRCd for the first time on this shell, then just hit Enter";
|
||||
fi
|
||||
|
||||
TEST="$IMPORTEDSETTINGS"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ]; then
|
||||
IMPORTEDSETTINGS="$TEST"
|
||||
else
|
||||
IMPORTEDSETTINGS="$cc"
|
||||
fi
|
||||
if [ "$IMPORTEDSETTINGS" = "none" ]; then
|
||||
IMPORTEDSETTINGS=""
|
||||
fi
|
||||
if [ "$IMPORTEDSETTINGS" != "" ]; then
|
||||
if [ ! -f $IMPORTEDSETTINGS/config.settings ]; then
|
||||
echo "Directory $IMPORTEDSETTINGS does not exist or does not contain a config.settings file"
|
||||
exit
|
||||
fi
|
||||
# Actually load the settings
|
||||
. $IMPORTEDSETTINGS/config.settings
|
||||
# Copy over 3rd party modules (also deals with 0 file cases, hence the silly looking code)
|
||||
for f in $IMPORTEDSETTINGS/src/modules/third/*.c
|
||||
do
|
||||
[ -e "$f" ] && cp $f src/modules/third/
|
||||
done
|
||||
fi
|
||||
fi
|
||||
# If we just imported settings and the curl dir is set to
|
||||
# something like /home/xxx/unrealircd-4.x.y/extras/curl/
|
||||
# (what we call 'local-curl') then remove this setting as
|
||||
# it would refer to the old UnrealIRCd installation.
|
||||
if [ ! -z "$IMPORTEDSETTINGS" ]; then
|
||||
if echo "$CURLDIR"|grep -qi unrealircd; then
|
||||
CURLDIR=""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST="$BASEPATH"
|
||||
echo ""
|
||||
echo "In what directory do you want to install UnrealIRCd?"
|
||||
echo "(Note: UnrealIRCd 4 will need to be installed somewhere."
|
||||
echo " If this directory does not exist it will be created.)"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
DPATH=$TEST
|
||||
BASEPATH=$TEST
|
||||
else
|
||||
DPATH=`eval echo $cc` # modified
|
||||
BASEPATH=`eval echo $cc` # modified
|
||||
fi
|
||||
if [ "$BASEPATH" = "$UNREALCWD" ]; then
|
||||
echo ""
|
||||
echo "ERROR: The installation directory cannot be the same as the directory"
|
||||
echo " containing the source code ($UNREALCWD)."
|
||||
echo " HINT: Usually the directory containing the source is $HOME/unrealircd-4.x.y"
|
||||
echo " and the installation directory you would need to enter is $HOME/unrealircd"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
SAVEME="$SPATH"
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$SAVEME"
|
||||
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
|
||||
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
|
||||
done
|
||||
# TODO: For -advanced we could prompt the user.
|
||||
BINDIR="$BASEPATH/bin"
|
||||
DATADIR="$BASEPATH/data"
|
||||
CONFDIR="$BASEPATH/conf"
|
||||
MODULESDIR="$BASEPATH/modules"
|
||||
LOGDIR="$BASEPATH/logs"
|
||||
CACHEDIR="$BASEPATH/cache"
|
||||
DOCDIR="$BASEPATH/doc"
|
||||
TMPDIR="$BASEPATH/tmp"
|
||||
LIBDIR="$BASEPATH/lib"
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
@@ -496,40 +591,26 @@ while [ -z "$TEST" ] ; do
|
||||
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to support SSL (Secure Sockets Layer) connections?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
CRYPTOIRCD="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
CRYPTOIRCD=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$CRYPTOIRCD" = "1" ] ; then
|
||||
TEST="$SSLDIR"
|
||||
|
||||
|
||||
echo ""
|
||||
echo "If you know the path to OpenSSL on your system, enter it here. If not"
|
||||
echo "leave this blank (in most cases it will be detected automatically)."
|
||||
echo "If you want, you can manually enter the path to OpenSSL/LibreSSL here."
|
||||
echo "In most cases you can leave this blank and it will be detected automatically."
|
||||
|
||||
if [ -z "$SSLDIR" ]; then
|
||||
uname|grep -q Darwin
|
||||
if [ "$?" = 0 ]; then
|
||||
echo "Looks like you're on a Mac - El Capitan and higher require"
|
||||
echo "a 3rd party OpenSSL installation. We recommend using homebrew"
|
||||
echo "to install OpenSSL, but you may install it any other way as well."
|
||||
echo "We are selecting the default homebrew OpenSSL path - but you can"
|
||||
echo "change it to another path if you have installed OpenSSL another way"
|
||||
SSLDIR="/usr/local/opt/openssl/"
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST="$SSLDIR"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
@@ -537,79 +618,6 @@ if [ -z "$cc" ] ; then
|
||||
else
|
||||
SSLDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$INET6" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable IPv6 support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
INET6="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
INET6=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
TEST="Yes"
|
||||
else
|
||||
TEST="No"
|
||||
fi
|
||||
echo ""
|
||||
echo "Do you want to enable ziplinks support?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
cc=$TEST
|
||||
fi
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
ZIPLINKS="1"
|
||||
;;
|
||||
[Nn]*)
|
||||
ZIPLINKS=""
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter either Yes or No"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$ZIPLINKS" = "1" ] ; then
|
||||
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="$TEST"
|
||||
else
|
||||
ZIPLINKSDIR=`eval echo $cc` # modified
|
||||
fi
|
||||
fi
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
@@ -649,93 +657,75 @@ if [ "$REMOTEINC" = "1" ] ; then
|
||||
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
|
||||
# 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
|
||||
SUGGESTCURLDIR=""
|
||||
|
||||
if [ -d "/usr/local/include/curl" ]; then
|
||||
SUGGESTCURLDIR="/usr/local"
|
||||
fi
|
||||
if [ -d "/usr/include/curl" ]; then
|
||||
SUGGESTCURLDIR="/usr"
|
||||
fi
|
||||
# This one also works for /usr/include/x86_64-linux-gnu and friends:
|
||||
if [ -f "/usr/bin/curl-config" ]; then
|
||||
SUGGESTCURLDIR="/usr"
|
||||
fi
|
||||
|
||||
GOTASYNC=0
|
||||
if [ "x$SUGGESTCURLDIR" != "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 "$SUGGESTCURLDIR"/bin/curl-config --features | grep -q -e AsynchDNS; then
|
||||
GOTASYNC="1"
|
||||
fi
|
||||
if [ "$GOTASYNC" != "1" ]; then
|
||||
SUGGESTCURLDIRBAD="$CURLDIR"
|
||||
SUGGESTCURLDIR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CURLDIR" = "x$HOME/curl" ]; then
|
||||
if [ "x$SUGGESTCURLDIR" != "x" ]; then
|
||||
# I guess some people will complain about this, but if system wide cURL is available
|
||||
# and many people have old defaults then this is much preferred:
|
||||
echo ""
|
||||
echo "WARNING: Your previous (potentially old) setting is to use cURL from $HOME/curl."
|
||||
echo "However, your operating system also provides a working cURL."
|
||||
echo "I am therefore changing the setting to: $SUGGESTCURLDIR"
|
||||
CURLDIR="$SUGGESTCURLDIR"
|
||||
else
|
||||
echo ""
|
||||
echo "WARNING: We no longer use $HOME/curl nowadays."
|
||||
echo "Use the automatic download and install feature below."
|
||||
CURLDIR=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CURLDIR" = "x" ]; then
|
||||
CURLDIR="$SUGGESTCURLDIR"
|
||||
# NOTE: CURLDIR may still be empty after this
|
||||
|
||||
# System curl has no asyncdns, so install our own.
|
||||
if [ "$GOTASYNC" != "1" ]; then
|
||||
CURLDIR=""
|
||||
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 "x$SUGGESTCURLDIRBAD" != "x" ]; then
|
||||
echo "Curl library was found in $SUGGESTCURLDIRBAD, but it does not support Asynchronous DNS (not compiled with c-ares)"
|
||||
echo "so it's of no use to us as it would stall the IRCd on REHASH."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Final check
|
||||
if [ "x$CURLDIR" != "x" ]; then
|
||||
"$CURLDIR/bin/curl-config" --features 2>/dev/null | grep -q -e AsynchDNS
|
||||
if [ "$?" != 0 ]; then
|
||||
echo "Curl from $CURLDIR seems unusable ($CURLDIR/bin/curl-config does not exist)"
|
||||
CURLDIR=""
|
||||
fi
|
||||
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=""
|
||||
@@ -743,7 +733,6 @@ if [ "$REMOTEINC" = "1" ] ; then
|
||||
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
|
||||
@@ -752,7 +741,7 @@ if [ "$REMOTEINC" = "1" ] ; then
|
||||
case "$cc" in
|
||||
[Yy]*)
|
||||
INSTALLCURL="1"
|
||||
CURLDIR="$HOME/curl"
|
||||
CURLDIR="$UNREALCWD/extras/curl"
|
||||
;;
|
||||
[Nn]*)
|
||||
INSTALLCURL="0"
|
||||
@@ -818,31 +807,6 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$LISTEN_SIZE"
|
||||
echo ""
|
||||
echo "What listen() backlog value do you wish to use? Some older servers"
|
||||
echo "have problems with more than 5, others work fine with many more."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
LISTEN_SIZE=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9]*)
|
||||
LISTEN_SIZE="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter a number"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$NICKNAMEHISTORYLENGTH"
|
||||
@@ -889,53 +853,37 @@ while [ -z "$TEST" ] ; do
|
||||
esac
|
||||
done
|
||||
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$BUFFERPOOL"
|
||||
echo ""
|
||||
echo "How many buffer pools would you like?"
|
||||
echo "This number will be multiplied by MAXSENDQLENGTH."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
BUFFERPOOL=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9]*)
|
||||
BUFFERPOOL="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must enter a number"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
echo ""
|
||||
TEST=""
|
||||
while [ -z "$TEST" ] ; do
|
||||
TEST="$MAXCONNECTIONS"
|
||||
echo ""
|
||||
echo "How many file descriptors (or sockets) can the IRCd use?"
|
||||
echo $n "[$TEST] -> $c"
|
||||
TEST="$MAXCONNECTIONS_REQUEST"
|
||||
echo ""
|
||||
echo "What is the maximum number of sockets (and file descriptors) that"
|
||||
echo "UnrealIRCd may use?"
|
||||
echo "It is recommended to leave this at the default setting 'auto',"
|
||||
echo "which at present results in a limit of up to 8192, depending on"
|
||||
echo "the system. When you boot UnrealIRCd later you will always see"
|
||||
echo "the effective limit."
|
||||
echo $n "[$TEST] -> $c"
|
||||
read cc
|
||||
if [ -z "$cc" ] ; then
|
||||
MAXCONNECTIONS=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
[1-9][0-9][0-9]*)
|
||||
MAXCONNECTIONS="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must to enter a number greater than or equal to 100"
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
if [ -z "$cc" ] ; then
|
||||
MAXCONNECTIONS_REQUEST=$TEST
|
||||
break
|
||||
fi
|
||||
case "$cc" in
|
||||
auto)
|
||||
MAXCONNECTIONS_REQUEST="$cc"
|
||||
;;
|
||||
[1-9][0-9][0-9]*)
|
||||
MAXCONNECTIONS_REQUEST="$cc"
|
||||
;;
|
||||
*)
|
||||
echo ""
|
||||
echo "You must to enter a number greater than or equal to 100."
|
||||
echo "Or enter 'auto' to leave it at automatic, which is recommended."
|
||||
TEST=""
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [ -n "$ADVANCED" ] ; then
|
||||
RUN_ADVANCED
|
||||
@@ -954,20 +902,22 @@ fi
|
||||
rm -f config.settings
|
||||
cat > config.settings << __EOF__
|
||||
#
|
||||
DPATH="$DPATH"
|
||||
SPATH="$SPATH"
|
||||
INET6="$INET6"
|
||||
BASEPATH="$BASEPATH"
|
||||
BINDIR="$BINDIR"
|
||||
DATADIR="$DATADIR"
|
||||
CONFDIR="$CONFDIR"
|
||||
MODULESDIR="$MODULESDIR"
|
||||
LOGDIR="$LOGDIR"
|
||||
CACHEDIR="$CACHEDIR"
|
||||
DOCDIR="$DOCDIR"
|
||||
TMPDIR="$TMPDIR"
|
||||
LIBDIR="$LIBDIR"
|
||||
PREFIXAQ="$PREFIXAQ"
|
||||
LISTEN_SIZE="$LISTEN_SIZE"
|
||||
MAXSENDQLENGTH="$MAXSENDQLENGTH"
|
||||
BUFFERPOOL="$BUFFERPOOL"
|
||||
MAXCONNECTIONS="$MAXCONNECTIONS"
|
||||
MAXCONNECTIONS_REQUEST="$MAXCONNECTIONS_REQUEST"
|
||||
NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH"
|
||||
DEFPERM="$DEFPERM"
|
||||
CRYPTOIRCD="$CRYPTOIRCD"
|
||||
SSLDIR="$SSLDIR"
|
||||
ZIPLINKS="$ZIPLINKS"
|
||||
ZIPLINKSDIR="$ZIPLINKSDIR"
|
||||
REMOTEINC="$REMOTEINC"
|
||||
CURLDIR="$CURLDIR"
|
||||
SHOWLISTMODES="$SHOWLISTMODES"
|
||||
@@ -998,7 +948,8 @@ cat << __EOF__
|
||||
|_______________________________________________________________________|
|
||||
| - The UnrealIRCd Team - |
|
||||
| |
|
||||
| * Syzop syzop@unrealircd.com |
|
||||
| * Bram Matthys (Syzop) syzop@unrealircd.org |
|
||||
| * Travis McArthur (Heero) heero@unrealircd.org |
|
||||
|_______________________________________________________________________|
|
||||
__EOF__
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
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 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: http://unrealircd.com/donate.php
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than money,
|
||||
contact Syzop (syzop@unrealircd.com).
|
||||
|
||||
All those who donate at least a certain minimum amount will have their name
|
||||
and/or company listed in /CREDITS.
|
||||
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
|
||||
@@ -1,23 +0,0 @@
|
||||
**** Remote Includes ****
|
||||
|
||||
Setting up UnrealIRCd to work with remote includes is not very difficult. The first step is to
|
||||
download c-ares. C-ares can be downloaded from <http://daniel.haxx.se/projects/c-ares/>
|
||||
download the latest version of c-ares and extract the .tar.gz somewhere.
|
||||
|
||||
Now, download the latest version of curl, available at <http://curl.haxx.se/download.html>
|
||||
again, extract the tar.gz somewhere.
|
||||
|
||||
Next, go to the Unreal3.2 directory and run the curlinstall script. You run the script
|
||||
as follows:
|
||||
|
||||
./curlinstall ares_path curl_path
|
||||
|
||||
Paths should be complete pathnames. If you extracted c-ares to /home/username/c-ares-1.0.0
|
||||
and curl to /home/username/curl-7.11.0 then you would run:
|
||||
|
||||
./curlinstall /home/username/c-ares-1.0.0 /home/username/curl-7.11.0
|
||||
|
||||
Lastly, run ./Config. When asked whether to enable remote includes say "yes" and when asked
|
||||
for the path curl was installed to include the path that is printed out after ./curlinstall
|
||||
completes. Then simply run make to compile Unreal as usual and remote includes should work
|
||||
fine.
|
||||
+94
-69
@@ -20,7 +20,7 @@
|
||||
#*/
|
||||
|
||||
CC=@CC@
|
||||
INCLUDEDIR=../include
|
||||
INCLUDEDIR=@UNRLINCDIR@
|
||||
NETWORKSDIR=
|
||||
FROMDOS=/home/cmunk/bin/4dos
|
||||
|
||||
@@ -34,11 +34,11 @@ FROMDOS=/home/cmunk/bin/4dos
|
||||
#
|
||||
|
||||
#XCFLAGS=-O -g -export-dynamic
|
||||
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @CARES_LIBS@
|
||||
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@
|
||||
CRYPTOLIB=@CRYPTOLIB@
|
||||
OPENSSLINCLUDES=
|
||||
|
||||
XCFLAGS=@TRE_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@
|
||||
XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
|
||||
#
|
||||
# use the following on MIPS:
|
||||
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
||||
@@ -89,12 +89,6 @@ XCFLAGS=@TRE_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@
|
||||
# you are not defining CMDLINE_CONFIG
|
||||
IRCDMODE = 711
|
||||
|
||||
# [CHANGEME]
|
||||
# IRCDDIR must be the same as DPATH in include/config.h
|
||||
#
|
||||
IRCDDIR=@IRCDDIR@
|
||||
|
||||
|
||||
URL=@URL@
|
||||
|
||||
# [CHANGEME]
|
||||
@@ -114,7 +108,8 @@ FD_SETSIZE=@FD_SETSIZE@
|
||||
# Where is your openssl binary
|
||||
OPENSSLPATH=@OPENSSLPATH@
|
||||
|
||||
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) @LDFLAGS@ $(FD_SETSIZE)
|
||||
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(FD_SETSIZE)
|
||||
LDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@
|
||||
|
||||
SHELL=/bin/sh
|
||||
SUBDIRS=src
|
||||
@@ -129,7 +124,7 @@ all: build
|
||||
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
||||
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
|
||||
'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
|
||||
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
|
||||
'INCLUDEDIR=${INCLUDEDIR}' \
|
||||
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
|
||||
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
||||
'CRYPTOLIB=${CRYPTOLIB}' \
|
||||
@@ -151,19 +146,10 @@ build: Makefile
|
||||
echo "Building $$i";\
|
||||
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
||||
done
|
||||
@echo ' __________________________________________________ '
|
||||
@echo '| Compile is now complete. |'
|
||||
@echo '| You should now read the documentation and learn |'
|
||||
@echo '| how to configure your IRCd. |'
|
||||
@echo '| |'
|
||||
@echo '| If you really like UnrealIRCd, and would like to |'
|
||||
@echo '| make a donation, please read the Donation file in|'
|
||||
@echo '| this archive. :) |'
|
||||
@echo '| |'
|
||||
@echo '| Thanks for using Unreal IRCd! If you are in need |'
|
||||
@echo '| for any kind of help regarding the IRCd please |'
|
||||
@echo '| read the Unreal.nfo file. |'
|
||||
@echo '|__________________________________________________|'
|
||||
@echo ''
|
||||
@echo '* UnrealIRCd compiled successfully'
|
||||
@echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !'
|
||||
@echo ''
|
||||
|
||||
clean:
|
||||
$(RM) -f *~ \#* core *.orig include/*.orig
|
||||
@@ -178,26 +164,12 @@ clean:
|
||||
cleandir: clean
|
||||
rm -rf include/setup.h Makefile Settings
|
||||
|
||||
makex:
|
||||
chmod +x Config newnet ircd ircdcron/ircdchk killircd
|
||||
chmod +x rehash ircdreg
|
||||
|
||||
fromdos: cleandir
|
||||
$(FROMDOS) -dv *
|
||||
$(FROMDOS) -dv src/*
|
||||
$(FROMDOS) -dv include/*
|
||||
$(FROMDOS) -dv doc/*
|
||||
$(FROMDOS) -dv crypt/*
|
||||
$(FROMDOS) -dv ircdcron/*
|
||||
makedist: makex
|
||||
echo "Stamping.."
|
||||
|
||||
stamp: makedist
|
||||
echo "/* Auto created release stamping */" > include/stamp.h
|
||||
echo "#define RELEASEID2 \"`date +%s`\"" >> include/stamp.h
|
||||
echo "#define RELEASESTUFF \"`hostname`\"" >> include/stamp.h
|
||||
echo "" >> include/stamp.h
|
||||
|
||||
distclean: cleandir
|
||||
rm -rf extras/*.bak extras/regexp extras/*.tar extras/c-ares
|
||||
rm -rf extras/c-ares-* extras/tre-*
|
||||
rm -rf config.log config.settings *.pem ircd.* unrealircd
|
||||
rm -rf Makefile config.status
|
||||
|
||||
depend:
|
||||
@+for i in $(SUBDIRS); do \
|
||||
echo "Making dependencies in $$i";\
|
||||
@@ -205,41 +177,94 @@ depend:
|
||||
done
|
||||
|
||||
install: all
|
||||
$(INSTALL) -m 0700 -d $(IRCDDIR)
|
||||
$(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
|
||||
$(INSTALL) -m 0600 aliases/*.conf $(IRCDDIR)/aliases
|
||||
$(TOUCH) $(IRCDDIR)/unrealircd.conf
|
||||
chmod 0600 $(IRCDDIR)/unrealircd.conf
|
||||
$(INSTALL) -m 0600 spamfilter.conf dccallow.conf $(IRCDDIR)
|
||||
$(INSTALL) -m 0600 badwords.*.conf help.conf LICENSE Donation $(IRCDDIR)
|
||||
$(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) ; \
|
||||
$(INSTALL) -m 0700 -d @BINDIR@
|
||||
$(INSTALL) -m 0700 src/ircd @BINDIR@/unrealircd
|
||||
$(INSTALL) -m 0700 -d @DOCDIR@
|
||||
$(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc @DOCDIR@
|
||||
$(INSTALL) -m 0700 -d @CONFDIR@
|
||||
$(INSTALL) -m 0600 doc/conf/*.default.conf @CONFDIR@
|
||||
$(INSTALL) -m 0600 doc/conf/*.optional.conf @CONFDIR@
|
||||
-@if [ ! -f "@CONFDIR@/spamfilter.conf" ] ; then \
|
||||
$(INSTALL) -m 0600 doc/conf/spamfilter.conf @CONFDIR@ ; \
|
||||
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) ; \
|
||||
-@extras/patches/patch_spamfilter_conf "@CONFDIR@"
|
||||
-@if [ ! -f "@CONFDIR@/badwords.conf" ] ; then \
|
||||
$(INSTALL) -m 0600 doc/conf/badwords.conf @CONFDIR@ ; \
|
||||
fi
|
||||
-@if [ ! -f "@CONFDIR@/dccallow.conf" ] ; then \
|
||||
$(INSTALL) -m 0600 doc/conf/dccallow.conf @CONFDIR@ ; \
|
||||
fi
|
||||
$(INSTALL) -m 0700 -d @CONFDIR@/aliases
|
||||
$(INSTALL) -m 0600 doc/conf/aliases/*.conf @CONFDIR@/aliases
|
||||
$(INSTALL) -m 0700 -d @CONFDIR@/help
|
||||
$(INSTALL) -m 0600 doc/conf/help/*.conf @CONFDIR@/help
|
||||
$(INSTALL) -m 0700 -d @CONFDIR@/examples
|
||||
$(INSTALL) -m 0600 doc/conf/examples/*.conf @CONFDIR@/examples
|
||||
$(INSTALL) -m 0700 -d @CONFDIR@/ssl
|
||||
$(INSTALL) -m 0600 doc/conf/ssl/curl-ca-bundle.crt @CONFDIR@/ssl
|
||||
$(INSTALL) -m 0700 unrealircd @SCRIPTDIR@
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@
|
||||
$(INSTALL) -m 0700 src/modules/*.so @MODULESDIR@
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/usermodes
|
||||
$(INSTALL) -m 0700 src/modules/usermodes/*.so @MODULESDIR@/usermodes
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/chanmodes
|
||||
$(INSTALL) -m 0700 src/modules/chanmodes/*.so @MODULESDIR@/chanmodes
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/snomasks
|
||||
$(INSTALL) -m 0700 src/modules/snomasks/*.so @MODULESDIR@/snomasks
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/extbans
|
||||
$(INSTALL) -m 0700 src/modules/extbans/*.so @MODULESDIR@/extbans
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/cap
|
||||
$(INSTALL) -m 0700 src/modules/cap/*.so @MODULESDIR@/cap
|
||||
$(INSTALL) -m 0700 -d @MODULESDIR@/third
|
||||
@#Ugly stuff to detect 0 files in this directory:
|
||||
@+for f in src/modules/third/*.so; do \
|
||||
[ -e $f ] && $(INSTALL) -m 0700 src/modules/third/*.so @MODULESDIR@/third || echo; \
|
||||
done
|
||||
$(INSTALL) -m 0700 -d @TMPDIR@
|
||||
$(INSTALL) -m 0700 -d @CACHEDIR@
|
||||
$(INSTALL) -m 0700 -d @PERMDATADIR@
|
||||
$(INSTALL) -m 0700 -d @LOGDIR@
|
||||
-@if [ ! -f "@CONFDIR@/ssl/server.cert.pem" ] ; then \
|
||||
$(INSTALL) -m 0600 server.req.pem @CONFDIR@/ssl ; \
|
||||
$(INSTALL) -m 0600 server.key.pem @CONFDIR@/ssl ; \
|
||||
$(INSTALL) -m 0600 server.cert.pem @CONFDIR@/ssl ; \
|
||||
fi
|
||||
@echo ''
|
||||
@echo '* UnrealIRCd is now installed.'
|
||||
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \
|
||||
fi
|
||||
@echo '* Directory layout:'
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo ' * Base directory: @SCRIPTDIR@' ; \
|
||||
fi
|
||||
@echo ' * Configuration files: @CONFDIR@'
|
||||
@echo ' * Log files: @LOGDIR@'
|
||||
@echo ' * Modules: @MODULESDIR@'
|
||||
@echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"'
|
||||
@echo ''
|
||||
@echo '* Consult the documentation online at:'
|
||||
@echo ' * https://www.unrealircd.org/docs/'
|
||||
@echo ' * https://www.unrealircd.org/docs/FAQ'
|
||||
@echo '* You may also wish to install a cron job to ensure UnrealIRCd is always running:'
|
||||
@echo ' * https://www.unrealircd.org/docs/Cron_job'
|
||||
@echo ''
|
||||
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
||||
echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
|
||||
fi
|
||||
|
||||
### TODO: all the stuff below ;) ###
|
||||
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
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
==[ COMPILING ]==
|
||||
To build the ircd, run:
|
||||
./Config
|
||||
make
|
||||
|
||||
If you specified an alternative location during ./Config you also need
|
||||
to run "make install".
|
||||
|
||||
==[ MAKING A CONFIG FILE ]==
|
||||
If you are new, then you need to create your own configfile:
|
||||
|
||||
copy doc/example.conf to your main UnrealIRCd directory and call
|
||||
it unrealircd.conf .
|
||||
Then open it in an editor and carefully modify it, consult the docs
|
||||
(doc/unreal32docs.html, or online: www.unrealircd.com/unreal32docs.html)
|
||||
for more information about every block/setting.
|
||||
Common problems are explained in the FAQ, which is located at:
|
||||
http://www.vulnscan.org/UnrealIrcd/faq/ .
|
||||
|
||||
==[ BOOTING YOUR IRCD ]==
|
||||
Just type: ./unreal start
|
||||
Note that after booting the errors are usually logged to ircd.log,
|
||||
so check that file if you have any problems.
|
||||
Again, check the FAQ (and docs) if you have any boot problems.
|
||||
@@ -0,0 +1,57 @@
|
||||
[](https://travis-ci.org/unrealircd/unrealircd)
|
||||
[](https://ci.appveyor.com/project/syzop/unrealircd/branch/unreal42)
|
||||
[](https://twitter.com/Unreal_IRCd)
|
||||
|
||||
## About UnrealIRCd
|
||||
UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999.
|
||||
It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd
|
||||
with a market share of over 50%. UnrealIRCd is a highly advanced IRCd with a strong
|
||||
focus on modularity, an advanced and highly configurable configuration file.
|
||||
Key features include SSL, cloaking, its advanced anti-flood and anti-spam systems,
|
||||
swear filtering and module support. We are also particularly proud on our extensive
|
||||
online documentation.
|
||||
|
||||
## How to get started
|
||||
Please consult our excellent online documentation at https://www.unrealircd.org/docs/
|
||||
when setting up the IRCd!
|
||||
|
||||
### Step 1: Installation
|
||||
#### Windows
|
||||
Simply download the UnrealIRCd Windows version from www.unrealircd.org
|
||||
|
||||
Alternatively you can compile UnrealIRCd for Windows yourself. However this is not straightforward and thus not recommended.
|
||||
|
||||
#### *BSD/Linux/macOS
|
||||
First you must compile the IRCd:
|
||||
|
||||
* Run `./Config`
|
||||
* Run `make`
|
||||
* Run `make install`
|
||||
* Now change to the directory where you installed UnrealIRCd, e.g. `cd /home/xxxx/unrealircd`
|
||||
|
||||
### Step 2: Configuration
|
||||
Configuration files are stored in the conf/ folder by default (eg: /home/xxxx/unrealircd/conf)
|
||||
|
||||
#### Create a configuration file
|
||||
If you are new, then you need to create your own configuration file:
|
||||
Copy conf/examples/example.conf to conf/ and call it unrealircd.conf.
|
||||
Then open it in an editor and carefully modify it using the documentation and FAQ as a guide (see below).
|
||||
|
||||
### Step 3: Booting
|
||||
|
||||
#### Linux/*BSD/macOS
|
||||
Run `./unrealircd start` in the directory where you installed UnrealIRCd.
|
||||
|
||||
#### Windows
|
||||
Start -> All Programs -> UnrealIRCd -> UnrealIRCd
|
||||
|
||||
## Documentation & FAQ
|
||||
You can find the **documentation** online at: https://www.unrealircd.org/docs/
|
||||
|
||||
We also have a good **FAQ**: https://www.unrealircd.org/docs/FAQ
|
||||
|
||||
## Website, support, and other links ##
|
||||
* https://www.unrealircd.org - Our main website
|
||||
* https://forums.unrealircd.org - Support
|
||||
* https://bugs.unrealircd.org - Bug tracker
|
||||
* ircs://irc.unrealircd.org:6697/unreal-support - IRC support
|
||||
-80
@@ -1,80 +0,0 @@
|
||||
===============================================
|
||||
= UnrealIRCd v3.2.10-rc1 =
|
||||
===============================================
|
||||
This release was brought to you by:
|
||||
|
||||
Head coder:
|
||||
============
|
||||
* Syzop
|
||||
|
||||
Coders:
|
||||
========
|
||||
* binki
|
||||
|
||||
Contributors:
|
||||
=============
|
||||
* nenolod
|
||||
* Adam
|
||||
* warg
|
||||
* Stealth
|
||||
* WolfSage
|
||||
* katsklaw
|
||||
* darkex
|
||||
* fspijkerman
|
||||
* fbi
|
||||
* Apocalypse
|
||||
|
||||
RC Testers:
|
||||
===========
|
||||
<<TODO>>
|
||||
|
||||
Previous coders:
|
||||
================
|
||||
* Stskeeps
|
||||
* codemastr
|
||||
* Many more..
|
||||
|
||||
Internet Presence:
|
||||
* http://www.unrealircd.com/
|
||||
|
||||
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: http://unrealircd.com/unreal32docs.html)
|
||||
* check the FAQ (http://vulnscan.org/UnrealIrcd/faq/)
|
||||
|
||||
Means of support:
|
||||
* 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/
|
||||
|
||||
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.unrealircd.com 6667 - /join #chat
|
||||
(NOT for support! If you want support then use #unreal-support instead!)
|
||||
@@ -0,0 +1,10 @@
|
||||
version: 4.2.x-devbuild-{build}
|
||||
environment:
|
||||
matrix:
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
|
||||
TARGET: "Visual Studio 2017"
|
||||
SHORTNAME: "vs2017"
|
||||
init:
|
||||
- cmd: git config --global core.autocrlf true
|
||||
build_script:
|
||||
- cmd: call extras\\build-tests\\windows\\build.bat
|
||||
Vendored
+1438
File diff suppressed because it is too large
Load Diff
Vendored
+601
-166
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,72 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the current language's compiler
|
||||
# or gives an error. (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||
# force the compiler to issue an error when a bad flag is given.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_COMPILE_FLAGS
|
||||
@@ -0,0 +1,71 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the linker or gives an error.
|
||||
# (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the linker's default flags
|
||||
# when the check is done. The check is thus made with the flags: "LDFLAGS
|
||||
# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
|
||||
# issue an error when a bad flag is given.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
|
||||
AC_DEFUN([AX_CHECK_LINK_FLAG],
|
||||
[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS $4 $1"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
LDFLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_LINK_FLAGS
|
||||
@@ -0,0 +1,332 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro figures out how to build C programs using POSIX threads. It
|
||||
# sets the PTHREAD_LIBS output variable to the threads library and linker
|
||||
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
|
||||
# flags that are needed. (The user can also force certain compiler
|
||||
# flags/libs to be tested by setting these environment variables.)
|
||||
#
|
||||
# Also sets PTHREAD_CC to any special C compiler that is needed for
|
||||
# multi-threaded programs (defaults to the value of CC otherwise). (This
|
||||
# is necessary on AIX to use the special cc_r compiler alias.)
|
||||
#
|
||||
# NOTE: You are assumed to not only compile your program with these flags,
|
||||
# but also link it with them as well. e.g. you should link with
|
||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||
#
|
||||
# If you are only building threads programs, you may wish to use these
|
||||
# variables in your default LIBS, CFLAGS, and CC:
|
||||
#
|
||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
||||
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
# CC="$PTHREAD_CC"
|
||||
#
|
||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
||||
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
|
||||
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
#
|
||||
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
|
||||
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
|
||||
# PTHREAD_CFLAGS.
|
||||
#
|
||||
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
|
||||
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
|
||||
# is not found. If ACTION-IF-FOUND is not specified, the default action
|
||||
# will define HAVE_PTHREAD.
|
||||
#
|
||||
# Please let the authors know if this macro fails on any platform, or if
|
||||
# you have any other suggestions or comments. This macro was based on work
|
||||
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
|
||||
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
|
||||
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
|
||||
# grateful for the helpful feedback of numerous users.
|
||||
#
|
||||
# Updated for Autoconf 2.68 by Daniel Richard G.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 21
|
||||
|
||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||
AC_DEFUN([AX_PTHREAD], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_LANG_PUSH([C])
|
||||
ax_pthread_ok=no
|
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h
|
||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
||||
# It gets checked for in the link test anyway.
|
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||
# etcetera environment variables, and if threads linking works using
|
||||
# them:
|
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
||||
AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
fi
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
|
||||
# We must check for the threads library under a number of different
|
||||
# names; the ordering is very important because some systems
|
||||
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
|
||||
# libraries is broken (non-POSIX).
|
||||
|
||||
# Create a list of thread flags to try. Items starting with a "-" are
|
||||
# C compiler flags, and other items are library names, except for "none"
|
||||
# which indicates that we try without any flags at all, and "pthread-config"
|
||||
# which is a program returning the flags for the Pth emulation library.
|
||||
|
||||
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the
|
||||
# individual items follow:
|
||||
|
||||
# pthreads: AIX (must check this before -lpthread)
|
||||
# none: in case threads are in libc; should be tried before -Kthread and
|
||||
# other compiler flags to prevent continual compiler warnings
|
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
||||
# -pthreads: Solaris/gcc
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
||||
# also defines -D_REENTRANT)
|
||||
# ... -mt is also the pthreads flag for HP/aCC
|
||||
# pthread: Linux, etcetera
|
||||
# --thread-safe: KAI C++
|
||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||
|
||||
case ${host_os} in
|
||||
solaris*)
|
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed
|
||||
# (non-functional) versions of the pthreads routines, so link-based
|
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
||||
# a function called by this macro, so we could check for that, but
|
||||
# who knows whether they'll stub that too in a future libc.) So,
|
||||
# we'll just look for -pthreads and -lpthread first:
|
||||
|
||||
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
darwin*)
|
||||
ax_pthread_flags="-pthread $ax_pthread_flags"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clang doesn't consider unrecognized options an error unless we specify
|
||||
# -Werror. We throw in some extra Clang-specific options to ensure that
|
||||
# this doesn't happen for GCC, which also accepts -Werror.
|
||||
|
||||
AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
|
||||
save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_extra_flags="-Werror"
|
||||
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[ax_pthread_extra_flags=
|
||||
AC_MSG_RESULT([no])])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
for flag in $ax_pthread_flags; do
|
||||
|
||||
case $flag in
|
||||
none)
|
||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||
;;
|
||||
|
||||
-*)
|
||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
||||
PTHREAD_CFLAGS="$flag"
|
||||
;;
|
||||
|
||||
pthread-config)
|
||||
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
||||
if test x"$ax_pthread_config" = xno; then continue; fi
|
||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
||||
PTHREAD_LIBS="-l$flag"
|
||||
;;
|
||||
esac
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
|
||||
|
||||
# Check for various functions. We must include pthread.h,
|
||||
# since some functions may be macros. (On the Sequent, we
|
||||
# need a special flag -Kthread to make this header compile.)
|
||||
# We check for pthread_join because it is in -lpthread on IRIX
|
||||
# while pthread_create is in libc. We check for pthread_attr_init
|
||||
# due to DEC craziness with -lpthreads. We check for
|
||||
# pthread_cleanup_push because it is one of the few pthread
|
||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||
# We try pthread_create on general principles.
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
|
||||
static void routine(void *a) { a = 0; }
|
||||
static void *start_routine(void *a) { return a; }],
|
||||
[pthread_t th; pthread_attr_t attr;
|
||||
pthread_create(&th, 0, start_routine, 0);
|
||||
pthread_join(th, 0);
|
||||
pthread_attr_init(&attr);
|
||||
pthread_cleanup_push(routine, 0);
|
||||
pthread_cleanup_pop(0) /* ; */])],
|
||||
[ax_pthread_ok=yes],
|
||||
[])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
break;
|
||||
fi
|
||||
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
done
|
||||
fi
|
||||
|
||||
# Various other checks:
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
||||
attr_name=unknown
|
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
|
||||
[int attr = $attr; return attr /* ; */])],
|
||||
[attr_name=$attr; break],
|
||||
[])
|
||||
done
|
||||
AC_MSG_RESULT([$attr_name])
|
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||
AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
|
||||
[Define to necessary symbol if this constant
|
||||
uses a non-standard name on your system.])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
||||
flag=no
|
||||
case ${host_os} in
|
||||
aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
|
||||
osf* | hpux*) flag="-D_REENTRANT";;
|
||||
solaris*)
|
||||
if test "$GCC" = "yes"; then
|
||||
flag="-D_REENTRANT"
|
||||
else
|
||||
# TODO: What about Clang on Solaris?
|
||||
flag="-mt -D_REENTRANT"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$flag])
|
||||
if test "x$flag" != xno; then
|
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||
[[int i = PTHREAD_PRIO_INHERIT;]])],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
||||
])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
|
||||
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
# More AIX lossage: compile with *_r variant
|
||||
if test "x$GCC" != xyes; then
|
||||
case $host_os in
|
||||
aix*)
|
||||
AS_CASE(["x/$CC"],
|
||||
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
|
||||
[#handle absolute path differently from PATH based program lookup
|
||||
AS_CASE(["x$CC"],
|
||||
[x/*],
|
||||
[AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
|
||||
[AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
|
||||
|
||||
AC_SUBST([PTHREAD_LIBS])
|
||||
AC_SUBST([PTHREAD_CFLAGS])
|
||||
AC_SUBST([PTHREAD_CC])
|
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||
if test x"$ax_pthread_ok" = xyes; then
|
||||
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
||||
:
|
||||
else
|
||||
ax_pthread_ok=no
|
||||
$2
|
||||
fi
|
||||
AC_LANG_POP
|
||||
])dnl AX_PTHREAD
|
||||
+48
-76
@@ -65,11 +65,9 @@ AC_DEFUN([CHECK_LIBCURL],
|
||||
CURLLIBS="`$CURLCONFIG --libs`"
|
||||
|
||||
dnl This test must be this way because of #3981
|
||||
AS_IF([$CURLCONFIG --features | grep -q -e AsynchDNS],
|
||||
AS_IF([$CURLCONFIG --libs | grep -q -e ares],
|
||||
[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}"],
|
||||
@@ -88,12 +86,13 @@ AC_DEFUN([CHECK_LIBCURL],
|
||||
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" ],
|
||||
AS_IF([test "x$has_system_cares" = "xno" && test "x$BUILDDIR/extras/curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ],
|
||||
[
|
||||
AC_MSG_ERROR([[
|
||||
|
||||
You have decided to build unrealIRCd with libcURL (remote includes) support.
|
||||
However, you have disabled system-installed c-ares support (--with-system-cares).
|
||||
However, you have system-installed c-ares support has either been disabled
|
||||
(--without-system-cares) or is unavailable.
|
||||
Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible
|
||||
with the system-installed libcURL, this is a bad idea which may result in error
|
||||
messages looking like:
|
||||
@@ -106,25 +105,6 @@ AC_DEFUN([CHECK_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"
|
||||
@@ -160,13 +140,13 @@ dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler <trostl
|
||||
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])],
|
||||
[AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr])],
|
||||
[],
|
||||
[enable_ssl=no])
|
||||
AS_IF([test $enable_ssl != "no"],
|
||||
[
|
||||
AC_MSG_CHECKING([for openssl])
|
||||
for dir in $enable_ssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do
|
||||
for dir in $enable_ssl /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do
|
||||
ssldir="$dir"
|
||||
if test -f "$dir/include/openssl/ssl.h"; then
|
||||
AC_MSG_RESULT([found in $ssldir/include/openssl])
|
||||
@@ -189,65 +169,57 @@ AS_IF([test $enable_ssl != "no"],
|
||||
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 ""
|
||||
echo "The following packages are required:"
|
||||
echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'"
|
||||
echo "2) The binary package is usually called 'openssl'."
|
||||
echo "NOTE: you or your system administrator needs to install the library AND the binary package."
|
||||
echo "After doing so, simply re-run ./Config"
|
||||
exit 1
|
||||
else
|
||||
CRYPTOLIB="-lssl -lcrypto";
|
||||
if test ! "$ssldir" = "/usr" ; then
|
||||
LDFLAGS="$LDFLAGS -L$ssldir/lib";
|
||||
fi
|
||||
AC_DEFINE([USE_SSL], [], [Define if you want to allow SSL connections])
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
AC_DEFUN([CHECK_SSL_CTX_SET1_CURVES_LIST],
|
||||
[
|
||||
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])
|
||||
])
|
||||
AC_MSG_CHECKING([for SSL_CTX_set1_curves_list in SSL library])
|
||||
AC_LANG_PUSH(C)
|
||||
SAVE_LIBS="$LIBS"
|
||||
LIBS="$LIBS $CRYPTOLIB"
|
||||
AC_TRY_LINK([#include <openssl/ssl.h>],
|
||||
[SSL_CTX *ctx = NULL; SSL_CTX_set1_curves_list(ctx, "test");],
|
||||
has_function=1,
|
||||
has_function=0)
|
||||
LIBS="$SAVE_LIBS"
|
||||
AC_LANG_POP(C)
|
||||
if test $has_function = 1; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAS_SSL_CTX_SET1_CURVES_LIST], [], [Define if ssl library has SSL_CTX_set1_curves_list])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_SSL_CTX_SET_MIN_PROTO_VERSION],
|
||||
[
|
||||
AC_MSG_CHECKING([for SSL_CTX_set_min_proto_version in SSL library])
|
||||
AC_LANG_PUSH(C)
|
||||
SAVE_LIBS="$LIBS"
|
||||
LIBS="$LIBS $CRYPTOLIB"
|
||||
AC_TRY_LINK([#include <openssl/ssl.h>],
|
||||
[SSL_CTX *ctx = NULL; SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION);],
|
||||
has_function=1,
|
||||
has_function=0)
|
||||
LIBS="$SAVE_LIBS"
|
||||
AC_LANG_POP(C)
|
||||
if test $has_function = 1; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAS_SSL_CTX_SET_MIN_PROTO_VERSION], [], [Define if ssl library has SSL_CTX_set_min_proto_version])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword channel { word "pussy"; };
|
||||
badword channel { word "fuck"; };
|
||||
badword channel { word "whore"; };
|
||||
badword channel { word "slut"; };
|
||||
badword channel { word "shit"; };
|
||||
badword channel { word "asshole"; };
|
||||
badword channel { word "bitch"; };
|
||||
badword channel { word "cunt"; };
|
||||
badword channel { word "vagina"; };
|
||||
badword channel { word "penis"; };
|
||||
badword channel { word "jackass"; };
|
||||
badword channel { word "*fucker*"; };
|
||||
badword channel { word "faggot"; };
|
||||
badword channel { word "fag"; };
|
||||
badword channel { word "horny"; };
|
||||
badword channel { word "gay"; };
|
||||
badword channel { word "dickhead"; };
|
||||
badword channel { word "sonuvabitch"; };
|
||||
badword channel { word "*fuck*"; };
|
||||
badword channel { word "tits"; };
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badword messages@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword message { word "pussy"; };
|
||||
badword message { word "fuck"; };
|
||||
badword message { word "whore"; };
|
||||
badword message { word "slut"; };
|
||||
badword message { word "shit"; };
|
||||
badword message { word "asshole"; };
|
||||
badword message { word "bitch"; };
|
||||
badword message { word "cunt"; };
|
||||
badword message { word "vagina"; };
|
||||
badword message { word "penis"; };
|
||||
badword message { word "jackass"; };
|
||||
badword message { word "*fucker*"; };
|
||||
badword message { word "faggot"; };
|
||||
badword message { word "fag"; };
|
||||
badword message { word "horny"; };
|
||||
badword message { word "gay"; };
|
||||
badword message { word "dickhead"; };
|
||||
badword message { word "sonuvabitch"; };
|
||||
badword message { word "*fuck*"; };
|
||||
badword message { word "tits"; };
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that quit message censoring
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badword badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword quit { word "pussy"; };
|
||||
badword quit { word "fuck"; };
|
||||
badword quit { word "whore"; };
|
||||
badword quit { word "slut"; };
|
||||
badword quit { word "shit"; };
|
||||
badword quit { word "asshole"; };
|
||||
badword quit { word "bitch"; };
|
||||
badword quit { word "cunt"; };
|
||||
badword quit { word "vagina"; };
|
||||
badword quit { word "penis"; };
|
||||
badword quit { word "jackass"; };
|
||||
badword quit { word "*fucker*"; };
|
||||
badword quit { word "faggot"; };
|
||||
badword quit { word "fag"; };
|
||||
badword quit { word "horny"; };
|
||||
badword quit { word "gay"; };
|
||||
badword quit { word "dickhead"; };
|
||||
badword quit { word "sonuvabitch"; };
|
||||
badword quit { word "*fuck*"; };
|
||||
badword quit { word "tits"; };
|
||||
Vendored
-1360
File diff suppressed because it is too large
Load Diff
+475
-163
@@ -5,12 +5,10 @@ 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-rc1], [http://bugs.unrealircd.org/], [], [http://unrealircd.org/])
|
||||
AC_INIT([unrealircd], [4.2.4.1], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/])
|
||||
AC_CONFIG_SRCDIR([src/ircd.c])
|
||||
AC_CONFIG_HEADER([include/setup.h])
|
||||
AC_CONFIG_AUX_DIR([autoconf])
|
||||
@@ -21,57 +19,48 @@ if test "x$enable_dynamic_linking" = "x"; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dnl Save CFLAGS, use this when building the libraries like c-ares
|
||||
orig_cflags="$CFLAGS"
|
||||
|
||||
dnl Save build directory early on (used in our m4 macros too)
|
||||
BUILDDIR="`pwd`"
|
||||
AC_SUBST(BUILDDIR)
|
||||
|
||||
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*)])
|
||||
# Generation version number (e.g.: X in X.Y.Z)
|
||||
UNREAL_VERSION_GENERATION=["4"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: X for X.Y.Z)])
|
||||
|
||||
# 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*)])
|
||||
# Major version number (e.g.: Y in X.Y.Z)
|
||||
UNREAL_VERSION_MAJOR=["2"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: Y for X.Y.Z)])
|
||||
|
||||
# Minor version number (e.g.: 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)])
|
||||
# Minor version number (e.g.: Z in X.Y.Z)
|
||||
UNREAL_VERSION_MINOR=["4"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: Z for X.Y.Z)])
|
||||
|
||||
# The version suffix such as a beta marker or release candidate
|
||||
# marker. (e.g.: -rc2 for unrealircd-3.2.9-rc2). This macro is a
|
||||
# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a
|
||||
# string instead of an integer because it contains arbitrary data.
|
||||
UNREAL_VERSION_SUFFIX=["`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
|
||||
UNREAL_VERSION_SUFFIX=[".1"]
|
||||
AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rcX for unrealircd-3.2.9-rcX)])
|
||||
|
||||
AC_PATH_PROG(RM,rm)
|
||||
AC_PATH_PROG(CP,cp)
|
||||
AC_PATH_PROG(TOUCH,touch)
|
||||
AC_PATH_PROG(OPENSSLPATH,openssl)
|
||||
AS_IF([test x"$OPENSSLPATH" = "x"],
|
||||
[
|
||||
echo ""
|
||||
echo "Apparently you do not have both the openssl binary and openssl development libraries installed."
|
||||
echo "The following packages are required:"
|
||||
echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'"
|
||||
echo "2) The binary package is usually called 'openssl'."
|
||||
echo "NOTE: you or your system administrator needs to install the library AND the binary package."
|
||||
echo "After doing so, simply re-run ./Config"
|
||||
exit 1
|
||||
])
|
||||
|
||||
AC_PATH_PROG(INSTALL,install)
|
||||
AC_CHECK_PROG(MAKER, gmake, gmake, make)
|
||||
AC_PATH_PROG(GMAKE,gmake)
|
||||
@@ -93,10 +82,163 @@ AC_CHECK_LIB(socket, socket,
|
||||
AC_CHECK_LIB(nsl, inet_ntoa,
|
||||
[IRCDLIBS="$IRCDLIBS-lnsl "
|
||||
INETLIB="-lnsl"])
|
||||
AC_CHECK_LIB(crypto, RAND_egd,
|
||||
AC_DEFINE(HAVE_RAND_EGD, 1, [Define if the libcrypto has RAND_egd]))
|
||||
|
||||
AC_SUBST(IRCDLIBS)
|
||||
AC_SUBST(MKPASSWDLIBS)
|
||||
|
||||
dnl HARDENING START
|
||||
dnl This is taken from https://github.com/kmcallister/autoharden
|
||||
dnl With some very small modifications (to remove C++ checking for instance)
|
||||
# We want to check for compiler flag support, but there is no way to make
|
||||
# clang's "argument unused" warning fatal. So we invoke the compiler through a
|
||||
# wrapper script that greps for this message.
|
||||
saved_CC="$CC"
|
||||
saved_CXX="$CXX"
|
||||
saved_LD="$LD"
|
||||
flag_wrap="$srcdir/extras/wrap-compiler-for-flag-check"
|
||||
CC="$flag_wrap $CC"
|
||||
CXX="$flag_wrap $CXX"
|
||||
LD="$flag_wrap $LD"
|
||||
|
||||
# We use the same hardening flags for C and C++. We must check that each flag
|
||||
# is supported by both compilers.
|
||||
AC_DEFUN([check_cc_cxx_flag],
|
||||
[AC_LANG_PUSH(C)
|
||||
AX_CHECK_COMPILE_FLAG([$1],
|
||||
[AC_LANG_PUSH(C)
|
||||
AX_CHECK_COMPILE_FLAG([$1], [$2], [$3], [-Werror $4])
|
||||
AC_LANG_POP(C)],
|
||||
[$3], [-Werror $4])
|
||||
AC_LANG_POP(C)])
|
||||
|
||||
AC_DEFUN([check_link_flag],
|
||||
[AX_CHECK_LINK_FLAG([$1], [$2], [$3], [-Werror $4])])
|
||||
|
||||
AC_ARG_ENABLE([hardening],
|
||||
[AS_HELP_STRING([--enable-hardening],
|
||||
[Enable compiler and linker options to frustrate memory corruption exploits @<:@yes@:>@])],
|
||||
[hardening="$enableval"],
|
||||
[hardening="yes"])
|
||||
|
||||
HARDEN_CFLAGS=""
|
||||
HARDEN_LDFLAGS=""
|
||||
AS_IF([test x"$hardening" != x"no"], [
|
||||
check_cc_cxx_flag([-fno-strict-overflow], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow"])
|
||||
|
||||
# This one will likely succeed, even on platforms where it does nothing.
|
||||
check_cc_cxx_flag([-D_FORTIFY_SOURCE=2], [HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2"])
|
||||
|
||||
check_cc_cxx_flag([-fstack-protector-all],
|
||||
[check_link_flag([-fstack-protector-all],
|
||||
[HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-protector-all"
|
||||
check_cc_cxx_flag([-Wstack-protector], [HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector"],
|
||||
[], [-fstack-protector-all])
|
||||
check_cc_cxx_flag([--param ssp-buffer-size=1], [HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1"],
|
||||
[], [-fstack-protector-all])])])
|
||||
|
||||
# At the link step, we might want -pie (GCC) or -Wl,-pie (Clang on OS X)
|
||||
#
|
||||
# The linker checks also compile code, so we need to include -fPIE as well.
|
||||
check_cc_cxx_flag([-fPIE],
|
||||
[check_link_flag([-fPIE -pie],
|
||||
[HARDEN_BINCFLAGS="-fPIE"
|
||||
HARDEN_BINLDFLAGS="-pie"],
|
||||
[check_link_flag([-fPIE -Wl,-pie],
|
||||
[HARDEN_BINCFLAGS="-fPIE"
|
||||
HARDEN_BINLDFLAGS="-Wl,-pie"])])])
|
||||
|
||||
check_link_flag([-Wl,-z,relro],
|
||||
[HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,relro"
|
||||
check_link_flag([-Wl,-z,now], [HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,now"])])])
|
||||
AC_SUBST([HARDEN_CFLAGS])
|
||||
AC_SUBST([HARDEN_LDFLAGS])
|
||||
AC_SUBST([HARDEN_BINCFLAGS])
|
||||
AC_SUBST([HARDEN_BINLDFLAGS])
|
||||
|
||||
# End of flag tests.
|
||||
CC="$saved_CC"
|
||||
CXX="$saved_CXX"
|
||||
LD="$saved_LD"
|
||||
dnl HARDENING END
|
||||
|
||||
dnl UnrealIRCd might not be strict-aliasing safe at this time
|
||||
check_cc_cxx_flag([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"])
|
||||
|
||||
dnl Previously -funsigned-char was in a config check. It would always
|
||||
dnl be enabled with gcc and clang. We now unconditionally enable it,
|
||||
dnl skipping the check. This will cause an error if someone uses a
|
||||
dnl non-gcc/non-clang compiler that does not support -funsigned-char
|
||||
dnl which is good. After all, we really depend on it.
|
||||
dnl UnrealIRCd should never be compiled without char being unsigned.
|
||||
CFLAGS="$CFLAGS -funsigned-char"
|
||||
|
||||
dnl Compiler -W checks...
|
||||
|
||||
dnl We should be able to turn this on unconditionally:
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
|
||||
dnl More warnings (if the compiler supports it):
|
||||
check_cc_cxx_flag([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
|
||||
check_cc_cxx_flag([-Waggregate-return], [CFLAGS="$CFLAGS -Waggregate-return"])
|
||||
dnl The following few are more experimental, if they have false positives we'll have
|
||||
dnl to disable them:
|
||||
dnl Can't use this, too bad: check_cc_cxx_flag([-Wlogical-op], [CFLAGS="$CFLAGS -Wlogical-op"])
|
||||
check_cc_cxx_flag([-Wduplicated-cond], [CFLAGS="$CFLAGS -Wduplicated-cond"])
|
||||
check_cc_cxx_flag([-Wduplicated-branches], [CFLAGS="$CFLAGS -Wduplicated-branches"])
|
||||
|
||||
dnl And now to filter out certain warnings:
|
||||
dnl [!] NOTE REGARDING THE check_cc_cxx_flag used by these:
|
||||
dnl We check for the -Woption even though we are going to use -Wno-option.
|
||||
dnl This is due to the following (odd) gcc behavior:
|
||||
dnl "When an unrecognized warning option is requested (e.g.,
|
||||
dnl -Wunknown-warning), GCC emits a diagnostic stating that the option is not
|
||||
dnl recognized. However, if the -Wno- form is used, the behavior is slightly
|
||||
dnl different: no diagnostic is produced for -Wno-unknown-warning unless
|
||||
dnl other diagnostics are being produced. This allows the use of new -Wno-
|
||||
dnl options with old compilers, but if something goes wrong, the compiler
|
||||
dnl warns that an unrecognized option is present."
|
||||
dnl Since we don't want to use any unrecognized -Wno-option, we test for
|
||||
dnl -Woption instead.
|
||||
|
||||
dnl Pointer signedness warnings are really a pain and 99.9% of the time
|
||||
dnl they are of absolutely no use whatsoever. IMO the person who decided
|
||||
dnl to enable this without -Wall should be shot on sight.
|
||||
check_cc_cxx_flag([-Wpointer-sign], [CFLAGS="$CFLAGS -Wno-pointer-sign"])
|
||||
|
||||
dnl This is purely for charsys.c... I like it so we can easily read
|
||||
dnl this for non-utf8. We can remove it once we ditch non-utf8 some day
|
||||
dnl of course, or decide to ignore me and encode them.
|
||||
check_cc_cxx_flag([-Winvalid-source-encoding], [CFLAGS="$CFLAGS -Wno-invalid-source-encoding"])
|
||||
|
||||
check_cc_cxx_flag([-Wformat-zero-length], [CFLAGS="$CFLAGS -Wno-format-zero-length"])
|
||||
|
||||
check_cc_cxx_flag([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"])
|
||||
|
||||
dnl While it can be useful to occasionally to compile with warnings about
|
||||
dnl unused variables and parameters, we often 'think ahead' when coding things
|
||||
dnl so they may be useless now but not later. Similarly, for variables, we
|
||||
dnl don't always care about a variable that may still be present in a build
|
||||
dnl without DEBUGMODE. Unused variables are optimized out anyway.
|
||||
check_cc_cxx_flag([-Wunused], [CFLAGS="$CFLAGS -Wno-unused"])
|
||||
check_cc_cxx_flag([-Wunused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"])
|
||||
|
||||
dnl We use this and this warning is meaningless since 'char' is always unsigned
|
||||
dnl in UnrealIRCd compiles (-funsigned-char).
|
||||
check_cc_cxx_flag([-Wchar-subscripts], [CFLAGS="$CFLAGS -Wno-char-subscripts"])
|
||||
|
||||
check_cc_cxx_flag([-Wsign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"])
|
||||
|
||||
dnl Don't warn about empty body, we use this, eg via Debug(()) or in if's.
|
||||
check_cc_cxx_flag([-Wempty-body], [CFLAGS="$CFLAGS -Wno-empty-body"])
|
||||
|
||||
dnl This one fails with ircstrdup(var, staticstring)
|
||||
dnl Shame we have to turn it off completely...
|
||||
check_cc_cxx_flag([-Waddress], [CFLAGS="$CFLAGS -Wno-address"])
|
||||
|
||||
dnl End of -W... compiler checks.
|
||||
|
||||
|
||||
dnl module checking based on Hyb7's module checking code
|
||||
AC_DEFUN([AC_ENABLE_DYN],
|
||||
[
|
||||
@@ -107,11 +249,13 @@ AC_DEFINE(STATIC_LINKING)
|
||||
])])
|
||||
|
||||
hold_cflags=$CFLAGS
|
||||
CFLAGS="$CFLAGS -export-dynamic"
|
||||
DYNAMIC_LDFLAGS=""
|
||||
CFLAGS="$CFLAGS -Wl,-export-dynamic"
|
||||
AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [
|
||||
AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)])
|
||||
if test "$ac_cv_export_dynamic" = "no"; then
|
||||
CFLAGS=$hold_cflags
|
||||
if test "$ac_cv_export_dynamic" = "yes"; then
|
||||
DYNAMIC_LDFLAGS="-Wl,-export-dynamic"
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[
|
||||
@@ -119,7 +263,7 @@ if test "$ac_cv_prog_gcc" = "yes"; then
|
||||
ac_cv_pic="-fPIC -DPIC -shared"
|
||||
case `uname -s` in
|
||||
Darwin*[)]
|
||||
ac_cv_pic="-bundle -flat_namespace -undefined suppress"
|
||||
ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress"
|
||||
;;
|
||||
HP-UX*[)]
|
||||
ac_cv_pic="-fPIC"
|
||||
@@ -152,51 +296,31 @@ if test "$ac_cv_underscore" = "yes"; then
|
||||
AC_DEFINE([UNDERSCORE], [], [Define if your system prepends an underscore to symbols])
|
||||
fi
|
||||
|
||||
MODULEFLAGS=$ac_cv_pic
|
||||
MODULEFLAGS="$ac_cv_pic $DYNAMIC_LDFLAGS"
|
||||
dnl DYNAMIC_LINKING is not meant to be defined in include/setup.h, it's
|
||||
dnl defined in the Makefiles using -D. Having it defined globally will
|
||||
dnl only cause braindamage and symbol collisions :-D.
|
||||
dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically. (Dynamic linking is the only supported method of linking atm)])
|
||||
])
|
||||
AC_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([
|
||||
|
||||
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);
|
||||
int s = socket(AF_INET6, SOCK_STREAM, 0);
|
||||
exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */
|
||||
}
|
||||
],
|
||||
[ac_cv_ip6=yes],
|
||||
[ac_cv_ip6=no])
|
||||
])
|
||||
if test "$ac_cv_ip6" = "no"; then
|
||||
AC_MSG_ERROR([Your system does not support IPv6 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_cv_ip6=yes],
|
||||
[ac_cv_ip6=no])
|
||||
])
|
||||
if test "$ac_cv_ip6" = "no"; then
|
||||
AC_MSG_ERROR([Your system does not support IPv6])
|
||||
fi
|
||||
LIBS="$save_libs"
|
||||
|
||||
AC_CHECK_HEADER(sys/param.h,
|
||||
AC_DEFINE([PARAMH], [], [Define if you have the <sys/param.h> header file.]))
|
||||
@@ -228,6 +352,7 @@ AC_TYPE_SIZE_T
|
||||
AC_TYPE_INTPTR_T
|
||||
|
||||
AC_HEADER_TIME
|
||||
AC_HEADER_SYS_WAIT
|
||||
AC_STRUCT_TM
|
||||
AC_TYPE_UID_T
|
||||
unreal_CHECK_TYPE_SIZES
|
||||
@@ -325,7 +450,6 @@ 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,
|
||||
@@ -354,26 +478,7 @@ 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_CHECK_FUNCS([setrlimit])
|
||||
AC_FUNC_VPRINTF
|
||||
AC_CHECK_FUNCS([gettimeofday],
|
||||
[AC_DEFINE([GETTIMEOFDAY], [], [Define if you have gettimeofday])],
|
||||
@@ -445,24 +550,18 @@ 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_SUBST(DYNAMIC_LDFLAGS)
|
||||
AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])],
|
||||
[AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])],
|
||||
[AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])])
|
||||
AC_ARG_WITH([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
|
||||
@@ -470,27 +569,105 @@ configuration files])],
|
||||
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])
|
||||
AC_ARG_WITH(bindir, [AS_HELP_STRING([--with-bindir=path],[Specify the directory for the unrealircd binary])],
|
||||
[AC_DEFINE_UNQUOTED([BINDIR], ["$withval"], [Define the directory where the unrealircd binary is located])
|
||||
BINDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([SPATH], ["`pwd`/src/ircd"], [Define the location of the executable])
|
||||
BINDIR="`pwd`/src/ircd"])
|
||||
[AC_DEFINE_UNQUOTED([BINDIR], ["$HOME/unrealircd/bin"], [Define the directory where the unrealircd binary is located])
|
||||
BINDIR="$HOME/unrealircd/bin"])
|
||||
|
||||
AC_ARG_WITH(scriptdir, [AS_HELP_STRING([--with-scriptdir=path],[Specify the directory for the unrealircd start-stop script])],
|
||||
[AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$withval"], [Define the directory where the unrealircd start stop scripts is located])
|
||||
SCRIPTDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$HOME/unrealircd"], [Define the directory where the unrealircd start stop scripts is located])
|
||||
SCRIPTDIR="$HOME/unrealircd"])
|
||||
|
||||
AC_ARG_WITH(confdir, [AS_HELP_STRING([--with-confdir=path],[Specify the directory where configuration files are stored])],
|
||||
[AC_DEFINE_UNQUOTED([CONFDIR], ["$withval"], [Define the location of the configuration files])
|
||||
CONFDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([CONFDIR], ["$HOME/unrealircd/conf"], [Define the location of the configuration files])
|
||||
CONFDIR="$HOME/unrealircd/conf"])
|
||||
|
||||
AC_ARG_WITH(modulesdir, [AS_HELP_STRING([--with-modulesdir=path],[Specify the directory for loadable modules])],
|
||||
[AC_DEFINE_UNQUOTED([MODULESDIR], ["$withval"], [Define the location of the modules])
|
||||
MODULESDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([MODULESDIR], ["$HOME/unrealircd/modules"], [Define the location of the modules])
|
||||
MODULESDIR="$HOME/unrealircd/modules"])
|
||||
|
||||
AC_ARG_WITH(logdir, [AS_HELP_STRING([--with-logdir=path],[Specify the directory where log files are stored])],
|
||||
[AC_DEFINE_UNQUOTED([LOGDIR], ["$withval"], [Define the location of the log files])
|
||||
LOGDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([LOGDIR], ["$HOME/unrealircd/logs"], [Define the location of the log files])
|
||||
LOGDIR="$HOME/unrealircd/logs"])
|
||||
|
||||
AC_ARG_WITH(cachedir, [AS_HELP_STRING([--with-cachedir=path],[Specify the directory where cached files are stored])],
|
||||
[AC_DEFINE_UNQUOTED([CACHEDIR], ["$withval"], [Define the location of the cached remote include files])
|
||||
CACHEDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([CACHEDIR], ["$HOME/unrealircd/cache"], [Define the location of the cached remote include files])
|
||||
CACHEDIR="$HOME/unrealircd/cache"])
|
||||
|
||||
AC_ARG_WITH(tmpdir, [AS_HELP_STRING([--with-tmpdir=path],[Specify the directory where private temporary files are stored. Should not be readable or writable by others, so not /tmp!!])],
|
||||
[AC_DEFINE_UNQUOTED([TMPDIR], ["$withval"], [Define the location of private temporary files])
|
||||
TMPDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([TMPDIR], ["$HOME/unrealircd/tmp"], [Define the location of private temporary files])
|
||||
TMPDIR="$HOME/unrealircd/tmp"])
|
||||
|
||||
AC_ARG_WITH(datadir, [AS_HELP_STRING([--with-datadir=path],[Specify the directory where permanent data is stored])],
|
||||
[AC_DEFINE_UNQUOTED([PERMDATADIR], ["$withval"], [Define the location of permanent data files])
|
||||
PERMDATADIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([DATADIR], ["$HOME/unrealircd/data"], [Define the location of permanent data files])
|
||||
PERMDATADIR="$HOME/unrealircd/data"])
|
||||
|
||||
AC_ARG_WITH(docdir, [AS_HELP_STRING([--with-docdir=path],[Specify the directory where documentation is stored])],
|
||||
[AC_DEFINE_UNQUOTED([DOCDIR], ["$withval"], [Define the location of the documentation])
|
||||
DOCDIR="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([DOCDIR], ["$HOME/unrealircd/doc"], [Define the location of the documentation])
|
||||
DOCDIR="$HOME/unrealircd/doc"])
|
||||
|
||||
AC_ARG_WITH(pidfile, [AS_HELP_STRING([--with-pidfile=path],[Specify the path of the pid file])],
|
||||
[AC_DEFINE_UNQUOTED([PIDFILE], ["$withval"], [Define the path of the pid file])
|
||||
PIDFILE="$withval"],
|
||||
[AC_DEFINE_UNQUOTED([PIDFILE], ["$HOME/unrealircd/data/unrealircd.pid"], [Define the path of the pid file])
|
||||
PIDFILE="$HOME/unrealircd/data/unrealircd.pid"])
|
||||
|
||||
dnl Ensure that this “feature” can be disabled as it makes it harder to package unrealircd.
|
||||
dnl Users have always been able to specify “./configure LDFLAGS=-Wl,-rpath,/path/to/blah”—binki
|
||||
AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored. Disable when building a package for a distro])],
|
||||
[],
|
||||
[with_privatelibdir="yes"])
|
||||
AS_IF([test "x$with_privatelibdir" = "xno"],
|
||||
[PRIVATELIBDIR=],
|
||||
[test "x$with_privatelibdir" = "xyes"],
|
||||
[PRIVATELIBDIR="$HOME/unrealircd/lib"],
|
||||
[PRIVATELIBDIR="$with_privatelibdir"])
|
||||
AS_IF([test "x$PRIVATELIBDIR" = "x"],
|
||||
[LDFLAGS_PRIVATELIBS=""],
|
||||
[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$PRIVATELIBDIR"], [Define the location of private libraries])
|
||||
LDFLAGS_PRIVATELIBS="-Wl,-rpath,$PRIVATELIBDIR"
|
||||
LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
|
||||
export LDFLAGS])
|
||||
|
||||
AC_SUBST(BINDIR)
|
||||
AC_SUBST(SCRIPTDIR)
|
||||
AC_SUBST(CONFDIR)
|
||||
AC_SUBST(MODULESDIR)
|
||||
AC_SUBST(LOGDIR)
|
||||
AC_SUBST(CACHEDIR)
|
||||
AC_SUBST(TMPDIR)
|
||||
dnl Why o why PERMDATADIR and not DATADIR you ask?
|
||||
dnl well, Because DATADIR conflicts with the Windows SDK header files.. amazing.
|
||||
AC_SUBST(PERMDATADIR)
|
||||
AC_SUBST(DOCDIR)
|
||||
AC_SUBST(PIDFILE)
|
||||
AC_SUBST(LDFLAGS_PRIVATELIBS)
|
||||
|
||||
AC_ARG_WITH(maxconnections, [AS_HELP_STRING([--with-maxconnections=size], [Specify the max file descriptors to use])],
|
||||
[ac_fd=$withval],
|
||||
[ac_fd=0])
|
||||
AC_DEFINE_UNQUOTED([MAXCONNECTIONS_REQUEST], [$ac_fd], [Set to the maximum number of connections you want])
|
||||
|
||||
AC_ARG_ENABLE([prefixaq],
|
||||
[AS_HELP_STRING([--disable-prefixaq],[Enable chanadmin (+a) and chanowner (+q) prefixes])],
|
||||
[AS_HELP_STRING([--disable-prefixaq],[Disable chanadmin (+a) and chanowner (+q) prefixes])],
|
||||
[],
|
||||
[enable_prefixaq=yes])
|
||||
AS_IF([test $enable_prefixaq = "yes"],
|
||||
@@ -500,9 +677,6 @@ 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])])])
|
||||
@@ -518,21 +692,32 @@ AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [
|
||||
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(tre, [AS_HELP_STRING([--without-tre], [Do not use the old deprecated TRE regex library])], [with_tre=no], [with_tre=yes])
|
||||
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])
|
||||
AC_ARG_WITH(system-pcre2, [AS_HELP_STRING([--with-system-pcre2], [Use the system pcre2 package instead of bundled, discovered using pkg-config])], [], [with_system_pcre2=no])
|
||||
AC_ARG_WITH(system-argon2, [AS_HELP_STRING([--without-system-argon2], [Use bundled version instead of system argon2 library. Normally autodetected via pkg-config])], [], [with_system_argon2=yes])
|
||||
AC_ARG_WITH(system-cares, [AS_HELP_STRING([--without-system-cares], [Use bundled version instead of system c-ares. Normally autodetected via pkg-config.])], [], [with_system_cares=yes])
|
||||
CHECK_SSL
|
||||
CHECK_ZLIB
|
||||
CHECK_SSL_CTX_SET1_CURVES_LIST
|
||||
CHECK_SSL_CTX_SET_MIN_PROTO_VERSION
|
||||
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_ARG_ENABLE([werror],
|
||||
[AS_HELP_STRING([--enable-werror],
|
||||
[Turn compilation warnings into errors (-Werror)])],
|
||||
[ac_cv_werror="$enableval"],
|
||||
[ac_cv_werror="no"])
|
||||
|
||||
AC_ARG_ENABLE([asan],
|
||||
[AS_HELP_STRING([--enable-asan],
|
||||
[Enable address sanitizer, not recommended for production servers!])],
|
||||
[ac_cv_asan="$enableval"],
|
||||
[ac_cv_asan="no"])
|
||||
|
||||
AC_MSG_CHECKING([if FD_SETSIZE is large enough to allow $ac_fd file descriptors])
|
||||
AC_COMPILE_IFELSE([
|
||||
#include <sys/types.h>
|
||||
@@ -557,14 +742,31 @@ case `uname -s` in
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_CHECK_FUNCS([poll],
|
||||
AC_DEFINE([HAVE_POLL], [], [Define if you have poll]))
|
||||
AC_CHECK_FUNCS([epoll_create epoll_ctl epoll_wait],
|
||||
AC_DEFINE([HAVE_EPOLL], [], [Define if you have epoll]))
|
||||
AC_CHECK_FUNCS([kqueue kevent],
|
||||
AC_DEFINE([HAVE_KQUEUE], [], [Define if you have kqueue]))
|
||||
|
||||
dnl c-ares needs PATH_SEPARATOR set or it will
|
||||
dnl fail on certain solaris boxes. We might as
|
||||
dnl well set it here.
|
||||
export PATH_SEPARATOR
|
||||
|
||||
AS_IF([test "x$with_tre" = "xyes"],[
|
||||
AC_DEFINE([USE_TRE], [], [Use the old deprecated TRE regex library])
|
||||
])
|
||||
|
||||
AS_IF([test "x$with_system_tre" = "xno"],[
|
||||
AS_IF([test "x$with_tre" = "xyes"],[
|
||||
compile_tre="yes"
|
||||
])
|
||||
])
|
||||
|
||||
AS_IF([test "x$compile_tre" = "xyes"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW TRE RELEASE!
|
||||
tre_version="0.8.0"
|
||||
tre_version="0.8.0-git"
|
||||
AC_MSG_RESULT(extracting TRE regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
@@ -581,7 +783,7 @@ else
|
||||
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
|
||||
./configure --disable-agrep --enable-shared --disable-system-abi --disable-wchar --disable-multibyte --prefix=$cur_dir/extras/regexp --libdir=$PRIVATELIBDIR || exit 1
|
||||
AC_MSG_RESULT(compiling TRE regex library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing TRE regex library)
|
||||
@@ -590,27 +792,114 @@ 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,']`"])
|
||||
[TRE_LIBS="`$ac_cv_path_PKGCONFIG --libs tre.pc`"])
|
||||
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"])
|
||||
[TRE_LIBS="$PRIVATELIBDIR/libtre.so"])
|
||||
AC_SUBST(TRE_LIBS)
|
||||
cd $cur_dir
|
||||
],[
|
||||
])
|
||||
|
||||
AS_IF([test "x$with_system_tre" = "xyes"],[
|
||||
dnl use pkgconfig for tre:
|
||||
PKG_CHECK_MODULES([TRE], tre >= 0.7.5)
|
||||
])
|
||||
|
||||
AS_IF([test "x$with_system_cares" = "xno"],[
|
||||
AS_IF([test "x$with_system_pcre2" = "xno"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW PCRE2 RELEASE!
|
||||
pcre2_version="10.32"
|
||||
AC_MSG_RESULT(extracting PCRE2 regex library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old pcre2 directory to force a recompile...
|
||||
dnl and remove its installation prefix just to clean things up.
|
||||
rm -rf pcre2-$pcre2_version pcre2
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz pcre2.tar.gz
|
||||
else
|
||||
cp pcre2.tar.gz pcre2.tar.gz.bak
|
||||
gunzip -f pcre2.tar.gz
|
||||
cp pcre2.tar.gz.bak pcre2.tar.gz
|
||||
tar xf pcre2.tar
|
||||
fi
|
||||
AC_MSG_RESULT(configuring PCRE2 regex library)
|
||||
cd pcre2-$pcre2_version
|
||||
./configure --enable-jit --enable-shared --disable-unicode --prefix=$cur_dir/extras/pcre2 --libdir=$PRIVATELIBDIR || exit 1
|
||||
AC_MSG_RESULT(compiling PCRE2 regex library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing PCRE2 regex library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
PCRE2_CFLAGS="-I$cur_dir/extras/pcre2/include"
|
||||
AC_SUBST(PCRE2_CFLAGS)
|
||||
|
||||
PCRE2_LIBS=
|
||||
dnl See c-ares's compilation section for more info on this hack.
|
||||
dnl ensure that we're linking against the bundled version of pcre2
|
||||
dnl (we only reach this code if linking against the bundled version is desired).
|
||||
AS_IF([test -n "$ac_cv_path_PKGCONFIG"],
|
||||
[PCRE2_LIBS="`$ac_cv_path_PKGCONFIG --libs libpcre2-8.pc`"])
|
||||
dnl For when pkg-config isn't available -- or for when pkg-config
|
||||
dnl doesn't see the libpcre2-8.pc file somehow... (#3982)
|
||||
AS_IF([test -z "$PCRE2_LIBS"],
|
||||
[PCRE2_LIBS="$PRIVATELIBDIR/libpcre2-8.so"])
|
||||
AC_SUBST(PCRE2_LIBS)
|
||||
cd $cur_dir
|
||||
],[
|
||||
dnl use pkgconfig for pcre2:
|
||||
PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00)
|
||||
])
|
||||
|
||||
dnl Use system argon2 when available, unless --without-system-argon2
|
||||
has_system_argon2="no"
|
||||
AS_IF([test "x$with_system_argon2" = "xyes"],[
|
||||
PKG_CHECK_MODULES([ARGON2], [libargon2 >= 0~20161029],[has_system_argon2=yes
|
||||
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libargon2*])],[has_system_argon2=no])])
|
||||
|
||||
AS_IF([test "$has_system_argon2" = "no"],[
|
||||
dnl REMEMBER TO CHANGE WITH A NEW ARGON2 RELEASE!
|
||||
argon2_version="20181209"
|
||||
AC_MSG_RESULT(extracting Argon2 library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
dnl remove old argon2 directory to force a recompile...
|
||||
dnl and remove its installation prefix just to clean things up.
|
||||
rm -rf argon2-$argon2_version argon2
|
||||
if test "x$ac_cv_path_GUNZIP" = "x" ; then
|
||||
tar xfz argon2-$argon2_version.tar.gz
|
||||
else
|
||||
cp argon2-$argon2_version.tar.gz argon2-$argon2_version.tar.gz.bak
|
||||
gunzip -f argon2-$argon2_version.tar.gz
|
||||
cp argon2-$argon2_version.tar.gz.bak argon2-$argon2_version.tar.gz
|
||||
tar xf argon2-$argon2_version.tar
|
||||
fi
|
||||
AC_MSG_RESULT(compiling Argon2 library)
|
||||
cd argon2-$argon2_version
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing Argon2 library)
|
||||
$ac_cv_prog_MAKER install PREFIX=$cur_dir/extras/argon2 || exit 1
|
||||
# We need to manually copy the libs to PRIVATELIBDIR because
|
||||
# there is no way to tell make install in libargon2 to do so.
|
||||
cp -av $cur_dir/extras/argon2/lib/* $PRIVATELIBDIR/
|
||||
ARGON2_CFLAGS="-I$cur_dir/extras/argon2/include"
|
||||
AC_SUBST(ARGON2_CFLAGS)
|
||||
ARGON2_LIBS="-L$PRIVATELIBDIR -largon2"
|
||||
AC_SUBST(ARGON2_LIBS)
|
||||
cd $cur_dir
|
||||
])
|
||||
|
||||
dnl Use system c-ares when available, unless --without-system-cares.
|
||||
has_system_cares="no"
|
||||
AS_IF([test "x$with_system_cares" = "xyes"],[
|
||||
PKG_CHECK_MODULES([CARES], libcares >= 1.6.0,[has_system_cares=yes
|
||||
AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libcares*])],[has_system_cares=no])])
|
||||
|
||||
AS_IF([test "$has_system_cares" = "no"], [
|
||||
dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
|
||||
dnl NOTE: when changing this here, ALSO change it in ./curlinstall
|
||||
dnl NOTE: when changing this here, ALSO change it in extras/curlinstall
|
||||
dnl and in the comment in this file around line 400!
|
||||
cares_version="1.9.1"
|
||||
cares_version="1.15.0"
|
||||
AC_MSG_RESULT(extracting c-ares resolver library)
|
||||
cur_dir=`pwd`
|
||||
cd extras
|
||||
@@ -626,20 +915,24 @@ else
|
||||
fi
|
||||
AC_MSG_RESULT(configuring c-ares library)
|
||||
cd c-ares-$cares_version
|
||||
./configure --prefix=$cur_dir/extras/c-ares --disable-shared || exit 1
|
||||
save_cflags="$CFLAGS"
|
||||
CFLAGS="$orig_cflags"
|
||||
export CFLAGS
|
||||
./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared || exit 1
|
||||
CFLAGS="$save_cflags"
|
||||
AC_MSG_RESULT(compiling c-ares resolver library)
|
||||
$ac_cv_prog_MAKER || exit 1
|
||||
AC_MSG_RESULT(installing c-ares resolver library)
|
||||
$ac_cv_prog_MAKER install || exit 1
|
||||
CARES_CFLAGS="-I$cur_dir/extras/c-ares/include"
|
||||
AC_SUBST(CARES_CFLAGS)
|
||||
CARES_LIBS="-L../extras/c-ares/lib"
|
||||
CARES_LIBS="-L$PRIVATELIBDIR"
|
||||
|
||||
dnl Set default library parameters for when pkg-config is not available
|
||||
dnl Ugly cd'ing out of extras/c-ares-xxx ;)
|
||||
dnl Note: must be a full path, not relative path.
|
||||
cd ../..
|
||||
CARESLIBSALT="`pwd`/extras/c-ares/lib/libcares.a"
|
||||
CARESLIBSALT="$PRIVATELIBDIR/libcares.so"
|
||||
cd -
|
||||
case `uname -s` in
|
||||
*FreeBSD*)
|
||||
@@ -654,35 +947,54 @@ case `uname -s` in
|
||||
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.
|
||||
dnl from above (also if pkg-config returns an empty result).
|
||||
if test "x$ac_cv_path_PKGCONFIG" = "x" ; then
|
||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
||||
else
|
||||
CARES_LIBSPRE="$CARES_LIBS"
|
||||
dnl the sed expression forces an absolute path to the .a file to be generated
|
||||
dnl the sed expression forces an absolute path to the .so file to be generated
|
||||
dnl because this is what libtool would do. If this wasn't done and /usr/lib*/libcares.so
|
||||
dnl exists, then unrealircd would still try to link against the system c-ares.
|
||||
dnl The [] quotation is needed because the sed expression has [] in it.
|
||||
[CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --static --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.a,'`"]
|
||||
[CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.so,'`"]
|
||||
if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then
|
||||
CARES_LIBS="$CARES_LIBS $CARESLIBSALT"
|
||||
fi
|
||||
fi
|
||||
AC_SUBST(CARES_LIBS)
|
||||
cd $cur_dir
|
||||
],[
|
||||
dnl use pkg-config for system c-ares:
|
||||
PKG_CHECK_MODULES([CARES], libcares >= 1.6.0)
|
||||
])
|
||||
|
||||
AX_PTHREAD()
|
||||
|
||||
CHECK_LIBCURL
|
||||
|
||||
UNRLINCDIR="`pwd`/include"
|
||||
|
||||
dnl Moved to the very end to ensure it doesn't affect any libs or tests.
|
||||
if test "$ac_cv_werror" = "yes" ; then
|
||||
CFLAGS="$CFLAGS -Werror"
|
||||
fi
|
||||
|
||||
dnl Address sanitizer build
|
||||
if test "$ac_cv_asan" = "yes" ; then
|
||||
CFLAGS="$CFLAGS -O0 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD"
|
||||
IRCDLIBS="-fsanitize=address $IRCDLIBS"
|
||||
fi
|
||||
|
||||
AC_SUBST(IRCDLIBS)
|
||||
|
||||
AC_SUBST(UNRLINCDIR)
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
src/Makefile
|
||||
src/modules/Makefile
|
||||
unreal
|
||||
ircdcron/ircdchk
|
||||
ircdcron/ircd.cron])
|
||||
src/modules/chanmodes/Makefile
|
||||
src/modules/usermodes/Makefile
|
||||
src/modules/snomasks/Makefile
|
||||
src/modules/extbans/Makefile
|
||||
src/modules/cap/Makefile
|
||||
src/modules/third/Makefile
|
||||
unrealircd])
|
||||
AC_OUTPUT
|
||||
chmod 0700 unreal
|
||||
chmod 0700 ircdcron/ircdchk
|
||||
chmod 0700 unrealircd
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/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' \
|
||||
-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"
|
||||
-4074
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
Although UnrealIRCd is a free program, we do put a great deal of time,
|
||||
effort, and money into keeping UnrealIRCd alive. If you like UnrealIRCd and
|
||||
want to support us then please consider making a donation.
|
||||
|
||||
PayPal Donation Link: https://unrealircd.org/index/donations
|
||||
|
||||
If you don't want to use PayPal, or you want to donate something other than
|
||||
money, then please contact Syzop (syzop@unrealircd.com).
|
||||
|
||||
All those who donate at least a certain minimum amount will have their name
|
||||
and/or company listed in /CREDITS and will be listed on the website.
|
||||
|
||||
Thank you for your support,
|
||||
The UnrealIRCd Team
|
||||
@@ -0,0 +1,66 @@
|
||||
UnrealIRCd 4.2.4.1 Release Notes
|
||||
=================================
|
||||
|
||||
This version, 4.2.4.1, fixes an issue with Debian 10. On Debian 10 the
|
||||
list of permitted SSL/TLS protocols was ignored (set::ssl::protocols).
|
||||
Other than that, set::ssl::outdated-protocols and set::ssl::outdated-ciphers
|
||||
are now configurable (rarely needed, though).
|
||||
|
||||
Below are the release notes of previous release, 4.2.4.
|
||||
|
||||
==[ 4.2.4 release notes ]==
|
||||
This release fixes a crash issue if UnrealIRCd is configured to use utf8 or
|
||||
chinese character sets in set::allowed-nickchars. This is not the default.
|
||||
We don't expect many users to run their IRCd with this enabled, as the utf8
|
||||
support was tagged as experimental and the chinese/gbk implementation is
|
||||
incomplete.
|
||||
|
||||
In addition to the bug fix from above, this release also contains a number
|
||||
of other fixes and enhancements. In particular there were some Windows
|
||||
fixes and the reputation and connthrottle modules are now working better.
|
||||
|
||||
Enhancements:
|
||||
* Improve server linking error messages
|
||||
* Enhance WHOX to WHO auto-conversion for "WHO +s serv.er.name"
|
||||
|
||||
Major issues fixed:
|
||||
* A crash issue if using utf8 or chinese in set::allowed-nickchars.
|
||||
* The Windows version only accepted very few clients.
|
||||
* The Windows version should warn and not error if using old-style regex.
|
||||
* The Windows version did not save the reputation database.
|
||||
|
||||
Minor issues fixed:
|
||||
* The 'connthrottle' module incorrectly allowed 0 unknown users in when
|
||||
it was throttling, rather than the set rate.
|
||||
* The 'reputation' module did not show scores for remote users in /WHOIS,
|
||||
only after 5 minutes had passed.
|
||||
* Some users may have experienced a "Registration Timeout" error when
|
||||
connecting. This happened because their ident server accepted the TCP/IP
|
||||
connection but after that failed to respond to the ident request. We
|
||||
have now lowered set::ident::read-timeout to 15 seconds to fix this.
|
||||
* If successfully logged in using SASL then avoid an "You are already
|
||||
logged in" error message that could happen due to PASS forwarding.
|
||||
The message was harmless, but annoying in some setups.
|
||||
|
||||
Module coders / Developers:
|
||||
* If you are debugging or developing modules then we encourage you to
|
||||
use AddressSanitizer. This does come at a 10x performance slowdown
|
||||
and can consume a lot more memory, but it is very useful in tracing
|
||||
common C mistakes such as out of bounds read/writes, double frees,
|
||||
and so on. You will see exactly where a mistake was made.
|
||||
To use this, in the last ./Config question you answer: --enable-asan
|
||||
|
||||
IRC protocol:
|
||||
* No changes
|
||||
|
||||
Other changes:
|
||||
* Various HELPOP updates
|
||||
|
||||
Future versions:
|
||||
* We intend to change the default plaintext oper policy from 'warn' to 'deny'
|
||||
in the summer of 2019. This will deny /OPER when used from a non-SSL
|
||||
connection. For security, IRC Operators should really use SSL/TLS!
|
||||
|
||||
==[ CHANGES IN OLDER RELEASES ]==
|
||||
For changes in previous UnrealIRCd releases see doc/RELEASE-NOTES.old or
|
||||
https://raw.githubusercontent.com/unrealircd/unrealircd/unreal42/doc/RELEASE-NOTES.old
|
||||
File diff suppressed because it is too large
Load Diff
+35
-33
@@ -1,19 +1,19 @@
|
||||
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).
|
||||
1. When making a change, always add a small description in the commit log.
|
||||
Don't forget to mention the bug# and credit the reporter (if any).
|
||||
|
||||
2. If new files are made, 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.
|
||||
3. If you want to submit patches (f.e. if you don't have write access to
|
||||
the repository), then submit them to https://bugs.unrealircd.org/
|
||||
using "hg export" or "hg diff". Naturally include a clear description
|
||||
of what the change does.
|
||||
|
||||
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.
|
||||
* People must report bugs/feature requests to bugs.unrealircd.org and
|
||||
not on IRC, e-mail, etc.
|
||||
* That means other people can see the bug# and comment on it. This means
|
||||
discussion is easy to read back for each issue and not spread between
|
||||
several IRC logs.
|
||||
@@ -31,11 +31,15 @@ Rules about patches & modifications to UnrealIRCd
|
||||
|
||||
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
|
||||
3.2.x: 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.
|
||||
3.4.x: During the alpha & beta stage it is permitted to commit fixes
|
||||
and code cleanups / restructuring without any discussion.
|
||||
However in general, and in particular for new features, it is appreciated
|
||||
if there has been prior discussion on bugs.unrealircd.org (or by mail).
|
||||
|
||||
6. Regarding reidenting, restructuring or other code cleanups: please
|
||||
6. Regarding reidenting, restructuring or other major code cleanups: please
|
||||
discuss before doing so. The other devs might not agree with you on the
|
||||
particular cleanup you have in mind which would result in another
|
||||
clean-up-the-cleanup commit.
|
||||
@@ -49,22 +53,22 @@ Rules about patches & modifications to UnrealIRCd
|
||||
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.
|
||||
7. Prior to a 3.2.x 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.
|
||||
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.
|
||||
10. Coders must test their code before committing.
|
||||
|
||||
11. /*
|
||||
* These kind of comments
|
||||
@@ -98,24 +102,22 @@ Rules about patches & modifications to UnrealIRCd
|
||||
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.
|
||||
17. Be careful about overflows. Do not do any unchecked string copies.
|
||||
Instead of strcpy, strcat and sprintf/ircsprintf, use the following
|
||||
functions: strlcpy, strlcat, snprintf/ircnsprintf.
|
||||
If you are copying/writing character-by-character or word-by-word in a
|
||||
loop, be very sure about your size counting. Sometimes it's possible
|
||||
to avoid such code alltogether by just calling strlcat each time.
|
||||
|
||||
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.
|
||||
As mentioned earlier: use ircsnprintf, not snprintf (this is because
|
||||
ircsnprintf is optimized for simple strings like the ones we use).
|
||||
ircsnprintf calls snprintf when it finds a (non-simple) format specifier it
|
||||
can't handle. Simple format specifiers do not have prefixes other than
|
||||
h and l.
|
||||
|
||||
19. Initialize your structs and use the proper memory calls.
|
||||
In UnrealIRCd we use MyMalloc, MyMallocEx and MyFree (so not malloc/free).
|
||||
@@ -134,7 +136,7 @@ Rules about patches & modifications to UnrealIRCd
|
||||
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
|
||||
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
|
||||
|
||||
+2
-118
@@ -1,118 +1,2 @@
|
||||
==[ GENERAL GUIDELINES ]==
|
||||
First of all you need Microsoft Visual C++ (see below), compiling with
|
||||
cygwin is not supported.
|
||||
|
||||
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
|
||||
|
||||
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)
|
||||
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 ]==
|
||||
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).
|
||||
4. Compile the module with:
|
||||
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 <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 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.
|
||||
|
||||
==[ SYMBOL FILES ]==
|
||||
If you get something like this:
|
||||
|
||||
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
|
||||
|
||||
(note: the exact name of the symbol will vary!)
|
||||
|
||||
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]
|
||||
|
||||
So basically you just run 'nmake -f makefile.win32 SYMBOLFILE' and then restart
|
||||
compiling again.
|
||||
|
||||
==[ 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.
|
||||
For information on how to compile UnrealIRCd (modules) on Windows, see:
|
||||
https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
Unreal Internet Relay Chat Daemon
|
||||
Copyright (C) Carsten V. Munk 2000
|
||||
|
||||
NOTE: Those words are not meant to insult you (the user)
|
||||
but is meant to be a list of words so that the +G channel/user mode
|
||||
will work properly. You can easily modify this file at your will.
|
||||
If you got words to add to this file, please mail badwords@tspre.org
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
This is some filling space, scroll down to see the words
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
badword all { word "pussy"; };
|
||||
badword all { word "fuck"; };
|
||||
badword all { word "whore"; };
|
||||
badword all { word "slut"; };
|
||||
badword all { word "shit"; };
|
||||
badword all { word "asshole"; };
|
||||
badword all { word "bitch"; };
|
||||
badword all { word "cunt"; };
|
||||
badword all { word "vagina"; };
|
||||
badword all { word "penis"; };
|
||||
badword all { word "jackass"; };
|
||||
badword all { word "*fucker*"; };
|
||||
badword all { word "faggot"; };
|
||||
badword all { word "fag"; };
|
||||
badword all { word "horny"; };
|
||||
badword all { word "dickhead"; };
|
||||
badword all { word "sonuvabitch"; };
|
||||
badword all { word "*fuck*"; };
|
||||
badword all { word "tits"; };
|
||||
@@ -0,0 +1,509 @@
|
||||
/* Configuration file for UnrealIRCd 4
|
||||
*
|
||||
* Simply copy this file to your conf/ directory, call it
|
||||
* 'unrealircd.conf' and walk through it line by line (edit it!)
|
||||
*
|
||||
* Important: All lines, except the opening { line, end with an ;
|
||||
* including };. This is very important, if you miss a ; somewhere then
|
||||
* the configuration file parser will complain and your file will not
|
||||
* be processed correctly!
|
||||
* If this is your first experience with an UnrealIRCd configuration
|
||||
* file then we really recommend you to read a little about the syntax,
|
||||
* this only takes a few minutes and will help you a lot:
|
||||
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
||||
*
|
||||
* UnrealIRCd 4 documentation (very extensive!):
|
||||
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
*
|
||||
* Frequently Asked Questions:
|
||||
* https://www.unrealircd.org/docs/FAQ
|
||||
*
|
||||
*/
|
||||
|
||||
/* This is a comment, all text here is ignored (comment type #1) */
|
||||
// This is also a comment, this line is ignored (comment type #2)
|
||||
# This is also a comment, again this line is ignored (comment type #3)
|
||||
|
||||
/* UnrealIRCd makes heavy use of modules. Modules allow you to completely
|
||||
* customize the featureset you wish to enable in UnrealIRCd.
|
||||
* See: https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* By using the include below we instruct the IRCd to read the file
|
||||
* 'modules.default.conf' which will load more than 150 modules
|
||||
* shipped with UnrealIRCd. In other words: this will simply load
|
||||
* all the available features in UnrealIRCd.
|
||||
* If you are setting up UnrealIRCd for the first time we suggest you
|
||||
* use this. Then, when everything is up and running you can come
|
||||
* back later to customize the list (if you wish).
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Now let's include some other files as well:
|
||||
* - help/help.conf for our on-IRC /HELPOP system
|
||||
* - badwords.conf for channel and user mode +G
|
||||
* - spamfilter.conf as an example for spamfilter usage
|
||||
* (commented out)
|
||||
* - operclass.default.conf contains some good operclasses which
|
||||
* you can use in your oper blocks.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* This is the me { } block which basically says who we are.
|
||||
* It defines our server name, some information line and an unique "sid".
|
||||
* The server id (sid) must start with a digit followed by two digits or
|
||||
* letters. The sid must be unique for your IRC network (each server should
|
||||
* have it's own sid).
|
||||
*/
|
||||
me {
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
sid "001";
|
||||
};
|
||||
|
||||
/* The admin { } block defines what users will see if they type /ADMIN.
|
||||
* It normally contains information on how to contact the administrator.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/* Clients and servers are put in class { } blocks, we define them here.
|
||||
* Class blocks consist of the following items:
|
||||
* - pingfreq: how often to ping a user / server (in seconds)
|
||||
* - connfreq: how often we try to connect to this server (in seconds)
|
||||
* - sendq: the maximum queue size for a connection
|
||||
* - recvq: maximum receive queue from a connection (flood control)
|
||||
*/
|
||||
|
||||
/* Client class with good defaults */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Special class for IRCOps with higher limits */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Server class with good defaults */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
connfreq 15; /* try to connect every 15 seconds */
|
||||
maxclients 10; /* max servers */
|
||||
sendq 20M;
|
||||
};
|
||||
|
||||
/* Allow blocks define which clients may connect to this server.
|
||||
* This allows you to add a server password or restrict the server to
|
||||
* specific IP's only. You also configure the maximum connections
|
||||
* allowed per IP here.
|
||||
* See also: https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* Allow everyone in, but only 3 connections per IP */
|
||||
allow {
|
||||
ip *@*;
|
||||
class clients;
|
||||
maxperip 3;
|
||||
};
|
||||
|
||||
/* Example of a special allow block on a specific IP:
|
||||
* Requires users on that IP to connect with a password. If the password
|
||||
* is correct then it permits 20 connections on that IP.
|
||||
*/
|
||||
allow {
|
||||
ip *@192.0.2.1;
|
||||
class clients;
|
||||
password "somesecretpasswd";
|
||||
maxperip 20;
|
||||
};
|
||||
|
||||
/* Oper blocks define your IRC Operators.
|
||||
* IRC Operators are people who have "extra rights" compared to others,
|
||||
* for example they may /KILL other people, initiate server linking,
|
||||
* /JOIN channels even though they are banned, etc.
|
||||
*
|
||||
* For more information about becoming an IRCOp and how to do admin
|
||||
* tasks, see: https://www.unrealircd.org/docs/IRCOp_guide
|
||||
*
|
||||
* For details regarding the oper { } block itself, see
|
||||
* https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Here is an example oper block for 'bobsmith' with password 'test'.
|
||||
* You MUST change this!!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Oper permissions are defined in an 'operclass' block.
|
||||
* See https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd ships with a number of default blocks, see
|
||||
* the article for a full list. We choose 'netadmin' here.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "is a Network Administrator";
|
||||
vhost netadmin.mynet.org;
|
||||
};
|
||||
|
||||
/* Listen blocks define the ports where the server should listen on.
|
||||
* In other words: the ports that clients and servers may use to
|
||||
* connect to this server.
|
||||
*
|
||||
* Syntax:
|
||||
* listen {
|
||||
* {
|
||||
* ip <ip>;
|
||||
* port <port>;
|
||||
* options {
|
||||
* <options....>;
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Standard IRC port 6667 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6667;
|
||||
};
|
||||
|
||||
/* Standard IRC SSL/TLS port 6697 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6697;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* Special SSL/TLS servers-only port for linking */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
options { ssl; serversonly; };
|
||||
};
|
||||
|
||||
/* NOTE: If you are on an IRCd shell with multiple IP's and you use
|
||||
* the above listen { } blocks then you will likely get an
|
||||
* 'Address already in use' error and the ircd won't start.
|
||||
* This means you MUST bind to a specific IP instead of '*' like:
|
||||
* listen { ip 1.2.3.4; port 6667; };
|
||||
* Of course, replace the IP with the IP that was assigned to you.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Link blocks allow you to link multiple servers together to form a network.
|
||||
* See https://www.unrealircd.org/docs/Tutorial:_Linking_servers
|
||||
*/
|
||||
link hub.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* or explicitly an IP */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* We use the SPKI fingerprint of the other server for authentication.
|
||||
* Run './unrealircd spkifp' on the other side to get it.
|
||||
* NOTE: requires UnrealIRCd 4.0.16 or later.
|
||||
*/
|
||||
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; };
|
||||
|
||||
class servers;
|
||||
};
|
||||
|
||||
/* The link block for services is usually much simpler.
|
||||
* For more information about what Services are,
|
||||
* see https://www.unrealircd.org/docs/Services
|
||||
*/
|
||||
link services.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask 127.0.0.1;
|
||||
};
|
||||
|
||||
password "changemeplease";
|
||||
|
||||
class servers;
|
||||
};
|
||||
|
||||
/* U-lines give other servers (even) more power/commands.
|
||||
* If you use services you must add them here.
|
||||
* NEVER put the name of an UnrealIRCd server here!!!
|
||||
*/
|
||||
ulines {
|
||||
services.mynet.org;
|
||||
};
|
||||
|
||||
/* Here you can add a password for the IRCOp-only /DIE and /RESTART commands.
|
||||
* This is mainly meant to provide a little protection against accidental
|
||||
* restarts and server kills.
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/* The log block defines what should be logged and to what file.
|
||||
* See also https://www.unrealircd.org/docs/Log_block
|
||||
*/
|
||||
|
||||
/* This is a good default, it logs almost everything */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
tkl;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/* With "aliases" you can create an alias like /SOMETHING to send a message to
|
||||
* some user or bot. They are usually used for services.
|
||||
*
|
||||
* We have a number of pre-set alias files, check out the alias/ directory.
|
||||
* As an example, here we include all aliases used for anope services.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Ban nick names so they cannot be used by regular users */
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserved for Services";
|
||||
};
|
||||
|
||||
/* Ban ip.
|
||||
* Note that you normally use /KLINE, /GLINE and /ZLINE for this.
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Hate you";
|
||||
};
|
||||
|
||||
/* Ban server - if we see this server linked to someone then we delink */
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Get out of here.";
|
||||
};
|
||||
|
||||
/* Ban user - just as an example, you normally use /KLINE or /GLINE for this */
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/* Ban realname allows you to ban clients based on their 'real name'
|
||||
* or 'gecos' field.
|
||||
*/
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/* Ban and TKL exceptions. Allows you to exempt users / machines from
|
||||
* KLINE, GLINE, etc.
|
||||
* If you are an IRCOp with a static IP (and no untrusted persons on that IP)
|
||||
* then we suggest you add yourself here. That way you can always get in
|
||||
* even if you accidentally place a *LINE ban on yourself.
|
||||
*/
|
||||
|
||||
/* except ban protects you from KLINE and ZLINE */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// you may add more mask entries here..
|
||||
};
|
||||
|
||||
/* except tkl with type 'all' protects you from GLINE, GZLINE, QLINE, SHUN */
|
||||
except tkl {
|
||||
mask *@192.0.2.1;
|
||||
type all;
|
||||
};
|
||||
|
||||
/* With deny dcc blocks you can ban filenames for DCC */
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/* deny channel allows you to ban a channel (mask) entirely */
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/* VHosts (Virtual Hosts) allow users to acquire a different host.
|
||||
* See https://www.unrealircd.org/docs/Vhost_block
|
||||
*/
|
||||
|
||||
/* Example vhost which you can use. On IRC type: /VHOST test test
|
||||
* NOTE: only people with an 'unrealircd.com' host may use it so
|
||||
* be sure to change the vhost::mask before you test.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
mask *@unrealircd.com;
|
||||
login "test";
|
||||
password "test";
|
||||
};
|
||||
|
||||
/* Blacklist blocks will query an external DNS Blacklist service
|
||||
* whenever a user connects, to see if the IP address is known
|
||||
* to cause drone attacks, is a known hacked machine, etc.
|
||||
* Documentation: https://www.unrealircd.org/docs/Blacklist_block
|
||||
* Or just have a look at the blocks below.
|
||||
*/
|
||||
|
||||
/* DroneBL, probably the most popular blacklist used by IRC Servers.
|
||||
* See https://dronebl.org/ for their documentation and the
|
||||
* meaning of the reply types. At time of writing we use types:
|
||||
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
|
||||
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
|
||||
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
|
||||
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
|
||||
* 16: Autorooting worms.
|
||||
*/
|
||||
blacklist dronebl {
|
||||
dns {
|
||||
name dnsbl.dronebl.org;
|
||||
type record;
|
||||
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
reason "Proxy/Drone detected. Check https://dronebl.org/lookup?ip=$ip for details.";
|
||||
};
|
||||
|
||||
/* EFnetRBL, see https://rbl.efnetrbl.org/ for documentation
|
||||
* and the meaning of the reply types.
|
||||
* At time of writing: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
|
||||
*
|
||||
* NOTE: If you want to permit TOR proxies on your server, then
|
||||
* you need to remove the '4;' below in the reply section.
|
||||
*/
|
||||
blacklist efnetrbl {
|
||||
dns {
|
||||
name rbl.efnetrbl.org;
|
||||
type record;
|
||||
reply { 1; 4; 5; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
reason "Proxy/Drone/TOR detected. Check http://rbl.efnetrbl.org/?i=$ip for details.";
|
||||
};
|
||||
|
||||
/* You can include other configuration files */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
set {
|
||||
network-name "MYNet";
|
||||
default-server "irc.mynet.org";
|
||||
services-server "services.mynet.org";
|
||||
stats-server "stats.mynet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Clk";
|
||||
prefix-quit "Quit";
|
||||
|
||||
/* Cloak keys should be the same at all servers on the network.
|
||||
* They are used for generating masked hosts and should be kept secret.
|
||||
* The keys should be 3 random strings of 50-100 characters
|
||||
* and must consist of lowcase (a-z), upcase (A-Z) and digits (0-9).
|
||||
* HINT: On *NIX, you can run './unrealircd gencloak' in your shell to let
|
||||
* UnrealIRCd generate 3 random strings for you.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"and another one";
|
||||
"and another one";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "set.this.to.email.address"; /* e-mail or URL shown when a user is banned */
|
||||
modes-on-connect "+ixw"; /* when users connect, they will get these user modes */
|
||||
modes-on-oper "+xwgs"; /* when someone becomes IRCOp they'll get these modes */
|
||||
oper-auto-join "#opers"; /* IRCOps are auto-joined to this channel */
|
||||
options {
|
||||
hide-ulines; /* hide U-lines in /MAP and /LINKS */
|
||||
show-connect-info; /* show "looking up your hostname" messages on connect */
|
||||
};
|
||||
|
||||
maxchannelsperuser 10; /* maximum number of channels a user may /JOIN */
|
||||
|
||||
/* The minimum time a user must be connected before being allowed to
|
||||
* use a QUIT message. This will hopefully help stop spam.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Or simply set a static quit, meaning any /QUIT reason is ignored */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* static-part does the same for /PART */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Which /STATS to restrict to opers only. We suggest to leave it to * (ALL) */
|
||||
oper-only-stats "*";
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nick changes per 60 seconds (the default) */
|
||||
connect-flood 3:60; /* 3 connection attempts per 60 seconds (the default) */
|
||||
away-flood 4:120; /* 4 times per 2 minutes you may use /AWAY (default) */
|
||||
};
|
||||
|
||||
/* Settings for spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* default duration of a *LINE ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default reason */
|
||||
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
|
||||
/* except "#help"; channel to exempt from Spamfilter */
|
||||
};
|
||||
};
|
||||
|
||||
/* Finally, you may wish to have a MOTD (Message of the Day), this can be
|
||||
* done by creating an 'ircd.motd' text file in your conf/ directory.
|
||||
* This file will be shown to your users on connect.
|
||||
* For more information see https://www.unrealircd.org/docs/MOTD_and_Rules
|
||||
*/
|
||||
|
||||
/*
|
||||
* Problems or need more help?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- answers 80% of your questions!
|
||||
* 3) If you are still having problems then you can get support:
|
||||
* - Forums: https://forums.unrealircd.org/
|
||||
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
|
||||
* Note that we require you to read the documentation and FAQ first!
|
||||
*/
|
||||
@@ -0,0 +1,461 @@
|
||||
/* Fichier de configuration pour UnrealIRCd 4
|
||||
*
|
||||
* Copiez ce fichier dans le répertoire conf/, renommez le
|
||||
* 'unrealircd.conf' et parcourez-le ligne par ligne (modifiez le !)
|
||||
*
|
||||
* Important : Toutes les lignes, sauf celles ne comportant qu'un {
|
||||
* ouvrant, doivent finir par un ; y compris };. C'est très important,
|
||||
* car si vous oubliez un ; quelque part, alors le parser du fichier de
|
||||
* configuration se plaindra et votre fichier ne sera pas lu correctement !
|
||||
* S'il s'agit de votre première expérience avec le fichier de configuration
|
||||
* d'UnrealIRCd, nous vous recommandons de vous documenter un peu à propos
|
||||
* de la syntaxe. Ça ne vous prendra que quelques minutes et vous aidera
|
||||
* beaucoup :
|
||||
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
||||
*
|
||||
* Documentation pour UnrealIRCd 4 (très complète !) :
|
||||
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr
|
||||
*
|
||||
* Foire Aux Questions :
|
||||
* https://www.unrealircd.org/docs/FAQ
|
||||
*
|
||||
*/
|
||||
|
||||
/* Ceci est un commentaire, ici, tout le texte est ignoré (type #1) */
|
||||
// Ceci est aussi un commentaire, cette ligne est ignorée (type #2)
|
||||
# Ceci est aussi un commentaire, cette ligne est ignorée (type #3)
|
||||
|
||||
/* UnrealIRCd utilise beaucoup les modules. Ceux-ci vous permettent
|
||||
* de personnaliser complètement les fonctionnalités que vous voulez
|
||||
* activer sur UnrealIRCd.
|
||||
* Voir : https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* En utilisant la ligne include ci-dessous, nous indiquons à l'IRCd de
|
||||
* lire le fichier 'modules.default.conf' ce qui activera plus de 150
|
||||
* modules fournis avec UnrealIRCd. En d'autres termes, ceci activera
|
||||
* toutes les fonctionnalités disponibles d'UnrealIRCd.
|
||||
* Si vous configurez UnrealIRCd pour la première fois, nous vous
|
||||
* conseillons d'utiliser cette ligne. Après, lorsque tout fonctionnera
|
||||
* vous pourrez revenir personnaliser la liste (si vous le souhaitez).
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Incluons aussi d'autres fichiers :
|
||||
* - help/help.conf pour le système d'aide sur IRC via /HELPOP
|
||||
* - badwords.conf pour le mode utilisateur et de salon +G
|
||||
* - spamfilter.conf comme exemple d'utilisation de spamfilter
|
||||
* - operclass.default.conf qui contient les classes d'opérateurs
|
||||
* par défaut à utiliser dans vos blocs oper.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* Le bloc me { } indique qui est le serveur.
|
||||
* Il définit le nom du serveur, une ligne d'informations et un identifiant
|
||||
* "sid" unique. L'id du serveur (sid) doit commencer par un chiffre suivit
|
||||
* de deux chiffres ou lettres. Le sid doit être unique sur votre réseau IRC
|
||||
* (chaque serveur doit avoir un sid différent).
|
||||
*/
|
||||
me {
|
||||
name "irc.foonet.com";
|
||||
info "Serveur FooNet";
|
||||
sid "001";
|
||||
};
|
||||
|
||||
/* Le bloc admin { } définit ce que les utilisateurs verront en faisant
|
||||
* /ADMIN. C'est généralement des infos de contact de l'administrateur.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"adresse.email@foonet.com";
|
||||
};
|
||||
|
||||
/* Les clients et serveurs sont placés dans des classes, que nous
|
||||
* définissons dans ces blocs class { }.
|
||||
* Les blocs de classe comportent les éléments suivants :
|
||||
* - pingfreq: à quelle fréquence envoyer un ping à l'utilisateur ou au
|
||||
* serveur (en secondes)
|
||||
* - connfreq: à quelle fréquence on essaye de se connecter à ce serveur
|
||||
* (en secondes)
|
||||
* - sendq: la taille maximale de la queue d'émission pour une connexion
|
||||
* - recvq: la taille maximale de la queue de réception pour une connexion
|
||||
* (contrôle du flood)
|
||||
*/
|
||||
|
||||
/* Classe pour des clients */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Classe spéciale pour des IRCOps avec des limites plus hautes */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Classe pour des serveurs */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
connfreq 15; /* essayer de se connecter toutes les 15 sec */
|
||||
maxclients 10; /* nombre max de serveurs */
|
||||
sendq 5M;
|
||||
};
|
||||
|
||||
/* Les blocs allow définissent quels clients peuvent se connecter au
|
||||
* serveur. Ils vous permettent d'ajouter un mot de passe ou de restreindre
|
||||
* le serveur à certaines IP seulement. C'est aussi là que vous configurez
|
||||
* le nombre maximum de connexions par IP.
|
||||
* Voir : https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* Accepter tout le monde, mais seulement 5 connexions par IP */
|
||||
allow {
|
||||
ip *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Exemple de bloc allow spécial pour une IP donnée :
|
||||
* Les utilisateurs sur cette IP doivent se connecter avec un mot de passe.
|
||||
* S'il est correct, alors autoriser 20 connexions sur cette IP.
|
||||
*/
|
||||
allow {
|
||||
ip *@192.0.2.1;
|
||||
class clients;
|
||||
password "unmotdepassesecret";
|
||||
maxperip 20;
|
||||
};
|
||||
|
||||
/* Les blocs oper définissent vos Opérateurs IRC.
|
||||
* Les Opérateurs IRC sont des utilisateurs avec des "droits en plus"
|
||||
* par rapport aux autres, par exemple, ils peuvent /KILL (déconnecter)
|
||||
* d'autres utilisateurs, faire se connecter des serveurs entre eux,
|
||||
* /JOIN des salons même s'ils sont bannis, etc ...
|
||||
* Voir aussi : https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Voici un exemple de bloc oper pour 'bobsmith' avec le mot de
|
||||
* passe 'test'.
|
||||
* Vous DEVEZ le modifier !!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Les permissions Oper sont définies dans un bloc 'operclass'.
|
||||
* Voir https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd est fourni avec des classes par défaut, voir la doc
|
||||
* pour une liste complète. Nous avons choisi 'netadmin' ici.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "est un Administrateur du Réseau";
|
||||
vhost netadmin.mynet.org;
|
||||
};
|
||||
|
||||
/* Les blocs listen définissent les ports sur lesquels le serveur écoute.
|
||||
* C'est-à-dire les ports que les clients et les serveurs utilisent pour
|
||||
* se connecter à ce serveur.
|
||||
*
|
||||
* Syntaxe :
|
||||
* listen
|
||||
* {
|
||||
* ip <adresse ip>;
|
||||
* port <numéro de port>;
|
||||
* options {
|
||||
* <options....>;
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Port standard pour IRC 6667 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6667;
|
||||
};
|
||||
|
||||
/* Port standard pour IRC sur SSL/TLS 6697 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6697;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* Port SSL/TLS spécial pour la connexion entre serveurs */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
options { ssl; serversonly; };
|
||||
};
|
||||
|
||||
/* NOTE : Si vous utilisez un serveur IRC avec plusieurs IP et que vous
|
||||
* utilisez les blocs listen ci-dessus, vous aurez peut-être une
|
||||
* erreur 'Address already in use' et l'IRCd ne démarrera pas.
|
||||
* Celle-ci indique que vous devez préciser une IP spécifique
|
||||
* au lieu de '*'. Exemple :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Bien sûr, remplacez 1.2.3.4 par l'IP qui vous est assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Les blocs link vous permettent de connecter plusieurs serveurs ensemble
|
||||
* pour former un réseau IRC.
|
||||
* Voir https://www.unrealircd.org/docs/Tutorial:_Linking_servers
|
||||
*/
|
||||
link hub.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* ou une IP précise */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
password "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"; /* Empreinte SSL de l'autre serveur */
|
||||
|
||||
class servers;
|
||||
};
|
||||
|
||||
/* Les U-lines donnent encore plus de pouvoir à certains serveurs.
|
||||
* Si vous utilisez des Services, vous devez les indiquer ici.
|
||||
* NE JAMAIS indiquer le nom d'un serveur UnrealIRCd normal ici !!!
|
||||
* (Si vous ne savez pas ce que sont les Services, voir :
|
||||
* https://www.unrealircd.org/docs/Services )
|
||||
*/
|
||||
ulines {
|
||||
services.mynet.org;
|
||||
};
|
||||
|
||||
/* Ici vous pouvez indiquer un mot de passe pour les commandes /DIE et
|
||||
* /RESTART, qui sont restreintes aux IRCops.
|
||||
* Il s'agit surtout d'une petite protection contre les redémarrages et
|
||||
* les coupures de serveur accidentels.
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/* Le bloc log indique ce qui doit être journalisé et dans quel fichier.
|
||||
* Voir aussi https://www.unrealircd.org/docs/Log_block
|
||||
*/
|
||||
|
||||
/* Ceci est une bonne valeur par défaut, elle journalise presque tout */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
tkl;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/* Avec des "alias", vous pouvez créer un alias comme /UNTRUC pour envoyer
|
||||
* un message à un utilisateur ou à un bot. Ils sont souvent utilisés pour
|
||||
* les services.
|
||||
*
|
||||
* Nous fournissons un certain nombre d'alias par défaut, voir les fichiers
|
||||
* du répertoire aliases/.
|
||||
* Pour exemple, ici nous ajoutons les alias pour les Services Anope.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Bannir des nicks pour qu'ils ne soient pas utilisables par des
|
||||
* utilisateurs normaux
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Réservé aux Services";
|
||||
};
|
||||
|
||||
/* Bannir une IP.
|
||||
* NB : vous pouvez aussi utiliser /KLINE, /GLINE et /ZLINE pour ça.
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Je vous hais !";
|
||||
};
|
||||
|
||||
/* Bannir un serveur - si ce serveur est connecté au réseau, nous nous
|
||||
* déconnecterons
|
||||
*/
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Va-t-en d'ici.";
|
||||
};
|
||||
|
||||
/* Bannir un utilisateur - juste pour l'exemple, on utilise normalement
|
||||
* /KLINE or /GLINE pour ça
|
||||
*/
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/* Bannir un realname (ou 'gecos') */
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/* Exceptions de ban et TKL. Vous permet d'exempter des utilisateurs des
|
||||
* KLINE, GLINE, etc ...
|
||||
* Si vous êtes un IRCOp avec une IP statique (et qu'il n'y a que des
|
||||
* personnes de confiance sur cette IP), alors vous pouvez vous ajouter ici.
|
||||
* Ainsi, vous pourrez toujours vous connecter même si vous vous bannissez
|
||||
* accidentellement.
|
||||
*/
|
||||
|
||||
/* except ban vous protège des KLINE et ZLINE */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// vous pouvez ajouter d'autres lignes mask à la suite
|
||||
};
|
||||
|
||||
/* except tkl avec le type 'all' vous protège des GLINE, GZLINE, QLINE, SHUN */
|
||||
except tkl {
|
||||
mask *@192.0.2.1;
|
||||
type all;
|
||||
};
|
||||
|
||||
/* Avec un bloc deny dcc vous pouvez interdire des noms de fichiers dans
|
||||
* les échanges DCC
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible virus Sub7";
|
||||
};
|
||||
|
||||
/* deny channel vous permet d'interdire des masques de noms de salons */
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Le warez est illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/* Les VHosts (Virtual Hosts - Hôtes Virtuels) permettent aux utilisateurs
|
||||
* d'avoir un nom d'hôte différent.
|
||||
* Voir https://www.unrealircd.org/docs/Vhost_block
|
||||
*/
|
||||
|
||||
/* Vhost d'exemple. Sur IRC, entrez /VHOST test test
|
||||
* NOTE : seuls les utilisateurs avec un nom d'hôte 'unrealircd.com'
|
||||
* peuvent l'utiliser, donc modifiez vhost::mask avant de tester.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
mask *@unrealircd.com;
|
||||
login "test";
|
||||
password "test";
|
||||
};
|
||||
|
||||
/* Vous pouvez inclure d'autres fichiers de configuration */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuration du réseau */
|
||||
set {
|
||||
network-name "MYNet";
|
||||
default-server "irc.mynet.org";
|
||||
services-server "services.mynet.org";
|
||||
stats-server "stats.mynet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Clk";
|
||||
prefix-quit "Quit";
|
||||
|
||||
/* Les clés de cloaking doivent être identiques sur tous les serveurs
|
||||
* d'un réseau. Elles sont utilisées pour générer les noms d'hôtes
|
||||
* masqués et doivent être gardées secrètes. Les clés doivent être
|
||||
* 3 chaînes de 5 à 100 caractères aléatoires (entre 10 et 20 suffisent)
|
||||
* et ne comporter que des minuscules (a-z), des majuscules (A-Z) et des
|
||||
* chiffres (0-9). (voir l'exemple)
|
||||
* NB : sur *NIX, vous pouvez exécuter './unreal gencloak' sur votre
|
||||
* serveur pour que Unreal génère 3 clés aléatoires pour vous.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"et une autre";
|
||||
"et une troisième";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuration spécifique au serveur */
|
||||
|
||||
set {
|
||||
kline-address "indiquez.une.adresse.email"; /* e-mail ou URL indiquée lorsqu'un utilisateur est banni */
|
||||
modes-on-connect "+ixw"; /* modes utilisateur ajoutés lorsqu'un utilisateur se connecte */
|
||||
modes-on-oper "+xwgs"; /* modes utilisateur ajoutés lorsqu'un utilisateur devient IRCOp */
|
||||
oper-auto-join "#opers"; /* salon que les IRCOps joignent automatiquement */
|
||||
options {
|
||||
hide-ulines; /* cacher les U-lines de /MAP et /LINKS */
|
||||
show-connect-info; /* afficher les messages "looking up your hostname" à la connexion */
|
||||
};
|
||||
|
||||
maxchannelsperuser 10; /* nombre max de salons par utilisateur */
|
||||
|
||||
/* Temps minimum qu'un utilisateur doit rester connecter avant de pouvoir
|
||||
* utiliser un message de QUIT. Le but est pour réduire le spam.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Ou indiquez un message de QUIT constant, ce qui fait que les raisons
|
||||
* de /QUIT sont ignorées.
|
||||
*/
|
||||
/* static-quit "Le client a quitté"; */
|
||||
|
||||
/* static-part fait la même chose pour /PART */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Quelles /STATS sont restreintes aux Opérateurs. Nous vous
|
||||
* conseillons de laisser '*' (toutes)
|
||||
*/
|
||||
oper-only-stats "*";
|
||||
|
||||
/* Protections anti-flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 changements de nick par 60 secondes */
|
||||
connect-flood 3:60; /* 3 tentatives de connexions par 60 seconds */
|
||||
away-flood 4:120; /* 4 utilisation de /AWAY par 2 minutes */
|
||||
};
|
||||
|
||||
/* Paramètres de Spamfilter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* durée par défaut des bans *LINE ajoutés par spamfilter */
|
||||
ban-reason "Spam/Publicité"; /* raison par defaut */
|
||||
virus-help-channel "#help"; /* salon par défaut pour l'action 'viruschan' */
|
||||
/* except "#help"; salon à exempter de Spamfilter */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Un problème ou besoin d'aide supplémentaire ?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation/fr
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- répond à 80% des questions !
|
||||
* 3) Si vous avez toujours des problèmes, vous pouvez aller sur
|
||||
* irc.unrealircd.org #unreal-support,
|
||||
* mais nous exigeons que vous lisiez LA DOCUMENTATION et la FAQ d'abord !
|
||||
*/
|
||||
@@ -0,0 +1,509 @@
|
||||
/* UnrealIRCd 4 için yapılandırma dosyası
|
||||
* Türkçe Çeviri: Diablo - (Serkan Sepetçi)
|
||||
* İletişim: irc.trirc.com:6667 - diablo@unrealircd.org
|
||||
*
|
||||
* Biz buna basit bir 'unrealircd.conf' dosyası diyoruz.
|
||||
* Bu dosyası satır satır editleyip conf/ dizinine kopyalayınız. (düzenleyin!)
|
||||
*
|
||||
* Önemli: Satırların hepsi, açılış başına { satır sonuna ;
|
||||
* }; dahil edin. Bu çok önemli, eğer siz ayrıştırıcıyı ;
|
||||
* eksik koyarsanız yapılandırma dosyası hata verecek
|
||||
* ve dosya doğru işlemde olmayacaktır!
|
||||
* Bu sizin UnrealIRCd yapılandırması ile ilk deneyiminiz ise
|
||||
* dosyayı okumanız için birkaç dakika ayırmanızı öneniriz,
|
||||
* bu size bilgi edinmeniz açısından yardımcı olacaktır:
|
||||
* https://www.unrealircd.org/docs/Configuration#Configuration_file_syntax
|
||||
*
|
||||
* UnrealIRCd 4 belgeleme (çok geniş!):
|
||||
* https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
*
|
||||
* Sıkça Sorulan Sorular:
|
||||
* https://www.unrealircd.org/docs/FAQ
|
||||
*
|
||||
*/
|
||||
|
||||
/* Bu bir açıklamadır, burada tüm metin göz ardı edilir (açıklama tipi #1) */
|
||||
// Bu da bir açıklamadır, bu satır göz ardı edilir (açıklama tipi #2)
|
||||
# Bu da bir açıklamadır, bu satır yine göz ardı edilir (açıklama tipi #3)
|
||||
|
||||
/* UnrealIRCd yoğun modul kullanımını kolaylaştırır. UnrealIRCd'de
|
||||
* etkinleştirmek istediğiniz özellikleri tamamen moduller ile aktif edebilirsiniz.
|
||||
* Görmek için; https://www.unrealircd.org/docs/Modules
|
||||
*
|
||||
* Biz 'modules.default.conf' dosyasını okumak için IRCd talimatı altında kullanarak
|
||||
* UnrealIRCd ile birlikte gelen 150'den fazla modülleri yükleyecektir.
|
||||
* Başka bir deyişle: Bu sadece UnrealIRCd'de mevcut tüm özelliklerini yükleyecektir.
|
||||
* İlk kez UnrealIRCd kuruyorsanız size bunu kullanmanızı öneririz.
|
||||
* UnrealIRCd'yi ilk kez kuruyorsanız bunu kullanmanızı öneririz.
|
||||
* Daha sonra her şey hazır olduğunda ve çalışıyorsa (eğer isterseniz)
|
||||
* listeyi özelleştirmek için geri dönebilirsiniz.
|
||||
*/
|
||||
include "modules.default.conf";
|
||||
|
||||
/* Şimdi de diğer bazı dosyaları dahil edelim:
|
||||
* - help/help.conf /HELPOP sistemi
|
||||
* - badwords.conf kanal ve kullanıcı modu için +G
|
||||
* - spamfilter.conf için örnek olarak spamfilter kullanımı
|
||||
* - operclass.default.conf oper bloklarında kullanabileceğiniz
|
||||
* oper sınıflarını görüntüler.
|
||||
*/
|
||||
include "help/help.conf";
|
||||
include "badwords.conf";
|
||||
//include "spamfilter.conf";
|
||||
include "operclass.default.conf";
|
||||
|
||||
/* me { } bloğu genelde kim olduğumuzu belirtir.
|
||||
* Sunucumuz için isim, birkaç satır bazı bilgileri belirler "sid".
|
||||
* Sunucu kimliği (sid) iki basamağı veya harf tarafından izlenen bir rakam ile
|
||||
* başlamalıdır. Sid IRC ağı için benzersiz olmalıdır (her sunucu için
|
||||
* kendi sid olmalıdır).
|
||||
*/
|
||||
me {
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
sid "001";
|
||||
};
|
||||
|
||||
/* admin { } bloğu /ADMIN sorgusunda kullanıcılara görüntülenecek metni belirler.
|
||||
* Normalde yöneticiye ulaşma konusunda bilgi içerir.
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/* Kullanıcılar ve sunucular için class { } bloğu belirtilir.
|
||||
* Class blokları aşağıdaki işlemlerden oluşur:
|
||||
* - pingfreq: kullanıcı/sunucu için ping'ler arası zaman belirtir (saniyede)
|
||||
* - connfreq: sunucuya bağlanmaya çalıştığınızda tekrar için zaman belirtir (saniyede)
|
||||
* - sendq: bir bağlantı için maksimum veri boyutu
|
||||
* - recvq: bir bağlantı için maksimum alınan veri boyutu (flood kontrol)
|
||||
*/
|
||||
|
||||
/* Kullanıcılar için varsayılan class ayarları */
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 1000;
|
||||
sendq 200k;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* IRCOp'lar için varsaylan yüksek limitli özel class ayarları */
|
||||
class opers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 50;
|
||||
sendq 1M;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
/* Sunucular için varsayılan class ayarları */
|
||||
class servers
|
||||
{
|
||||
pingfreq 60;
|
||||
connfreq 15; /* Her 15 saniyede bir bağlanmayı dener */
|
||||
maxclients 10; /* maksimum kullanıcı */
|
||||
sendq 5M;
|
||||
};
|
||||
|
||||
/* Allow blockları sunucunuza kimlerin bağlanabileceğini belirtir.
|
||||
* Bir sunucu şifresi eklenebilir veya belirlitilen bir IP adresi için
|
||||
* giriş izini verilebilir. Ayrıca IP başına ne kadar bağlantıya izin
|
||||
* verileceğini belirtir.
|
||||
* Görmeniz için: https://www.unrealircd.org/docs/Allow_block
|
||||
*/
|
||||
|
||||
/* IP başına sadece 5 bağlantı izini verir */
|
||||
allow {
|
||||
ip *@*;
|
||||
class clients;
|
||||
maxperip 3;
|
||||
};
|
||||
|
||||
/* Örnek olarak özel bir IP bloğu izini:
|
||||
* Bu IP bir şifre ile bağlantı yapması olduğunu gerektirir.
|
||||
* Şifre doğru ise o zaman bu IP 20 bağlantıya izin verecektir.
|
||||
*/
|
||||
allow {
|
||||
ip *@192.0.2.1;
|
||||
class clients;
|
||||
password "somesecretpasswd";
|
||||
maxperip 20;
|
||||
};
|
||||
|
||||
/* Oper bloğu, IRC Operatorleri tanımlar.
|
||||
* IRC Operatörler, diğer kullanıcılara göre "ekstra haklara" sahip kullanıcılardır.
|
||||
* örneğin diğer kullanıcılara /KILL uygulayabilmesi, sunucu birleştirmesinin başlatılması,
|
||||
* /JOIN yaptığı odalardan banlansa bile tekrar giriş yapabilmesi, vs.
|
||||
*
|
||||
* IRCOp olmak ve nasıl Admin olunacağı hakkında daha fazla bilgi için
|
||||
* https://www.unrealircd.org/docs/IRCOp_guide
|
||||
*
|
||||
* Oper {} bloğunun kendisi ile ilgili ayrıntıları görmeniz için
|
||||
* https://www.unrealircd.org/docs/Oper_block
|
||||
*/
|
||||
|
||||
/* Örnek bir oper bloğu için 'bobsmith' ile şifresi 'test'.
|
||||
* Bunu değiştirmeniz GEREKİR!!
|
||||
*/
|
||||
oper bobsmith {
|
||||
class opers;
|
||||
mask *@*;
|
||||
password "test";
|
||||
/* Oper izinleri bir "operclass 'bloğunda tanımlanır.
|
||||
* Görmeniz için: https://www.unrealircd.org/docs/Operclass_block
|
||||
* UnrealIRCd varsayılan bloklar makalesi için,
|
||||
* tam listesine bakınız. Buradan 'netadmin' seçiyoruz.
|
||||
*/
|
||||
operclass netadmin;
|
||||
swhois "is a Network Administrator";
|
||||
vhost netadmin.mynet.org;
|
||||
};
|
||||
|
||||
/* Listen blokları sunucu portu için gereken bağlantı noktalarını tanımlar.
|
||||
* Diğer bir deyişle: Bu portlar kullanıcılar ve serverlar için
|
||||
* sunucuya bağlantı kurmasını sağlar.
|
||||
*
|
||||
* Kullanımı:
|
||||
* listen
|
||||
* {
|
||||
* ip <ip numarası>;
|
||||
* port <port numarası>;
|
||||
* options {
|
||||
* <seçenekler....>;
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
/* Standard IRC port 6667 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6667;
|
||||
};
|
||||
|
||||
/* Standard IRC SSL/TLS port 6697 */
|
||||
listen {
|
||||
ip *;
|
||||
port 6697;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* Özel SSL/TLS sadece sunucuları bağlamak için port */
|
||||
listen {
|
||||
ip *;
|
||||
port 6900;
|
||||
options { ssl; serversonly; };
|
||||
};
|
||||
|
||||
/* DiKKAT: Eğer bir çok IP barındıran bir IRCd Shell kullanıyorsanız
|
||||
* logunuzda olası 'Address already in use' hatasını alacaksınız
|
||||
* ve ircd başlamayacaktır.
|
||||
* Bunun anlamı '*' yerine belirli bir IP yazmanız GEREKİR anlamına gelir:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Açıkçası, IP yi önceden koyduğunuz IP ile değiştirin.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Link blockları bir ağ oluşturmak için birden fazla sunucu bağlamaya izin verir.
|
||||
* Görmek için: https://www.unrealircd.org/docs/Tutorial:_Linking_servers
|
||||
*/
|
||||
link hub.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask *@something;
|
||||
};
|
||||
|
||||
outgoing {
|
||||
bind-ip *; /* veya açıkça bir IP */
|
||||
hostname hub.mynet.org;
|
||||
port 6900;
|
||||
options { ssl; };
|
||||
};
|
||||
|
||||
/* Kimlik doğrulaması için diğer sunucunun SPKI parmak izini kullanıyoruz.
|
||||
* Kullanmamız için diğer tarafda './unrealircd spkifp' uygulayıp çalıştırıyoruz.
|
||||
* NOT: UnrealIRCd 4.0.16 veya üzeri versiyonları gerektirir.
|
||||
*/
|
||||
password "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUV=" { spkifp; };
|
||||
|
||||
class servers;
|
||||
};
|
||||
|
||||
/* Servis'ler için bağlantı bloğu genellikle çok daha basittir.
|
||||
* Servis'lerin ne olduğu hakkında daha fazla bilgi için,
|
||||
* https://www.unrealircd.org/docs/Services
|
||||
*/
|
||||
link services.mynet.org
|
||||
{
|
||||
incoming {
|
||||
mask 127.0.0.1;
|
||||
};
|
||||
|
||||
password "changemeplease";
|
||||
|
||||
class servers;
|
||||
};
|
||||
|
||||
/* U-lines satırları sunuculara daha güç/komut kazandırır.
|
||||
* Eğer hizmetlerini kullanmak istiyorsanız onları buraya eklemeniz gerekir.
|
||||
* ASLA buraya (normal) UnrealIRCd sunucunun adını yazmayınız!!!
|
||||
*/
|
||||
ulines {
|
||||
services.mynet.org;
|
||||
};
|
||||
|
||||
/* Bu blok /DIE ve /RESTART için şifre tanımlamanızı sağlar. Sadece IRCOp'lar içindir.
|
||||
* Bu genelde kazara sunucuyu yeniden başlatma ve kapanmasına karşı biraz
|
||||
* koruma sağlamak içindir.
|
||||
*/
|
||||
drpass {
|
||||
restart "restart";
|
||||
die "die";
|
||||
};
|
||||
|
||||
/* Bu log bloğu hangi dosyaya ve nelerin olması gerektiğini tanımlar.
|
||||
* Görmeniz için: https://www.unrealircd.org/docs/Log_block
|
||||
*/
|
||||
|
||||
/* Varsayılan ayarlar, neredeyse her şeyi kaydedecektir */
|
||||
log "ircd.log" {
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
tkl;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/* Bazı kullanıcılara veya botlara bir mesaj göndermek için "aliases"
|
||||
* takma ad oluşturmanızı sağlar. Genellikle servisler için kullanılır.
|
||||
*
|
||||
* Biz önceden ayarlanmış bir takma adı dosyaları dizini oluşturduk, alias/ dizini kontrol ediniz.
|
||||
* Örnek olarak, burada anope servisler ve kullanılan tüm diğer servisler adları bulunmaktadır.
|
||||
*/
|
||||
include "aliases/anope.conf";
|
||||
|
||||
/* Ban nick bloğu bir nickin sunucuda kullanımını yasaklamanıza olanak sağlar */
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Servisler için ayrılmış";
|
||||
};
|
||||
|
||||
/* Ban ip.
|
||||
* Normalde bunun için /KLINE, /GLINE ve /ZLINE kullanıldığını unutmayınız.
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Senden nefret ediyorum";
|
||||
};
|
||||
|
||||
/* Ban server - bir sunucunun bağlanmasını devredışı kılar */
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Defol git buradan.";
|
||||
};
|
||||
|
||||
/* Ban user - normalde /KLINE veya /GLINE kullanıldığını unutmayınız */
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Salak";
|
||||
};
|
||||
|
||||
/* Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas alınarak
|
||||
* banlamanıza olanak sağlar.
|
||||
*/
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/* Ban ve TKL istisnaları. Kullanıcıları / makineleri gözetmeksizin
|
||||
* KLINE, GLINE, gibi banlardan muaf tutmanıza olanak sağlar.
|
||||
* Eğer statik IP (ve bu IP üzerinde güvenilmeyen kişiler) ile bir IRCOp
|
||||
* iseniz o zaman kendinizi burada eklemenizi öneririz. Yanlışlıkla kendinize
|
||||
* bir *LINE ban koyarsanız bile yinede muaf tutulacaksınız.
|
||||
*/
|
||||
|
||||
/* except ban bloğu, sizi KLINE ve ZLINE gibi banlardan koruyacaktır */
|
||||
except ban {
|
||||
mask *@192.0.2.1;
|
||||
// burada daha fazla mask girdileri ekleyebilirsiniz..
|
||||
};
|
||||
|
||||
/* except tkl bloğu, sizi 'tüm' GLINE, GZLINE, QLINE, SHUN gibi banlardan koruyacaktır */
|
||||
except tkl {
|
||||
mask *@192.0.2.1;
|
||||
type all;
|
||||
};
|
||||
|
||||
/* Deny dcc bloğu, sunucu üzerinden DCC yoluyla dosya gönderilmesine izin vermeyecektir */
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Olası Sub7 Virüsü";
|
||||
};
|
||||
|
||||
/* Deny channel bloğu, kullanıcıların belirtilen kanallara girmesini engeller */
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/* VHosts (Virtual Hosts) bloğu, kullanıcının yeni bir host alabilmesine olanak sağlar.
|
||||
* Görmeniz için; https://www.unrealircd.org/docs/Vhost_block
|
||||
*/
|
||||
|
||||
/* Kullanabileceğiniz örnek vhost. IRC tipi: /VHOST test test
|
||||
* DiKKAT: Güvenlik açısından aşağıdaki vhost::mask yönergesinde
|
||||
* maske 'unrealircd.com' olarak belirlenmiştir.
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
mask *@unrealircd.com;
|
||||
login "test";
|
||||
password "test";
|
||||
};
|
||||
|
||||
/* Blacklist blokları, bir kullanıcı bağlandığında IP adresinin drone saldırılarına
|
||||
* neden olduğunu, bilinen bir saldırıya uğramış bir makine olup olmadığını görmek
|
||||
* için harici bir DNS Kara Liste hizmetinden sorgulayacaktır.
|
||||
* Belgeleme: https://www.unrealircd.org/docs/Blacklist_block
|
||||
* veya aşağıdaki bloklar satırına bakınız.
|
||||
*/
|
||||
|
||||
/* DroneBL, muhtemelen IRC Sunucuları tarafından kullanılan en popüler kara liste.
|
||||
* Belgeler ve cevap (reply) tiplerin anlamlarını görmek için https://dronebl.org/
|
||||
* adresine bakınız. Bu zamanda aşağıdaki cevap (reply) tiplerini kullanıyoruz:
|
||||
* 3: IRC Drone, 5: Bottler, 6: Unknown spambot or drone,
|
||||
* 7: DDoS Drone, 8: SOCKS Proxy, 9: HTTP Proxy, 10: ProxyChain,
|
||||
* 11: Web Page Proxy, 12: Open DNS Resolver, 13: Brute force attackers,
|
||||
* 14: Open Wingate Proxy, 15: Compromised router / gateway,
|
||||
* 16: Autorooting worms.
|
||||
*/
|
||||
blacklist dronebl {
|
||||
dns {
|
||||
name dnsbl.dronebl.org;
|
||||
type record;
|
||||
reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
reason "Proxy/Drone belirlendi. Ayrıntılar için https://dronebl.org/lookup?ip=$ip adresine bakınız.";
|
||||
};
|
||||
|
||||
/* EFnetRBL, belgeler ve cevap (reply) tiplerini görmek için https://rbl.efnetrbl.org/
|
||||
* adresine bakınız.
|
||||
* Yazma sırasında: 1 is open proxy, 4 is TOR, 5 is drones/flooding.
|
||||
*
|
||||
* NOT: Sunucunuzda TOR proxy'lerine izin vermek istiyorsanız,
|
||||
* cevap (reply) tiplerinden '4;' öğesini kaldırmanız gerekiyor.
|
||||
*/
|
||||
blacklist efnetrbl {
|
||||
dns {
|
||||
name rbl.efnetrbl.org;
|
||||
type record;
|
||||
reply { 1; 4; 5; };
|
||||
};
|
||||
action gline;
|
||||
ban-time 24h;
|
||||
reason "Proxy/Drone/TOR belirlendi. Ayrıntılar için http://rbl.efnetrbl.org/?i=$ip adresine bakınız.";
|
||||
};
|
||||
|
||||
/* Diğer yapılandırma dosyalarını dahil edebilirsiniz */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Ağ yapılandırması */
|
||||
set {
|
||||
network-name "MYNet";
|
||||
default-server "irc.mynet.org";
|
||||
services-server "services.mynet.org";
|
||||
stats-server "stats.mynet.org";
|
||||
help-channel "#Help";
|
||||
hiddenhost-prefix "Clk";
|
||||
prefix-quit "Quit";
|
||||
|
||||
/* Gizleme anahtarları ağ üzerindeki bütün sunucularda aynı olmalı.
|
||||
* Bu anahtarlar maskeli hostlar yaratmak ve bunları saklamak için kullanılır.
|
||||
* Anahtarlar 5-100 karakterlik (10-20 karakter yeterli) 3 rastgele diziden oluşmalı ve
|
||||
* küçük harf (a-z), büyük harf (A-Z) ve rakamlardan (0-9) meydana gelmelidirler.. [ilk örneğe bakınız].
|
||||
* IPUCU: './unreal gencloak' Unreal sizin için rastgele 3 adet dizin oluşturur.
|
||||
* Bunu NIX üzerinde çalıştırabilirsiniz.
|
||||
*/
|
||||
cloak-keys {
|
||||
"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
|
||||
"ve diğeri";
|
||||
"ve diğeri";
|
||||
};
|
||||
};
|
||||
|
||||
/* Sunucunun kendine özgü yapılandırması */
|
||||
|
||||
set {
|
||||
kline-address "set.this.to.email.address"; /* bir kullanıcı banlandığında e-mail yada URL satırı gösterir */
|
||||
modes-on-connect "+ixw"; /* kullanıcılar bağlandığında, bu modları alacaktır */
|
||||
modes-on-oper "+xwgs"; /* Birisi IRC Operatör olduğunda bu modları alacaktır */
|
||||
oper-auto-join "#opers"; /* IRCoplar bu kanala otomatik olarak giriş yapacaktır */
|
||||
options {
|
||||
hide-ulines; /* U-lines satırları /MAP ve /LINKS komutunda gözükmez */
|
||||
show-connect-info; /* sunucuya bağlanırken "looking up your hostname" mesajı görüntülenecektir */
|
||||
};
|
||||
|
||||
maxchannelsperuser 10; /* bir kullanıcının maksimum girebileceği kanal sayısı */
|
||||
|
||||
/* QUIT mesajının görüntülenebilmesi için, bir kullanıcının sunucuya bağlı kalması
|
||||
* gereken süre. Bu durum umarım spamları durdurmak için yardımcı olacaktır.
|
||||
*/
|
||||
anti-spam-quit-message-time 10s;
|
||||
|
||||
/* Kullanıcı sunucudan ayrılırken çıkış sebebini sabitler. /QUIT sebeb gözardı edilecektir. */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* static-part /PART komutu ile aynı işi görür */
|
||||
/* static-part yes; */
|
||||
|
||||
/* /STATS komutunu operler için kısıtlar. Önerilen * (TÜMÜ) */
|
||||
oper-only-stats "*";
|
||||
|
||||
/* Anti flood Koruması */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* Her 60 saniyede 3 nick değişikliği (varsayılan) */
|
||||
connect-flood 3:60; /* Her 60 saniyede 3 bağlantı girişi izni (varsayılan) */
|
||||
away-flood 4:120; /* Her 2 dakikada 4 kez /AWAY kullanımı izni (varsayılan) */
|
||||
};
|
||||
|
||||
/* Spam filter Ayarları */
|
||||
spamfilter {
|
||||
ban-time 1d; /* varsayılan spamfilter tarafından ban süresini belirtir */
|
||||
ban-reason "Spam/Advertising"; /* varsayılan sebep */
|
||||
virus-help-channel "#help"; /* 'viruschan' eylemi için kullanılacak kanal */
|
||||
/* except "#help"; Spamfilter'den muaf tutulacak kanal */
|
||||
};
|
||||
};
|
||||
/* Son olarak, bir MOTD (Günün Mesajı) oluşturabilirsiniz, bu
|
||||
* conf/ dizininde 'ircd.motd' metin dosyası oluşturarak yapabilirsiniz.
|
||||
* Bu dosyanın içeriği bağlantı kuran kullanıcılara gösterilecektir.
|
||||
* Daha fazla bilgi için https://www.unrealircd.org/docs/MOTD_and_Rules bölümünü inceleyiniz.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Sorununuza veya daha fazla yardımamı ihtiyacınız var?
|
||||
* 1) https://www.unrealircd.org/docs/UnrealIRCd_4_documentation
|
||||
* 2) https://www.unrealircd.org/docs/FAQ <- sorularınızın %80 ini kapsamakta!
|
||||
* 3) Eğer probleminiz hala devam ediyorsa:
|
||||
* - Forums: https://forums.unrealircd.org/
|
||||
* - IRC: irc.unrealircd.org (SSL on port 6697) / #unreal-support
|
||||
* İlk önce Dökümantasyon ve FAQ kısmını okumanızı gerektirdiğini unutmayın!
|
||||
*/
|
||||
+184
-239
@@ -1,9 +1,6 @@
|
||||
/* UnrealIRCd3.2 Help Configuration
|
||||
/* UnrealIRCd 4 Help Configuration
|
||||
* Based on the original help text written by hAtbLaDe
|
||||
* Revised by CC (07/2002)
|
||||
*
|
||||
* A worthwhile update for the /HELPOP system.
|
||||
* Included with Unreal3.2 Dist. on 8/24/02 (Beta12)
|
||||
* Revised by CC (07/2002) and many others
|
||||
*/
|
||||
|
||||
help {
|
||||
@@ -16,11 +13,10 @@ help {
|
||||
" -";
|
||||
" /HELPOP USERCMDS - To get the list of User Commands";
|
||||
" /HELPOP OPERCMDS - To get the list of Oper Commands";
|
||||
" /HELPOP SVSCMDS - Commands sent via U:Lined Server (Services)";
|
||||
" /HELPOP SVSCMDS - Commands sent via U-Lined Server (Services)";
|
||||
" /HELPOP UMODES - To get the list of User Modes";
|
||||
" /HELPOP SNOMASKS - To get a list of Snomasks";
|
||||
" /HELPOP CHMODES - To get the list of Channel Modes";
|
||||
" /HELPOP OFLAGS - To see the list of O:line Flags";
|
||||
" -";
|
||||
" ==-------------------------oOo--------------------------==";
|
||||
};
|
||||
@@ -56,12 +52,12 @@ help Opercmds {
|
||||
" a specific command.";
|
||||
" -";
|
||||
" ==-------------------------oOo-------------------------==";
|
||||
" ADCHAT DNS NACHAT SETIDENT";
|
||||
" DNS SETIDENT";
|
||||
" ADDMOTD GLINE OPER SHUN";
|
||||
" ADDOMOTD GLOBOPS OPERMOTD SPAMFILTER";
|
||||
" CHATOPS GZLINE REHASH SQUIT";
|
||||
" CHGHOST HTM RESTART TEMPSHUN";
|
||||
" CHGIDENT KILL RPING TRACE";
|
||||
" GZLINE REHASH SQUIT";
|
||||
" CHGHOST RESTART TEMPSHUN";
|
||||
" CHGIDENT KILL TRACE";
|
||||
" CHGNAME KLINE SAJOIN TSCTL";
|
||||
" CLOSE LAG SAMODE UNDCCDENY";
|
||||
" CONNECT LOCOPS SAPART WALLOPS";
|
||||
@@ -72,7 +68,7 @@ help Opercmds {
|
||||
|
||||
help Svscmds {
|
||||
" This section gives the commands that can be";
|
||||
" sent via a U:Lined Server such as Services.";
|
||||
" sent via a U-Lined Server such as Services.";
|
||||
" The command is typically sent as:";
|
||||
" /MSG OPERSERV RAW :services <command>";
|
||||
" Use /HELPOP <command name> to get more information about";
|
||||
@@ -91,35 +87,28 @@ help Umodes {
|
||||
" Here is a list of all the usermodes which are available for use.";
|
||||
" -";
|
||||
" ==---------------------------oOo---------------------------==";
|
||||
" o = Global IRC Operator";
|
||||
" O = Local IRC Operator";
|
||||
" a = Is a Services Administrator";
|
||||
" A = Is a Server Administrator";
|
||||
" N = Is a Network Administrator";
|
||||
" C = Is a Co Administrator";
|
||||
" o = IRC Operator";
|
||||
" -";
|
||||
" d = Makes it so you can not receive channel PRIVMSGs (Deaf)";
|
||||
" g = Can read & send to GlobOps, and LocOps";
|
||||
" h = Available for Help (Help Operator)";
|
||||
" d = Only receive channel PRIVMSGs starting with a bot command character (Deaf)";
|
||||
" i = Invisible (Not shown in /WHO searches)";
|
||||
" p = Hide all channels in /whois and /who";
|
||||
" q = Only U:lines can kick you (Services Admins/Net Admins only)";
|
||||
" q = Only U-Lines can kick you (Services Admins/Net Admins only)";
|
||||
" r = Identifies the nick as being Registered (settable by services only)";
|
||||
" s = Can listen to Server notices";
|
||||
" t = Says that you are using a /VHOST";
|
||||
" v = Receive infected DCC send rejection notices";
|
||||
" w = Can listen to Wallop messages";
|
||||
" x = Gives the user Hidden Hostname (security)";
|
||||
" z = Marks the client as being on a Secure Connection (SSL)";
|
||||
" B = Marks you as being a Bot";
|
||||
" D = Only receive PRIVMSGs from IRCOps, servers and services (privdeaf)";
|
||||
" 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";
|
||||
" V = Marks the client as a WebTV user";
|
||||
" W = Lets you see when people do a /WHOIS on you (IRC Operators only)";
|
||||
" Z = Only receive/send PRIVMSGs from/to users using a Secure Connection (SSL)";
|
||||
" ==---------------------------oOo---------------------------==";
|
||||
};
|
||||
|
||||
@@ -133,17 +122,18 @@ help Snomasks {
|
||||
"-";
|
||||
" Below is a list of possible snomasks:";
|
||||
" ==-------------------------oOo-----------------------==";
|
||||
" b = View blacklist hits";
|
||||
" c = View connects/disconnects on local server";
|
||||
" e = View 'Eyes' server messages (OperOverride, /CHG* and /SET* usage, ..)";
|
||||
" f = View flood alerts";
|
||||
" F = View connects/disconnects on remote servers (except U-lines)";
|
||||
" F = View connects/disconnects on remote servers (except U-Lines)";
|
||||
" G = View TKL notices (Gline, GZline, Shun, etc)";
|
||||
" j = View Junk notices (not recommended for normal use)";
|
||||
" k = View KILL notices";
|
||||
" n = View nick changes on local server";
|
||||
" N = View nick changes on remote servers";
|
||||
" o = View oper-up notices";
|
||||
" q = View rejected nick changes due to Q:lines";
|
||||
" q = View rejected nick changes due to Q-Lines";
|
||||
" s = View general notices";
|
||||
" S = View spamfilter matches";
|
||||
" v = View usage of /VHOST command";
|
||||
@@ -160,35 +150,34 @@ 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]";
|
||||
" C = No CTCPs allowed in the channel [h]";
|
||||
" D = Delay showing joins until someone actually speaks [o]";
|
||||
" e <nick!ident@host> = Overrides a ban 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]";
|
||||
" K = /KNOCK is not allowed [o]";
|
||||
" K = /KNOCK is not allowed [h]";
|
||||
" 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]";
|
||||
" l <number of max users> = Channel may hold at most <number> of users [h]";
|
||||
" 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]";
|
||||
" M = Must be using a registered nick (+r), or have voice access to talk [h]";
|
||||
" N = No Nickname changes are permitted in the channel [h]";
|
||||
" 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]";
|
||||
" P = Permanent channel (the channel is not destroyed when empty) (settable by IRCops)";
|
||||
" Q = No kicks allowed [o]";
|
||||
" R = Only registered (+r) users may join the channel [o]";
|
||||
" R = Only registered (+r) users may join the channel [h]";
|
||||
" 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]";
|
||||
" 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]";
|
||||
@@ -200,8 +189,15 @@ help Chmodes {
|
||||
|
||||
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>).";
|
||||
" mask. These bans start with a tilde, followed by a letter denoting the extban type.";
|
||||
" For example +b ~q:nick!user@host denotes a quiet extban.";
|
||||
" -";
|
||||
" The following ban type can be used in front of any (ext)ban:";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
" | | Timed bans are automatically unset by the server after ";
|
||||
" ~t | timedban | the specified number of minutes. For example: ";
|
||||
" | | +b ~t:3:*!*@hostname ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
" These bantypes specify which actions are affected by a ban:";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
@@ -219,15 +215,39 @@ help ExtBans {
|
||||
" ~j | join | He may perform all other activities if he is already on ";
|
||||
" | | the channel, such as speaking and changing his nick. ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | Bypass message restrictions. This extended ban is only ";
|
||||
" | | available as +e and not as +b. Syntax: +e ~m:type:mask. ";
|
||||
" | | Valid types: 'external' (bypass +n), 'censor' (bypass +G),";
|
||||
" | | 'moderated' (bypass +m/+M), 'color' (bypass +S/+c), and ";
|
||||
" ~m | msgbypass | 'notice' (bypass +T). Some examples: ";
|
||||
" | | +e ~m:moderated:*!*@192.168.* Allow IP to bypass +m ";
|
||||
" | | +e ~m:external:*!*@192.168.* Allow IP to bypass +n ";
|
||||
" | | +e ~m:color:~a:ColorBot Allow account 'ColorBot' ";
|
||||
" | | to bypass +c ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
" These bantypes introduce new criteria which can be used:";
|
||||
" ==-Type--------Name---------------------------Explanation-----------------------==";
|
||||
" | | 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 ";
|
||||
" ~a | account | 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 ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | 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 user is an IRCOp and is logged in with an oper ";
|
||||
" | | block with a matching oper::operclass name then this ";
|
||||
" ~O | operclass | will match. This way you can create channels which only ";
|
||||
" | | specific type(s) of opers may join. Set +i and use +I. ";
|
||||
" | | Example: +iI ~O:*admin* ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | If the realname of a user matches this then (s)he is ";
|
||||
" | | unable to join. ";
|
||||
" ~r | realname | Example: +b ~r:*Stupid_bot_script* ";
|
||||
@@ -242,20 +262,22 @@ help ExtBans {
|
||||
" | | 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 ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | When a user is using SSL/TLS with a client certificate ";
|
||||
" | | then you can match the user by his/her SSL fingerprint ";
|
||||
" ~S | certfp | (the one you see in /WHOIS). Mostly useful for safe ";
|
||||
" | | ban exceptions and invite exceptions. ";
|
||||
" | | Example: +iI ~S:00112233445566778899aabbccddeeff..etc.. ";
|
||||
"-----------------------------------------------------------------------------------";
|
||||
" | | Channel-specific text filtering. Supports two actions: ";
|
||||
" ~T | textban | 'censor' and 'block'. Two examples: ";
|
||||
" | | +b ~T:censor:*badword* and +b ~T:block:*something* ";
|
||||
" ==------------------------------------------------------------------------------==";
|
||||
" -";
|
||||
"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.";
|
||||
"You may stack extended bans from the 2nd group with the 3rd group.";
|
||||
"For example +b ~q:~c:#lamers would quiet all users who are also in #lamers.";
|
||||
"Bans from the 3rd group may also be used for invite exceptions (+I),";
|
||||
"such as +I ~c:@#trusted and +I ~a:accountname.";
|
||||
};
|
||||
|
||||
help Chmodef {
|
||||
@@ -283,45 +305,6 @@ help Chmodef {
|
||||
" time (in minutes) after which the specific action will be reversed.";
|
||||
};
|
||||
|
||||
|
||||
help Oflags {
|
||||
" Here you will find the flags that can be placed inside of the O:Lines";
|
||||
" -";
|
||||
" ==-------------------------------oOo-----------------------------==";
|
||||
" o (locop) Local Operator";
|
||||
" O (globop) Global Operator";
|
||||
" C (coadmin) Gets +C on oper up. Is Co Administrator";
|
||||
" A (admin) Gets +A on oper up. Is Server Administrator";
|
||||
" a (services-admin) Gets +a on oper up. Is Services Administrator";
|
||||
" N (netadmin) Gets +N on oper up. Is Network Administrator";
|
||||
" -";
|
||||
" r (can_rehash) Access to /REHASH server";
|
||||
" R (can_restart) Access to /RESTART server";
|
||||
" D (can_die) Access to /DIE server";
|
||||
" h (helpop) Oper receives umode +h (helpop)";
|
||||
" g (can_globops) Oper can send /GLOBOPS";
|
||||
" w (can_wallops) Oper can send /WALLOPS";
|
||||
" n (can_localnotice) Oper can send Local Server Notices";
|
||||
" G (can_globalnotice) Oper can send Global Server Notices";
|
||||
" c (can_localroute) Access to do local /SQUITs and /CONNECTs";
|
||||
" L (can_globalroute) Access to do global /SQUITs and /CONNECTs";
|
||||
" k (can_localkill) Access to do local /KILLs";
|
||||
" K (can_globalkill) Access to do global /KILLs";
|
||||
" b (can_kline) Oper can /KLINE users from server";
|
||||
" B (can_unkline) Oper can remove Klines";
|
||||
" z (can_zline) Can add Z:Lines";
|
||||
" Z (can_gzline) Can add global Z:Lines";
|
||||
" t (can_gkline) Can use /GLINE, /SHUN and /SPAMFILTER";
|
||||
" v (can_override) Can use OperOverride";
|
||||
" q (can_setq) Can use +q";
|
||||
" H (get_host) Gets +x on oper up";
|
||||
" W (get_umodew) Gets +W on oper up";
|
||||
" X (can_addline) Can use /ADDLINE";
|
||||
" d (can_dccdeny) Can use /DCCDENY";
|
||||
" ==-------------------------------oOo-----------------------------==";
|
||||
};
|
||||
|
||||
|
||||
help Nick {
|
||||
" Changes your \"Online Identity\" on a server.";
|
||||
" All those in the channel you are in will be";
|
||||
@@ -385,6 +368,7 @@ help Who {
|
||||
" H - User is not /away (here)";
|
||||
" r - User is using a registered nickname";
|
||||
" B - User is a bot (+B)";
|
||||
" s - User is securely connected (SSL/TLS)";
|
||||
" * - User is an IRC Operator";
|
||||
" ~ - User is a Channel Owner (+q)";
|
||||
" & - User is a Channel Admin (+a)";
|
||||
@@ -543,7 +527,7 @@ help Stats {
|
||||
|
||||
help Links {
|
||||
" Lists all of the servers currently linked to the network.";
|
||||
" Only IRCops can see linked U:lined servers.";
|
||||
" Only IRCops can see linked U-Lined servers.";
|
||||
" -";
|
||||
" Syntax: LINKS";
|
||||
};
|
||||
@@ -779,40 +763,18 @@ help Wallops {
|
||||
" Syntax: WALLOPS <message>";
|
||||
};
|
||||
|
||||
help Globops {
|
||||
" Sends a global \"Message\" to all IRCops. Only viewable by IRCops";
|
||||
" (unlike WALLOPS, which can be viewed by normal users).";
|
||||
" -";
|
||||
" Syntax: GLOBOPS <message>";
|
||||
" Example: GLOBOPS Lets get em clones ..";
|
||||
};
|
||||
|
||||
help Locops {
|
||||
" Sends a message to all IRCops at this server (local).";
|
||||
" -";
|
||||
" Syntax: LOCOPS <message>";
|
||||
" Example: LOCOPS Gonna k:line that user ...";
|
||||
" Example: LOCOPS Gonna K-Line that user ...";
|
||||
};
|
||||
|
||||
help Chatops {
|
||||
help Globops {
|
||||
" Sends a message to all ircops (global).";
|
||||
" -";
|
||||
" Syntax: CHATOPS <message>";
|
||||
" Example: CHATOPS Gonna k:line that user ...";
|
||||
};
|
||||
|
||||
help Adchat {
|
||||
" Sends a message to all online Admins";
|
||||
" -";
|
||||
" Syntax: ADCHAT <text>";
|
||||
" Example: ADCHAT Hey guys! I'm finally here.";
|
||||
};
|
||||
|
||||
help Nachat {
|
||||
" Sends a message to all online NetAdmins";
|
||||
" -";
|
||||
" Syntax: NACHAT <text>";
|
||||
" Example: NACHAT Hey guys! How is everything?";
|
||||
" Syntax: GLOBOPS <message>";
|
||||
" Example: GLOBOPS Gonna K-Line that user ...";
|
||||
};
|
||||
|
||||
help Kill {
|
||||
@@ -824,49 +786,69 @@ help Kill {
|
||||
};
|
||||
|
||||
help Kline {
|
||||
" This command provides timed K:Lines. If you match a K:Line you cannot";
|
||||
" This command provides timed K-Lines. If you match a K-Line you cannot";
|
||||
" connect to the server";
|
||||
" A time of 0 in the KLINE makes it permanent (Never Expires).";
|
||||
" You may also specify the time in the format 1d10h15m30s.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: KLINE <hostmask or nick> [time] <reason> (adds a Kline)";
|
||||
" KLINE -<hostmask> (removes a Kline)";
|
||||
" Example: KLINE *@*.aol.com Abuse (Adds a permanent K:line)";
|
||||
" KLINE *@*.someisp.com 2d Abuse (Adds a K:line for 2 days)";
|
||||
" Syntax: KLINE <hostmask or nick> [time] <reason> (adds a K-Line)";
|
||||
" KLINE -<hostmask> (removes a K-Line)";
|
||||
" Example: KLINE *@*.aol.com Abuse (Adds a permanent K-Line)";
|
||||
" KLINE *@*.someisp.com 2d Abuse (Adds a K-Line for 2 days)";
|
||||
" KLINE Idiot 1d Please go away";
|
||||
" KLINE -*@*.aol.com";
|
||||
" -";
|
||||
" Soft actions (more info at https://www.unrealircd.org/docs/Actions)";
|
||||
" Syntax: KLINE %<hostmask or nick> [time] <reason> (adds a soft K-Line)";
|
||||
" KLINE -%<hostmask> (removes a soft K-Line)";
|
||||
" Example: KLINE %*@*.aol.com Abuse (Adds a permanent soft K-Line)";
|
||||
" KLINE %*@*.someisp.com 2d Abuse (Adds a soft K-Line for 2 days)";
|
||||
" KLINE %Idiot 1d Please go away";
|
||||
" KLINE -%*@*.aol.com";
|
||||
};
|
||||
|
||||
help Zline {
|
||||
" This command provides timed Z:Lines. If you match a Z:Line you cannot";
|
||||
" This command provides timed Z-Lines. If you match a Z-Line you cannot";
|
||||
" connect to the server";
|
||||
" A time of 0 in the ZLINE makes it permanent (Never Expires).";
|
||||
" You may also specify the time in the format 1d10h15m30s.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: ZLINE <*@ipmask> [time] <reason> (adds a Zline)";
|
||||
" ZLINE -<*@ipmask> (removes a Zline)";
|
||||
" Example: ZLINE *@127.0.0.1 Abuse (Adds a permanent Z:line)";
|
||||
" ZLINE *@127.0.0.1 2d Abuse (Adds a Z:line for 2 days)";
|
||||
" Syntax: ZLINE <*@ipmask> [time] <reason> (adds a Z-Line)";
|
||||
" ZLINE -<*@ipmask> (removes a Z-Line)";
|
||||
" Example: ZLINE *@127.0.0.1 Abuse (Adds a permanent Z-Line)";
|
||||
" ZLINE *@127.0.0.1 2d Abuse (Adds a Z-Line for 2 days)";
|
||||
" ZLINE -*@127.0.0.1";
|
||||
" NOTE: requires the can_zline oper flag";
|
||||
};
|
||||
|
||||
help Gline {
|
||||
" This command provides timed G:Lines. If you match a G:Line you cannot";
|
||||
" This command provides timed G-Lines. If you match a G-Line you cannot";
|
||||
" connect to ANY server on the IRC network";
|
||||
" A time of 0 in the GLINE makes it permanent (Never Expires).";
|
||||
" You may also specify the time in the format 1d10h15m30s.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: GLINE <user@host mask or nick> [time] <reason>";
|
||||
" (Adds a G:line for user@host)";
|
||||
" GLINE -<user@host mask> (Removes a G:line for user@host)";
|
||||
" Example: GLINE *@*.idiot.net 900 Spammers (Adds a 15 min G:line)";
|
||||
" GLINE *@*.idiot.net 1d5h Spammers (Adds a 29 hour G:line)";
|
||||
" (Adds a G-Line for user@host)";
|
||||
" GLINE -<user@host mask> (Removes a G-Line for user@host)";
|
||||
" Example: GLINE *@*.idiot.net 900 Spammers (Adds a 15 min G-Line)";
|
||||
" GLINE *@*.idiot.net 1d5h Spammers (Adds a 29 hour G-Line)";
|
||||
" GLINE Idiot 1d Abuse";
|
||||
" GLINE -*@*.idiot.net";
|
||||
" -";
|
||||
" Soft Actions (More info at https://www.unrealircd.org/docs/Actions)";
|
||||
" -";
|
||||
" Syntax: GLINE %<user@host mask or nick> [time] <reason>";
|
||||
" (Adds a G-Line for user@host, but still allows the connection if the";
|
||||
" user has a registered account and identifies using SASL)";
|
||||
" GLINE -%<user@host mask> (Removes a soft G-Line for user@host)";
|
||||
" Example: GLINE %*@*.idiot.net 900 Spammers (Adds a 15 min soft G-Line)";
|
||||
" GLINE %*@*.idiot.net 1d5h Spammers (Adds a 29 hour soft G-Line)";
|
||||
" GLINE %Idiot 1d Abuse";
|
||||
" GLINE -%*@*.idiot.net";
|
||||
" -";
|
||||
" NOTE: requires the can_gkline oper flag";
|
||||
};
|
||||
|
||||
@@ -876,7 +858,7 @@ help Shun {
|
||||
" A time of 0 in the SHUN makes it permanent (Never Expires).";
|
||||
" You may also specify the time in the format 1d10h15m30s.";
|
||||
" IRC Operator only command.";
|
||||
" -");
|
||||
" -";
|
||||
" Syntax: SHUN <nickname> <time> :<Reason> (Shun the nickname for time in seconds)";
|
||||
" SHUN +<user@host> <time> :<Reason>(Shun the user@host for time in seconds)";
|
||||
" SHUN -<user@host> (Removes the SHUN for user@host)";
|
||||
@@ -889,36 +871,20 @@ help Shun {
|
||||
};
|
||||
|
||||
help Gzline {
|
||||
" This command provides timed global Z:line. If you match a Global Z:Line you cannot";
|
||||
" This command provides timed global Z-Line. If you match a Global Z-Line you cannot";
|
||||
" connect to ANY server on the IRC network";
|
||||
" A time of 0 in the GZLINE makes it permanent (Never Expires).";
|
||||
" You may also specify the time in the format 1d10h15m30s.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: GZLINE <*@ipmask> <seconds to be banned> :<reason>";
|
||||
" (Adds a Global Z:line for *@ipmask)";
|
||||
" GZLINE -<*@ipmask> (Removes a Global Z:line for *@ipmask)";
|
||||
" Example: GZLINE *@4.16.200.* 900 Spammers (Adds a 15 min Global Z:line)";
|
||||
" GZLINE *@4.16.200.* 1d5h Spammers (Adds a 29 hour Global Z:line)";
|
||||
" (Adds a Global Z-Line for *@ipmask)";
|
||||
" GZLINE -<*@ipmask> (Removes a Global Z-Line for *@ipmask)";
|
||||
" Example: GZLINE *@4.16.200.* 900 Spammers (Adds a 15 min Global Z-Line)";
|
||||
" GZLINE *@4.16.200.* 1d5h Spammers (Adds a 29 hour Global Z-Line)";
|
||||
" NOTE: requires the can_gzline oper flag";
|
||||
};
|
||||
|
||||
help Akill {
|
||||
" Adds an Autokill for the specific host mask. This prevents";
|
||||
" any user from that hostmask from connecting to the network.";
|
||||
" THIS IS A DEPRICATED COMMAND AND ONLY ACCEPTED FROM SERVERS";
|
||||
" -";
|
||||
" Syntax: AKILL <user@host> :<Reason>";
|
||||
" Example: AKILL foo@aol.com :Spammers!";
|
||||
};
|
||||
|
||||
help Rakill {
|
||||
" Removes an AKILL that was previously set.";
|
||||
" THIS IS A DEPRICATED COMMAND AND ONLY ACCEPTED FROM SERVERS";
|
||||
" -";
|
||||
" Syntax: RAKILL <user@host>";
|
||||
};
|
||||
|
||||
help Rehash {
|
||||
" Prompts the server to reread the configuration files.";
|
||||
" IRC Operator only command.";
|
||||
@@ -931,7 +897,6 @@ help Rehash {
|
||||
" 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:";
|
||||
" -dns - Reinitializes and reloads the resolver";
|
||||
@@ -1014,8 +979,8 @@ help Squit {
|
||||
" Usually used in routing of servers.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: SQUIT <server>";
|
||||
" Example: SQUIT leaf.*";
|
||||
" Syntax: SQUIT <server> [reason]";
|
||||
" Example: SQUIT leaf.server.net bye";
|
||||
};
|
||||
|
||||
help Connect {
|
||||
@@ -1025,8 +990,8 @@ help Connect {
|
||||
" -";
|
||||
" Syntax: CONNECT <server> [port]";
|
||||
" CONNECT <leaf> <port> <hub>";
|
||||
" Example: CONNECT leaf.*";
|
||||
" CONNECT leaf.* 6667 hub.*";
|
||||
" Example: CONNECT leaf.server.net";
|
||||
" CONNECT leaf.server.net 6667 hub.server.net";
|
||||
};
|
||||
|
||||
help Dccdeny {
|
||||
@@ -1072,12 +1037,6 @@ help Samode {
|
||||
" Example: SAMODE #Support +m";
|
||||
};
|
||||
|
||||
help Rping {
|
||||
" This will calculate the Lag (In milliseconds) between servers";
|
||||
" -";
|
||||
" Syntax: RPING <servermask>";
|
||||
};
|
||||
|
||||
help Trace {
|
||||
" You can use TRACE on servers or users.";
|
||||
" When used on a user it will give you class and lag info.";
|
||||
@@ -1106,35 +1065,34 @@ help Sdesc {
|
||||
};
|
||||
|
||||
help Mkpasswd {
|
||||
" 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'):";
|
||||
" *NIX: crypt, md5, sha1 [*], ripemd160 [*]";
|
||||
" Windows: crypt [*], md5, sha1, ripemd160 [*]";
|
||||
" [*: only available if compiled with SSL support]";
|
||||
" 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, such as for oper::password, vhost::password, etc.";
|
||||
" See https://www.unrealircd.org/docs/Authentication_types for a list of";
|
||||
" types and general recommendations.";
|
||||
" -";
|
||||
" Syntax: MKPASSWD <method> <password>";
|
||||
" Example: MKPASSWD md5 IamTeh1337";
|
||||
" Example: MKPASSWD argon2 IamTeh1337";
|
||||
};
|
||||
|
||||
help Module {
|
||||
" This will give you a list of all modules loaded.";
|
||||
" Depending on whether you are a normal user or an oper";
|
||||
" it will give different output.";
|
||||
" -- normal user: --";
|
||||
" Syntax of command: MODULE";
|
||||
" Output of command: *** name - (description) [3RD]";
|
||||
" the [3RD] flag is present if it's an 3rd party module.";
|
||||
" -- ircop: -- ";
|
||||
" Syntax of command: MODULE [server]";
|
||||
" Output of command: *** name - version (description) [optional flags]";
|
||||
" flags can be:";
|
||||
" [PERM]: permanent module (not possible to unload/reload)";
|
||||
" [Unloading]: module is in the process of unloading";
|
||||
" [3RD] 3rd party module";
|
||||
" [OLD?] Lacking Mod_Version, forgot to recompile an old beta* module?";
|
||||
" Additionally you'll see a list of which hooks and command";
|
||||
" This will show the list of modules loaded on the server.";
|
||||
" By default it will only list 3rd party modules, unless you use -all";
|
||||
" -";
|
||||
" Syntax: MODULE [-all] [server]";
|
||||
" Example: MODULE";
|
||||
" -";
|
||||
" The output depends on whether you are a normal user or IRCOp:";
|
||||
" -- Normal user --";
|
||||
" *** name - (description) [3RD]";
|
||||
" The [3RD] flag is present if it's a 3rd party module.";
|
||||
" -- IRCOp -- ";
|
||||
" *** name - version (description) [optional flags]";
|
||||
" The optional flags may contain:";
|
||||
" [PERM]: Permanent module, not possible to unload/reload.";
|
||||
" [PERM-BUT-RELOADABLE]: Module can be reloaded but not unloaded.";
|
||||
" [3RD] 3rd party module, module is not part of UnrealIRCd.";
|
||||
" Additionally you will see a list of which hooks and command";
|
||||
" overrides are present (the hook number can be looked up in";
|
||||
" include/modules.h).";
|
||||
};
|
||||
@@ -1157,26 +1115,9 @@ help Tsctl {
|
||||
" TSCTL SVSTIME <timestamp> (Sets the Time on all Servers)";
|
||||
};
|
||||
|
||||
help Htm {
|
||||
" Switches the server In & Out of High Traffic Mode";
|
||||
" HTM is activated when the server is receiving extremely high amounts of information.";
|
||||
" IRC Operator only command.";
|
||||
" -";
|
||||
" Syntax: HTM [option]";
|
||||
" -";
|
||||
" If no option is specified it just displays the current HTM state";
|
||||
" If an option is specified it does a more specific task, valid options are:";
|
||||
" -";
|
||||
" ON - Force HTM to activate";
|
||||
" OFF - Force HTM to deactivate";
|
||||
" NOISY - Make HTM announce when it is entering/leaving HTM";
|
||||
" QUIET - Stop HTM from announcing when it is entering/leaving HTM";
|
||||
" TO <value> - Tell HTM at what incoming rate to activate HTM";
|
||||
};
|
||||
|
||||
help Svsnick {
|
||||
" Changes the nickname of the user in question.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSNICK <nickname> <new nickname> <timestamp>";
|
||||
" Example: SVSNICK hAtbLaDe Foobar 963086432";
|
||||
@@ -1184,7 +1125,7 @@ help Svsnick {
|
||||
|
||||
help Svsmode {
|
||||
" Changes the mode of the User in question.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSMODE <nickname> <usermode>";
|
||||
" Example: SVSMODE hAtbLaDe +i";
|
||||
@@ -1192,7 +1133,7 @@ help Svsmode {
|
||||
|
||||
help Svskill {
|
||||
" Forcefully disconnects a user from the network.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSKILL <user> :<reason>";
|
||||
" Example: SVSKILL Lamer21 :Goodbye";
|
||||
@@ -1201,15 +1142,15 @@ help Svskill {
|
||||
help Svsnoop {
|
||||
" Enables or disables whether IRCop functions";
|
||||
" exist on the server in question or not.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSNOOP <server> <+/->";
|
||||
" Example: SVSNOOP leaf.* -";
|
||||
" Example: SVSNOOP leaf.server.net -";
|
||||
};
|
||||
|
||||
help Svsjoin {
|
||||
" Forces a user to join a channel.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSJOIN <nick> <channel>[,<channel2>..] [key1[,key2[..]]]";
|
||||
" Example: SVSJOIN hAtbLaDe #jail";
|
||||
@@ -1218,7 +1159,7 @@ help Svsjoin {
|
||||
|
||||
help Svspart {
|
||||
" Forces a user to leave a channel.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSPART <nick> <channel>[,<channel2>..] [<comment>]";
|
||||
" Example: SVSPART hAtbLaDe #Hanson";
|
||||
@@ -1227,18 +1168,18 @@ help Svspart {
|
||||
};
|
||||
|
||||
help Svso {
|
||||
" Gives nick Operflags like the ones in O:lines.";
|
||||
" Gives nick Operflags like the ones in O-Lines.";
|
||||
" Remember to set SVSMODE +o and alike.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSO <nick> <+operflags> (Adds the Operflags)";
|
||||
" SVSO <nick> - (Removes all O:Line flags)";
|
||||
" SVSO <nick> - (Removes all O-Line flags)";
|
||||
" Example: SVSO SomeNick +bBkK";
|
||||
};
|
||||
|
||||
help Swhois {
|
||||
" Changes the WHOIS message of the Nickname.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SWHOIS <nick> :<message> (Sets the SWHOIS)";
|
||||
" SWHOIS <nick> : (Resets the SWHOIS)";
|
||||
@@ -1247,7 +1188,7 @@ help Swhois {
|
||||
|
||||
help Sqline {
|
||||
" Bans a Nickname or a certain Nickname mask from the Server.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SQLINE <nickmask> :<Reason>";
|
||||
" Example: SQLINE *Bot* :No bots";
|
||||
@@ -1255,7 +1196,7 @@ help Sqline {
|
||||
|
||||
help Unsqline {
|
||||
" Un-Bans a Nickname or Nickname mask";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Synax: UNSQLINE <nickmask>";
|
||||
" Example: UNSQLINE *Bot*";
|
||||
@@ -1264,7 +1205,7 @@ help Unsqline {
|
||||
help Svs2mode {
|
||||
" Changes the Usermode of a nickname and displays";
|
||||
" the change to the user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2MODE <nickname> <usermodes>";
|
||||
" Example: SVS2MODE hAtbLaDe +h";
|
||||
@@ -1272,7 +1213,7 @@ help Svs2mode {
|
||||
|
||||
help Svsfline {
|
||||
" Adds the given Filename mask to DCCDENY";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: :server SVSFLINE + file :reason (Add the filename)";
|
||||
" :server SVSFLINE - file (Deletes the filename)";
|
||||
@@ -1281,7 +1222,7 @@ help Svsfline {
|
||||
|
||||
help Svsmotd {
|
||||
"Changes the Services Message Of The Day";
|
||||
"Must be sent through an U:Lined server.";
|
||||
"Must be sent through an U-Lined server.";
|
||||
"Syntax: SVSMOTD # :<text> (Adds to Services MOTD)";
|
||||
" SVSMOTD ! (Deletes the MOTD)";
|
||||
" SVSMOTD ! :<text> (Deletes and Adds text)";
|
||||
@@ -1290,7 +1231,7 @@ help Svsmotd {
|
||||
|
||||
help Svsnline {
|
||||
" Adds a global realname ban.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" 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.";
|
||||
@@ -1305,7 +1246,7 @@ help Svslusers {
|
||||
" Changes the global and/or local maximum user count";
|
||||
" for a server. If -1 is specified for either of the";
|
||||
" values, the current value is kept.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
|
||||
" Example: SVSLUSERS irc.test.com -1 200";
|
||||
@@ -1313,14 +1254,14 @@ help Svslusers {
|
||||
|
||||
help Svswatch {
|
||||
" Changes the WATCH list of a user.";
|
||||
" Must be sent through 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 through 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>";
|
||||
@@ -1329,7 +1270,7 @@ help Svssilence {
|
||||
|
||||
help Svssno {
|
||||
" Changes the snomask of the User in question.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSSNO <nickname> <snomasks>";
|
||||
" Example: SVSSNO joe +Gc";
|
||||
@@ -1338,7 +1279,7 @@ help Svssno {
|
||||
help Svs2sno {
|
||||
" Changes the snomask of a nickname and displays";
|
||||
" the change to the user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2SNO <nickname> <snomasks>";
|
||||
" Example: SVS2SNO joe +Gc";
|
||||
@@ -1346,7 +1287,7 @@ help Svs2sno {
|
||||
|
||||
help Svsnolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVSNOLAG [+|-] <nickname>";
|
||||
" Example: SVSNOLAG + joe";
|
||||
@@ -1354,7 +1295,7 @@ help Svsnolag {
|
||||
|
||||
help Svs2nolag {
|
||||
" Enable 'no fake lag' for a user.";
|
||||
" Must be sent through an U:Lined server.";
|
||||
" Must be sent through an U-Lined server.";
|
||||
" -";
|
||||
" Syntax: SVS2NOLAG [+|-] <nickname>";
|
||||
" Example: SVS2NOLAG + joe";
|
||||
@@ -1364,7 +1305,11 @@ help Spamfilter {
|
||||
" This command adds/removes global spam filters.";
|
||||
" Spamfilters can be used to get rid of spam, advertising, bots, etc.";
|
||||
" -";
|
||||
" Use: /spamfilter [add|del|remove|+|-] [type] [action] [tkltime] [reason] [regex]";
|
||||
" Use: /spamfilter [add|del|remove|+|-] [method] [type] [action] [tkltime] [reason] [string]";
|
||||
" [method] Matching method, must be one of:";
|
||||
" -regex (PCRE fast regex),";
|
||||
" -posix (old 3.2.x POSIX regex), or";
|
||||
" -simple (fastest but only supports ? and * wildcards)";
|
||||
" [type] specifies the target type, you can specify multiple targets:";
|
||||
" 'c' channel msg, 'p' private msg, 'n' private notice,";
|
||||
" 'N' channel notice, 'P' part msg, 'q' quit msg, 'd' dcc,";
|
||||
@@ -1374,22 +1319,22 @@ help Spamfilter {
|
||||
" 'kline', 'gline', 'zline', 'gzline', 'block' (blocks the msg),";
|
||||
" 'dccblock' (unable to send any dccs), 'viruschan' (part all channels";
|
||||
" and join the virus help chan), 'warn' (warn for IRC Operators).";
|
||||
" [regex] this is the actual regex where we should block on";
|
||||
" [string] this is the actual string that should be blocked (regex or simple pattern)";
|
||||
" [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');";
|
||||
" [reason] the reason for the *LINE or blockmsg, CANNOT CONTAIN SPACES,";
|
||||
" '_' will be translated to spaces. Again, if you use '-' for this";
|
||||
" the default (set::spamfilter::ban-reason) is used.";
|
||||
" - ";
|
||||
" A few examples (note they will probably linewrap!):";
|
||||
" /spamfilter add p block - - Come watch me on my webcam";
|
||||
" /spamfilter add p block - Possible_virus_detected,_join_#help Come watch me on my webcam";
|
||||
" /spamfilter add p tempshun - - You_are_infected me\.mpg";
|
||||
" /spamfilter add p gline - - Come watch me on my webcam";
|
||||
" /spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
|
||||
" /spamfilter add p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
|
||||
" /spamfilter del p block - - Come watch me on my webcam*";
|
||||
" /spamfilter add cN gzline 1d No_advertising_please come to irc\..+\..+";
|
||||
" A few examples (note they will probably line-wrap!):";
|
||||
" /spamfilter add -simple p block - - Come watch me on my webcam";
|
||||
" /spamfilter add -simple p block - Possible_virus_detected,_join_#help Come watch me on my webcam";
|
||||
" /spamfilter add -simple p tempshun - - You_are_infected me.mpg";
|
||||
" /spamfilter add -simple p gline - - Come watch me on my webcam";
|
||||
" /spamfilter add -simple p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
|
||||
" /spamfilter add -simple p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
|
||||
" /spamfilter del -simple p block - - Come watch me on my webcam*";
|
||||
" /spamfilter add -regex cN gzline 1d No_advertising_please /come to irc\..+\..+/";
|
||||
};
|
||||
|
||||
help Tempshun {
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,211 @@
|
||||
/* This file will load (nearly) all modules available on UnrealIRCd.
|
||||
* So all commands, channel modes, user modes, etc..
|
||||
*
|
||||
* If you want to have all UnrealIRCd functionality, then include this
|
||||
* file from your unrealircd.conf by using:
|
||||
* include "modules.default.conf";
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* If you want to customize the modules to load you have two options:
|
||||
* 1) Keep the include for modules.default.conf as usual and make use
|
||||
* of blacklist-module "xyz"; to selectively disable modules.
|
||||
* See https://www.unrealircd.org/docs/Blacklist-module_directive
|
||||
* 2) OR, make a copy of this file (eg: name it modules.custom.conf)
|
||||
* and edit it. Then include that file from your unrealircd.conf
|
||||
* instead of this one.
|
||||
* The downside of option #2 is that you will need to track changes
|
||||
* in the original modules.default.conf with each new UnrealIRCd
|
||||
* release to make sure you don't miss any new functionality (as new
|
||||
* important modules may be added you need to add them to your conf).
|
||||
* You don't have this problem with option #1.
|
||||
*/
|
||||
|
||||
/*** Cloaking (for user mode +x) ***/
|
||||
loadmodule "cloak";
|
||||
|
||||
|
||||
/*** Commands ***/
|
||||
|
||||
// User commands (MINIMAL)
|
||||
// These provide just the minimal set of IRC commands that are
|
||||
// required by RFC1459 along with WATCH and MAP.
|
||||
loadmodule "m_admin";
|
||||
loadmodule "m_away";
|
||||
loadmodule "m_invite";
|
||||
loadmodule "m_ison";
|
||||
loadmodule "m_join";
|
||||
loadmodule "m_kick";
|
||||
loadmodule "m_links";
|
||||
loadmodule "m_list";
|
||||
loadmodule "m_lusers";
|
||||
loadmodule "m_map";
|
||||
loadmodule "m_message";
|
||||
loadmodule "m_mode";
|
||||
loadmodule "m_motd";
|
||||
loadmodule "m_names";
|
||||
loadmodule "m_nick";
|
||||
loadmodule "m_part";
|
||||
loadmodule "m_pass";
|
||||
loadmodule "m_pingpong";
|
||||
loadmodule "m_protoctl";
|
||||
loadmodule "m_quit";
|
||||
loadmodule "m_rules";
|
||||
loadmodule "m_topic";
|
||||
loadmodule "m_user";
|
||||
loadmodule "m_userhost";
|
||||
loadmodule "m_watch";
|
||||
loadmodule "m_who";
|
||||
loadmodule "m_whois";
|
||||
loadmodule "m_whowas";
|
||||
|
||||
// User commands (EXTENDED)
|
||||
// These are commands that provide extended functionality.
|
||||
loadmodule "m_botmotd";
|
||||
loadmodule "m_cap";
|
||||
loadmodule "m_cycle";
|
||||
loadmodule "m_dccallow";
|
||||
loadmodule "m_help";
|
||||
loadmodule "m_knock";
|
||||
loadmodule "m_lag";
|
||||
loadmodule "m_sasl";
|
||||
loadmodule "m_setname";
|
||||
loadmodule "m_silence";
|
||||
loadmodule "m_starttls";
|
||||
loadmodule "m_time";
|
||||
loadmodule "m_userip";
|
||||
loadmodule "m_vhost";
|
||||
|
||||
// IRC Operator commands
|
||||
// Note: several of these like m_kill are also server-to-server commands
|
||||
// which are required if you link to other servers.
|
||||
loadmodule "m_addmotd";
|
||||
loadmodule "m_addomotd";
|
||||
loadmodule "m_chghost";
|
||||
loadmodule "m_chgident";
|
||||
loadmodule "m_chgname";
|
||||
loadmodule "m_close";
|
||||
loadmodule "m_connect";
|
||||
loadmodule "m_squit";
|
||||
loadmodule "m_dccdeny";
|
||||
loadmodule "m_globops";
|
||||
loadmodule "m_kill"; /* also server-to-server */
|
||||
loadmodule "m_locops";
|
||||
loadmodule "m_mkpasswd";
|
||||
loadmodule "m_oper";
|
||||
loadmodule "m_opermotd";
|
||||
loadmodule "m_sajoin";
|
||||
loadmodule "m_samode";
|
||||
loadmodule "m_sapart";
|
||||
loadmodule "m_sdesc";
|
||||
loadmodule "m_sethost";
|
||||
loadmodule "m_setident";
|
||||
loadmodule "m_stats";
|
||||
loadmodule "m_tkl"; /* also server-to-server */
|
||||
loadmodule "m_trace";
|
||||
loadmodule "m_tsctl";
|
||||
loadmodule "m_undccdeny";
|
||||
loadmodule "m_unsqline";
|
||||
loadmodule "m_wallops";
|
||||
loadmodule "jumpserver";
|
||||
|
||||
// Server-to-server commands
|
||||
// Don't remove these, unless you never link to other servers.
|
||||
loadmodule "m_eos";
|
||||
loadmodule "m_md";
|
||||
loadmodule "m_netinfo";
|
||||
loadmodule "m_server";
|
||||
loadmodule "m_sjoin";
|
||||
loadmodule "m_sqline";
|
||||
loadmodule "m_swhois";
|
||||
loadmodule "m_umode2";
|
||||
loadmodule "m_sinfo";
|
||||
|
||||
// Services commands
|
||||
// You could disable these if you don't use Services
|
||||
// https://www.unrealircd.org/docs/Services
|
||||
loadmodule "m_sendsno";
|
||||
loadmodule "m_sendumode";
|
||||
loadmodule "m_svsfline";
|
||||
loadmodule "m_svsjoin";
|
||||
loadmodule "m_svskill";
|
||||
loadmodule "m_svslusers";
|
||||
loadmodule "m_svsmode";
|
||||
loadmodule "m_svsmotd";
|
||||
loadmodule "m_svsnick";
|
||||
loadmodule "m_svsnline";
|
||||
loadmodule "m_svsnolag";
|
||||
loadmodule "m_svsnoop";
|
||||
loadmodule "m_svspart";
|
||||
loadmodule "m_svssilence";
|
||||
loadmodule "m_svssno";
|
||||
loadmodule "m_svswatch";
|
||||
|
||||
|
||||
/*** Channel modes ***/
|
||||
loadmodule "chanmodes/floodprot"; /* +f */
|
||||
loadmodule "chanmodes/nocolor"; /* +c */
|
||||
loadmodule "chanmodes/noctcp"; /* +C */
|
||||
loadmodule "chanmodes/stripcolor"; /* +S */
|
||||
loadmodule "chanmodes/issecure"; /* +Z */
|
||||
loadmodule "chanmodes/permanent"; /* +P */
|
||||
loadmodule "chanmodes/link"; /* +L */
|
||||
loadmodule "chanmodes/censor"; /* +G */
|
||||
loadmodule "chanmodes/delayjoin"; /* +D */
|
||||
loadmodule "chanmodes/noknock"; /* +K */
|
||||
loadmodule "chanmodes/noinvite"; /* +V */
|
||||
loadmodule "chanmodes/operonly"; /* +O */
|
||||
loadmodule "chanmodes/nonotice"; /* +T */
|
||||
loadmodule "chanmodes/regonly"; /* +R */
|
||||
loadmodule "chanmodes/nonickchange"; /* +N */
|
||||
loadmodule "chanmodes/nokick"; /* +Q */
|
||||
loadmodule "chanmodes/regonlyspeak"; /* +M */
|
||||
loadmodule "chanmodes/secureonly"; /* +z */
|
||||
|
||||
|
||||
/*** User modes ***/
|
||||
loadmodule "usermodes/bot"; /* +B (mark yourself as a bot) */
|
||||
loadmodule "usermodes/servicebot"; /* +S (service bot) */
|
||||
loadmodule "usermodes/noctcp"; /* +T (block CTCP's) */
|
||||
loadmodule "usermodes/censor"; /* +G (censor bad words) */
|
||||
loadmodule "usermodes/showwhois"; /* +W (show if someone does /WHOIS) */
|
||||
loadmodule "usermodes/privacy"; /* +p (privacy, hide channels in /WHOIS) */
|
||||
loadmodule "usermodes/nokick"; /* +q (unkickable oper) */
|
||||
loadmodule "usermodes/regonlymsg"; /* +R (only registered users may private message you) */
|
||||
loadmodule "usermodes/secureonlymsg"; /* +Z (only SSL/TLS users may private message you) */
|
||||
loadmodule "usermodes/privdeaf"; /* +D (don't let other user PM you) */
|
||||
|
||||
|
||||
/*** Server notice masks */
|
||||
loadmodule "snomasks/dccreject"; /* +D (rejected DCC's) */
|
||||
|
||||
|
||||
/*** Extended Bans ***/
|
||||
loadmodule "extbans/join"; /* +b ~j (prevent only joins) */
|
||||
loadmodule "extbans/quiet"; /* +b ~q (prevent only messaging) */
|
||||
loadmodule "extbans/nickchange"; /* +b ~n (prevent only nick changes) */
|
||||
loadmodule "extbans/realname"; /* +b ~r (ban by real name) */
|
||||
loadmodule "extbans/regnick"; /* +b ~R (ban/exempt if using registered nick) */
|
||||
loadmodule "extbans/account"; /* +b ~a (ban/exempt if logged in with services account) */
|
||||
loadmodule "extbans/inchannel"; /* +b ~c (ban/exempt if in channel) */
|
||||
loadmodule "extbans/operclass"; /* +b ~O (ban/exempt by operclass) */
|
||||
loadmodule "extbans/certfp"; /* +b ~S (ban/exempt by certfp) */
|
||||
loadmodule "extbans/textban"; /* +b ~T (censor or block text) */
|
||||
loadmodule "extbans/msgbypass"; /* +e ~m (bypass message restrictions) */
|
||||
loadmodule "extbans/timedban"; /* +b ~t (timed bans / temporary bans) */
|
||||
|
||||
|
||||
/*** CAP modules ***/
|
||||
loadmodule "cap/sts"; /* strict transport policy (set::ssl::sts-policy) */
|
||||
loadmodule "cap/plaintext-policy"; /* plaintext-policy announce */
|
||||
loadmodule "cap/link-security"; /* link-security announce */
|
||||
|
||||
/*** Other ***/
|
||||
// These are modules that don't fit in any of the previous sections
|
||||
|
||||
loadmodule "certfp"; /* SSL certificate fingerprint in /WHOIS (& more) */
|
||||
loadmodule "ssl_antidos"; /* prevent SSL DoS (renegotiate floods) */
|
||||
loadmodule "m_nopost"; /* Block POST commands (Firefox XPS IRC Attack) */
|
||||
loadmodule "webirc"; /* WEBIRC command. See webirc block. */
|
||||
loadmodule "blacklist"; /* Blacklist support (DNSBL). See blacklist block. */
|
||||
loadmodule "jointhrottle"; /* set::anti-flood::join-flood (previously chanmode +j) */
|
||||
loadmodule "charsys"; /* Provides set::allowed-nickchars (must always be loaded!) */
|
||||
@@ -0,0 +1,259 @@
|
||||
/* This file will load all optional modules. These are features that
|
||||
* not everyone will use or are considered experimental.
|
||||
* You can include this file from your unrealircd.conf like this:
|
||||
* include "modules.optional.conf";
|
||||
* OR... and this is probably a better idea... you can copy-paste it
|
||||
* to another file where you do your own customizations.
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* If you want to customize, make a copy of this file (for example
|
||||
* name it modules.custom.conf) and edit it.
|
||||
* Then include that file from your unrealircd.conf instead of this one.
|
||||
*/
|
||||
|
||||
/*** Commands ***/
|
||||
|
||||
// This add the /IRCOPS command: A more visual way for users
|
||||
// to see which IRCOps are online.
|
||||
loadmodule "m_ircops";
|
||||
|
||||
// This adds the /STAFF command: This command simply displays
|
||||
// a text file that you can configure here:
|
||||
loadmodule "m_staff";
|
||||
set { staff-file "network.staff"; };
|
||||
|
||||
|
||||
/*** Channel modes ***/
|
||||
|
||||
// The following module ('nocodes') is not a true channel mode.
|
||||
// It simply enhances the existing channel mode +S/+c to include
|
||||
// stripping/blocking of bold, underline and italic text.
|
||||
loadmodule "nocodes";
|
||||
|
||||
|
||||
/*** Other ***/
|
||||
|
||||
// The hideserver module will hide /MAP and /LINKS to regular users.
|
||||
// It does not truly enhance security as server names can still be
|
||||
// seen at other places.
|
||||
loadmodule "hideserver";
|
||||
|
||||
// The antirandom module will kill or *line users that have a nick,
|
||||
// ident and/or realname that is considered "random".
|
||||
// This helps to combat simple botnets/drones.
|
||||
// Note that failure to set the right settings may ban innocent users.
|
||||
// This is especially true if you are on a non-English network where
|
||||
// the module may consider a sequence of characters "random" even though
|
||||
// it is a perfectly pronounceable word in your language.
|
||||
loadmodule "antirandom";
|
||||
set {
|
||||
antirandom {
|
||||
/* THRESHOLD:
|
||||
* This is pretty much the most important setting of all.
|
||||
* For every randomly looking ident the user gets a certain amount of
|
||||
* 'points', if this value reaches 'threshold' then the appropriate
|
||||
* action is taken (killed, *lined, see later on).
|
||||
* lower = more randomly looking users will be catched (but also more
|
||||
* innocent users)
|
||||
* higher = less chance of innocent users getting killed, but also less
|
||||
* chance on bots getting catched.
|
||||
* <2: DON'T!!
|
||||
* 4: Works good, probably a few more innocent kills but if you got
|
||||
* quite a bot problem then this might be a useful setting.
|
||||
* 5: Works well with few innocent kills, probably good to begin with.
|
||||
* 6: If you want to be a tad more careful
|
||||
* >6: For the paranoid. Module can still be quite effective, though :)
|
||||
*/
|
||||
threshold 7;
|
||||
|
||||
/* BAN-ACTION:
|
||||
* Action to take whenever the user is catched as random, options:
|
||||
* warn, kill, gline, gzline, kline, zline, shun, tempshun
|
||||
*/
|
||||
ban-action kill;
|
||||
|
||||
/* BAN-TIME:
|
||||
* Time to ban the user (irrelevant for tempshun/kill).
|
||||
* Something between 1 hour and 2 days is recommended.
|
||||
* If you set it higher than 3 or 4 days then you get quite a risk
|
||||
* of catching innocent users due to dynamic IP, not to mention
|
||||
* your *line list gets filled up... so choose it wisely.
|
||||
*/
|
||||
ban-time 4h;
|
||||
|
||||
/* BAN-REASON:
|
||||
* The ban (or kill) reason to use.
|
||||
* You might want to put in an entry to a FAQ or an email address
|
||||
* where users can mail if they have been catched and don't know what to do.
|
||||
* NOTE: One of the various reasons that ""innocent users"" are catched is
|
||||
* if they just randomly type in info for their nick, ident, or realname.
|
||||
*/
|
||||
ban-reason "You look like a bot. Be sure to fill in your nick/ident/realname properly.";
|
||||
|
||||
/* CONVERT-TO-LOWERCASE:
|
||||
* Convert nicks, idents, and realnames to lowercase before doing random checks?
|
||||
* This has not been tested extensively for false positives, but might be (very)
|
||||
* helpful to catch GnStA5FYhiTH51TUkf style random nicks as random.
|
||||
* Enabled by default.
|
||||
*/
|
||||
convert-to-lowercase yes;
|
||||
|
||||
/* FULLSTATUS-ON-LOAD:
|
||||
* If enabled, then upon loading it will check all users that are currently
|
||||
* connected and give a status report about who it would have killed.
|
||||
* Note that it doesn't actually kill any currently connected users, it is for
|
||||
* informative purposes only.
|
||||
* This can be (very) useful if you use the module for the first time.
|
||||
* But you probably want to disable it after a while, since once the module
|
||||
* is actively dealing with randomly looking persons, it shouldn't report any
|
||||
* users anymore on load and then this check only eats useless CPU on /REHASH.
|
||||
* Enabled by default.
|
||||
*/
|
||||
fullstatus-on-load yes;
|
||||
|
||||
/* SHOW-FAILEDCONNECTS:
|
||||
* This will send out a notice whenever a randomly looking user has been catched
|
||||
* during connecting. Obviously this can be pretty noisy.
|
||||
* Especially recommended to enable during the first few days you use this module.
|
||||
*/
|
||||
show-failedconnects yes;
|
||||
|
||||
/* EXCEPT-HOSTS:
|
||||
* Hostmasks on this list are matched against the IP and hostname of the connecting
|
||||
* user. If it matches then we do not check if the nick/ident/realname is random.
|
||||
* NOTE: Use the REAL host or IP here, not any cloaked hosts!
|
||||
*/
|
||||
except-hosts {
|
||||
mask 192.168.*;
|
||||
mask 127.*;
|
||||
};
|
||||
|
||||
/* EXCEPT-WEBIRC:
|
||||
* This will make antirandom not check connections from WEBIRC gateways.
|
||||
* ( see https://www.unrealircd.org/docs/WebIRC_block )
|
||||
* It seems WEBIRC connections frequently cause false positives so the
|
||||
* default is 'yes'.
|
||||
*/
|
||||
except-webirc yes;
|
||||
};
|
||||
};
|
||||
|
||||
// This adds websocket support. For more information, see:
|
||||
// https://www.unrealircd.org/docs/WebSocket_support
|
||||
loadmodule "websocket";
|
||||
|
||||
// This adds support for WHOX
|
||||
// This is currently experimental!
|
||||
loadmodule "m_whox";
|
||||
|
||||
// This module will detect and stop spam containing of characters of
|
||||
// mixed "scripts", where (for example) some characters are in
|
||||
// Latin script and other characters are in Cyrillic script.
|
||||
loadmodule "antimixedutf8";
|
||||
set {
|
||||
antimixedutf8 {
|
||||
/* Take action at this 'score'.
|
||||
* 10 is a good and safe default.
|
||||
*/
|
||||
score 10;
|
||||
|
||||
/* Action to take, see:
|
||||
* https://www.unrealircd.org/docs/Actions
|
||||
*/
|
||||
ban-action block;
|
||||
|
||||
/* Block/kill/ban reason (sent to user) */
|
||||
ban-reason "Possible mixed character spam";
|
||||
|
||||
/* Duration of ban (does not apply to block/kill) */
|
||||
ban-time 4h; // For other types
|
||||
};
|
||||
};
|
||||
|
||||
// This provides an authentication prompt if a user is forced to
|
||||
// authenticate due to a 'require authentication' block or for
|
||||
// some other reason. It tells them to use SASL or type /AUTH user:pass
|
||||
// See also the following article for more general information:
|
||||
// https://www.unrealircd.org/docs/Authentication
|
||||
// NOTE: This feature is currently experimental.
|
||||
loadmodule "authprompt";
|
||||
set {
|
||||
authentication-prompt {
|
||||
/* Enabled or not? */
|
||||
enabled yes;
|
||||
|
||||
message "The server requires clients from this IP address to authenticate with a registered nickname and password.";
|
||||
message "Please reconnect using SASL, or authenticate now by typing: /QUOTE AUTH nick:password";
|
||||
/* As you can see you can have multiple 'message' items.
|
||||
* It may be useful to refer to a webpage for more
|
||||
* information and/or where users can register their nick.
|
||||
*/
|
||||
|
||||
//fail-message "Authentication failed";
|
||||
/* Multiple fail-message lines are also supported */
|
||||
};
|
||||
};
|
||||
// If you use the authprompt module then you may want to raise the
|
||||
// timeout in which users must complete the handshake.
|
||||
// By uncommenting the following, you can raise it from 30 to 60 seconds:
|
||||
// set { handshake-timeout 60s; };
|
||||
|
||||
/*
|
||||
* The following will configure connection throttling of "unknown users".
|
||||
*
|
||||
* When UnrealIRCd detects a high number of users connecting from IP addresses
|
||||
* that have not been seen before, then connections from new IP's are rejected
|
||||
* above the set rate. For example at 10:60 only 10 users per minute can connect
|
||||
* that have not been seen before. Known IP addresses can always get in,
|
||||
* regardless of the set rate. Same for users who login using SASL.
|
||||
*
|
||||
* See also https://www.unrealircd.org/docs/Connthrottle
|
||||
* Or just keep reading the default configuration below:
|
||||
*/
|
||||
|
||||
loadmodule "reputation";
|
||||
loadmodule "connthrottle";
|
||||
|
||||
set {
|
||||
connthrottle {
|
||||
/* First we must configure what we call "known users".
|
||||
* By default these are users on IP addresses that have
|
||||
* a score of 24 or higher. A score of 24 means that the
|
||||
* IP was connected to this network for at least 2 hours
|
||||
* in the past month (or minimum 1 hour if registered).
|
||||
* The sasl-bypass option is another setting. It means
|
||||
* that users who authenticate to services via SASL
|
||||
* are considered known users as well.
|
||||
* Users in the "known-users" group (either by reputation
|
||||
* or by SASL) are always allowed in by this module.
|
||||
*/
|
||||
known-users {
|
||||
minimum-reputation-score 24;
|
||||
sasl-bypass yes;
|
||||
};
|
||||
|
||||
/* New users are all users that do not belong in the
|
||||
* known-users group. They are considered "new" and in
|
||||
* case of a high number of such new users connecting
|
||||
* they are subject to connection rate limiting.
|
||||
* By default the rate is 20 new local users per minute
|
||||
* and 30 new global users per minute.
|
||||
*/
|
||||
new-users {
|
||||
local-throttle 20:60;
|
||||
global-throttle 30:60;
|
||||
};
|
||||
|
||||
/* This configures when this module will NOT be active.
|
||||
* The default settings will disable the module when:
|
||||
* - The reputation module has been running for less than
|
||||
* a week. If running less than 1 week then there is
|
||||
* insufficient data to consider who is a "known user".
|
||||
* - The server has just been booted up (first 3 minutes).
|
||||
*/
|
||||
disabled-when {
|
||||
reputation-gathering 1w;
|
||||
start-delay 3m;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,140 @@
|
||||
/* This file defines a number of default operclass blocks which you can
|
||||
* use in your oper blocks (via oper::operclass).
|
||||
*
|
||||
* This file is normally included from your unrealircd.conf through:
|
||||
* include "operclass.default.conf";
|
||||
*
|
||||
* The operclass block is extensively documented at:
|
||||
* https://www.unrealircd.org/docs/Operclass_block
|
||||
* And the permissions itself (operclass::permissions) at:
|
||||
* https://www.unrealircd.org/docs/Operclass_permissions
|
||||
*
|
||||
* DO NOT EDIT THIS FILE! IT WILL BE OVERWRITTEN DURING NEXT UPGRADE!!
|
||||
* Instead, if you want to change the permissions in an operclass block,
|
||||
* you should copy the definition, or this entire file, to either your
|
||||
* unrealircd.conf or some other file (eg: operclass.conf) that you
|
||||
* you will include from your unrealircd.conf.
|
||||
* Then edit it, and while doing so don't forget to change the name
|
||||
* of your custom operclass block(s), so operclass <name>.
|
||||
*/
|
||||
|
||||
/* Local IRC Operator */
|
||||
operclass locop {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; override { flood; }; };
|
||||
client { see; };
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash; };
|
||||
route { local; };
|
||||
kill { local; };
|
||||
server-ban {
|
||||
kline;
|
||||
zline { local; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* Global IRC Operator */
|
||||
operclass globop {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban { dccdeny; shun; zline; kline; gline; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Server administrator */
|
||||
operclass admin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
addomotd; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban;
|
||||
};
|
||||
};
|
||||
|
||||
/* Services Admin */
|
||||
operclass services-admin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
addomotd; tsctl { view; }; };
|
||||
route;
|
||||
kill;
|
||||
server-ban;
|
||||
sacmd;
|
||||
services;
|
||||
};
|
||||
};
|
||||
|
||||
/* Network Administrator */
|
||||
operclass netadmin {
|
||||
permissions {
|
||||
chat;
|
||||
channel { operonly; see; override { flood; }; };
|
||||
client;
|
||||
immune;
|
||||
self;
|
||||
server { opermotd; info; close; module; dns; rehash;
|
||||
remote; description; addmotd;
|
||||
addomotd; tsctl; };
|
||||
route;
|
||||
kill;
|
||||
server-ban;
|
||||
sacmd;
|
||||
services;
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'globop' operclass, but with OperOverride capabilities added */
|
||||
operclass globop-with-override {
|
||||
parent globop;
|
||||
permissions {
|
||||
channel { operonly; see; override; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'admin' operclass, but with OperOverride capabilities added */
|
||||
operclass admin-with-override {
|
||||
parent admin;
|
||||
permissions {
|
||||
channel { operonly; see; override; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'services-admin' operclass, but with OperOverride capabilities added */
|
||||
operclass services-admin-with-override {
|
||||
parent services-admin;
|
||||
permissions {
|
||||
channel { operonly; see; override; };
|
||||
};
|
||||
};
|
||||
|
||||
/* Same as 'netadmin' operclass, but with OperOverride capabilities added */
|
||||
operclass netadmin-with-override {
|
||||
parent netadmin;
|
||||
permissions {
|
||||
channel { operonly; see; override; };
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
* This configuration file contains example spamfilter rules.
|
||||
* They are real rules that were useful a long time ago.
|
||||
* Since 2005 these rules are no longer maintained.
|
||||
* The main purpose nowadays is to serve as an example
|
||||
* to give you an idea of how powerful spamfilters can
|
||||
* be in real-life situations.
|
||||
*
|
||||
* Documentation on spamfilter is available at:
|
||||
* https://www.unrealircd.org/docs/Spamfilter
|
||||
*/
|
||||
|
||||
/* General note:
|
||||
* If you want to use a \ in a spamfilter, or in fact
|
||||
* anywhere in the configuration file, then you need
|
||||
* to escape this to \\ instead.
|
||||
*/
|
||||
|
||||
|
||||
/* First some spamfilters with match-type 'simple'.
|
||||
* The only matchers available are * and ?
|
||||
* PRO's: very fast, easy matching: everyone can do this.
|
||||
* CON's: limited ability to fine-tune spamfilters
|
||||
*/
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "Come watch me on my webcam and chat /w me :-) http://*:*/me.mpg";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by fyle trojan: see http://www.sophos.com/virusinfo/analyses/trojfylexa.html";
|
||||
};
|
||||
|
||||
/* This signature uses a \ which has to escaped to \\ in the configuration file */
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "C:\\WINNT\\system32\\*.zip";
|
||||
target dcc;
|
||||
action block;
|
||||
reason "Infected by Gaggle worm?";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "Speed up your mIRC DCC Transfer by up to 75%*www.freewebs.com/mircupdate/mircspeedup.exe";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type simple;
|
||||
match "STOP SPAM, USE THIS COMMAND: //write nospam $decode(*) | .load -rs nospam | //mode $me +R";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm";
|
||||
};
|
||||
|
||||
|
||||
/* Now spamfilters of type 'regex'.
|
||||
* These use powerful regular expressions (Perl/PCRE style)
|
||||
* You may have to learn more about "regex" first before you
|
||||
* can use them. For example the dot ('.') has special meaning.
|
||||
*/
|
||||
|
||||
/* This regex shows a pattern which requires 20 paramaters,
|
||||
* such as "x x x x x x x x x x x x x x x x x x x x"
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}";
|
||||
target { private; channel; };
|
||||
action kill;
|
||||
reason "mIRC 6.0-6.11 exploit attempt";
|
||||
};
|
||||
|
||||
/* Similarly, this regex shows a pattern that matches
|
||||
* against at least 225 characters in length.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "\x01DCC (SEND|RESUME).{225}";
|
||||
target { private; channel; };
|
||||
action kill;
|
||||
reason "Possible mIRC 6.12 exploit attempt";
|
||||
};
|
||||
|
||||
/* Earlier you saw an example of a $decode exploit which used
|
||||
* match-type 'simple' and - indeed - the filter was quite simple.
|
||||
* The following uses a regex with a similar example.
|
||||
* Regular expressions are very powerful but here you can see
|
||||
* that it actually complicates writing a filter quite a bit.
|
||||
* With regex in this filter we need to escape the ( and all
|
||||
* the dots, question marks, etc. if we want to match these
|
||||
* characters in literal text.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$";
|
||||
target private;
|
||||
action block;
|
||||
reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan.";
|
||||
};
|
||||
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^http://www\.angelfire\.com/[a-z0-9]+/[a-z0-9]+/[a-z_]+\.jpg <- .*!";
|
||||
target private;
|
||||
action block;
|
||||
reason "Infected by fagot worm: see http://www.f-secure.com/v-descs/fagot.shtml";
|
||||
};
|
||||
|
||||
/* This shows a regex which specifically matches an entire line by
|
||||
* the use of ^ and $
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^!login Wasszup!$";
|
||||
target channel;
|
||||
action gline;
|
||||
reason "Attempting to login to a GTBot";
|
||||
};
|
||||
|
||||
/* An example of how to match against an IP address in text (IPv4 only) */
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "^!packet ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15}";
|
||||
target channel;
|
||||
action gline;
|
||||
reason "Attempting to use a GTBot";
|
||||
};
|
||||
|
||||
/* A slightly more complex example with a partial OR matcher (|) */
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "(^wait a minute plz\. i am updating my site|.*my erotic video).*http://.+/erotic(a)?/myvideo\.exe$";
|
||||
target private;
|
||||
action gline;
|
||||
reason "Infected by some trojan (erotica?)";
|
||||
};
|
||||
|
||||
/* In regex a \ is special and needs to be escaped to \\
|
||||
* However in this configuration file, \ is also special and
|
||||
* needs to be escaped to \\ as well.
|
||||
* The result is that we need double escaping:
|
||||
* To match a \ you need to write \\\\ in the configuration file.
|
||||
*/
|
||||
spamfilter {
|
||||
match-type regex;
|
||||
match "C:\\\\WINNT\\\\system32\\\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip";
|
||||
target dcc;
|
||||
action dccblock;
|
||||
reason "Infected by Gaggle worm";
|
||||
};
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,845 +0,0 @@
|
||||
/*
|
||||
* example.conf by Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Works for Unreal3.2 and up
|
||||
*
|
||||
* 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
|
||||
* with some pratice and reading you'll understand.
|
||||
*
|
||||
* Just copy this file to your main unrealircd dir and call it 'unrealircd.conf'.
|
||||
*
|
||||
* NOTE: All lines, except the opening { line, end in an ;, including the
|
||||
* 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
|
||||
* 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 */
|
||||
#Comment type 1 (Shell type)
|
||||
// Comment type 2(C++ style)
|
||||
/* Comment type 3 (C Style) */
|
||||
#those lines are ignored by the ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supports modules, loading some of them is required.
|
||||
* You need at least the commands module and a cloaking module.
|
||||
*/
|
||||
|
||||
/* 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";
|
||||
|
||||
/*
|
||||
* You can also include other configuration files.
|
||||
* help.conf contains all the /helpop text. The badwords.*.conf
|
||||
* files contain all the badword entries for mode +G...
|
||||
* spamfilter.conf contains some good rules for current trojans.
|
||||
* You probably want to include them:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEW: me {}
|
||||
* OLD: M:Line
|
||||
* me {} defines the name, description and unreal server numeric for
|
||||
* this server. Syntax is as follows:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Description";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* If linking, this numeric may not be used by any other server on the network.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: admin {}
|
||||
* OLD: A:Line
|
||||
* Admin gives information on the server admin. you
|
||||
* may put as many lines under admin { as you wish.
|
||||
* Syntax is as follows:
|
||||
* admin {
|
||||
* "first line";
|
||||
* "second line";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: class {}
|
||||
* OLD: Y:line (old was confusing)
|
||||
* These define settings for classes. A class is a group setting for
|
||||
* connections. Example, server connections, instead of going to a client's
|
||||
* class, you direct it to the server class. Syntax is as follows
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (how often to ping a user/server in seconds);
|
||||
* maxclients (how many connections for this class);
|
||||
* sendq (maximum send queue from a connection);
|
||||
* 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; /* Max servers we can have linked at a time */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* How many seconds between each connection attempt */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow {}
|
||||
* OLD: I:Line
|
||||
* This defines allowing of connections...
|
||||
* Basically for clients, it allows them to connect so you can have some
|
||||
* control and/or set a password.
|
||||
* Syntax is as follows:
|
||||
* allow {
|
||||
* ip (ip mask to allow);
|
||||
* hostname (host mask);
|
||||
* class (class to send them to [see class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (how many connections per 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 "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: allow channel {}
|
||||
* OLD: chrestrict
|
||||
* Allows a user to join a channel...
|
||||
* like an except from deny channel.
|
||||
* Syntax:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: oper {}
|
||||
* OLD: O:Line
|
||||
* Defines an IRC Operator
|
||||
* IRC operators are there to keep sanity to the server and usually keep it
|
||||
* maintained and connected to the network.
|
||||
* The syntax is as follows:
|
||||
* 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
|
||||
* {
|
||||
* (flags here*);
|
||||
* };
|
||||
* OR
|
||||
* flags "old type flags, like OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* For a list of oper flags, see doc/unreal32docs.html#operblock
|
||||
* [HIGHLY recommended to read]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: listen {}
|
||||
* OLD: P:Line
|
||||
* This defines a port for the ircd to bind to, to
|
||||
* allow users/servers to connect to the server.
|
||||
* Syntax is as follows:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* 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
|
||||
*/
|
||||
|
||||
/* NOTE ON SSL PORTS: SSL ports are pretty non-standardized,
|
||||
* besides numerous high-SSL ports, some people say you should run
|
||||
* it at 994 because that's the official SSL port.. but that
|
||||
* requires root! Besides, port 194 is the official irc port and
|
||||
* have you ever seen an ircd running on that?
|
||||
* So, our suggestion is to use port 6697 for SSL, this is used by
|
||||
* quite some networks and is recognized by for example StunTour.
|
||||
* You are free to open up as many SSL ports as you want, but
|
||||
* by (also) using 6697 you help the world standardize a bit ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* NOTE: If you are on an IRCd shell with multiple IP's you are
|
||||
* likely to get 'Address already in use' errors in your log
|
||||
* and the ircd won't start. This means you MUST bind
|
||||
* to a specific IP instead of '*', so for example:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Obviously, replace the IP with the IP that was assigned to you.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEW: link {}
|
||||
* OLD: C/N:Lines
|
||||
* This defines an okay for a server connection.
|
||||
* NOTE: BOTH SERVERS NEED A LINK {} SETTING TO CONNECT PROPERLY!
|
||||
* Syntax is as follows:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * works too);
|
||||
* hostname (ip number/hostmask);
|
||||
* bind-ip (What IP to bind to when connecting, or *);
|
||||
* port (port to connect to, if any);
|
||||
* hub (If this is a hub, * works, or servermasks it may bring in);
|
||||
* [or leaf *;]
|
||||
* password-connect "(pass to send)";
|
||||
* password-receive "(pass we should receive)";
|
||||
* class (class to direct servers into);
|
||||
* options {
|
||||
* (options here*);
|
||||
* };
|
||||
* // 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";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
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: You should not use autoconnect when linking services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEW: ulines {}
|
||||
* OLD: U:Line
|
||||
* U-lines give servers more power/commands, this should ONLY be set
|
||||
* for services/stats servers and NEVER for normal UnrealIRCd servers!
|
||||
* Syntax is as follows:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: drpass {}
|
||||
* OLD: X:Line
|
||||
* This defines the passwords for /die and /restart.
|
||||
* Syntax is as follows:
|
||||
* drpass {
|
||||
* restart "(password for restarting)";
|
||||
* die "(password for die)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* 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, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the
|
||||
same log */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: alias {}
|
||||
* OLD: N/A
|
||||
* This allows you to set command aliases such as /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [NOTE: You could also include a pre-defined alias file here, see doc/unreal32docs.html section 2.9]
|
||||
*/
|
||||
|
||||
// This points the command /nickserv to the user NickServ who is connected to the set::services-server server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// If you want the command to point to the same nick as the command, you can leave the nick entry out
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Points the /statserv command to the user StatServ on the set::stats-server server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Points the /superbot command to the user SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard 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
|
||||
* This allows you to set command aliases such as /identify, /services, etc
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* parameters "parameters to send";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* This is shown seperately because even though it has teh same name as the previous directive, it is very
|
||||
* different in syntax, although it provides a similar function and relys on the standard aliases to work.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* The alias::format directive is a regular expression. The first format matches the /identify command when
|
||||
* the first character is a #. It then passes this along to the chanserv alias with the parameters IDENTIFY
|
||||
* %1-. The second format matches then /identify command when the first character is not a #. It then
|
||||
* passes the command to the nickserv alias with parameters IDENTIFY %1-.
|
||||
*/
|
||||
|
||||
/* The alias::format::parameters is similar to scripting languages. %N (where N is a number) represents a
|
||||
* parameter sent to the command (in this case /identify). If you specify %N- it means all parameters from
|
||||
* N until the last parameter in the string. You may also specify %n which is replaced by
|
||||
* the user's nickname.
|
||||
*/
|
||||
|
||||
/* 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;
|
||||
};
|
||||
|
||||
/* 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 {}
|
||||
* OLD: T:Line
|
||||
* This sets a different motd and rules files
|
||||
* depending on the clients hostmask.
|
||||
* Syntax is as follows:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* note: you can just delete the example block above,
|
||||
* in which case the defaults motd/rules files (ircd.motd, ircd.rules)
|
||||
* will be used for everyone.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEW: ban nick {}
|
||||
* OLD: Q:Line
|
||||
* Bans a nickname, so it can't be used.
|
||||
* Syntax is as follows:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserved for Services";
|
||||
};
|
||||
/*
|
||||
* NEW: ban ip {}
|
||||
* OLD: Z:Line
|
||||
* Bans an ip from connecting to the network.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip number/hostmask); reason "(reason)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Delinked server";
|
||||
};
|
||||
/*
|
||||
* NEW: ban server {}
|
||||
* OLD: Server Q:Line
|
||||
* Disables a server from connecting to the network.
|
||||
* if the server links to a remote server, local server
|
||||
* will disconnect from the network.
|
||||
* Syntax is as follows:
|
||||
* ban server {
|
||||
* mask "(server name)";
|
||||
* reason "(reason to give)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Get out of here.";
|
||||
};
|
||||
/*
|
||||
* NEW: ban user {}
|
||||
* OLD: K:Line
|
||||
* This makes it so a user from a certain mask can't connect
|
||||
* to your server.
|
||||
* Syntax:
|
||||
* ban user { mask (hostmask/ip number); reason "(reason)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: ban realname {}
|
||||
* OLD: n:Line
|
||||
* This bans a certain realname from being used.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(real name)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE FOR ALL BANS, they may be repeated for addition entries!
|
||||
*
|
||||
* NEW: except ban {}
|
||||
* OLD: E:Line
|
||||
* This makes it so you can't get banned.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* Repeat the except ban {} as many times
|
||||
* as you want for different hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny dcc {}
|
||||
* OLD: dccdeny.conf
|
||||
* Use this to block dcc send's... stops
|
||||
* viruses better.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "file to block (ie, *exe)";
|
||||
* reason "reason";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: deny channel {}
|
||||
* OLD: N/A (NEW)
|
||||
* This blocks channels from being joined.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "reason";
|
||||
* class "clients"; (optional)
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez is illegal";
|
||||
class "clients";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEW: vhost {}
|
||||
* OLD: Vhost.conf file
|
||||
* This sets a fake ip for non-opers, or
|
||||
* opers too lazy to /sethost :P
|
||||
* Syntax:
|
||||
* 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 *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* You can include other configuration files */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
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 should be the same at all servers on the network.
|
||||
* They are used for generating masked hosts and should be kept secret.
|
||||
* The keys should be 3 random strings of 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";
|
||||
"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";
|
||||
};
|
||||
};
|
||||
|
||||
/* Server specific configuration */
|
||||
|
||||
set {
|
||||
kline-address "set.this.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* You can enable ident checking here if you want */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* The minimum time a user must be connected before being allowed to use a QUIT message,
|
||||
* This will hopefully help stop spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Make the message in static-quit show in all quits - meaning no
|
||||
custom quits are allowed on local server */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* You can also block all part reasons by uncommenting this and say 'yes',
|
||||
* or specify some other text (eg: "Bye bye!") to always use as a comment.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* This allows you to make certain stats oper only, use * for all stats,
|
||||
* leave it out to allow users to see all stats. Type '/stats' for a full list.
|
||||
* Some admins might want to remove the 'kGs' to allow normal users to list
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: this example sets a limit of 3 connection attempts per 60s (per host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti flood protection */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nickchanges per 60 seconds (the default) */
|
||||
};
|
||||
|
||||
/* Spam filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* default duration of a *line ban set by spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* default reason */
|
||||
virus-help-channel "#help"; /* channel to use for 'viruschan' action */
|
||||
/* except "#help"; channel to exempt from filtering */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 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.unrealircd.org #unreal-support,
|
||||
* note that we require you to READ THE DOCUMENTATION and FAQ first!
|
||||
*/
|
||||
@@ -1,786 +0,0 @@
|
||||
/*
|
||||
* example.conf von Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
*
|
||||
* Arbeitet mit Unreal3.2 und darüber
|
||||
*
|
||||
* 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
|
||||
* damit umzugehen, aber mit ein Wenig Übung und sorgfältigem Lesen sollte das zu
|
||||
* verstehen sein.
|
||||
*
|
||||
* Diese Datei ist einfach in das Hauptverzeichnis des UnrealIRCD zu kopieren und in
|
||||
* 'unrealircd.conf' umzubenennen.
|
||||
*
|
||||
* ZU BEACHTEN: Sämtliche Zeilen außer der mit einer '{' zu Beginn werden mit dem Zeichen
|
||||
* ';' beendet, auch die Zeile mit '}'. (Beliebter Syntaxfehler!)
|
||||
* Kommentar Zeilen werden vom IRCd ignoriert.
|
||||
*
|
||||
* 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)
|
||||
*/
|
||||
|
||||
/* Kommentar Typen */
|
||||
#Kommentar Typ 1 (Shell Typ)
|
||||
// Kommentar Typ 2(C++ Stil)
|
||||
/* Kommentar Typ 3 (C Stil) */
|
||||
#Solche Zeilen vom Typ 1, 2 oder 3 werden vom ircd ignoriert.
|
||||
|
||||
/*
|
||||
* UnrealIRCd arbeitet mit Modulen, die geladen werden, wenn sie benötigt werden.
|
||||
* Man benötigt mindestens das commands Modul und ein cloaking Modul.
|
||||
*/
|
||||
|
||||
/* FÜR *NIX (Unix, Linux, Xenix etc.), sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* FÜR Windows sind diese 2 Zeilen auszukommentieren: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Man kann über eine 'include' Anweisung auch weitere Konfigurationsdateien einfügen.
|
||||
* help.conf enthält sämtliche /helpop Texte. Die badwords.*.conf filtert alle badword
|
||||
* Einträge für den Modus +G...
|
||||
* Die spamfilter.conf enthält einige wirksame Regeln für aktuelle Trojaner.
|
||||
* Falls man diese Dateien mit einfügen möchte:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* NEU: me {}
|
||||
* ALT: M:Line
|
||||
* me {} legt Name, Beschreibung und eindeutige Nummer ('numeric') für diesen Server fest.
|
||||
* Syntax ist wie folgt:
|
||||
* me {
|
||||
* name "server.name";
|
||||
* info "Server Beschreibung";
|
||||
* numeric (server numeric*);
|
||||
* };
|
||||
* Falls der Server mit anderen gelinkt wird, darf muss die Nummer bei 'numeric' eindeutig
|
||||
* sein, darf also von keinem anderen Server im Netzwerk verwendet werden.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: admin {}
|
||||
* ALT: A:Line
|
||||
* Admin liefert Informationen über den Server Administrator. Man kann
|
||||
* so viele Zeilen unter 'admin {' angeben, wie man will.
|
||||
* Syntax ist wie folgt:
|
||||
* admin {
|
||||
* "erste Zeile";
|
||||
* "zweite Zeile";
|
||||
* [usw]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* 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
|
||||
* eigenen Klasse behandeln, statt zusammen mit Clients.
|
||||
* Syntax ist wie folgt:
|
||||
* class (class name)
|
||||
* {
|
||||
* pingfreq (wie oft in Sekunden wird ein user/server angepingt);
|
||||
* maxclients (wie viele Verbindungen sind in dieser Klasse möglich);
|
||||
* sendq (maximale send Queue einer Verbindung);
|
||||
* recvq (maximale Empfangs Queue einer Verbindung [Flood Kontrolle!]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Wieviele Servers können gleichzeitig gelinkt sein */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Wieviele Sekunden zwischen jedem Verbindungsversuch */
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow {}
|
||||
* ALT: I:Line
|
||||
* Hier wird festgelegt, welche Verbindungen erlaubt sind...
|
||||
* Grundlegend kann man damit Clienten erlauben, zu verbinden und hat etwas Kontrolle
|
||||
* Syntax ist wie folgt:
|
||||
* allow {
|
||||
* ip (ip Maske für allow);
|
||||
* hostname (host Maske);
|
||||
* class (Klasse, die zugewiesen wird [siehe class {}]);
|
||||
* password "(password)"; (optional)
|
||||
* maxperip (wie viele Verbindungen je 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 "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: allow channel {}
|
||||
* ALT: chrestrict
|
||||
* Erlaubt es Usern, einen Channel zu betreten...
|
||||
* Ist wie eine Ausnahme von 'deny channel'.
|
||||
* Syntax ist wie folgt:
|
||||
* allow channel {
|
||||
* channel "channel name";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#WarezSucks";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: oper {}
|
||||
* ALT: O:Line
|
||||
* Legt einen IRC Operator fest
|
||||
* IRC Operatoren halten den Server in Ordnung, warten ihn und halten die Verbindung
|
||||
* zum Netzwerk.
|
||||
* Syntax ist wie folgt:
|
||||
* oper (login) {
|
||||
* class (Klasse, die zugewiesen wird, falls anders als meine, wird eine neuee Klasse
|
||||
* zugewiesen);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (Flags hier*);
|
||||
* };
|
||||
* ODER
|
||||
* flags "alte Form von Flags, wie OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Die Liste möglicher Oper Flags kann in doc/unreal32docs.html#operblock nachgelesen werden
|
||||
* [WIRKLICH empfehlenswert, zu lesen!]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: listen {}
|
||||
* ALT: P:Line
|
||||
* Legt den Port fest, an dem der ircd 'lauscht', um Usern/Servern zu erlauben, eine
|
||||
* Verbindung zum Server aufzunehmen.
|
||||
* Syntax ist wie folgt:
|
||||
* listen (ip number):(port number)
|
||||
* {
|
||||
* options {
|
||||
* (options here);
|
||||
* };
|
||||
* };
|
||||
* oder für ein einfaches listen:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* ACHTUNG: für ipv6 ips (3ffe:b80:2:51d::2 etc), benutze listen [ip]:port;
|
||||
*
|
||||
* Das funktioniert ebenfalls.
|
||||
*/
|
||||
|
||||
/* Options for listen:
|
||||
OLD | NEW
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* ZU BEACHTEN BEI SSL PORTS: SSL Ports sind nicht standardisiert.
|
||||
* Es wird oft gesagt, man solle den Port 994 benutzen, weil dies der
|
||||
* offizielle SSL Port sei. Aber das erfordert root Rechte! Andererseits
|
||||
* ist der Port 194 der offizielle Port und wann hat man je einen Ircd
|
||||
* auf diesem Port laufen gesehen?
|
||||
* Unsere Empfehlung ist, den Port 6697 für SSL zu benutzen, wie es auch
|
||||
* bei vielen anderen Netzwerken gemacht wird und für z.B. StunTour benutzt wird.
|
||||
* Man kann so viele SSL Ports öffnen, wie man will, aber wenn man (auch) den Port
|
||||
* 6697 benutzt, hilft man mit, die Welt ein klein wenig zu standardisieren ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* ACHTUNG: Wird der IRCd auf einer Shell mit verschiedenen IP's ausgeführt, kann
|
||||
* die Fehlermeldung 'Address already in use' ('Adresse wird schon benutzt')
|
||||
* in den Logfiles auftauchen und der IRCd startet nicht.
|
||||
* Das bedeutet, dass man eine spezifische Adresse anstelle von '*' definieren
|
||||
* MUSS, wie z.B.:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Es sollte klar sein, dass die IP durch die zu ersetzen ist, die einem
|
||||
* zugewiesen ist.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: link {}
|
||||
* ALT: C/N:Lines
|
||||
* Hiermit wird ein okay für eine Server Verbindung festgelegt.
|
||||
* ACHTUNG: BEIDE SERVER MÜSSEN EINE LINK {} EINSTELLUNG HABEN, UM KORREKT ZU VERBINDEN!
|
||||
* Syntax ist wie folgt:
|
||||
* link (server name)
|
||||
* {
|
||||
* username (username, * funktioniert auch);
|
||||
* hostname (ip Nummer/Hostmaske);
|
||||
* bind-ip (Welche IP soll zum Verbinden benutzt werden, oder *);
|
||||
* port (Port, zu dem verbunden werden soll);
|
||||
* hub (Wenn dies ein Hub ist, funktioniert * , oder Servermasken);
|
||||
* [oder leaf *;]
|
||||
* password-connect "(Passwort zu senden)";
|
||||
* password-receive "(Passwort, welches wir emfangen sollten)";
|
||||
* class (Klasse, in die Server sollen);
|
||||
* 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
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
options:
|
||||
OLD | NEW
|
||||
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 {
|
||||
/* Achtung: autoconnect sollte nicht benutzt werden, wenn man Services linkt */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* NEU: ulines {}
|
||||
* ALT: U:Line
|
||||
* U-lines geben Servern mehr Möglichkeiten/Befehle, sie sollten NUR für Services/Stats
|
||||
* gesetzt werden und NIEMALS für normale UnrealIRCd Server!
|
||||
* Syntax ist wie folgt:
|
||||
* ulines {
|
||||
* (server to uline);
|
||||
* (server to uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: drpass {}
|
||||
* ALT: X:Line
|
||||
* Hiermit werden die Passworte für /die und /restart festgelegt.
|
||||
* Syntax ist wie folgt:
|
||||
* drpass {
|
||||
* restart "(Passwort für Restart)";
|
||||
* die "(Passwort für die (die = 'sterben' = Abschaltung))";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: log {} ALT: N/A Festlegung von Namen und Speicherort der Logfiles. Man kann
|
||||
* beliebig viele festlegen.
|
||||
*
|
||||
* FLAGS: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Syntax:
|
||||
* log "log file"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Lösche das Logfile und starte ein neues, wenn 2MB erreicht wurden,
|
||||
nichts festlegen, wenn man immer das gleiche Log will */
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
kline;
|
||||
connects;
|
||||
server-connects;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier kann man Befels Aliasse festlegen, wie z.B. /nickserv, /chanserv usw.
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* target "points to";
|
||||
* type aliastype;
|
||||
* };
|
||||
*
|
||||
* [ACHTUNG: Mann kann hier auch eine Datei mit vordefinierten Aliassen per include
|
||||
* einfügen. Siehe auch: doc/unreal32docs.html Abschnitt 2.9]
|
||||
*/
|
||||
|
||||
// Hiermit wird der Befehl /nickserv an den User NickServ geleitet, welcher zur Einstellung set::services-server server verbunden ist
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Soll der Befehl auf denselben Nick wie das der Befehl leiten, kann man den Nick auslassen
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// leitet den /statserv Befehl an den User StatServ aus set::stats-server server
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// leitet den /superbot Befehl an den User SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Standard Aliasse */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* NEU: alias {}
|
||||
* ALT: N/A
|
||||
* Hier können Befehls Aliase, wie z.B.: /identify, /services, usw festgelegt werden.
|
||||
*
|
||||
* Syntax:
|
||||
* alias "name" {
|
||||
* format "format string" {
|
||||
* target "zeigt auf";
|
||||
* type aliastype;
|
||||
* parameters "zu sendende Parameter";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Die nachfolgenden Zeilen eigens deshalb, um zu zeigen, dass trotz gleichem Namens die vorherige Anweisung
|
||||
* völlig unterschiedlich in der Syntax ist, obwohl eine ähnliche Funktion unterstützt wird.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Die alias::format Anweisung ist ein regulärer Ausdruck. Das erste Format passt auf den /identify Befehl,
|
||||
* wenn das erste Zeichen ein # ist. Dann wird dies an den chanserv alias mit dem Parameters IDENTIFY
|
||||
* %1- übergeben. Das zweite Format passt auf den /identify Befehl, wenn das erste Zeichen kein # ist. Danach
|
||||
* wird der Befehl an den nickserv alias mit den Parameters IDENTIFY %1- geleitet.
|
||||
*/
|
||||
|
||||
/* Die alias::format::parameters Scripting Sprachen ähnlich. %N (wobei N einen Nummer ist) repräsentiert einen
|
||||
* Parameter, der an den Befehl (in diesem Fall /identify) zu senden ist. Wird %N- angegeben, bedeutet dies
|
||||
* alle Parameter vom N bis zum letzten Parameter des Strings. Man kann ebenso %n angeben, welches durch den
|
||||
* Nicknamen des users ersetzt wird.
|
||||
*/
|
||||
|
||||
/* Standard Aliasse */
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* NEU: tld {}
|
||||
* ALT: T:Line
|
||||
* Hiermit werden unterschiedliche motd und rules Dateien in Abhängigkeit
|
||||
* von der Hostmaske des Clients eingestellt.
|
||||
* Syntax ist wie folgt:
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* zu beachten: Will man nur die default motd/rules Dateien (ircd.motd, ircd.rules)
|
||||
* für jedermann benutzen, genügt es, den obigen Beispiel Block einfach zu löschen.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NEU: ban nick {}
|
||||
* ALT: Q:Line
|
||||
* Bannt einen Nicknamen, so dass dieser nicht benutzt werden kann.
|
||||
* Syntax ist wie folgt:
|
||||
* ban nick {
|
||||
* mask "(nick to ban)";
|
||||
* reason "(reason)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reserviert für Services";
|
||||
};
|
||||
/*
|
||||
* NEU: ban ip {}
|
||||
* ALT: Z:Line
|
||||
* Bannt eine IP, so dass diese nicht mehr zum Netzwerk verbinden kann.
|
||||
* Syntax:
|
||||
* ban ip { mask (ip Nummer/Hostmaske); reason "(Grund)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Server nicht mehr gelinkt";
|
||||
};
|
||||
/*
|
||||
* NEU: ban server {}
|
||||
* ALT: Server Q:Line
|
||||
* Nimmt einem Server die Möglichkeit, zum Neztwerk zu verbinden.
|
||||
* Wenn der Server zu einem anderen Server des Netzwerkes linkt, wird der
|
||||
* lokale server die Verbindung zum Netzwerk trennen.
|
||||
* Syntax ist wie folgt:
|
||||
* ban server {
|
||||
* mask "(Server Name)";
|
||||
* reason "(angegebener Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Hau ab hier.";
|
||||
};
|
||||
/*
|
||||
* NEU: ban user {}
|
||||
* ALT: K:Line
|
||||
* Bewirkt, dass ein User mit einer bestimmten Maske nicht mehr zum Server verbinden kann.
|
||||
* Syntax:
|
||||
* ban user { mask (Hostmaske/ip Nummer); reason "(Grund)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: ban realname {}
|
||||
* ALT: n:Line
|
||||
* Verhindert, dass ein bestimmter Realname benutzt werden kann.
|
||||
* Syntax:
|
||||
* ban realname {
|
||||
* mask "(Realname)";
|
||||
* reason "(Grund)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* Sämtliche Banns dürfen durch zusätzliche Einträge wiederholt werden!
|
||||
*
|
||||
* NEU: except ban {}
|
||||
* ALT: E:Line
|
||||
* Diese Maske ist von Banns ausgenommen.
|
||||
* Syntax:
|
||||
* except ban { mask (ident@host); };
|
||||
* except ban {} kann so oft angegeben werden, wie man für verschiedene Hosts will.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* don't ban stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny dcc {}
|
||||
* ALT: dccdeny.conf
|
||||
* Mit diesem Block können dcc send's geblockt werden... Gut, um Viren aufzuhalten.
|
||||
* Syntax:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "zu sperrende Datei(ie, *exe)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Möglicherweise Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: deny channel {}
|
||||
* ALT: N/A (NEW)
|
||||
* Verhindert, dass angegebene Channels benutzt werden können.
|
||||
* Syntax:
|
||||
* deny channel {
|
||||
* channel "(channel)";
|
||||
* reason "Grund";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "Warez sind illegal";
|
||||
};
|
||||
|
||||
/*
|
||||
* NEU: vhost {}
|
||||
* ALT: Vhost.conf file
|
||||
* Setzt eine Fake IP für Nicht-Opers, oder opers, die zu bequem für /sethost sind.... :P
|
||||
* Syntax:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (ident@host um die Nutzung zu gestatten);
|
||||
* };
|
||||
* login (Loginname);
|
||||
* password (Passwort);
|
||||
* };
|
||||
* um den vhost zu nutzen, mache /vhost (login) (password) im IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Man kann hier weitere Config Dateien einfügen */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Network configuration */
|
||||
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 müssen angegeben sein und sie müssen die selben auf allen Servern
|
||||
* im Netzwerk sein. Sie werden zur Generierung der maskierten Hosts verwendet
|
||||
* und sie sollten geheim gehalten werden.
|
||||
* 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";
|
||||
"und noch einer";
|
||||
"und noch einer";
|
||||
};
|
||||
/* 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 spezifische Configuration */
|
||||
|
||||
set {
|
||||
kline-address "setze.diese.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Man kann hier ident checking aktivieren, wenn man will */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Die Mindestzeit, die ein User verbunden sein muss, bevor er eine QUIT Meldung
|
||||
* 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 */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Man kann auch sämtliche Part Meldungen blocken, indem man dies auskommentiert
|
||||
* und 'yes' sagt oder einen anderen Text angibt (z.B. "Bye bye!")
|
||||
/* static-part yes; */
|
||||
|
||||
/* Hiermit kann man bestimmte stats auf ausschliesslich Opers beschränken. Für
|
||||
* alle Stats kann man * benutzen. Wenn man es weglässt, können alle User alle
|
||||
* Stats abfragen. Eine vollständige Liste erhält man mit dem Befehl '/stats'.
|
||||
* Manche Admins entfernen 'kGs' und erlauben so normalen Usern die Anzeige von
|
||||
* klines, glines and shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: Dieses Beispiel setzte ein Limit von 3 Verbindungen je 60s (pro Host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Anti Flood Schutz */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 Nickänderungen pro 60 Sekunden (Default) */
|
||||
};
|
||||
|
||||
/* Spam Filter */
|
||||
spamfilter {
|
||||
ban-time 1d; /* Default Dauer eines *line Banns durch Spamfilter */
|
||||
ban-reason "Spam/Belästigung"; /* default Grund */
|
||||
virus-help-channel "#help"; /* Channel, der für die 'viruschan' action benutzt wird*/
|
||||
/* except "#help"; Channel, der von Filtern ausgenommen wird */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 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.unrealircd.org
|
||||
* #unreal-support aufsuchen. Achtung, wir setzen voraus, dass zuvor die
|
||||
* DOKU GELESEN WURDE (genauso, wie die FAQ!)!
|
||||
*/
|
||||
@@ -1,842 +0,0 @@
|
||||
/*
|
||||
* example.conf por Danial Hawton, alias Osiris (osiris@unrealircd.org).
|
||||
* Traducido al castellano por Severus_Snape (javiersnape@gmail.com).
|
||||
*
|
||||
* Funciona desde Unreal3.2 hacia adelante
|
||||
*
|
||||
* 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!
|
||||
*/
|
||||
@@ -1,858 +0,0 @@
|
||||
/*
|
||||
* 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$
|
||||
*
|
||||
* Fonctionne pour Unreal3.2 et supérieur
|
||||
*
|
||||
* 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 de lecture vous comprendrez.
|
||||
*
|
||||
* Copiez juste ce fichier dans votre répertoire unrealircd principal et appellez le 'unrealircd.conf'.
|
||||
*
|
||||
* 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 à : 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) */
|
||||
# Toutes ces lignes sont ignorées par l'ircd.
|
||||
|
||||
/*
|
||||
* UnrealIRCd supporte des modules et certains sont obligatoires.
|
||||
* Vous aurez besoin au moins du module commands et du module cloaking.
|
||||
*/
|
||||
|
||||
/* POUR *NIX, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* POUR Windows, décommentez les 2 lignes suivantes : */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Vous pouvez également inclure d'autres fichiers de configuration.
|
||||
* 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 "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 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, cet identifiant ne peut être utilisé pour aucun autre serveur du réseau.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.foonet.com";
|
||||
info "FooNet Server";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* 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 {.
|
||||
* La syntaxe est la suivante :
|
||||
* admin {
|
||||
* "première ligne";
|
||||
* "deuxième ligne";
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"widely@used.name";
|
||||
};
|
||||
|
||||
/*
|
||||
* 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)
|
||||
* {
|
||||
* pingfreq (fréquence des pings utilisateurs/serveurs en secondes);
|
||||
* maxclients (combien de connexions pour cette classe);
|
||||
* sendq (file d'attente maximum pour l'envoie depuis une connexion);
|
||||
* recvq (file d'attente maximum pour la réception depuis une connexion [contrôle du flood]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
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 */
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : allow {}
|
||||
* ANCIEN : I:Line
|
||||
* 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 :
|
||||
* 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)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* connexion autorisée avec mot de passe */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.passworded.ugly.people;
|
||||
class clients;
|
||||
password "f00Ness";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* 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 du bloc allow, les déplace vers une nouvelle classe);
|
||||
* from {
|
||||
* userhost (ident@host);
|
||||
* userhost (ident@host);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flags ici*);
|
||||
* };
|
||||
* OU
|
||||
* flags "ancien type de flags, comme OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Pour avoir la liste des flags oper, voir doc/unreal32docs.fr.html#operblock
|
||||
* [lecture HAUTEMENT recommendée]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : listen {}
|
||||
* ANCIEN : P:Line
|
||||
* Définit un port à rattacher à l'ircd, pour autoriser
|
||||
* des utilisateurs/serveurs à se connecter au serveur.
|
||||
* La syntaxe est la suivante :
|
||||
* 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
|
||||
*/
|
||||
|
||||
/* 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
|
||||
* 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
|
||||
* 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 à se standardiser un peu ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* 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 :
|
||||
* listen 1.2.3.4:6667;
|
||||
* Evidemment, remplacez l'IP par celle qui vous a été assignée.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ACTUEL : link {}
|
||||
* ANCIEN : C/N:Lines
|
||||
* 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 (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 *;]
|
||||
* password-connect "(mot de passe à envoyer)";
|
||||
* password-receive "(mot de passe que l'on doit recevoir)";
|
||||
* class (classe à affecter aux serveurs);
|
||||
* options {
|
||||
* (options ici*);
|
||||
* };
|
||||
* // 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
|
||||
*/
|
||||
|
||||
|
||||
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 : Vous ne devriez pas utiliser autoconnect lorsque vous linkez des services */
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* 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 serveurs UnrealIRCd normaux !
|
||||
* La syntaxe est la suivante :
|
||||
* ulines {
|
||||
* (serveur auquel appliquer la uline);
|
||||
* (serveur auquel appliquer la uline);
|
||||
* [etc]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : drpass {}
|
||||
* ANCIEN : X:Line
|
||||
* Défini les mots de passe pour les commandes /die et /restart.
|
||||
* La syntaxe est la suivante :
|
||||
* drpass {
|
||||
* restart "(mot de passe pour relancer)";
|
||||
* die "(mot de passe pour arrêter)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "I-love-to-restart";
|
||||
die "die-you-stupid";
|
||||
};
|
||||
|
||||
/*
|
||||
* 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, oper
|
||||
*
|
||||
* Syntaxe :
|
||||
* log "fichier de log"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* flag;
|
||||
* flag;
|
||||
* etc..
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* 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;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /nickserv, /chanserv etc
|
||||
* FLAGS: services, stats, normal
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* target "pointe vers";
|
||||
* type typedalias;
|
||||
* };
|
||||
*
|
||||
* [NOTE : Vous pouvez également inclure un fichier d'alias prédéfinis ici, voir
|
||||
* doc/unreal32docs.fr.html section 2.9]
|
||||
*/
|
||||
|
||||
// Ceci fait pointer la commande /nickserv vers l'utilisateur NickServ qui est connecté au serveur set::services-server
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Si vous voulez que la commande pointe vers le même nom que la commande, vous pouvez ignorez l'entré du nom
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// Faire pointer la commande /statserv vers l'utilisateur StatServ sur le serveur set::stats-name
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// Faire pointer la commande /superbot vers l'utilisateur SuperBot
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Alias Standards */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ACTUEL : alias {}
|
||||
* ANCIEN : N/A
|
||||
* Ceci vous permet de définir des alias pour les commandes telles que /identify, /services, etc
|
||||
*
|
||||
* Syntaxe :
|
||||
* alias "nom" {
|
||||
* format "format string" {
|
||||
* target "pointer vers";
|
||||
* type typedalias;
|
||||
* parameters "paramètres à envoyer";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* 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 qu'elle a une fonction similaire et dépend des alias standards pour
|
||||
* fonctionner.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* 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-.
|
||||
*/
|
||||
|
||||
/* L'alias::format::parameters est similaire aux languages de programmation. %N (où N est un nombre)
|
||||
* représente un paramètre envoyé à la commande (dans ce cas /identify). Si vous spécifiez %N- cela
|
||||
* signifie que tous les paramètres depuis N jusqu'au dernier paramètre dans la chaîne de caractères.
|
||||
* Vous pouvez également spécifier %n qui est remplacé par le pseudo de l'utilisateur.
|
||||
*/
|
||||
|
||||
/* Alias Standards */
|
||||
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;
|
||||
};
|
||||
|
||||
/* 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 un MOTD et des fichiers de règles différents
|
||||
* en fonction de l'hostmask des clients.
|
||||
* La syntaxe est la suivante :
|
||||
* tld {
|
||||
* mask (ident@host);
|
||||
* motd "(motd file)";
|
||||
* rules "(rules file)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* 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
|
||||
* Bannit un pseudo, il ne peut donc être utilisé.
|
||||
* La syntaxe est la suivante :
|
||||
* ban nick {
|
||||
* mask "(pseudo à bannir)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Reservé aux Services";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban ip {}
|
||||
* ANCIEN : Z:Line
|
||||
* Empêche une ip de se connecter au réseau.
|
||||
* Syntaxe :
|
||||
* ban ip { mask (ip/hostmask); reason "(raison)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Serveur délinké";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban server {}
|
||||
* ANCIEN : Server Q:Line
|
||||
* Empêche un serveur de se connecter au réseau.
|
||||
* Si le serveur est linké à un serveur distant, le serveur local
|
||||
* sera déconnecté du réseau.
|
||||
* La syntaxe est la suivante :
|
||||
* ban server {
|
||||
* mask "(nom du serveur)";
|
||||
* reason "(raison à donner)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Va-t-en d'ici.";
|
||||
};
|
||||
/*
|
||||
* ACTUEL : ban user {}
|
||||
* ANCIEN : K:Line
|
||||
* Fait qu'un utilisateur avec un certain masque ne peut se connecter
|
||||
* à votre serveur.
|
||||
* Syntaxe :
|
||||
* ban user { mask (hostmask/ip); reason "(raison)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idiot";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : ban realname {}
|
||||
* ANCIEN : n:Line
|
||||
* Ceci empêche un certain realname d'être utilisé.
|
||||
* Syntaxe :
|
||||
* ban realname {
|
||||
* mask "(realname)";
|
||||
* reason "(raison)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE POUR TOUS LES BANS, ils peuvent être répetés pour ajouter des entrées !
|
||||
*
|
||||
* ACTUEL : except ban {}
|
||||
* ANCIEN : E:Line
|
||||
* Fait que vous ne pouvez être banni.
|
||||
* Syntaxe :
|
||||
* except ban { mask (ident@host); };
|
||||
* Répétez l'except ban {} autant de fois
|
||||
* que vous voulez pour différents hosts.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne bannit pas stskeeps */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny dcc {}
|
||||
* ANCIEN : dccdeny.conf
|
||||
* Utilisez ceci pour bloquer l'envoi de dcc ...
|
||||
* Utile pour bloquer les virus.
|
||||
* Syntaxe :
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "fichier à bloquer (ex : *exe)";
|
||||
* reason "raison";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Possible Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : deny channel {}
|
||||
* ANCIEN : N/A (NEW)
|
||||
* 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";
|
||||
};
|
||||
|
||||
/*
|
||||
* ACTUEL : vhost {}
|
||||
* 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);
|
||||
* from {
|
||||
* userhost (ident@host à autoriser à utiliser);
|
||||
* };
|
||||
* login (login);
|
||||
* password (mot de passe);
|
||||
* };
|
||||
* ensuite pour utiliser ce vhost, tapez /vhost (login) (mot de passe) sur l'IRC
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Vous pouvez utiliser d'autres fichiers de configuration */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Configuration du réseau */
|
||||
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"; */
|
||||
/* Les Cloak keys doivent être les mêmes sur tous les serveurs du réseau.
|
||||
* Ils sont utilisés pour générer des hosts masqués et doivent être gardés secrets.
|
||||
* 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";
|
||||
"et une autre";
|
||||
"et un autre";
|
||||
};
|
||||
/* host à l'identification 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";
|
||||
};
|
||||
};
|
||||
|
||||
/* Configuration spécifique d'un serveur */
|
||||
|
||||
set {
|
||||
kline-address "définir.cet.email";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#opers";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Vous pouvez enclencher la vérification des idents si vous voulez */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Durée maximum pendant laquelle un utilisateur doit rester connecté avant de pouvoir utiliser
|
||||
* un message de QUIT.
|
||||
* Ceci devrait aider à stoper le spam */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* Applique le message de static-quit à tous les quits - cela signifie qu'aucun
|
||||
message de quit personalisé ne sera autorisé sur le serveur local */
|
||||
/* static-quit "Client quit"; */
|
||||
|
||||
/* Vous pouvez également bloquer toutes les raisons de part en décommentant ceci et en disant
|
||||
* 'yes', ou spécifiez un autre texte (ex: "Bye bye!") pour qu'il soit toujours utilisé.. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Vous permet de restreindre certaines stats aux opers, utilisez * pour toutes les stats,
|
||||
* enlevez le pour autoriser les utilisateurs à voir toutes les stats. Tapez '/stats' pour
|
||||
* une liste complète.
|
||||
* Certains admins pourront vouloir bloquer 'kGs' pour que les utilisateurs normaux ne puissent
|
||||
* lister les klines, glines et shuns.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* Throttling: cet exemple applique une limite de 3 tentatives de connection en 60s (par host). */
|
||||
throttle {
|
||||
connections 3;
|
||||
period 60s;
|
||||
};
|
||||
|
||||
/* Protection Anti flood */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 changements de pseudo en 60 secondes (la valeur par défaut) */
|
||||
};
|
||||
|
||||
/* Filtre anti-spam */
|
||||
spamfilter {
|
||||
ban-time 1d; /* durée par défaut d'un ban *line appliqué par le spamfilter */
|
||||
ban-reason "Spam/Advertising"; /* raison par défaut */
|
||||
virus-help-channel "#help"; /* salon à utiliser pour l'action 'viruschan' */
|
||||
/* excepté "#help"; salon à exempter de filtrage */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Problèmes ou besoin de plus d'aide ?
|
||||
* 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 !
|
||||
*/
|
||||
@@ -1,823 +0,0 @@
|
||||
/*
|
||||
* example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org).
|
||||
* A magyar fordítást AngryWolf <angrywolf2009@gmail.com> készítette.
|
||||
* $Id$
|
||||
*
|
||||
* Felhasználható Unreal3.2 és későbbi verziókhoz
|
||||
*
|
||||
* 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
|
||||
* nehéz nekilendülni, de kis gyakorlással és olvasgatással meg fogjuk érteni.
|
||||
*
|
||||
* Csak másoljuk be ezt a fájlt a fő unrealircd könyvtárunkba, és nevezzük
|
||||
* 'unrealircd.conf'-nak.
|
||||
*
|
||||
* MEGJEGYZÉS: Minden sor, kivéve a nyitó { sort, ;-vel végződik, beleértve
|
||||
* 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.
|
||||
* 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 */
|
||||
#1. Megjegyzéstípus (Shell típusú)
|
||||
// 2. Megjegyzéstípus (C++ stílusú)
|
||||
/* 3. Megjegyzéstípus (C stílusú) */
|
||||
#ezeket a sorokat az ircd figyelmen kívül hagyja.
|
||||
|
||||
/*
|
||||
* Az UnrealIRCd támogat modulokat, néhányuk betöltése kötelező is.
|
||||
* Legalább a parancsokat biztosító és egy álcázó modulra lesz szükségünk.
|
||||
*/
|
||||
|
||||
/* *NIX-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "src/modules/commands.so";
|
||||
//loadmodule "src/modules/cloak.so";
|
||||
|
||||
/* Windows-BAN vegyük ki a megjegyzésből a következő két sort: */
|
||||
//loadmodule "modules/commands.dll";
|
||||
//loadmodule "modules/cloak.dll";
|
||||
|
||||
/*
|
||||
* Azt is megtehetjük, hogy befűzünk más konfigurációs fájlokat.
|
||||
* A help.conf tartalmazza az összes /helpop szöveget. A badwords.*.conf
|
||||
* fájlok tartalmazzák az összes csúnyaszó bejegyzést a +G módhoz...
|
||||
* A spamfilter.conf néhány jó szabályt a jelenlegi trójai vírusokra.
|
||||
* Valószínűleg be akarjuk tölteni őket:
|
||||
*/
|
||||
include "help.conf";
|
||||
include "badwords.channel.conf";
|
||||
include "badwords.message.conf";
|
||||
include "badwords.quit.conf";
|
||||
include "spamfilter.conf";
|
||||
|
||||
/*
|
||||
* ÚJ: me {}
|
||||
* RÉGI: M:Line
|
||||
* A me {} határozza meg ennek a szervernek a nevét, a leírását és az unrealbeli
|
||||
* szerverazonosító-számát. A szintaktikája a következő:
|
||||
* me {
|
||||
* name "szerver.név";
|
||||
* info "A szerver leírása";
|
||||
* numeric (szerverazonosító*);
|
||||
* };
|
||||
* Ha linkelünk, ezt az azonosítószámot nem használhatja semmilyen más szerver
|
||||
* a hálózaton.
|
||||
*/
|
||||
me
|
||||
{
|
||||
name "irc.valaminet.com";
|
||||
info "ValamiNet Szerver";
|
||||
numeric 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: admin {}
|
||||
* RÉGI: A:Line
|
||||
* Ez a blokk információt ad a szerver adminisztrátorairól. Annyi sort tehetünk
|
||||
* az admin { alá, amennyit kívánunk.
|
||||
* A szintaktikája a következő:
|
||||
* admin {
|
||||
* "első sor";
|
||||
* "második sor";
|
||||
* [stb]
|
||||
* };
|
||||
*/
|
||||
admin {
|
||||
"Bob Smith";
|
||||
"bob";
|
||||
"szeleskorben@hasznalt.nev";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: class {}
|
||||
* RÉGI: Y:line (a régi zavarbaejtő volt)
|
||||
* Ezek az osztályokat állítják be. Az osztályok a kapcsolatok egy csoportjának
|
||||
* beállításai. Például a szerver kapcsolatokat, ahelyett, hogy egy kliens
|
||||
* osztályába kerülnének, beleirányítjuk a szerverek osztályába. Szintaktika:
|
||||
* class (osztálynév)
|
||||
* {
|
||||
* pingfreq (hány másodpercenként pingeljünk egy felhasználót/szervert);
|
||||
* maxclients (mennyi kapcsolat lehet ebben az osztályban);
|
||||
* sendq (egy kapcsolat küldési sorának maximális mérete);
|
||||
* recvq (egy kapcsolat fogadási sorának maximális mérete [árvízvédelem]);
|
||||
* };
|
||||
*/
|
||||
|
||||
class clients
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 500;
|
||||
sendq 100000;
|
||||
recvq 8000;
|
||||
};
|
||||
|
||||
class servers
|
||||
{
|
||||
pingfreq 90;
|
||||
maxclients 10; /* Legfeljebb ennyi szervert linkelhetünk egyszerre */
|
||||
sendq 1000000;
|
||||
connfreq 100; /* Ennyi másodpercet várjon, mielőtt újra kapcsolódik */
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow {}
|
||||
* RÉGI: I:Line
|
||||
* Ez a kapcsolatok engedélyezését határozza meg...
|
||||
* Alapvetően kliensekre használjuk; megengedi nekik, hogy kapcsolódjanak, így
|
||||
* némileg van lehetőség a szabályozásra, valamint jelszót is beállíthatunk.
|
||||
* A szintaktika a következő:
|
||||
* allow {
|
||||
* ip (ip maszk az engedélyezéshez);
|
||||
* hostname (gazdanév maszk);
|
||||
* class (osztály, ahová küldjük őket [lásd: class {}]);
|
||||
* password "(jelszó)"; (nem kötelező)
|
||||
* maxperip (mennyi kapcsolatot engedjünk ip címenként); (nem kötelező)
|
||||
* };
|
||||
*/
|
||||
|
||||
allow {
|
||||
ip *@*;
|
||||
hostname *@*;
|
||||
class clients;
|
||||
maxperip 5;
|
||||
};
|
||||
|
||||
/* Jelszavas allow blokk */
|
||||
allow {
|
||||
ip *@255.255.255.255;
|
||||
hostname *@*.jelszavas.csunya.emberkek;
|
||||
class clients;
|
||||
password "V4lami";
|
||||
maxperip 1;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: allow channel {}
|
||||
* RÉGI: chrestrict
|
||||
* Megengedi egy felhasználónak, hogy belépjen egy csatornára...
|
||||
* mint egy csatornáról letiltás alóli kivétel.
|
||||
* Szintaktika:
|
||||
* allow channel {
|
||||
* channel "csatornanév";
|
||||
* };
|
||||
*/
|
||||
allow channel {
|
||||
channel "#AWarezSzívás";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: oper {}
|
||||
* RÉGI: O:Line
|
||||
* Definiál egy IRC operátort
|
||||
* Az IRC operátorok feladata, hogy épségben tartsák a szervert; rendszerint
|
||||
* ügyelnek a karbantartottságára és arra, hogy kapcsolatban maradjon
|
||||
* a hálózattal. A szintaktika a következő:
|
||||
* oper (bejelentkezőnév) {
|
||||
* class (osztály, ahová berakjuk őket; ha eddig más osztályban voltak,
|
||||
* átteszi őket ebbe az új osztályba);
|
||||
* from {
|
||||
* userhost (azonosító@gazdanév);
|
||||
* userhost (azonosító@gazdanév);
|
||||
* };
|
||||
* flags
|
||||
* {
|
||||
* (flagek ide*);
|
||||
* };
|
||||
* VAGY
|
||||
* flags "régi típusú flagek, mint pl. OAaRD";
|
||||
* };
|
||||
*/
|
||||
|
||||
|
||||
/* Az oper flagek listáját lásd a doc/unreal32docs.hu.html#operblock szekcióban
|
||||
* [ERŐSEN ajánlott elolvasni]
|
||||
*/
|
||||
|
||||
oper bobsmith {
|
||||
class clients;
|
||||
from {
|
||||
userhost bob@smithco.com;
|
||||
};
|
||||
password "f00";
|
||||
flags
|
||||
{
|
||||
netadmin;
|
||||
can_zline;
|
||||
can_gzline;
|
||||
can_gkline;
|
||||
global;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: listen {}
|
||||
* RÉGI: P:Line
|
||||
* Meghatároz egy olyan portot, amelyet az ircd megnyit, és engedélyt ad
|
||||
* a felhasználóknak/szervereknek, hogy kapcsolódjanak a szerverre.
|
||||
* A szintaktika a következő:
|
||||
* listen (ip cím):(portszám)
|
||||
* {
|
||||
* options {
|
||||
* (opciók ide);
|
||||
* };
|
||||
* };
|
||||
* vagy egy síma portnyitáshoz:
|
||||
* listen (ip):(port);
|
||||
*
|
||||
* MEGJEGYZÉS: ipv6-os ip-kre (3ffe:b80:2:51d::2 stb.) használjuk a
|
||||
* listen [ip]:port;
|
||||
* szintaktikát. Az is működik.
|
||||
*/
|
||||
|
||||
/* Opciók a listenhez:
|
||||
RÉGI | ÚJ
|
||||
S serversonly
|
||||
C clientsonly
|
||||
J java
|
||||
s ssl
|
||||
* standard
|
||||
*/
|
||||
|
||||
/* MEGJEGYZÉS SSL PORTOKRA: az SSL portok eléggé szabványosítatlanok, emellett
|
||||
* sok a magas SSL port. Néhányan azt mondják, a 994-en célszerű futtatni,
|
||||
* mert az a hivatalos SSL port... de a rendszergazdát igényel! Ezenkívül,
|
||||
* a 194 a hivatalos irc port, de láttunk valaha egy ircd-t azon futni?
|
||||
* Így mi a javaslatunk az, hogy használjuk a 6697-et SSL-hez, ezt használja
|
||||
* jónéhány hálózat, és ezt ismeri fel például a StunTour is.
|
||||
* Szabadon megnyithatunk annyi SSL portot, amennyit akarunk, de ha a 6697-et
|
||||
* (is) használjuk, kicsit segítjük a világot szabványosodni ;).
|
||||
*/
|
||||
listen *:6697
|
||||
{
|
||||
options
|
||||
{
|
||||
ssl;
|
||||
clientsonly;
|
||||
};
|
||||
};
|
||||
|
||||
listen *:8067;
|
||||
listen *:6667;
|
||||
|
||||
/* MEGJEGYZÉS: Ha egy több IP címes IRCd shellen vagyunk, előfordulhat, hogy
|
||||
* "Address already in use" ("A cím már használatban van") hibaüzeneteket
|
||||
* találunk a naplóban, és az ircd nem indul el. Ez azt jelenti, hogy
|
||||
* az ircd-nek egy meghatározott IP címre KELL bindelnie a "*" helyett
|
||||
* vagyis például így:
|
||||
* listen 1.2.3.4:6667;
|
||||
* Természetesen cseréljük ki az IP címet arra az IP-re, amelyet nekünk
|
||||
* osztottak ki.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: link {}
|
||||
* RÉGI: C/N:Line-ok
|
||||
* Ez a blokk "igen"-t mond egy szerver kapcsolódására.
|
||||
* MEGJEGYZÉS: MINDKÉRT SZERVEREN KELL EGY LINK {} BEÁLLÍTÁS A HELYES
|
||||
* KAPCSOLÓDÁSHOZ!
|
||||
* A szintaktika a következő:
|
||||
* link (szervernév)
|
||||
* {
|
||||
* username (felhasználónév, * is működik);
|
||||
* hostname (ip cím/gazdanév maszk);
|
||||
* bind-ip (amilyen IP címre bindeljen kapcsolódáskor, vagy *);
|
||||
* port (port, ahová kapcsolódjon, ha van);
|
||||
* hub (Ha ez egy hub; * működik, vagy szervermaszkokat is beírhatunk);
|
||||
* [vagy leaf *;]
|
||||
* password-connect "(elküldendő jelszó)";
|
||||
* password-receive "(fogadandó jelszó)";
|
||||
* class (osztály, ahová betesszük a szervereket);
|
||||
* 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 algoritmusokat :-tal válasszuk el.
|
||||
*
|
||||
* ciphers "DES-CBC3-MD5";
|
||||
*
|
||||
* };
|
||||
*/
|
||||
|
||||
/*
|
||||
opciók:
|
||||
RÉGI | ÚJ
|
||||
S ssl
|
||||
Z zip
|
||||
N/A autoconnect
|
||||
N/A quarantine
|
||||
N/A nodnscache
|
||||
*/
|
||||
|
||||
|
||||
link hub.sajatnet.com
|
||||
{
|
||||
username *;
|
||||
hostname 1.2.3.4;
|
||||
bind-ip *;
|
||||
port 7029;
|
||||
hub *;
|
||||
password-connect "LiNk";
|
||||
password-receive "LiNk";
|
||||
class servers;
|
||||
options {
|
||||
/* Megjegyzés: szolgáltatások linkelésekor célszerű nem
|
||||
* használni az autoconnect opciót.
|
||||
*/
|
||||
autoconnect;
|
||||
ssl;
|
||||
zip;
|
||||
};
|
||||
};
|
||||
/*
|
||||
*
|
||||
* ÚJ: ulines {}
|
||||
* RÉGI: U:Line
|
||||
* Az U-line-ok több hatalmat/parancsot adnak a szervereknek. CSAK
|
||||
* szolgáltatásokat és statisztikákat nyújtó szerverekre érdemes beállítani,
|
||||
* és SOHA rendes UnrealIRCd szerverekre!
|
||||
* A szintaktika a következő:
|
||||
* ulines {
|
||||
* (uline-ra teendő szerver);
|
||||
* (uline-ra teendő szerver);
|
||||
* [stb.]
|
||||
* };
|
||||
*/
|
||||
ulines {
|
||||
services.roxnet.org;
|
||||
stats.roxnet.org;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: drpass {}
|
||||
* RÉGI: X:Line
|
||||
* Meghatározza a jelszavakat a /die és /restart parancsokhoz.
|
||||
* A szintaktika a következő:
|
||||
* drpass {
|
||||
* restart "(újraindítás jelszava)";
|
||||
* die "(leállítás jelszava)";
|
||||
* };
|
||||
*/
|
||||
drpass {
|
||||
restart "Imádok-újraindítani";
|
||||
die "Halj-te-buta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: log {}
|
||||
* RÉGI: N/A
|
||||
* Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet,
|
||||
* amennyit szeretnénk.
|
||||
*
|
||||
* FLAGEK: errors, kills, tkl, connects, server-connects, oper
|
||||
*
|
||||
* Szintaktika:
|
||||
* log "naplófájl"
|
||||
* {
|
||||
* flags
|
||||
* {
|
||||
* (flag);
|
||||
* (flag);
|
||||
* [stb.]
|
||||
* };
|
||||
* };
|
||||
*/
|
||||
|
||||
log "ircd.log" {
|
||||
/* Törölje a naplófájlt, és kezdjen egy újat, ha eléri a 2 MB-ot;
|
||||
* hagyjuk ki ezt a beállításból, ha mindig ugyanazt a naplót
|
||||
* szeretnénk használni
|
||||
*/
|
||||
maxsize 2097152;
|
||||
flags {
|
||||
oper;
|
||||
connects;
|
||||
server-connects;
|
||||
kills;
|
||||
errors;
|
||||
sadmin-commands;
|
||||
chg-commands;
|
||||
oper-override;
|
||||
spamfilter;
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint a /nickserv, /chanserv stb.
|
||||
* FLAGEK: services (szolgáltatás), stats (statisztika), normal (közönséges
|
||||
* felhasználó)
|
||||
*
|
||||
* Szintaxis:
|
||||
* alias "név" {
|
||||
* target "ahová mutasson";
|
||||
* type álparancstípus;
|
||||
* };
|
||||
*
|
||||
* [MEGJEGYZÉS: Beilleszthetünk ide egy előre beállított álparancsfájlt is,
|
||||
* lásd: doc/unreal32docs.html, 2.9-es szekció]
|
||||
*/
|
||||
|
||||
// Ez a /nickserv parancsot a NickServ felhasználóra irányítja, aki a set::services-server szerverre kapcsolódott.
|
||||
/*alias NickServ {
|
||||
target "NickServ";
|
||||
type services;
|
||||
};*/
|
||||
|
||||
// Ha a parancsot ugyanarra a nicknévre szeretnénk irányítani, ami a parancs neve, kihagyhatjuk a nick bejegyzést.
|
||||
//alias ChanServ { type services; };
|
||||
|
||||
// A /statserv parancsot a set::stats-server szerveren lévő StatServ felhasználóra irányítja
|
||||
//alias StatServ { type stats; };
|
||||
|
||||
// A /superbot parancsot a SuperBot felhasználóra irányítja.
|
||||
//alias SuperBot { type normal; };
|
||||
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
alias NickServ { type services; };
|
||||
alias ChanServ { type services; };
|
||||
alias OperServ { type services; };
|
||||
alias HelpServ { type services; };
|
||||
alias StatServ { type stats; };
|
||||
|
||||
/*
|
||||
* ÚJ: alias {}
|
||||
* RÉGI: N/A
|
||||
* Ezzel olyan álparancsokat készíthetünk, mint az /identify, /services stb.
|
||||
*
|
||||
* Szintaktika:
|
||||
* alias "név" {
|
||||
* format "formátumsztring" {
|
||||
* target "ahova mutasson";
|
||||
* type álparancstípus;
|
||||
* parameters "küldendő paraméterek";
|
||||
* };
|
||||
* type command;
|
||||
* };
|
||||
*/
|
||||
/* Ezt azért mutatjuk külön, mert még ha ugyanaz is a neve, mint az előző direktívának, a szintaktikája nagyon
|
||||
* más, habár hasonló feladatot lát el, és a szabványosok álparancsokra van szüksége, hogy működjön.
|
||||
*/
|
||||
/*
|
||||
alias "identify" {
|
||||
format "^#" {
|
||||
target "chanserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
format "^[^#]" {
|
||||
target "nickserv";
|
||||
type services;
|
||||
parameters "IDENTIFY %1-";
|
||||
};
|
||||
type command;
|
||||
};
|
||||
*/
|
||||
/* Az alias::format direktíva egy reguláris kifejezés. Az első formátum akkor illeszkedik az /identify parancsra,
|
||||
* ha az első karakter egy #. Azután elküldi ezt a chanserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
* A második formátum akkor illeszkedik az /identify parancsra, ha az első karakter nem egy #. Azután
|
||||
* elküldi a parancsot a nickserv álparancshoz az IDENTIFY %1- paraméterekkel.
|
||||
*/
|
||||
|
||||
/* Az alias::format::parameters hasonló a scriptnyelvekhez. Az %N (ahol N egy szám) a parancshoz küldött egyik
|
||||
* paramétert ábrázolja (ebben az esetben az /identify-ét). Ha azt írjuk, hogy %N-, a sztring N-edik
|
||||
* paraméterétől az utolsóig minden paramétert fog jelenteni. Megadhatunk egy %n-et is, amely ki lesz cserélve
|
||||
* a felhasználó nicknevével.
|
||||
*/
|
||||
|
||||
/* Szabványos álparancsok */
|
||||
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;
|
||||
};
|
||||
|
||||
/* 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: tld {}
|
||||
* RÉGI: T:Line
|
||||
* Beállít más motd és rules fájlt
|
||||
* a kliens hostmaszkjára.
|
||||
* A szintaktikája a következő:
|
||||
* tld {
|
||||
* mask (azonosító@gazda);
|
||||
* motd "(motd fájl)";
|
||||
* rules "(rules fájl)";
|
||||
* };
|
||||
*/
|
||||
|
||||
tld {
|
||||
mask *@*.fr;
|
||||
motd "ircd.motd.fr";
|
||||
rules "ircd.rules.fr";
|
||||
};
|
||||
|
||||
/* megjegyzés: a fenti példa blokkot akár le is törölhetjük; ebben az esetben
|
||||
* mindenkire az alapértelmezett motd/rules fájlok (ircd.motd, ircd.rules)
|
||||
* lesznek használatban.
|
||||
*/
|
||||
|
||||
/*
|
||||
* ÚJ: ban nick {}
|
||||
* RÉGI: Q:Line
|
||||
* Kitilt egy nicknevet, így az nem használható.
|
||||
* A szintaktikája a következő:
|
||||
* ban nick {
|
||||
* mask "(kitiltandó nick)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
ban nick {
|
||||
mask "*C*h*a*n*S*e*r*v*";
|
||||
reason "Fenntartva a szolgáltatásoknak";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban ip {}
|
||||
* RÉGI: Z:Line
|
||||
* Megtiltja egy ip-nek, hogy a hálózatra kapcsolódjon.
|
||||
* Szintaktika:
|
||||
* ban ip { mask (ip cím/gazdanévmaszk); reason "(indoklás)"; };
|
||||
*/
|
||||
ban ip {
|
||||
mask 195.86.232.81;
|
||||
reason "Lecsatolt szerver";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban server {}
|
||||
* RÉGI: Q:Line szerverekre
|
||||
* Megtiltja egy szervernek, hogy a hálózatra kapcsolódjon.
|
||||
* Ha egy szerver távoli szerverre linkel, a helyi szerver
|
||||
* szétkapcsolja a hálózatról.
|
||||
* A szintaktikája a következő:
|
||||
* ban server {
|
||||
* mask "(szervernév)";
|
||||
* reason "(indoklás)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban server {
|
||||
mask eris.berkeley.edu;
|
||||
reason "Mars ki innen!";
|
||||
};
|
||||
/*
|
||||
* ÚJ: ban user {}
|
||||
* RÉGI: K:Line
|
||||
* Elintézi, hogy egy felhasználó egy bizonyos maszkról ne tudjon kapcsolódni
|
||||
* a szerverünkre.
|
||||
* Szintaktika:
|
||||
* ban user { mask (gazdanévmaszk/ip cím); reason "(indok)"; };
|
||||
*/
|
||||
|
||||
ban user {
|
||||
mask *tirc@*.saturn.bbn.com;
|
||||
reason "Idióta";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: ban realname {}
|
||||
* RÉGI: n:Line
|
||||
* Letiltja egy bizonyos valós név használatát.
|
||||
* Szintaktikája:
|
||||
* ban realname {
|
||||
* mask "(valós név)";
|
||||
* reason "(indok)";
|
||||
* };
|
||||
*/
|
||||
|
||||
ban realname {
|
||||
mask "Swat Team";
|
||||
reason "mIRKFORCE";
|
||||
};
|
||||
|
||||
ban realname {
|
||||
mask "sub7server";
|
||||
reason "sub7";
|
||||
};
|
||||
|
||||
/*
|
||||
* MEGJEGYZÉS MINDEN BANRA: ezek ismételhetőek további bejegyzésekhez!
|
||||
*
|
||||
* ÚJ: except ban {}
|
||||
* RÉGI: E:Line
|
||||
* Elintézi, hogy ne lehessen minket kibannolni.
|
||||
* Szintaktika:
|
||||
* except ban { mask (azonosító@gazda); };
|
||||
* További gazdákhoz annyiszor ismételjük az except ban {}-t,
|
||||
* amennyiszer szükséges.
|
||||
*/
|
||||
|
||||
except ban {
|
||||
/* ne tiltsuk ki stskeeps-t */
|
||||
mask *stskeeps@212.*;
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny dcc {}
|
||||
* RÉGI: dccdeny.conf
|
||||
* Használjuk dcc küldések blokkolására... Jobban
|
||||
* megállítja a vírusokat.
|
||||
* Szintaktika:
|
||||
* deny dcc
|
||||
* {
|
||||
* filename "blokkolandó fájl (pl. *exe)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny dcc {
|
||||
filename "*sub7*";
|
||||
reason "Valószínűleg Sub7 Virus";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: deny channel {}
|
||||
* RÉGI: N/A (ÚJ)
|
||||
* Letiltja bizonyos csatornákon a belépést.
|
||||
* Szintaktika:
|
||||
* deny channel {
|
||||
* channel "(csatorna)";
|
||||
* reason "indok";
|
||||
* };
|
||||
*/
|
||||
deny channel {
|
||||
channel "*warez*";
|
||||
reason "A warez törvényellenes";
|
||||
};
|
||||
|
||||
/*
|
||||
* ÚJ: vhost {}
|
||||
* RÉGI: Vhost.conf fájl
|
||||
* Beállít egy hamis ip címet közönséges felhasználókon, vagy
|
||||
* olyan operátorokon, akik lusták a /sethost-ot használni :P
|
||||
* Szintaktika:
|
||||
* vhost {
|
||||
* vhost (vhost.com);
|
||||
* from {
|
||||
* userhost (azonosító@gazda, aki használhatja);
|
||||
* };
|
||||
* login (bejelentkezőnév);
|
||||
* password (jelszó);
|
||||
* };
|
||||
* azután e vhost használatához adjuk ki
|
||||
* a /vhost (bejelentkezőnév) (jelszó) parancsot IRC-n
|
||||
*/
|
||||
vhost {
|
||||
vhost i.hate.microsefrs.com;
|
||||
from {
|
||||
userhost *@*.image.dk;
|
||||
};
|
||||
login stskeeps;
|
||||
password moocowsrulemyworld;
|
||||
};
|
||||
|
||||
/* Befűzhetünk más konfigurációs fájlokat */
|
||||
/* include "klines.conf"; */
|
||||
|
||||
/* Hálózati beállítások */
|
||||
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"; */
|
||||
/* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell
|
||||
* 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";
|
||||
"írjunk hozzá még egyet";
|
||||
"írjunk hozzá még egyet";
|
||||
};
|
||||
/* gazdanevek opereléskor */
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
/* Szerverszintű beállítások */
|
||||
|
||||
set {
|
||||
kline-address "állítsuk.be.ezt.az.emailt";
|
||||
modes-on-connect "+ixw";
|
||||
modes-on-oper "+xwgs";
|
||||
oper-auto-join "#operek";
|
||||
options {
|
||||
hide-ulines;
|
||||
/* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */
|
||||
/* identd-check; */
|
||||
show-connect-info;
|
||||
};
|
||||
|
||||
maxchannelsperuser 10;
|
||||
/* Legkevesebb ennyi ideig kell a felhasználónak kapcsolatban lennie,
|
||||
* mielőtt engedélyt kap a QUIT üzenetek használatára. Remélhetőleg
|
||||
* ez leállítja a spamot. */
|
||||
anti-spam-quit-message-time 10s;
|
||||
/* A static-quit a neki megadott üzenetet megjeleníti minden
|
||||
* kilépésben - avagy egyéni kilépési szövegek nem engedélyezettek
|
||||
* a helyi szerveren */
|
||||
/* static-quit "Kliens kilépés"; */
|
||||
|
||||
/* Hasonlóan blokkolható minden lelépési indok, úgy, hogy kivesszük
|
||||
* a megjegyzésből ezt, és "yes"-t írunk vagy megadunk valamilyen
|
||||
* más szöveget (pl. "Bye bye!"), hogy mindig az legyen a lelépés
|
||||
* indoklószövege. */
|
||||
/* static-part yes; */
|
||||
|
||||
/* Ezzel megmondhatjuk, mely statisztikákat szeretnénk csak operátorok
|
||||
* számára engedélyezni. Használjunk *-ot, ha az összeset kívánjuk,
|
||||
* és hagyjuk el a direktívát, ha a felhasználók mindet láthatják. Írjuk
|
||||
* be a "/stats" parancsot a teljes listáért.
|
||||
* Lehet, hogy néhány adminisztrátor törölni fogja a "kGs"-t, hogy
|
||||
a közönséges felhasználók láthassák a kline-okat, gline-okat és
|
||||
* shunokat.
|
||||
*/
|
||||
oper-only-stats "okfGsMRUEelLCXzdD";
|
||||
|
||||
/* 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;
|
||||
};
|
||||
|
||||
/* Árasztásellenes védelem */
|
||||
anti-flood {
|
||||
nick-flood 3:60; /* 3 nicknévváltás 60 másodpercenként
|
||||
(az alapértelmezés) */
|
||||
};
|
||||
|
||||
/* Spamszűrő */
|
||||
spamfilter {
|
||||
ban-time 1d; /* a spamszűrő által beállított *line-ok
|
||||
alapértelmezett kitiltási ideje */
|
||||
ban-reason "Spam/Reklámozás"; /* alapértelmezett indok */
|
||||
virus-help-channel "#help"; /* a "viruschan" tevékenységhez
|
||||
használt csatorna */
|
||||
/* except "#help"; kivesszük a szűrés alól ezt a csatornát */
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* 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.unrealircd.org #unreal-support
|
||||
* csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és
|
||||
* a GYIK-ot!
|
||||
*/
|
||||
@@ -1,816 +0,0 @@
|
||||
/*
|
||||
* example.conf door Daniel Hawton AKA Osiris (osiris@unrealircd.org).
|
||||
* $Id$
|
||||
* Vertaald door Mark
|
||||
*
|
||||
* Werkt voor Unreal3.2 en hoger
|
||||
*
|
||||
* 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!
|
||||
*/
|
||||
@@ -1,791 +0,0 @@
|
||||
/*
|
||||
* 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 и выше
|
||||
*
|
||||
* Итак, это русскоязычный пример 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,
|
||||
* но мы требуем, чтобы вы ПРЕЖДЕ ПРОЧИТАЛИ ДОКУМЕНТАЦИЮ и ЧаВО!
|
||||
*/
|
||||
@@ -1,841 +0,0 @@
|
||||
/*
|
||||
* 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 ve üstü 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!
|
||||
*/
|
||||
-1519
File diff suppressed because it is too large
Load Diff
-1404
File diff suppressed because it is too large
Load Diff
@@ -1,160 +0,0 @@
|
||||
PROTOCTL Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
(As of Unreal3.2-beta11)
|
||||
|
||||
The PROTOCTL command allows servers to negotiate protocol specific features when a link
|
||||
occurs. The PROTOCTL command is sent during a link before the SERVER and PASS commands. The
|
||||
command contains tokens that list what protocols the server supports.
|
||||
|
||||
PROTOCTL SPACE <token> SPACE ...
|
||||
|
||||
UnrealIRCd supports several tokens that add additional protocol support to the server. A
|
||||
list of all supported tokens and their function listed below.
|
||||
|
||||
Token Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
NOQUIT Informs the server it need not send out a QUIT for each user on the server
|
||||
when an SQUIT occurs. Instead an SQUIT is sent out for each server that has
|
||||
been disconnected from the network and the server can then assume all users
|
||||
that were on those servers have left as well.
|
||||
|
||||
TOKEN Informs the server that it may send "tokenized commands", that is a shortened
|
||||
name for the commands. This allows the server to save bandwidth by sending
|
||||
less information to other servers. See doc/technical/token.txt for a list of
|
||||
all commands and their respective token.
|
||||
|
||||
NICKv2 Notifies the server that it supports the extended NICK command (version 2),
|
||||
this command allows the server to specify more information in the NICK
|
||||
command rather than having to send out a NICK, MODE, and CHGHOST
|
||||
command. This token only affects a NICK command introducing a client, not one
|
||||
in which a client is changing his/her nickname. The format for a NICKv2 NICK
|
||||
command is:
|
||||
|
||||
:<sender> NICK <nickname> <hops> <TS> <username> <host> <server>
|
||||
<servicestamp> <umodes> <vhost> :<info>
|
||||
|
||||
If the user has no modes set the umodes parameter is a +, if the user has no
|
||||
vhost set the vhost parameter is an *.
|
||||
|
||||
SJOIN SJOIN is an obsolete token that is only supported for backwards
|
||||
compatibility. It should not be used.
|
||||
|
||||
SJOIN2 SJOIN2 is an obsolete token that is only supported for backwards
|
||||
compatibility. It should not be used.
|
||||
|
||||
UMODE2 Informs the server that support for the UMODE2 command exists. The UMODE2
|
||||
command is a shortened form of the MODE command but only applys to
|
||||
usermodes. In a normal MODE command, when applied to usermodes, the nickname
|
||||
is specified two times. Both as the sender prefix and as the first parameter,
|
||||
UMODE2 solves this problem in order to save bandwidth, the format for UMODE2
|
||||
is as follows:
|
||||
|
||||
:<sender> UMODE2 <modes>
|
||||
|
||||
VL Notifies the server that Vline information is included in the info field of
|
||||
the SERVER command. Vline information consists of the protocol number of the
|
||||
server and compiletime options supported. This allows denial of a server
|
||||
based on version and/or features supported. The VL information is passed only
|
||||
during connection, it is not filtered to other servers on the network, only
|
||||
the uplink. The syntax for a VL supporting SERVER command is:
|
||||
|
||||
SERVER <servername> <hops> :U<protocol>-<versionflags> <info>
|
||||
|
||||
If an * appears for either protocol and/or versionflags no Vline checking is
|
||||
done, this is often used by services programs where support for all versions
|
||||
is desired. See doc/technical/vl.txt for a list of version flags and protocol
|
||||
numbers.
|
||||
|
||||
SJ3 Notifies the server that the SJOIN command with SJ3 syntax is
|
||||
supported. SJOIN is used at link time to inform servers about the channels on
|
||||
the server. It is a combination of the JOIN commands, and MODE commands
|
||||
associated with distribution of channel information. The syntax for the SJOIN
|
||||
command with SJ3 syntax is:
|
||||
|
||||
:<sender> SJOIN <ts> <chname> [<modes>] [<mode para> ...] :<[[*~@%+]member] ...
|
||||
[&"ban/except] ...>
|
||||
|
||||
The ts parameter is the time at which the channel, chname, was created. The
|
||||
modes parameter is only included if modes are set, if not modes and mode para
|
||||
are excluded. If modes exists and modes requiring parameters (+klLf) are set,
|
||||
one mode para parameter is included for each value. The last parameter
|
||||
specifies a list of channel members and the channel ban and except list. The
|
||||
members are listed with the prefixes they have. * = +q, ~ = +a, @ = +o, % =
|
||||
+h, + = +v. If no prefix is specified for the member then the user is a
|
||||
normal user. The & prefix is used to denote a +b, and the " prefix denotes a
|
||||
+e. It is important that if a & or " is encountered that you do not continue
|
||||
to check that entry for other prefixes as a ban/except may contain *~@
|
||||
characters which will intefere with prefixes.
|
||||
|
||||
When synching, if ts lower than the local value, the information supplied by
|
||||
the remote server replaces the local (ie remove local +ohv that are not
|
||||
recorded on the remote server). The opposite is true when the ts is
|
||||
higher. Bans/excepts do not apply to the previous rule. If the ts is the
|
||||
same, information is merged therefore the modes from both servers are added
|
||||
together. If +l is set and both servers have different values, the highest is
|
||||
choosen, for +f the highest of each param, N:M is chosen, and if one server
|
||||
has * set, then it is included. For +k and +L the "highest" in a string
|
||||
comparison is used.
|
||||
|
||||
NS When specified informs the server that numeric server names are
|
||||
supported. Numeric server names are a base64 number that is associated with
|
||||
each server. This number is used as a shorthand name for the server. It is
|
||||
used in the server parameter of the NICK command and can also be used in the
|
||||
prefix for a message. In the event that the prefix is an NS, rather than
|
||||
using :<sender>, the format is @<ns> the ns should be translated into the
|
||||
server name so that the message can be processed. The format for a SERVER
|
||||
message (at sync time) that supports NS is:
|
||||
|
||||
SERVER <servername> <hops> :U<protocol>-<versionflags>-<numeric> <info>
|
||||
|
||||
The VL protocol must also be supported. The numeric is passed to all servers
|
||||
on the network through the SERVER command using the syntax:
|
||||
|
||||
:<sender> SERVER <servername> <hops> <numeric> :<info>
|
||||
|
||||
Note: anywhere a :<sender> is expected an @<ns> may be received if the source
|
||||
is a server. See doc/technical/base64.txt for information on the base64
|
||||
system used.
|
||||
|
||||
SJB64 This token allows timestamps to be specified in base64 notation to conserve
|
||||
bandwidth. When SJB64 is supported, anywhere a timestamp can appear may be in
|
||||
base64 notation. A base64 timestamp is preceeded by a ! to identify that it
|
||||
is an sjb64 rather than a regular timestamp, if this is the case the
|
||||
characters following the ! represent the timestamp in base64. See
|
||||
doc/technical/base64.txt for information on the base64 system used.
|
||||
|
||||
ZIP If both servers have this set then the link will be (zlib) compressed after
|
||||
the SERVER message. If one of the servers does not have ZIP in his PROTOCTL
|
||||
message then the link stays uncompressed.
|
||||
|
||||
TKLEXT This allows 10 instead of 8 parameters in TKL's for spamfilter, see s_kline.c
|
||||
function m_tkl for more info on this (added in 3.2RC2).
|
||||
|
||||
NICKIP This token indicates that a (standard) base64 encoded IP address is included
|
||||
in the NICK command. The IP is in binary network byte order formated and
|
||||
encoded using the standard base64 algorithm. '*' is used if no IP is available.
|
||||
|
||||
NICKCHARS This specifies a list of language characters that are allowed in nicks.
|
||||
USMARC codes are used, with a suffix if needed. See src/charsys.c for the full
|
||||
list (ctrl+f, static LangList) of possible languages (2nd column).
|
||||
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.
|
||||
@@ -1,468 +0,0 @@
|
||||
<!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>
|
||||
@@ -0,0 +1,2 @@
|
||||
All server protocol documentation has been moved to the wiki:
|
||||
https://www.unrealircd.org/docs/Server_protocol
|
||||
@@ -1,109 +0,0 @@
|
||||
Token List (c) 2002-2004 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
|
||||
Command Token
|
||||
------------------------------------------------------------------------------------------------
|
||||
PRIVMSG !
|
||||
WHOIS #
|
||||
NICK &
|
||||
SERVER '
|
||||
TOPIC )
|
||||
INVITE *
|
||||
VERSION +
|
||||
QUIT ,
|
||||
SQUIT -
|
||||
KILL .
|
||||
INFO /
|
||||
LINKS 0
|
||||
STATS 2
|
||||
HELP 4
|
||||
ERROR 5
|
||||
AWAY 6
|
||||
CONNECT 7
|
||||
PING 8
|
||||
PONG 9
|
||||
PASS <
|
||||
TIME >
|
||||
ADMIN @
|
||||
SETHOST AA
|
||||
NACHAT AC
|
||||
SETIDENT AD
|
||||
SETNAME AE
|
||||
LAG AF
|
||||
SDESC AG
|
||||
KNOCK AI
|
||||
CREDITS AJ
|
||||
LICENSE AK
|
||||
CHGHOST AL
|
||||
RPING AM
|
||||
RPONG AN
|
||||
NETINFO AO
|
||||
SENDUMODE AP
|
||||
ADDMOTD AQ
|
||||
ADDOMOTD AR
|
||||
SVSMOTD AS
|
||||
SMO AU
|
||||
OPERMOTD AV
|
||||
TSCTL AW
|
||||
SAJOIN AX
|
||||
SAPART AY
|
||||
CHGIDENT AZ
|
||||
NOTICE B
|
||||
SWHOIS BA
|
||||
SVSO BB
|
||||
SVSFLINE BC
|
||||
TKL BD
|
||||
VHOST BE
|
||||
BOTMOTD BF
|
||||
HTM BH
|
||||
DCCDENY BI
|
||||
UNDCCDENY BJ
|
||||
CHGNAME BK
|
||||
SHUN BL
|
||||
CYCLE BP
|
||||
MODULE BQ
|
||||
SVSNLINE BR
|
||||
SVSPART BT
|
||||
SVSLUSERS BU
|
||||
SVSSNO BV
|
||||
SVS2SNO BW
|
||||
SVSJOIN BX
|
||||
SVSSILENCE Bs
|
||||
SVSWATCH Bw
|
||||
JOIN C
|
||||
PART D
|
||||
LUSERS E
|
||||
EOS ES
|
||||
MOTD F
|
||||
MODE G
|
||||
KICK H
|
||||
REHASH O
|
||||
RESTART P
|
||||
CLOSE Q
|
||||
SENDSNO Ss
|
||||
DNS T
|
||||
TEMPSHUN Tz
|
||||
SILENCE U
|
||||
AKILL V
|
||||
UNKLINE X
|
||||
RAKILL Y
|
||||
GLOBOPS ]
|
||||
LOCOPS ^
|
||||
PROTOCTL _
|
||||
WATCH `
|
||||
TRACE b
|
||||
SQLINE c
|
||||
UNSQLINE d
|
||||
SVSNICK e
|
||||
SVSNOOP f
|
||||
SVSKILL h
|
||||
SVSMODE n
|
||||
SAMODE o
|
||||
CHATOPS p
|
||||
UNZLINE r
|
||||
RULES t
|
||||
MAP u
|
||||
SVS2MODE v
|
||||
DALINFO w
|
||||
ADMINCHAT x
|
||||
UMODE2 |
|
||||
SJOIN ~
|
||||
@@ -1,39 +0,0 @@
|
||||
VL Information (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com]
|
||||
|
||||
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
|
||||
2303 3.2-beta*, 3.2-RC*, 3.2
|
||||
2302 3.1.1-Darkshades, 3.1.2-Darkshades, 3.1.3-Komara, 3.1.4-Meadows
|
||||
2301 3.1-Silverheart
|
||||
2300 3.0-Morrigana
|
||||
|
||||
Flag Description
|
||||
------------------------------------------------------------------------------------------------
|
||||
c Server is chrooted
|
||||
C command line config enabled
|
||||
D Server is in debugmode
|
||||
F Using file descriptor lists
|
||||
h Compiled as a hub
|
||||
i Shows invisible users in /trace
|
||||
n NOSPOOF enabled
|
||||
V Uses valloc()
|
||||
W Windows version
|
||||
Y Syslog logging enabled
|
||||
K No ident checking (?)
|
||||
6 IPv6 supported
|
||||
X STRIPBADWORDS enabled (chmode/umode +G)
|
||||
P Uses poll()
|
||||
e SSL supported
|
||||
O OperOverride enabled
|
||||
o OperOverride without verify
|
||||
Z Zip links supported
|
||||
3 3rd party modules (were) loaded or unreal is any other way 'tainted' (eg: bad libs)
|
||||
E Extended channel modes supported
|
||||
+15
-33
@@ -1,43 +1,25 @@
|
||||
==[ Translations ]===========================================================
|
||||
|
||||
Starting with the release of Unreal 3.2 we have begun accepting translated
|
||||
documentation files. For now, only translations of unreal32docs.html and
|
||||
example.conf are accepted. Other stuff might be translated later, but
|
||||
this will probably be postponed to 3.3 (numerics/ircd text/help.conf/etc).
|
||||
In UnrealIRCd 4 we support the following translations:
|
||||
* on-line documentation at https://www.unrealircd.org/docs/ (wiki!)
|
||||
* help.conf
|
||||
* example.conf
|
||||
|
||||
There a few requirements however:
|
||||
- When you submit your translation it should be a translation of the
|
||||
very latest doc... So be sure to translate the cvs version of
|
||||
unreal32docs.html (www.vulnscan.org/UnrealIrcd/unreal32docs.html).
|
||||
- Of course the translation should be correct.. So also 'technically',
|
||||
it's therefore recommended that have some real experience with Unreal ;)
|
||||
- If you are accepted and start working on it, it would be nice if you
|
||||
could put your docs-in-progress online somewhere so we can see how
|
||||
progress is going a bit.
|
||||
- You should use a proper HTML editor, this especially excludes Microsoft
|
||||
Word and Frontpage since it enlarges the .html file by (at least) 30%.
|
||||
Don't worry, there are enough free&simple html editors out there that
|
||||
work perfectly fine, you won't need to be an HTML expert at all!
|
||||
- Someone, usually the person who translated it, needs to be willing
|
||||
For translating the wiki documentation see this article:
|
||||
https://www.unrealircd.org/docs/Translating_UnrealIRCd_wiki_pages
|
||||
|
||||
For the .conf files the following rules apply:
|
||||
* You must translate the very latest (English) version of the document(s)
|
||||
* The translation must be correct. Not just the spelling and grammar,
|
||||
but also 'technically'. You should therefore have some real experience
|
||||
with UnrealIRCd.
|
||||
* Someone, usually the person who translated it, needs to be willing
|
||||
to actively maintain the docs. This is very important! If docs are
|
||||
out of date (out-of-synch) there will be confusion among users.
|
||||
Translators will receive once a week (and right before every release)
|
||||
all changes that were made in unreal32docs.html. Then the translator
|
||||
should update his/her doc and send it in (or commit it via cvs).
|
||||
Count on an average of 15 minutes a week (it varies).
|
||||
|
||||
Now, we should tell you that the first-time translation of unreal32docs.html
|
||||
is a LOT of work.. probably 20 hours or so. After that, the weekly updates
|
||||
take really just 5, 10, 15 minutes a week, which is pretty much "no time".
|
||||
Now why would you translate at all? Well, by translating UnrealIRCd
|
||||
documentation you will help out your fellow citizens and/or other people
|
||||
of that language, you will make Unreal a bit more 'internationalized',
|
||||
and it's a worthwile contribution to the UnrealIRCd project.
|
||||
Upon successful completion you will also receive an @unrealircd.org
|
||||
forwarder email address, and of course your name will be in the docs.
|
||||
We will remove documents that have been out of date too long (months)
|
||||
|
||||
If you want to start translating a document, please send an email to
|
||||
syzop@unrealircd.com and mention the language you are willing to translate
|
||||
syzop@unrealircd.org and mention the language you are willing to translate
|
||||
to.. You will then receive an email back saying you can go ahead (or not).
|
||||
This is mainly to avoid multiple persons working on the same translation.
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit on any failure:
|
||||
set -e
|
||||
|
||||
# Verbose:
|
||||
set -x
|
||||
|
||||
if [ "$1" != "" ]; then
|
||||
BUILDCONFIG="$*"
|
||||
fi
|
||||
|
||||
export MAKE="make -j3"
|
||||
export CPPFLAGS="-DFAKELAG_CONFIGURABLE"
|
||||
|
||||
extras/build-tests/nix/select-config $BUILDCONFIG
|
||||
# Read config.settings, this makes a couple of variables available to us.
|
||||
. ./config.settings
|
||||
if [ "$SSLDIR" != "" ]; then
|
||||
# In case we build local openssl/libressl
|
||||
export LD_LIBRARY_PATH="$SSLDIR/lib"
|
||||
fi
|
||||
./Config -quick || (tail -n 5000 config.log; echo '*** now tre:'; tail -n 5000 extras/tre-0.8.0-git/config.log; echo '** end of tre config.log **'; exit 1)
|
||||
$MAKE
|
||||
yes ''|make pem
|
||||
make install
|
||||
|
||||
set +x
|
||||
echo ""
|
||||
echo "***********************************************"
|
||||
echo "UnrealIRCd build & install successful."
|
||||
echo "***********************************************"
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
otool -L ~/unrealircd/bin/unrealircd
|
||||
else
|
||||
ldd ~/unrealircd/bin/unrealircd
|
||||
fi
|
||||
|
||||
if [ "$BUILDCONFIG" = "local-curl" ]; then
|
||||
# We broke the system significantly earlier that build tests
|
||||
# won't work (eg: 'git' is uninstallable). Don't bother
|
||||
# running the tests. I don't expect a 'local-curl' specific
|
||||
# bug anyway.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# 'rake' doesn't work. have to figure that one out..
|
||||
echo "Not running test on OS X for now"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
#echo "Now running UnrealIRCd test framework..."
|
||||
#set -x
|
||||
#extras/build-tests/nix/run-tests
|
||||
@@ -0,0 +1,29 @@
|
||||
#
|
||||
BASEPATH=$HOME/unrealircd
|
||||
BINDIR=$HOME/unrealircd/bin
|
||||
DATADIR=$HOME/unrealircd/data
|
||||
CONFDIR=$HOME/unrealircd/conf
|
||||
MODULESDIR=$HOME/unrealircd/modules
|
||||
LOGDIR=$HOME/unrealircd/logs
|
||||
CACHEDIR=$HOME/unrealircd/cache
|
||||
DOCDIR=$HOME/unrealircd/doc
|
||||
TMPDIR=$HOME/unrealircd/tmp
|
||||
LIBDIR=$HOME/unrealircd/lib
|
||||
PREFIXAQ="1"
|
||||
MAXSENDQLENGTH="3000000"
|
||||
MAXCONNECTIONS="1024"
|
||||
NICKNAMEHISTORYLENGTH="2000"
|
||||
DEFPERM="0600"
|
||||
SSLDIR=""
|
||||
REMOTEINC=""
|
||||
CURLDIR=""
|
||||
SHOWLISTMODES="1"
|
||||
TOPICNICKISNUH=""
|
||||
SHUNNOTICES=""
|
||||
NOOPEROVERRIDE=""
|
||||
DISABLEUSERMOD=""
|
||||
OPEROVERRIDEVERIFY=""
|
||||
DISABLEEXTBANSTACKING=""
|
||||
GENCERTIFICATE="0"
|
||||
#EXTRAPARA="--enable-werror"
|
||||
ADVANCED=""
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script fires up a two-server IRC network and runs the test framework
|
||||
#
|
||||
|
||||
# Exit on error:
|
||||
set -e
|
||||
|
||||
# Verbose:
|
||||
set -x
|
||||
|
||||
# Install packages
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install git || true
|
||||
brew install python || true
|
||||
gem install bundler || true
|
||||
gem install rake || true
|
||||
gem install rspec || true
|
||||
else
|
||||
sudo apt-get install git python rake -y
|
||||
gem install bundler -v "~>1.0"
|
||||
fi
|
||||
|
||||
# Install 'ircfly'
|
||||
git clone -q https://github.com/unrealircd/ircfly.git
|
||||
cd ircfly
|
||||
bundle install
|
||||
bundle exec rake build
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
bundle exec rake install
|
||||
else
|
||||
sudo rake install
|
||||
fi
|
||||
cd ..
|
||||
|
||||
# Install 'cipherscan'
|
||||
git clone -q https://github.com/mozilla/cipherscan
|
||||
|
||||
# Install 'unrealircd-tests-old'
|
||||
git clone -q https://github.com/unrealircd/unrealircd-tests-old.git
|
||||
cd unrealircd-tests-old
|
||||
bundle install
|
||||
mv config.yaml.example config.yaml
|
||||
|
||||
# Start the IRC servers
|
||||
cp ircdconfig/* ~/unrealircd/conf/
|
||||
cd ~/unrealircd
|
||||
bin/unrealircd -f hub.conf
|
||||
bin/unrealircd -f irc1.conf
|
||||
bin/unrealircd -f irc2.conf
|
||||
cd -
|
||||
|
||||
# Do cipherscan test
|
||||
sleep 2
|
||||
cd ../extras/tests/tls
|
||||
./tls-tests
|
||||
cd -
|
||||
|
||||
# Back in unrealircd-tests-old, run the tests!
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
bundle exec rake
|
||||
else
|
||||
rake
|
||||
fi
|
||||
Executable
+114
@@ -0,0 +1,114 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This is a helper script for travis-ci builds and our own FreeBSD test machine.
|
||||
# It is not meant to be used by end-users
|
||||
#
|
||||
|
||||
function fail()
|
||||
{
|
||||
echo "select-config failed: $*"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function build_ssl {
|
||||
DIR="$2"
|
||||
URL="$1/$2.tar.gz"
|
||||
savewd="$PWD"
|
||||
cd ~
|
||||
wget "$URL" || exit 1
|
||||
tar xzf $DIR.tar.gz
|
||||
cd "$DIR"
|
||||
(./configure --prefix=$HOME/ssl 1>/dev/null 2>&1 || ./config --prefix=$HOME/ssl -fPIC 1>/dev/null 2>&1 ) || fail "build_ssl: configure/config failed"
|
||||
(make -j2 1>/dev/null 2>&1 && make install 1>/dev/null 2>&1) || fail "build_ssl: make failed"
|
||||
cd "$savewd"
|
||||
echo "SSLDIR=$HOME/ssl" >>config.settings
|
||||
}
|
||||
|
||||
if [ ! -d extras ]; then
|
||||
echo "This tool is supposed to be run from the source root, so ~/unrealircd-4.2.x or similar"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
# Take default settings as a starter..
|
||||
cp extras/build-tests/nix/configs/default ./config.settings
|
||||
|
||||
# Libtool is required for the other options..
|
||||
# Also for our FreeBSD machine we have to uninstall some stuff since a clean
|
||||
# environment is not guaranteed...
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get -qq update
|
||||
sudo apt-get install libtool -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y libtool
|
||||
sudo pkg remove -y c-ares
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew update
|
||||
brew install openssl
|
||||
else
|
||||
echo "OS not correctly detected ($OSTYPE). Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "*****************************************************************"
|
||||
echo "SELECTED BUILD OPTIONS: $*"
|
||||
echo "*****************************************************************"
|
||||
|
||||
while [ "$1" ]
|
||||
do
|
||||
echo "Processing option $1..."
|
||||
if [ "$1" = "system-cares" ]; then
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get install libc-ares-dev -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y c-ares
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install c-ares
|
||||
fi
|
||||
elif [ "$1" = "system-curl" ]; then
|
||||
echo 'REMOTEINC=1' >>config.settings
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get install libcurl4-openssl-dev -qq
|
||||
echo 'CURLDIR=/usr' >>config.settings
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg install -y curl
|
||||
echo 'CURLDIR=/usr/local' >>config.settings
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install c-ares curl
|
||||
echo 'CURLDIR=/usr/local/opt/curl' >>config.settings
|
||||
fi
|
||||
elif [ "$1" = "local-curl" ]; then
|
||||
if [ "$OSTYPE" = "linux-gnu" ]; then
|
||||
sudo apt-get remove libcurl4-openssl-dev libcurl3-gnutls libcurl3 -qq
|
||||
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
||||
sudo pkg remove -y curl #NOTE: unfortunately this also removes 'git' :D
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "No need to remove curl since it's not installed. Or at least I hope so..."
|
||||
fi
|
||||
echo 'REMOTEINC=1' >>config.settings
|
||||
echo "CURLDIR=`pwd`/extras/curl" >>config.settings
|
||||
elif [ "$1" = "libressl-27" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.7.5
|
||||
elif [ "$1" = "libressl-28" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.8.3
|
||||
elif [ "$1" = "libressl-29" ]; then
|
||||
build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.9.0
|
||||
elif [ "$1" = "openssl-102" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.0.2q
|
||||
elif [ "$1" = "openssl-110" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.1.0j
|
||||
elif [ "$1" = "openssl-111" ]; then
|
||||
build_ssl https://www.openssl.org/source openssl-1.1.1a
|
||||
else
|
||||
echo "Unknown option $1"
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "NOTE: Not building with -Werror for now on macOS..."
|
||||
else
|
||||
echo 'EXTRAPARA="--enable-werror"' >>config.settings
|
||||
fi
|
||||
@@ -0,0 +1,49 @@
|
||||
rem Build script for appveyor
|
||||
|
||||
rem Initialize Visual Studio variables
|
||||
if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
|
||||
rem Installing tools
|
||||
cinst unrar -y
|
||||
cinst unzip -y
|
||||
cinst innosetup -y
|
||||
curl -fsS -o dlltool.exe https://www.unrealircd.org/files/dev/win/dlltool.exe
|
||||
|
||||
rem Installing UnrealIRCd dependencies
|
||||
cd \projects
|
||||
mkdir unrealircd-deps
|
||||
cd unrealircd-deps
|
||||
curl -fsS -o SetACL.exe https://www.unrealircd.org/files/dev/win/SetACL.exe
|
||||
curl -fsS -o unrealircd-libraries-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-devel.zip
|
||||
unzip unrealircd-libraries-devel.zip
|
||||
|
||||
cd \projects\unrealircd
|
||||
|
||||
rem Now the actual build
|
||||
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
|
||||
|
||||
rem The above command will fail, due to missing symbol file
|
||||
rem However the symbol file can only be generated after the above command
|
||||
rem So... we create the symbolfile...
|
||||
nmake -f makefile.win32 SYMBOLFILE
|
||||
|
||||
rem And we re-run the exact same command:
|
||||
call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat
|
||||
if %ERRORLEVEL% NEQ 0 EXIT /B 1
|
||||
|
||||
rem Convert c:\dev to c:\projects\unrealircd-deps
|
||||
rem TODO: should use environment variable in innosetup script?
|
||||
sed -i "s/c:\\\\dev/c:\\\\projects\\\\unrealircd-deps/gi" src\win32\unrealinst.iss
|
||||
|
||||
rem Build installer file
|
||||
"c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\win32\unrealinst.iss
|
||||
if %ERRORLEVEL% NEQ 0 EXIT /B 1
|
||||
|
||||
rem Show some proof
|
||||
ren mysetup.exe unrealircd-dev-build.exe
|
||||
dir unrealircd-dev-build.exe
|
||||
sha256sum unrealircd-dev-build.exe
|
||||
|
||||
rem Upload artifact
|
||||
appveyor PushArtifact unrealircd-dev-build.exe
|
||||
if %ERRORLEVEL% NEQ 0 EXIT /B 1
|
||||
@@ -0,0 +1,21 @@
|
||||
rem Build command for Visual Studio 2017
|
||||
|
||||
nmake -f makefile.win32 ^
|
||||
LIBRESSL_INC_DIR="c:\projects\unrealircd-deps\libressl\include" ^
|
||||
LIBRESSL_LIB_DIR="c:\projects\unrealircd-deps\libressl\lib" ^
|
||||
SSLLIB="crypto-44.lib ssl-46.lib" ^
|
||||
USE_REMOTEINC=1 ^
|
||||
LIBCURL_INC_DIR="c:\projects\unrealircd-deps\curl-ssl\include" ^
|
||||
LIBCURL_LIB_DIR="c:\projects\unrealircd-deps\curl-ssl\builds\libcurl-vc-x86-release-dll-ssl-dll-ipv6-sspi-obj-lib" ^
|
||||
CARES_LIB_DIR="c:\projects\unrealircd-deps\c-ares\msvc\cares\dll-release" ^
|
||||
CARES_INC_DIR="c:\projects\unrealircd-deps\c-ares" ^
|
||||
CARESLIB="cares.lib" ^
|
||||
TRE_LIB_DIR="c:\projects\unrealircd-deps\tre\win32\release" ^
|
||||
TRE_INC_DIR="c:\projects\unrealircd-deps\tre" ^
|
||||
TRELIB="tre.lib" ^
|
||||
PCRE2_INC_DIR="c:\projects\unrealircd-deps\pcre2\include" ^
|
||||
PCRE2_LIB_DIR="c:\projects\unrealircd-deps\pcre2\lib" ^
|
||||
PCRE2LIB="pcre2-8.lib" ^
|
||||
ARGON2_LIB_DIR="c:\projects\unrealircd-deps\argon2\vs2015\build" ^
|
||||
ARGON2_INC_DIR="c:\projects\unrealircd-deps\argon2\include" ^
|
||||
ARGON2LIB="Argon2RefDll.lib" %*
|
||||
-311
@@ -1,311 +0,0 @@
|
||||
/*
|
||||
** burst.c
|
||||
**
|
||||
** Nicolas Pioch, Dec 93
|
||||
** <Nicolas.Pioch@enst.fr>
|
||||
** Carsten V. Munk Nov 2000
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/signal.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/un.h>
|
||||
#include <netdb.h>
|
||||
#include <errno.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef POSIX
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#define MYBUFSIZE 2048
|
||||
|
||||
char *jupedservername, *uplinkservername, *jupereason;
|
||||
int options;
|
||||
char *password;
|
||||
typedef struct aClient {
|
||||
int socket;
|
||||
char buffer[MYBUFSIZE+1];
|
||||
int read;
|
||||
int write;
|
||||
} aClient;
|
||||
|
||||
void fatalrestart(aClient *robotptr, const char *s);
|
||||
|
||||
void fatal(const char *s) {
|
||||
perror(s);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
typedef void (*signalhandler)(int);
|
||||
static void signal_catcher(int sig, int code, struct sigcontext *scp) {
|
||||
fprintf(stderr, "Caught signal %d with code %d\n", sig, code);
|
||||
|
||||
switch(sig) {
|
||||
case SIGFPE: /* Floating point exception */
|
||||
case SIGILL: /* Illegal instruction */
|
||||
case SIGSEGV: /* Segmentation violation */
|
||||
case SIGBUS: /* Bus error */
|
||||
case SIGSYS: /* Bad argument to system call */
|
||||
fatal("Fatal signal received, aborting...");
|
||||
break;
|
||||
|
||||
case SIGQUIT:
|
||||
case SIGINT:
|
||||
case SIGTERM: /* On se barre */
|
||||
fatal("AAAAAAAAArrrrrrrrgh!");
|
||||
break;
|
||||
}
|
||||
|
||||
signal(sig, (signalhandler)signal_catcher);
|
||||
}
|
||||
|
||||
|
||||
typedef union socket_address {
|
||||
struct sockaddr_un unixx;
|
||||
struct sockaddr_in inet;
|
||||
} socket_address;
|
||||
|
||||
void name_to_number(int address_family, const char *hostname, int port,
|
||||
socket_address *addr, int *len2) {
|
||||
u_long iaddr;
|
||||
int len;
|
||||
struct hostent *host;
|
||||
char *inaddr;
|
||||
bzero ((char *) addr, sizeof (socket_address) );
|
||||
|
||||
if ( address_family == AF_UNIX ) {
|
||||
strcpy(addr->unixx.sun_path,hostname);
|
||||
*len2=sizeof( struct sockaddr_un );
|
||||
} else {
|
||||
if ((hostname) && (hostname[0])) {
|
||||
if (hostname[0] >= '0' && hostname[0] <= '9') {
|
||||
iaddr = inet_addr(hostname);
|
||||
inaddr = (char *) &iaddr;
|
||||
len=sizeof(iaddr);
|
||||
} else {
|
||||
host=gethostbyname (hostname);
|
||||
if (!host)
|
||||
fatal("Unknown host");
|
||||
inaddr=host->h_addr_list[0];
|
||||
len=host->h_length;
|
||||
}
|
||||
bcopy(inaddr, (char *)&addr->inet.sin_addr, len);
|
||||
}
|
||||
addr->inet.sin_port=htons((u_short) port);
|
||||
*len2=sizeof(struct sockaddr_in);
|
||||
}
|
||||
addr->inet.sin_family = address_family;
|
||||
}
|
||||
|
||||
int read_data(aClient *robotptr) {
|
||||
int nbytes;
|
||||
|
||||
if ((nbytes=read(robotptr->socket, &(robotptr->buffer[robotptr->write]),
|
||||
(sizeof(robotptr->buffer) - robotptr->write - 1))) < 0)
|
||||
fatalrestart(robotptr, "read on socket");
|
||||
|
||||
if (nbytes == 0) {
|
||||
close(robotptr->socket);
|
||||
fatalrestart(robotptr, "Connection Closed");
|
||||
}
|
||||
|
||||
robotptr->write+=nbytes;
|
||||
robotptr->buffer[robotptr->write]=0;
|
||||
|
||||
return(nbytes);
|
||||
}
|
||||
|
||||
void send_data(int socketfd, const char *data, int length) {
|
||||
int length2;
|
||||
length2=write(socketfd, data, length);
|
||||
if (length2 != length)
|
||||
fprintf(stderr, "*** write truncated to %d chars...\n", length2);
|
||||
}
|
||||
|
||||
int create_client(const char *hostname, const int hostport) {
|
||||
int descript;
|
||||
socket_address hostaddr;
|
||||
int adlen;
|
||||
|
||||
/* winlocal
|
||||
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) < 0)
|
||||
*/
|
||||
if ((descript=socket(PF_INET, SOCK_STREAM, 0)) == -1) // winlocal
|
||||
fatal("socket");
|
||||
|
||||
name_to_number(AF_INET, hostname, hostport, &hostaddr, &adlen);
|
||||
|
||||
if (connect(descript, &hostaddr.inet, adlen) < 0)
|
||||
fatal("connect");
|
||||
|
||||
return(descript);
|
||||
}
|
||||
|
||||
void parse_line(aClient *robotptr) {
|
||||
char *toparse;
|
||||
|
||||
toparse=(robotptr->buffer + robotptr->read);
|
||||
|
||||
printf("%s\n",toparse);
|
||||
/* Special handling for PING messages */
|
||||
if (!strncasecmp(toparse, "PING ", 5) || !strncasecmp(toparse, "8 ", 2)){
|
||||
toparse=strtok(toparse, "\r\n");
|
||||
toparse[1]='\0';
|
||||
send_data(robotptr->socket, toparse, strlen(toparse));
|
||||
return;
|
||||
}
|
||||
if (!strncasecmp(toparse, "AO", 2) || !strncasecmp(toparse, "NETINFO", 7))
|
||||
{
|
||||
if (!(options & 0x80))
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void parse_data(aClient *robotptr) {
|
||||
int next;
|
||||
|
||||
while((robotptr->read < robotptr->write)
|
||||
&& ((robotptr->buffer[robotptr->read] == '\r')
|
||||
|| (robotptr->buffer[robotptr->read] == '\n')))
|
||||
robotptr->read++;
|
||||
|
||||
for(next=robotptr->read; next<=robotptr->write; next++) {
|
||||
if ((robotptr->buffer[next] == '\r')
|
||||
|| (robotptr->buffer[next] == '\n'))
|
||||
break;
|
||||
}
|
||||
|
||||
if (next<robotptr->write) {
|
||||
robotptr->buffer[next]=0;
|
||||
next++;
|
||||
parse_line(robotptr);
|
||||
robotptr->read=next;
|
||||
parse_data(robotptr);
|
||||
}
|
||||
|
||||
if (robotptr->read == robotptr->write) {
|
||||
robotptr->read=robotptr->write=0;
|
||||
} else {
|
||||
bcopy((robotptr->buffer + robotptr->read),
|
||||
(robotptr->buffer), (robotptr->write-robotptr->read));
|
||||
robotptr->write-=robotptr->read;
|
||||
robotptr->read=0;
|
||||
}
|
||||
}
|
||||
|
||||
void run_client(aClient *robotptr) {
|
||||
fd_set mask, returnmask[3];
|
||||
int selectval;
|
||||
|
||||
FD_ZERO(&mask);
|
||||
FD_SET(robotptr->socket, &mask);
|
||||
|
||||
while (1) {
|
||||
bcopy((char *)&mask,(char *)returnmask,sizeof(fd_set));
|
||||
FD_ZERO(returnmask+1);
|
||||
bcopy((char *)&mask,(char *)(returnmask+2),sizeof(fd_set));
|
||||
|
||||
selectval=select(FD_SETSIZE,
|
||||
returnmask, returnmask+1, returnmask+2, NULL);
|
||||
|
||||
if (selectval) {
|
||||
read_data(robotptr);
|
||||
parse_data(robotptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void initialize(aClient *robotptr) {
|
||||
char passphrase[MYBUFSIZE];
|
||||
robotptr->socket=create_client(uplinkservername, atol(jupereason));
|
||||
sprintf(passphrase,
|
||||
"PROTOCTL %s %s %s %s %s %s %s %s %s\r\n",
|
||||
(options & 0x1) ? "NOQUIT" : "",
|
||||
(options & 0x2) ? "TOKEN" : "",
|
||||
(options & 0x4) ? "NICKv2" : "",
|
||||
(options & 0x8) ? "SJOIN" : "",
|
||||
(options & 0x10) ? "SJOIN2" : "",
|
||||
(options & 0x20) ? "UMODE2" : "",
|
||||
(options & 0x40) ? "NS" : "",
|
||||
(options & 0x100) ? "SJ3" : "",
|
||||
(options & 0x200) ? "SJB64" : "");
|
||||
write(robotptr->socket, passphrase, strlen(passphrase));
|
||||
sprintf(passphrase, "PASS %s\r\nSERVER %s 1 :[Burst analysis].\r\n",
|
||||
password,jupedservername);
|
||||
write(robotptr->socket, passphrase, strlen(passphrase));
|
||||
}
|
||||
|
||||
void fatalrestart(aClient *robotptr, const char *s) {
|
||||
perror(s);
|
||||
close(robotptr->socket);
|
||||
sleep(10);
|
||||
initialize(robotptr);
|
||||
run_client(robotptr);
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
aClient robot;
|
||||
char *p;
|
||||
|
||||
if (argc != 6) {
|
||||
fprintf(stderr, "IRCd burst generator, by Carsten V. Munk 2000, based off jupe.c by Nicolas Pioch\n");
|
||||
fprintf(stderr,
|
||||
"Usage: %s <burstservername> <uplink> <port> <options> <password>\n", argv[0]);
|
||||
fprintf(stderr, "Options can be a combination of these:\n");
|
||||
fprintf(stderr, "1 = Enable NOQUIT 2 = Enable TOKEN\n");
|
||||
fprintf(stderr, "3 = Enable NICKv2 4 = Enable SJOIN\n");
|
||||
fprintf(stderr, "5 = Enable SJOIN2 6 = Enable UMODE2\n");
|
||||
fprintf(stderr, "7 = Enable NS 8 = Ignore end of burst\n");
|
||||
fprintf(stderr, "9 = Enable SJ3 a = Enable SJB64\n");
|
||||
fatal("incorrect argument count");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
jupedservername=argv[1];
|
||||
uplinkservername=argv[2];
|
||||
jupereason=argv[3];
|
||||
password = argv[5];
|
||||
p = argv[4];
|
||||
for (; *p; p++)
|
||||
{
|
||||
if (*p == '1')
|
||||
options |= 0x1;
|
||||
if (*p == '2')
|
||||
options |= 0x2;
|
||||
if (*p == '3')
|
||||
options |= 0x4;
|
||||
if (*p == '4')
|
||||
options |= 0x8;
|
||||
if (*p == '5')
|
||||
options |= 0x10;
|
||||
if (*p == '6')
|
||||
options |= 0x20;
|
||||
if (*p == '7')
|
||||
options |= 0x40;
|
||||
if (*p == '8')
|
||||
options |= 0x80;
|
||||
if (*p == '9')
|
||||
options |= 0x100;
|
||||
if (*p == 'a')
|
||||
options |= 0x200;
|
||||
}
|
||||
/* installe le signal_catcher */
|
||||
signal(SIGTERM,(signalhandler)signal_catcher);
|
||||
|
||||
robot.read=robot.write=0;
|
||||
|
||||
initialize(&robot);
|
||||
run_client(&robot);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user