1
0
mirror of https://github.com/anope/anope.git synced 2026-06-13 07:34:46 +02:00

Compare commits

...

251 Commits

Author SHA1 Message Date
Sadie Powell 12f1ebee1c Release 2.0.20. 2026-05-26 17:59:50 +01:00
Sadie Powell 8e691eac80 Update the change log. 2026-05-26 10:44:44 +01:00
Sadie Powell 2327c6ac9a Fix an escaped value that wasn't escaped enough in chanstats. 2026-05-26 10:36:50 +01:00
Sadie Powell e23ea8f8ea Escape user-provided values in ldap_authentication and ldap_oper. 2026-05-26 09:30:15 +01:00
Sadie Powell 449cfa6503 Add EscapeDN and EscapeSF to the LDAP API. 2026-05-26 09:29:57 +01:00
Sadie Powell 01fc7421b6 Backport the pull request checks from 2.0. 2026-05-20 22:13:38 +01:00
Sadie Powell e6d7306202 Backport the mailmap changes from 2.1. 2026-05-12 11:26:06 +01:00
Sadie Powell 2107d18d9e Remove suggestion to email language file updates to team@.
Its 2026 and its way easier for everyone involved to just file a
pull request.
2026-05-11 13:00:55 +01:00
Sadie Powell acb9428635 Backport the locales-all advice from 2.1. 2026-05-11 12:58:47 +01:00
Sadie Powell 27a19dcc52 Update the mailmap. 2026-05-06 11:59:03 +01:00
Sadie Powell ba26d9a15c Add a missing FNAME handler on InspIRCd 3+.
Closes #572.
2026-04-16 11:50:10 +01:00
Sadie Powell 9834040948 Fix checking the wrong config option in os_stats. 2026-03-11 16:41:50 +00:00
Sadie Powell bc9e035038 Extract all public types in Doxygen documentation. 2026-01-30 08:51:21 +00:00
Sadie Powell debfa59be6 Bump for 2.0.20-git. 2026-01-26 13:55:35 +00:00
Sadie Powell e321749d1f Release 2.0.19. 2026-01-26 13:53:05 +00:00
Sadie Powell 8a2d7526cd Update the change log. 2026-01-26 13:52:40 +00:00
Sadie Powell e1f34ee5d6 Add a Doxygen config file. 2026-01-26 13:11:17 +00:00
Sadie Powell 4ac5cf89e3 Update the copyright headers for 2025. 2026-01-01 18:04:37 +00:00
Sadie Powell f526932882 Backport CI changes from the 2.1 branch. 2025-12-03 16:26:32 +00:00
Sadie Powell 5a9f581491 Fix chanserv/enforce enforcing against founders.
Closes #532.
2025-12-03 16:18:50 +00:00
Sadie Powell f6c093ae23 Fix not respecting the mode state when removing a mode lock. 2025-11-13 13:23:05 +00:00
Sadie Powell f4c565aa08 Fix reading the settings in m_dns. 2025-11-09 15:56:30 +00:00
crazycatdevs f03e802f58 Fix creating channel entries in irc2sql.
Related to #526 : MySQL doesn't accept the timestamp in topictime, must use FROM_UNIXTIME() like it's done in OnTopicUpdated
2025-09-05 14:45:57 +01:00
Sadie Powell dbef7a7c64 Don't try to write to a buffered socket if there's no data.
This can cause the SSL modules to act weirdly because the TLS
library will return 0 bytes written (correctly) which is then
interpreted as an error.
2025-08-05 13:10:16 +01:00
Sadie Powell fca421aa2a Fix resetpass confirming accounts when not using email confirmation.
Fixes MantisBT bug 1734.
2025-06-25 17:36:16 +01:00
Sadie Powell 035905d321 Fix example messages using .site which is a real TLD now. 2025-06-25 15:39:35 +01:00
Sadie Powell 9bcf46f8ea Fix using service's instead of services' where appropriate. 2025-06-25 15:29:16 +01:00
Sadie Powell 0b6c7ce5d6 Update some messages for the language used by modern BIND versions. 2025-06-25 15:28:54 +01:00
Sadie Powell 0bb1bc5c67 Backport various minor config changes from 2.1. 2025-06-25 12:00:33 +01:00
Sadie Powell 4b15ca0232 Bump for 2.0.19-git. 2025-05-08 15:03:03 +01:00
Sadie Powell 997302f861 Release 2.0.18. 2025-05-08 15:01:58 +01:00
Sadie Powell b3b6e9f862 Update the change log. 2025-05-08 14:59:37 +01:00
Sadie Powell d23bfb0113 Fix being able to group guest nicknames.
This does not affect 2.1 because grouped nicknames work differently
on that branch.

Reported by @ValwareIRC.
2025-05-08 14:51:56 +01:00
Sadie Powell 151f9c2bcc Backport the Windows CI runner to 2.0.
[skip ubuntu ci]
2025-04-18 18:24:29 +01:00
Sadie Powell b9acaa6d51 Ask people to file PRs on GitHub as well as emailing team@. 2025-04-15 10:05:51 +01:00
Sadie Powell c6065ff0f3 Update the change log. 2025-04-02 23:00:12 +01:00
Sadie Powell a5aae4f41d Fix building in a post-CMP0082 world. 2025-04-02 23:00:12 +01:00
Sadie Powell 0b36ddfaf3 Fix building on old versions of RHEL. 2025-04-02 09:58:49 +01:00
Sadie Powell 947ddc9e1b Fix building on CMake 4.
This is a partial backport from 2.1.
2025-04-02 09:53:10 +01:00
Sadie Powell 43dc6f7509 Fix ns_maxemail miscounting email addresses in some cases. 2025-03-22 20:19:50 +00:00
Sadie Powell 883367c1d2 Fix importing some data from 1.8. 2025-03-12 00:33:41 +00:00
Sadie Powell 7f2c281121 Fix a compiler warning on newer versions of MSVC. 2025-03-03 22:46:12 +00:00
Robby b448a20f40 Update the dutch language file. 2025-02-23 04:22:33 +01:00
Sadie Powell 227caba783 Fix sql_live on recent MariaDB. 2025-02-20 13:05:22 +00:00
Sadie Powell b51dff0b1a Update the CI for the upcoming Ubuntu 20.04 removal. 2025-02-14 21:51:47 +00:00
Sadie Powell fbb8442252 Reset the stats properly.
Closes #465.
2025-02-14 18:15:51 +00:00
Sadie Powell 8110fddfe5 Document the sql_live performance limitations. 2025-02-14 18:09:34 +00:00
Sadie Powell 1f7aa241bb Prioritise operserv/ignore above other modules.
Closes #471.
2025-02-11 13:48:11 +00:00
Sadie Powell a8eda0676d Backport logging the reason sending email failed to the 2.0 branch.
Closes #463.
2025-01-23 19:23:32 +00:00
Sadie Powell da7f47c1c7 Update the copyright headers for 2025. 2025-01-14 13:30:07 +00:00
Sadie Powell a92f09153a Bump for 2.0.18-git. 2024-12-08 12:18:55 +00:00
Sadie Powell 73714420d1 Release 2.0.17. 2024-12-08 12:15:26 +00:00
Sadie Powell ea96f2ad40 Update the change log. 2024-12-08 12:13:28 +00:00
Sadie Powell 7083c424c2 Only process sockets after loading the db when using db_sql{_live}.
This avoids slow startups for the 95% of users who are using the
db_flatfile database backend.
2024-11-19 00:39:00 +00:00
Sadie Powell de16238e01 Process all socket events before connecting to the uplink.
This ensures that the SQL import actually succeeds before we do
something that might terminate the process.
2024-11-16 12:49:45 +00:00
Sadie Powell a668c8b520 Clarify how to import databases from flatfile to SQL.
Closes #456.
2024-11-15 15:57:41 +00:00
Sadie Powell 96ccfe4cbe Fix using User::Account where User::IsIdentified should be used.
The former causes a dereference which cause a database update. This
is not good for performance with db_sql_live on bigger networks.
2024-11-11 16:46:56 +00:00
Sadie Powell ee160842b3 Fix serialising boolean extension items. 2024-11-11 15:24:40 +00:00
Sadie Powell 98c840eb02 Expand the size of some chanstats columns.
Closes #444.
2024-11-07 12:31:47 +00:00
Sadie Powell 7d5ca5c90b Switch the city version of geoipupdate to a non-corrupt database.
Closes #439.
2024-10-27 16:13:51 +00:00
Sadie Powell f40719787f Fix a change that was missing from the previous commit. 2024-10-18 11:45:19 +01:00
Sadie Powell e5602f956d Fix marking channels as persistent on InspIRCd and UnrealIRCd. 2024-10-18 11:26:03 +01:00
Sadie Powell e704fa6266 Update the IRC server to point to Teranova. 2024-10-13 17:15:26 +01:00
Sadie Powell bafcba023c Switch geoipupdate.sh to use a mirror as the original data is gone. 2024-10-12 12:01:00 +01:00
Sadie Powell 6d34054b78 Change the mode lock before removing/adding the PERM mode.
This fixes being unable to unset mlock on the first attempt.
2024-10-11 15:45:02 +01:00
Sadie Powell cc37e6d69a Remove config option for options:warningtimeout.
This hasn't done anything since the early 1.9 releases I'm not sure
why it hasn't been removed already.
2024-09-17 12:27:13 +01:00
TehPeGaSuS 4b48fc98d3 Fix the documentation of mail:usemail.
`nickserv:registration` only has as options: none, admin, mail.

I assume that `mail` is the word that should replace `yes`
2024-09-01 09:41:32 +01:00
Sadie Powell 6da4a148fa Fix translating mail:memo_message. 2024-08-24 12:27:05 +01:00
Sadie Powell 63ad540e55 Add a note to LANGUAGE about rebuilding from scratch. 2024-07-20 19:25:58 +01:00
Sadie Powell a1165eea94 Fix the type of the InspIRCd IJOIN chants when converting. 2024-07-20 19:25:58 +01:00
Sadie Powell bfca74f6b3 Bump for 2.0.17-git. 2024-07-19 13:24:41 +01:00
Sadie Powell 3acf74483c Release 2.0.16. 2024-07-19 12:49:56 +01:00
Sadie Powell a3ec8329f4 Document the previous commit. 2024-07-19 12:48:44 +01:00
Sadie Powell 31bc597c81 Send the vhost/vident before the account name on InspIRCd.
This fixes IRCd-side account cloaks causing CHGHOST spam.
2024-07-19 01:11:32 +01:00
Sadie Powell 2de0dddb1c Fix joining channels with keys on InspIRCd v3. 2024-07-14 16:39:37 +01:00
Sadie Powell 41ea346551 Update the change log. 2024-07-11 01:13:59 +01:00
Sadie Powell 439ad3e736 Make it clear that inspircd3 also works with InspIRCd 4. 2024-07-11 01:13:59 +01:00
Sadie Powell 8105607257 Fix the default config for channel suspensions. 2024-06-23 13:51:53 +01:00
Sadie Powell ccc088d946 Log a user out fully when their nick gets suspended.
Closes #409.
2024-06-04 22:41:32 +01:00
Sadie Powell 8bb83f6b1a Explicitly specify ROW_FORMAT=DYNAMIC when creating tables.
Resolves the issues some people were having with extremely wide rows.
2024-05-16 17:29:25 +01:00
Sadie Powell da99a53dfa Don't specify a width for DT_INT columns.
This isn't actually used by MySQL for the column width.
2024-05-16 17:28:15 +01:00
Sadie Powell a9e9ac32a0 Store boolean extension items as DT_INT. 2024-05-16 17:28:15 +01:00
Sadie Powell 05e6df23a2 Mark boolean columns as DT_INT in bs_kick. 2024-05-16 16:50:41 +01:00
Sadie Powell 3f9fc23270 Remove some unnecessary advice. 2024-05-16 16:44:38 +01:00
Sadie Powell afe87bf693 Ensure we are connected to MySQL before trying to escape data. 2024-05-11 11:36:29 +01:00
Sadie Powell 0c5bf51378 Skip serializing data without a type in db_flatfile. 2024-04-29 08:16:45 +01:00
Sadie Powell d41764bfd6 Fix sending emails to nicks ending with a backslash. 2024-03-15 18:52:12 +00:00
Sadie Powell 10f4724b6b Dependabot requires that the target-branch is a string. 2024-03-15 12:17:15 +00:00
Sadie Powell 8d5be77c93 Send dependabot pull requests to the 2.1 branch. 2024-03-15 11:56:56 +00:00
Sadie Powell f4bd43e898 Add a workaround for users matching expired sqlines.
I'll fix this properly in 2.1 because I don't want to make big
changes to 2.0.

Closes #384.
2024-03-12 16:47:57 +00:00
Sadie Powell 7d7664444a Fix expiring forbids. 2024-03-12 16:26:33 +00:00
Sadie Powell 1a8bbd6004 Respect --noexpire in cs_suspend and ns_suspend. 2024-03-12 14:43:12 +00:00
Sadie Powell e725c880a9 Fix expiring channel suspensions.
Closes #386.
2024-03-12 14:12:37 +00:00
Sadie Powell f5abcd1c4c Fix expiring nick suspensions.
Closes #376.
2024-03-12 14:02:16 +00:00
Sadie Powell 1986aa6581 Fix duplicate messages when synconset/syncongroup is set.
Closes #366.
2024-03-12 13:26:25 +00:00
Sadie Powell 1a6060ac5b Fix sending SVSTOPIC when topiclock is loaded on InspIRCd. 2024-03-12 11:46:41 +00:00
Sadie Powell 6f57907416 Fix the TIME message on InspIRCd. 2024-03-11 22:38:15 +00:00
Bram Matthys b09632d1c3 Fix OS SQLINE expiry with UnrealIRCd 2024-03-11 18:30:55 +00:00
Sadie Powell cd614831de Fix feature detection on InspIRCd. 2024-03-08 16:49:55 +00:00
Sadie Powell 9649dc78a1 When using ldap/sql auth prevent displays expiring before their group.
This prevents zombie accounts from being left around that can't be
authenticated to.

Closes #355.
2024-03-04 12:08:28 +00:00
Sadie Powell ee7455daa8 Fix a copy/paste error in webcpanel. 2024-02-29 16:27:24 +00:00
Sadie Powell 5f735b2570 Fix matching extbans on InspIRCd and implement missing matchers. 2024-02-27 20:33:43 +00:00
Sadie Powell 4ea2bc5e46 Mark as 2.0.16-git. 2024-02-17 20:08:10 +00:00
Sadie Powell eabc8b641e Release 2.0.15. 2024-02-17 20:07:09 +00:00
Sadie Powell 2f1ed186d1 Update the change log. 2024-02-17 20:06:08 +00:00
Sadie Powell 4cc68397dc Update the copyright headers for 2024. 2024-02-17 19:58:17 +00:00
Sadie Powell 2b7872139c Prevent resetting the password of suspended accounts.
Closes #351.
2024-02-17 19:52:39 +00:00
Sadie Powell 8e3be20387 Update the Windows dependencies. 2024-02-11 21:34:00 +00:00
Sadie Powell 689dd44d3b Add a GitHub security policy. 2024-02-11 21:32:23 +00:00
Sadie Powell c9e0245f23 Revert "Document ns_no_expire nick default".
This reverts commit 9c9df2ad1f.

Closes #350.
2024-02-11 16:22:01 +00:00
Robby 73d8c85879 Update the dutch language file. 2024-01-31 06:17:00 +01:00
Robby 7ae20c2a6d Remove an extraneous space in cs_xop. 2024-01-31 03:08:54 +01:00
Sadie Powell d6a826a09c Backport CI changes from the 2.1 branch. 2024-01-24 14:45:57 +00:00
Sadie Powell 016761776b Add a new Turkish translation contributed by CaPa CuL.
Co-authored-by: CaPa CuL <capacul@gmail.com>
2024-01-22 16:29:20 +00:00
Victor Coss c2450eabab Fix typo 2024-01-22 00:38:23 +00:00
Val Lorentz 6e6e053384 fr_FR: Update fuzzy strings 2024-01-05 19:49:56 +00:00
Valentin Lorentz 5edf19d230 fr_FR: Fix trailing spaces 2024-01-05 19:00:19 +00:00
Sadie Powell eb2aaf22ed Fix a copy/paste error in the default channel settings. 2024-01-01 17:32:37 +00:00
Sadie Powell aca9d30064 Tweak the issue templates slightly. 2023-12-19 21:21:39 +00:00
Sadie Powell b84b1d8166 Misc grammar fixes. 2023-12-17 19:32:45 +00:00
Mingjie Shen 8e2fa4acdb messages: fix incorrect format specifier
Calling a printf-like function with the wrong type of arguments causes
unpredictable behavior.

Signed-off-by: Mingjie Shen <shen497@purdue.edu>
2023-12-08 17:16:53 +00:00
PeGaSuS cc9e2c1260 Fix missing end of comment 2023-11-24 21:04:05 +00:00
Sadie Powell c3e95d8e2e Fix chanserv/suspend info not being visible to regular users.
Closes #325.
2023-11-16 19:54:23 +00:00
Sadie Powell ba163027bd Make the SASL PLAIN implementation more robust.
- Reject auth attempts that try to authenticate using an alternate
  authorization identity.

- Reject auth attempts that contain extraneous null bytes in the
  string as required by the SASL PLAIN RFC.

- General code quality cleanup.
2023-11-16 18:14:15 +00:00
Sadie Powell 1eba69d035 Fix a missing override keyword. 2023-10-24 18:10:32 +01:00
Sadie Powell eb409fc6eb When changing the nick of a user on inspircd3 send the expected ts.
This should prevent users being renicked if they changed their nick
between services sending the renick and the IRCd receiving it.
2023-10-24 18:00:34 +01:00
Sadie Powell 97fa6d84bc Fix confirming an unconfirmed operator's account. 2023-10-22 23:31:48 +01:00
Sadie Powell 02940e4ea8 Fix a misleading temporary variable in ns_register. 2023-10-20 18:10:29 +01:00
Sadie Powell 69a0f3bec2 Fix removing entries by an alias in chanserv/access and chanserv/xop. 2023-10-12 19:09:44 +01:00
Dragone2 6119586920 Small fixes and improvements to Italian translation. 2023-10-04 17:14:39 +01:00
dependabot[bot] 32cf99fdb5 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 17:20:09 +01:00
Sadie Powell ca2209aaed Show the SQL service name in the db_sql error message.
This should help users diagnose issues easier.
2023-09-05 00:21:31 +01:00
Sadie Powell 0a3ddef315 Replace Twitter with Mastodon in the ns_set_misc example config.
Closes #320.
2023-08-31 07:19:00 +01:00
Sadie Powell 0715db7182 Mark as 2.0.15-git. 2023-08-06 13:00:09 +01:00
Sadie Powell 8bf14ad5ea Release 2.0.14. 2023-08-06 12:58:38 +01:00
Sadie Powell c9f21f4ef6 Update the changelogs. 2023-08-06 12:57:26 +01:00
Sadie Powell 1b2eb9b9c8 Fix the pull request template to be more relevant to Anope. 2023-07-30 12:41:21 +01:00
Sadie Powell 1343be58d7 Add some templates for people filing issues on GitHub. 2023-07-30 12:15:20 +01:00
Sadie Powell 97f6aadd5b Fix paging the Config header on some util-linux revisions.
We use an environment variable here as passing -e directly may
result in an error on older `more` releases.
2023-07-28 23:56:09 +01:00
Sadie Powell 2dafc85af4 Remove references to the ilm which never got updated from 1.8. 2023-07-16 18:25:21 +01:00
Sadie Powell 7f8a0c9d33 Allow Anope to look up multiple DNS results.
For fixing bug 1756.
2023-07-11 16:11:57 +01:00
Sadie Powell cc23f6dc01 Fix sending log messages from a renamed pseudoclient.
If a command is named e.g. nickserv/wibble it previously tried to
look up the nickserv service and if this service didn't exist then
it would fall back to sending from the first available service. This
caused problems if the NickServ service had been renamed to something
else.

