Commit graph

45 commits

Author SHA1 Message Date
Elizabeth Myers
4434f37513 authd: clean up refcounting stuff 2016-04-06 11:43:05 -05:00
Elizabeth Myers
45e6c74631 authd: refcounting fixes 2016-04-06 09:52:25 -05:00
Elizabeth Myers
731d128990 authd: rework module ID system
Provider ID's are now assigned dynamically at load-time. To accomodate
this, there is now a lookup system for finding providers by name (all
providers have names as well).
2016-04-05 04:31:22 -05:00
Elizabeth Myers
376ae2e2a7 Clean up the provider status logic.
Provider status (done, running, not run) is now attached to the
provider-specific data of the client. A reference count of auth
instances is kept in the auth_client struct to determine if a client is
done or not.

This also moves a lot of the logic for manipulating provider data into
into the provider.h header for inlining (no point in a function call for
these simple accessors).
2016-04-05 03:30:02 -05:00
Elizabeth Myers
a68d9a2b61 authd: dynamically allocate data and timeout elements 2016-04-05 03:08:52 -05:00
Elizabeth Myers
2e1e0b9981 authd: add provider timeout setting API 2016-04-04 04:24:49 -05:00
Elizabeth Myers
74909c9ada authd: add provider data getter/setter functions 2016-04-04 03:33:25 -05:00
Elizabeth Myers
53c0462146 provider: use rb_dlinkAddTail instead of rb_dlinkAdd.
Providers we add last should come last, not first.
2016-04-03 00:06:58 -05:00
Elizabeth Myers
5cbfed5407 authd: fix up comment [ci skip] 2016-04-02 03:49:31 -05:00
Elizabeth Myers
a3b112f426 authd: fix race with aborting clients. 2016-04-02 03:48:37 -05:00
Elizabeth Myers
fbe8d087e7 Add exempt logic for open proxies 2016-04-02 02:42:11 -05:00
Elizabeth Myers
d86692fa44 Add new sockaddr_storage port retrieval/setting macros
These macros are safe for use on IPv6 and clean up a lot of code.
2016-03-31 03:00:29 -05:00
Elizabeth Myers
4e85459a7c authd: add (not really working) OPM provider.
It doesn't do anything yet as no configuration is plugged in, as well.
2016-03-31 00:28:05 -05:00
Elizabeth Myers
c23f97550f authd/provider: exit on critical errors 2016-03-31 00:26:48 -05:00
Elizabeth Myers
9f9ab5c2d6 authd/provider: don't crash if there's no init or destroy function 2016-03-30 23:17:21 -05:00
Elizabeth Myers
15c49abbb3 authd/providers: add timeout callback system.
This means that each provider no longer has to keep its own event; it
can set a timeout and have a callbackinstead.
2016-03-30 17:21:49 -05:00
Elizabeth Myers
a5ab106298 authd/provider: fix misordering in macro 2016-03-30 03:38:30 -05:00
Elizabeth Myers
045d9d31c2 Merge branch 'master' of github.com:charybdis-ircd/charybdis 2016-03-30 02:33:19 -05:00
Elizabeth Myers
b3912eae9b authd/provider: it's va_start. 2016-03-30 02:32:34 -05:00
Elizabeth Myers
52d49164a8 authd/provider: include stdinc.h for stdarg.h 2016-03-30 02:22:43 -05:00
Elizabeth Myers
64afc35817 authd/provider: make reject_client take a format string and varargs 2016-03-30 01:29:21 -05:00
Matt Ullman
d8f8474dfd authd: Cleanup 2016-03-28 20:14:31 -04:00
Elizabeth Myers
1345a41dda authd: misc fixes 2016-03-28 16:46:52 -05:00
Elizabeth Myers
ee7f92714a authd/provider: add stats handling hooking 2016-03-27 17:15:08 -05:00
Elizabeth Myers
6535177fef authd/provider: add data to rejection tag.
This is used for information such as what blacklist rejected the client.
2016-03-27 13:52:52 -05:00
Elizabeth Myers
60374ac975 authd: add abiltiy to cancel connection 2016-03-26 23:54:21 -05:00
Elizabeth Myers
420cfb677c authd/provider: add notices in comments to certain functions not to use auth after calling 2016-03-26 23:16:53 -05:00
Elizabeth Myers
05fdc0301d authd/provider: do not accept clients until all providers have had a chance to run 2016-03-26 20:32:35 -05:00
Elizabeth Myers
f5586c3abb authd: misc provider fixes 2016-03-26 19:50:09 -05:00
Elizabeth Myers
0cff7adb13 authd/provider: some fixes 2016-03-26 18:01:58 -05:00
Elizabeth Myers
a51487e0e7 authd/provider: add options handlers for providers
This allows providers to create handlers for changing their
configuration.
2016-03-25 23:04:00 -05:00
Elizabeth Myers
db821ee9ba authd: split out notices stuff for backporting to master. 2016-03-25 21:29:44 -05:00
Elizabeth Myers
3ad21f6107 authd/provider: remove obsolete comment [ci skip] 2016-03-25 21:08:46 -05:00
Elizabeth Myers
ee658821e3 reject_client: send back ident and hostname with rejection.
At the moment (possibly not in the future) ircd will want to override
our decision whether or not to accept a client; we need to give them
enough information back to ensure they can do it properly.
2016-03-25 21:05:52 -05:00
Elizabeth Myers
a7d5aea119 provider: make blacklist queries come after ident/rdns. 2016-03-25 20:46:58 -05:00
Elizabeth Myers
b2ede1aa71 actually use warn_opers function 2016-03-24 19:36:41 -05:00
Elizabeth Myers
89d22b9af5 authd/provider: cleanups 2016-03-24 19:23:49 -05:00
Elizabeth Myers
32f8c78b55 stupidity fixes 2016-03-23 19:06:33 -05:00
Elizabeth Myers
9c7498d559 authd/provider: add c_addr/l_addr fields
Some providers consume these directly, so it's better to have a "cached"
version that's already generated.
2016-03-23 18:58:37 -05:00
Elizabeth Myers
a52c7a8e69 authd/provider: really fix things for new changes. 2016-03-23 09:15:18 -05:00
Elizabeth Myers
aba29d5a19 authd/provider: incorporate new changes 2016-03-23 09:03:37 -05:00
Elizabeth Myers
3e875f629f authd/provider: overhaul storage of various pieces of data
Clients are stored in a dictionary referenced by id (to allow for
UINT32_MAX auth clients, which is plenty).

Each provider now has a data slot (this limits the number of providers
to 32 for now, but that's plenty for now) which they can use to attach
data to auth_clients. This consolidates data, aids in debugging, and
makes it easier to just pass around auth_client structures.
2016-03-22 19:13:54 -05:00
Elizabeth Myers
46d17a88b4 provider: compile fixes 2016-03-19 15:58:48 -05:00
Elizabeth Myers
f7b37c1dc1 authd: add provider-specific data to auth_client via a dictionary. 2016-03-19 15:47:10 -05:00
Elizabeth Myers
2b0cc3d36a Redo of the authd-framework branch.
This is basically most of the code from the authd-framework branch, but
written to the new DNS code in master. Not quite done yet but getting
there.
2016-03-17 16:23:27 -05:00