101 Commits

Author SHA1 Message Date
Attila Molnar
912fd7a922 m_cap Provide the OnCapAddDel() event 2015-12-05 15:57:00 +01:00
Attila Molnar
b9c6792cd6 m_cap Add Capability::GetCapValue(), list capabilities with values 2015-12-05 15:50:07 +01:00
Attila Molnar
9ac2eae1f0 m_cap Learn the supported capability negotiation protocol of a client from CAP LS
Let modules implementing caps query this information
2015-12-05 15:45:20 +01:00
Attila Molnar
3e08629e83 m_cap Add Capability::OnList() hook 2015-12-05 15:42:04 +01:00
Attila Molnar
bc388aa97c m_cap Add Capability::OnRequest() hook 2015-12-05 15:35:05 +01:00
Attila Molnar
259b111394 Add rewritten m_cap module
- Caps are now managed by m_cap
- Each cap uses one bit in an extension item shared with other caps
2015-12-05 15:29:01 +01:00
Attila Molnar
0528e83604 Nuke m_cap 2015-12-05 15:04:00 +01:00
Attila Molnar
19cc9292ab core_reloadmodule Allow modules to handle reload failures of other mods 2015-11-26 15:14:07 +01:00
Attila Molnar
d3eb1a77d7 core_reloadmodule Allow modules to save and restore their own data when reloading another mod 2015-11-26 15:10:00 +01:00
Attila Molnar
a124a3783d core_channel Implement invite (un)serialization 2015-11-02 13:40:15 +01:00
Attila Molnar
30fc51c6dd Rewrite invite system
- Moved out of core, now lives entirely in core_channel
- Accessible using the provided API after including the appropriate header
- Invites are stored in an extension attached to LocalUser/Channel objects, they no longer need special handling when destroying these objects or when lowering TS
- Expiration of timed invites are implemented using Timers
- When creating a new invite let a non-timed invite override a timed one
2015-11-02 13:28:55 +01:00
Adam
70542e525b Fail invalid dns responses instead of drop 2015-07-06 17:53:21 +02:00
Attila Molnar
d0556a2a59 Call OnStreamSocketWrite() once per write event
Do sendq flattening in SSL modules, move code for it into class SSLIOHook from core
2015-06-06 14:42:59 +02:00
Adam
f3513de58a New m_ldap from Anope
Redesign to be more like m_mysql, polling ldap_result from a thread as
done previously is undefined.
2015-05-18 10:11:08 -04:00
Attila Molnar
c090e54be9 core_dns Add DNS timeout timer in Process() not in DNS::Request constructor 2015-05-13 00:43:00 +02:00
Attila Molnar
d1f028db2b core_dns Make MAX_REQUEST_ID unsigned, move it to core_dns from header 2015-05-13 00:39:54 +02:00
Attila Molnar
8f34594cb7 Move OnWhois* events to core_whois, add Whois::Context
Remove InspIRCd::SendWhoisLine()
2015-04-28 15:16:22 +02:00
Attila Molnar
3d32852e7e core_dns Drop incoming packets containing a different question from what we asked 2015-04-27 19:28:00 +02:00
Attila Molnar
edfe7f035e core_dns Remove incomplete support for multiple questions per query 2015-04-21 15:24:10 +02:00
Attila Molnar
a28f095db8 core_dns Don't store query class code in Question 2015-04-21 15:14:29 +02:00
Attila Molnar
4e58282058 core_dns Add typedef for request id, change it to uint16_t 2015-04-21 15:08:10 +02:00
Peter Powell
cd5d78203b Fix building modules that use cap.h with a C++11 compiler. 2015-03-06 16:13:11 +00:00
Attila Molnar
97e2deac07 m_spanningtree Pass Server* to the OnServerLink/OnServerSplit events 2015-02-12 16:54:34 +01:00
Attila Molnar
0b8a9b5566 Convert the spanningtree events to use the new cross-module event system 2015-02-11 17:23:08 +01:00
Attila Molnar
3b83968416 Remove unused parameters from HTTPRequest constructor 2015-02-11 17:15:57 +01:00
Attila Molnar
1e8e379dce Convert the HTTPd request event to use the new cross-module event system 2015-02-11 17:13:08 +01:00
Attila Molnar
96dd0a52d9 Convert the HTTPd ACL event to use the new cross-module event system 2015-02-11 17:09:59 +01:00
Attila Molnar
c19e9d0edb Convert the SASL fallback event to use the new cross-module event system 2015-02-11 17:04:26 +01:00
Attila Molnar
f3ef8a230c Convert the CAP event to use the new cross-module event system 2015-02-11 17:01:00 +01:00
Attila Molnar
971788e42f Allow enabling/disabling caps via GenericCap::SetActive() 2015-02-11 16:52:39 +01:00
Attila Molnar
8c2135aad0 Convert the account login event to use the new cross-module event system 2015-02-11 16:46:11 +01:00
Attila Molnar
4fc2f7199e Specify which Extensible subclass an ExtensionItem is valid for 2015-01-18 10:40:33 +01:00
Daniel Vassdal
5c7db14a55 Hashing: Redo API
* Don't assume the printable output of hashes is hex
* Add virtual Compare() function, usable for KDFs like BCrypt