Reported by @AndrioCelos on IRC.
2023-07-11 15:13:17 +01:00
PeGaSuS e717ac0a89 Clarify that operserv/sqline can also match channel names. 2023-07-09 23:44:02 +01:00
Sadie Powell 34ab54522e Fix not serialising dontkickops/dontkickvoices properly. 2023-07-09 23:09:11 +01:00
Sadie Powell 47bbc9b3fb Enable CanSQLineChannel in unreal4.
Ref: https://www.unrealircd.org/docs/Server_protocol:SQLINE_command
2023-07-09 22:32:43 +01:00
Sadie Powell 68b51c7481 Fix not getting memo notifications when using SASL. 2023-07-09 22:32:43 +01:00
Sadie Powell 37b60f8d9d Update links to the bugtracker. 2023-07-09 20:06:32 +01:00
Sadie Powell 14204353ac Allow customising the email content type.
This will allow people to send emails using HTML or non UTF-8 text.
2023-07-09 14:39:51 +01:00
Sadie Powell 098f19c005 Fix a crash when a module tries to get another module's config. 2023-07-06 10:53:25 +01:00
PeGaSuS 4e1f5cce80 Tell users that they must identify to their account before using CONFIRM.
This only happens when a nickname is registered via webcpanel and said nickname is online.
2023-07-05 17:09:47 +01:00
Sadie Powell da2ac3e8a2 Fix detection of the nopartmsg module in the InspIRCd proto modules. 2023-06-20 01:00:37 +01:00
Sadie Powell 7c7158cf24 Terminate lines with CR+LF instead of just LF when sending an email.
From https://www.rfc-editor.org/rfc/rfc5321#section-2.3.1:

> Lines consist of zero or more data characters terminated by the
> sequence ASCII character "CR" (hex value 0D) followed immediately by
> ASCII character "LF" (hex value 0A).
2023-06-06 16:48:47 +01:00
Adam fbf3b34474 add gettext to conan deps 2023-06-02 23:01:27 -04:00
Adam ce42810265 m_ldap: use Wldap on windows 2023-06-02 21:31:12 -04:00
Adam 07babdbd77 use Conan for extra's dependencies on Windows
conan install src\win32\conanfile.txt --build=missing
cmake -B build .
cmake --build build --config Release --target PACKAGE
2023-06-02 19:08:55 -04:00
Sadie Powell fe3926f572 Mark as 2.0.14-git. 2023-06-01 23:12:08 +01:00
Sadie Powell 03eead042c Release 2.0.13. 2023-06-01 23:12:07 +01:00
Sadie Powell b1fff640dd Update the changelogs. 2023-05-30 16:07:54 +01:00
Dragone2 f251ca6373 Small fixes to the Italian translation. 2023-05-29 21:33:59 +01:00
Adam 24a2c51003 CMakeLists.txt: remove -fno-delete-null-pointer-checks 2023-05-28 21:26:03 -04:00
Adam 66f37139cb regchannels: remove dependency on no-delete-null-pointer-checks 2023-05-28 21:26:03 -04:00
Adam 0646547c9e config: remove dependency on no-delete-null-pointer-checks 2023-05-28 21:25:59 -04:00
Sadie Powell 41206b991e Fix not being able to log into oper accounts when DNS fails. 2023-05-11 13:05:39 +01:00
Sadie Powell b7abfe5eca Avoid returning null when a config tag does not exist.
This invokes undefined behaviour on modern compilers.
2023-05-04 19:21:02 +01:00
Hendrik Jäger 23e7f5bd33 update: german translation 2023-04-21 22:30:18 +01:00
Dragone2 df9dfeae95 Update the Italian translation.
Ref: #309
2023-04-04 16:59:59 +01:00
henk84 e68a41a91e Make language/update.sh safer, faster, cleaner.
Ref: #308

Co-authored-by: Hendrik Jäger <gitcommit@henk.geekmail.org>
2023-03-06 12:01:46 +00:00
henk84 26f846e112 Document how to update a translation.
Ref: #307

Co-authored-by: Hendrik Jäger <gitcommit@henk.geekmail.org>
2023-02-26 23:09:30 +00:00
henk84 f1fbe9e629 Update some german translations.
Ref: #306

