mirror of
https://github.com/anope/anope.git
synced 2026-07-03 22:43:13 +02:00
Compare commits
449 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1dee851207 | |||
| 9c91d386e4 | |||
| 3e4d87051b | |||
| 26975fc011 | |||
| c15dc49994 | |||
| 14ee76a0ad | |||
| 4465c67790 | |||
| 20e0fa33fc | |||
| 7e76daf39f | |||
| 2ee63f0f68 | |||
| c35029fa2f | |||
| bae8987ec1 | |||
| 470d4d1a97 | |||
| 78bac905c2 | |||
| d88d8e940e | |||
| b2c3775b58 | |||
| b311248bed | |||
| f7f45b4e2b | |||
| 3cad3514f1 | |||
| 1020ca47bd | |||
| 48dbb70ecc | |||
| ae16206f0c | |||
| 7045f206af | |||
| 67bd3e44c0 | |||
| 264981fb1b | |||
| 47d471c53d | |||
| e43bc49ba7 | |||
| d9de4ddd82 | |||
| 8f7f4b1593 | |||
| fc64c0c6dd | |||
| 03d065e952 | |||
| 77a52eec7c | |||
| 523a586176 | |||
| af32a14fc1 | |||
| 5c8548040a | |||
| 6a42c1a4f3 | |||
| 0defcda8d0 | |||
| f6ee88c42a | |||
| 34f65e3266 | |||
| 02ac3a403c | |||
| e1e840a87d | |||
| eb66f9eda0 | |||
| a4c37a373a | |||
| bca9b4ce83 | |||
| a2446b8d4b | |||
| e567cfda36 | |||
| 961a9bc506 | |||
| da6e2730c2 | |||
| 2b8072bf80 | |||
| 49cea76841 | |||
| e1c8aa0dbc | |||
| 2546e865e2 | |||
| d6af21e0d9 | |||
| 18522f7fc8 | |||
| 4c167bed69 | |||
| 32a21679fb | |||
| a5eaf6fc49 | |||
| 9d7245bded | |||
| 02fb4b67cf | |||
| cf44418e10 | |||
| 6fbb7cffe9 | |||
| b279863acb | |||
| 9e7dadb967 | |||
| 9069bf4e2f | |||
| e85b0a5f68 | |||
| 195eff9c04 | |||
| 42aa330db3 | |||
| 1e9d959857 | |||
| 38721993f1 | |||
| 1b782235c4 | |||
| 368300d319 | |||
| 94e10d52fb | |||
| d25c8c169e | |||
| 67b7fed9ed | |||
| e32a8dbbe5 | |||
| 281edf8475 | |||
| ce7c266651 | |||
| c1166e3618 | |||
| 8294c94b95 | |||
| 6f09b703dd | |||
| 466e5be741 | |||
| 32076c099c | |||
| 216b96aa57 | |||
| 6d592e2a0f | |||
| feb5a4d935 | |||
| e03ae0cd85 | |||
| 901fc3e40f | |||
| 5683f45925 | |||
| bafc17472e | |||
| 7638c7a884 | |||
| d25722ddd0 | |||
| 750d1009ec | |||
| b8e7960ff6 | |||
| ff878bbda8 | |||
| 1baf774647 | |||
| 772410d974 | |||
| 7ceb4426c7 | |||
| 10c7a9ff94 | |||
| b3c4b28a67 | |||
| 0da4150283 | |||
| 5920f1b59c | |||
| 68fcb1af93 | |||
| 0574de2d22 | |||
| c9c53dbe61 | |||
| a084245822 | |||
| 77e3f062da | |||
| 0e14adcb0f | |||
| 8bb3067e42 | |||
| 0c469abe4a | |||
| d63e32a579 | |||
| f13c450b93 | |||
| e95c07291a | |||
| 2963fc0a1d | |||
| 5d309d46e1 | |||
| 2e7fcd3098 | |||
| 884759aed4 | |||
| 2ec65023a6 | |||
| 0093f3fa44 | |||
| 2ad76278dd | |||
| 23e59d9f2c | |||
| 3cb9e0b97c | |||
| 0b7b6d9d6d | |||
| 56e6efbe8f | |||
| feed624cdc | |||
| 1a6f42b994 | |||
| 04f49225c9 | |||
| b18d1a69b6 | |||
| 0ace685597 | |||
| bfcfd0b727 | |||
| 087f1cb359 | |||
| 010d20198e | |||
| 953e804231 | |||
| c656fe0694 | |||
| fb3ec7a897 | |||
| 274658f955 | |||
| 7621306f4b | |||
| b804867105 | |||
| f8f1550c31 | |||
| 0fcc66711b | |||
| 8d9574e306 | |||
| 6cb17c734c | |||
| 3545e8e383 | |||
| 3c18e02b0b | |||
| b831cd8a36 | |||
| 516ab164f6 | |||
| b2d028533d | |||
| a88d9cb1f0 | |||
| b57ef5d2c7 | |||
| 1a96390826 | |||
| 60339edf40 | |||
| 6990c692d6 | |||
| 98e62b4032 | |||
| a1d7d42d6a | |||
| 3f7c0829ef | |||
| 46d8af781d | |||
| 67b7c8bd7d | |||
| 21486e2c81 | |||
| 29ac40b584 | |||
| dde444ed0e | |||
| 9b6c209c80 | |||
| 3c7d67c8cd | |||
| c730291762 | |||
| c593661f40 | |||
| a9bf251886 | |||
| beac29b1d0 | |||
| 35d6437d45 | |||
| 76ce8ece1a | |||
| 464093d36e | |||
| 71bb3fefcc | |||
| 1f6f9f5dbb | |||
| 34bf21f7d1 | |||
| 847dfd9523 | |||
| a96e40e249 | |||
| 8656b65e39 | |||
| 39422beaef | |||
| 6d29538346 | |||
| bdf4650ff8 | |||
| 074bde5ccc | |||
| a4f7d847ab | |||
| 5beb338247 | |||
| 7b1154de69 | |||
| 46aeb8b70b | |||
| fe6271dffb | |||
| 7cede5bb60 | |||
| 2b7f0084b7 | |||
| ec7ce09ef4 | |||
| 574c8dfbc7 | |||
| 4381031994 | |||
| b3010c3c6b | |||
| d092f5e7c8 | |||
| 358f46b8ae | |||
| e5125c2c84 | |||
| 65db59b3ec | |||
| 95cd7a6aee | |||
| 12515fd2c1 | |||
| 437a6dbb29 | |||
| d96ca9b824 | |||
| aefde6e44d | |||
| 23a0628fba | |||
| ef9c69f99d | |||
| 8be331618c | |||
| a5fdf7c546 | |||
| dba19d839a | |||
| 7453c71c00 | |||
| f09ea316dd | |||
| ac0f3c5ccf | |||
| 76ea111980 | |||
| 9f9183afc4 | |||
| ef32505633 | |||
| 304494322f | |||
| 9e510cd0d9 | |||
| 0f49d1051a | |||
| 4b97a9b13f | |||
| 07f72a3122 | |||
| f4543edfe2 | |||
| 095751363d | |||
| 1b67b97e93 | |||
| d4bf0957d1 | |||
| 99acdcf168 | |||
| e95950ee26 | |||
| fc0171fb40 | |||
| 1c82697ccb | |||
| f3bb46a9f5 | |||
| 3b62c8f3e2 | |||
| 4d054aa2b2 | |||
| 3a8ff5d456 | |||
| 0b783b66a4 | |||
| 0c7050c506 | |||
| d02b3c1c45 | |||
| d8a945b1a6 | |||
| b50fbec705 | |||
| d488efdcfe | |||
| 13c5eec00a | |||
| 39eb9f8cfc | |||
| 83c2f8e970 | |||
| e23cf0c221 | |||
| de174149f7 | |||
| 663e79e4d3 | |||
| 2a5e7827bd | |||
| 9c0b843665 | |||
| 8fdfa6e094 | |||
| dad4be050b | |||
| 937b0e7185 | |||
| db4f38bcf5 | |||
| c2e09fdaea | |||
| 01768bc73e | |||
| c18eedec18 | |||
| 0e0615c6fe | |||
| 5bd3fde79b | |||
| 647f8cd4e6 | |||
| b2e25db159 | |||
| 9f9371531d | |||
| b578ed2544 | |||
| 0a7f167060 | |||
| d427772bd3 | |||
| b2d670298b | |||
| 6b646fa1f8 | |||
| 72269c44e5 | |||
| 3b2366e4ba | |||
| 257a8a9a24 | |||
| 7a1d2e11dd | |||
| 8dc687b657 | |||
| 18fc113984 | |||
| 20c1a5d638 | |||
| 8000ae0c0f | |||
| 284d95bfe2 | |||
| c7d5ee4bec | |||
| 4c4cc0ded7 | |||
| 83f89bfece | |||
| 7cf4245359 | |||
| 9284441491 | |||
| 7592a6981b | |||
| 56b158ea43 | |||
| 0143dafe51 | |||
| a2dbcc620e | |||
| 9b5fdea8f2 | |||
| fab07d6b75 | |||
| 1d198da436 | |||
| 8b6e17fe7e | |||
| 86484b6c2b | |||
| c14ae99d32 | |||
| cb0cda2f8d | |||
| 2af363755a | |||
| 753b8dc989 | |||
| d2ea1e7917 | |||
| a8f66578b1 | |||
| ca39aeb554 | |||
| a941f9bde0 | |||
| f4f6787c9c | |||
| 82816cb206 | |||
| 58f0c8c612 | |||
| 21e1913c0f | |||
| 79e7c3f98a | |||
| 72127e1b00 | |||
| ed47588087 | |||
| 448967cefc | |||
| 979027138b | |||
| 176e0e4f37 | |||
| b431d4dccf | |||
| 1b12b80b48 | |||
| 52fdc45597 | |||
| 91762524e2 | |||
| 413b38b1c1 | |||
| ecdccd6ad6 | |||
| e0fd118b3e | |||
| c10d7bdada | |||
| 4e2ca31cf5 | |||
| addd2a1987 | |||
| 4071487f80 | |||
| 9c17c2d818 | |||
| dd9fcca45d | |||
| d9c0a13caf | |||
| 5daa84c7f9 | |||
| b12669487f | |||
| 0e9a1e87d0 | |||
| f118960a25 | |||
| 5d6a71b6d2 | |||
| 23fab4ad06 | |||
| 825dc5be46 | |||
| b6fb6410c0 | |||
| 45dfea5ad9 | |||
| d0a5316c67 | |||
| 382ab84938 | |||
| f451c6cbac | |||
| 9645f53dc8 | |||
| 41802c28c6 | |||
| 97a13081e9 | |||
| 38fcf15d62 | |||
| 75dd784538 | |||
| e955db6e85 | |||
| a434651e75 | |||
| 7d674726c2 | |||
| be50211ae6 | |||
| faa8f57bb2 | |||
| 8cf21191fb | |||
| ae847bcaf0 | |||
| c4bbef0af8 | |||
| 7953274a88 | |||
| d8eb3d4937 | |||
| f91f375b70 | |||
| eac25d016a | |||
| 2356a1caab | |||
| 164b349ef9 | |||
| 2e370f6ed5 | |||
| 9d30e1d63f | |||
| 4771af1cb8 | |||
| 9c9df2ad1f | |||
| 7f418a58da | |||
| 510045858f | |||
| d270910ace | |||
| 10aeba2da2 | |||
| 4e675c50e5 | |||
| 0a37576270 | |||
| 8f6f2a2c47 | |||
| 36a465473e | |||
| 23a0ecd0c4 | |||
| 601af1b0eb | |||
| fb2aae1b17 | |||
| ac984af11a | |||
| d6cbd64621 | |||
| e6bdc5dddd | |||
| ba805e30b8 | |||
| 6e48b1d56f | |||
| cd6401f628 | |||
| a25f94456d | |||
| b5228282e1 | |||
| 593ec34ff7 | |||
| 7ce0eb219b | |||
| 99282e65a6 | |||
| d07e60b3da | |||
| 3da2cdb496 | |||
| ecdd046c80 | |||
| 98b35dfab2 | |||
| 56abaf8498 | |||
| 5394f5433a | |||
| c414433fae | |||
| 16d08e57df | |||
| 252a65af7e | |||
| d40edcae69 | |||
| 4c1cc0e05d | |||
| 80c332bc41 | |||
| 5a25a3807b | |||
| 27a2645ed3 | |||
| 830361e97d | |||
| 93a92bb73b | |||
| b9dc44ae9a | |||
| f52bbe22af | |||
| 96d7797134 | |||
| 9810da9829 | |||
| 5692abb316 | |||
| 2e65bd4012 | |||
| 1ac4a1d9a5 | |||
| 8d13a355cd | |||
| 8c4eec2b6e | |||
| 776207ba67 | |||
| 2f5e880e57 | |||
| 94f781726e | |||
| 054c227df0 | |||
| 907e192aab | |||
| d6d0c883b0 | |||
| 7f4327e8ba | |||
| 132932ffaf | |||
| c007b829f7 | |||
| 3b647b0740 | |||
| 7a21648683 | |||
| 389c1dbd92 | |||
| d95189a4d8 | |||
| e65a22ae9d | |||
| 4e8cc4f786 | |||
| dfc18db1dd | |||
| 63dbd7fbf0 | |||
| c1cdefe1a7 | |||
| cd9a2af65d | |||
| 7fe0543bc6 | |||
| 2a6ad3d9fc | |||
| 38cbff4156 | |||
| a86162f287 | |||
| ceddb8370c | |||
| 040b06ad56 | |||
| 1666b1a8d8 | |||
| 4362f53cc3 | |||
| cc616a7146 | |||
| 0f01c04b02 | |||
| 4cbdf9a73b | |||
| fce257dc43 | |||
| ad7601b0cc | |||
| 5be9de5d12 | |||
| 02ed9a9725 | |||
| 074f163750 | |||
| de023bab0a | |||
| 510a746f8d | |||
| 8eb46772e6 | |||
| d563aa0da8 | |||
| 3e3312db25 | |||
| bb5c4906cc | |||
| 444976e64f | |||
| 57b614ae59 | |||
| 2f9eabdb72 | |||
| a458f7c840 | |||
| 65bf84cfb5 | |||
| 5efaa5b206 | |||
| 41f4c7dab6 | |||
| 0f1936f63d | |||
| 5baa6247a9 | |||
| 82f5d1d61d | |||
| dd8dd3b4a0 | |||
| a718223585 | |||
| abc4851287 | |||
| 3d1255dbe9 |
@@ -1,5 +1,5 @@
|
|||||||
___
|
___
|
||||||
/ _ \ http://www.anope.org
|
/ _ \ https://www.anope.org/
|
||||||
| /_\ | _ __ _ _ _ _ ___
|
| /_\ | _ __ _ _ _ _ ___
|
||||||
| _ || '_ \/ _ \/ _ \ / _ \
|
| _ || '_ \/ _ \/ _ \ / _ \
|
||||||
| | | || | | |_| |_| | __/
|
| | | || | | |_| |_| | __/
|
||||||
@@ -15,4 +15,5 @@ Anope is a set of Services for IRC networks that allows users to
|
|||||||
manage their nicks and channels in a secure and efficient way,
|
manage their nicks and channels in a secure and efficient way,
|
||||||
and administrators to manage their network with powerful tools.
|
and administrators to manage their network with powerful tools.
|
||||||
|
|
||||||
For all your Anope needs please visit our portal at www.anope.org
|
For all your Anope needs please visit our portal at
|
||||||
|
https://www.anope.org/
|
||||||
|
|||||||
@@ -28,7 +28,9 @@ Naram Qashat <cyberbotx@anope.org> <cyberbotx@5417fbe8-f217-4b02-8779-1006273d78
|
|||||||
Naram Qashat <cyberbotx@anope.org> <cyberbotx@cyberbotx.com>
|
Naram Qashat <cyberbotx@anope.org> <cyberbotx@cyberbotx.com>
|
||||||
Naram Qashat <cyberbotx@anope.org> <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>
|
Naram Qashat <cyberbotx@anope.org> <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>
|
||||||
Pieter Bootsma <geniusdex@anope.org> <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
|
Pieter Bootsma <geniusdex@anope.org> <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
|
||||||
|
Robby <robby@anope.org>
|
||||||
Robby <robby@chat.be>
|
Robby <robby@chat.be>
|
||||||
|
Robby <robby@chatbelgie.be>
|
||||||
Robin Burchell <w00t@inspircd.org> <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>
|
Robin Burchell <w00t@inspircd.org> <rburchell@5417fbe8-f217-4b02-8779-1006273d7864>
|
||||||
Robin Burchell <w00t@inspircd.org> <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>
|
Robin Burchell <w00t@inspircd.org> <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>
|
||||||
Sebastian V. <hal9000@denorastats.org>
|
Sebastian V. <hal9000@denorastats.org>
|
||||||
|
|||||||
+43
-39
@@ -10,11 +10,6 @@ if(COMMAND cmake_policy)
|
|||||||
endif(POLICY CMP0007)
|
endif(POLICY CMP0007)
|
||||||
endif(COMMAND cmake_policy)
|
endif(COMMAND cmake_policy)
|
||||||
|
|
||||||
# If the Source dir and the Binary dir are the same, we are building in-source, which we will disallow due to Autotools being there (but only on non-Windows)
|
|
||||||
if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR} AND NOT WIN32)
|
|
||||||
message(FATAL_ERROR "You can not use CMake to build Anope from the root of it's source tree! Remove the CMakeCache.txt file from this directory, then create a separate directory (either below this directory or elsewhere), and then re-run CMake from there.")
|
|
||||||
endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR} AND NOT WIN32)
|
|
||||||
|
|
||||||
# Set the project as C++ primarily, but have C enabled for the checks required later
|
# Set the project as C++ primarily, but have C enabled for the checks required later
|
||||||
project(Anope CXX)
|
project(Anope CXX)
|
||||||
enable_language(C)
|
enable_language(C)
|
||||||
@@ -50,20 +45,20 @@ if(MINOR_VERSION GREATER 5)
|
|||||||
set(CMAKE242_OR_BETTER TRUE)
|
set(CMAKE242_OR_BETTER TRUE)
|
||||||
else(MINOR_VERSION GREATER 5)
|
else(MINOR_VERSION GREATER 5)
|
||||||
set(CMAKE26_OR_BETTER FALSE)
|
set(CMAKE26_OR_BETTER FALSE)
|
||||||
# Also detect if we are using CMake 2.4.8 or better, the FIND sub-command of list() is non-existant in earlier versions
|
# Also detect if we are using CMake 2.4.8 or better, the FIND sub-command of list() is nonexistent in earlier versions
|
||||||
if(PATCH_VERSION GREATER 7)
|
if(PATCH_VERSION GREATER 7)
|
||||||
set(CMAKE248_OR_BETTER TRUE)
|
set(CMAKE248_OR_BETTER TRUE)
|
||||||
set(CMAKE244_OR_BETTER TRUE)
|
set(CMAKE244_OR_BETTER TRUE)
|
||||||
set(CMAKE242_OR_BETTER TRUE)
|
set(CMAKE242_OR_BETTER TRUE)
|
||||||
else(PATCH_VERSION GREATER 7)
|
else(PATCH_VERSION GREATER 7)
|
||||||
set(CMAKE248_OR_BETTER FALSE)
|
set(CMAKE248_OR_BETTER FALSE)
|
||||||
# Also detect if we are using CMake 2.4.4 or better, the CheckCXXCompilerFlag module and SORT sub-command of list() are non-existant in earlier versions
|
# Also detect if we are using CMake 2.4.4 or better, the CheckCXXCompilerFlag module and SORT sub-command of list() are nonexistent in earlier versions
|
||||||
if(PATCH_VERSION GREATER 3)
|
if(PATCH_VERSION GREATER 3)
|
||||||
set(CMAKE244_OR_BETTER TRUE)
|
set(CMAKE244_OR_BETTER TRUE)
|
||||||
set(CMAKE242_OR_BETTER TRUE)
|
set(CMAKE242_OR_BETTER TRUE)
|
||||||
else(PATCH_VERSION GREATER 3)
|
else(PATCH_VERSION GREATER 3)
|
||||||
set(CMAKE244_OR_BETTER FALSE)
|
set(CMAKE244_OR_BETTER FALSE)
|
||||||
# ALSO detect if we are using CMake 2.4.2 or better, the APPEND sub-command of list() is non-existant in earlier versions
|
# ALSO detect if we are using CMake 2.4.2 or better, the APPEND sub-command of list() is nonexistent in earlier versions
|
||||||
if(PATCH_VERSION GREATER 1)
|
if(PATCH_VERSION GREATER 1)
|
||||||
set(CMAKE242_OR_BETTER TRUE)
|
set(CMAKE242_OR_BETTER TRUE)
|
||||||
else(PATCH_VERSION GREATER 1)
|
else(PATCH_VERSION GREATER 1)
|
||||||
@@ -85,8 +80,20 @@ set(ENV{LC_ALL} C)
|
|||||||
set(DEFAULT_LIBRARY_DIRS)
|
set(DEFAULT_LIBRARY_DIRS)
|
||||||
set(DEFAULT_INCLUDE_DIRS)
|
set(DEFAULT_INCLUDE_DIRS)
|
||||||
|
|
||||||
|
# Check that we aren't running on an ancient broken GCC
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_FULL_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
string(REGEX REPLACE "^(\\d+\\.\\d+)" "\\1" GCC_VERSION ${GCC_FULL_VERSION})
|
||||||
|
if(GCC_VERSION LESS 4.2)
|
||||||
|
message(FATAL_ERROR "Your compiler is too old to build Anope. Upgrade to GCC 4.2 or newer!")
|
||||||
|
endif(GCC_VERSION LESS 4.2)
|
||||||
|
if(GCC_VERSION GREATER 6.0 OR GCC_VERSION EQUAL 6.0)
|
||||||
|
set(CXXFLAGS "${CXXFLAGS} -fno-delete-null-pointer-checks")
|
||||||
|
endif(GCC_VERSION GREATER 6.0 OR GCC_VERSION EQUAL 6.0)
|
||||||
|
endif(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|
||||||
# If we are using a GNU compiler (have to use CXX because it seems to fail on C), we will be able to determine it's default paths for libraries and includes
|
# If we are using a GNU compiler (have to use CXX because it seems to fail on C), we will be able to determine it's default paths for libraries and includes
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang$")
|
||||||
# First look for the compiler's default library directories
|
# First look for the compiler's default library directories
|
||||||
execute_process(COMMAND ${CMAKE_C_COMPILER} -print-search-dirs OUTPUT_VARIABLE LINES OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -print-search-dirs OUTPUT_VARIABLE LINES OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
# Find only the part after "libraries: "
|
# Find only the part after "libraries: "
|
||||||
@@ -152,7 +159,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
|||||||
if(DEFAULT_INCLUDE_DIRS)
|
if(DEFAULT_INCLUDE_DIRS)
|
||||||
remove_list_duplicates(DEFAULT_INCLUDE_DIRS)
|
remove_list_duplicates(DEFAULT_INCLUDE_DIRS)
|
||||||
endif(DEFAULT_INCLUDE_DIRS)
|
endif(DEFAULT_INCLUDE_DIRS)
|
||||||
endif(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
endif(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang$")
|
||||||
|
|
||||||
# If we are using Visual Studio, locate the path of the Windows Server 2008 SDK or Windows Server 2003 Platform SDK, depending on which is installed
|
# If we are using Visual Studio, locate the path of the Windows Server 2008 SDK or Windows Server 2003 Platform SDK, depending on which is installed
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
@@ -228,8 +235,6 @@ endif(EXTRA_LIBS)
|
|||||||
# Find gettext
|
# Find gettext
|
||||||
find_package(Gettext)
|
find_package(Gettext)
|
||||||
|
|
||||||
# Add an optional variable for using run-cc.pl for building, Perl will be checked later regardless of this setting
|
|
||||||
option(USE_RUN_CC_PL "Use run-cc.pl for building" OFF)
|
|
||||||
option(USE_PCH "Use precompiled headers" OFF)
|
option(USE_PCH "Use precompiled headers" OFF)
|
||||||
|
|
||||||
# Use the following directories as includes
|
# Use the following directories as includes
|
||||||
@@ -237,6 +242,11 @@ option(USE_PCH "Use precompiled headers" OFF)
|
|||||||
# source include directory so the precompiled headers work correctly.
|
# source include directory so the precompiled headers work correctly.
|
||||||
include_directories(${Anope_BINARY_DIR}/include ${Anope_SOURCE_DIR}/include ${Anope_BINARY_DIR}/language ${Anope_SOURCE_DIR}/modules/pseudoclients)
|
include_directories(${Anope_BINARY_DIR}/include ${Anope_SOURCE_DIR}/include ${Anope_BINARY_DIR}/language ${Anope_SOURCE_DIR}/modules/pseudoclients)
|
||||||
|
|
||||||
|
# Pass on REPRODUCIBLE_BUILD
|
||||||
|
if(REPRODUCIBLE_BUILD)
|
||||||
|
add_definitions(-DREPRODUCIBLE_BUILD)
|
||||||
|
endif(REPRODUCIBLE_BUILD)
|
||||||
|
|
||||||
# If using Windows, always add the _WIN32 define
|
# If using Windows, always add the _WIN32 define
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_definitions(-D_WIN32)
|
add_definitions(-D_WIN32)
|
||||||
@@ -282,13 +292,15 @@ if(MINGW)
|
|||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}")
|
||||||
endif(MINGW)
|
endif(MINGW)
|
||||||
|
|
||||||
# Under Windows, we set the executable name for Anope to be anope
|
if(NOT PROGRAM_NAME)
|
||||||
if(WIN32)
|
# Under Windows, we set the executable name for Anope to be anope
|
||||||
set(PROGRAM_NAME anope)
|
if(WIN32)
|
||||||
# Under *nix, we set the executable name for Anope to be services
|
set(PROGRAM_NAME anope)
|
||||||
else(WIN32)
|
# Under *nix, we set the executable name for Anope to be services
|
||||||
set(PROGRAM_NAME services)
|
else(WIN32)
|
||||||
endif(WIN32)
|
set(PROGRAM_NAME services)
|
||||||
|
endif(WIN32)
|
||||||
|
endif(NOT PROGRAM_NAME)
|
||||||
|
|
||||||
# If we are not using Visual Studio, we'll run the following checks
|
# If we are not using Visual Studio, we'll run the following checks
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
@@ -343,12 +355,12 @@ if(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINF
|
|||||||
set(DEBUG_BUILD TRUE)
|
set(DEBUG_BUILD TRUE)
|
||||||
endif(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
|
endif(CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
|
||||||
|
|
||||||
# Check for the existance of the following include files
|
# Check for the existence of the following include files
|
||||||
check_include_file(cstdint HAVE_CSTDINT)
|
check_include_file(cstdint HAVE_CSTDINT)
|
||||||
check_include_file(stdint.h HAVE_STDINT_H)
|
check_include_file(stdint.h HAVE_STDINT_H)
|
||||||
check_include_file(strings.h HAVE_STRINGS_H)
|
check_include_file(strings.h HAVE_STRINGS_H)
|
||||||
|
|
||||||
# Check for the existance of the following functions
|
# Check for the existence of the following functions
|
||||||
check_function_exists(strcasecmp HAVE_STRCASECMP)
|
check_function_exists(strcasecmp HAVE_STRCASECMP)
|
||||||
check_function_exists(stricmp HAVE_STRICMP)
|
check_function_exists(stricmp HAVE_STRICMP)
|
||||||
check_function_exists(umask HAVE_UMASK)
|
check_function_exists(umask HAVE_UMASK)
|
||||||
@@ -370,19 +382,11 @@ find_program(GREP grep)
|
|||||||
find_program(SH sh)
|
find_program(SH sh)
|
||||||
find_program(CHGRP chgrp)
|
find_program(CHGRP chgrp)
|
||||||
find_program(CHMOD chmod)
|
find_program(CHMOD chmod)
|
||||||
find_program(PERL perl)
|
|
||||||
|
|
||||||
# If perl is included on the system and the user wants to use run-cc.pl, change the commands for compiling and linking
|
|
||||||
if(PERL AND USE_RUN_CC_PL)
|
|
||||||
set(CMAKE_CXX_COMPILE_OBJECT "${PERL} ${Anope_SOURCE_DIR}/run-cc.pl -q ${CMAKE_CXX_COMPILE_OBJECT}")
|
|
||||||
set(CMAKE_CXX_LINK_EXECUTABLE "${PERL} ${Anope_SOURCE_DIR}/run-cc.pl -q ${CMAKE_CXX_LINK_EXECUTABLE}")
|
|
||||||
set(CMAKE_CXX_CREATE_SHARED_MODULE "${PERL} ${Anope_SOURCE_DIR}/run-cc.pl -q ${CMAKE_CXX_CREATE_SHARED_MODULE}")
|
|
||||||
endif(PERL AND USE_RUN_CC_PL)
|
|
||||||
|
|
||||||
# If a INSTDIR was passed in to CMake, use it as the install prefix, otherwise set the default install prefix to the services directory under the user's home directory
|
# If a INSTDIR was passed in to CMake, use it as the install prefix, otherwise set the default install prefix to the services directory under the user's home directory
|
||||||
if(INSTDIR)
|
if(INSTDIR)
|
||||||
set(CMAKE_INSTALL_PREFIX "${INSTDIR}")
|
set(CMAKE_INSTALL_PREFIX "${INSTDIR}")
|
||||||
else(INSTDIR)
|
elseif(NOT CMAKE_INSTALL_PREFIX)
|
||||||
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/services")
|
set(CMAKE_INSTALL_PREFIX "$ENV{HOME}/services")
|
||||||
endif(INSTDIR)
|
endif(INSTDIR)
|
||||||
|
|
||||||
@@ -485,16 +489,16 @@ get_target_property(SERVICES_BINARY ${PROGRAM_NAME} LOCATION)
|
|||||||
get_filename_component(SERVICES_BINARY ${SERVICES_BINARY} NAME)
|
get_filename_component(SERVICES_BINARY ${SERVICES_BINARY} NAME)
|
||||||
|
|
||||||
# At install time, create the following additional directories
|
# At install time, create the following additional directories
|
||||||
install(CODE "file(MAKE_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/backups\")")
|
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/backups\")")
|
||||||
install(CODE "file(MAKE_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}/${LOGS_DIR}\")")
|
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${LOGS_DIR}\")")
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
install(CODE "file(MAKE_DIRECTORY \"\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/runtime\")")
|
install(CODE "file(MAKE_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${DB_DIR}/runtime\")")
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
# On non-Windows platforms, if RUNGROUP is set, change the permissions of the below directories, as well as the group of the data directory
|
# On non-Windows platforms, if RUNGROUP is set, change the permissions of the below directories, as well as the group of the data directory
|
||||||
if(NOT WIN32 AND RUNGROUP)
|
if(NOT WIN32 AND RUNGROUP)
|
||||||
install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\${CMAKE_INSTALL_PREFIX}/\${DB_DIR}/backups\")")
|
install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DB_DIR}/backups\")")
|
||||||
install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\${CMAKE_INSTALL_PREFIX}/\${LOGS_DIR}\")")
|
install(CODE "execute_process(COMMAND ${CHMOD} 2775 \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${LOGS_DIR}\")")
|
||||||
install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"\${CMAKE_INSTALL_PREFIX}\")")
|
install(CODE "execute_process(COMMAND ${CHGRP} -R ${RUNGROUP} \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\")")
|
||||||
endif(NOT WIN32 AND RUNGROUP)
|
endif(NOT WIN32 AND RUNGROUP)
|
||||||
# On Windows platforms, install extra files
|
# On Windows platforms, install extra files
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -507,7 +511,7 @@ if(WIN32)
|
|||||||
install(FILES ${EXTRA_DLLS} DESTINATION ${BIN_DIR})
|
install(FILES ${EXTRA_DLLS} DESTINATION ${BIN_DIR})
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
install(CODE "file(REMOVE_RECURSE \"${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/modules\")")
|
install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/modules\")")
|
||||||
|
|
||||||
# Only process the CPack section if we have CPack
|
# Only process the CPack section if we have CPack
|
||||||
if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
|
if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
|
||||||
@@ -537,14 +541,14 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
|
|||||||
"bin\\\\anope.bat\\\" \\\"-debug -nofork" "Anope IRC Services (Debug and Window Logging)"
|
"bin\\\\anope.bat\\\" \\\"-debug -nofork" "Anope IRC Services (Debug and Window Logging)"
|
||||||
"bin\\\\anope.bat\\\" \\\"-nofork" "Anope IRC Services (Window Logging)"
|
"bin\\\\anope.bat\\\" \\\"-nofork" "Anope IRC Services (Window Logging)"
|
||||||
"bin\\\\anope.bat\\\" \\\"-nothird" "Anope IRC Services (No Third Party Modules)"
|
"bin\\\\anope.bat\\\" \\\"-nothird" "Anope IRC Services (No Third Party Modules)"
|
||||||
"http://www.anope.org/" "Anope Web Site"
|
"https://www.anope.org/" "Anope Web Site"
|
||||||
)
|
)
|
||||||
# The following doesn't work, but a bug report has been filed about it
|
# The following doesn't work, but a bug report has been filed about it
|
||||||
#set(CPACK_CREATE_DESKTOP_LINK_${SERVICES_BINARY} TRUE)
|
#set(CPACK_CREATE_DESKTOP_LINK_${SERVICES_BINARY} TRUE)
|
||||||
set(CPACK_NSIS_MUI_ICON "${Anope_SOURCE_DIR}/src\\\\win32\\\\anope-icon.ico")
|
set(CPACK_NSIS_MUI_ICON "${Anope_SOURCE_DIR}/src\\\\win32\\\\anope-icon.ico")
|
||||||
set(CPACK_NSIS_MUI_UNIICON "${Anope_SOURCE_DIR}/src\\\\win32\\\\anope-icon.ico")
|
set(CPACK_NSIS_MUI_UNIICON "${Anope_SOURCE_DIR}/src\\\\win32\\\\anope-icon.ico")
|
||||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "${SERVICES_BINARY}")
|
set(CPACK_NSIS_INSTALLED_ICON_NAME "${SERVICES_BINARY}")
|
||||||
set(CPACK_NSIS_URL_INFO_ABOUT "http://www.anope.org/")
|
set(CPACK_NSIS_URL_INFO_ABOUT "https://www.anope.org/")
|
||||||
set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
|
set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
|
||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "anope-${VERSION_FULL_NOBUILD}-source")
|
set(CPACK_SOURCE_PACKAGE_FILE_NAME "anope-${VERSION_FULL_NOBUILD}-source")
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Configuration script for Services.
|
# Configuration script for Services.
|
||||||
#
|
#
|
||||||
# Anope (c) 2003-2014 Anope Team
|
# Anope (c) 2003-2019 Anope Team
|
||||||
# Contact us at team@anope.org
|
# Contact us at team@anope.org
|
||||||
#
|
#
|
||||||
# This program is free but copyrighted software; see the file COPYING for
|
# This program is free but copyrighted software; see the file COPYING for
|
||||||
@@ -62,12 +62,6 @@ Run_Build_System () {
|
|||||||
BUILD_TYPE="-DCMAKE_BUILD_TYPE:STRING=RELEASE"
|
BUILD_TYPE="-DCMAKE_BUILD_TYPE:STRING=RELEASE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$USE_RUN_CC_PL" = "yes" ] ; then
|
|
||||||
RUN_CC_PL="-DUSE_RUN_CC_PL:BOOLEAN=ON"
|
|
||||||
else
|
|
||||||
RUN_CC_PL="-DUSE_RUN_CC_PL:BOOLEAN=OFF"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$USE_PCH" = "yes" ] ; then
|
if [ "$USE_PCH" = "yes" ] ; then
|
||||||
PCH="-DUSE_PCH:BOOLEAN=ON"
|
PCH="-DUSE_PCH:BOOLEAN=ON"
|
||||||
else
|
else
|
||||||
@@ -97,9 +91,13 @@ Run_Build_System () {
|
|||||||
REAL_SOURCE_DIR="$SOURCE_DIR"
|
REAL_SOURCE_DIR="$SOURCE_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $RUN_CC_PL $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR"
|
echo "cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR"
|
||||||
|
|
||||||
cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $RUN_CC_PL $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR
|
cmake $GEN_TYPE $WITH_INST $WITH_RUN $WITH_PERM $BUILD_TYPE $PCH $EXTRA_INCLUDE $EXTRA_LIBS $EXTRA_CONFIG_ARGS $REAL_SOURCE_DIR
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "You should fix these issues and then run ./Config -quick to rerun CMake."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
if [ "$SOURCE_DIR" = "." ] ; then
|
if [ "$SOURCE_DIR" = "." ] ; then
|
||||||
@@ -131,7 +129,6 @@ INSTDIR=$HOME/services
|
|||||||
RUNGROUP=
|
RUNGROUP=
|
||||||
UMASK=
|
UMASK=
|
||||||
DEBUG="no"
|
DEBUG="no"
|
||||||
USE_RUN_CC_PL="no"
|
|
||||||
USE_PCH="no"
|
USE_PCH="no"
|
||||||
EXTRA_INCLUDE_DIRS=
|
EXTRA_INCLUDE_DIRS=
|
||||||
EXTRA_LIB_DIRS=
|
EXTRA_LIB_DIRS=
|
||||||
@@ -173,10 +170,10 @@ done
|
|||||||
# Check for CMake and (optionally) install it
|
# Check for CMake and (optionally) install it
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
which cmake > /dev/null
|
cmake --version 2>&1 > /dev/null
|
||||||
if [ $? -ne 0 ] ; then
|
if [ $? -ne 0 ] ; then
|
||||||
clear
|
clear
|
||||||
echo "Anope requires CMake 2.4 or newer, which can be downloaded at http://cmake.org or through your system's package manager."
|
echo "Anope requires CMake 2.4 or newer, which can be downloaded at https://cmake.org/ or through your system's package manager."
|
||||||
echo "If you have installed CMake already, ensure it is in your PATH environment variable."
|
echo "If you have installed CMake already, ensure it is in your PATH environment variable."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@@ -321,30 +318,6 @@ echo ""
|
|||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
TEMP_YN="n"
|
|
||||||
if [ "$USE_RUN_CC_PL" = "yes" ] ; then
|
|
||||||
TEMP_YN="y"
|
|
||||||
fi
|
|
||||||
echo "You can optionally have the build run through run-cc.pl, which will"
|
|
||||||
echo "cause warnings and errors (if any) to be colored yellow and red,"
|
|
||||||
echo "respectively. This relies on Perl being installed, so if you say yes"
|
|
||||||
echo "to this without Perl, the option will be ignored."
|
|
||||||
echo "NOTE: If you are using MinGW, it is NOT recommended to say yes to"
|
|
||||||
echo "this, it may fail."
|
|
||||||
echo "Would you like to utilize run-cc.pl?"
|
|
||||||
echo2 "[$TEMP_YN] "
|
|
||||||
read YN
|
|
||||||
if [ "$YN" ] ; then
|
|
||||||
if [ "$YN" = "y" ] ; then
|
|
||||||
USE_RUN_CC_PL="yes"
|
|
||||||
else
|
|
||||||
USE_RUN_CC_PL="no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
####
|
|
||||||
|
|
||||||
TEMP_YN="n"
|
TEMP_YN="n"
|
||||||
if [ "$USE_PCH" = "yes" ] ; then
|
if [ "$USE_PCH" = "yes" ] ; then
|
||||||
TEMP_YN="y"
|
TEMP_YN="y"
|
||||||
@@ -401,7 +374,7 @@ echo ""
|
|||||||
####
|
####
|
||||||
|
|
||||||
echo "Are there any extra arguments you wish to pass to CMake?"
|
echo "Are there any extra arguments you wish to pass to CMake?"
|
||||||
echo "If you need no extra arugments to CMake, enter NONE in all caps."
|
echo "If you need no extra arguments to CMake, enter NONE in all caps."
|
||||||
echo2 "[$EXTRA_CONFIG_ARGS] "
|
echo2 "[$EXTRA_CONFIG_ARGS] "
|
||||||
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
if read INPUT ; then : ; else echo "" ; exit 1 ; fi
|
||||||
if [ "$INPUT" ] ; then
|
if [ "$INPUT" ] ; then
|
||||||
@@ -426,7 +399,6 @@ INSTDIR="$INSTDIR"
|
|||||||
RUNGROUP="$RUNGROUP"
|
RUNGROUP="$RUNGROUP"
|
||||||
UMASK=$UMASK
|
UMASK=$UMASK
|
||||||
DEBUG="$DEBUG"
|
DEBUG="$DEBUG"
|
||||||
USE_RUN_CC_PL="$USE_RUN_CC_PL"
|
|
||||||
USE_PCH="$USE_PCH"
|
USE_PCH="$USE_PCH"
|
||||||
EXTRA_INCLUDE_DIRS="$EXTRA_INCLUDE_DIRS"
|
EXTRA_INCLUDE_DIRS="$EXTRA_INCLUDE_DIRS"
|
||||||
EXTRA_LIB_DIRS="$EXTRA_LIB_DIRS"
|
EXTRA_LIB_DIRS="$EXTRA_LIB_DIRS"
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
## About
|
||||||
|
|
||||||
|
Anope is an open source set of IRC Services. It is highly modular, with a vast number of configurable parameters, and is the most used IRC services package. There are also many modules on the [modsite](https://modules.anope.org) to add additional features. It runs on Linux, BSD, and Windows, and supports many modern IRCds, including InspIRCd, UnrealIRCd, and ircd-hybrid. For more details, credits, command line options, and contact information see [docs/README](https://github.com/anope/anope/blob/2.0/docs/README).
|
||||||
|
|
||||||
|
* [Website](https://anope.org)
|
||||||
|
* [GitHub](https://github.com/anope)
|
||||||
|
* IRC \#anope on irc.anope.org
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Linux/BSD
|
||||||
|
Download the latest release off of the [releases page](https://github.com/anope/anope/releases).
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./Config
|
||||||
|
$ cd build
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
```
|
||||||
|
|
||||||
|
Now change to the directory where you installed Anope to, e.g. `$ cd ~/services/`
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
Download the latest release off of the [releases page](https://github.com/anope/anope/releases) and run the installer.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Copy conf/example.conf to conf/services.conf
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp conf/example.conf conf/services.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit services.conf, configuring the uplink, serverinfo, and protocol module configurations. Example link blocks for popular IRCds are included in the the example.conf documentation. The [Anope wiki](https://wiki.anope.org) is also a good source of information. Our support channel is located at #anope on [irc.anope.org](irc://irc.anope.org/#anope).
|
||||||
|
|
||||||
|
Note that the example configuration file includes other example configuration files. If you want to modify the other example configuration files, copy them (e.g. `modules.example.conf` to `modules.conf`) and modify the `include` directive in `services.conf` to include the new file.
|
||||||
|
|
||||||
|
## Running
|
||||||
|
|
||||||
|
Run `$ ./bin/services` to start Anope. If asked to provide logs for support, use the `--support` flag, e.g.: `$ ./bin/services --support`
|
||||||
|
|
||||||
|
## Installing extra modules
|
||||||
|
|
||||||
|
Extra modules, which are usually modules which require extra libraries to use, such as m\_mysql, can be enabled with the `./extras` command from the source directory. Then re-run `Config`, `make` and `make install` again. Third party modules can be installed by placing them into the `modules/third` directory.
|
||||||
+2
-1
@@ -449,7 +449,8 @@ macro(calculate_libraries SRC SRC_LDFLAGS EXTRA_DEPENDS)
|
|||||||
if(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
if(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
||||||
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib ${EXTRA_INCLUDE} ${EXTRA_LIBS})
|
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib ${EXTRA_INCLUDE} ${EXTRA_LIBS})
|
||||||
else(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
else(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
||||||
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${EXTRA_INCLUDE} ${EXTRA_LIBS})
|
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS} NO_DEFAULT_PATH)
|
||||||
|
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS})
|
||||||
endif(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
endif(DEFAULT_LIBRARY_DIRS OR WSDK_PATH OR DEFINED $ENV{VCINSTALLDIR})
|
||||||
# If the library was found, we will add it to the linker flags
|
# If the library was found, we will add it to the linker flags
|
||||||
if(FOUND_${LIBRARY}_LIBRARY)
|
if(FOUND_${LIBRARY}_LIBRARY)
|
||||||
|
|||||||
@@ -242,7 +242,7 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
|
|||||||
* botserv/kick - Dummy help wrapper for the KICK command.
|
* botserv/kick - Dummy help wrapper for the KICK command.
|
||||||
* botserv/kick/amsg - Configures BotServ's AMSG kicker.
|
* botserv/kick/amsg - Configures BotServ's AMSG kicker.
|
||||||
* botserv/kick/badwords - Configures BotServ's badwords kicker.
|
* botserv/kick/badwords - Configures BotServ's badwords kicker.
|
||||||
* botserv/kick/bolds - Configures BotServ's bold text kiceker.
|
* botserv/kick/bolds - Configures BotServ's bold text kicker.
|
||||||
* botserv/kick/caps - Configures BotServ's capital letters kicker.
|
* botserv/kick/caps - Configures BotServ's capital letters kicker.
|
||||||
* botserv/kick/colors - Configures BotServ's color kicker.
|
* botserv/kick/colors - Configures BotServ's color kicker.
|
||||||
* botserv/kick/flood - Configures BotServ's flood kicker.
|
* botserv/kick/flood - Configures BotServ's flood kicker.
|
||||||
@@ -333,7 +333,7 @@ privilege
|
|||||||
/*
|
/*
|
||||||
* fantasy
|
* fantasy
|
||||||
*
|
*
|
||||||
* Allows 'fantaisist' commands to be used in channels.
|
* Allows 'fantasist' commands to be used in channels.
|
||||||
*
|
*
|
||||||
* Provides the commands:
|
* Provides the commands:
|
||||||
* botserv/set/fantasy - Used for enabling or disabling BotServ's fantasist commands.
|
* botserv/set/fantasy - Used for enabling or disabling BotServ's fantasist commands.
|
||||||
|
|||||||
+13
-16
@@ -79,7 +79,7 @@ module
|
|||||||
* - cs_secure: Enable channel security, requiring the user to be identified with NickServ in
|
* - cs_secure: Enable channel security, requiring the user to be identified with NickServ in
|
||||||
* order to be considered for being on the access list of the channel
|
* order to be considered for being on the access list of the channel
|
||||||
* - secureops: Only allow operator status to be given if the user is on the access list
|
* - secureops: Only allow operator status to be given if the user is on the access list
|
||||||
* - securefounder: Only allow the real founder of the channel to drop the channel, change it's
|
* - securefounder: Only allow the real founder of the channel to drop the channel, change its
|
||||||
* password, or change the founder or successor
|
* password, or change the founder or successor
|
||||||
* - signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick.
|
* - signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick.
|
||||||
* - signkick_level: Same as above, but the kick will not be signed if the user is at the same access
|
* - signkick_level: Same as above, but the kick will not be signed if the user is at the same access
|
||||||
@@ -193,12 +193,12 @@ module
|
|||||||
*
|
*
|
||||||
* If you load cs_xop, you may define a XOP command to associate the privilege with.
|
* If you load cs_xop, you may define a XOP command to associate the privilege with.
|
||||||
*
|
*
|
||||||
* The name of privileges are uesd to associate them with channel modes. If you are using an IRCd that allows you to define additional
|
* The name of privileges are used to associate them with channel modes. If you are using an IRCd that allows you to define additional
|
||||||
* channel status modes, such as InspIRCd, you can associate privileges (and thus access levels, flags, xop) with the mode by naming
|
* channel status modes, such as InspIRCd, you can associate privileges (and thus access levels, flags, xop) with the mode by naming
|
||||||
* the privileges appropriately. For example, if you had a channel mode called admin, you could create AUTOADMIN, ADMIN, and ADMINME
|
* the privileges appropriately. For example, if you had a channel mode called admin, you could create AUTOADMIN, ADMIN, and ADMINME
|
||||||
* privileges which would automatically be associated with that channel mode.
|
* privileges which would automatically be associated with that channel mode.
|
||||||
*
|
*
|
||||||
* Defining new privileges here is not useful unless you have a module (eg, a third party one) made to check for
|
* Defining new privileges here is not useful unless you have a module (e.g. a third party one) made to check for
|
||||||
* the specific level you are defining.
|
* the specific level you are defining.
|
||||||
*
|
*
|
||||||
* Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
|
* Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
|
||||||
@@ -420,7 +420,7 @@ privilege
|
|||||||
*
|
*
|
||||||
* Used by chanserv/getkey and nickserv/ajoin.
|
* Used by chanserv/getkey and nickserv/ajoin.
|
||||||
*
|
*
|
||||||
* Users with this permission can get they channel key with GETKEY and
|
* Users with this permission can get their channel key with GETKEY and
|
||||||
* can use nickserv/ajoin to join channels with keys.
|
* can use nickserv/ajoin to join channels with keys.
|
||||||
*/
|
*/
|
||||||
privilege
|
privilege
|
||||||
@@ -665,7 +665,7 @@ privilege
|
|||||||
rank = 300
|
rank = 300
|
||||||
level = 10
|
level = 10
|
||||||
flag = "a"
|
flag = "a"
|
||||||
xop = "AOP"
|
xop = "SOP"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -692,7 +692,7 @@ privilege
|
|||||||
* chanserv/saset/noexpire and chanserv/set.
|
* chanserv/saset/noexpire and chanserv/set.
|
||||||
*
|
*
|
||||||
* Users with this permission can set what BotServ will kick for, change
|
* Users with this permission can set what BotServ will kick for, change
|
||||||
* BotServ and ChanServ settings, clone ChanServ channel setings, and
|
* BotServ and ChanServ settings, clone ChanServ channel settings, and
|
||||||
* set ChanServ logging options.
|
* set ChanServ logging options.
|
||||||
*/
|
*/
|
||||||
privilege
|
privilege
|
||||||
@@ -836,8 +836,8 @@ command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
|
|||||||
* Provides commands chanserv/access and chanserv/levels.
|
* Provides commands chanserv/access and chanserv/levels.
|
||||||
* Provides the access system "levels".
|
* Provides the access system "levels".
|
||||||
*
|
*
|
||||||
* Used for giving users access in channels using a levels system. Allows allows redefining which privileges
|
* Used for giving users access in channels using a levels system. Allows redefining which privileges
|
||||||
* are representated by given level on a per channel basis.
|
* are represented by given level on a per channel basis.
|
||||||
*
|
*
|
||||||
* The "LIST" subcommand of chanserv/access will show every access entry on the channel, including access
|
* The "LIST" subcommand of chanserv/access will show every access entry on the channel, including access
|
||||||
* entries not added by cs_access. The "level" of these entries will be the representation of the access
|
* entries not added by cs_access. The "level" of these entries will be the representation of the access
|
||||||
@@ -941,7 +941,7 @@ command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"
|
|||||||
* Used for giving users access in channels.
|
* Used for giving users access in channels.
|
||||||
*
|
*
|
||||||
* The "LIST" subcommand of chanserv/flags will show every access entry on the channel, including access
|
* The "LIST" subcommand of chanserv/flags will show every access entry on the channel, including access
|
||||||
* entries not added by cs_flags. The "Flags" of these entries will be the flags representation of the
|
* entries not added by cs_flags. The "flags" of these entries will be the flags representation of the
|
||||||
* privilege set granted by the access entry.
|
* privilege set granted by the access entry.
|
||||||
*/
|
*/
|
||||||
module { name = "cs_flags" }
|
module { name = "cs_flags" }
|
||||||
@@ -1055,7 +1055,7 @@ command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group =
|
|||||||
* Provides the command chanserv/mode and chanserv/modes.
|
* Provides the command chanserv/mode and chanserv/modes.
|
||||||
*
|
*
|
||||||
* Used for changing mode locks and changing modes. Multiple commands may be mapped to chanserv/modes, the
|
* Used for changing mode locks and changing modes. Multiple commands may be mapped to chanserv/modes, the
|
||||||
* configuration directive 'set' and 'unset' are used to tell chanserv/modes which modes should be set or
|
* configuration directives 'set' and 'unset' are used to tell chanserv/modes which modes should be set or
|
||||||
* unset when the command is executed.
|
* unset when the command is executed.
|
||||||
*/
|
*/
|
||||||
module
|
module
|
||||||
@@ -1121,9 +1121,6 @@ module
|
|||||||
|
|
||||||
/* Sets the time to keep seen entries in the seen database. */
|
/* Sets the time to keep seen entries in the seen database. */
|
||||||
purgetime = "30d"
|
purgetime = "30d"
|
||||||
|
|
||||||
/* Sets the delay between checks for expired seen entries. */
|
|
||||||
expiretimeout = "1d"
|
|
||||||
}
|
}
|
||||||
command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; }
|
command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; }
|
||||||
|
|
||||||
@@ -1166,7 +1163,7 @@ module
|
|||||||
defbantype = 2
|
defbantype = 2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If set, persisent channels have their creation times lowered to their
|
* If set, persistent channels have their creation times lowered to their
|
||||||
* original registration dates.
|
* original registration dates.
|
||||||
*/
|
*/
|
||||||
persist_lower_ts = true
|
persist_lower_ts = true
|
||||||
@@ -1290,7 +1287,7 @@ command { service = "ChanServ"; name = "UP"; command = "chanserv/up"; group = "c
|
|||||||
* Provides the access system "XOP".
|
* Provides the access system "XOP".
|
||||||
*
|
*
|
||||||
* Used for giving users access in channels. Many commands may be linked to chanserv/xop, but the
|
* Used for giving users access in channels. Many commands may be linked to chanserv/xop, but the
|
||||||
* privileges given by each is determined by the privilege:xop settings above. These commands should
|
* privileges given by each are determined by the privilege:xop settings above. These commands should
|
||||||
* be ordered from highest to lowest, as each command inherits the privileges of the commands below
|
* be ordered from highest to lowest, as each command inherits the privileges of the commands below
|
||||||
* it.
|
* it.
|
||||||
*
|
*
|
||||||
@@ -1312,7 +1309,7 @@ command { service = "ChanServ"; name = "VOP"; command = "chanserv/xop"; group =
|
|||||||
/*
|
/*
|
||||||
* cs_statusupdate
|
* cs_statusupdate
|
||||||
*
|
*
|
||||||
* This module automatically updates users status on channels when the
|
* This module automatically updates users' status on channels when the
|
||||||
* channel's access list is modified.
|
* channel's access list is modified.
|
||||||
*/
|
*/
|
||||||
module { name = "cs_statusupdate" }
|
module { name = "cs_statusupdate" }
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ module
|
|||||||
}
|
}
|
||||||
command { service = "ChanServ"; name = "SET CHANSTATS"; command = "chanserv/set/chanstats"; }
|
command { service = "ChanServ"; name = "SET CHANSTATS"; command = "chanserv/set/chanstats"; }
|
||||||
command { service = "NickServ"; name = "SET CHANSTATS"; command = "nickserv/set/chanstats"; }
|
command { service = "NickServ"; name = "SET CHANSTATS"; command = "nickserv/set/chanstats"; }
|
||||||
command { service = "NickServ"; name = "SASET CHANSTATS"; command = "nickserv/saset/chanstats"; }
|
command { service = "NickServ"; name = "SASET CHANSTATS"; command = "nickserv/saset/chanstats"; permission = "nickserv/saset/chanstats"; }
|
||||||
|
|
||||||
module { name = "cs_fantasy_stats" }
|
module { name = "cs_fantasy_stats" }
|
||||||
command { service = "ChanServ"; name = "STATS"; command = "chanserv/stats"; }
|
command { service = "ChanServ"; name = "STATS"; command = "chanserv/stats"; }
|
||||||
|
|||||||
+76
-51
@@ -80,7 +80,7 @@
|
|||||||
* [OPTIONAL] Defines
|
* [OPTIONAL] Defines
|
||||||
*
|
*
|
||||||
* You can define values to other values, which can be used to easily change
|
* You can define values to other values, which can be used to easily change
|
||||||
* many values in the configuration. at once.
|
* many values in the configuration at once.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -110,7 +110,7 @@ define
|
|||||||
#include
|
#include
|
||||||
{
|
{
|
||||||
type = "executable"
|
type = "executable"
|
||||||
name = "/usr/bin/wget -q -O - http://some.misconfigured.network.com/services.conf"
|
name = "/usr/bin/wget -q -O - https://some.misconfigured.network.com/services.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -126,6 +126,7 @@ define
|
|||||||
* An example configuration for InspIRCd that is compatible with the below uplink
|
* An example configuration for InspIRCd that is compatible with the below uplink
|
||||||
* and serverinfo configuration would look like:
|
* and serverinfo configuration would look like:
|
||||||
*
|
*
|
||||||
|
* # This goes in inspircd.conf, *NOT* your Anope config!
|
||||||
* <link name="services.localhost.net"
|
* <link name="services.localhost.net"
|
||||||
* ipaddr="127.0.0.1"
|
* ipaddr="127.0.0.1"
|
||||||
* port="7000"
|
* port="7000"
|
||||||
@@ -137,19 +138,22 @@ define
|
|||||||
* An example configuration for UnrealIRCd that is compatible with the below uplink
|
* An example configuration for UnrealIRCd that is compatible with the below uplink
|
||||||
* and serverinfo configuration would look like:
|
* and serverinfo configuration would look like:
|
||||||
*
|
*
|
||||||
* link services.localhost.net
|
* // This goes in unrealircd.conf, *NOT* your Anope config!
|
||||||
* {
|
* listen {
|
||||||
* username *;
|
* ip 127.0.0.1;
|
||||||
* hostname *;
|
* port 7000;
|
||||||
* bind-ip "127.0.0.1";
|
* options {
|
||||||
* port 7000;
|
* serversonly;
|
||||||
* hub *;
|
* };
|
||||||
* password-connect "mypassword";
|
* };
|
||||||
* password-receive "mypassword";
|
* link services.localhost.net {
|
||||||
* class servers;
|
* incoming {
|
||||||
|
* mask *@127.0.0.1;
|
||||||
|
* };
|
||||||
|
* password "mypassword";
|
||||||
|
* class servers;
|
||||||
* };
|
* };
|
||||||
* ulines { services.localhost.net; };
|
* ulines { services.localhost.net; };
|
||||||
* listen 127.0.0.1:7000;
|
|
||||||
*/
|
*/
|
||||||
uplink
|
uplink
|
||||||
{
|
{
|
||||||
@@ -205,7 +209,7 @@ serverinfo
|
|||||||
name = "services.localhost.net"
|
name = "services.localhost.net"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text which should appear as the server's information in /whois and similar
|
* The text which should appear as the server's information in /WHOIS and similar
|
||||||
* queries.
|
* queries.
|
||||||
*/
|
*/
|
||||||
description = "Services for IRC Networks"
|
description = "Services for IRC Networks"
|
||||||
@@ -252,10 +256,12 @@ serverinfo
|
|||||||
* - hybrid
|
* - hybrid
|
||||||
* - inspircd12
|
* - inspircd12
|
||||||
* - inspircd20
|
* - inspircd20
|
||||||
|
* - inspircd3
|
||||||
* - ngircd
|
* - ngircd
|
||||||
* - plexus
|
* - plexus
|
||||||
* - ratbox
|
* - ratbox
|
||||||
* - unreal
|
* - unreal (for 3.2.x)
|
||||||
|
* - unreal4
|
||||||
*/
|
*/
|
||||||
module
|
module
|
||||||
{
|
{
|
||||||
@@ -499,7 +505,7 @@ options
|
|||||||
#hidestatso = yes
|
#hidestatso = yes
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A space-separated list of ulined servers on your network, it is assumed that
|
* A space-separated list of U-lined servers on your network, it is assumed that
|
||||||
* the servers in this list are allowed to set channel modes and Services will
|
* the servers in this list are allowed to set channel modes and Services will
|
||||||
* not attempt to reverse their mode changes.
|
* not attempt to reverse their mode changes.
|
||||||
*
|
*
|
||||||
@@ -531,14 +537,14 @@ options
|
|||||||
*
|
*
|
||||||
* Note for this to work the regex module providing the regex engine must be loaded.
|
* Note for this to work the regex module providing the regex engine must be loaded.
|
||||||
*/
|
*/
|
||||||
regexengine = "regex/pcre"
|
#regexengine = "regex/pcre"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A list of languages to load on startup that will be available in /nickserv set language.
|
* A list of languages to load on startup that will be available in /NICKSERV SET LANGUAGE.
|
||||||
* Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE).
|
* Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE).
|
||||||
* Note that english should not be listed here because it is the base language.
|
* Note that English should not be listed here because it is the base language.
|
||||||
*
|
*
|
||||||
* Removing .UTF-8 will instead use the default encoding for the language, eg. iso-8859-1 for western European languages.
|
* Removing .UTF-8 will instead use the default encoding for the language, e.g. iso-8859-1 for western European languages.
|
||||||
*/
|
*/
|
||||||
languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8"
|
languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8"
|
||||||
|
|
||||||
@@ -667,19 +673,19 @@ log
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The source(s) to only accept log messages from. Leave commented to allow all sources.
|
* The source(s) to only accept log messages from. Leave commented to allow all sources.
|
||||||
* This can be a users name, a channel name, one of our clients (eg, OperServ), or a server name.
|
* This can be a users name, a channel name, one of our clients (e.g. OperServ), or a server name.
|
||||||
*/
|
*/
|
||||||
#source = ""
|
#source = ""
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The bot used to log generic messages which have no predefined sender if there
|
* The bot used to log generic messages which have no predefined sender if the
|
||||||
* is a channel in the target directive.
|
* target directive is set to a channel or globops.
|
||||||
*/
|
*/
|
||||||
bot = "Global"
|
bot = "Global"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The number of days to keep logfiles, only useful if you are logging to a file.
|
* The number of days to keep log files, only useful if you are logging to a file.
|
||||||
* Set to 0 to never delete old logfiles.
|
* Set to 0 to never delete old log files.
|
||||||
*
|
*
|
||||||
* Note that Anope must run 24 hours a day for this feature to work correctly.
|
* Note that Anope must run 24 hours a day for this feature to work correctly.
|
||||||
*/
|
*/
|
||||||
@@ -704,7 +710,7 @@ log
|
|||||||
* means "* ~operserv/*" would log everything because * matches everything.
|
* means "* ~operserv/*" would log everything because * matches everything.
|
||||||
*
|
*
|
||||||
* Valid admin, override, and command options are:
|
* Valid admin, override, and command options are:
|
||||||
* pesudo-serv/commandname (eg, operserv/akill, chanserv/set)
|
* pesudo-serv/commandname (e.g. operserv/akill, chanserv/set)
|
||||||
*
|
*
|
||||||
* Valid server options are:
|
* Valid server options are:
|
||||||
* connect, quit, sync, squit
|
* connect, quit, sync, squit
|
||||||
@@ -735,8 +741,9 @@ log
|
|||||||
*/
|
*/
|
||||||
log
|
log
|
||||||
{
|
{
|
||||||
|
bot = "Global"
|
||||||
target = "globops"
|
target = "globops"
|
||||||
admin = "global/* operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop"
|
admin = "global/* operserv/chankill operserv/mode operserv/kick operserv/akill operserv/s*line operserv/noop operserv/jupe operserv/oline operserv/set operserv/svsnick operserv/svsjoin operserv/svspart nickserv/getpass */drop"
|
||||||
servers = "squit"
|
servers = "squit"
|
||||||
users = "oper"
|
users = "oper"
|
||||||
other = "expire/* bados akill/*"
|
other = "expire/* bados akill/*"
|
||||||
@@ -761,17 +768,18 @@ log
|
|||||||
* chanserv/administration - Can modify the settings of any channel (including changing of the owner!)
|
* chanserv/administration - Can modify the settings of any channel (including changing of the owner!)
|
||||||
* chanserv/access/list - Can view channel access and akick lists, but not modify them
|
* chanserv/access/list - Can view channel access and akick lists, but not modify them
|
||||||
* chanserv/access/modify - Can modify channel access and akick lists, and use /chanserv enforce
|
* chanserv/access/modify - Can modify channel access and akick lists, and use /chanserv enforce
|
||||||
* chanserv/auspex - Can see any information with /chanserv info
|
* chanserv/auspex - Can see any information with /CHANSERV INFO
|
||||||
* chanserv/no-register-limit - May register an unlimited number of channels and nicknames
|
* chanserv/no-register-limit - May register an unlimited number of channels and nicknames
|
||||||
* chanserv/kick - Can kick and ban users from channels through ChanServ
|
* chanserv/kick - Can kick and ban users from channels through ChanServ
|
||||||
* memoserv/info - Can see any information with /memoserv info
|
* memoserv/info - Can see any information with /MEMOSERV INFO
|
||||||
* memoserv/set-limit - Can set the limit of max stored memos on any user and channel
|
* memoserv/set-limit - Can set the limit of max stored memos on any user and channel
|
||||||
* memoserv/no-limit - Can send memos through limits and throttles
|
* memoserv/no-limit - Can send memos through limits and throttles
|
||||||
* nickserv/access - Can modify other users access and certificate lists
|
* nickserv/access - Can modify other users access and certificate lists
|
||||||
* nickserv/alist - Can see the channel access list of other users
|
* nickserv/alist - Can see the channel access list of other users
|
||||||
* nickserv/auspex - Can see any information with /nickserv info
|
* nickserv/auspex - Can see any information with /NICKSERV INFO
|
||||||
* nickserv/confirm - Can confirm other users nicknames
|
* nickserv/confirm - Can confirm other users nicknames
|
||||||
* nickserv/drop - Can drop other users nicks
|
* nickserv/drop - Can drop other users nicks
|
||||||
|
* nickserv/recover - Can recover other users nicks
|
||||||
* operserv/config - Can modify services's configuration
|
* operserv/config - Can modify services's configuration
|
||||||
* operserv/oper/modify - Can add and remove operators with at most the same privileges
|
* operserv/oper/modify - Can add and remove operators with at most the same privileges
|
||||||
* protected - Can not be kicked from channels by Services
|
* protected - Can not be kicked from channels by Services
|
||||||
@@ -783,12 +791,7 @@ log
|
|||||||
* chanserv/drop chanserv/getkey chanserv/invite
|
* chanserv/drop chanserv/getkey chanserv/invite
|
||||||
* chanserv/list chanserv/suspend chanserv/topic
|
* chanserv/list chanserv/suspend chanserv/topic
|
||||||
*
|
*
|
||||||
* chanserv/saset/bantype chanserv/saset/description chanserv/saset/email chanserv/saset/keepmodes
|
* chanserv/saset/noexpire
|
||||||
* chanserv/saset/founder chanserv/saset/keeptopic chanserv/saset/restricted
|
|
||||||
* chanserv/saset/peace chanserv/saset/persist chanserv/saset/private
|
|
||||||
* chanserv/saset/secure chanserv/saset/securefounder chanserv/saset/secureops
|
|
||||||
* chanserv/saset/signkick chanserv/saset/successor chanserv/saset/topiclock
|
|
||||||
* chanserv/saset/url chanserv/saset/noexpire chanserv/saset/autoop
|
|
||||||
*
|
*
|
||||||
* memoserv/sendall memoserv/staff
|
* memoserv/sendall memoserv/staff
|
||||||
*
|
*
|
||||||
@@ -816,6 +819,9 @@ log
|
|||||||
* These can contain commands for oper-only strings (see above) which grants access to that specific command,
|
* These can contain commands for oper-only strings (see above) which grants access to that specific command,
|
||||||
* and privileges (which grant access to more general permissions for the named area).
|
* and privileges (which grant access to more general permissions for the named area).
|
||||||
* Wildcard entries are permitted for both, e.g. 'commands = "operserv/*"' for all OperServ commands.
|
* Wildcard entries are permitted for both, e.g. 'commands = "operserv/*"' for all OperServ commands.
|
||||||
|
* You can also negate values with a ~. For example, "~operserv/akill operserv/*" would allow all OperServ
|
||||||
|
* commands except for operserv/akill. Note that processing stops at the first matching option, which
|
||||||
|
* means "* ~operserv/*" would allow everything because * matches everything.
|
||||||
*
|
*
|
||||||
* Below are some default example types, but this is by no means exhaustive,
|
* Below are some default example types, but this is by no means exhaustive,
|
||||||
* and it is recommended that you configure them to your needs.
|
* and it is recommended that you configure them to your needs.
|
||||||
@@ -835,7 +841,7 @@ opertype
|
|||||||
/* The name of this opertype */
|
/* The name of this opertype */
|
||||||
name = "Services Operator"
|
name = "Services Operator"
|
||||||
|
|
||||||
/* What opertype(s) this inherits from. Seperate with a comma. */
|
/* What opertype(s) this inherits from. Separate with a comma. */
|
||||||
inherits = "Helper, Another Helper"
|
inherits = "Helper, Another Helper"
|
||||||
|
|
||||||
/* What commands (see above) this opertype may use */
|
/* What commands (see above) this opertype may use */
|
||||||
@@ -898,7 +904,7 @@ opertype
|
|||||||
*/
|
*/
|
||||||
require_oper = yes
|
require_oper = yes
|
||||||
|
|
||||||
/* An optional password. If defined the user must login using "/msg OperServ LOGIN" first */
|
/* An optional password. If defined, the user must login using "/OPERSERV LOGIN" first */
|
||||||
#password = "secret"
|
#password = "secret"
|
||||||
|
|
||||||
/* An optional SSL fingerprint. If defined, it's required to be able to use this opertype. */
|
/* An optional SSL fingerprint. If defined, it's required to be able to use this opertype. */
|
||||||
@@ -988,6 +994,11 @@ mail
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The subject and message of emails sent to users when they register accounts.
|
* The subject and message of emails sent to users when they register accounts.
|
||||||
|
*
|
||||||
|
* Available tokens for this template are:
|
||||||
|
* %n - Gets replaced with the nickname
|
||||||
|
* %N - Gets replaced with the network name
|
||||||
|
* %c - Gets replaced with the confirmation code
|
||||||
*/
|
*/
|
||||||
registration_subject = "Nickname registration for %n"
|
registration_subject = "Nickname registration for %n"
|
||||||
registration_message = "Hi,
|
registration_message = "Hi,
|
||||||
@@ -1001,6 +1012,11 @@ mail
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The subject and message of emails sent to users when they request a new password.
|
* The subject and message of emails sent to users when they request a new password.
|
||||||
|
*
|
||||||
|
* Available tokens for this template are:
|
||||||
|
* %n - Gets replaced with the nickname
|
||||||
|
* %N - Gets replaced with the network name
|
||||||
|
* %c - Gets replaced with the confirmation code
|
||||||
*/
|
*/
|
||||||
reset_subject = "Reset password request for %n"
|
reset_subject = "Reset password request for %n"
|
||||||
reset_message = "Hi,
|
reset_message = "Hi,
|
||||||
@@ -1014,6 +1030,13 @@ mail
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The subject and message of emails sent to users when they request a new email address.
|
* The subject and message of emails sent to users when they request a new email address.
|
||||||
|
*
|
||||||
|
* Available tokens for this template are:
|
||||||
|
* %e - Gets replaced with the old email address
|
||||||
|
* %E - Gets replaced with the new email address
|
||||||
|
* %n - Gets replaced with the nickname
|
||||||
|
* %N - Gets replaced with the network name
|
||||||
|
* %c - Gets replaced with the confirmation code
|
||||||
*/
|
*/
|
||||||
emailchange_subject = "Email confirmation"
|
emailchange_subject = "Email confirmation"
|
||||||
emailchange_message = "Hi,
|
emailchange_message = "Hi,
|
||||||
@@ -1027,6 +1050,13 @@ mail
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The subject and message of emails sent to users when they receive a new memo.
|
* The subject and message of emails sent to users when they receive a new memo.
|
||||||
|
*
|
||||||
|
* Available tokens for this template are:
|
||||||
|
* %n - Gets replaced with the nickname
|
||||||
|
* %s - Gets replaced with the sender's nickname
|
||||||
|
* %d - Gets replaced with the memo number
|
||||||
|
* %t - Gets replaced with the memo text
|
||||||
|
* %N - Gets replaced with the network name
|
||||||
*/
|
*/
|
||||||
memo_subject = "New memo"
|
memo_subject = "New memo"
|
||||||
memo_message = "Hi %n,
|
memo_message = "Hi %n,
|
||||||
@@ -1166,7 +1196,7 @@ module
|
|||||||
/*
|
/*
|
||||||
* db_redis.
|
* db_redis.
|
||||||
*
|
*
|
||||||
* This module allows using Redis (http://redis.io) as a database backend.
|
* This module allows using Redis (https://redis.io/) as a database backend.
|
||||||
* This module requires that m_redis is loaded and configured properly.
|
* This module requires that m_redis is loaded and configured properly.
|
||||||
*
|
*
|
||||||
* Redis 2.8 supports keyspace notifications which allows Redis to push notifications
|
* Redis 2.8 supports keyspace notifications which allows Redis to push notifications
|
||||||
@@ -1205,23 +1235,14 @@ module
|
|||||||
* encrypted by this module. Old passwords stored in another encryption method are
|
* encrypted by this module. Old passwords stored in another encryption method are
|
||||||
* automatically re-encrypted by the primary encryption module on next identify.
|
* automatically re-encrypted by the primary encryption module on next identify.
|
||||||
*
|
*
|
||||||
* NOTE: enc_old is Anope's previous (broken) MD5 implementation which is present in
|
* enc_md5, enc_sha1, and enc_old are deprecated, and are provided for users
|
||||||
* versions prior to Anope 1.7.17. If your databases were made using that module,
|
* to upgrade to a newer encryption module. Do not use them as the primary
|
||||||
* use this and not enc_md5.
|
* encryption module. They will be removed in a future release.
|
||||||
*
|
|
||||||
* NOTE: enc_sha1 relies on how the OS stores 2+ byte data internally, and is
|
|
||||||
* potentially broken when moving between 2 different OSes, such as moving from
|
|
||||||
* Linux to Windows. It is recommended that you use enc_sha256 instead if you want
|
|
||||||
* to use an SHA-based encryption. If you choose to do so, it is also recommended
|
|
||||||
* that you first try to get everyone's passwords converted to enc_sha256 before
|
|
||||||
* switching OSes by placing enc_sha256 at the beginning of the list.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#module { name = "enc_bcrypt" }
|
#module { name = "enc_bcrypt" }
|
||||||
module { name = "enc_sha256" }
|
module { name = "enc_sha256" }
|
||||||
#module { name = "enc_md5" }
|
|
||||||
#module { name = "enc_sha1" }
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When using enc_none, passwords will be stored without encryption. This isn't secure
|
* When using enc_none, passwords will be stored without encryption. This isn't secure
|
||||||
@@ -1229,6 +1250,10 @@ module { name = "enc_sha256" }
|
|||||||
*/
|
*/
|
||||||
#module { name = "enc_none" }
|
#module { name = "enc_none" }
|
||||||
|
|
||||||
|
/* Deprecated encryption modules */
|
||||||
|
#module { name = "enc_md5" }
|
||||||
|
#module { name = "enc_sha1" }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* enc_old is Anope's previous (broken) MD5 implementation used from 1.4.x to 1.7.16.
|
* enc_old is Anope's previous (broken) MD5 implementation used from 1.4.x to 1.7.16.
|
||||||
* If your databases were made using that module, load it here to allow conversion to the primary
|
* If your databases were made using that module, load it here to allow conversion to the primary
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ service
|
|||||||
/*
|
/*
|
||||||
* The hostname of the StatServ client.
|
* The hostname of the StatServ client.
|
||||||
*/
|
*/
|
||||||
host = "services.host"
|
host = "stats.host"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The realname of the StatServ client.
|
* The realname of the StatServ client.
|
||||||
@@ -45,7 +45,7 @@ service
|
|||||||
*
|
*
|
||||||
* Prefixes may be given to the channels in the form of mode characters or prefix symbols.
|
* Prefixes may be given to the channels in the form of mode characters or prefix symbols.
|
||||||
*/
|
*/
|
||||||
#channels = "@#services,#mychan"
|
#channels = "@#stats,#mychan"
|
||||||
}
|
}
|
||||||
|
|
||||||
module
|
module
|
||||||
@@ -84,7 +84,7 @@ module
|
|||||||
/*
|
/*
|
||||||
* Get the CTCP version from users
|
* Get the CTCP version from users
|
||||||
* The users connecting to the network will receive a CTCP VERSION
|
* The users connecting to the network will receive a CTCP VERSION
|
||||||
* request from the above configured services client
|
* request from the above configured stats client
|
||||||
*/
|
*/
|
||||||
ctcpuser = "yes"
|
ctcpuser = "yes"
|
||||||
|
|
||||||
@@ -95,4 +95,3 @@ module
|
|||||||
*/
|
*/
|
||||||
ctcpeob = "yes"
|
ctcpeob = "yes"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-34
@@ -30,7 +30,7 @@ module { name = "help" }
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file.
|
* The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file.
|
||||||
* The below should work fine on all unix like systems. Windows users will have to find their nameservers
|
* The below should work fine on all UNIX-like systems. Windows users will have to find their nameservers
|
||||||
* from ipconfig /all and put the IP here.
|
* from ipconfig /all and put the IP here.
|
||||||
*/
|
*/
|
||||||
nameserver = "/etc/resolv.conf"
|
nameserver = "/etc/resolv.conf"
|
||||||
@@ -127,9 +127,9 @@ module { name = "help" }
|
|||||||
* %r is the reply reason (configured below). Will be nothing if not configured.
|
* %r is the reply reason (configured below). Will be nothing if not configured.
|
||||||
* %N is the network name set in networkinfo:networkname
|
* %N is the network name set in networkinfo:networkname
|
||||||
*/
|
*/
|
||||||
reason = "You are listed in the efnet RBL, visit http://rbl.efnetrbl.org/?i=%i for info"
|
reason = "You are listed in the EFnet RBL, visit https://rbl.efnetrbl.org/?i=%i for info"
|
||||||
|
|
||||||
/* Replies to ban and their reason. If no relies are configured, all replies get banned. */
|
/* Replies to ban and their reason. If no replies are configured, all replies get banned. */
|
||||||
reply
|
reply
|
||||||
{
|
{
|
||||||
code = 1
|
code = 1
|
||||||
@@ -171,11 +171,11 @@ module { name = "help" }
|
|||||||
{
|
{
|
||||||
name = "dnsbl.dronebl.org"
|
name = "dnsbl.dronebl.org"
|
||||||
time = 4h
|
time = 4h
|
||||||
reason = "You have a host listed in the DroneBL. For more information, visit http://dronebl.org/lookup_branded?ip=%i&network=%N"
|
reason = "You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%i&network=%N"
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Exempt localhost from DNSBL checks */
|
/* Exempt localhost from DNSBL checks */
|
||||||
exempt { ip = "127.0.0.1" }
|
exempt { ip = "127.0.0.0/8" }
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -223,8 +223,9 @@ module { name = "help" }
|
|||||||
* extforward_headers set below, set this to its IP.
|
* extforward_headers set below, set this to its IP.
|
||||||
* This allows services to obtain the real IP of users by
|
* This allows services to obtain the real IP of users by
|
||||||
* reading the forwarded-for HTTP header.
|
* reading the forwarded-for HTTP header.
|
||||||
|
* Multiple IP addresses can be specified separated by a space character.
|
||||||
*/
|
*/
|
||||||
#extforward_ip = "192.168.0.255"
|
#extforward_ip = "192.168.0.255 192.168.1.255"
|
||||||
|
|
||||||
/* The header to look for. These probably work as is. */
|
/* The header to look for. These probably work as is. */
|
||||||
extforward_header = "X-Forwarded-For Forwarded-For"
|
extforward_header = "X-Forwarded-For Forwarded-For"
|
||||||
@@ -243,7 +244,6 @@ module { name = "help" }
|
|||||||
ldap
|
ldap
|
||||||
{
|
{
|
||||||
server = "ldap://127.0.0.1"
|
server = "ldap://127.0.0.1"
|
||||||
port = 389
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Admin credentials used for performing searches and adding users.
|
* Admin credentials used for performing searches and adding users.
|
||||||
@@ -299,18 +299,18 @@ module { name = "help" }
|
|||||||
password_attribute = "userPassword"
|
password_attribute = "userPassword"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If set, the reason to give the users who try to register with nickserv,
|
* If set, the reason to give the users who try to register with NickServ,
|
||||||
* including nick registration from grouping.
|
* including nick registration from grouping.
|
||||||
*
|
*
|
||||||
* If not set, then registration is not blocked.
|
* If not set, then registration is not blocked.
|
||||||
*/
|
*/
|
||||||
#disable_register_reason = "To register on this network visit http://some.misconfigured.site/register"
|
#disable_register_reason = "To register on this network visit https://some.misconfigured.site/register"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
|
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
|
||||||
* If not set, then email changing is not blocked.
|
* If not set, then email changing is not blocked.
|
||||||
*/
|
*/
|
||||||
#disable_email_reason = "To change your email address visit http://some.misconfigured.site"
|
#disable_email_reason = "To change your email address visit https://some.misconfigured.site"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -374,6 +374,7 @@ module { name = "help" }
|
|||||||
port = 3306
|
port = 3306
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* m_redis
|
* m_redis
|
||||||
*
|
*
|
||||||
@@ -438,7 +439,7 @@ module { name = "help" }
|
|||||||
rewrite_source = "CLEAR $ USERS"
|
rewrite_source = "CLEAR $ USERS"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Message to rewrite the source message to. A $ followed by a number, eg $0, gets
|
* Message to rewrite the source message to. A $ followed by a number, e.g. $0, gets
|
||||||
* replaced by the number-th word from the source_message, starting from 0.
|
* replaced by the number-th word from the source_message, starting from 0.
|
||||||
*/
|
*/
|
||||||
rewrite_target = "KICK $1 *"
|
rewrite_target = "KICK $1 *"
|
||||||
@@ -541,25 +542,7 @@ module { name = "help" }
|
|||||||
* authenticating users through this mechanism. Supported mechanisms are:
|
* authenticating users through this mechanism. Supported mechanisms are:
|
||||||
* PLAIN, EXTERNAL.
|
* PLAIN, EXTERNAL.
|
||||||
*/
|
*/
|
||||||
#module { name = "m_sasl" }
|
module { name = "m_sasl" }
|
||||||
|
|
||||||
/*
|
|
||||||
* m_sasl_dh-aes [EXTRA]
|
|
||||||
*
|
|
||||||
* Add the DH-AES mechanism to SASL.
|
|
||||||
* Requires m_sasl to be loaded.
|
|
||||||
* Requires openssl.
|
|
||||||
*/
|
|
||||||
#module { name = "m_sasl_dh-aes" }
|
|
||||||
|
|
||||||
/*
|
|
||||||
* m_sasl_dh-blowfish [EXTRA]
|
|
||||||
*
|
|
||||||
* Add the DH-BLOWFISH mechanism to SASL.
|
|
||||||
* Requires m_sasl to be loaded.
|
|
||||||
* Requires openssl.
|
|
||||||
*/
|
|
||||||
#module { name = "m_sasl_dh-blowfish" }
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* m_ssl_gnutls [EXTRA]
|
* m_ssl_gnutls [EXTRA]
|
||||||
@@ -567,7 +550,7 @@ module { name = "help" }
|
|||||||
* This module provides SSL services to Anope using GnuTLS, for example to
|
* This module provides SSL services to Anope using GnuTLS, for example to
|
||||||
* connect to the uplink server(s) via SSL.
|
* connect to the uplink server(s) via SSL.
|
||||||
*
|
*
|
||||||
* You may only load either m_ssl_gnutls or m_ssl_openssl, bot not both.
|
* You may only load either m_ssl_gnutls or m_ssl_openssl, but not both.
|
||||||
*/
|
*/
|
||||||
#module
|
#module
|
||||||
{
|
{
|
||||||
@@ -605,7 +588,7 @@ module { name = "help" }
|
|||||||
* This module provides SSL services to Anope using OpenSSL, for example to
|
* This module provides SSL services to Anope using OpenSSL, for example to
|
||||||
* connect to the uplink server(s) via SSL.
|
* connect to the uplink server(s) via SSL.
|
||||||
*
|
*
|
||||||
* You may only load either m_ssl_openssl or m_ssl_gnutls, bot not both.
|
* You may only load either m_ssl_openssl or m_ssl_gnutls, but not both.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#module
|
#module
|
||||||
@@ -674,13 +657,13 @@ module { name = "help" }
|
|||||||
* If set, the reason to give the users who try to "/msg NickServ REGISTER".
|
* If set, the reason to give the users who try to "/msg NickServ REGISTER".
|
||||||
* If not set, then registration is not blocked.
|
* If not set, then registration is not blocked.
|
||||||
*/
|
*/
|
||||||
#disable_reason = "To register on this network visit http://some.misconfigured.site/register"
|
#disable_reason = "To register on this network visit https://some.misconfigured.site/register"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
|
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
|
||||||
* If not set, then email changing is not blocked.
|
* If not set, then email changing is not blocked.
|
||||||
*/
|
*/
|
||||||
#disable_email_reason = "To change your email address visit http://some.misconfigured.site"
|
#disable_email_reason = "To change your email address visit https://some.misconfigured.site"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ module
|
|||||||
confirmemailchanges = no
|
confirmemailchanges = no
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A message sent to users on connect if they use an unregistered nick.
|
* A message sent to users on connect if they use an unregistered nick. %n will be replaced with the user's nickname.
|
||||||
*
|
*
|
||||||
* This directive is optional.
|
* This directive is optional.
|
||||||
*/
|
*/
|
||||||
@@ -97,16 +97,18 @@ module
|
|||||||
* - ns_secure: Enable nickname security, requiring the nick's password before any operations
|
* - ns_secure: Enable nickname security, requiring the nick's password before any operations
|
||||||
* can be done on it
|
* can be done on it
|
||||||
* - ns_private: Hide the nick from NickServ's LIST command
|
* - ns_private: Hide the nick from NickServ's LIST command
|
||||||
* - hide_email: Hide's the nick's e-mail address from NickServ's INFO command
|
* - hide_email: Hide the nick's e-mail address from NickServ's INFO command
|
||||||
* - hide_mask: Hide's the nick's last or current user@host from NickServ's INFO command
|
* - hide_mask: Hide the nick's last or current user@host from NickServ's INFO command
|
||||||
* - hide_quit: Hide's the nick's last quit message
|
* - hide_status: Hide the nick's services operator access status from NickServ's INFO command
|
||||||
|
* - hide_quit: Hide the nick's last quit message from NickServ's INFO command
|
||||||
* - memo_signon: Notify user if they have a new memo when they sign into the nick
|
* - memo_signon: Notify user if they have a new memo when they sign into the nick
|
||||||
* - memo_receive: Notify user if they have a new memo as soon as it's received
|
* - memo_receive: Notify user if they have a new memo as soon as it's received
|
||||||
* - memo_mail: Notify user if they have a new memo by mail
|
* - memo_mail: Notify user if they have a new memo by mail
|
||||||
* - autoop: User will be automatically opped in channels they enter and have access to
|
* - autoop: User will be automatically opped in channels they enter and have access to
|
||||||
* - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires
|
* - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires
|
||||||
* options:useprivmsg to be enabled as well
|
* options:useprivmsg to be enabled as well
|
||||||
* - ns_keepmodes: Enables keepmodes, which retains user modes across sessions
|
* - ns_keep_modes: Enables keepmodes, which retains user modes across sessions
|
||||||
|
* - ns_no_expire: Enables no expire. Unconfirmed expire overrules this.
|
||||||
*
|
*
|
||||||
* This directive is optional, if left blank, the options will default to ns_secure, memo_signon, and
|
* This directive is optional, if left blank, the options will default to ns_secure, memo_signon, and
|
||||||
* memo_receive. If you really want no defaults, use "none" by itself as the option.
|
* memo_receive. If you really want no defaults, use "none" by itself as the option.
|
||||||
@@ -381,7 +383,15 @@ command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup";
|
|||||||
*
|
*
|
||||||
* Used for identifying to accounts.
|
* Used for identifying to accounts.
|
||||||
*/
|
*/
|
||||||
module { name = "ns_identify" }
|
module
|
||||||
|
{
|
||||||
|
name = "ns_identify"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If set, limits the number of concurrent users that can be logged in as a given account at once.
|
||||||
|
*/
|
||||||
|
maxlogins = 10
|
||||||
|
}
|
||||||
command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; hide = true; }
|
command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; hide = true; }
|
||||||
command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; }
|
command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; }
|
||||||
|
|
||||||
@@ -390,7 +400,7 @@ command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"
|
|||||||
*
|
*
|
||||||
* Provides the commands:
|
* Provides the commands:
|
||||||
* nickserv/info. - Used for gathering information about an account.
|
* nickserv/info. - Used for gathering information about an account.
|
||||||
* nickserv/set/hide, nickserv/saset/hide - Used for configuring which options are publically shown in nickserv/info.
|
* nickserv/set/hide, nickserv/saset/hide - Used for configuring which options are publicly shown in nickserv/info.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
module { name = "ns_info" }
|
module { name = "ns_info" }
|
||||||
@@ -448,7 +458,7 @@ module
|
|||||||
* If set, Services will svsnick and svsjoin users who use the recover
|
* If set, Services will svsnick and svsjoin users who use the recover
|
||||||
* command on an identified user to the nick and channels of the recovered user.
|
* command on an identified user to the nick and channels of the recovered user.
|
||||||
*
|
*
|
||||||
* This directive is opional.
|
* This directive is optional.
|
||||||
*/
|
*/
|
||||||
restoreonrecover = yes
|
restoreonrecover = yes
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
|
|||||||
*
|
*
|
||||||
* Provides the command operserv/defcon.
|
* Provides the command operserv/defcon.
|
||||||
*
|
*
|
||||||
* Allows you to set services in defcon mode, which can be used to restrict services access
|
* Allows you to set services in DefCon mode, which can be used to restrict services access
|
||||||
* during bot attacks.
|
* during bot attacks.
|
||||||
*/
|
*/
|
||||||
#module
|
#module
|
||||||
@@ -511,11 +511,11 @@ command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permis
|
|||||||
*
|
*
|
||||||
* Provides the command operserv/oline.
|
* Provides the command operserv/oline.
|
||||||
*
|
*
|
||||||
* Used to set oper flags on users, and is specific to UnrealIRCd.
|
* Used to set oper flags on users, and is specific to UnrealIRCd 3.2.
|
||||||
* See /helpop ?svso on your IRCd for more information.
|
* See /helpop ?svso on your IRCd for more information.
|
||||||
*/
|
*/
|
||||||
module { name = "os_oline" }
|
#module { name = "os_oline" }
|
||||||
command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; }
|
#command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* os_oper
|
* os_oper
|
||||||
@@ -570,10 +570,8 @@ module
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Sets the default expiry time for session exceptions.
|
* Sets the default expiry time for session exceptions.
|
||||||
*
|
|
||||||
* This directive is required if os_session is loaded.
|
|
||||||
*/
|
*/
|
||||||
exceptionexpiry = 1d
|
#exceptionexpiry = 1d
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The message that will be NOTICE'd to a user just before they are removed from the network because
|
* The message that will be NOTICE'd to a user just before they are removed from the network because
|
||||||
@@ -594,7 +592,7 @@ module
|
|||||||
*
|
*
|
||||||
* This directive is optional, if not set, nothing will be sent.
|
* This directive is optional, if not set, nothing will be sent.
|
||||||
*/
|
*/
|
||||||
#sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits."
|
#sessionlimitdetailsloc = "Please visit https://your.website.url/ for more information about session limits."
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If set and is not 0, this directive tells Services to add an AKILL if the number of subsequent kills
|
* If set and is not 0, this directive tells Services to add an AKILL if the number of subsequent kills
|
||||||
|
|||||||
@@ -80,17 +80,17 @@
|
|||||||
* [OPTIONAL] Defines
|
* [OPTIONAL] Defines
|
||||||
*
|
*
|
||||||
* You can define values to other values, which can be used to easily change
|
* You can define values to other values, which can be used to easily change
|
||||||
* many values in the configuration. at once.
|
* many values in the configuration at once.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The services.host define is used in multiple different locations throughout the
|
* The stats.host define is used in multiple different locations throughout the
|
||||||
* configuration for services clients hostnames.
|
* configuration for the stats client hostname.
|
||||||
*/
|
*/
|
||||||
define
|
define
|
||||||
{
|
{
|
||||||
name = "services.host"
|
name = "stats.host"
|
||||||
value = "services.localhost.net"
|
value = "stats.localhost.net"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -110,7 +110,7 @@ define
|
|||||||
#include
|
#include
|
||||||
{
|
{
|
||||||
type = "executable"
|
type = "executable"
|
||||||
name = "/usr/bin/wget -q -O - http://some.misconfigured.network.com/services.conf"
|
name = "/usr/bin/wget -q -O - https://some.misconfigured.network.com/stats.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -126,30 +126,34 @@ define
|
|||||||
* An example configuration for InspIRCd that is compatible with the below uplink
|
* An example configuration for InspIRCd that is compatible with the below uplink
|
||||||
* and serverinfo configuration would look like:
|
* and serverinfo configuration would look like:
|
||||||
*
|
*
|
||||||
* <link name="services.localhost.net"
|
* # This goes in inspircd.conf, *NOT* your Anope config!
|
||||||
|
* <link name="stats.localhost.net"
|
||||||
* ipaddr="127.0.0.1"
|
* ipaddr="127.0.0.1"
|
||||||
* port="7000"
|
* port="7000"
|
||||||
* sendpass="mypassword"
|
* sendpass="mypassword"
|
||||||
* recvpass="mypassword">
|
* recvpass="mypassword">
|
||||||
* <uline server="services.localhost.net" silent="yes">
|
* <uline server="stats.localhost.net" silent="yes">
|
||||||
* <bind address="127.0.0.1" port="7000" type="servers">
|
* <bind address="127.0.0.1" port="7000" type="servers">
|
||||||
*
|
*
|
||||||
* An example configuration for UnrealIRCd that is compatible with the below uplink
|
* An example configuration for UnrealIRCd that is compatible with the below uplink
|
||||||
* and serverinfo configuration would look like:
|
* and serverinfo configuration would look like:
|
||||||
*
|
*
|
||||||
* link services.localhost.net
|
* // This goes in unrealircd.conf, *NOT* your Anope config!
|
||||||
* {
|
* listen {
|
||||||
* username *;
|
* ip 127.0.0.1;
|
||||||
* hostname *;
|
* port 7000;
|
||||||
* bind-ip "127.0.0.1";
|
* options {
|
||||||
* port 7000;
|
* serversonly;
|
||||||
* hub *;
|
* };
|
||||||
* password-connect "mypassword";
|
|
||||||
* password-receive "mypassword";
|
|
||||||
* class servers;
|
|
||||||
* };
|
* };
|
||||||
* ulines { services.localhost.net; };
|
* link stats.localhost.net {
|
||||||
* listen 127.0.0.1:7000;
|
* incoming {
|
||||||
|
* mask *@127.0.0.1;
|
||||||
|
* };
|
||||||
|
* password "mypassword";
|
||||||
|
* class servers;
|
||||||
|
* };
|
||||||
|
* ulines { stats.localhost.net; };
|
||||||
*/
|
*/
|
||||||
uplink
|
uplink
|
||||||
{
|
{
|
||||||
@@ -205,7 +209,7 @@ serverinfo
|
|||||||
name = "stats.localhost.net"
|
name = "stats.localhost.net"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The text which should appear as the server's information in /whois and similar
|
* The text which should appear as the server's information in /WHOIS and similar
|
||||||
* queries.
|
* queries.
|
||||||
*/
|
*/
|
||||||
description = "Stats for IRC Networks"
|
description = "Stats for IRC Networks"
|
||||||
@@ -231,13 +235,13 @@ serverinfo
|
|||||||
* The filename containing the Services process ID. The path is relative to the
|
* The filename containing the Services process ID. The path is relative to the
|
||||||
* services root directory.
|
* services root directory.
|
||||||
*/
|
*/
|
||||||
pid = "data/services.pid"
|
pid = "data/stats.pid"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The filename containing the Message of the Day. The path is relative to the
|
* The filename containing the Message of the Day. The path is relative to the
|
||||||
* services root directory.
|
* services root directory.
|
||||||
*/
|
*/
|
||||||
motd = "conf/services.motd"
|
motd = "conf/stats.motd"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -252,10 +256,12 @@ serverinfo
|
|||||||
* - hybrid
|
* - hybrid
|
||||||
* - inspircd12
|
* - inspircd12
|
||||||
* - inspircd20
|
* - inspircd20
|
||||||
|
* - inspircd3
|
||||||
* - ngircd
|
* - ngircd
|
||||||
* - plexus
|
* - plexus
|
||||||
* - ratbox
|
* - ratbox
|
||||||
* - unreal
|
* - unreal (for 3.2.x)
|
||||||
|
* - unreal4
|
||||||
*/
|
*/
|
||||||
module
|
module
|
||||||
{
|
{
|
||||||
@@ -378,7 +384,7 @@ options
|
|||||||
#hidestatso = yes
|
#hidestatso = yes
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A space-separated list of ulined servers on your network, it is assumed that
|
* A space-separated list of U-lined servers on your network, it is assumed that
|
||||||
* the servers in this list are allowed to set channel modes and Services will
|
* the servers in this list are allowed to set channel modes and Services will
|
||||||
* not attempt to reverse their mode changes.
|
* not attempt to reverse their mode changes.
|
||||||
*
|
*
|
||||||
@@ -411,17 +417,17 @@ log
|
|||||||
*/
|
*/
|
||||||
target = "stats.log"
|
target = "stats.log"
|
||||||
|
|
||||||
/* Log to both services.log and the channel #services
|
/* Log to both stats.log and the channel #stats
|
||||||
*
|
*
|
||||||
* Note that some older IRCds, such as Ratbox, require services to be in the
|
* Note that some older IRCds, such as Ratbox, require services to be in the
|
||||||
* log channel to be able to message it. To do this, configure service:channels to
|
* log channel to be able to message it. To do this, configure service:channels to
|
||||||
* join your logging channel.
|
* join your logging channel.
|
||||||
*/
|
*/
|
||||||
#target = "stats.log #services"
|
#target = "stats.log #stats"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The source(s) to only accept log messages from. Leave commented to allow all sources.
|
* The source(s) to only accept log messages from. Leave commented to allow all sources.
|
||||||
* This can be a users name, a channel name, one of our clients (eg, OperServ), or a server name.
|
* This can be a users name, a channel name, one of our clients (e.g. OperServ), or a server name.
|
||||||
*/
|
*/
|
||||||
#source = ""
|
#source = ""
|
||||||
|
|
||||||
@@ -432,8 +438,8 @@ log
|
|||||||
bot = "Global"
|
bot = "Global"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The number of days to keep logfiles, only useful if you are logging to a file.
|
* The number of days to keep log files, only useful if you are logging to a file.
|
||||||
* Set to 0 to never delete old logfiles.
|
* Set to 0 to never delete old log files.
|
||||||
*
|
*
|
||||||
* Note that Anope must run 24 hours a day for this feature to work correctly.
|
* Note that Anope must run 24 hours a day for this feature to work correctly.
|
||||||
*/
|
*/
|
||||||
@@ -461,7 +467,7 @@ log
|
|||||||
* create, destroy, join, part, kick, leave, mode
|
* create, destroy, join, part, kick, leave, mode
|
||||||
*
|
*
|
||||||
* Valid user options are:
|
* Valid user options are:
|
||||||
* connect, disconnect, quit, nick, ident, host, mode, maxusers, oper
|
* connect, disconnect, quit, nick, ident, host, mode, maxusers, oper, away
|
||||||
*
|
*
|
||||||
* Rawio and debug are simple yes/no answers, there are no types for them.
|
* Rawio and debug are simple yes/no answers, there are no types for them.
|
||||||
*
|
*
|
||||||
@@ -510,4 +516,3 @@ include
|
|||||||
type = "file"
|
type = "file"
|
||||||
name = "irc2sql.example.conf"
|
name = "irc2sql.example.conf"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
For all bug reports / updates please see http://bugs.anope.org
|
For all bug reports / updates please see https://bugs.anope.org/
|
||||||
|
|||||||
+7
-7
@@ -21,7 +21,7 @@ The syntax is usually *_cast<type>(var).
|
|||||||
static_cast
|
static_cast
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
From my expierence, this cast is closest to C-style casting for non-pointer
|
From my experience, this cast is closest to C-style casting for non-pointer
|
||||||
types as well as between some (but not all) pointer types. This type of cast,
|
types as well as between some (but not all) pointer types. This type of cast,
|
||||||
like C-style casting, is performed at compile-time. static_cast can also do
|
like C-style casting, is performed at compile-time. static_cast can also do
|
||||||
a downcast of a derived class to a base class, but only if the base class is
|
a downcast of a derived class to a base class, but only if the base class is
|
||||||
@@ -80,7 +80,7 @@ Bad_cast exception.
|
|||||||
|
|
||||||
Note that in Anope we prefer if Anope::debug_cast is used.
|
Note that in Anope we prefer if Anope::debug_cast is used.
|
||||||
This uses dynamic_cast (and checks for a NULL pointer return) on debug builds
|
This uses dynamic_cast (and checks for a NULL pointer return) on debug builds
|
||||||
and static_cast on release builds, to speed up the program beacuse of dynamic_cast's
|
and static_cast on release builds, to speed up the program because of dynamic_cast's
|
||||||
reliance on RTTI.
|
reliance on RTTI.
|
||||||
|
|
||||||
reinterpret_cast
|
reinterpret_cast
|
||||||
@@ -100,12 +100,12 @@ Links
|
|||||||
The following links are web sites I've used to get this information, and might
|
The following links are web sites I've used to get this information, and might
|
||||||
describe some of the above a bit better than I have. :P
|
describe some of the above a bit better than I have. :P
|
||||||
|
|
||||||
http://www.acm.org/crossroads/xrds3-1/ovp3-1.html
|
https://www.acm.org/crossroads/xrds3-1/ovp3-1.html
|
||||||
http://www.cplusplus.com/doc/tutorial/typecasting.html
|
http://www.cplusplus.com/doc/tutorial/typecasting.html
|
||||||
http://www.codeguru.com/forum/showthread.php?t=312456
|
http://www.codeguru.com/forum/showthread.php?t=312456
|
||||||
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/cast.html
|
https://web.archive.org/web/20170810222238/http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/cast.html
|
||||||
http://msdn.microsoft.com/en-us/library/5f6c9f8h(VS.80).aspx
|
https://www.microsoft.com/en-us/download/details.aspx?id=55984
|
||||||
http://en.wikibooks.org/wiki/C%2B%2B_Programming/Type_Casting
|
https://en.wikibooks.org/wiki/C%2B%2B_Programming/Type_Casting
|
||||||
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=134
|
https://web.archive.org/web/20160510114447/http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=134
|
||||||
|
|
||||||
-- CyberBotX, Nov 23, 2008
|
-- CyberBotX, Nov 23, 2008
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Orginally pulled from: http://www.inspircd.org/wiki/Coding_Guidelines
|
Originally pulled from: https://wiki.inspircd.org/Coding_Guidelines
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+108
-12
@@ -1,3 +1,99 @@
|
|||||||
|
Anope Version 2.0.7
|
||||||
|
-------------------
|
||||||
|
Fix not sending login data on successful NickServ GROUP
|
||||||
|
Fix m_httpd to not consider headers to be case sensitive
|
||||||
|
Add InspIRCd 3 protocol support
|
||||||
|
Add 'n' email token for use in the email change template
|
||||||
|
Add logging for NickServ UNGROUP
|
||||||
|
Fix setting swhois on UnrealIRCd
|
||||||
|
Add nickserv/recover permission to allow opers to recover other users
|
||||||
|
Fix superadmin not being removed when deopering
|
||||||
|
Fix setting nickserv access list in webcpanel
|
||||||
|
Add support for post-handshake SASL in Unreal 4.2.2+
|
||||||
|
Add logging for channel memo deletionso
|
||||||
|
|
||||||
|
Anope Version 2.0.6
|
||||||
|
-------------------
|
||||||
|
Log client IP for web clients running commands via webcpanel
|
||||||
|
Fix log file path for the config file could not be opened log message
|
||||||
|
Allow nickserv/group to be used via XMLRPC
|
||||||
|
Fix logsearch without wildcards
|
||||||
|
Support cidr exempts in m_dnsbl
|
||||||
|
Add support for IPv6 dnsbls
|
||||||
|
Add +u and +L channel modes for ircd-hybrid
|
||||||
|
Set +x after hostserv/off on InspIRCd and UnrealIRCd
|
||||||
|
Fix chanserv/mode not being able to set extbans
|
||||||
|
Send CHGIDENT/CHGHOST on SVSLOGIN on InspIRCd
|
||||||
|
Fix escaping replies from commands in webcpanel
|
||||||
|
Enable require_oper for all opers added via operserv/oper
|
||||||
|
Advertise SASL mechanisms to UnrealIRCd servers
|
||||||
|
|
||||||
|
Anope Version 2.0.5
|
||||||
|
-------------------
|
||||||
|
Fix negative levels to not match users with negative access
|
||||||
|
Fix memo sender to always be the account name of the sender
|
||||||
|
Allow unregistered users to use the ChanServ seen command
|
||||||
|
Fix secureops to not be enforced on operators with the chanserv/administration privilege
|
||||||
|
Fix command name in HELP syntax messages to always be upper case
|
||||||
|
Show unconfirmed nickname messages on registration in webcpanel
|
||||||
|
Fix NickServ SET EMAIL to be executable via XMLRPC
|
||||||
|
Fix OperServ USERLIST/CHANLIST to accept regexes
|
||||||
|
Allow OperServ USERLIST to also match realname syntax (n!u@h#r)
|
||||||
|
Fix db_old importing languages to use the UTF-8 version
|
||||||
|
Fix m_dns to return REFUSED if no answers could be found
|
||||||
|
Fix ns_maxemail to be case insensitive
|
||||||
|
Add MemoServ READ ALL command
|
||||||
|
Add support for NickServ GROUP to be executed via XMLRPC
|
||||||
|
Add support for logging hostname/ip of SASL authentication attempts, if supported by IRCd
|
||||||
|
|
||||||
|
Anope Version 2.0.4
|
||||||
|
-------------------
|
||||||
|
Add notice rpc method to XMLRPC
|
||||||
|
Fix access check in cs_updown to not allow actions on users with equal access
|
||||||
|
Fix randomnews to work when there are more than 'newscount' random news
|
||||||
|
Fix crash from handling nick introduction collisions on unreal4
|
||||||
|
Add support for GCC6
|
||||||
|
Fix handling /join 0 on ratbox
|
||||||
|
Fix saset display to update the account of the proper user
|
||||||
|
Fix nickserv/confirm to send account and +r when appropriate
|
||||||
|
Fix chankill to not add duplicate akills
|
||||||
|
Allow nickserv/maxemail to disregard gmail style aliases when comparing emails
|
||||||
|
Fix chanserv/mode when setting listmodes with CIDR ranges
|
||||||
|
Fix reported expiry time when the time is divisible by 1 year
|
||||||
|
Clearify botserv repeat kicker help and allow setting repeat times to 1
|
||||||
|
Send vident/vhost with SASL login
|
||||||
|
Add support for SASL reauth
|
||||||
|
Fix log and database backup directories to be properly created by the installer
|
||||||
|
|
||||||
|
Anope Version 2.0.3
|
||||||
|
-------------------
|
||||||
|
Add support for UnrealIRCd 4
|
||||||
|
Fix cs_access to respect chanserv/access/list privilege
|
||||||
|
Fix cs_access to match level -1 as every user, not any level <0
|
||||||
|
Fix problems related to object destruction order when using db_sql_live
|
||||||
|
Show memo notify settings in ms_info
|
||||||
|
Fix some actions bumping channels last used time that shouldn't have
|
||||||
|
Add maxlogins configuration directive to limit the number of concurrent logins to one account
|
||||||
|
Fix race with auto svsnick on ghost sometimes causing nick collisions instead
|
||||||
|
Fix saset langauge reply
|
||||||
|
Show akill/sxlines ids in VIEW
|
||||||
|
Fix crash when an oper is configured in both the configuration and via os_oper
|
||||||
|
Fix m_ldap reconnect logic not properly setting protocol and network timeout settings
|
||||||
|
Fix crash from unloading regex modules when regex xlines exist
|
||||||
|
Fix irc2sql to store away messages
|
||||||
|
Add notice method to m_xmlrpc_main
|
||||||
|
Fix numerics on InspIRCd from being sent to user UID
|
||||||
|
Fix usermode +I on UnrealIRCd to be considered oper only
|
||||||
|
Fix crash in webcpanel when deleting your own access on a channel
|
||||||
|
Fix webcpanel allowing suspended users to login
|
||||||
|
Fix hs_off on InspIRCd to not desync active user host
|
||||||
|
Fix bs_bot to not allow colliding bots into users
|
||||||
|
Don't allow hostserv modules to load if there is no hostserv
|
||||||
|
Fix ns_register allowing bot nicks to be registered through webcpanel
|
||||||
|
Don't update chanserv keepmodes during inhabit
|
||||||
|
Fix build on cmake 2.4
|
||||||
|
Allow searching emails by wildcard in ns_getemail
|
||||||
|
|
||||||
Anope Version 2.0.2
|
Anope Version 2.0.2
|
||||||
-------------------
|
-------------------
|
||||||
Fix keepmodes preventing the first user of a channel from being deopped
|
Fix keepmodes preventing the first user of a channel from being deopped
|
||||||
@@ -40,7 +136,7 @@ Anope Version 2.0.0
|
|||||||
Added irc2sql stats module
|
Added irc2sql stats module
|
||||||
|
|
||||||
Anope Version 1.9.9
|
Anope Version 1.9.9
|
||||||
--------------------
|
-------------------
|
||||||
A Added a better webpanel template, removed the old one
|
A Added a better webpanel template, removed the old one
|
||||||
A Added SQL logging support
|
A Added SQL logging support
|
||||||
A Added Redis database support
|
A Added Redis database support
|
||||||
@@ -52,7 +148,7 @@ F Fixed setting BotServ's default settings in the config
|
|||||||
F Fixed some names of config items, including NickServ's kill protect
|
F Fixed some names of config items, including NickServ's kill protect
|
||||||
|
|
||||||
Anope Version 1.9.8
|
Anope Version 1.9.8
|
||||||
--------------------
|
-------------------
|
||||||
A Ability to configure fantasy commands in the config
|
A Ability to configure fantasy commands in the config
|
||||||
A Add SVSJOIN and SVSPART commands
|
A Add SVSJOIN and SVSPART commands
|
||||||
F Fix "leave" channel log level from not logging
|
F Fix "leave" channel log level from not logging
|
||||||
@@ -64,7 +160,7 @@ F Fix crash in os_forbid with expiring entries
|
|||||||
F Fix several issues with db_sql_live
|
F Fix several issues with db_sql_live
|
||||||
|
|
||||||
Anope Version 1.9.7
|
Anope Version 1.9.7
|
||||||
--------------------
|
-------------------
|
||||||
A Added ability for using regex as patterns for various commands
|
A Added ability for using regex as patterns for various commands
|
||||||
A Extended ability of operserv/akill to also match against nick and realname
|
A Extended ability of operserv/akill to also match against nick and realname
|
||||||
A Added chanserv:require configuration option
|
A Added chanserv:require configuration option
|
||||||
@@ -74,7 +170,7 @@ A Added a web panel
|
|||||||
A db_sql_live now allows all tables to be "live", not just a select few
|
A db_sql_live now allows all tables to be "live", not just a select few
|
||||||
|
|
||||||
Anope Version 1.9.6
|
Anope Version 1.9.6
|
||||||
--------------------
|
-------------------
|
||||||
A Added ability to configure emails sent by services
|
A Added ability to configure emails sent by services
|
||||||
A Added chanserv/up and chanserv/down
|
A Added chanserv/up and chanserv/down
|
||||||
A Added m_proxyscan
|
A Added m_proxyscan
|
||||||
@@ -93,7 +189,7 @@ F Fixed crash in /os oper info
|
|||||||
F Fixed eventfd Config check to work properly on OpenVZ
|
F Fixed eventfd Config check to work properly on OpenVZ
|
||||||
|
|
||||||
Anope Version 1.9.5
|
Anope Version 1.9.5
|
||||||
--------------------
|
-------------------
|
||||||
A Extended LDAP support
|
A Extended LDAP support
|
||||||
A Added os_oper, os_kill, os_forbid, m_statusupdate, cs_sync, and bs_autoassign
|
A Added os_oper, os_kill, os_forbid, m_statusupdate, cs_sync, and bs_autoassign
|
||||||
A Added a new configuration file format
|
A Added a new configuration file format
|
||||||
@@ -111,7 +207,7 @@ F Fixed setting -P on channels with only a botserv bot in it
|
|||||||
F Fixed modemanager complaining about prefixless modes on InspIRCd
|
F Fixed modemanager complaining about prefixless modes on InspIRCd
|
||||||
|
|
||||||
Anope Version 1.9.4
|
Anope Version 1.9.4
|
||||||
--------------------
|
-------------------
|
||||||
A Automatically set channel founder to the user with the highest access if there is no successor
|
A Automatically set channel founder to the user with the highest access if there is no successor
|
||||||
A /chanserv clone command to copy settings from one channel to another.
|
A /chanserv clone command to copy settings from one channel to another.
|
||||||
A /chanserv mode command
|
A /chanserv mode command
|
||||||
@@ -132,7 +228,7 @@ F Some failed logic in /operserv exception that prevents proper exceptions from
|
|||||||
F Fixed the anope_os_sxlines MySQL table and code to work after restarting
|
F Fixed the anope_os_sxlines MySQL table and code to work after restarting
|
||||||
|
|
||||||
Anope Version 1.9.3
|
Anope Version 1.9.3
|
||||||
--------------------
|
-------------------
|
||||||
A Added italics BotServ kicks support
|
A Added italics BotServ kicks support
|
||||||
A Tell users when their nicks expire in /ns glist and /ns info
|
A Tell users when their nicks expire in /ns glist and /ns info
|
||||||
A Added SSL support
|
A Added SSL support
|
||||||
@@ -159,7 +255,7 @@ F Anoperc start/stop to send the globaloncycle global, and fixed anoperc rehash
|
|||||||
F Fixed a potential crash if HostServ or BotServ was disbled
|
F Fixed a potential crash if HostServ or BotServ was disbled
|
||||||
|
|
||||||
Anope Version 1.9.2
|
Anope Version 1.9.2
|
||||||
--------------------
|
-------------------
|
||||||
A K alias to chanserv kick command
|
A K alias to chanserv kick command
|
||||||
A KB alias to chanserv ban command
|
A KB alias to chanserv ban command
|
||||||
A The ability to register empty nonregistered channels
|
A The ability to register empty nonregistered channels
|
||||||
@@ -173,8 +269,8 @@ A Added ns_resetpass module to the core
|
|||||||
A CS ACCESS VIEW which shows who added the access and last time used
|
A CS ACCESS VIEW which shows who added the access and last time used
|
||||||
A Last used time to CS AKICK VIEW
|
A Last used time to CS AKICK VIEW
|
||||||
A Added a sha_256 encryption module
|
A Added a sha_256 encryption module
|
||||||
A Added the ability to load multiple encryption modules, and the ability to seamlessly convert your database between diferent encryptions
|
A Added the ability to load multiple encryption modules, and the ability to seamlessly convert your database between different encryptions
|
||||||
A Added configuration options to allow Anope to reconnect if it disconnects from the uplink instead of dieing
|
A Added configuration options to allow Anope to reconnect if it disconnects from the uplink instead of dying
|
||||||
A Added support for linking with IPv6
|
A Added support for linking with IPv6
|
||||||
F Unban command to accept an optional nick arg
|
F Unban command to accept an optional nick arg
|
||||||
F Some typos in services.conf
|
F Some typos in services.conf
|
||||||
@@ -190,7 +286,7 @@ F ms_rsend to really work
|
|||||||
F SQUITing juped servers on InspIRCd1.2+
|
F SQUITing juped servers on InspIRCd1.2+
|
||||||
|
|
||||||
Anope Version 1.9.1
|
Anope Version 1.9.1
|
||||||
--------------------
|
-------------------
|
||||||
F Don't enforce akick/forbidden/etc.-restrictions on clients on ulined servers.
|
F Don't enforce akick/forbidden/etc.-restrictions on clients on ulined servers.
|
||||||
F Remove modules_unload_all fini + hack that goes with it.
|
F Remove modules_unload_all fini + hack that goes with it.
|
||||||
F Signal handling cleanup.
|
F Signal handling cleanup.
|
||||||
@@ -231,7 +327,7 @@ Provided by Liber <Liber@jasonirc.net> - 2009
|
|||||||
F Support operoverride and such things (stop reversing changes from nonopped people where unnecessary)
|
F Support operoverride and such things (stop reversing changes from nonopped people where unnecessary)
|
||||||
|
|
||||||
Anope Version 1.9.0
|
Anope Version 1.9.0
|
||||||
--------------------
|
-------------------
|
||||||
F Modified compile to use g++
|
F Modified compile to use g++
|
||||||
F Improve protocol modules support (classes, virtual methods, etc)
|
F Improve protocol modules support (classes, virtual methods, etc)
|
||||||
F Move core services to use BotInfo
|
F Move core services to use BotInfo
|
||||||
|
|||||||
+30
-2
@@ -1,3 +1,31 @@
|
|||||||
|
Anope Version 2.0.7
|
||||||
|
-------------------
|
||||||
|
Add nickserv/recover permission
|
||||||
|
Add inspircd3 protocol module
|
||||||
|
Add default permission for chanstats saset chanstats command
|
||||||
|
|
||||||
|
Anope Version 2.0.6
|
||||||
|
-------------------
|
||||||
|
Mark enc_md5 and enc_sha1 as deprecated. Their use has been discouraged for years, and they will be removed in a future release.
|
||||||
|
Exempt all of 127.0.0.0/8 from m_dnsbl by default
|
||||||
|
Load m_sasl by default
|
||||||
|
Fix documentation for nickserv default option ns_keep_modes
|
||||||
|
|
||||||
|
Anope Version 2.0.5
|
||||||
|
-------------------
|
||||||
|
No significant changes.
|
||||||
|
|
||||||
|
Anope Version 2.0.4
|
||||||
|
-------------------
|
||||||
|
Removed m_sasl_dh-aes and m_sasl_dh-blowfish
|
||||||
|
|
||||||
|
Anope Version 2.0.3
|
||||||
|
-------------------
|
||||||
|
Add operserv/chankill to default globops log
|
||||||
|
Add ns_identify:maxlogins to limit the max number of concurrent logins per account
|
||||||
|
Document ns_no_expire nickserv default
|
||||||
|
Remove default session exception expiry time
|
||||||
|
|
||||||
Anope Version 2.0.2
|
Anope Version 2.0.2
|
||||||
-------------------
|
-------------------
|
||||||
Add an operserv/oper/modify privilege, required to use oper add and oper del
|
Add an operserv/oper/modify privilege, required to use oper add and oper del
|
||||||
@@ -85,7 +113,7 @@ opertype:commands removed operserv/umode
|
|||||||
operserv:modules removed os_umode
|
operserv:modules removed os_umode
|
||||||
|
|
||||||
Anope Version 1.9.3
|
Anope Version 1.9.3
|
||||||
------------------
|
-------------------
|
||||||
** ADDED CONFIGURATION DIRECTIVES **
|
** ADDED CONFIGURATION DIRECTIVES **
|
||||||
nickserv/auspex privilege added
|
nickserv/auspex privilege added
|
||||||
SSL module added for SSL support
|
SSL module added for SSL support
|
||||||
@@ -119,7 +147,7 @@ networkinfo:logchannel, logbot, logusers, logmaxusers, logchannel, and options:k
|
|||||||
dumpcore because it really didn't do anything
|
dumpcore because it really didn't do anything
|
||||||
|
|
||||||
Anope Version 1.9.2
|
Anope Version 1.9.2
|
||||||
--------------------
|
-------------------
|
||||||
** ADDED CONFIGURATION DIRECTIVES **
|
** ADDED CONFIGURATION DIRECTIVES **
|
||||||
options:enablelogchannel added to auto turn on the logchannel on startup
|
options:enablelogchannel added to auto turn on the logchannel on startup
|
||||||
options:mlock added to configure the default mlock modes on new channels
|
options:mlock added to configure the default mlock modes on new channels
|
||||||
|
|||||||
@@ -91,4 +91,3 @@ Anope DefCon
|
|||||||
|
|
||||||
You might get DefCon support by posting on our online forum, or maybe on
|
You might get DefCon support by posting on our online forum, or maybe on
|
||||||
our #anope channel at /server irc.anope.org.
|
our #anope channel at /server irc.anope.org.
|
||||||
|
|
||||||
|
|||||||
@@ -32,4 +32,3 @@ Anope Internal Events
|
|||||||
|
|
||||||
The "anope_override" identifier is for compatibility with C++11.
|
The "anope_override" identifier is for compatibility with C++11.
|
||||||
Its usage is highly recommended.
|
Its usage is highly recommended.
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Frequently Asked Questions (FAQ) concerning Anope
|
Frequently Asked Questions (FAQ) concerning Anope
|
||||||
------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
The information in the 1.9 FAQ is subject to change at any
|
The information in the 2.0 FAQ is subject to change at any
|
||||||
moment due to new developments. Please visit our website
|
moment due to new developments. Please visit our website
|
||||||
for the most up to date information.
|
for the most up to date information.
|
||||||
|
|
||||||
An updated version of the FAQ can be found here:
|
An updated version of the FAQ can be found here:
|
||||||
|
|
||||||
http://wiki.anope.org/index.php/FAQ
|
https://wiki.anope.org/index.php/2.0/FAQ
|
||||||
|
|||||||
+4
-4
@@ -19,7 +19,7 @@ Note: You should also read the README and FAQ files!
|
|||||||
The very first thing you need to do is to get the Anope package (if not
|
The very first thing you need to do is to get the Anope package (if not
|
||||||
already done). You can find it at:
|
already done). You can find it at:
|
||||||
|
|
||||||
http://www.anope.org/
|
https://www.anope.org/
|
||||||
|
|
||||||
Anope requires cmake to build. You can check if CMake is already
|
Anope requires cmake to build. You can check if CMake is already
|
||||||
installed on your system using the command:
|
installed on your system using the command:
|
||||||
@@ -32,7 +32,7 @@ Note: You should also read the README and FAQ files!
|
|||||||
CMake unless you install it yourself into your home directory. CMake
|
CMake unless you install it yourself into your home directory. CMake
|
||||||
can be downloaded from:
|
can be downloaded from:
|
||||||
|
|
||||||
http://www.cmake.org/cmake/resources/software.html
|
https://cmake.org/download/
|
||||||
|
|
||||||
Next, unpack the package in your home directory, and go into the created
|
Next, unpack the package in your home directory, and go into the created
|
||||||
directory.
|
directory.
|
||||||
@@ -59,7 +59,7 @@ Note: You should also read the README and FAQ files!
|
|||||||
the file carefully. Using the default values is NOT a good idea, and will
|
the file carefully. Using the default values is NOT a good idea, and will
|
||||||
most likely not work!
|
most likely not work!
|
||||||
|
|
||||||
If you need help, you should visit http://forum.anope.org/ or #anope on
|
If you need help, you should visit https://forum.anope.org/ or #anope on
|
||||||
irc.anope.org. Provide *complete* error output, along with other relevant
|
irc.anope.org. Provide *complete* error output, along with other relevant
|
||||||
information eg. OS, compiler and C++ library versions.
|
information eg. OS, compiler and C++ library versions.
|
||||||
See the README file for more information.
|
See the README file for more information.
|
||||||
@@ -90,7 +90,7 @@ Note: You should also read the README and FAQ files!
|
|||||||
|
|
||||||
You may also try our interactive link maker, which is located at:
|
You may also try our interactive link maker, which is located at:
|
||||||
|
|
||||||
http://anope.org/ilm.php
|
https://www.anope.org/ilm.php
|
||||||
|
|
||||||
4) Starting Anope
|
4) Starting Anope
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -19,7 +19,7 @@ Note : Vous devrez également lire les fichiers README et FAQ !
|
|||||||
La première chose que vous devez faire est d'obtenir le package Anope
|
La première chose que vous devez faire est d'obtenir le package Anope
|
||||||
(si ce n'est déjà fait). Vous pouvez le trouver ici :
|
(si ce n'est déjà fait). Vous pouvez le trouver ici :
|
||||||
|
|
||||||
http://www.anope.org/
|
https://www.anope.org/
|
||||||
|
|
||||||
Anope nécessite cmake pour être compilé. Vous pouvez vérifier si CMake
|
Anope nécessite cmake pour être compilé. Vous pouvez vérifier si CMake
|
||||||
est déjà installé sur votre système avec la commande :
|
est déjà installé sur votre système avec la commande :
|
||||||
@@ -32,7 +32,7 @@ Note : Vous devrez également lire les fichiers README et FAQ !
|
|||||||
pourrez pas utiliser CMake Ă moins de l'installer vous-mĂŞme dans votre
|
pourrez pas utiliser CMake Ă moins de l'installer vous-mĂŞme dans votre
|
||||||
répertoire home. CMake peut être téléchargé ici :
|
répertoire home. CMake peut être téléchargé ici :
|
||||||
|
|
||||||
http://www.cmake.org/cmake/resources/software.html
|
https://cmake.org/download/
|
||||||
|
|
||||||
Ensuite, décompressez le package dans votre répertoire home, et allez
|
Ensuite, décompressez le package dans votre répertoire home, et allez
|
||||||
dans le répértoire qui vient d'être créé.
|
dans le répértoire qui vient d'être créé.
|
||||||
@@ -64,7 +64,7 @@ Note : Vous devrez également lire les fichiers README et FAQ !
|
|||||||
recommandée, et Anope ne fonctionnera probablement pas !
|
recommandée, et Anope ne fonctionnera probablement pas !
|
||||||
|
|
||||||
Si vous avez besoin d'aide, vous pouvez aller sur le site
|
Si vous avez besoin d'aide, vous pouvez aller sur le site
|
||||||
http://forum.anope.org/ ou le canal #anope sur irc.anope.org.
|
https://forum.anope.org/ ou le canal #anope sur irc.anope.org.
|
||||||
Fournissez *l'essemble* des erreurs qui apparaîssent, en plus de
|
Fournissez *l'essemble* des erreurs qui apparaîssent, en plus de
|
||||||
toutes informations utiles, comme les versions de votre OS, du
|
toutes informations utiles, comme les versions de votre OS, du
|
||||||
compilateur utilisé et de la librairie C++. Lisez le fichier README
|
compilateur utilisé et de la librairie C++. Lisez le fichier README
|
||||||
@@ -99,7 +99,7 @@ Note : Vous devrez également lire les fichiers README et FAQ !
|
|||||||
Vous pouvez également essayer notre créateur de bloc link interactif
|
Vous pouvez également essayer notre créateur de bloc link interactif
|
||||||
situé ici :
|
situé ici :
|
||||||
|
|
||||||
http://anope.org/ilm.php
|
https://www.anope.org/ilm.php
|
||||||
|
|
||||||
4) Mettre en route Anope
|
4) Mettre en route Anope
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -22,13 +22,13 @@ Anope Mutli Language Support
|
|||||||
|
|
||||||
2) Adding a new language
|
2) Adding a new language
|
||||||
|
|
||||||
Anope uses gettext (http://www.gnu.org/software/gettext/) to translate messages for users. To add a new language
|
Anope uses gettext (https://www.gnu.org/software/gettext/) to translate messages for users. To add a new language
|
||||||
install gettext and run `msginit -l language -o anope.language.po -i anope.pot`. For example if I was translating to
|
install gettext and run `msginit -l language -o anope.language.po -i anope.pot`. For example if I was translating to
|
||||||
Spanish I could run `msginit -l es_ES -o anope.es_ES.po -i anope.pot`. Open the newly generating .po file and start
|
Spanish I could run `msginit -l es_ES -o anope.es_ES.po -i anope.pot`. Open the newly generating .po file and start
|
||||||
translating. Once you are done simply rerun ./Config; make && make install and add the language to your services.conf.
|
translating. Once you are done simply rerun ./Config; make && make install and add the language to your services.conf.
|
||||||
Note that on Windows it is not quite this simple, windows.cpp must be edited and Anope recompiled and restarted.
|
Note that on Windows it is not quite this simple, windows.cpp must be edited and Anope recompiled and restarted.
|
||||||
|
|
||||||
Poedit (http://www.poedit.net/) is a popular po file editor, and we recommend using it or another editor designed to edit
|
Poedit (https://poedit.net/) is a popular po file editor, and we recommend using it or another editor designed to edit
|
||||||
po files (especially on Windows).
|
po files (especially on Windows).
|
||||||
|
|
||||||
If you have finished a language file translation and you want others to use it, please send it to team@anope.org
|
If you have finished a language file translation and you want others to use it, please send it to team@anope.org
|
||||||
|
|||||||
+3
-3
@@ -87,7 +87,7 @@ Anope Modules
|
|||||||
|
|
||||||
5) More Modules
|
5) More Modules
|
||||||
|
|
||||||
You can download more useful modules from http://modules.anope.org/. Just
|
You can download more useful modules from https://modules.anope.org/. Just
|
||||||
grab the module file (usually with a .cpp extension). Place the module
|
grab the module file (usually with a .cpp extension). Place the module
|
||||||
file in your modules (anope-1.9.x/modules/third) folder; although any of
|
file in your modules (anope-1.9.x/modules/third) folder; although any of
|
||||||
the other folders within the modules directory will work.
|
the other folders within the modules directory will work.
|
||||||
@@ -118,11 +118,11 @@ Anope Modules
|
|||||||
There are a number of useful documents on the Anope Wiki. The Anope Wiki
|
There are a number of useful documents on the Anope Wiki. The Anope Wiki
|
||||||
can be reached at:
|
can be reached at:
|
||||||
|
|
||||||
* http://wiki.anope.org/
|
* https://wiki.anope.org/
|
||||||
|
|
||||||
8) Modules Repository
|
8) Modules Repository
|
||||||
|
|
||||||
You can find modules at http://modules.anope.org
|
You can find modules at https://modules.anope.org/
|
||||||
|
|
||||||
These modules are 3rd party and as such are not supported by the Anope Team.
|
These modules are 3rd party and as such are not supported by the Anope Team.
|
||||||
Contact the Module Author directly with problems, not the Anope Team.
|
Contact the Module Author directly with problems, not the Anope Team.
|
||||||
|
|||||||
@@ -4,4 +4,3 @@ Highlighted News in Anope 1.9
|
|||||||
* Added in live updating SQL and the ability to execute commands through SQL
|
* Added in live updating SQL and the ability to execute commands through SQL
|
||||||
* Re-designed configuration file
|
* Re-designed configuration file
|
||||||
* Code refresh / rewrite into C++
|
* Code refresh / rewrite into C++
|
||||||
|
|
||||||
|
|||||||
+10
-12
@@ -1,16 +1,14 @@
|
|||||||
Anope -- a set of IRC services for IRC networks
|
Anope -- a set of IRC services for IRC networks
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
||||||
Anope is 2003-2014 Anope Team <team@anope.org>.
|
Anope is 2003-2019 Anope Team <team@anope.org>.
|
||||||
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
|
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
|
||||||
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
|
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
|
||||||
|
|
||||||
This program is free but copyrighted software; see the file COPYING for
|
This program is free but copyrighted software; see the file COPYING for
|
||||||
details.
|
details.
|
||||||
|
|
||||||
Information about Anope may be found at http://www.anope.org/
|
Information about Anope may be found at https://www.anope.org/
|
||||||
Information about Epona may be found at http://www.epona.org/
|
|
||||||
Information about Services may be found at http://www.ircservices.esper.net/
|
|
||||||
|
|
||||||
Table of Contents
|
Table of Contents
|
||||||
-----------------
|
-----------------
|
||||||
@@ -19,7 +17,7 @@ Table of Contents
|
|||||||
3) Installation
|
3) Installation
|
||||||
4) Command Line Options
|
4) Command Line Options
|
||||||
5) Messages Translation
|
5) Messages Translation
|
||||||
6) Contact and Mailing List
|
6) Contact
|
||||||
|
|
||||||
1) Credits
|
1) Credits
|
||||||
|
|
||||||
@@ -107,11 +105,11 @@ Table of Contents
|
|||||||
|
|
||||||
Anope Translations:
|
Anope Translations:
|
||||||
|
|
||||||
* Robby <robby@chat.be> (nl_NL)
|
* Robby <robby@chatbelgie.be> (nl_NL)
|
||||||
* Kein <kein-of@yandex.ru> (ru_RU)
|
* Kein <kein-of@yandex.ru> (ru_RU)
|
||||||
* Maik Funke <Han@mefalcon.org> (de_DE)
|
* Maik Funke <Han@mefalcon.org> (de_DE)
|
||||||
* Isaac Fontal <i_fontal@hotmail.com> (es_ES)
|
* Isaac Fontal <i_fontal@hotmail.com> (es_ES)
|
||||||
* Janos Kapitany <sarkanyka@cjbchat.hu> (hu_HU)
|
* Janos Kapitany <sarkanyka@cjbchat.hu> (hu_HU)
|
||||||
* Szymon S'wierkosz <szymek@adres.pl> (pl_PL)
|
* Szymon S'wierkosz <szymek@adres.pl> (pl_PL)
|
||||||
* Christopher N. <saka@epiknet.org> (fr_FR)
|
* Christopher N. <saka@epiknet.org> (fr_FR)
|
||||||
* Yusuf Kurekci <ysfm.20@gmail.com> (tr_TR)
|
* Yusuf Kurekci <ysfm.20@gmail.com> (tr_TR)
|
||||||
@@ -170,12 +168,12 @@ Table of Contents
|
|||||||
|
|
||||||
* Bahamut 1.4.27 or later (including 1.8)
|
* Bahamut 1.4.27 or later (including 1.8)
|
||||||
* Charybdis 3.4 or later
|
* Charybdis 3.4 or later
|
||||||
* Hybrid 8.1 or later
|
* Hybrid 8.2 or later
|
||||||
* InspIRCd 1.2 or 2.0
|
* InspIRCd 1.2 or later
|
||||||
* ngIRCd 19.2 or later
|
* ngIRCd 19.2 or later
|
||||||
* Plexus 3 or later
|
* Plexus 3 or later
|
||||||
* Ratbox 2.0.6 or later
|
* Ratbox 2.0.6 or later
|
||||||
* UnrealIRCd 3.2 or later
|
* UnrealIRCd 3.2 or 4
|
||||||
|
|
||||||
Anope could also work with some of the daemons derived by the ones listed
|
Anope could also work with some of the daemons derived by the ones listed
|
||||||
above, but there's no support for them if they work or don't work.
|
above, but there's no support for them if they work or don't work.
|
||||||
@@ -242,7 +240,7 @@ Table of Contents
|
|||||||
6) Contact
|
6) Contact
|
||||||
|
|
||||||
For announcements and discussions about Anope, please visit our
|
For announcements and discussions about Anope, please visit our
|
||||||
Portal and Forums at http://www.anope.org/ -- make sure you register
|
Portal and Forums at https://www.anope.org/ -- make sure you register
|
||||||
yourself to get full benefits.
|
yourself to get full benefits.
|
||||||
|
|
||||||
If you read the documentation carefully, and didn't find the answer to
|
If you read the documentation carefully, and didn't find the answer to
|
||||||
@@ -254,7 +252,7 @@ Table of Contents
|
|||||||
The more precise you are the sooner you'll be likely to get an answer.
|
The more precise you are the sooner you'll be likely to get an answer.
|
||||||
|
|
||||||
If you think you found a bug, add it to the bug tracking system
|
If you think you found a bug, add it to the bug tracking system
|
||||||
(http://bugs.anope.org) and - again - be as precise as possible. Also say
|
(https://bugs.anope.org/) and - again - be as precise as possible. Also say
|
||||||
whether the bug happens always or under what circumstances, and anything
|
whether the bug happens always or under what circumstances, and anything
|
||||||
that could be useful to track your bug down. If you wrote a patch, send
|
that could be useful to track your bug down. If you wrote a patch, send
|
||||||
it over. :)
|
it over. :)
|
||||||
|
|||||||
+4
-4
@@ -1,8 +1,8 @@
|
|||||||
Starting in Anope 1.9.9, Anope has Redis database support (http://redis.io/).
|
Starting in Anope 1.9.9, Anope has Redis database support (https://redis.io/).
|
||||||
This document explains the data structure used by Anope, and explains how
|
This document explains the data structure used by Anope, and explains how
|
||||||
keyspace notification works.
|
keyspace notification works.
|
||||||
|
|
||||||
This is not a tutorial on how to use Redis, see http://redis.io/documentation
|
This is not a tutorial on how to use Redis, see https://redis.io/documentation
|
||||||
for that.
|
for that.
|
||||||
|
|
||||||
Table of Contents
|
Table of Contents
|
||||||
@@ -70,7 +70,7 @@ Table of Contents
|
|||||||
2) Keyspace notifications
|
2) Keyspace notifications
|
||||||
|
|
||||||
Redis 2.7 (unstable) and 2.8 (stable) and newer support keyspace notifications
|
Redis 2.7 (unstable) and 2.8 (stable) and newer support keyspace notifications
|
||||||
(http://redis.io/topics/notifications). This allows Redis to notify Anope of
|
(https://redis.io/topics/notifications). This allows Redis to notify Anope of
|
||||||
any external changes to objects in the database. Once notified, Anope will
|
any external changes to objects in the database. Once notified, Anope will
|
||||||
immediately update the object. Otherwise, Anope keeps all objects in memory
|
immediately update the object. Otherwise, Anope keeps all objects in memory
|
||||||
and will not regularly read from the databaes once started.
|
and will not regularly read from the databaes once started.
|
||||||
@@ -152,7 +152,7 @@ Table of Contents
|
|||||||
HMSET hash:BotInfo:8 nick redis user redis host services.anope.org realname "Services for IRC Networks"
|
HMSET hash:BotInfo:8 nick redis user redis host services.anope.org realname "Services for IRC Networks"
|
||||||
|
|
||||||
Note if you are using HSET instead of HMSET you will need to use a transaction, as shown in the above example.
|
Note if you are using HSET instead of HMSET you will need to use a transaction, as shown in the above example.
|
||||||
If you are watching your services logs you will immediatly see:
|
If you are watching your services logs you will immediately see:
|
||||||
|
|
||||||
USERS: redis!redis@services.anope.org (Services for IRC Networks) connected to the network (services.anope.org)
|
USERS: redis!redis@services.anope.org (Services for IRC Networks) connected to the network (services.anope.org)
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -20,7 +20,6 @@ Anope Bundled Tools
|
|||||||
address. This should generate a log file of what happened when it tried
|
address. This should generate a log file of what happened when it tried
|
||||||
to connect to the SMTP server.
|
to connect to the SMTP server.
|
||||||
|
|
||||||
Credits:
|
Credits:
|
||||||
Originally written by Dominick Meglio <codemastr@unrealircd.com>
|
Originally written by Dominick Meglio <codemastr@unrealircd.com>
|
||||||
Ported to *nix by Trystan Scott Lee <trystan@nomadirc.net>
|
Ported to *nix by Trystan Scott Lee <trystan@nomadirc.net>
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -18,10 +18,10 @@ Anope for Windows
|
|||||||
1) Download the required files:
|
1) Download the required files:
|
||||||
|
|
||||||
* Current Anope source:
|
* Current Anope source:
|
||||||
http://sourceforge.net/project/showfiles.php?group_id=94081
|
https://github.com/anope/anope/releases
|
||||||
|
|
||||||
* CMake:
|
* CMake:
|
||||||
http://www.cmake.org/cmake/resources/software.html
|
https://cmake.org/download/
|
||||||
|
|
||||||
(NOTE: When installing, tell CMake to add itself to the PATH.)
|
(NOTE: When installing, tell CMake to add itself to the PATH.)
|
||||||
|
|
||||||
@@ -159,4 +159,3 @@ Anope for Windows
|
|||||||
Anope's Windows Installer was made using:
|
Anope's Windows Installer was made using:
|
||||||
|
|
||||||
* NSIS 2.20 <http://nsis.sourceforge.net>
|
* NSIS 2.20 <http://nsis.sourceforge.net>
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -7,7 +7,7 @@ checkAuthentication - Takes two parameters, an account name and a password. Chec
|
|||||||
is correct for the account name, useful for making login pages on websites.
|
is correct for the account name, useful for making login pages on websites.
|
||||||
|
|
||||||
command - Takes three parameters, a service name (BotServ, ChanServ, NickServ), a user name (whether online or not), and the command
|
command - Takes three parameters, a service name (BotServ, ChanServ, NickServ), a user name (whether online or not), and the command
|
||||||
to execute. This will execute a the given command to Anope using the given service name. If the user given is online, the
|
to execute. This will execute the given command to Anope using the given service name. If the user given is online, the
|
||||||
command reply will go to them, if not it is returned by XMLRPC.
|
command reply will go to them, if not it is returned by XMLRPC.
|
||||||
|
|
||||||
stats - Takes no parameters, returns miscellaneous stats that can be found in the /operserv stats command.
|
stats - Takes no parameters, returns miscellaneous stats that can be found in the /operserv stats command.
|
||||||
@@ -17,10 +17,13 @@ channel - Takes one parameter, a channel name, and returns real time information
|
|||||||
|
|
||||||
user - Takes one parameter, a user name, and returns real time information regarding that user.
|
user - Takes one parameter, a user name, and returns real time information regarding that user.
|
||||||
|
|
||||||
|
opers - Takes no parameters, returns opertypes, their privileges and commands.
|
||||||
|
|
||||||
|
notice - Takes three parameters, source user, target user, and message. Sends a message to the user.
|
||||||
|
|
||||||
XMLRPC was designed to be used with db_sql, and will not return any information that can be pulled from the SQL
|
XMLRPC was designed to be used with db_sql, and will not return any information that can be pulled from the SQL
|
||||||
database, such as accounts and registered channel information. It is instead used for pulling realtime data such
|
database, such as accounts and registered channel information. It is instead used for pulling realtime data such
|
||||||
as users and channels currently online. For examples on how to use these calls in PHP, see xmlrpc.php in docs/XMLRPC.
|
as users and channels currently online. For examples on how to use these calls in PHP, see xmlrpc.php in docs/XMLRPC.
|
||||||
|
|
||||||
Also note that the parameter named "id" is reserved for query ID. If you pass a query to Anope containing a value for id. it will
|
Also note that the parameter named "id" is reserved for query ID. If you pass a query to Anope containing a value for id. it will
|
||||||
be stored by Anope and the same id will be passed back in the result.
|
be stored by Anope and the same id will be passed back in the result.
|
||||||
|
|
||||||
|
|||||||
+126
-71
@@ -1,90 +1,145 @@
|
|||||||
<?php
|
<?php
|
||||||
/* XMLRPC Functions
|
|
||||||
|
/**
|
||||||
|
* XMLRPC Functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class AnopeXMLRPC
|
class AnopeXMLRPC
|
||||||
{
|
{
|
||||||
private $Host;
|
/**
|
||||||
|
* The XMLRPC host
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $host;
|
||||||
|
|
||||||
function __construct($Host)
|
/**
|
||||||
{
|
* Initiate a new AnopeXMLRPC instance
|
||||||
$this->Host = $Host;
|
*
|
||||||
}
|
* @param $host
|
||||||
|
*/
|
||||||
|
public function __construct($host)
|
||||||
|
{
|
||||||
|
$this->host = $host;
|
||||||
|
}
|
||||||
|
|
||||||
/** Run an XMLRPC command. Name should be a query name and params an array of parameters, eg:
|
/**
|
||||||
* $this->RunXMLRPC("checkAuthentication", array("adam", "qwerty"));
|
* Run an XMLRPC command. Name should be a query name and params an array of parameters, eg:
|
||||||
* If successful returns back an array of useful information.
|
* $this->raw("checkAuthentication", ["adam", "qwerty"]);
|
||||||
*
|
* If successful returns back an array of useful information.
|
||||||
* Note that $params["id"] is reserved for query ID, you may set it to something if you wish.
|
*
|
||||||
* If you do, the same ID will be passed back with the reply from Anope.
|
* Note that $params["id"] is reserved for query ID, you may set it to something if you wish.
|
||||||
*/
|
* If you do, the same ID will be passed back with the reply from Anope.
|
||||||
function RunXMLRPC($name, $params)
|
*
|
||||||
{
|
* @param $name
|
||||||
$xmlquery = xmlrpc_encode_request($name, $params);
|
* @param $params
|
||||||
$context = stream_context_create(array("http" => array(
|
* @return array|null
|
||||||
"method" => "POST",
|
*/
|
||||||
"header" => "Content-Type: text/xml",
|
public function run($name, $params)
|
||||||
"content" => $xmlquery)));
|
{
|
||||||
|
$xmlquery = xmlrpc_encode_request($name, $params);
|
||||||
|
$context = stream_context_create(["http" => [
|
||||||
|
"method" => "POST",
|
||||||
|
"header" => "Content-Type: text/xml",
|
||||||
|
"content" => $xmlquery]]);
|
||||||
|
|
||||||
$inbuf = file_get_contents($this->Host, false, $context);
|
$inbuf = file_get_contents($this->host, false, $context);
|
||||||
$response = xmlrpc_decode($inbuf);
|
$response = xmlrpc_decode($inbuf);
|
||||||
|
|
||||||
if (isset($response[0]))
|
if ($response) {
|
||||||
return $response[0];
|
return $response;
|
||||||
return NULL;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/** Do Command on Service as User, eg:
|
return null;
|
||||||
* $anope->DoCommand("ChanServ", "Adam", "REGISTER #adam");
|
}
|
||||||
* Returns an array of information regarding the command execution, if
|
|
||||||
* If 'online' is set to yes, then the reply to the command was sent to the user on IRC.
|
|
||||||
* If 'online' is set to no, then the reply to the command is in the array member 'return'
|
|
||||||
*/
|
|
||||||
function DoCommand($Service, $User, $Command)
|
|
||||||
{
|
|
||||||
return $this->RunXMLRPC("command", array($Service, $User, $Command));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Check an account/nick name and password to see if they are valid
|
/**
|
||||||
* Returns the account display name if valid
|
* Do Command on Service as User, eg:
|
||||||
*/
|
* $anope->command("ChanServ", "Adam", "REGISTER #adam");
|
||||||
function CheckAuthentication($Account, $Pass)
|
* Returns an array of information regarding the command execution, if
|
||||||
{
|
* If 'online' is set to yes, then the reply to the command was sent to the user on IRC.
|
||||||
$ret = $this->RunXMLRPC("checkAuthentication", array($Account, $Pass));
|
* If 'online' is set to no, then the reply to the command is in the array member 'return'
|
||||||
|
*
|
||||||
|
* @param $service
|
||||||
|
* @param $user
|
||||||
|
* @param $command
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function command($service, $user, $command)
|
||||||
|
{
|
||||||
|
return $this->run("command", [$service, $user, $command]);
|
||||||
|
}
|
||||||
|
|
||||||
if ($ret && $ret["result"] == "Success")
|
/**
|
||||||
return $ret["account"];
|
* Check an account/nick name and password to see if they are valid
|
||||||
return NULL;
|
* Returns the account display name if valid
|
||||||
}
|
*
|
||||||
|
* @param $account
|
||||||
|
* @param $pass
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public function auth($account, $pass)
|
||||||
|
{
|
||||||
|
$ret = $this->run("checkAuthentication", [$account, $pass]);
|
||||||
|
|
||||||
/* Returns an array of misc stats regarding Anope
|
if ($ret && $ret["result"] == "Success") {
|
||||||
*/
|
return $ret["account"];
|
||||||
function DoStats()
|
}
|
||||||
{
|
|
||||||
return $this->RunXMLRPC("stats", NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Look up data for a channel
|
return null;
|
||||||
* Returns an array containing channel information, or an array of size one
|
}
|
||||||
* (just containing the name) if the channel does not exist
|
|
||||||
*/
|
|
||||||
function DoChannel($Channel)
|
|
||||||
{
|
|
||||||
return $this->RunXMLRPC("channel", array($Channel));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Like DoChannel(), but different.
|
/**
|
||||||
*/
|
* Returns an array of misc stats regarding Anope
|
||||||
function DoUser($User)
|
*
|
||||||
{
|
* @return array|null
|
||||||
return $this->RunXMLRPC("user", array($User));
|
*/
|
||||||
}
|
public function stats()
|
||||||
|
{
|
||||||
|
return $this->run("stats", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Look up data for a channel
|
||||||
|
* Returns an array containing channel information, or an array of size one
|
||||||
|
* (just containing the name) if the channel does not exist
|
||||||
|
*
|
||||||
|
* @param $channel
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function channel($channel)
|
||||||
|
{
|
||||||
|
return $this->run("channel", [$channel]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sent a notice to a user.
|
||||||
|
* Returns an array containing channel information, or an array of size one
|
||||||
|
* (just containing the name) if the channel does not exist
|
||||||
|
*
|
||||||
|
* @param $source
|
||||||
|
* @param $target
|
||||||
|
* @param $message
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function notice($source, $target, $message)
|
||||||
|
{
|
||||||
|
return $this->run("notice", [$source, $target, $message]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Like channel(), but different.
|
||||||
|
*
|
||||||
|
* @param $user
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
|
public function user($user)
|
||||||
|
{
|
||||||
|
return $this->run("user", [$user]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$anopexmlrpc = new AnopeXMLRPC("http://127.0.0.1:8080/xmlrpc");
|
$anope = new AnopeXMLRPC("http://127.0.0.1:8080/xmlrpc");
|
||||||
|
|
||||||
?>
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
#
|
#
|
||||||
# Script taken from InspIRCd, www.inspircd.org
|
# Script taken from InspIRCd, https://www.inspircd.org/
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
# 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
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
# details.
|
# details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
@@ -148,12 +148,7 @@ while (1)
|
|||||||
|
|
||||||
if ($input eq "q") {
|
if ($input eq "q") {
|
||||||
if (-e "build/CMakeFiles") {
|
if (-e "build/CMakeFiles") {
|
||||||
if (-e "cmake-bin") {
|
system("cmake", "build/.");
|
||||||
my $cmake_path = `find cmake-bin -name cmake -print0`;
|
|
||||||
system($cmake_path, "build/.");
|
|
||||||
} else {
|
|
||||||
system("cmake", "build/.");
|
|
||||||
}
|
|
||||||
print "\nNow cd build, then run make to build Anope.\n\n";
|
print "\nNow cd build, then run make to build Anope.\n\n";
|
||||||
} else {
|
} else {
|
||||||
print "\nBuild directory not found. You should run ./Config now.\n\n"
|
print "\nBuild directory not found. You should run ./Config now.\n\n"
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
# Set version.cpp to use C++ as well as set its compile flags
|
# Set version.cpp to use C++ as well as set its compile flags
|
||||||
set_source_files_properties(version.cpp PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}")
|
set_source_files_properties(version.cpp PROPERTIES LANGUAGE CXX COMPILE_FLAGS "${CXXFLAGS}")
|
||||||
# Generate version executable to modify version.h, setting it's linker flags as well
|
# Generate version-bin executable to modify version.h, setting it's linker flags as well
|
||||||
add_executable(version version.cpp)
|
add_executable(version-bin version.cpp)
|
||||||
set_target_properties(version PROPERTIES LINKER_LANGUAGE CXX LINK_FLAGS "${LDFLAGS}")
|
set_target_properties(version-bin PROPERTIES LINKER_LANGUAGE CXX LINK_FLAGS "${LDFLAGS}")
|
||||||
get_target_property(version_BINARY version LOCATION)
|
get_target_property(version_BINARY version-bin LOCATION)
|
||||||
# Modify version.h from the above executable, with dependencies to version.cpp
|
# Modify version.h from the above executable, with dependencies to version.cpp
|
||||||
# and all of the source files in the main build
|
# and all of the source files in the main build
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_build
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_build
|
||||||
COMMAND ${version_BINARY} ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h
|
COMMAND ${version_BINARY} ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h
|
||||||
DEPENDS version ${SRC_SRCS}
|
DEPENDS version-bin ${SRC_SRCS}
|
||||||
)
|
)
|
||||||
# Add version to list of files for CPack to ignore
|
# Add version-bin to list of files for CPack to ignore
|
||||||
get_filename_component(version_BINARY ${version_BINARY} NAME)
|
get_filename_component(version_BINARY ${version_BINARY} NAME)
|
||||||
add_to_cpack_ignored_files("${version_BINARY}$" TRUE)
|
add_to_cpack_ignored_files("${version_BINARY}$" TRUE)
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
@@ -61,4 +61,4 @@ if(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX)
|
|||||||
endif(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX)
|
endif(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|
||||||
# Add a custom target to the above file
|
# Add a custom target to the above file
|
||||||
add_custom_target(headers DEPENDS version ${CMAKE_CURRENT_BINARY_DIR}/version_build ${PCH_SOURCES_GCH})
|
add_custom_target(headers DEPENDS version-bin ${CMAKE_CURRENT_BINARY_DIR}/version_build ${PCH_SOURCES_GCH})
|
||||||
|
|||||||
+11
-14
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ACCESS_H
|
#ifndef ACCESS_H
|
||||||
@@ -79,12 +78,7 @@ class CoreExport ChanAccess : public Serializable
|
|||||||
Serialize::Reference<NickCore> nc;
|
Serialize::Reference<NickCore> nc;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef std::multimap<const ChanAccess *, const ChanAccess *> Set;
|
typedef std::vector<ChanAccess *> Path;
|
||||||
/* shows the 'path' taken to determine if an access entry matches a user
|
|
||||||
* .first are access entries checked
|
|
||||||
* .second are access entries which match
|
|
||||||
*/
|
|
||||||
typedef std::pair<Set, Set> Path;
|
|
||||||
|
|
||||||
/* The provider that created this access entry */
|
/* The provider that created this access entry */
|
||||||
AccessProvider *provider;
|
AccessProvider *provider;
|
||||||
@@ -104,12 +98,14 @@ class CoreExport ChanAccess : public Serializable
|
|||||||
void Serialize(Serialize::Data &data) const anope_override;
|
void Serialize(Serialize::Data &data) const anope_override;
|
||||||
static Serializable* Unserialize(Serializable *obj, Serialize::Data &);
|
static Serializable* Unserialize(Serializable *obj, Serialize::Data &);
|
||||||
|
|
||||||
|
static const unsigned int MAX_DEPTH = 4;
|
||||||
|
|
||||||
/** Check if this access entry matches the given user or account
|
/** Check if this access entry matches the given user or account
|
||||||
* @param u The user
|
* @param u The user
|
||||||
* @param nc The account
|
* @param nc The account
|
||||||
* @param p The path to the access object which matches will be put here
|
* @param next Next channel to check if any
|
||||||
*/
|
*/
|
||||||
virtual bool Matches(const User *u, const NickCore *nc, Path &p) const;
|
virtual bool Matches(const User *u, const NickCore *nc, ChannelInfo* &next) const;
|
||||||
|
|
||||||
/** Check if this access entry has the given privilege.
|
/** Check if this access entry has the given privilege.
|
||||||
* @param name The privilege name
|
* @param name The privilege name
|
||||||
@@ -137,13 +133,13 @@ class CoreExport ChanAccess : public Serializable
|
|||||||
/* A group of access entries. This is used commonly, for example with ChannelInfo::AccessFor,
|
/* A group of access entries. This is used commonly, for example with ChannelInfo::AccessFor,
|
||||||
* to show what access a user has on a channel because users can match multiple access entries.
|
* to show what access a user has on a channel because users can match multiple access entries.
|
||||||
*/
|
*/
|
||||||
class CoreExport AccessGroup : public std::vector<ChanAccess *>
|
class CoreExport AccessGroup
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/* access entries + paths */
|
||||||
|
std::vector<ChanAccess::Path> paths;
|
||||||
/* Channel these access entries are on */
|
/* Channel these access entries are on */
|
||||||
const ChannelInfo *ci;
|
const ChannelInfo *ci;
|
||||||
/* Path from these entries to other entries that they depend on */
|
|
||||||
ChanAccess::Path path;
|
|
||||||
/* Account these entries affect, if any */
|
/* Account these entries affect, if any */
|
||||||
const NickCore *nc;
|
const NickCore *nc;
|
||||||
/* super_admin always gets all privs. founder is a special case where ci->founder == nc */
|
/* super_admin always gets all privs. founder is a special case where ci->founder == nc */
|
||||||
@@ -171,7 +167,8 @@ class CoreExport AccessGroup : public std::vector<ChanAccess *>
|
|||||||
bool operator<(const AccessGroup &other) const;
|
bool operator<(const AccessGroup &other) const;
|
||||||
bool operator>=(const AccessGroup &other) const;
|
bool operator>=(const AccessGroup &other) const;
|
||||||
bool operator<=(const AccessGroup &other) const;
|
bool operator<=(const AccessGroup &other) const;
|
||||||
|
|
||||||
|
inline bool empty() const { return paths.empty(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ACCOUNT_H
|
#ifndef ACCOUNT_H
|
||||||
@@ -247,6 +246,7 @@ class CoreExport IdentifyRequest
|
|||||||
virtual void OnSuccess() = 0;
|
virtual void OnSuccess() = 0;
|
||||||
virtual void OnFail() = 0;
|
virtual void OnFail() = 0;
|
||||||
|
|
||||||
|
Module *GetOwner() const { return owner; }
|
||||||
const Anope::string &GetAccount() const { return account; }
|
const Anope::string &GetAccount() const { return account; }
|
||||||
const Anope::string &GetPassword() const { return password; }
|
const Anope::string &GetPassword() const { return password; }
|
||||||
|
|
||||||
|
|||||||
+6
-5
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ANOPE_H
|
#ifndef ANOPE_H
|
||||||
@@ -337,7 +336,9 @@ namespace Anope
|
|||||||
template<typename T> class multimap : public std::multimap<string, T, ci::less> { };
|
template<typename T> class multimap : public std::multimap<string, T, ci::less> { };
|
||||||
template<typename T> class hash_map : public TR1NS::unordered_map<string, T, hash_ci, compare> { };
|
template<typename T> class hash_map : public TR1NS::unordered_map<string, T, hash_ci, compare> { };
|
||||||
|
|
||||||
|
#ifndef REPRODUCIBLE_BUILD
|
||||||
static const char *const compiled = __TIME__ " " __DATE__;
|
static const char *const compiled = __TIME__ " " __DATE__;
|
||||||
|
#endif
|
||||||
|
|
||||||
/** The time Anope started.
|
/** The time Anope started.
|
||||||
*/
|
*/
|
||||||
@@ -543,7 +544,7 @@ namespace Anope
|
|||||||
extern CoreExport Anope::string Random(size_t len);
|
extern CoreExport Anope::string Random(size_t len);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** sepstream allows for splitting token seperated lists.
|
/** sepstream allows for splitting token separated lists.
|
||||||
* Each successive call to sepstream::GetToken() returns
|
* Each successive call to sepstream::GetToken() returns
|
||||||
* the next token, until none remain, at which point the method returns
|
* the next token, until none remain, at which point the method returns
|
||||||
* an empty string.
|
* an empty string.
|
||||||
@@ -615,7 +616,7 @@ class CoreExport sepstream
|
|||||||
bool StreamEnd();
|
bool StreamEnd();
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A derived form of sepstream, which seperates on commas
|
/** A derived form of sepstream, which separates on commas
|
||||||
*/
|
*/
|
||||||
class commasepstream : public sepstream
|
class commasepstream : public sepstream
|
||||||
{
|
{
|
||||||
@@ -625,7 +626,7 @@ class commasepstream : public sepstream
|
|||||||
commasepstream(const Anope::string &source, bool allowempty = false) : sepstream(source, ',', allowempty) { }
|
commasepstream(const Anope::string &source, bool allowempty = false) : sepstream(source, ',', allowempty) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A derived form of sepstream, which seperates on spaces
|
/** A derived form of sepstream, which separates on spaces
|
||||||
*/
|
*/
|
||||||
class spacesepstream : public sepstream
|
class spacesepstream : public sepstream
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-4
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2011 Adam <Adam@anope.org>
|
* (C) 2008-2011 Adam <Adam@anope.org>
|
||||||
* Copyright (C) 2008-2014 Anope Team <team@anope.org>
|
* (C) 2008-2019 Anope Team <team@anope.org>
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BASE_H
|
#ifndef BASE_H
|
||||||
@@ -142,4 +141,3 @@ class Reference : public ReferenceBase
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // BASE_H
|
#endif // BASE_H
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
||||||
* Copyright (C) 2008-2014 Anope Team <team@anope.org>
|
* (C) 2008-2019 Anope Team <team@anope.org>
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BOTS_H
|
#ifndef BOTS_H
|
||||||
|
|||||||
+8
-3
@@ -1,10 +1,9 @@
|
|||||||
/* Channel support
|
/* Channel support
|
||||||
*
|
*
|
||||||
* (C) 2008-2014 Anope Team
|
* (C) 2008-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CHANNELS_H
|
#ifndef CHANNELS_H
|
||||||
@@ -32,6 +31,8 @@ struct ChanUserContainer : public Extensible
|
|||||||
|
|
||||||
class CoreExport Channel : public Base, public Extensible
|
class CoreExport Channel : public Base, public Extensible
|
||||||
{
|
{
|
||||||
|
static std::vector<Channel *> deleting;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef std::multimap<Anope::string, Anope::string> ModeList;
|
typedef std::multimap<Anope::string, Anope::string> ModeList;
|
||||||
private:
|
private:
|
||||||
@@ -59,7 +60,7 @@ class CoreExport Channel : public Base, public Extensible
|
|||||||
Anope::string topic;
|
Anope::string topic;
|
||||||
/* Who set the topic */
|
/* Who set the topic */
|
||||||
Anope::string topic_setter;
|
Anope::string topic_setter;
|
||||||
/* The timestamp associated with the topic. Not necessarually anywhere close to Anope::CurTime.
|
/* The timestamp associated with the topic. Not necessarily anywhere close to Anope::CurTime.
|
||||||
* This is the time the topic was *originally set*. When we restore the topic we want to change the TS back
|
* This is the time the topic was *originally set*. When we restore the topic we want to change the TS back
|
||||||
* to this, but we can only do this on certain IRCds.
|
* to this, but we can only do this on certain IRCds.
|
||||||
*/
|
*/
|
||||||
@@ -300,6 +301,10 @@ class CoreExport Channel : public Base, public Extensible
|
|||||||
* @param ts The time the channel was created
|
* @param ts The time the channel was created
|
||||||
*/
|
*/
|
||||||
static Channel *FindOrCreate(const Anope::string &name, bool &created, time_t ts = Anope::CurTime);
|
static Channel *FindOrCreate(const Anope::string &name, bool &created, time_t ts = Anope::CurTime);
|
||||||
|
|
||||||
|
void QueueForDeletion();
|
||||||
|
|
||||||
|
static void DeleteChannels();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CHANNELS_H
|
#endif // CHANNELS_H
|
||||||
|
|||||||
+3
-1
@@ -1,6 +1,6 @@
|
|||||||
/* Declarations for command data.
|
/* Declarations for command data.
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -59,6 +59,8 @@ class CoreExport CommandSource
|
|||||||
public:
|
public:
|
||||||
/* The account executing the command */
|
/* The account executing the command */
|
||||||
Reference<NickCore> nc;
|
Reference<NickCore> nc;
|
||||||
|
/* for web clients */
|
||||||
|
Anope::string ip;
|
||||||
/* Where the reply should go */
|
/* Where the reply should go */
|
||||||
CommandReply *reply;
|
CommandReply *reply;
|
||||||
/* Channel the command was executed on (fantasy) */
|
/* Channel the command was executed on (fantasy) */
|
||||||
|
|||||||
+2
-2
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CONFIG_H
|
#ifndef CONFIG_H
|
||||||
@@ -79,6 +78,7 @@ namespace Configuration
|
|||||||
File(const Anope::string &, bool);
|
File(const Anope::string &, bool);
|
||||||
~File();
|
~File();
|
||||||
const Anope::string &GetName() const;
|
const Anope::string &GetName() const;
|
||||||
|
Anope::string GetPath() const;
|
||||||
|
|
||||||
bool IsOpen() const;
|
bool IsOpen() const;
|
||||||
bool Open();
|
bool Open();
|
||||||
|
|||||||
+1
-4
@@ -1,16 +1,14 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
class AccessGroup;
|
class AccessGroup;
|
||||||
class AutoKick;
|
class AutoKick;
|
||||||
class BotInfo;
|
class BotInfo;
|
||||||
@@ -53,4 +51,3 @@ struct MemoInfo;
|
|||||||
struct ModeLock;
|
struct ModeLock;
|
||||||
struct Oper;
|
struct Oper;
|
||||||
namespace SASL { struct Message; }
|
namespace SASL { struct Message; }
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef EXTENSIBLE_H
|
#ifndef EXTENSIBLE_H
|
||||||
@@ -40,6 +39,8 @@ class CoreExport Extensible
|
|||||||
|
|
||||||
virtual ~Extensible();
|
virtual ~Extensible();
|
||||||
|
|
||||||
|
void UnsetExtensibles();
|
||||||
|
|
||||||
template<typename T> T* GetExt(const Anope::string &name) const;
|
template<typename T> T* GetExt(const Anope::string &name) const;
|
||||||
bool HasExt(const Anope::string &name) const;
|
bool HasExt(const Anope::string &name) const;
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Copyright (C) 2002-2011 InspIRCd Development Team
|
* (C) 2002-2011 InspIRCd Development Team
|
||||||
* Copyright (C) 2009-2014 Anope Team <team@anope.org>
|
* (C) 2009-2019 Anope Team <team@anope.org>
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef HASHCOMP_H
|
#ifndef HASHCOMP_H
|
||||||
@@ -123,7 +122,7 @@ namespace ci
|
|||||||
* @param s1 String to find in
|
* @param s1 String to find in
|
||||||
* @param n Position to search up to
|
* @param n Position to search up to
|
||||||
* @param c Character to search for
|
* @param c Character to search for
|
||||||
* @return Pointer to the first occurance of c in s1
|
* @return Pointer to the first occurrence of c in s1
|
||||||
*/
|
*/
|
||||||
static const char *find(const char *s1, int n, char c);
|
static const char *find(const char *s1, int n, char c);
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-3
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2008-2014 Anope Team
|
* (C) 2008-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "anope.h"
|
#include "anope.h"
|
||||||
@@ -126,4 +125,3 @@ namespace Language
|
|||||||
#define HOST_SET_IDENTTOOLONG _("Error! The vHost ident is too long, please use an ident shorter than %d characters.")
|
#define HOST_SET_IDENTTOOLONG _("Error! The vHost ident is too long, please use an ident shorter than %d characters.")
|
||||||
#define HOST_NOT_ASSIGNED _("Please contact an Operator to get a vHost assigned to this nick.")
|
#define HOST_NOT_ASSIGNED _("Please contact an Operator to get a vHost assigned to this nick.")
|
||||||
#define HOST_NO_VIDENT _("Your IRCd does not support vIdent's, if this is incorrect, please report this as a possible bug")
|
#define HOST_NO_VIDENT _("Your IRCd does not support vIdent's, if this is incorrect, please report this as a possible bug")
|
||||||
|
|
||||||
|
|||||||
+2
-4
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef LISTS_H
|
#ifndef LISTS_H
|
||||||
@@ -52,7 +51,7 @@ class CoreExport NumberList
|
|||||||
virtual void HandleNumber(unsigned number);
|
virtual void HandleNumber(unsigned number);
|
||||||
|
|
||||||
/** Called when there is an error with the numbered list
|
/** Called when there is an error with the numbered list
|
||||||
* Return false to immediatly stop processing the list and return
|
* Return false to immediately stop processing the list and return
|
||||||
* This is all done before we start calling HandleNumber, so no numbers will have been processed yet
|
* This is all done before we start calling HandleNumber, so no numbers will have been processed yet
|
||||||
* @param list The list
|
* @param list The list
|
||||||
* @return false to stop processing
|
* @return false to stop processing
|
||||||
@@ -93,4 +92,3 @@ class CoreExport InfoFormatter
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // LISTS_H
|
#endif // LISTS_H
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef LOGGER_H
|
#ifndef LOGGER_H
|
||||||
@@ -143,4 +142,3 @@ class CoreExport LogInfo
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // LOGGER_H
|
#endif // LOGGER_H
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -1,14 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MAIL_H
|
#ifndef MAIL_H
|
||||||
|
|||||||
+2
-2
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MEMO_H
|
#ifndef MEMO_H
|
||||||
@@ -19,6 +18,7 @@
|
|||||||
class CoreExport Memo : public Serializable
|
class CoreExport Memo : public Serializable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
MemoInfo *mi;
|
||||||
bool unread;
|
bool unread;
|
||||||
bool receipt;
|
bool receipt;
|
||||||
Memo();
|
Memo();
|
||||||
|
|||||||
+1
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
@@ -172,4 +171,3 @@ namespace Message
|
|||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Message
|
} // namespace Message
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -1,7 +1,7 @@
|
|||||||
/* Mode support
|
/* Mode support
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008-2011 Adam <Adam@anope.org>
|
* (C) 2008-2011 Adam <Adam@anope.org>
|
||||||
* Copyright (C) 2008-2014 Anope Team <team@anope.org>
|
* (C) 2008-2019 Anope Team <team@anope.org>
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*/
|
*/
|
||||||
@@ -192,7 +192,7 @@ class CoreExport ChannelModeStatus : public ChannelMode
|
|||||||
/* The "level" of the mode, used to compare with other modes.
|
/* The "level" of the mode, used to compare with other modes.
|
||||||
* Used so we know op > halfop > voice etc.
|
* Used so we know op > halfop > voice etc.
|
||||||
*/
|
*/
|
||||||
short level;
|
unsigned level;
|
||||||
|
|
||||||
/** constructor
|
/** constructor
|
||||||
* @param name The mode name
|
* @param name The mode name
|
||||||
@@ -200,7 +200,7 @@ class CoreExport ChannelModeStatus : public ChannelMode
|
|||||||
* @param msymbol The symbol for the mode, eg @ %
|
* @param msymbol The symbol for the mode, eg @ %
|
||||||
* @param mlevel A level for the mode, which is usually determined by the PREFIX capab
|
* @param mlevel A level for the mode, which is usually determined by the PREFIX capab
|
||||||
*/
|
*/
|
||||||
ChannelModeStatus(const Anope::string &name, char mc, char msymbol, short mlevel);
|
ChannelModeStatus(const Anope::string &name, char mc, char msymbol, unsigned mlevel);
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A virtual mode. This mode doesn't natively exist on the IRCd (like extbans),
|
/** A virtual mode. This mode doesn't natively exist on the IRCd (like extbans),
|
||||||
@@ -395,6 +395,7 @@ class CoreExport Entry
|
|||||||
Anope::string mask;
|
Anope::string mask;
|
||||||
public:
|
public:
|
||||||
unsigned short cidr_len;
|
unsigned short cidr_len;
|
||||||
|
int family;
|
||||||
Anope::string nick, user, host, real;
|
Anope::string nick, user, host, real;
|
||||||
|
|
||||||
/** Constructor
|
/** Constructor
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
|
|||||||
+8
-3
@@ -1,13 +1,12 @@
|
|||||||
/* Modular support
|
/* Modular support
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "serialize.h"
|
#include "serialize.h"
|
||||||
@@ -302,6 +301,11 @@ class CoreExport Module : public Extensible
|
|||||||
* before they will be called.
|
* before they will be called.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/** Called on startup after database load, but before
|
||||||
|
* connecting to the uplink.
|
||||||
|
*/
|
||||||
|
virtual void OnPostInit() { throw NotImplementedException(); }
|
||||||
|
|
||||||
/** Called before a user has been kicked from a channel.
|
/** Called before a user has been kicked from a channel.
|
||||||
* @param source The kicker
|
* @param source The kicker
|
||||||
* @param cu The user, channel, and status of the user being kicked
|
* @param cu The user, channel, and status of the user being kicked
|
||||||
@@ -1016,7 +1020,7 @@ class CoreExport Module : public Extensible
|
|||||||
*/
|
*/
|
||||||
virtual void OnLogMessage(LogInfo *li, const Log *l, const Anope::string &msg) { throw NotImplementedException(); }
|
virtual void OnLogMessage(LogInfo *li, const Log *l, const Anope::string &msg) { throw NotImplementedException(); }
|
||||||
|
|
||||||
/** Called when a DNS request (question) is recieved.
|
/** Called when a DNS request (question) is received.
|
||||||
* @param req The dns request
|
* @param req The dns request
|
||||||
* @param reply The reply that will be sent
|
* @param reply The reply that will be sent
|
||||||
*/
|
*/
|
||||||
@@ -1100,6 +1104,7 @@ class CoreExport Module : public Extensible
|
|||||||
|
|
||||||
enum Implementation
|
enum Implementation
|
||||||
{
|
{
|
||||||
|
I_OnPostInit,
|
||||||
I_OnPreUserKicked, I_OnUserKicked, I_OnReload, I_OnPreBotAssign, I_OnBotAssign, I_OnBotUnAssign, I_OnUserConnect,
|
I_OnPreUserKicked, I_OnUserKicked, I_OnReload, I_OnPreBotAssign, I_OnBotAssign, I_OnBotUnAssign, I_OnUserConnect,
|
||||||
I_OnNewServer, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp, I_OnPreCommand, I_OnPostCommand, I_OnSaveDatabase,
|
I_OnNewServer, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp, I_OnPreCommand, I_OnPostCommand, I_OnSaveDatabase,
|
||||||
I_OnLoadDatabase, I_OnEncrypt, I_OnDecrypt, I_OnBotFantasy, I_OnBotNoFantasyAccess, I_OnBotBan, I_OnBadWordAdd,
|
I_OnLoadDatabase, I_OnEncrypt, I_OnDecrypt, I_OnBotFantasy, I_OnBotNoFantasyAccess, I_OnBotBan, I_OnBadWordAdd,
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
/* BotServ core functions
|
/* BotServ core functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Flags for badwords
|
/** Flags for badwords
|
||||||
@@ -70,4 +68,3 @@ struct BadWords
|
|||||||
|
|
||||||
virtual void Check() = 0;
|
virtual void Check() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
/* BotServ core functions
|
/* BotServ core functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Indices for TTB (Times To Ban) */
|
/* Indices for TTB (Times To Ban) */
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* (C) 2003-2014 Anope Team
|
*
|
||||||
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct EntryMsg
|
struct EntryMsg
|
||||||
@@ -32,4 +32,3 @@ struct EntryMessageList : Serialize::Checker<std::vector<EntryMsg *> >
|
|||||||
|
|
||||||
virtual EntryMsg* Create() = 0;
|
virtual EntryMsg* Create() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* ChanServ core functions
|
/* ChanServ core functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -40,4 +40,3 @@ struct LogSettings : Serialize::Checker<std::vector<LogSetting *> >
|
|||||||
virtual ~LogSettings() { }
|
virtual ~LogSettings() { }
|
||||||
virtual LogSetting *Create() = 0;
|
virtual LogSetting *Create() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* ChanServ core functions
|
/* ChanServ core functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -80,11 +80,10 @@ struct ModeLocks
|
|||||||
virtual const ModeLock *GetMLock(const Anope::string &mname, const Anope::string ¶m = "") = 0;
|
virtual const ModeLock *GetMLock(const Anope::string &mname, const Anope::string ¶m = "") = 0;
|
||||||
|
|
||||||
/** Get the current mode locks as a string
|
/** Get the current mode locks as a string
|
||||||
* @param complete True to show mlock parameters aswell
|
* @param complete True to show mlock parameters as well
|
||||||
* @return A string of mode locks, eg: +nrt
|
* @return A string of mode locks, eg: +nrt
|
||||||
*/
|
*/
|
||||||
virtual Anope::string GetMLockAsString(bool complete) const = 0;
|
virtual Anope::string GetMLockAsString(bool complete) const = 0;
|
||||||
|
|
||||||
virtual void Check() = 0;
|
virtual void Check() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef DNS_H
|
#ifndef DNS_H
|
||||||
@@ -177,5 +176,3 @@ namespace DNS
|
|||||||
} // namespace DNS
|
} // namespace DNS
|
||||||
|
|
||||||
#endif // DNS_H
|
#endif // DNS_H
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Encryption
|
namespace Encryption
|
||||||
@@ -34,4 +33,3 @@ namespace Encryption
|
|||||||
virtual IV GetDefaultIV() = 0;
|
virtual IV GetDefaultIV() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+13
-2
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2012-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef ANOPE_HTTPD_H
|
#ifndef ANOPE_HTTPD_H
|
||||||
#define ANOPE_HTTPD_H
|
#define ANOPE_HTTPD_H
|
||||||
|
|
||||||
@@ -15,7 +23,7 @@ struct HTTPReply
|
|||||||
{
|
{
|
||||||
HTTPError error;
|
HTTPError error;
|
||||||
Anope::string content_type;
|
Anope::string content_type;
|
||||||
std::map<Anope::string, Anope::string> headers;
|
std::map<Anope::string, Anope::string, ci::less> headers;
|
||||||
typedef std::list<std::pair<Anope::string, Anope::string> > cookie;
|
typedef std::list<std::pair<Anope::string, Anope::string> > cookie;
|
||||||
std::vector<cookie> cookies;
|
std::vector<cookie> cookies;
|
||||||
|
|
||||||
@@ -133,7 +141,7 @@ class HTTPProvider : public ListenSocket, public Service
|
|||||||
unsigned short port;
|
unsigned short port;
|
||||||
bool ssl;
|
bool ssl;
|
||||||
public:
|
public:
|
||||||
Anope::string ext_ip;
|
std::vector<Anope::string> ext_ips;
|
||||||
std::vector<Anope::string> ext_headers;
|
std::vector<Anope::string> ext_headers;
|
||||||
|
|
||||||
HTTPProvider(Module *c, const Anope::string &n, const Anope::string &i, const unsigned short p, bool s) : ListenSocket(i, p, i.find(':') != Anope::string::npos), Service(c, "HTTPProvider", n), ip(i), port(p), ssl(s) { }
|
HTTPProvider(Module *c, const Anope::string &n, const Anope::string &i, const unsigned short p, bool s) : ListenSocket(i, p, i.find(':') != Anope::string::npos), Service(c, "HTTPProvider", n), ip(i), port(p), ssl(s) { }
|
||||||
@@ -220,6 +228,9 @@ namespace HTTPUtils
|
|||||||
case '"':
|
case '"':
|
||||||
dst += """;
|
dst += """;
|
||||||
break;
|
break;
|
||||||
|
case '&':
|
||||||
|
dst += "&";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
dst += src[i];
|
dst += src[i];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef ANOPE_LDAP_H
|
#ifndef ANOPE_LDAP_H
|
||||||
#define ANOPE_LDAP_H
|
#define ANOPE_LDAP_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* NickServ core functions
|
/* NickServ core functions
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -68,4 +68,3 @@ class CertService : public Service
|
|||||||
|
|
||||||
virtual NickCore* FindAccountFromCert(const Anope::string &cert) = 0;
|
virtual NickCore* FindAccountFromCert(const Anope::string &cert) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef OS_FORBID_H
|
#ifndef OS_FORBID_H
|
||||||
#define OS_FORBID_H
|
#define OS_FORBID_H
|
||||||
|
|
||||||
@@ -37,10 +45,11 @@ class ForbidService : public Service
|
|||||||
|
|
||||||
virtual ForbidData *FindForbid(const Anope::string &mask, ForbidType type) = 0;
|
virtual ForbidData *FindForbid(const Anope::string &mask, ForbidType type) = 0;
|
||||||
|
|
||||||
|
virtual ForbidData *FindForbidExact(const Anope::string &mask, ForbidType type) = 0;
|
||||||
|
|
||||||
virtual std::vector<ForbidData *> GetForbids() = 0;
|
virtual std::vector<ForbidData *> GetForbids() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ServiceReference<ForbidService> forbid_service("ForbidService", "forbid");
|
static ServiceReference<ForbidService> forbid_service("ForbidService", "forbid");
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* OperServ ignore interface
|
/* OperServ ignore interface
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -9,7 +9,6 @@
|
|||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
struct IgnoreData
|
struct IgnoreData
|
||||||
{
|
{
|
||||||
Anope::string mask;
|
Anope::string mask;
|
||||||
@@ -42,4 +41,3 @@ class IgnoreService : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
static ServiceReference<IgnoreService> ignore_service("IgnoreService", "ignore");
|
static ServiceReference<IgnoreService> ignore_service("IgnoreService", "ignore");
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef OS_NEWS
|
#ifndef OS_NEWS
|
||||||
#define OS_NEWS
|
#define OS_NEWS
|
||||||
|
|
||||||
@@ -42,4 +50,3 @@ class NewsService : public Service
|
|||||||
static ServiceReference<NewsService> news_service("NewsService", "news");
|
static ServiceReference<NewsService> news_service("NewsService", "news");
|
||||||
|
|
||||||
#endif // OS_NEWS
|
#endif // OS_NEWS
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef OS_SESSION_H
|
#ifndef OS_SESSION_H
|
||||||
#define OS_SESSION_H
|
#define OS_SESSION_H
|
||||||
|
|
||||||
@@ -84,4 +92,3 @@ Serializable* Exception::Unserialize(Serializable *obj, Serialize::Data &data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef CHANSERV_H
|
#ifndef CHANSERV_H
|
||||||
#define CHANSERV_H
|
#define CHANSERV_H
|
||||||
|
|
||||||
@@ -15,4 +23,3 @@ class ChanServService : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // CHANSERV_H
|
#endif // CHANSERV_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef GLOBAL_H
|
#ifndef GLOBAL_H
|
||||||
#define GLOBAL_H
|
#define GLOBAL_H
|
||||||
|
|
||||||
@@ -17,4 +25,3 @@ class GlobalService : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // GLOBAL_H
|
#endif // GLOBAL_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef MEMOSERV_H
|
#ifndef MEMOSERV_H
|
||||||
#define MEMOSERV_H
|
#define MEMOSERV_H
|
||||||
|
|
||||||
@@ -31,4 +39,3 @@ class MemoServService : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // MEMOSERV_H
|
#endif // MEMOSERV_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2011-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef NICKSERV_H
|
#ifndef NICKSERV_H
|
||||||
#define NICKSERV_H
|
#define NICKSERV_H
|
||||||
|
|
||||||
@@ -14,4 +22,3 @@ class NickServService : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // NICKSERV_H
|
#endif // NICKSERV_H
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Redis
|
namespace Redis
|
||||||
@@ -59,6 +58,8 @@ namespace Redis
|
|||||||
public:
|
public:
|
||||||
Provider(Module *c, const Anope::string &n) : Service(c, "Redis::Provider", n) { }
|
Provider(Module *c, const Anope::string &n) : Service(c, "Redis::Provider", n) { }
|
||||||
|
|
||||||
|
virtual bool IsSocketDead() = 0;
|
||||||
|
|
||||||
virtual void SendCommand(Interface *i, const std::vector<Anope::string> &cmds) = 0;
|
virtual void SendCommand(Interface *i, const std::vector<Anope::string> &cmds) = 0;
|
||||||
virtual void SendCommand(Interface *i, const Anope::string &str) = 0;
|
virtual void SendCommand(Interface *i, const Anope::string &str) = 0;
|
||||||
|
|
||||||
@@ -71,4 +72,3 @@ namespace Redis
|
|||||||
virtual void CommitTransaction() = 0;
|
virtual void CommitTransaction() = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-5
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2014 Anope Team
|
* (C) 2014-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -46,6 +46,7 @@ namespace SASL
|
|||||||
{
|
{
|
||||||
time_t created;
|
time_t created;
|
||||||
Anope::string uid;
|
Anope::string uid;
|
||||||
|
Anope::string hostname, ip;
|
||||||
Reference<Mechanism> mech;
|
Reference<Mechanism> mech;
|
||||||
|
|
||||||
Session(Mechanism *m, const Anope::string &u) : created(Anope::CurTime), uid(u), mech(m) { }
|
Session(Mechanism *m, const Anope::string &u) : created(Anope::CurTime), uid(u), mech(m) { }
|
||||||
@@ -76,9 +77,10 @@ namespace SASL
|
|||||||
class IdentifyRequest : public ::IdentifyRequest
|
class IdentifyRequest : public ::IdentifyRequest
|
||||||
{
|
{
|
||||||
Anope::string uid;
|
Anope::string uid;
|
||||||
|
Anope::string hostname, ip;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IdentifyRequest(Module *m, const Anope::string &id, const Anope::string &acc, const Anope::string &pass) : ::IdentifyRequest(m, acc, pass), uid(id) { }
|
IdentifyRequest(Module *m, const Anope::string &id, const Anope::string &acc, const Anope::string &pass, const Anope::string &h, const Anope::string &i) : ::IdentifyRequest(m, acc, pass), uid(id), hostname(h), ip(i) { }
|
||||||
|
|
||||||
void OnSuccess() anope_override
|
void OnSuccess() anope_override
|
||||||
{
|
{
|
||||||
@@ -86,13 +88,21 @@ namespace SASL
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
NickAlias *na = NickAlias::Find(GetAccount());
|
NickAlias *na = NickAlias::Find(GetAccount());
|
||||||
if (!na || na->nc->HasExt("NS_SUSPENDED"))
|
if (!na || na->nc->HasExt("NS_SUSPENDED") || na->nc->HasExt("UNCONFIRMED"))
|
||||||
|
return OnFail();
|
||||||
|
|
||||||
|
unsigned int maxlogins = Config->GetModule("ns_identify")->Get<unsigned int>("maxlogins");
|
||||||
|
if (maxlogins && na->nc->users.size() >= maxlogins)
|
||||||
return OnFail();
|
return OnFail();
|
||||||
|
|
||||||
Session *s = sasl->GetSession(uid);
|
Session *s = sasl->GetSession(uid);
|
||||||
if (s)
|
if (s)
|
||||||
{
|
{
|
||||||
Log(Config->GetClient("NickServ")) << "A user identified to account " << this->GetAccount() << " using SASL";
|
Anope::string user = "A user";
|
||||||
|
if (!hostname.empty() && !ip.empty())
|
||||||
|
user = hostname + " (" + ip + ")";
|
||||||
|
|
||||||
|
Log(this->GetOwner(), "sasl", Config->GetClient("NickServ")) << user << " identified to account " << this->GetAccount() << " using SASL";
|
||||||
sasl->Succeed(s, na->nc);
|
sasl->Succeed(s, na->nc);
|
||||||
delete s;
|
delete s;
|
||||||
}
|
}
|
||||||
@@ -116,8 +126,14 @@ namespace SASL
|
|||||||
accountstatus = "nonexistent ";
|
accountstatus = "nonexistent ";
|
||||||
else if (na->nc->HasExt("NS_SUSPENDED"))
|
else if (na->nc->HasExt("NS_SUSPENDED"))
|
||||||
accountstatus = "suspended ";
|
accountstatus = "suspended ";
|
||||||
|
else if (na->nc->HasExt("UNCONFIRMED"))
|
||||||
|
accountstatus = "unconfirmed ";
|
||||||
|
|
||||||
Log(Config->GetClient("NickServ")) << "A user failed to identify for " << accountstatus << "account " << this->GetAccount() << " using SASL";
|
Anope::string user = "A user";
|
||||||
|
if (!hostname.empty() && !ip.empty())
|
||||||
|
user = hostname + " (" + ip + ")";
|
||||||
|
|
||||||
|
Log(this->GetOwner(), "sasl", Config->GetClient("NickServ")) << user << " failed to identify for " << accountstatus << "account " << this->GetAccount() << " using SASL";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) 2003-2014 Anope Team
|
*
|
||||||
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -14,4 +15,3 @@ struct MiscData
|
|||||||
MiscData() { }
|
MiscData() { }
|
||||||
virtual ~MiscData() { }
|
virtual ~MiscData() { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) 2003-2014 Anope Team
|
*
|
||||||
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
@@ -213,4 +214,3 @@ namespace SQL
|
|||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2010-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
class SSLService : public Service
|
class SSLService : public Service
|
||||||
{
|
{
|
||||||
@@ -6,4 +13,3 @@ class SSLService : public Service
|
|||||||
|
|
||||||
virtual void Init(Socket *s) = 0;
|
virtual void Init(Socket *s) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* (C) 2003-2014 Anope Team
|
*
|
||||||
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* (C) 2010-2019 Anope Team
|
||||||
|
* Contact us at team@anope.org
|
||||||
|
*
|
||||||
|
* Please read COPYING and README for further details.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "httpd.h"
|
#include "httpd.h"
|
||||||
|
|
||||||
class XMLRPCRequest
|
class XMLRPCRequest
|
||||||
@@ -37,4 +45,3 @@ class XMLRPCServiceInterface : public Service
|
|||||||
|
|
||||||
virtual void Reply(XMLRPCRequest &request) = 0;
|
virtual void Reply(XMLRPCRequest &request) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
*
|
||||||
* Copyright (C) 2008-2014 Anope Team <team@anope.org>
|
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
||||||
|
* (C) 2008-2019 Anope Team <team@anope.org>
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef OPERTYPE_H
|
#ifndef OPERTYPE_H
|
||||||
|
|||||||
+34
-6
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef PROTOCOL_H
|
#ifndef PROTOCOL_H
|
||||||
@@ -40,7 +39,7 @@ class CoreExport IRCDProto : public Service
|
|||||||
virtual void SendNumericInternal(int numeric, const Anope::string &dest, const Anope::string &buf);
|
virtual void SendNumericInternal(int numeric, const Anope::string &dest, const Anope::string &buf);
|
||||||
|
|
||||||
const Anope::string &GetProtocolName();
|
const Anope::string &GetProtocolName();
|
||||||
virtual void Parse(const Anope::string &, Anope::string &, Anope::string &, std::vector<Anope::string> &);
|
virtual bool Parse(const Anope::string &, Anope::map<Anope::string> &, Anope::string &, Anope::string &, std::vector<Anope::string> &);
|
||||||
virtual Anope::string Format(const Anope::string &source, const Anope::string &message);
|
virtual Anope::string Format(const Anope::string &source, const Anope::string &message);
|
||||||
|
|
||||||
/* Modes used by default by our clients */
|
/* Modes used by default by our clients */
|
||||||
@@ -197,8 +196,8 @@ class CoreExport IRCDProto : public Service
|
|||||||
*/
|
*/
|
||||||
virtual void SendConnect() = 0;
|
virtual void SendConnect() = 0;
|
||||||
|
|
||||||
/** Called right before we begin our burst, after we have handshaked successfully with the uplink/
|
/** Called right before we begin our burst, after we have handshaked successfully with the uplink.
|
||||||
* At this point none of our servesr, users, or channels exist on the uplink
|
* At this point none of our servers, users, or channels exist on the uplink
|
||||||
*/
|
*/
|
||||||
virtual void SendBOB() { }
|
virtual void SendBOB() { }
|
||||||
virtual void SendEOB() { }
|
virtual void SendEOB() { }
|
||||||
@@ -228,8 +227,9 @@ class CoreExport IRCDProto : public Service
|
|||||||
*/
|
*/
|
||||||
virtual void SendOper(User *u);
|
virtual void SendOper(User *u);
|
||||||
|
|
||||||
|
virtual void SendSASLMechanisms(std::vector<Anope::string> &) { }
|
||||||
virtual void SendSASLMessage(const SASL::Message &) { }
|
virtual void SendSASLMessage(const SASL::Message &) { }
|
||||||
virtual void SendSVSLogin(const Anope::string &uid, const Anope::string &acc) { }
|
virtual void SendSVSLogin(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) { }
|
||||||
|
|
||||||
virtual bool IsNickValid(const Anope::string &);
|
virtual bool IsNickValid(const Anope::string &);
|
||||||
virtual bool IsChannelValid(const Anope::string &);
|
virtual bool IsChannelValid(const Anope::string &);
|
||||||
@@ -278,11 +278,39 @@ class CoreExport IRCDMessage : public Service
|
|||||||
IRCDMessage(Module *owner, const Anope::string &n, unsigned p = 0);
|
IRCDMessage(Module *owner, const Anope::string &n, unsigned p = 0);
|
||||||
unsigned GetParamCount() const;
|
unsigned GetParamCount() const;
|
||||||
virtual void Run(MessageSource &, const std::vector<Anope::string> ¶ms) = 0;
|
virtual void Run(MessageSource &, const std::vector<Anope::string> ¶ms) = 0;
|
||||||
|
virtual void Run(MessageSource &, const std::vector<Anope::string> ¶ms, const Anope::map<Anope::string> &tags);
|
||||||
|
|
||||||
void SetFlag(IRCDMessageFlag f) { flags.insert(f); }
|
void SetFlag(IRCDMessageFlag f) { flags.insert(f); }
|
||||||
bool HasFlag(IRCDMessageFlag f) const { return flags.count(f); }
|
bool HasFlag(IRCDMessageFlag f) const { return flags.count(f); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** MessageTokenizer allows tokens in the IRC wire format to be read from a string */
|
||||||
|
class CoreExport MessageTokenizer
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
/** The message we are parsing tokens from. */
|
||||||
|
Anope::string message;
|
||||||
|
|
||||||
|
/** The current position within the message. */
|
||||||
|
Anope::string::size_type position;
|
||||||
|
|
||||||
|
public:
|
||||||
|
/** Create a tokenstream and fill it with the provided data. */
|
||||||
|
MessageTokenizer(const Anope::string &msg);
|
||||||
|
|
||||||
|
/** Retrieve the next \<middle> token in the message.
|
||||||
|
* @param token The next token available, or an empty string if none remain.
|
||||||
|
* @return True if a token was retrieved; otherwise, false.
|
||||||
|
*/
|
||||||
|
bool GetMiddle(Anope::string &token);
|
||||||
|
|
||||||
|
/** Retrieve the next \<trailing> token in the message.
|
||||||
|
* @param token The next token available, or an empty string if none remain.
|
||||||
|
* @return True if a token was retrieved; otherwise, false.
|
||||||
|
*/
|
||||||
|
bool GetTrailing(Anope::string &token);
|
||||||
|
};
|
||||||
|
|
||||||
extern CoreExport IRCDProto *IRCD;
|
extern CoreExport IRCDProto *IRCD;
|
||||||
|
|
||||||
#endif // PROTOCOL_H
|
#endif // PROTOCOL_H
|
||||||
|
|||||||
+1
-1
@@ -73,7 +73,7 @@
|
|||||||
* include stdint.h. The hope is that one or the other can be
|
* include stdint.h. The hope is that one or the other can be
|
||||||
* used with no real difference.
|
* used with no real difference.
|
||||||
*
|
*
|
||||||
* 5) In the current verison, if your platform can't represent
|
* 5) In the current version, if your platform can't represent
|
||||||
* int32_t, int16_t and int8_t, it just dumps out with a compiler
|
* int32_t, int16_t and int8_t, it just dumps out with a compiler
|
||||||
* error.
|
* error.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2008-2014 Anope Team
|
* (C) 2008-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef REGCHANNEL_H
|
#ifndef REGCHANNEL_H
|
||||||
@@ -133,8 +132,8 @@ class CoreExport ChannelInfo : public Serializable, public Extensible
|
|||||||
/** Retrieve the access for a user or group in the form of a vector of access entries
|
/** Retrieve the access for a user or group in the form of a vector of access entries
|
||||||
* (as multiple entries can affect a single user).
|
* (as multiple entries can affect a single user).
|
||||||
*/
|
*/
|
||||||
AccessGroup AccessFor(const User *u);
|
AccessGroup AccessFor(const User *u, bool updateLastUsed = true);
|
||||||
AccessGroup AccessFor(const NickCore *nc);
|
AccessGroup AccessFor(const NickCore *nc, bool updateLastUsed = true);
|
||||||
|
|
||||||
/** Get the size of the accss vector for this channel
|
/** Get the size of the accss vector for this channel
|
||||||
* @return The access vector size
|
* @return The access vector size
|
||||||
|
|||||||
+1
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef REGEXPR_H
|
#ifndef REGEXPR_H
|
||||||
@@ -44,4 +43,3 @@ class CoreExport RegexProvider : public Service
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // REGEXPR_H
|
#endif // REGEXPR_H
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SERIALIZE_H
|
#ifndef SERIALIZE_H
|
||||||
@@ -65,9 +64,9 @@ class CoreExport Serializable : public virtual Base
|
|||||||
Serialize::Type *s_type;
|
Serialize::Type *s_type;
|
||||||
/* Iterator into serializable_items */
|
/* Iterator into serializable_items */
|
||||||
std::list<Serializable *>::iterator s_iter;
|
std::list<Serializable *>::iterator s_iter;
|
||||||
/* The hash of the last serialized form of this object commited to the database */
|
/* The hash of the last serialized form of this object committed to the database */
|
||||||
size_t last_commit;
|
size_t last_commit;
|
||||||
/* The last time this object was commited to the database */
|
/* The last time this object was committed to the database */
|
||||||
time_t last_commit_time;
|
time_t last_commit_time;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
+1
-2
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SERVERS_H
|
#ifndef SERVERS_H
|
||||||
|
|||||||
+1
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SERVICE_H
|
#ifndef SERVICE_H
|
||||||
@@ -172,4 +171,3 @@ class ServiceAlias
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif // SERVICE_H
|
#endif // SERVICE_H
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SERVICES_H
|
#ifndef SERVICES_H
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SOCKETENGINE_H
|
#ifndef SOCKETENGINE_H
|
||||||
|
|||||||
+11
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SOCKETS_H
|
#ifndef SOCKETS_H
|
||||||
@@ -39,6 +38,10 @@ union CoreExport sockaddrs
|
|||||||
*/
|
*/
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
|
/** Get address family.
|
||||||
|
*/
|
||||||
|
int family() const;
|
||||||
|
|
||||||
/** Get the size of the sockaddr we represent
|
/** Get the size of the sockaddr we represent
|
||||||
* @return The size
|
* @return The size
|
||||||
*/
|
*/
|
||||||
@@ -54,6 +57,11 @@ union CoreExport sockaddrs
|
|||||||
*/
|
*/
|
||||||
Anope::string addr() const;
|
Anope::string addr() const;
|
||||||
|
|
||||||
|
/** Get the reverse address represented by this addr
|
||||||
|
* @return The reverse address
|
||||||
|
*/
|
||||||
|
Anope::string reverse() const;
|
||||||
|
|
||||||
/* Is this address ipv6? */
|
/* Is this address ipv6? */
|
||||||
bool ipv6() const;
|
bool ipv6() const;
|
||||||
|
|
||||||
@@ -372,7 +380,7 @@ class CoreExport ListenSocket : public virtual Socket
|
|||||||
virtual ~ListenSocket();
|
virtual ~ListenSocket();
|
||||||
|
|
||||||
/** Process what has come in from the connection
|
/** Process what has come in from the connection
|
||||||
* @return false to destory this socket
|
* @return false to destroy this socket
|
||||||
*/
|
*/
|
||||||
bool ProcessRead();
|
bool ProcessRead();
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef THREADENGINE_H
|
#ifndef THREADENGINE_H
|
||||||
|
|||||||
+1
-2
@@ -1,13 +1,12 @@
|
|||||||
/* Timer include stuff.
|
/* Timer include stuff.
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef TIMERS_H
|
#ifndef TIMERS_H
|
||||||
|
|||||||
+1
-3
@@ -1,13 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef UPLINK_H
|
#ifndef UPLINK_H
|
||||||
@@ -52,4 +51,3 @@ class UplinkSocket : public ConnectionSocket, public BufferedSocket
|
|||||||
extern CoreExport UplinkSocket *UplinkSock;
|
extern CoreExport UplinkSocket *UplinkSock;
|
||||||
|
|
||||||
#endif // UPLINK_H
|
#endif // UPLINK_H
|
||||||
|
|
||||||
|
|||||||
+6
-9
@@ -1,14 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team <team@anope.org>
|
||||||
* Contact us at team@anope.org
|
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
*
|
||||||
* Based on the original code of Epona by Lara.
|
* Based on the original code of Epona by Lara.
|
||||||
* Based on the original code of Services by Andy Church.
|
* Based on the original code of Services by Andy Church.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef USERS_H
|
#ifndef USERS_H
|
||||||
@@ -44,7 +42,7 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
|
|||||||
Anope::string vident;
|
Anope::string vident;
|
||||||
Anope::string ident;
|
Anope::string ident;
|
||||||
Anope::string uid;
|
Anope::string uid;
|
||||||
/* If the user is on the access list of the nick theyre on */
|
/* If the user is on the access list of the nick they're on */
|
||||||
bool on_access;
|
bool on_access;
|
||||||
/* Map of user modes and the params this user has (if any) */
|
/* Map of user modes and the params this user has (if any) */
|
||||||
ModeList modes;
|
ModeList modes;
|
||||||
@@ -103,7 +101,7 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
|
|||||||
* @param svhost The vhost of the user
|
* @param svhost The vhost of the user
|
||||||
* @param sip The ip of the user
|
* @param sip The ip of the user
|
||||||
* @param sserver The server of the user
|
* @param sserver The server of the user
|
||||||
* @param srealname The realname/gecos of teh user
|
* @param srealname The realname/gecos of the user
|
||||||
* @param ts User's timestamp
|
* @param ts User's timestamp
|
||||||
* @param smodes User's modes
|
* @param smodes User's modes
|
||||||
* @param suid The unique identifier of the user.
|
* @param suid The unique identifier of the user.
|
||||||
@@ -349,10 +347,9 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
|
|||||||
|
|
||||||
/* Returns a mask that will most likely match any address the
|
/* Returns a mask that will most likely match any address the
|
||||||
* user will have from that location. For IP addresses, wildcards the
|
* user will have from that location. For IP addresses, wildcards the
|
||||||
* appropriate subnet mask (e.g. 35.1.1.1 -> 35.*; 128.2.1.1 -> 128.2.*);
|
* last octet (e.g. 35.1.1.1 -> 35.1.1.*). for named addresses, wildcards
|
||||||
* for named addresses, wildcards the leftmost part of the name unless the
|
* the leftmost part of the name unless the name only contains two parts.
|
||||||
* name only contains two parts. If the username begins with a ~, delete
|
* If the username begins with a ~, replace with *.
|
||||||
* it.
|
|
||||||
*/
|
*/
|
||||||
Anope::string Mask() const;
|
Anope::string Mask() const;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
/* Build bumper
|
/* Build bumper
|
||||||
*
|
*
|
||||||
* (C) 2003-2014 Anope Team
|
* (C) 2003-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
|
|||||||
+3
-2
@@ -1,10 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* (C) 2008-2014 Anope Team
|
* (C) 2008-2019 Anope Team
|
||||||
* Contact us at team@anope.org
|
* Contact us at team@anope.org
|
||||||
*
|
*
|
||||||
* Please read COPYING and README for further details.
|
* Please read COPYING and README for further details.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XLINE_H
|
#ifndef XLINE_H
|
||||||
@@ -113,6 +112,8 @@ class CoreExport XLineManager : public Service
|
|||||||
*/
|
*/
|
||||||
void AddXLine(XLine *x);
|
void AddXLine(XLine *x);
|
||||||
|
|
||||||
|
void RemoveXLine(XLine *);
|
||||||
|
|
||||||
/** Delete an entry from this XLineManager
|
/** Delete an entry from this XLineManager
|
||||||
* @param x The entry
|
* @param x The entry
|
||||||
* @return true if the entry was found and deleted, else false
|
* @return true if the entry was found and deleted, else false
|
||||||
|
|||||||
+1384
-1271
File diff suppressed because it is too large
Load Diff
+1396
-1277
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user