Some changes and bugfixes are by @attilamolnar, original PR #767
2014-08-04 12:38:12 +02:00
Attila Molnar
acccaa3964 Remove current time parameter of the Timer constructor 2014-07-10 12:17:55 +02:00
Attila Molnar
0babd8c078 Change allocation of InspIRCd::Timers to be physically part of the object containing it 2014-03-15 15:38:09 +01:00
Attila Molnar
5ac1ffce11 Allow Timers to delete themselves in Tick() 2014-01-30 21:44:51 +01:00
Attila Molnar
d02011d69f Remove whitespace and minor style changes 2014-01-23 14:37:09 +01:00
Attila Molnar
99f79a4e5c Split IOHook into IOHook and IOHookProvider
Create one IOHook instance for each hooked socket which contains all the
hook specific data and read/write/close functions, removing the need for
the "issl_session" array in SSL modules.

Register instances of the IOHookProvider class in the core and use them to
create specialized IOHook instances (OnConnect/OnAccept).

Remove the OnHookIO hook, add a dynamic reference to ListenSocket that
points to the hook provider (if any) to use for incoming connections on
that socket.

For outgoing connections modules still have to find the IOHookProvider
they want to use themselves but instead of calling AddIOHook(hookprov),
now they have to call IOHookProvider::OnConnect() after the connection
has been established.
2014-01-22 19:10:01 +01:00
Attila Molnar
11916574f6 Introduce Server class
- Replaces std::string server in User
- Replaces InspIRCd::ULine() and SilentULine()
2014-01-05 15:04:01 +01:00
Adam
dbbd333956 Add m_ldap, and convert m_ldapoper and m_ldapauth to use it. 2013-12-19 16:40:11 +01:00
attilamolnar
992674362c Automatically register ServiceProviders created by modules 2013-09-08 17:11:08 +02:00
attilamolnar
5384ddf545 Fix Windows build and a few more problems 2013-08-27 15:03:10 +02:00
Peter Powell
eaf658de3d Fix various small issues.
- Add CXX11_OVERRIDE to *Regex::Matches and *RegexFactory::Create.
- Fix documentation comment on regex_string.
- Fix various code duplication/layout issues.
2013-08-27 12:20:03 +01:00
Peter Powell
0e7f74a7c8 Make all regex modules throw the same exception on error. 2013-08-27 12:07:49 +01:00
Peter Powell
0003fc3131 Fix some warnings which are causing debug builds to fail.
- Clang: private field 'module' is not used
- GCC: suggest a space before ‘;’ or explicit braces around empty
       body in ‘while’ statement
2013-07-16 22:06:40 +01:00
attilamolnar
183d7a8dc0 Change the API of m_httpd to be dynamic_reference-based 2013-06-07 01:00:10 +02:00
attilamolnar
ad523652ae Change the API of m_sslinfo to be dynamic_reference-based 2013-06-07 01:00:10 +02:00
attilamolnar
3d6d9cda32 Create SSLIOHook interface that provides GetCertificate() 2013-06-07 01:00:10 +02:00
attilamolnar
79db1cf848 Create IOHook interface (extracted from Module) 2013-06-07 01:00:10 +02:00
Adam
8428bbb387 Modularize DNS
The DNS modules are temporarily in commands/ so they're loaded automatically

Thanks to Attila for helping with much of this.
2013-04-26 16:59:29 -05:00