Co-authored-by: Hendrik Jäger <gitcommit@henk.geekmail.org>
2023-02-26 23:05:28 +00:00
Sadie Powell 1c9b34190e Update the en_US translation. 2023-02-19 11:14:37 +00:00
Sadie Powell a5d4aa5821 Remove line numbers from the translation files.
The translations are updated so infrequently that these always
change a bunch and it makes reading the diffs really hard.
2023-02-19 11:12:37 +00:00
Hendrik Jäger 9b583961b0 Update german translation 2023-02-18 21:48:53 +00:00
Bram Matthys fef0cc1c29 unreal4: set vhost/vident during SASL 2023-02-09 16:05:50 +00:00
Sadie Powell f0ad0b4f0a Raise the default session limit from 3 to 5. 2023-02-06 17:12:35 +00:00
Sadie Powell dc1d9c837b Fix crashing when encountering an unterminated commented block. 2023-02-06 17:10:29 +00:00
Sadie Powell 33a337dfc0 Update the copyright headers for 2023. 2022-12-31 22:08:50 +00:00
Sadie Powell b64dc09bd2 Fix marking services pseudoclients as an oper on InspIRCd.
The bot user needs to be marked as introduced in order to send an
oper type.
2022-12-31 21:55:05 +00:00
Sadie Powell fee60c8e06 The fantasy:name field is allowed to contain spaces. 2022-12-18 10:36:59 +00:00
Sadie Powell 3f867c1e11 Show the invalid config value in the rejection message. 2022-12-18 10:35:11 +00:00
dependabot[bot] 2f46739931 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-17 15:59:28 +00:00
Sadie Powell 6eec018c34 Allow Dependabot to keep our GitHub CI up to date. 2022-12-17 15:57:37 +00:00
Sadie Powell e78db21180 Mark as 2.0.13-git. 2022-12-09 08:33:02 +00:00
Sadie Powell d4d2a4b4ce Release 2.0.12. 2022-12-09 08:30:43 +00:00
Sadie Powell e33b8d5f43 Update the changelogs. 2022-12-09 08:28:57 +00:00
PeGaSuS c2b154e1b1 Document cs_no_expire (#301). 2022-12-08 07:16:04 +00:00
Sadie Powell 4a2861ba3d Add a module that provides regex/pcre using PCRE2. 2022-12-07 15:43:39 +00:00
miwob 211bd80061 Update ircd-hybrid protocol module
* Add METADATA command handler which currently only allows to modify a client's certificate fingerprint
* Minor reformatting and style inconsistency fixes
2022-09-29 13:05:05 +01:00
Austin Ellis 32679a107a Add the ability to confirm accounts via webcpanel after logging in. 2022-09-22 17:38:07 +01:00
miwob bc101d10de Update hybrid protocol module to improve compatibility with the latest ircd-hybrid release.
* Remove support for deprecated channel mode `u`
* Add support for channel mode `N`
* Fixed the `UID` message handler requiring the correct amount of arguments
* Fixed the `SID` message handler requiring the correct amount of arguments
* Fixed the `SJOIN` message handler requiring the correct amount of arguments
* Minor documentation updates and style corrections
* Remove pointless return statement in the `JOIN` message handler
* Add support for the owner and admin channel prefix modes
* Add support for `MLOCK`
* Fixed SendChannel() so modes are prefixed with a `+`
* Change SendJoin() to actually use the mode stacker
* Add support for channel mode `Q`
* Add support for channel mode `Z`
* Add support for user mode `B` and `Z`
* Actually user mode `g` is not oper only. For some reason this mode got set to oper only in anope/anope@1e625b6
* Work properly with extended bans, e.g. don't normalize masks starting with a `$`
2022-09-15 14:13:24 +01:00
Sadie Powell 901a456132 Fix allowing spaces in some config fields that shouldn't contain them. 2022-09-12 17:56:45 +01:00
Sadie Powell 0c61915e31 Bahamut now has support for halfops. 2022-09-12 17:56:45 +01:00
Dragone2 d5e85c7f25 Fixe a typo in the Italian translation.
Ref: #298
2022-08-10 19:40:42 +01:00
Michael Stapelberg a5425e3bf3 database: write to temporary file and rename.
This decreases the likelihood of ending up with a zero-byte (or missing)
anope.db.

Co-authored-by: Michael Stapelberg <michael@robustirc.net>
2022-07-27 17:40:49 +01:00
Sadie Powell 2062eb23f0 Release 2.0.11. 2022-04-22 10:17:19 +01:00
Sadie Powell af4d7d21ba Update the changelogs. 2022-04-21 17:48:54 +01:00
Sadie Powell c2ba553483 Remove unnecessary ProcessModes call in unreal4.
This was made obsolete by the previous commit.
2022-04-11 15:34:37 +01:00
PeGaSuS 8dd1fb8ac2 Fix unsetting vhosts on unreal4 (#289). 2022-02-13 14:30:09 +00:00
Sadie Powell b5fe380011 Include the required modules in the example InspIRCd config. 2022-01-29 13:33:19 +00:00
Sadie Powell af7bf785f9 Fix a grammar error in nickserv.example.conf. 2022-01-29 13:31:04 +00:00
Sadie Powell 04257b9d6a Replace ICQ in the ns_set_misc examples with something not dead. 2022-01-10 16:45:25 +00:00
Sadie Powell acb6c55529 Add all extra modules to the gitignore to avoid adding their symlinks. 2022-01-10 16:20:56 +00:00
Sadie Powell 0e6f8488d3 Avoid duplicate checks in irc2sql. 2022-01-10 16:20:56 +00:00
Filippo Cortigiani 56687c27cb Fix ns_resetpass not returning a response for XMLRPC (#243)
Co-authored-by: filippo nicola cortigiani <simos@H7-25.fritz.box>
2022-01-10 16:12:33 +00:00
k4bek4be 9b0c7929d9 Multiple updates for unreal4 protocol (#285)
* Parse PROTOCTL PREFIX and PROTOCTL USERMODES
* Add several previously unhandled modes
* Fix incorrect SJOIN prefix handling
* Enable message tags sending from ircd
* Add timedban matcher
* Add operclass matcher
* Store all client and channel moddata.
* Call unreal's internal unban on /cs unban
* Check for ~a:0 ban
* Add country ban matcher
* Use +B umode for services bots
2022-01-10 15:50:17 +00:00
k4bek4be d895a3aa01 Use utf-8 encoding for outgoing email (#286) 2022-01-09 19:01:45 +00:00
k4be d4632e5286 Add a "Network Service" (RPL_WHOISOPERATOR) line to WHOIS replies 2022-01-09 18:39:09 +00:00
Michael Wobst c38106211c Adjust IsIdentValid test to comply with upcoming ircd-hybrid release (#272).
hybrid.cpp: adjust IsIdentValid test to comply with upcoming ircd-hybrid where
user names may only consist of [A-Za-z0-9._-] and may not begin with '.', '-',
or '_'.

As a side effect this fixes an issue where currently it is possible to introduce
bots whose user name starts with (non-alnum) characters considered invalid for
ircd-hybrid leading to a services shutdown due to a nick introduction/kill loop.
2022-01-09 15:25:09 +00:00
Sadie Powell b8bcad048e Update the copyright headers for 2022. 2022-01-06 23:15:44 +00:00
k4be a93a7c87b6 Update pl_PL translation 2022-01-03 19:53:08 +00:00
Sadie Powell ba2c82e2f5 Fix some minor issues discovered whilst working on 2.1. 2022-01-03 19:37:33 +00:00
Sadie Powell 2c18601d8f Fix linking against libraries by their alternate name. 2021-12-28 21:18:22 +00:00
Sadie Powell a1a1b3ad01 Add a build time check that OpenLDAP is reentrant. 2021-12-28 19:20:23 +00:00
Robert Scheck 7a28d81b44 Reflect OpenLDAP 2.5 upstream change from libldap_r to libldap
Starting with OpenLDAP 2.5 upstream decided to merge the non-threaded
libldap_r library into the threaded libldap library. And starting with
OpenLDAP 2.6 common Linux distributions such as Fedora do not ship the
compatibility symbolic link anymore (which leads to a build failure),
thus the linking tests for libldap_r and uses alternatively libldap.

See also:
 - https://lists.openldap.org/hyperkitty/list/openldap-announce@openldap.org/thread/BH3VDPG6IYYF5L5U6LZGHHKMJY5HFA3L/
 - https://bugzilla.redhat.com/show_bug.cgi?id=2032707
2021-12-28 19:20:03 +00:00
Sadie Powell 69dbcba069 Allow specifying multiple dependency libraries like foo|bar. 2021-12-28 18:53:24 +00:00
Hendrik Jäger 66bf55fb7f Fix missing spaces in de_DE 2021-12-23 22:10:27 +00:00
Sadie Powell 002186c016 Document log files having their creation date appended. 2021-12-23 22:08:36 +00:00
Sadie Powell 64f65b035e Fix some message params being sent as <middle> instead of <trailing>. 2021-11-20 19:54:56 +00:00
Sadie Powell b6f1c86f65 Use example.com instead of localhost.net in the example configs. 2021-11-14 20:45:17 +00:00
Sadie Powell a736b54ef1 Use the server name as the enforcer hostname if not otherwise set. 2021-11-14 20:45:01 +00:00
Austin Ellis 8b8bc97194 Fix the grammar of the globaloncycledown message (#279).
The previous default example (which is in use on many Anope networks) refers to Services in 2nd person, then 1st person - in the same sentence.
2021-11-14 00:42:09 +00:00
Sadie Powell aa0adcf99b Show the protocol module name when connecting to the uplink. 2021-10-06 20:58:57 +01:00
Sadie Powell 079fb1b66f Mark as 2.0.11-git. 2021-08-29 20:02:49 +01:00
Sadie Powell 1cab1d32c2 Send the oper mode for services pseudoclients on InspIRCd. 2021-08-29 18:37:12 +01:00
Matthew Beeching 98fdce2e1d Update Jobe's email address in the readme. 2021-08-25 20:33:11 +01:00
Adam d8d1c1d18c cmake: update NSIS template for NSIS 3
Newer cmake versions require NSIS 3, which already defines a RemoveSection macro causing cpack to fail
2021-08-09 17:17:25 -04:00
Sadie Powell 48ec53242e Release 2.0.10. 2021-08-09 15:54:25 +01:00
Adam 91321bdf68 webcpanel: fix command source ip to use extforward ip 2021-07-24 12:09:12 -04:00
Sadie Powell 33590aa59b Overwritten has two t's in it. 2021-06-17 18:41:23 +01:00
Josh Soref fd88b756fc Fix various spelling issues (#274).
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>.
2021-06-17 15:02:30 +01:00
Sadie Powell 8d1bc95faf Use the InspIRCd-sent maxlist size instead of networkinfo:modelistsize. 2021-06-04 02:19:54 +01:00
Sadie Powell e67c2d5632 Add support for per-mode list limits. 2021-06-04 02:12:09 +01:00
Sadie Powell 3728a0bda1 Fix some misleading indentation in ns_register. 2021-05-31 20:53:29 +01:00
Sadie Powell d2da73cf68 Add the -devel switch to Config.
This makes the script use defaults that make development easier.
2021-05-26 04:13:42 +01:00
Sadie Powell 100b24074d Improve the message for NICK_IDENTIFY_REQUIRED. 2021-05-23 19:51:40 +01:00
Sadie Powell a040f17787 Use InnoDB instead of the deprecated MyISAM engine.
Ref: https://www.percona.com/blog/2016/10/11/mysql-8-0-end-myisam/
2021-04-27 23:21:07 +01:00
Sadie Powell 6274bd0b34 Use utf8mb4 instead of utf8 in chanstats and irc2sql.
The utf8 charset, confusingly, is an alias for utf8mb3 which is not
a real UTF-8 encoding as it can only store three byte characters.

The real UTF-8 charset is utf8mb4.
2021-04-27 23:18:04 +01:00
Sadie Powell 095a25d473 Add the anope_override keyword to methods that lack it. 2021-04-27 21:41:19 +01:00
Sadie Powell c00ecc5e02 Process writes to the uplink socket before quitting in all cases.
This allows any error that might have been sent to the IRCd to
actually be sent.
2021-04-16 22:46:11 +01:00
Sadie Powell cdd9b6f11b Default to the inspircd3 protocol module instead of inspircd20. 2021-04-16 22:18:56 +01:00
Sadie Powell faee68e85f Don't enforce casemapping when using the 1202 InspIRCd protocol.
This allows older servers which use a module that provides custom
casemapping (e.g. the ascii module) to link.
2021-04-16 22:17:47 +01:00
Sadie Powell 683f42eeef Use UTC in anopesmtp to fix a C++98 compat warning. 2021-04-08 13:47:13 +01:00
Sadie Powell f83558f10b Log when freopen and chown fail. 2021-04-08 13:47:13 +01:00
PeGaSuS 9483da3239 Added Account to show the main nick of a grouped nick(s).
#270
2021-02-19 01:42:13 +00:00
Matt Schatz c67911bfcc bots: Fix dtor channel iterator being invalidated.
The call to UnAssign() erases the channel from the set which
invalidates the iterator in this loop. Handle this in the same
manner as the NickCore dtor.
2021-02-19 01:37:08 +00:00
Adam 4d271e0210 cs_access: require accounts to be confirmed for level 0 access 2021-01-31 12:05:25 -05:00
Robby c5a4e8337c Update copyright to 2021.
This was done with:
find docs/ include/ language/ modules/ src/ *.* Config -exec sed -i 's/-20.. Anope Team/-2021 Anope Team/i' {} \;
2021-01-07 03:31:08 +01:00
PeGaSuS 7e08e7cb6c Set killprotect as a default option in nickserv.example.conf. 2021-01-07 03:24:17 +01:00
Michael Hazell 4031dc7321 inspircd3: Enable support for channel SQLines (#268) 2021-01-01 19:03:23 +00:00
Robby d1e4943800 Add kill_immed as an available option to nickserv.example.conf. 2020-11-20 17:00:00 +01:00
Sadie Powell 74f18d7b1d Only grant an account an identifier when the identifier is needed. 2020-11-19 14:12:18 +00:00
Sadie Powell 3856538e48 Bump for 2.0.10-git. 2020-10-22 12:10:08 +01:00
403 changed files with 9549 additions and 33793 deletions
+33
View File
@@ -0,0 +1,33 @@
---
name: Bug report
about: Report a non-security issue with Anope.
---
<!--
Please fill in the template below. It will help us process your bug report a lot faster. If you have multiple bugs to report then please open one issue for each bug.
-->
**Description**
**Steps to reproduce the issue:**
1.
2.
3.
**Describe the results you received:**
**Describe the results you expected:**
**Additional information you deem important (e.g. issue happens only occasionally):**
**Output of `services --version`:**
+15
View File
@@ -0,0 +1,15 @@
---
name: Feature request
about: Request that a new feature is added to Anope.
---
<!--
Please fill in the template below. It will help us process your feature request a lot faster. If you have multiple features to request then please open one issue for each feature.
-->
**Description**
**Why this would be useful**
+1
View File
@@ -0,0 +1 @@
blank_issues_enabled: false
+40
View File
@@ -0,0 +1,40 @@
<!--
Please fill in the template below. It will help us process your pull request a lot faster.
-->
## Summary
<!--
Briefly describe what this pull request changes.
-->
## Rationale
<!--
Describe why you have made this change.
-->
## Testing Environment
<!--
Describe the environment in which you have tested this change:
-->
I have tested this pull request on:
**Operating system name and version:** <!-- e.g. Linux 3.11 -->
**Compiler name and version:** <!-- e.g. GCC 4.2.0 -->
## Checks
<!--
Tick the boxes for the checks you have made.
-->
I have ensured that:
- [ ] The code I am submitting is my own work and/or I have permission from the author to share it.
- [ ] Generative AI (Copilot, ChatGPT, etc) was not used to create any part of this pull request.
- [ ] If the pull request contains a security fix I have followed the reporting rules mentioned in [the security policy](https://github.com/anope/anope/security/policy) (delete if not applicable).
- [ ] I have documented any features added by this pull request (delete if not applicable).
- [ ] This pull request does not introduce any incompatible API changes (stable branches only, delete if not applicable).
+19
View File
@@ -0,0 +1,19 @@
# Security Policy
## Supported Versions
Currently the 2.0 (stable) branch is actively receiving security fixes.
The 2.1 (development) branch is still early in development and currently only receives security fixes when they are synced from the 2.0 branch.
Version | Supported
------- | ---------
2.1.x | :warning:
2.0.x | :white_check_mark:
1.8.x | :x:
## Reporting a Vulnerability
Please do not report security vulnerabilities on GitHub. Instead, email the details to team@anope.org or get the attention of a developer in our development IRC channel at irc.teranova.net #anope-devel and PM them the details.
We will triage your issue as soon as possible and try to release a fixed version within a week of receiving your report.
+7
View File
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
target-branch: "2.1"
+16 -9
View File
@@ -1,45 +1,52 @@
name: Linux CI
name: Ubuntu CI
on:
- pull_request
- push
- workflow_dispatch
jobs:
build:
runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, '[skip ubuntu ci]')"
runs-on: ubuntu-24.04
env:
CXX: ${{ matrix.compiler }}
CXXFLAGS: -std=${{ matrix.standard }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- name: Install dependencies
run: |
sudo apt-get update --assume-yes
sudo apt-get install --assume-yes --no-install-recommends \
clang \
g++ \
gettext \
git \
libc++-dev \
libc++abi-dev \
libgnutls28-dev \
libldap2-dev \
libmysqlclient-dev \
libpcre2-dev \
libpcre3-dev \
libsqlite3-dev \
libssl-dev \
libtre-dev \
make
ninja-build
- name: Enable extras
run: |
for MODULE in m_ldap.cpp m_ldap_authentication.cpp m_ldap_oper.cpp m_mysql.cpp m_regex_pcre.cpp m_regex_posix.cpp m_regex_tre.cpp m_sql_authentication.cpp m_sql_log.cpp m_sql_oper.cpp m_sqlite.cpp m_ssl_gnutls.cpp m_ssl_openssl.cpp stats
for MODULE in m_ldap.cpp m_ldap_authentication.cpp m_ldap_oper.cpp m_mysql.cpp m_regex_pcre.cpp m_regex_pcre2.cpp m_regex_posix.cpp m_regex_tre.cpp m_sql_authentication.cpp m_sql_log.cpp m_sql_oper.cpp m_sqlite.cpp m_ssl_gnutls.cpp m_ssl_openssl.cpp stats
do
ln -s ${{ github.workspace }}/modules/extra/$MODULE ${{ github.workspace }}/modules
done
- name: Run CMake
run: |
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE:STRING=DEBUG -DINSTDIR:STRING=${{ github.workspace }}/run ..
cmake -GNinja -DCMAKE_BUILD_TYPE:STRING=DEBUG -DINSTDIR:STRING=${{ github.workspace }}/run ..
- name: Build Anope
run: |
make --directory ${{ github.workspace }}/build --jobs $(nproc) --no-print-directory install
ninja -C ${{ github.workspace }}/build install
strategy:
fail-fast: false
matrix:
+74
View File
@@ -0,0 +1,74 @@
name: Windows CI
on:
pull_request:
push:
release:
types:
- published
workflow_dispatch:
jobs:
build:
if: "!contains(github.event.head_commit.message, '[skip windows ci]')"
runs-on: windows-2025
env:
BUILD_TYPE: ${{ github.event_name == 'release' && 'Release' || 'Debug' }}
CONAN_USER_HOME: ${{ github.workspace }}/win/build
CONAN_USER_HOME_SHORT: None
steps:
- uses: actions/checkout@v6
- name: Setup NSIS
run: |-
choco install nsis
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2
- name: Setup Conan
uses: turtlebrowser/get-conan@v1.2
with:
version: 1.66.0
- name: Try to restore libraries from the cache
uses: actions/cache/restore@v4
id: library-cache
with:
key: conan-${{ hashFiles('src/win32/conanfile.txt') }}
path: ${{ env.CONAN_USER_HOME }}/.conan
- name: Install libraries
run: |
conan install ${{ github.workspace }}\src\win32 --build=missing
- name: Save libraries to the cache
if: ${{ steps.library-cache.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
with:
key: ${{ steps.library-cache.outputs.cache-primary-key }}
path: ${{ env.CONAN_USER_HOME }}/.conan
- name: Run CMake
run: |
mkdir ${{ github.workspace }}\build
cd ${{ github.workspace }}\build
cmake -A x64 -D "CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}" -G "Visual Studio 17 2022" ..
- name: Build Anope
working-directory: ${{ github.workspace }}\build
run: |
msbuild PACKAGE.vcxproj /M:5 /P:Configuration=${{ env.BUILD_TYPE }} /P:Platform=x64 /VERBOSITY:MINIMAL
- name: Upload installer
if: "${{ github.event_name == 'release' }}"
working-directory: ${{ github.workspace }}\build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ github.event.release.tag_name }} $(Get-ChildItem anope-*.exe)
- name: Upload artifact
if: "${{ github.event_name != 'release' }}"
uses: actions/upload-artifact@v5
with:
name: windows-installer
path: ${{ github.workspace }}\build\\anope-*.exe
+18 -2
View File
@@ -1,4 +1,20 @@
config.cache
include/sysconf.h
build/
config.cache
docs/doxygen
include/sysconf.h
modules/m_ldap.cpp
modules/m_ldap_authentication.cpp
modules/m_ldap_oper.cpp
modules/m_mysql.cpp
modules/m_regex_pcre.cpp
modules/m_regex_pcre2.cpp
modules/m_regex_posix.cpp
modules/m_regex_tre.cpp
modules/m_sql_authentication.cpp
modules/m_sql_log.cpp
modules/m_sql_oper.cpp
modules/m_sqlite.cpp
modules/m_ssl_gnutls.cpp
modules/m_ssl_openssl.cpp
modules/stats
run/
+13 -3
View File
@@ -12,39 +12,49 @@ Charles Kingsley <chaz@anope.org>
Charles Kingsley <chaz@anope.org> <sjaz@5417fbe8-f217-4b02-8779-1006273d7864>
Cronus <cronus@nite-serv.com>
Daniel Engel <dane@zero.org> <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
David Robson <rob@anope.org> <robbeh@5417fbe8-f217-4b02-8779-1006273d7864>
David Robson <rob@anope.org> <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
David Robson <rob@anope.org> <robbeh@5417fbe8-f217-4b02-8779-1006273d7864>
Dennis Friis <peavey@inspircd.org> <peavey peavey@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864>
Fabio Scotoni <cculex@gmail.com>
Filippo Cortigiani <simos@simosnap.org> <devel@devel.crtnet.it>
Filippo Cortigiani <simos@simosnap.org> <simos@H7-25.fritz.box>
Florian Schulze <certus@anope.org> <certus certus@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Gabriel Acevedo H. <drstein@anope.org> <drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Harakiri <harakiri@overstack.fr>
Hendrik Jäger <gitcommit@henk.geekmail.org> <github@henk.geekmail.org>
Jan Milants <viper@anope.org>
Jan Milants <viper@anope.org> <jantje_85@5417fbe8-f217-4b02-8779-1006273d7864>
Jan Milants <viper@anope.org> <viper viper@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Jens Voss <dukepyrolator@anope.org> <anope@s15355730.onlinehome-server.info>
Jens Voss <dukepyrolator@anope.org> <DukePyrolator@5417fbe8-f217-4b02-8779-1006273d7864>
Jens Voss <dukepyrolator@anope.org> <DukePyrolator@anope.org>
Jens Voss <dukepyrolator@anope.org> Jens VoĂź <jens@pyrobook.(none)>
Jens Voss <dukepyrolator@anope.org> <jens@pyrobook.(none)>
k4be <k4be@pirc.pl> <34816207+k4bek4be@users.noreply.github.com>
Lee Holmes <lethality@anope.org>
Lee Holmes <lethality@anope.org> <lee@lethality.me.uk>
Mark Summers <mark@goopler.net> <mark mark@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Matt Schatz <genius3000@g3k.solutions>
Matt Ullman <matt@airraidsirens.com> <blindsight@gamesurge.net>
Michael Hazell <michaelhazell@hotmail.com> <Techman-@users.noreply.github.com>
Michael Stapelberg <michael@robustirc.net> <stapelberg@users.noreply.github.com>
Michael Wobst <wobst.michael@web.de>
Michael Wobst <wobst.michael@web.de> <michael@static.163.129.251.148.clients.your-server.de>
Michael Wobst <wobst.michael@web.de> <michael@wobst.at>
Naram Qashat <cyberbotx@anope.org> <cyberbotx@5417fbe8-f217-4b02-8779-1006273d7864>
Naram Qashat <cyberbotx@anope.org> <cyberbotx@cyberbotx.com>
Naram Qashat <cyberbotx@anope.org> <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>
PeGaSuS <droider.pc@gmail.com>
PeGaSuS <droider.pc@gmail.com> <25697531+TehPeGaSuS@users.noreply.github.com>
Pieter Bootsma <geniusdex@anope.org> <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Robby <robby@chatbelgie.be> <robby@anope.org>
Robby <robby@chatbelgie.be> <robby@chat.be>
Robert Scheck <robert@fedoraproject.org> <robert-scheck@users.noreply.github.com>
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>
Sadie Powell <sadie@witchery.services> Peter Powell <petpow@saberuk.com>
Sadie Powell <sadie@sadiepowell.dev> <petpow@saberuk.com>
Sadie Powell <sadie@sadiepowell.dev> <sadie@witchery.services>
Sebastian Barfurth <github@afreshmelon.com>
Sebastian V. <hal9000@denorastats.org>
Sebastian V. <hal9000@denorastats.org> <pimpmylinux@5417fbe8-f217-4b02-8779-1006273d7864>
Trystan S. Lee <trystan@nomadirc.net> <trystan trystan@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>
Val Lorentz <progval+git@progval.net> <progval+git@progval.net>
+17 -27
View File
@@ -1,14 +1,5 @@
# This usage of CMake requires at least version 2.4 (checks are made to determine what to use when certain versions lack functions)
cmake_minimum_required(VERSION 2.4 FATAL_ERROR)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
if(POLICY CMP0026)
cmake_policy(SET CMP0026 OLD)
endif(POLICY CMP0026)
if(POLICY CMP0007)
cmake_policy(SET CMP0007 OLD)
endif(POLICY CMP0007)
endif(COMMAND cmake_policy)
cmake_minimum_required(VERSION 2.4...3.20 FATAL_ERROR)
# Set the project as C++ primarily, but have C enabled for the checks required later
project(Anope CXX)
@@ -87,9 +78,6 @@ if(CMAKE_COMPILER_IS_GNUCXX)
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
@@ -232,6 +220,12 @@ if(EXTRA_LIBS)
link_directories(${EXTRA_LIBS})
endif(EXTRA_LIBS)
# setup conan
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/conanbuildinfo.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/conanbuildinfo.cmake")
conan_basic_setup()
endif()
# Find gettext
find_package(Gettext)
@@ -419,7 +413,6 @@ read_from_file(${Anope_SOURCE_DIR}/src/version.sh "^VERSION_" VERSIONS)
# Iterate through the strings found
foreach(VERSION_STR ${VERSIONS})
string(REGEX REPLACE "^VERSION_([A-Z]+)=\"?([^\"]*)\"?$" "\\1;\\2" VERSION_OUT ${VERSION_STR})
# Depends on CMP0007 OLD
list(LENGTH VERSION_OUT VERSION_LEN)
list(GET VERSION_OUT 0 VERSION_TYPE)
if(${VERSION_LEN} GREATER 1)
@@ -476,16 +469,8 @@ if(${Anope_SOURCE_DIR} STREQUAL ${Anope_BINARY_DIR})
endif(MSVC)
endif(${Anope_SOURCE_DIR} STREQUAL ${Anope_BINARY_DIR})
# Go into the following directories and run their CMakeLists.txt as well
add_subdirectory(data)
add_subdirectory(docs)
add_subdirectory(language)
add_subdirectory(src)
add_subdirectory(modules)
add_subdirectory(include)
# Get the filename of the Anope binary, to use later
get_target_property(SERVICES_BINARY ${PROGRAM_NAME} LOCATION)
set(SERVICES_BINARY "$<TARGET_FILE:${PROGRAM_NAME}>")
get_filename_component(SERVICES_BINARY ${SERVICES_BINARY} NAME)
# At install time, create the following additional directories
@@ -505,10 +490,6 @@ if(WIN32)
install(FILES ${Anope_SOURCE_DIR}/src/win32/anope.bat
DESTINATION ${BIN_DIR}
)
# Package any DLLs in src/win/
file(GLOB EXTRA_DLLS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${Anope_SOURCE_DIR}/src/win32/*.dll")
install(FILES ${EXTRA_DLLS} DESTINATION ${BIN_DIR})
endif(WIN32)
install(CODE "file(REMOVE_RECURSE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/modules\")")
@@ -557,3 +538,12 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
set(CPACK_MONOLITHIC_INSTALL TRUE)
include(CPack)
endif(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
# Go into the following directories and run their CMakeLists.txt as well
add_subdirectory(data)
add_subdirectory(docs)
add_subdirectory(language)
add_subdirectory(src)
add_subdirectory(modules)
add_subdirectory(include)
+5 -1
View File
@@ -2,7 +2,7 @@
#
# Configuration script for Services.
#
# Anope (c) 2003-2020 Anope Team
# Anope (C) 2003-2024 Anope Team
# Contact us at team@anope.org
#
# This program is free but copyrighted software; see the file COPYING for
@@ -149,6 +149,9 @@ while [ $# -ge 1 ] ; do
echo "-nointro Skip intro (disclaimer, etc)"
echo "-quick Skip questions, go straight to cmake"
exit 0
elif [ $1 = "-devel" ] ; then
DEBUG="yes"
INSTDIR="$PWD/run"
elif [ $1 = "-nocache" ] ; then
IGNORE_CACHE="1"
elif [ $1 = "-nointro" ] ; then
@@ -190,6 +193,7 @@ if [ ! "$NO_INTRO" ] ; then
clear
;;
esac
export MORE='-e'
. $SOURCE_DIR/src/version.sh
cat $SOURCE_DIR/.BANNER | sed "s/CURVER/$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH$VERSION_EXTRA/" | sed "s@SOURCE_DIR@$SOURCE_DIR@" | $PAGER
echo ""
+2 -2
View File
@@ -4,7 +4,7 @@ Anope is an open source set of IRC Services. It is highly modular, with a vast n
* [Website](https://anope.org)
* [GitHub](https://github.com/anope)
* IRC \#anope on irc.anope.org
* IRC \#anope on irc.teranova.net
## Installation
@@ -33,7 +33,7 @@ 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).
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.teranova.net](ircs://irc.teranova.net/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.
+19 -11
View File
@@ -160,7 +160,7 @@ macro(sort_list LIST)
# For CMake 2.4.4 or better, this can be done automatically
list(SORT ${LIST})
else(CMAKE244_OR_BETTER)
# For CMake 2.4.x before 2.4.4, we have to do this ourselves, firstly we'll create a teporary list
# For CMake 2.4.x before 2.4.4, we have to do this ourselves, firstly we'll create a temporary list
set(NEW_LIST)
# Iterate through the old list
foreach(ITEM ${${LIST}})
@@ -408,7 +408,7 @@ macro(calculate_depends SRC)
else(FOUND_${FILENAME}_INCLUDE)
# XXX
if(NOT ${FILENAME} STREQUAL "libintl.h")
message(FATAL_ERROR "${SRC} needs header file ${FILENAME} but we were unable to locate that header file! Check that the header file is within the search path of your OS.")
message(WARNING "${SRC} needs header file ${FILENAME} but we were unable to locate that header file! Check that the header file is within the search path of your OS.")
endif(NOT ${FILENAME} STREQUAL "libintl.h")
endif(FOUND_${FILENAME}_INCLUDE)
endif(CHECK_ANGLE_INCLUDES)
@@ -445,24 +445,32 @@ macro(calculate_libraries SRC SRC_LDFLAGS EXTRA_DEPENDS)
string(REGEX REPLACE "," ";" REQUIRED_LIBRARY ${REQUIRED_LIBRARY})
# Iterate through the libraries given
foreach(LIBRARY ${REQUIRED_LIBRARY})
# If the library has multiple names extract the alternate.
unset(LIBRARY_ALT)
if (${LIBRARY} MATCHES "^.+\\|.+$")
string(REGEX REPLACE ".+\\|(.*)" "\\1" LIBRARY_ALT ${LIBRARY})
string(REGEX REPLACE "(.+)\\|.*" "\\1" LIBRARY ${LIBRARY})
endif(${LIBRARY} MATCHES "^.+\\|.+$")
# Locate the library to see if it exists
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} ${LIBRARY_ALT} 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})
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})
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${LIBRARY_ALT} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS} NO_DEFAULT_PATH)
find_library(FOUND_${LIBRARY}_LIBRARY NAMES ${LIBRARY} ${LIBRARY_ALT} PATHS ${EXTRA_INCLUDE} ${EXTRA_LIBS})
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(FOUND_${LIBRARY}_LIBRARY)
# Get the path only of the library, to add it to linker flags
get_filename_component(LIBRARY_PATH ${FOUND_${LIBRARY}_LIBRARY} PATH)
if(MSVC)
# For Visual Studio, instead of editing the linker flags, we'll add the library to a separate list of extra dependencies
append_to_list(EXTRA_DEPENDENCIES "${FOUND_${LIBRARY}_LIBRARY}")
else(MSVC)
# For all others, add the library paths and libraries
# Get the path only of the library, to add it to library paths.
get_filename_component(LIBRARY_PATH ${FOUND_${LIBRARY}_LIBRARY} PATH)
append_to_list(LIBRARY_PATHS "${LIBRARY_PATH}")
append_to_list(LIBRARIES "${LIBRARY}")
# Extract the library short name, add it to the library path
get_filename_component(LIBRARY_NAME ${FOUND_${LIBRARY}_LIBRARY} NAME_WE)
string(REGEX REPLACE "^lib" "" LIBRARY_NAME ${LIBRARY_NAME})
append_to_list(LIBRARIES ${LIBRARY_NAME})
endif(MSVC)
else(FOUND_${LIBRARY}_LIBRARY)
# In the case of the library not being found, we fatally error so CMake stops trying to generate
@@ -497,7 +505,7 @@ endmacro(calculate_libraries)
# check_functions(<source filename> <output variable set to TRUE on success>)
#
# This macro is used in most of the module (sub)directories to calculate the
# fcuntion dependencies for the given source file.
# function dependencies for the given source file.
###############################################################################
macro(check_functions SRC SUCCESS)
# Default to true
@@ -531,7 +539,7 @@ endmacro(check_functions)
# of TRUE is given, periods will be converted to \\. for CPack.
###############################################################################
macro(add_to_cpack_ignored_files ITEM)
# Temporary copy of the orignal item
# Temporary copy of the original item
set(REAL_ITEM "${ITEM}")
# If we have 2+ arguments, assume that the second one was something like TRUE (doesn't matter really) and convert periods so they will be \\. for CPack
if(${ARGC} GREATER 1)
+3 -3
View File
@@ -10,9 +10,9 @@ if(NOT WIN32)
endif(GETTEXT_LIBRARY)
endif(GETTEXT_INCLUDE AND GETTEXT_MSGFMT)
else(NOT WIN32)
find_path(GETTEXT_INCLUDE libintl.h ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/include $ENV{VCINSTALLDIR}/include gettext/include ${EXTRA_INCLUDE})
find_library(GETTEXT_LIBRARY libintl PATHS ${DEFAULT_LIBRARY_DIRS} ${WSDK_PATH}/lib $ENV{VCINSTALLDIR}/lib gettext/lib ${EXTRA_LIBS})
find_program(GETTEXT_MSGFMT msgfmt PATHS ${DEFAULT_INCLUDE_DIRS} ${WSDK_PATH}/bin $ENV{VCINSTALLDIR}/bin gettext/bin ${EXTRA_INCLUDE})
find_path(GETTEXT_INCLUDE libintl.h)
find_library(GETTEXT_LIBRARY gnuintl)
find_program(GETTEXT_MSGFMT msgfmt)
if(GETTEXT_INCLUDE AND GETTEXT_LIBRARY AND GETTEXT_MSGFMT)
set(GETTEXT_FOUND TRUE)
set(GETTEXT_LIBRARIES ${GETTEXT_LIBRARY})
+25 -25
View File
@@ -118,7 +118,7 @@ Var AR_RegFlags
"exit_${SecName}:"
!macroend
!macro RemoveSection SecName
!macro RemoveSection_CPack SecName
; This macro is used to call section's Remove_... macro
;from the uninstaller.
;Input: section index constant name specified in Section command.
@@ -348,7 +348,7 @@ Function un.RemoveFromPath
FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Uninstall sutff
; Uninstall stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
###########################################
@@ -452,15 +452,15 @@ Done:
Exch $R1
FunctionEnd
Function ConditionalAddToRegisty
Function ConditionalAddToRegistry
Pop $0
Pop $1
StrCmp "$0" "" ConditionalAddToRegisty_EmptyString
StrCmp "$0" "" ConditionalAddToRegistry_EmptyString
WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_NAME@" \
"$1" "$0"
;MessageBox MB_OK "Set Registry: '$1' to '$0'"
DetailPrint "Set install registry entry: '$1' to '$0'"
ConditionalAddToRegisty_EmptyString:
ConditionalAddToRegistry_EmptyString:
FunctionEnd
;--------------------------------
@@ -558,44 +558,44 @@ Section "-Core installation"
WriteUninstaller "$INSTDIR\Uninstall.exe"
Push "DisplayName"
Push "@CPACK_NSIS_DISPLAY_NAME@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "DisplayVersion"
Push "@CPACK_PACKAGE_VERSION@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "Publisher"
Push "@CPACK_PACKAGE_VENDOR@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "UninstallString"
Push "$INSTDIR\Uninstall.exe"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "NoRepair"
Push "1"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!ifdef CPACK_NSIS_ADD_REMOVE
;Create add/remove functionality
Push "ModifyPath"
Push "$INSTDIR\AddRemove.exe"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!else
Push "NoModify"
Push "1"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!endif
; Optional registration
Push "DisplayIcon"
Push "$INSTDIR\@CPACK_NSIS_INSTALLED_ICON_NAME@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "HelpLink"
Push "@CPACK_NSIS_HELP_LINK@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "URLInfoAbout"
Push "@CPACK_NSIS_URL_INFO_ABOUT@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "Contact"
Push "@CPACK_NSIS_CONTACT@"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
;Create shortcuts
@@ -607,19 +607,19 @@ Section "-Core installation"
; Write special uninstall registry entries
Push "StartMenu"
Push "$STARTMENU_FOLDER"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "DoNotAddToPath"
Push "$DO_NOT_ADD_TO_PATH"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "AddToPathAllUsers"
Push "$ADD_TO_PATH_ALL_USERS"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "AddToPathCurrentUser"
Push "$ADD_TO_PATH_CURRENT_USER"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
Push "InstallToDesktop"
Push "$INSTALL_DESKTOP"
Call ConditionalAddToRegisty
Call ConditionalAddToRegistry
@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
@@ -731,7 +731,7 @@ Section "Uninstall"
DeleteRegKey SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@"
; Removes all optional components
!insertmacro SectionList "RemoveSection"
!insertmacro SectionList "RemoveSection_CPack"
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
@@ -739,7 +739,7 @@ Section "Uninstall"
@CPACK_NSIS_DELETE_ICONS@
@CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories
;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
startMenuDeleteLoop:
@@ -752,13 +752,13 @@ Section "Uninstall"
StrCmp "$MUI_TEMP" "$SMPROGRAMS" startMenuDeleteLoopDone startMenuDeleteLoop
startMenuDeleteLoopDone:
; If the user changed the shortcut, then untinstall may not work. This should
; If the user changed the shortcut, then uninstall may not work. This should
; try to fix it.
StrCpy $MUI_TEMP "$START_MENU"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS_EXTRA@
;Delete empty start menu parent diretories
;Delete empty start menu parent directories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
secondStartMenuDeleteLoop:
+7 -7
View File
@@ -249,7 +249,7 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
* botserv/kick/italics - Configures BotServ's italics kicker.
* botserv/kick/repeat - Configures BotServ's repeat kicker.
* botserv/kick/reverses - Configures BotServ's reverse kicker.
* botserv/kick/underlines - Configures BotServ's reverse kicker.
* botserv/kick/underlines - Configures BotServ's underline kicker.
* botserv/set/dontkickops - Used for preventing BotServ from kicking channel operators.
* botserv/set/dontkickvoices - Used for preventing BotServ from kicking voices.
*
@@ -333,10 +333,10 @@ privilege
/*
* fantasy
*
* Allows 'fantasist' commands to be used in channels.
* Allows fantasy commands (e.g. !kick) to be used in channels.
*
* 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 fantasy commands.
*/
module
{
@@ -375,15 +375,15 @@ fantasy { name = "ENFORCE"; command = "chanserv/enforce"; }
fantasy { name = "ENTRYMSG"; command = "chanserv/entrymsg"; }
fantasy { name = "FLAGS"; command = "chanserv/flags"; }
fantasy { name = "HALFOP"; command = "chanserv/modes"; }
fantasy { name = "HELP"; command = "generic/help"; prepend_channel = false; }
fantasy { name = "HELP"; command = "generic/help"; prepend_channel = no; }
fantasy { name = "HOP"; command = "chanserv/xop"; }
fantasy { name = "INFO"; command = "chanserv/info"; prepend_channel = false; }
fantasy { name = "INFO"; command = "chanserv/info"; prepend_channel = no; }
fantasy { name = "INVITE"; command = "chanserv/invite"; }
fantasy { name = "K"; command = "chanserv/kick"; }
fantasy { name = "KB"; command = "chanserv/ban"; }
fantasy { name = "KICK"; command = "chanserv/kick"; }
fantasy { name = "LEVELS"; command = "chanserv/levels"; }
fantasy { name = "LIST"; command = "chanserv/list"; prepend_channel = false; }
fantasy { name = "LIST"; command = "chanserv/list"; prepend_channel = no; }
fantasy { name = "LOG"; command = "chanserv/log"; }
fantasy { name = "MODE"; command = "chanserv/mode"; }
fantasy { name = "MUTE"; command = "chanserv/ban"; kick = no; mode = "QUIET"; }
@@ -391,7 +391,7 @@ fantasy { name = "OP"; command = "chanserv/modes"; }
fantasy { name = "OWNER"; command = "chanserv/modes"; }
fantasy { name = "PROTECT"; command = "chanserv/modes"; }
fantasy { name = "QOP"; command = "chanserv/xop"; }
fantasy { name = "SEEN"; command = "chanserv/seen"; prepend_channel = false; }
fantasy { name = "SEEN"; command = "chanserv/seen"; prepend_channel = no; }
fantasy { name = "SOP"; command = "chanserv/xop"; }
fantasy { name = "STATUS"; command = "chanserv/status"; }
fantasy { name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; }
+11 -10
View File
@@ -89,10 +89,12 @@ module
* - noautoop: Disables autoop on the channel
* - cs_keep_modes: Enables keep modes on the channel, which retains modes when the channel is
* not in use.
* - cs_no_expire: Enables no expire. Needs founder, successor (if set) or anyone in the access list
* to be a registered nick, otherwise the channel will be dropped.
* - none: No defaults
*
* This directive is optional, if left blank, the options will default to keeptopic, cs_secure, securefounder,
* and signkick. If you really want no defaults, use "none" by itself as the option.
* This directive is optional, if left blank, the options will default to keeptopic, peace, cs_secure,
* securefounder, and signkick. If you really want no defaults, use "none" by itself as the option.
*/
defaults = "keeptopic peace cs_secure securefounder signkick"
@@ -107,10 +109,9 @@ module
/*
* The length of time before a channel registration expires.
*
* This directive is optional, but recommended.
* If not set, the default is 14 days.
* This directive is optional. If not set, the default is never.
*/
expire = 14d
#expire = 90d
/*
* The maximum number of entries on a channel's access list.
@@ -161,19 +162,19 @@ module
/*
* If set, prevents channel access entries from containing hostmasks.
*/
disallow_hostmask_access = false
disallow_hostmask_access = no
/*
* If set, prevents channels from being on access lists.
*/
disallow_channel_access = false
disallow_channel_access = no
/*
* If set, ChanServ will always lower the timestamp of registered channels to their registration date.
* This prevents several race conditions where unauthorized users can join empty registered channels and set
* modes etc. prior to services deopping them.
*/
always_lower_ts = false
always_lower_ts = no
}
/*
@@ -1117,7 +1118,7 @@ module
name = "cs_seen"
/* If set, uses the older 1.8 style seen, which is less resource intensive */
simple = false
simple = no
/* Sets the time to keep seen entries in the seen database. */
purgetime = "30d"
@@ -1166,7 +1167,7 @@ module
* If set, persistent channels have their creation times lowered to their
* original registration dates.
*/
persist_lower_ts = true
persist_lower_ts = yes
}
command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; }
command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; }
+127 -105
View File
@@ -65,10 +65,6 @@
* will typically be disabled. If this is not the case, more
* information will be given in the documentation.
*
* [DISCOURAGED]
* Indicates a directive which may cause undesirable side effects if
* specified.
*
* [DEPRECATED]
* Indicates a directive which will disappear in a future version of
* Services, usually because its functionality has been either
@@ -85,12 +81,12 @@
/*
* The services.host define is used in multiple different locations throughout the
* configuration for services clients hostnames.
* configuration for the server name and pseudoclient hostnames.
*/
define
{
name = "services.host"
value = "services.localhost.net"
value = "services.example.com"
}
/*
@@ -127,13 +123,16 @@ define
* and serverinfo configuration would look like:
*
* # This goes in inspircd.conf, *NOT* your Anope config!
* <link name="services.localhost.net"
* <module name="hidechans">
* <module name="services_account">
* <module name="spanningtree">
* <bind address="127.0.0.1" port="7000" type="servers">
* <link name="services.example.com"
* ipaddr="127.0.0.1"
* port="7000"
* sendpass="mypassword"
* recvpass="mypassword">
* <uline server="services.localhost.net" silent="yes">
* <bind address="127.0.0.1" port="7000" type="servers">
* <uline server="services.example.com" silent="yes">
*
* An example configuration for UnrealIRCd that is compatible with the below uplink
* and serverinfo configuration would look like:
@@ -146,14 +145,14 @@ define
* serversonly;
* };
* };
* link services.localhost.net {
* link services.example.com {
* incoming {
* mask *@127.0.0.1;
* };
* password "mypassword";
* class servers;
* };
* ulines { services.localhost.net; };
* ulines { services.example.com; };
*/
uplink
{
@@ -206,7 +205,7 @@ serverinfo
* other server names on the rest of your IRC network. Note that it does not have
* to be an existing hostname, just one that isn't on your network already.
*/
name = "services.localhost.net"
name = "services.host"
/*
* The text which should appear as the server's information in /WHOIS and similar
@@ -251,21 +250,21 @@ serverinfo
* You MUST modify this to match the IRCd you run.
*
* Supported:
* - bahamut
* - [DEPRECATED] bahamut
* - charybdis
* - hybrid
* - inspircd12
* - inspircd20
* - inspircd3
* - [DEPRECATED] inspircd12
* - [DEPRECATED] inspircd20
* - inspircd3 (for 3.x and 4.x)
* - ngircd
* - plexus
* - ratbox
* - unreal (for 3.2.x)
* - [DEPRECATED] unreal (for 3.2.x)
* - unreal4 (for 4.x or later)
*/
module
{
name = "inspircd20"
name = "inspircd3"
/*
* Some protocol modules can enforce mode locks server-side. This reduces the spam caused by
@@ -344,16 +343,16 @@ networkinfo
*
* It is recommended you DON'T change this.
*/
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-/"
/*
* If set to true, allows vHosts to not contain dots (.).
* If enabled, allows vHosts to not contain dots (.).
* Newer IRCds generally do not have a problem with this, but the same warning as
* vhost_chars applies.
*
* It is recommended you DON'T change this.
*/
allow_undotted_vhosts = false
allow_undotted_vhosts = no
/*
* The characters that are not allowed to be at the very beginning or very ending
@@ -361,7 +360,7 @@ networkinfo
*
* It is recommended you DON'T change this.
*/
disallow_start_or_end = ".-"
disallow_start_or_end = ".-/"
}
/*
@@ -455,12 +454,6 @@ options
*/
readtimeout = 5s
/*
* Sets the interval between sending warning messages for program errors via
* WALLOPS/GLOBOPS.
*/
warningtimeout = 4h
/*
* Sets the (maximum) frequency at which the timeout list is checked. This,
* combined with readtimeout above, determines how accurately timed events,
@@ -491,7 +484,7 @@ options
/*
* If set, will force Services to only respond to PRIVMSGs addresses to
* Nick@ServerName - e.g. NickServ@localhost.net. This should be used in
* Nick@ServerName - e.g. NickServ@example.com. This should be used in
* conjunction with IRCd aliases. This directive is optional.
*
* This option will have no effect on some IRCds, such as TS6 IRCds.
@@ -621,7 +614,7 @@ include
}
/*
* [OPTIONAL] NickServ
* [RECOMMENDED] NickServ
*
* Includes nickserv.example.conf, which is necessary for NickServ functionality.
*
@@ -660,6 +653,8 @@ log
* - a channel name
* - a filename
* - globops
*
* If you specify a filename the current date in the format ".YYYYMMDD" will be appended to the path.
*/
target = "services.log"
@@ -710,7 +705,7 @@ log
* means "* ~operserv/*" would log everything because * matches everything.
*
* Valid admin, override, and command options are:
* pesudo-serv/commandname (e.g. operserv/akill, chanserv/set)
* pseudo-serv/commandname (e.g. operserv/akill, chanserv/set)
*
* Valid server options are:
* connect, quit, sync, squit
@@ -756,7 +751,6 @@ log
* You may define groups of commands and privileges, as well as who may use them.
*
* This block is recommended, as without it you will be unable to access most oper commands.
* It replaces the old ServicesRoot directive amongst others.
*
* The command names below are defaults and are configured in the *serv.conf's. If you configure
* additional commands with permissions, such as commands from third party modules, the permissions
@@ -948,20 +942,25 @@ mail
* If set, this option enables the mail commands in Services. You may choose
* to disable it if you have no Sendmail-compatible mailer installed. Whilst
* this directive (and entire block) is optional, it is required if
* nickserv:registration is set to yes.
* nickserv:registration is set to mail.
*/
usemail = yes
/*
* This is the command-line that will be used to call the mailer to send an
* e-mail. It must be called with all the parameters needed to make it
* scan the mail input to find the mail recipient; consult your mailer
* documentation.
* The command used for sending emails. It is assumed that this behaves like
* sendmail (i.e. it reads the email from the standard input stream) but you
* should probably use Postfix or some other sendmail-compatible emailer
* instead of sendmail as sendmail is very hard to configure correctly. If
* you are using Windows then https://www.glob.com.au/sendmail/ is probably
* the best option currently.
*
* Postfix users must use the compatible sendmail utility provided with
* it. This one usually needs no parameters on the command-line. Most
* sendmail applications (or replacements of it) require the -t option
* to be used.
* If your emailer sends emails directly from the services host you will
* need to configure DKIM, DMARC, and SPF to avoid email hosts from marking
* your services emails as spam. It is important that you do this *BEFORE*
* sending emails for the first time as some email providers will add your
* host to a DNSBL like Spamhaus if they consider your emails to be spam. If
* this is too difficult then you may want to consider sending emails via an
* external email provider using a forwarder like msmtp.
*/
sendmailpath = "/usr/sbin/sendmail -t"
@@ -969,7 +968,7 @@ mail
* This is the e-mail address from which all the e-mails are to be sent from.
* It should really exist.
*/
sendfrom = "services@localhost.net"
sendfrom = "services@example.com"
/*
* This controls the minimum amount of time a user must wait before sending
@@ -992,6 +991,14 @@ mail
*/
#dontquoteaddresses = yes
/*
* The content type to use when sending emails.
*
* This directive is optional, and is generally only needed if you want to
* use HTML or non UTF-8 text in your services emails.
*/
#content_type = "text/plain; charset=UTF-8"
/*
* The subject and message of emails sent to users when they register accounts.
*
@@ -1100,7 +1107,7 @@ mail
/*
* [RECOMMENDED] db_flatfile
*
* This is the default flatfile database format.
* Stores your database in a custom flatfile format.
*/
module
{
@@ -1119,7 +1126,7 @@ module
*
* This directive is optional, but recommended.
*/
keepbackups = 3
keepbackups = 7
/*
* Allows Services to continue file write operations (i.e. database saving)
@@ -1140,11 +1147,6 @@ module
* This is only useful with very large databases, with hundreds
* of thousands of objects, that have a noticeable delay from
* writing databases.
*
* If your database is large enough cause a noticeable delay when
* saving you should consider a more powerful alternative such
* as db_sql or db_redis, which incrementally update their
* databases asynchronously in real time.
*/
fork = no
}
@@ -1152,16 +1154,16 @@ module
/*
* db_sql and db_sql_live
*
* db_sql module allows saving and loading databases using one of the SQL engines.
* This module loads the databases once on startup, then incrementally updates
* objects in the database as they are changed within Anope in real time. Changes
* to the SQL tables not done by Anope will have no effect and will be overwritten.
* Allows saving and loading databases to a SQL database.
*
* db_sql_live module allows saving and loading databases using one of the SQL engines.
* This module reads and writes to SQL in real time. Changes to the SQL tables
* will be immediately reflected into Anope. This module should not be loaded
* in conjunction with db_sql.
* db_sql loads the databases once on startup and then incrementally updates in
* in the database as they are changed within Anope. Changes to the SQL tables
* not done by Anope will have no effect and will be overwritten.
*
* db_sql_live module reads and writes to SQL in real time. Changes to the SQL
* tables will be immediately reflected in Anope. This module can not be loaded
* at the same time as db_sql. It should also not be used on large networks as
* it executes quite a lot of queries which can cause performance issues.
*/
#module
{
@@ -1169,10 +1171,10 @@ module
#name = "db_sql_live"
/*
* The SQL service db_sql(_live) should use, these are configured in modules.conf.
* For MySQL, this should probably be mysql/main.
* The SQL service that db_sql(_live) should use. These are configured in
* modules.example.conf. For MySQL, this should probably be mysql/main.
*/
engine = "sqlite/main"
engine = "mysql/main"
/*
* An optional prefix to prepended to the name of each created table.
@@ -1180,17 +1182,22 @@ module
*/
#prefix = "anope_db_"
/* Whether or not to import data from another database module in to SQL on startup.
* If you enable this, be sure that the database services is configured to use is
* empty and that another database module to import from is loaded before db_sql.
* After you enable this and do a database import you should disable it for
* subsequent restarts.
/*
* Whether or not to import data from another database module in to SQL on
* startup.
*
* Note that you can not import databases using db_sql_live. If you want to import
* databases and use db_sql_live you should import them using db_sql, then shut down
* and start services with db_sql_live.
* If you enable this, be sure that the database Anope is configured to use
* is empty and that another database module to import from is loaded BEFORE
* db_sql. After you enable this and do a database import you MUST disable
* it for subsequent restarts. If you want to keep writing a file database
* after the SQL import is done you should load db_flatfile AFTER this
* module.
*
* Note that you can not import databases using db_sql_live. If you want to
* import databases and use db_sql_live you should import them using db_sql,
* then shut down and start Anope with db_sql_live.
*/
import = false
import = no
}
/*
@@ -1217,50 +1224,65 @@ module
/*
* [RECOMMENDED] Encryption modules.
*
* The encryption modules are used when dealing with passwords. This determines how
* the passwords are stored in the databases, and does not add any security as
* far as transmitting passwords over the network goes.
*
* Without any encryption modules loaded users will not be able to authenticate unless
* there is another module loaded that provides authentication checking, such as
* m_ldap_authentication or m_sql_authentication.
*
* With enc_none, passwords will be stored in plain text, allowing for passwords
* to be recovered later but it isn't secure and therefore is not recommended.
*
* The other encryption modules use one-way encryption, so the passwords can not
* be recovered later if those are used.
*
* The first encryption module loaded is the primary encryption module. All new passwords are
* encrypted by this module. Old passwords stored in another encryption method are
* automatically re-encrypted by the primary encryption module on next identify.
*
* enc_md5, enc_sha1, and enc_old are deprecated, and are provided for users
* to upgrade to a newer encryption module. Do not use them as the primary
* encryption module. They will be removed in a future release.
* The encryption modules are used when dealing with passwords. This determines
* how the passwords are stored in the databases.
*
* The first encryption module loaded is the primary encryption module. All new
* passwords are encrypted by this module. Old passwords encrypted with another
* encryption method are automatically re-encrypted with the primary encryption
* module the next time the user identifies.
*/
#module { name = "enc_bcrypt" }
module { name = "enc_sha256" }
/*
* When using enc_none, passwords will be stored without encryption. This isn't secure
* therefore it is not recommended.
* enc_bcrypt
*
* Provides support for encrypting passwords using the Bcrypt algorithm. See
* https://en.wikipedia.org/wiki/Bcrypt for more information.
*/
#module { name = "enc_none" }
#module
{
name = "enc_bcrypt"
/* Deprecated encryption modules */
/** The number of Bcrypt rounds to perform on passwords. Can be set to any
* number between 10 and 32 but higher numbers are more CPU intensive and
* may impact performance.
*/
#rounds = 10
}
/*
* [RECOMMENDED] enc_sha256
*
* Provides support for encrypting passwords using the SHA-2 algorithm with a
* salted initialization vector. See https://en.wikipedia.org/wiki/SHA-2 for
* more information.
*/
module
{
name = "enc_sha256"
}
/*
* [DEPRECATED] enc_md5, enc_none, enc_old, enc_sha1
*
* Provides support for passwords encrypted using encryption methods from older
* versions of Anope. These methods are no longer considered secure and will be
* removed in a future version of Anope. Only load them if you are upgrading
* from a previous version of Anope that used them.
*
* enc_md5: Verifies passwords encrypted with the MD5 algorithm
* enc_none: Verifies passwords that are not encrypted
* enc_sha1: Verifies passwords encrypted with the SHA1 algorithm
* enc_old: Verifies passwords encrypted with the broken MD5 algorithm used
* before 1.7.17.
*
* You must load another encryption method before this to re-encrypt passwords
* with when a user logs in.
*/
#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.
* If your databases were made using that module, load it here to allow conversion to the primary
* encryption method.
*/
#module { name = "enc_none" }
#module { name = "enc_old" }
#module { name = "enc_sha1" }
/* Extra (optional) modules. */
include
+1 -1
View File
@@ -71,7 +71,7 @@ module
*
* This directive is optional.
*/
#globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone"
#globaloncycledown = "Services are restarting, they will be back shortly - please be good while they're gone"
/*
* This is the global message that will be sent when Services (re)join the
+3 -3
View File
@@ -68,7 +68,7 @@ module
/*
* If enabled, vhosts are activated on users immediately when they are set.
*/
activate_on_set = false
activate_on_set = no
}
/*
@@ -110,12 +110,12 @@ module
/*
* Upon nickserv/group, this option syncs the nick's main vHost to the grouped nick.
*/
syncongroup = false
syncongroup = no
/*
* This makes vhosts act as if they are per account.
*/
synconset = false
synconset = no
}
command { service = "HostServ"; name = "GROUP"; command = "hostserv/group"; }
+2 -5
View File
@@ -78,8 +78,7 @@ module
/*
* The delay between consecutive uses of the MemoServ SEND command. This can help prevent spam
* as well as denial-of-service attacks from sending large numbers of memos and filling up disk
* space (and memory). The default 3-second wait means a maximum average of 150 bytes of memo
* per second per user under the current IRC protocol.
* space (and memory).
*
* This directive is optional, but recommended.
*/
@@ -186,8 +185,6 @@ command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; }
* Provides the command memoserv/rsend.
*
* Used to send a memo requiring a receipt be sent back once it is read.
*
* Requires configuring memoserv:memoreceipt.
*/
#module
{
@@ -198,7 +195,7 @@ command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; }
*
* This directive is optional.
*/
operonly = false
operonly = no
}
#command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; }
+50 -30
View File
@@ -65,7 +65,7 @@ module { name = "help" }
/* This should be the names of the public facing nameservers serving the records. */
nameservers = "ns1.example.com ns2.example.com"
/* The time slave servers are allowed to cache. This should be reasonably low
/* The time secondary servers are allowed to cache for. This should be reasonably low
* if you want your records to be updated without much delay.
*/
refresh = 3600
@@ -233,7 +233,7 @@ module { name = "help" }
}
/*
* m_ldap [EXTRA]
* [EXTRA] m_ldap
*
* This module allows other modules to use LDAP. By itself, this module does nothing useful.
*/
@@ -254,7 +254,7 @@ module { name = "help" }
}
/*
* m_ldap_authentication [EXTRA]
* [EXTRA] m_ldap_authentication
*
* This module allows many commands such as IDENTIFY, RELEASE, RECOVER, GHOST, etc. use
* LDAP to authenticate users. Requires m_ldap.
@@ -304,17 +304,17 @@ module { name = "help" }
*
* If not set, then registration is not blocked.
*/
#disable_register_reason = "To register on this network visit https://some.misconfigured.site/register"
#disable_register_reason = "To register on this network visit https://some.misconfigured.site.example/register"
/*
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
* If not set, then email changing is not blocked.
*/
#disable_email_reason = "To change your email address visit https://some.misconfigured.site"
#disable_email_reason = "To change your email address visit https://some.misconfigured.site.example"
}
/*
* m_ldap_oper [EXTRA]
* [EXTRA] m_ldap_oper
*
* This module dynamically ties users to Anope opertypes when they identify
* via LDAP group membership. Requires m_ldap.
@@ -355,7 +355,7 @@ module { name = "help" }
}
/*
* m_mysql [EXTRA]
* [EXTRA] m_mysql
*
* This module allows other modules to use MySQL.
*/
@@ -401,14 +401,23 @@ module { name = "help" }
}
/*
* m_regex_pcre [EXTRA]
* [DEPRECATED] [EXTRA] m_regex_pcre
*
* Provides the regex engine regex/pcre, which uses the Perl Compatible Regular Expressions library.
* Provides the regex engine regex/pcre, which uses version 1 of the Perl Compatible Regular
* Expressions library. This can not be loaded at the same time as the m_regex_pcre2 module.
*/
#module { name = "m_regex_pcre" }
/*
* m_regex_posix [EXTRA]
* [EXTRA] m_regex_pcre2
*
* Provides the regex engine regex/pcre, which uses version 2 of the Perl Compatible Regular
* Expressions library. This can not be loaded at the same time as the m_regex_pcre module.
*/
#module { name = "m_regex_pcre2" }
/*
* [EXTRA] m_regex_posix
*
* Provides the regex engine regex/posix, which uses the POSIX compliant regular expressions.
* This is likely the only regex module you will not need extra libraries for.
@@ -416,7 +425,7 @@ module { name = "help" }
#module { name = "m_regex_posix" }
/*
* m_regex_tre [EXTRA]
* [EXTRA] m_regex_tre
*
* Provides the regex engine regex/tre, which uses the TRE regex library.
*/
@@ -433,7 +442,7 @@ module { name = "help" }
service = "ChanServ"; name = "CLEAR"; command = "rewrite"
/* Enable m_rewrite. */
rewrite = true
rewrite = yes
/* Source message to match. A $ can be used to match anything. */
rewrite_source = "CLEAR $ USERS"
@@ -537,15 +546,26 @@ module { name = "help" }
/*
* m_sasl
*
* Some IRCds allow "SASL" authentication to let users identify to Services
* during the IRCd user registration process. If this module is loaded, Services will allow
* authenticating users through this mechanism. Supported mechanisms are:
* PLAIN, EXTERNAL.
* Provides support for authentication to services via IRCv3 SASL. This is a standardised
* alternative to ns_identify that is supported by several IRCds.
*
* You will need to configure your IRCd to use SASL. See the following links for details:
*
* InspIRCd: https://docs.inspircd.org/4/modules/sasl/
* UnrealIRCd: https://www.unrealircd.org/docs/SASL#Enabling_SASL_on_the_server
*/
module { name = "m_sasl" }
module
{
name = "m_sasl"
/*
* The nick of the client which operates as the SASL agent.
*/
#agent = "NickServ"
}
/*
* m_ssl_gnutls [EXTRA]
* [EXTRA] m_ssl_gnutls
*
* This module provides SSL services to Anope using GnuTLS, for example to
* connect to the uplink server(s) via SSL.
@@ -583,7 +603,7 @@ module { name = "m_sasl" }
}
/*
* m_ssl_openssl [EXTRA]
* [EXTRA] m_ssl_openssl
*
* This module provides SSL services to Anope using OpenSSL, for example to
* connect to the uplink server(s) via SSL.
@@ -616,7 +636,7 @@ module { name = "m_sasl" }
}
/*
* m_sql_authentication [EXTRA]
* [EXTRA] m_sql_authentication
*
* This module allows authenticating users against an external SQL database using a custom
* query.
@@ -657,20 +677,20 @@ module { name = "m_sasl" }
* If set, the reason to give the users who try to "/msg NickServ REGISTER".
* If not set, then registration is not blocked.
*/
#disable_reason = "To register on this network visit https://some.misconfigured.site/register"
#disable_reason = "To register on this network visit https://some.misconfigured.site.example/register"
/*
* If set, the reason to give the users who try to "/msg NickServ SET EMAIL".
* If not set, then email changing is not blocked.
*/
#disable_email_reason = "To change your email address visit https://some.misconfigured.site"
#disable_email_reason = "To change your email address visit https://some.misconfigured.site.example"
}
/*
* m_sql_log [EXTRA]
* [EXTRA] m_sql_log
*
* This module adds an additional target option to log{} blocks
* that allows logging Service's logs to SQL. To log to SQL, add
* that allows logging Services' logs to SQL. To log to SQL, add
* the SQL service name to log:targets prefixed by sql_log:. For
* example:
*
@@ -687,7 +707,7 @@ module { name = "m_sasl" }
#module { name = "m_sql_log" }
/*
* m_sql_oper [EXTRA]
* [EXTRA] m_sql_oper
*
* This module allows granting users services operator privileges and possibly IRC Operator
* privileges based on an external SQL database using a custom query.
@@ -713,7 +733,7 @@ module { name = "m_sasl" }
}
/*
* m_sqlite [EXTRA]
* [EXTRA] m_sqlite
*
* This module allows other modules to use SQLite.
*/
@@ -728,7 +748,7 @@ module { name = "m_sasl" }
name = "sqlite/main"
/* The database name, it will be created if it does not exist. */
database = "anope.db"
database = "anope.sqlite"
}
}
@@ -746,13 +766,13 @@ module { name = "m_sasl" }
name = "webcpanel"
/* Web server to use. */
server = "httpd/main";
server = "httpd/main"
/* Template to use. */
template = "default";
template = "default"
/* Page title. */
title = "Anope IRC Services";
title = "Anope IRC Services"
}
/*
+14 -13
View File
@@ -68,7 +68,7 @@ module
/*
* Force users to give an e-mail address when they register a nick.
*
* This directive defaults to "yes" and is recommended to be enabled. This is required if e-mail registration is enabled.
* This directive defaults to "yes" and is recommended to be enabled.
*/
forceemail = yes
@@ -92,8 +92,10 @@ module
*
* The options are:
* - killprotect: Kill nick if not identified within 60 seconds
* - kill_quick: Kill nick if not identified within 20 seconds, this one overrides the above
* option and the above must be specified with this one
* - kill_quick: Kill nick if not identified within 20 seconds, this one overrides the killprotect
* option and the killprotect option must be specified with this one
* - kill_immed: Kill nick immediately if not identified, this one overrides both the killprotect
* and kill_quick options and the killprotect option must be specified with this one
* - ns_secure: Enable nickname security, requiring the nick's password before any operations
* can be done on it
* - ns_private: Hide the nick from NickServ's LIST command
@@ -108,12 +110,11 @@ module
* - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires
* options:useprivmsg to be enabled as well
* - 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
* memo_receive. If you really want no defaults, use "none" by itself as the option.
*/
defaults = "ns_secure ns_private hide_email hide_mask memo_signon memo_receive autoop"
defaults = "killprotect ns_secure ns_private hide_email hide_mask memo_signon memo_receive autoop"
/*
* The minimum length of time between consecutive uses of NickServ's REGISTER command. This
@@ -334,7 +335,7 @@ module { name = "ns_getemail" }
command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"; permission = "nickserv/getemail"; group = "nickserv/admin"; }
/*
* ns_getpass
* [DEPRECATED] ns_getpass
*
* Provides the command nickserv/getpass.
*
@@ -392,7 +393,7 @@ module
*/
maxlogins = 10
}
command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; hide = true; }
command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; hide = yes; }
command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; }
/*
@@ -592,12 +593,12 @@ command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/sas
module { name = "ns_set_misc" }
command { service = "NickServ"; name = "SET URL"; command = "nickserv/set/misc"; misc_description = _("Associate a URL with your account"); }
command { service = "NickServ"; name = "SASET URL"; command = "nickserv/saset/misc"; misc_description = _("Associate a URL with this account"); permission = "nickserv/saset/url"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET ICQ"; command = "nickserv/set/misc"; misc_description = _("Associate an ICQ account with your account"); }
#command { service = "NickServ"; name = "SASET ICQ"; command = "nickserv/saset/misc"; misc_description = _("Associate an ICQ account with this account"); permission = "nickserv/saset/icq"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET TWITTER"; command = "nickserv/set/misc"; misc_description = _("Associate a Twitter account with your account"); }
#command { service = "NickServ"; name = "SASET TWITTER"; command = "nickserv/saset/misc"; misc_description = _("Associate a Twitter account with this account"); permission = "nickserv/saset/twitter"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET FACEBOOK"; command = "nickserv/set/misc"; misc_description = _("Associate a Facebook URL with your account"); }
#command { service = "NickServ"; name = "SASET FACEBOOK"; command = "nickserv/saset/misc"; misc_description = _("Associate a Facebook URL with this account"); permission = "nickserv/saset/facebook"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET DISCORD"; command = "nickserv/set/misc"; misc_description = _("Associate a Discord account with your account"); }
#command { service = "NickServ"; name = "SASET DISCORD"; command = "nickserv/saset/misc"; misc_description = _("Associate a Discord account with this account"); permission = "nickserv/saset/discord"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET MASTODON"; command = "nickserv/set/misc"; misc_description = _("Associate a Mastodon account with your account"); }
#command { service = "NickServ"; name = "SASET MASTODON"; command = "nickserv/saset/misc"; misc_description = _("Associate a Mastodon account with this account"); permission = "nickserv/saset/mastodon"; group = "nickserv/admin"; }
#command { service = "NickServ"; name = "SET TIMEZONE"; command = "nickserv/set/misc"; misc_description = _("Associate a time zone with your account"); }
#command { service = "NickServ"; name = "SASET TIMEZONE"; command = "nickserv/saset/misc"; misc_description = _("Associate a time zone with this account"); permission = "nickserv/saset/timezone"; group = "nickserv/admin"; }
/*
* ns_status
+8 -8
View File
@@ -100,7 +100,7 @@ module
killonsqline = yes
/*
* Adds the nickname of the IRC Operator issuing an AKILL to the kill reason.
* Adds the nickname of the Services Operator issuing an AKILL to the kill reason.
*
* This directive is optional.
*/
@@ -184,8 +184,8 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
* - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive
* - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive
* - nonewclients: KILL any new clients trying to connect
* - operonly: Services will ignore all non-IRCops
* - silentoperonly: Services will silently ignore all non-IRCops
* - operonly: Ignore all non-IRCops
* - silentoperonly: Silently ignore all non-IRCops
* - akillnewclients: AKILL any new clients trying to connect
* - nonewmemos: No new memos will be sent to block MemoServ attacks
*/
@@ -276,15 +276,15 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"
* To use this module you must set a nameserver record for services
* so that DNS queries go to services.
*
* Alternatively, you may use a slave DNS server to hide service's IP,
* Alternatively, you may use a secondary DNS server to hide services' IP,
* provide query caching, and provide better fault tolerance.
*
* To do this using BIND, configure similar to:
*
* options { max-refresh-time 60; };
* zone "irc.example.com" IN {
* type slave;
* masters { 127.0.0.1 port 5353; };
* type secondary;
* primaries { 127.0.0.1 port 5353; };
* };
*
* Where 127.0.0.1:5353 is the IP and port services are listening on.
@@ -507,7 +507,7 @@ module { name = "os_noop" }
command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permission = "operserv/noop"; }
/*
* os_oline
* [DEPRECATED] os_oline
*
* Provides the command operserv/oline.
*
@@ -559,7 +559,7 @@ module
*
* This directive is required if os_session is loaded.
*/
defaultsessionlimit = 3
defaultsessionlimit = 5
/*
* The maximum session limit that may be set for a host in an exception.
+24 -31
View File
@@ -65,10 +65,6 @@
* will typically be disabled. If this is not the case, more
* information will be given in the documentation.
*
* [DISCOURAGED]
* Indicates a directive which may cause undesirable side effects if
* specified.
*
* [DEPRECATED]
* Indicates a directive which will disappear in a future version of
* Services, usually because its functionality has been either
@@ -84,13 +80,13 @@
*/
/*
* The stats.host define is used in multiple different locations throughout the
* configuration for the stats client hostname.
* The services.host define is used in multiple different locations throughout the
* configuration for the server name and pseudoclient hostnames.
*/
define
{
name = "stats.host"
value = "stats.localhost.net"
name = "services.host"
value = "stats.example.com"
}
/*
@@ -127,13 +123,16 @@ define
* and serverinfo configuration would look like:
*
* # This goes in inspircd.conf, *NOT* your Anope config!
* <link name="stats.localhost.net"
* <module name="hidechans">
* <module name="services_account">
* <module name="spanningtree">
* <bind address="127.0.0.1" port="7000" type="servers">
* <link name="stats.example.com"
* ipaddr="127.0.0.1"
* port="7000"
* sendpass="mypassword"
* recvpass="mypassword">
* <uline server="stats.localhost.net" silent="yes">
* <bind address="127.0.0.1" port="7000" type="servers">
* <uline server="stats.example.com" silent="yes">
*
* An example configuration for UnrealIRCd that is compatible with the below uplink
* and serverinfo configuration would look like:
@@ -146,14 +145,14 @@ define
* serversonly;
* };
* };
* link stats.localhost.net {
* link stats.example.com {
* incoming {
* mask *@127.0.0.1;
* };
* password "mypassword";
* class servers;
* };
* ulines { stats.localhost.net; };
* ulines { stats.example.com; };
*/
uplink
{
@@ -206,7 +205,7 @@ serverinfo
* other server names on the rest of your IRC network. Note that it does not have
* to be an existing hostname, just one that isn't on your network already.
*/
name = "stats.localhost.net"
name = "stats.example.com"
/*
* The text which should appear as the server's information in /WHOIS and similar
@@ -251,21 +250,21 @@ serverinfo
* You MUST modify this to match the IRCd you run.
*
* Supported:
* - bahamut
* - [DEPRECATED] bahamut
* - charybdis
* - hybrid
* - inspircd12
* - inspircd20
* - inspircd3
* - [DEPRECATED] inspircd12
* - [DEPRECATED] inspircd20
* - inspircd3 (for 3.x and 4.x)
* - ngircd
* - plexus
* - ratbox
* - unreal (for 3.2.x)
* - [DEPRECATED] unreal (for 3.2.x)
* - unreal4 (for 4.x or later)
*/
module
{
name = "inspircd20"
name = "inspircd3"
}
/*
@@ -318,7 +317,7 @@ networkinfo
*
* It is recommended you DON'T change this.
*/
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-/"
/*
* If set to true, allows vHosts to not contain dots (.).
@@ -327,7 +326,7 @@ networkinfo
*
* It is recommended you DON'T change this.
*/
allow_undotted_vhosts = false
allow_undotted_vhosts = no
/*
* The characters that are not allowed to be at the very beginning or very ending
@@ -335,7 +334,7 @@ networkinfo
*
* It is recommended you DON'T change this.
*/
disallow_start_or_end = ".-"
disallow_start_or_end = ".-/"
}
/*
@@ -371,12 +370,6 @@ options
*/
readtimeout = 5s
/*
* Sets the interval between sending warning messages for program errors via
* WALLOPS/GLOBOPS.
*/
warningtimeout = 4h
/*
* If set, Services will only show /stats o to IRC Operators. This directive
* is optional.
@@ -432,8 +425,8 @@ log
#source = ""
/*
* The bot used to log generic messages which have no predefined sender if there
* is a channel in the target directive.
* The bot used to log generic messages which have no predefined sender if the
* target directive is set to a channel or globops.
*/
bot = "Global"
+1 -1
View File
@@ -1 +1 @@
For all bug reports / updates please see https://bugs.anope.org/
For all bug reports / updates please see https://github.com/anope/anope/issues
+1 -1
View File
@@ -59,7 +59,7 @@ yet follows these. This will be rectified with time.
4. Braces
Always put braces opening and closing blocks on separate lines, see the
identation example. For example, place braces like this:
indentation example. For example, place braces like this:
if (apples == "green")
{
cout << "Apples are green" << endl;
+155 -10
View File
@@ -1,8 +1,153 @@
Anope Version 2.0.20
--------------------
Fixed an escaped value that wasn't escaped enough in chanstats.
Fixed not having a handler for the FNAME message on InspIRCd.
Fixed os_stats reporting the SGLine expiry time as the SQLine expiry time.
Fixed the DNs and search filters not being escaped correctly in the ldap_authentication and ldap_oper modules.
Modernised the advice in docs/LANGUAGE regarding the installation of language packs.
Anope Version 2.0.19
--------------------
Added a Doxygen config file.
Backported various minor config changes from 2.1.
Fixed chanserv/enforce enforcing against founders.
Fixed creating channel entries in irc2sql.
Fixed not respecting the mode state when removing a mode lock.
Fixed reading the settings in m_dns.
Fixed resetpass confirming accounts when not using email confirmation.
Fixed trying to write to a buffered socket when there's no data.
Fixed various minor spelling issues.
Updated some messages for the language used by modern BIND versions.
Anope Version 2.0.18
--------------------
Backported better sendmail error messages from 2.1.
Backported the Windows CI fom 2.1.
Fixed a CMake error when it encounters a hard to parse header file.
Fixed being able to group guest nicknames.
Fixed building Anope with CMake 4.
Fixed compatibility with MariaDB.
Fixed counting email addresses in ns_maxemail.
Fixed importing user ICQ and URL data from 1.8.
Fixed operserv/ignore not being prioritised first.
Fixed resetting the stats with operserv/stats.
Updated the Dutch translation.
Anope Version 2.0.17
--------------------
Fixed importing large flatfile databases into SQL.
Fixed marking channels as permanent.
Fixed serialising unset boolean extension items.
Fixed the documentation about how to import SQL databases.
Fixed the documentation of options:usemail.
Fixed the location of the geoipupdate CSV files.
Fixed translating memo emails.
Fixed unnecessary SQL updates caused by dereferencing user accounts.
Increased the size of the chanstats letter and word count columns.
Updated the location of the Anope IRC channels.
Anope Version 2.0.16
--------------------
Added a workaround for users matching expired sqlines.
Fixed a copy/paste error in webcpanel.
Fixed a crash in db_flatfile caused by trying to serialize data without a type.
Fixed duplicate messages when synconset/syncongroup is set.
Fixed expiring channel suspensions.
Fixed expiring forbids.
Fixed expiring nick suspensions.
Fixed feature detection on InspIRCd.
Fixed InspIRCd account cloaks causing CHGHOST spam when a user also has a services vhost.
Fixed joining users to channels with a key set on InspIRCd.
Fixed logging users out fully when their nick gets suspended.
Fixed marking boolean columns in SQL as TEXT instead of INT.
Fixed matching extbans on InspIRCd and implement missing matchers.
Fixed operserv/sqline expiry on UnrealIRCd
Fixed respecting --noexpire in cs_suspend and ns_suspend.
Fixed sending emails to nicks ending with a backslash.
Fixed sending SVSTOPIC when topiclock is loaded on InspIRCd.
Fixed some SQL tables taking up too much space on disk.
Fixed the default config for channel suspensions.
Fixed the TIME message on InspIRCd.
Fixed trying to escape SQL data when not connected to MySQL.
Fixed {ldap,sql}_authentication creating zombie accounts on expiry.
Anope Version 2.0.15
--------------------
Fixed a race condition in changing the nick of a user.
Fixed being able to reset the password of suspended accounts.
Fixed chanserv/suspend info not being visible to regular users.
Fixed removing entries by an alias in chanserv/access and chanserv/xop.
Fixed various grammar issues in messages.
Made the SASL PLAIN implementation more robust.
Updated the Dutch translation.
Updated the French translation.
Updated the Turkish translation.
Anope Version 2.0.14
--------------------
Added support for sqlining channels on UnrealIRCd.
Fixed a crash when trying to access config for non-loaded modules.
Fixed detection of the InspIRCd nopartmsg module.
Fixed not getting memo notifications when authing with SASL.
Fixed not serialising dontkickops/dontkickvoices in botserv/kick.
Fixed sending emails with the wrong kind of line terminator.
Fixed sending log messages from a renamed pseudoclient.
Fixed telling users their passcode is incorrect when they need to authenticate in nickserv/confirm.
Fixed the Config script freezing on some versions of util-linux.
Updated the Windows packaging scripts to use dependencies from Conan.
Anope Version 2.0.13
--------------------
Fixed a crash on some compilers when trying to call methods on a null pointer
Fixed a crash when encountering an unterminated commented config block
Fixed erroneously rejecting spaces in fantasy:name
Fixed marking services pseudoclients as an oper on InspIRCd
Fixed not checking user@ip as well as user@host when logging into an operator account
Fixed setting the vhost/vident during SASL on UnrealIRCd
Updated the German translation
Updated the Italian translation
Anope Version 2.0.12
--------------------
Added account confirmation to the web panel
Added the regex_pcre2 module which provides regex/pcre with PCRE2
Documented the cs_no_expire channel default
Fixed config validation mistakenly allowing spaces in some fields
Fixed the bahamut protocol module not knowing about halfops
Fixed writing a flatfile database not being atomic
Updated the hybrid protocol module for recent protocol changes
Anope Version 2.0.11
--------------------
Fixed ldap on OpenLDAP 2.5+
Fixed not using utf-8 encoding for outgoing email
Fixed ns_resetpass not returning a response for XMLRPC
Fixed some message params being sent as <middle> instead of <trailing>
Fixed unsetting vhosts on unreal4
Fixed username validity checking on ircd-hybrid
Send the oper mode for services pseudoclients on InspIRCd
Updated the pl_PL translation
Updated unreal4 for various protocol changes
Anope Version 2.0.10
--------------------
Add support for channel SQLines on InspIRCd
Change default protocol module from inspircd20 to inspircd3
Change the character set used by chanstats and irc2sql to utf8mb4
Fix a ton of typos in messages
Fix being able to override MAXLIST on InspIRCd
Fix blocking on boot when trying to upgrade SQL databases without account identifiers
Fix not flushing the ERROR message on squit
Fix using an invalidated iterator when deleting bots
Fix various harmless compiler warnings
Fix webcpanel not using the forwarded IP
Show the account name in nickserv/info
Anope Version 2.0.9
-------------------
Fix a regression from 2.0.8 that prevented serialising to MySQL.
Fix a regression from 2.0.8 that prevented serialising to MySQL
Send account identifiers to InspIRCd on SASL logins too
Fix a query bug in irc2sql.
Fix a query bug in irc2sql
Anope Version 2.0.8
-------------------
@@ -80,7 +225,7 @@ 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
Clarify 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
@@ -95,7 +240,7 @@ 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
Fix saset language 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
@@ -162,7 +307,7 @@ A Added SQL logging support
A Added Redis database support
A Added ability to configure what privileges XOP commands give
U Updated Dutch language file, from Robby <robby@chat.be>
U Updated Spanish langauge file, from Isaac Fontal <i_fontal@hotmail.com>
U Updated Spanish language file, from Isaac Fontal <i_fontal@hotmail.com>
F Fix build on Solaris and OSX
F Fixed setting BotServ's default settings in the config
F Fixed some names of config items, including NickServ's kill protect
@@ -252,7 +397,7 @@ Anope Version 1.9.3
A Added italics BotServ kicks support
A Tell users when their nicks expire in /ns glist and /ns info
A Added SSL support
A Prevent negaitve mode changes, kicks, bans, and autokicks from affecting people with the 'god' user mode (On UnrealIRCd, usermode +q)
A Prevent negative mode changes, kicks, bans, and autokicks from affecting people with the 'god' user mode (On UnrealIRCd, usermode +q)
A Added nickserv/auxpex permission
A Added nickserv ungroup command
A Renamed the SGLINE to be SNLINE
@@ -264,15 +409,15 @@ A Added m_mysql which uses threads to execute queries
A Added many subcommand modules for some commands, eg ns_set_autoop, ns_set_email, etc
A Added a new logging system that is a bit more flexible
A Added cs_set_misc and ns_set_misc to add miscellaneous set commands
A Added os_modreload, which allows reloading some modules not normally unloable, like the protocol module
A Added os_modreload, which allows reloading some modules not normally unloadable, like the protocol module
A Added FOUNDER access level
A Made OperServ, Global, MemoServ, and ChanServ optional
F Shutting down if a config reload fails
F Autoid to live through restarts on Unreal
F Storing vhosts in MySQL
F Not flushing the anope_extra table before rewriting databaes
F Not flushing the anope_extra table before rewriting database
F Anoperc start/stop to send the globaloncycle global, and fixed anoperc rehash to really rehash
F Fixed a potential crash if HostServ or BotServ was disbled
F Fixed a potential crash if HostServ or BotServ was disabled
Anope Version 1.9.2
-------------------
@@ -296,7 +441,7 @@ F Unban command to accept an optional nick arg
F Some typos in services.conf
F Crash when users change their host that are identified to a group, but not a nick
F Host length checking in HS SET(ALL) and HS REQUEST
F Only show if a user is online in NS INFO if they are really identiifed for the group of the nick they are on
F Only show if a user is online in NS INFO if they are really identified for the group of the nick they are on
F Crash when using BSSmartJoin
F Converting access entries to access from xop when a users access is below voice
F A bad pointer passed to the OnDelEvent which could cause some 3rd party modules to crash
+46 -2
View File
@@ -1,3 +1,47 @@
Anope Version 2.0.20
--------------------
No significant changes.
Anope Version 2.0.19
--------------------
No significant changes.
Anope Version 2.0.18
--------------------
No significant changes.
Anope Version 2.0.17
--------------------
No significant changes.
Anope Version 2.0.16
--------------------
No significant changes.
Anope Version 2.0.15
--------------------
No significant changes.
Anope Version 2.0.14
--------------------
Added mail:content_type to allow customizing the content type of emails.
Anope Version 2.0.13
--------------------
No significant changes.
Anope Version 2.0.12
--------------------
Added the regex_pcre2 module
Anope Version 2.0.11
--------------------
No significant changes.
Anope Version 2.0.10
--------------------
No significant changes.
Anope Version 2.0.9
-------------------
No significant changes.
@@ -60,7 +104,7 @@ mail:restrict removed
Anope Version 1.9.9
-------------------
There is not many config changes betewen 1.9.8 and 1.9.9, however many of the
There is not many config changes between 1.9.8 and 1.9.9, however many of the
options have been moved around to make more sense, too many to list here,
so get a new config.
@@ -161,7 +205,7 @@ options:enablelogchannel added to auto turn on the logchannel on startup
options:mlock added to configure the default mlock modes on new channels
options:database added for the database modules
options:botmodes added to configure modes BotServ bots should use
options:userlen added to configure maxiumum ident length
options:userlen added to configure maximum ident length
options:hostlen added to configure maximum hostname length
options:database added to configure what database modules to use
options:passlen added to specify the maximum length of passwords
+1 -1
View File
@@ -90,4 +90,4 @@ Anope DefCon
6) Support
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.teranova.net.
+313
View File
@@ -0,0 +1,313 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Anope"
PROJECT_NUMBER = 2.0
PROJECT_BRIEF =
PROJECT_LOGO =
PROJECT_ICON = src/win32/anope-icon.ico
OUTPUT_DIRECTORY = docs/doxygen
CREATE_SUBDIRS = NO
CREATE_SUBDIRS_LEVEL = 8
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
JAVADOC_BANNER = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
PYTHON_DOCSTRING = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
OPTIMIZE_OUTPUT_SLICE = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 5
MARKDOWN_ID_STYLE = GITHUB
AUTOLINK_SUPPORT = YES
AUTOLINK_IGNORE_WORDS =
BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
NUM_PROC_THREADS = 0
TIMESTAMP = NO
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_PRIV_VIRTUAL = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
RESOLVE_UNNAMED_PARAMS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_UNDOC_NAMESPACES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = SYSTEM
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_HEADERFILE = YES
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
EXTERNAL_TOOL_PATH =
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_NO_PARAMDOC = NO
WARN_IF_UNDOC_ENUM_VAL = NO
WARN_LAYOUT_FILE = YES
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LINE_FORMAT = "at line $line of file $file"
WARN_LOGFILE =
INPUT = README.md \
include
INPUT_ENCODING = UTF-8
INPUT_FILE_ENCODING =
FILE_PATTERNS =
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = YES
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE = README.md
IMPLICIT_DIR_DOCS = YES
FORTRAN_COMMENT_AFTER = 72
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
IGNORE_PREFIX =
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE = AUTO_LIGHT
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_CODE_FOLDING = YES
HTML_COPY_CLIPBOARD = YES
HTML_PROJECT_COOKIE =
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated documentation"
DOCSET_FEEDURL =
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
SITEMAP_URL =
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
FULL_SIDEBAR = NO
ENUM_VALUES_PER_LINE = 4
SHOW_ENUM_VALUES = NO
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
OBFUSCATE_EMAILS = YES
HTML_FORMULA_FORMAT = png
FORMULA_FONTSIZE = 10
FORMULA_MACROFILE =
USE_MATHJAX = NO
MATHJAX_VERSION = MathJax_2
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME =
MAKEINDEX_CMD_NAME = makeindex
LATEX_MAKEINDEX_CMD = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_BIB_STYLE = plainnat
LATEX_EMOJI_DIRECTORY =
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_EXTRA_FILES =
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
XML_NS_MEMB_FILE_SCOPE = NO
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
GENERATE_AUTOGEN_DEF = NO
GENERATE_SQLITE3 = NO
SQLITE3_OUTPUT = sqlite3
SQLITE3_RECREATE_DB = YES
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = CoreExport=/**/ \
ATTR_NOT_NULL(...)=/**/
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10"
DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10"
DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4"
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
DOT_UML_DETAILS = NO
DOT_WRAP_THRESHOLD = 17
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DIR_GRAPH_MAX_DEPTH = 1
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
DIA_PATH =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
PLANTUMLFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
MSCGEN_TOOL =
MSCFILE_DIRS =
+2 -6
View File
@@ -60,7 +60,7 @@ Note: You should also read the README and FAQ files!
most likely not work!
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.teranova.net. Provide *complete* error output, along with other relevant
information eg. OS, compiler and C++ library versions.
See the README file for more information.
@@ -80,7 +80,7 @@ Note: You should also read the README and FAQ files!
The configuration varies depending on the IRCd, but you will probably need
a link block (also called connect block, or C line), a U line (also called
a shared block), and be sure that the IRCd is listneing on the given port
a shared block), and be sure that the IRCd is listening on the given port
in the link block.
Example link configurations can be found in example.conf for some of the
@@ -88,10 +88,6 @@ Note: You should also read the README and FAQ files!
Don't forget to /rehash your IRCd to apply changes.
You may also try our interactive link maker, which is located at:
https://www.anope.org/ilm.php
4) Starting Anope
Go into the directory where binaries were installed (by default, this is
+1 -6
View File
@@ -64,7 +64,7 @@ Note : Vous devrez également lire les fichiers README et FAQ !
recommandée, et Anope ne fonctionnera probablement pas !
Si vous avez besoin d'aide, vous pouvez aller sur le site
https://forum.anope.org/ ou le canal #anope sur irc.anope.org.
https://forum.anope.org/ ou le canal #anope sur irc.teranova.net.
Fournissez *l'essemble* des erreurs qui apparaîssent, en plus de
toutes informations utiles, comme les versions de votre OS, du
compilateur utilisé et de la librairie C++. Lisez le fichier README
@@ -96,11 +96,6 @@ Note : Vous devrez également lire les fichiers README et FAQ !
Souvenez-vous de /rehash votre IRCd pour appliquer les changements.
Vous pouvez également essayer notre créateur de bloc link interactif
situé ici :
https://www.anope.org/ilm.php
4) Mettre en route Anope
Allez dans le répertoire où les fichiers binaires ont été installés
+19 -12
View File
@@ -1,22 +1,20 @@
Anope Mutli Language Support
Anope Multi Language Support
----------------------------
1) Building Anope with gettext support
2) Adding a new language
3) Using languages with modules
4) Updating a language file
1) Building Anope with gettext support
To build Anope with gettext support, gettext and its development libraries must be installed on the system.
On Debian install the locales-all package.
On Debian-based systems install the locales-all package.
On Ubuntu run locale-gen for each language you want to enable.
For example:
locale-gen es_ES.UTF-8
On RHEL-based systems run `yum list glibc-langpack-*` and install the languages you want to enable.
Then execute:
dpkg-reconfigure locales
If you have already built Anope you will need to delete the build directory and rebuild from scratch.
Building Anope on Windows with gettext support is explained in docs/WIN32.txt
@@ -31,12 +29,10 @@ Anope Mutli Language Support
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).
If you have finished a language file translation and you want others to use it, please send it to team@anope.org
(don't forget to mention clearly your (nick)name, your e-mail and the language name). You'll of course get full credit for it.
If you have finished a language file translation and you want others to use it, please file a pull request on GitHub.
You'll of course get full credit for it.
NOTE: There is no guarantee we will use your work so please do not be offended if we say no thanks.
3) Using langages with modules
3) Using languages with modules
Module authors can easily add the ability to have their modules translated by adding _() around the strings they
want translated (messages to the user, etc).
@@ -51,3 +47,14 @@ Anope Mutli Language Support
All .po and .pot files should be placed in modules/third/language. Additionally an update script is provided there
that will create .pot files and merge any changes to it with existing .po files.
4) Updating a language file
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).
Before editing the relevant file in languages/, run `update.sh` in the languages/ folder, i.e. `cd` to it and run
./update.sh
This will update the language file to contain all strings that need a translation.
Then commit only the changed .po files in git.
+1 -1
View File
@@ -111,7 +111,7 @@ Anope Modules
Use modules at your own risk, and make sure you get them from a
reputable source. You might get module support by contacting the module
author, posting on our online forum, or maybe on our #anope channel
at /server irc.anope.org.
at /server irc.teranova.net.
7) Information for Developers
+5 -5
View File
@@ -1,7 +1,7 @@
Anope -- a set of IRC services for IRC networks
-----------------------------------------------
Anope is 2003-2020 Anope Team <team@anope.org>.
Anope is 2003-2024 Anope Team <team@anope.org>.
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
Based on Services 1996-1999 Andrew Church <achurch@achurch.org>.
@@ -92,7 +92,7 @@ Table of Contents
* Lee Holmes <lethality@anope.org>
* Lucas Nussbaum <lucas@lucas-nussbaum.net>
* Mark Summers <mark@goopler.net>
* Matthew Beeching <jobe@invictachat.net>
* Matthew Beeching <jobe@mdbnet.co.uk>
* Naram Qashat <cyberbotx@anope.org>
* Phil Lavin <phil@anope.org>
* Pieter Bootsma <geniusdex@anope.org>
@@ -245,14 +245,14 @@ Table of Contents
If you read the documentation carefully, and didn't find the answer to
your question, feel free to post on the website forums or join our irc
channel (irc.anope.org #anope). Once you join our Support channel be as
channel (irc.teranova.net #anope). Once you join our Support channel be as
precise as possible when asking a question, because we have no extraordinary
powers and can't guess things if they aren't provided.
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
(https://bugs.anope.org/) and - again - be as precise as possible. Also say
whether the bug happens always or under what circumstances, and anything
(https://github.com/anope/anope/issues) and - again - be as precise as possible.
Also say 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
it over. :)
+3 -3
View File
@@ -32,7 +32,7 @@ Table of Contents
hash - The keys in hash are the actual objects, stored as hashes. For
example, if I had just looked up all BotInfo ids and wanted to iterate
over all of them, I woulld start by:
over all of them, I would start by:
redis 127.0.0.1:6379> HGETALL hash:BotInfo:1
@@ -73,7 +73,7 @@ Table of Contents
(https://redis.io/topics/notifications). This allows Redis to notify Anope of
any external changes to objects in the database. Once notified, Anope will
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 database once started.
You can use this to modify objects in Redis and have them immediately reflected
back into Anope. Additionally you can use this feature to run multiple Anope
@@ -93,7 +93,7 @@ Table of Contents
The key space ids and value are managed entirely by Anope, you do
not (and should not) modify them. Once you modify the object (hash), Anope will
update them for you to correctly refelect any changes made to the object.
update them for you to correctly reflect any changes made to the object.
Finally, always use atomic operations. If you are inserting a new object with
multiple commands, or inserting multiple objects at once, specifically if the
+1 -1
View File
@@ -3,7 +3,7 @@
/**
* XMLRPC Functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2024 Anope Team
* Contact us at team@anope.org
*/
+4 -4
View File
@@ -3,11 +3,11 @@ set_source_files_properties(version.cpp PROPERTIES LANGUAGE CXX COMPILE_FLAGS "$
# Generate version-bin executable to modify version.h, setting it's linker flags as well
add_executable(version-bin version.cpp)
set_target_properties(version-bin PROPERTIES LINKER_LANGUAGE CXX LINK_FLAGS "${LDFLAGS}")
get_target_property(version_BINARY version-bin LOCATION)
set(version_BINARY "$<TARGET_FILE:version-bin>")
# Modify version.h from the above executable, with dependencies to version.cpp
# and all of the source files in the main 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
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h
COMMAND version-bin ${Anope_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h
DEPENDS version-bin ${SRC_SRCS}
)
# Add version-bin to list of files for CPack to ignore
@@ -61,4 +61,4 @@ if(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX)
endif(USE_PCH AND CMAKE_COMPILER_IS_GNUCXX)
# Add a custom target to the above file
add_custom_target(headers DEPENDS version-bin ${CMAKE_CURRENT_BINARY_DIR}/version_build ${PCH_SOURCES_GCH})
add_custom_target(headers DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/version.h ${CMAKE_CURRENT_BINARY_DIR}/build.h ${PCH_SOURCES_GCH})
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+7 -7
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -61,7 +61,7 @@ class CoreExport NickAlias : public Serializable, public Extensible
* @param ident The ident
* @param host The host
* @param creator Who created the vhost
* @param time When the vhost was craated
* @param time When the vhost was created
*/
void SetVhost(const Anope::string &ident, const Anope::string &host, const Anope::string &creator, time_t created = Anope::CurTime);
@@ -130,7 +130,7 @@ class CoreExport NickCore : public Serializable, public Extensible
*/
Serialize::Checker<std::vector<NickAlias *> > aliases;
/* Set if this user is a services operattor. o->ot must exist. */
/* Set if this user is a services operator. o->ot must exist. */
Oper *o;
/* Unsaved data */
@@ -234,7 +234,7 @@ class CoreExport NickCore : public Serializable, public Extensible
class CoreExport IdentifyRequest
{
/* Owner of this request, used to cleanup requests if a module is unloaded
* while a reqyest us pending */
* while a request us pending */
Module *owner;
Anope::string account;
Anope::string password;
@@ -262,17 +262,17 @@ class CoreExport IdentifyRequest
* for the request to complete. Multiple modules may hold a request at any time,
* but the request is not complete until every module has released it. If you do not
* require holding this (eg, your password check is done in this thread and immediately)
* then you don't need to hold the request before Successing it.
* then you don't need to hold the request before calling `Success()`.
* @param m The module holding this request
*/
void Hold(Module *m);
/** Releases a held request
* @param m The module releaseing the hold
* @param m The module releasing the hold
*/
void Release(Module *m);
/** Called by modules when this IdentifyRequest has successeded successfully.
/** Called by modules when this IdentifyRequest has succeeded.
* If this request is behind held it must still be Released after calling this.
* @param m The module confirming authentication
*/
+23 -13
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -54,6 +54,9 @@ namespace Anope
string(const ci::string &_str) : _string(_str.c_str()) { }
string(const string &_str, size_type pos, size_type n = npos) : _string(_str._string, pos, n) { }
template <class InputIterator> string(InputIterator first, InputIterator last) : _string(first, last) { }
#if __cplusplus >= 201103L
string(const string &) = default;
#endif
/**
* Assignment operators, so any type of string can be assigned to this class.
@@ -362,7 +365,7 @@ namespace Anope
*/
extern CoreExport int Debug;
/** Other comand line options.
/** Other command line options.
*/
extern CoreExport bool ReadOnly, NoFork, NoThird, NoExpire, ProtocolDebug;
@@ -403,7 +406,7 @@ namespace Anope
/** Used to "fork" the process and go into the background during initial startup
* while we are AtTerm(). The actual fork is not done here, but earlier, and this
* simply notifys the parent via kill() to exit().
* simply notifies the parent via kill() to exit().
*/
extern void Fork();
@@ -413,7 +416,7 @@ namespace Anope
/** One of the first functions called, does general initialization such as reading
* command line args, loading the configuration, doing the initial fork() if necessary,
* initializating language support, loading modules, and loading databases.
* initializing language support, loading modules, and loading databases.
* @throws CoreException if something bad went wrong
*/
extern void Init(int ac, char **av);
@@ -545,6 +548,13 @@ namespace Anope
*/
extern Anope::string Resolve(const Anope::string &host, int type);
/** Does a blocking dns query and returns all IPs.
* @param host host to look up
* @param type inet addr type
* @return A list of all IPs that the host resolves to
*/
extern std::vector<Anope::string> ResolveMultiple(const Anope::string &host, int type);
/** Generate a string of random letters and numbers
* @param len The length of the string returned
*/
@@ -562,7 +572,7 @@ class CoreExport sepstream
/** Original string.
*/
Anope::string tokens;
/** Seperator value
/** Separator value
*/
char sep;
/** Current string position
@@ -574,7 +584,7 @@ class CoreExport sepstream
public:
/** Create a sepstream and fill it with the provided data
*/
sepstream(const Anope::string &source, char seperator, bool allowempty = false);
sepstream(const Anope::string &source, char separator, bool allowempty = false);
/** Fetch the next token from the stream
* @param token The next token from the stream is placed here
@@ -584,7 +594,7 @@ class CoreExport sepstream
/** Gets token number 'num' from the stream
* @param token The token is placed here
* @param num The token number to featch
* @param num The token number to fetch
* @return True if the token was able to be fetched
*/
bool GetToken(Anope::string &token, int num);
@@ -602,7 +612,7 @@ class CoreExport sepstream
/** Gets token number 'num' from the stream and all remaining tokens.
* @param token The token is placed here
* @param num The token number to featch
* @param num The token number to fetch
* @return True if the token was able to be fetched
*/
bool GetTokenRemainder(Anope::string &token, int num);
@@ -628,7 +638,7 @@ class CoreExport sepstream
class commasepstream : public sepstream
{
public:
/** Initialize with comma seperator
/** Initialize with comma separator
*/
commasepstream(const Anope::string &source, bool allowempty = false) : sepstream(source, ',', allowempty) { }
};
@@ -638,7 +648,7 @@ class commasepstream : public sepstream
class spacesepstream : public sepstream
{
public:
/** Initialize with space seperator
/** Initialize with space separator
*/
spacesepstream(const Anope::string &source) : sepstream(source, ' ') { }
};
@@ -659,7 +669,7 @@ class CoreException : public std::exception
*/
Anope::string source;
public:
/** Default constructor, just uses the error mesage 'Core threw an exception'.
/** Default constructor, just uses the error message 'Core threw an exception'.
*/
CoreException() : err("Core threw an exception"), source("The core") { }
/** This constructor can be used to specify an error message before throwing.
@@ -691,7 +701,7 @@ class CoreException : public std::exception
class ModuleException : public CoreException
{
public:
/** Default constructor, just uses the error mesage 'Module threw an exception'.
/** Default constructor, just uses the error message 'Module threw an exception'.
*/
ModuleException() : CoreException("Module threw an exception", "A Module") { }
@@ -766,7 +776,7 @@ template<typename T> inline T convertTo(const Anope::string &s, bool failIfLefto
}
/** Casts to be used instead of dynamic_cast, this uses dynamic_cast
* for debug builds and static_cast on releass builds
* for debug builds and static_cast on release builds
* to speed up the program because dynamic_cast relies on RTTI.
*/
#ifdef DEBUG_BUILD
+1 -1
View File
@@ -1,7 +1,7 @@
/*
*
* (C) 2008-2011 Adam <Adam@anope.org>
* (C) 2008-2020 Anope Team <team@anope.org>
* (C) 2008-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*/
+1 -1
View File
@@ -1,7 +1,7 @@
/*
*
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
* (C) 2008-2020 Anope Team <team@anope.org>
* (C) 2008-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*/
+8 -3
View File
@@ -1,6 +1,6 @@
/* Channel support
*
* (C) 2008-2020 Anope Team
* (C) 2008-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -232,7 +232,7 @@ class CoreExport Channel : public Base, public Extensible
* @param bi The sender, can be NULL for the service bot for this channel
* @param u The user being kicked
* @param reason The reason for the kick
* @return true if the kick was scucessful, false if a module blocked the kick
* @return true if the kick was successful, false if a module blocked the kick
*/
bool Kick(BotInfo *bi, User *u, const char *reason = NULL, ...);
@@ -249,7 +249,7 @@ class CoreExport Channel : public Base, public Extensible
/** Get a string of the modes set on this channel
* @param complete Include mode parameters
* @param plus If set to false (with complete), mode parameters will not be given for modes requring no parameters to be unset
* @param plus If set to false (with complete), mode parameters will not be given for modes requiring no parameters to be unset
* @return A mode string
*/
Anope::string GetModes(bool complete, bool plus);
@@ -289,6 +289,11 @@ class CoreExport Channel : public Base, public Extensible
*/
bool CheckKick(User *user);
/** Find which bot should send mode/topic/etc changes for this channel
* @return The bot
*/
BotInfo *WhoSends() const;
/** Finds a channel
* @param name The channel to find
* @return The channel, if found
+5 -5
View File
@@ -1,6 +1,6 @@
/* Declarations for command data.
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -40,7 +40,7 @@ struct CommandInfo
bool prepend_channel;
};
/* Where the replies from commands go to. User inheits from this and is the normal
/* Where the replies from commands go to. User inherits from this and is the normal
* source of a CommandReply
*/
struct CoreExport CommandReply
@@ -101,7 +101,7 @@ class CoreExport Command : public Service
bool require_user;
public:
/* Maximum paramaters accepted by this command */
/* Maximum parameters accepted by this command */
size_t max_params;
/* Minimum parameters required to use this command */
size_t min_params;
@@ -148,7 +148,7 @@ class CoreExport Command : public Service
*/
virtual void Execute(CommandSource &source, const std::vector<Anope::string> &params) = 0;
/** Called when HELP is requsted for the client this command is on.
/** Called when HELP is requested for the client this command is on.
* @param source The source
*/
virtual void OnServHelp(CommandSource &source);
@@ -178,7 +178,7 @@ class CoreExport Command : public Service
* Note that if the same command exists multiple places this will return the first one encountered
* @param command_service The command service to lookup, eg, nickserv/register
* @param bot If found, is set to the bot the command is on, eg NickServ
* @param name If found, is set to the comand name, eg REGISTER
* @param name If found, is set to the command name, eg REGISTER
* @return true if the given command service exists
*/
static bool FindCommandFromService(const Anope::string &command_service, BotInfo* &bi, Anope::string &name);
+17 -7
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -20,9 +20,11 @@
namespace Configuration
{
namespace Internal
{
class CoreExport Block
{
friend struct Conf;
friend struct Configuration::Conf;
public:
typedef Anope::map<Anope::string> item_map;
@@ -34,13 +36,17 @@ namespace Configuration
block_map blocks;
int linenum;
/* Represents a missing tag. */
static Block EmptyBlock;
public:
Block(const Anope::string &);
const Anope::string &GetName() const;
int CountBlock(const Anope::string &name);
Block* GetBlock(const Anope::string &name, int num = 0);
int CountBlock(const Anope::string &name) const;
const Block* GetBlock(const Anope::string &name, int num = 0) const;
Block* GetMutableBlock(const Anope::string &name, int num = 0);
template<typename T> inline T Get(const Anope::string &tag)
template<typename T> inline T Get(const Anope::string &tag) const
{
return this->Get<T>(tag, "");
}
@@ -66,6 +72,10 @@ namespace Configuration
template<> CoreExport const Anope::string Block::Get(const Anope::string &tag, const Anope::string& def) const;
template<> CoreExport time_t Block::Get(const Anope::string &tag, const Anope::string &def) const;
template<> CoreExport bool Block::Get(const Anope::string &tag, const Anope::string &def) const;
} // namespace Internal
typedef const Internal::Block Block;
typedef Internal::Block MutableBlock;
/** Represents a configuration file
*/
@@ -140,7 +150,7 @@ namespace Configuration
BotInfo *GetClient(const Anope::string &name);
Block *GetCommand(CommandSource &);
const Block *GetCommand(CommandSource &);
};
struct Uplink
@@ -165,7 +175,7 @@ namespace Configuration
class ConfigException : public CoreException
{
public:
/** Default constructor, just uses the error mesage 'Config threw an exception'.
/** Default constructor, just uses the error message 'Config threw an exception'.
*/
ConfigException() : CoreException("Config threw an exception", "Config Parser") { }
/** This constructor can be used to specify an error message before throwing.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+3 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -190,7 +190,8 @@ class SerializableExtensibleItem<bool> : public PrimitiveExtensibleItem<bool>
void ExtensibleSerialize(const Extensible *e, const Serializable *s, Serialize::Data &data) const anope_override
{
data[this->name] << true;
data.SetType(this->name, Serialize::Data::DT_INT);
data[this->name] << this->HasExt(e);
}
void ExtensibleUnserialize(Extensible *e, Serializable *s, Serialize::Data &data) anope_override
+2 -2
View File
@@ -1,7 +1,7 @@
/*
*
* (C) 2002-2011 InspIRCd Development Team
* (C) 2009-2020 Anope Team <team@anope.org>
* (C) 2009-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*/
@@ -26,7 +26,7 @@ namespace Anope
{
class string;
/* Casemap in use by Anope. ci::string's comparation functions use this (and thus Anope::string) */
/* Casemap in use by Anope. ci::string's comparison functions use this (and thus Anope::string) */
extern std::locale casemap;
extern void CaseMapRebuild();
+3 -3
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2008-2020 Anope Team
* (C) 2008-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -40,7 +40,7 @@ namespace Language
extern CoreExport const char *Translate(const char *string);
/** Translates a string to the language of the given user.
* @param u The user to transate the string for
* @param u The user to translate the string for
* @param string A string to translate
* @return The translated string if found, else the original string.
*/
@@ -82,7 +82,7 @@ namespace Language
#define CHAN_X_SUSPENDED _("Channel %s is currently suspended.")
#define CHAN_X_NOT_REGISTERED _("Channel \002%s\002 isn't registered.")
#define CHAN_X_NOT_IN_USE _("Channel \002%s\002 doesn't exist.")
#define NICK_IDENTIFY_REQUIRED _("Password authentication required for that command.")
#define NICK_IDENTIFY_REQUIRED _("You must be logged into an account to use that command.")
#define MAIL_X_INVALID _("\002%s\002 is not a valid e-mail address.")
#define UNKNOWN _("<unknown>")
#define NO_EXPIRE _("does not expire")
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+3 -3
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -17,9 +17,9 @@
enum LogType
{
/* Used whenever an administrator uses an administrative comand */
/* Used whenever an administrator uses an administrative command */
LOG_ADMIN,
/* Used whenever an administrator overides something, such as adding
/* Used whenever an administrator overrides something, such as adding
* access to a channel where they don't have permission to.
*/
LOG_OVERRIDE,
+3 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -26,15 +26,16 @@ namespace Mail
class Message : public Thread
{
private:
Anope::string error;
Anope::string sendmail_path;
Anope::string send_from;
Anope::string mail_to;
Anope::string addr;
Anope::string subject;
Anope::string message;
Anope::string content_type;
bool dont_quote_addresses;
bool success;
public:
/** Construct this message. Once constructed call Thread::Start to launch the mail sending.
* @param sf Config->SendFrom
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+5 -5
View File
@@ -1,7 +1,7 @@
/* Mode support
*
* (C) 2008-2011 Adam <Adam@anope.org>
* (C) 2008-2020 Anope Team <team@anope.org>
* (C) 2008-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*/
@@ -96,7 +96,7 @@ class CoreExport UserModeParam : public UserMode
class CoreExport ChannelMode : public Mode
{
public:
/* channel modes that can posssibly unwrap this mode */
/* channel modes that can possibly unwrap this mode */
std::vector<ChannelMode *> listeners;
/** constructor
@@ -160,7 +160,7 @@ class CoreExport ChannelModeList : public ChannelMode
virtual void OnDel(Channel *chan, const Anope::string &mask) { }
};
/** This is a mode with a paramater, eg +k/l. These modes should use/inherit from this
/** This is a mode with a parameter, eg +k/l. These modes should use/inherit from this
*/
class CoreExport ChannelModeParam : public ChannelMode
{
@@ -221,7 +221,7 @@ class CoreExport ChannelModeVirtual : public T
ChannelMode *Wrap(Anope::string &param) anope_override;
ChannelMode *Unwrap(ChannelMode *cm, Anope::string &param) = 0;
ChannelMode *Unwrap(ChannelMode *cm, Anope::string &param) anope_override = 0;
};
/* The status a user has on a channel (+v, +h, +o) etc */
@@ -400,7 +400,7 @@ class CoreExport Entry
/** Constructor
* @param mode What mode this host is for, can be empty for unknown/no mode
* @param host A full or poartial nick!ident@host/cidr#real name mask
* @param host A full or partial nick!ident@host/cidr#real name mask
*/
Entry(const Anope::string &mode, const Anope::string &host);
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+18 -12
View File
@@ -1,6 +1,6 @@
/* Modular support
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -402,7 +402,6 @@ class CoreExport Module : public Extensible
virtual EventReturn OnLoadDatabase() { throw NotImplementedException(); }
/** Called when anope needs to check passwords against encryption
* see src/encrypt.c for detailed informations
*/
virtual EventReturn OnEncrypt(const Anope::string &src, Anope::string &dest) { throw NotImplementedException(); }
virtual EventReturn OnDecrypt(const Anope::string &hashm, const Anope::string &src, Anope::string &dest) { throw NotImplementedException(); }
@@ -507,7 +506,7 @@ class CoreExport Module : public Extensible
*/
virtual void OnChanExpire(ChannelInfo *ci) { throw NotImplementedException(); }
/** Called before Anope connecs to its uplink
/** Called before Anope connects to its uplink
*/
virtual void OnPreServerConnect() { throw NotImplementedException(); }
@@ -555,7 +554,7 @@ class CoreExport Module : public Extensible
/** Called before an exception is deleted
* @param source The source deleting it
* @param ex The exceotion
* @param ex The exception
*/
virtual void OnExceptionDel(CommandSource &source, Exception *ex) { throw NotImplementedException(); }
@@ -776,7 +775,7 @@ class CoreExport Module : public Extensible
*/
virtual void OnNickSuspend(NickAlias *na) { throw NotImplementedException(); }
/** Called when a nick is unsuspneded
/** Called when a nick is unsuspended
* @param na The nick alias
*/
virtual void OnNickUnsuspended(NickAlias *na) { throw NotImplementedException(); }
@@ -939,12 +938,12 @@ class CoreExport Module : public Extensible
*/
virtual void OnUserModeUnset(const MessageSource &setter, User *u, const Anope::string &mname) { throw NotImplementedException(); }
/** Called when a channel mode is introducted into Anope
/** Called when a channel mode is introduced into Anope
* @param cm The mode
*/
virtual void OnChannelModeAdd(ChannelMode *cm) { throw NotImplementedException(); }
/** Called when a user mode is introducted into Anope
/** Called when a user mode is introduced into Anope
* @param um The mode
*/
virtual void OnUserModeAdd(UserMode *um) { throw NotImplementedException(); }
@@ -1066,7 +1065,7 @@ class CoreExport Module : public Extensible
/** Called when a nickserv/set command is used.
* @param source The source of the command
* @param cmd The command
* @param nc The nickcore being modifed
* @param nc The nickcore being modified
* @param setting The setting passed to the command. Probably ON/OFF.
* @return EVENT_STOP to halt immediately
*/
@@ -1080,7 +1079,7 @@ class CoreExport Module : public Extensible
*/
virtual EventReturn OnMessage(MessageSource &source, Anope::string &command, std::vector<Anope::string> &param) { throw NotImplementedException(); }
/** Called to determine if a chnanel mode can be set by a user
/** Called to determine if a channel mode can be set by a user
* @param u The user
* @param cm The mode
*/
@@ -1093,13 +1092,20 @@ class CoreExport Module : public Extensible
*/
virtual void OnExpireTick() { throw NotImplementedException(); }
/** Called when a nick is validated. That is, to determine if a user is permissted
/** Called when a nick is validated. That is, to determine if a user is permitted
* to be on the given nick.
* @param u The user
* @param na The nick they are on
* @return EVENT_STOP to force the user off of the nick
*/
virtual EventReturn OnNickValidate(User *u, NickAlias *na) { throw NotImplementedException(); }
/** Called when a certain user has to be unbanned on a certain channel.
* May be used to send protocol-specific messages.
* @param u The user to be unbanned
* @param c The channel that user has to be unbanned on
*/
virtual void OnChannelUnban(User *u, ChannelInfo *ci) { throw NotImplementedException(); }
};
enum Implementation
@@ -1125,7 +1131,7 @@ enum Implementation
I_OnPrivmsg, I_OnLog, I_OnLogMessage, I_OnDnsRequest, I_OnCheckModes, I_OnChannelSync, I_OnSetCorrectModes,
I_OnSerializeCheck, I_OnSerializableConstruct, I_OnSerializableDestruct, I_OnSerializableUpdate,
I_OnSerializeTypeCreate, I_OnSetChannelOption, I_OnSetNickOption, I_OnMessage, I_OnCanSet, I_OnCheckDelete,
I_OnExpireTick, I_OnNickValidate,
I_OnExpireTick, I_OnNickValidate, I_OnChannelUnban,
I_SIZE
};
@@ -1177,7 +1183,7 @@ class CoreExport ModuleManager
/** Checks whether this version of Anope is at least major.minor.patch.build
* Throws a ModuleException if not
* @param major The major version
* @param minor The minor vesion
* @param minor The minor version
* @param patch The patch version
*/
static void RequireVersion(int major, int minor, int patch);
+1 -1
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/* BotServ core functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/* ChanServ core functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+2 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2012-2020 Anope Team
* (C) 2012-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -80,7 +80,7 @@ struct HTTPReply
}
};
/* A message from soneone */
/* A message from someone */
struct HTTPMessage
{
std::map<Anope::string, Anope::string> headers;
+11 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -166,6 +166,16 @@ class LDAPProvider : public Service
* @param attributes The attributes to modify
*/
virtual void Modify(LDAPInterface *i, const Anope::string &base, LDAPMods &attributes) = 0;
/** Escapes a LDAP string for use in a DN.
* @param str The string to escape.
*/
virtual Anope::string EscapeDN(const Anope::string &str) const = 0;
/** Escapes a LDAP string for use in a search filter.
* @param str The string to escape.
*/
virtual Anope::string EscapeSF(const Anope::string &str) const = 0;
};
#endif // ANOPE_LDAP_H
+2 -2
View File
@@ -1,6 +1,6 @@
/* NickServ core functions
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -26,7 +26,7 @@ struct NSCertList
/** Get an entry from the nick's cert list by index
*
* @param entry Index in the certificaate list vector to retrieve
* @param entry Index in the certificate list vector to retrieve
* @return The fingerprint entry of the given index if within bounds, an empty string if the vector is empty or the index is out of bounds
*
* Retrieves an entry from the certificate list corresponding to the given index.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/* OperServ ignore interface
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+2 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -25,7 +25,7 @@ class MemoServService : public Service
}
/** Sends a memo.
* @param source The source of the memo, can be anythin.
* @param source The source of the memo, can be anything.
* @param target The target of the memo, nick or channel.
* @param message Memo text
* @param force true to force the memo, restrictions/delays etc are not checked
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2011-2020 Anope Team
* (C) 2011-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2014-2020 Anope Team
* (C) 2014-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+2 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -149,7 +149,7 @@ namespace SQL
inline operator bool() const { return this->error.empty(); }
inline const unsigned int GetID() const { return this->id; }
inline unsigned int GetID() const { return this->id; }
inline const Query &GetQuery() const { return this->query; }
inline const Anope::string &GetError() const { return this->error; }
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2010-2020 Anope Team
* (C) 2010-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2010-2020 Anope Team
* (C) 2010-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+2 -2
View File
@@ -1,7 +1,7 @@
/*
*
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
* (C) 2008-2020 Anope Team <team@anope.org>
* (C) 2008-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*/
@@ -67,7 +67,7 @@ class CoreExport OperType
*/
std::set<OperType *> inheritances;
public:
/** Modes to set when someone identifys using this opertype
/** Modes to set when someone identifies using this opertype
*/
Anope::string modes;
+5 -3
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -15,8 +15,9 @@
#include "services.h"
#include "anope.h"
#include "service.h"
#include "modes.h"
/* Encapsultes the IRCd protocol we are speaking. */
/* Encapsulates the IRCd protocol we are speaking. */
class CoreExport IRCDProto : public Service
{
Anope::string proto_name;
@@ -54,7 +55,7 @@ class CoreExport IRCDProto : public Service
bool CanSNLine;
/* Can we ban specific nicknames from being used? */
bool CanSQLine;
/* Can we ban sepcific channel names from being used? */
/* Can we ban specific channel names from being used? */
bool CanSQLineChannel;
/* Can we ban by IP? */
bool CanSZLine;
@@ -241,6 +242,7 @@ class CoreExport IRCDProto : public Service
* Defaults to Config->ListSize
*/
virtual unsigned GetMaxListFor(Channel *c);
virtual unsigned GetMaxListFor(Channel *c, ChannelMode *cm);
virtual Anope::string NormalizeMask(const Anope::string &mask);
};
+3 -3
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2008-2020 Anope Team
* (C) 2008-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -97,7 +97,7 @@ class CoreExport ChannelInfo : public Serializable, public Extensible
void Serialize(Serialize::Data &data) const anope_override;
static Serializable* Unserialize(Serializable *obj, Serialize::Data &);
/** Change the founder of the channek
/** Change the founder of the channel
* @params nc The new founder
*/
void SetFounder(NickCore *nc);
@@ -135,7 +135,7 @@ class CoreExport ChannelInfo : public Serializable, public Extensible
AccessGroup AccessFor(const User *u, bool updateLastUsed = true);
AccessGroup AccessFor(const NickCore *nc, bool updateLastUsed = true);
/** Get the size of the accss vector for this channel
/** Get the size of the access vector for this channel
* @return The access vector size
*/
unsigned GetAccessCount() const;
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+4 -4
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -46,7 +46,7 @@ namespace Serialize
template<typename T> class Reference;
}
/** A serialziable object. Serializable objects can be serialized into
/** A serializable object. Serializable objects can be serialized into
* abstract data types (Serialize::Data), and then reconstructed or
* updated later at any time.
*/
@@ -105,7 +105,7 @@ class CoreExport Serializable : public virtual Base
};
/* A serializable type. There should be one of these classes for each type
* of class that inherits from Serialiable. Used for unserializing objects
* of class that inherits from Serializable. Used for unserializing objects
* of this type, as it requires a function pointer to a static member function.
*/
class CoreExport Serialize::Type : public Base
@@ -123,7 +123,7 @@ class CoreExport Serialize::Type : public Base
*/
Module *owner;
/* The timesatmp for this type. All objects of this type are as up to date as
/* The timestamp for this type. All objects of this type are as up to date as
* this timestamp. if curtime == timestamp then we have the most up to date
* version of every object of this type.
*/
+2 -2
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -170,7 +170,7 @@ class CoreExport Server : public Extensible
*/
bool IsQuitting() const;
/** Send a message to alll users on this server
/** Send a message to all users on this server
* @param source The source of the message
* @param message The message
*/
+5 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
@@ -128,6 +128,10 @@ class ServiceReference : public Reference<T>
{
}
const Anope::string &GetServiceName() const { return name; }
const Anope::string &GetServiceType() const { return type; }
inline void operator=(const Anope::string &n)
{
this->name = n;
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/* Timer include stuff.
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+1 -1
View File
@@ -1,6 +1,6 @@
/*
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
+4 -4
View File
@@ -1,7 +1,7 @@
/*
*
* (C) 2008-2011 Robin Burchell <w00t@inspircd.org>
* (C) 2003-2020 Anope Team <team@anope.org>
* (C) 2003-2026 Anope Team <team@anope.org>
*
* Please read COPYING and README for further details.
*
@@ -46,7 +46,7 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
bool on_access;
/* Map of user modes and the params this user has (if any) */
ModeList modes;
/* NickCore account the user is currently loggged in as, if they are logged in */
/* NickCore account the user is currently logged in as, if they are logged in */
Serialize::Reference<NickCore> nc;
/* # of invalid password attempts */
@@ -161,13 +161,13 @@ class CoreExport User : public virtual Base, public Extensible, public CommandRe
/** Update the real ident (username) of a user record.
* @param ident The new ident to give this user.
* NOTE: Where possible, you should use the Get/SetVIdent() equivilants.
* NOTE: Where possible, you should use the Get/SetVIdent() equivalents.
*/
void SetIdent(const Anope::string &ident);
/** Get the real ident (username) of this user.
* @return The displayed ident of this user.
* NOTE: Where possible, you should use the Get/SetVIdent() equivilants.
* NOTE: Where possible, you should use the Get/SetVIdent() equivalents.
*/
const Anope::string &GetIdent() const;
+1 -1
View File
@@ -1,6 +1,6 @@
/* Build bumper
*
* (C) 2003-2020 Anope Team
* (C) 2003-2026 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.

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