Commit graph

45 commits

Author SHA1 Message Date
Simon Arlott
bfd95f010b
authd: fix "is provider done" logic in blacklist/opm providers
This fixes #262.
2018-08-12 11:19:44 +01:00
Simon Arlott
c6ad9b0c5f
Add basic SCTP listener support that binds to multiple addresses
This only supports two addresses as the intended use is 1 IPv4 and 1 IPv6
address on a single-homed host, and the only supported configuration of
outgoing connections to other servers is to bind a single IPv4 or IPv6
address.
2017-08-24 20:08:20 +01:00
Simon Arlott
f21ef0cebc
authd: assume all providers are running
Otherwise ident returns without setting itself running causing problems.

Move opm/blacklist before ident/rdns so that they can receive completion
notifications.
2017-08-20 12:54:45 +01:00
Simon Arlott
2f598dacdd
authd: remove unused variable id from accept_client 2016-05-01 11:51:06 +01:00
Simon Arlott
a5f52774bb
authd: Only use refcount for reference counting
Use providers_active for provider activity tracking.
2016-05-01 11:31:05 +01:00
Simon Arlott
2392770f4d
authd: fix auth->cid type sizes
* long is too small on 32-bit systems, use unsigned long long if we want
  to check for out of range values
* UINT32_MAX is a valid cid, and 0 isn't
* make auth->cid a uint32_t not uint16_t
2016-05-01 11:12:34 +01:00
Simon Arlott
9f928dc532
authd: don't call cancel_providers recursively
Also check that they haven't been cancelled while starting up.
2016-05-01 10:53:34 +01:00
Simon Arlott
d955cd9f97
authd: use a list for auth_providers
We only need to iterate over this small fixed size list, so
dictionary iteration will be less efficient.
2016-05-01 10:49:12 +01:00
William Pitcock
b585278b32 authd: provider: make refcounting system less fragile 2016-04-30 19:26:02 -05:00
William Pitcock
a71b65b15c Revert "authd: change to lists instead of dictionaries for various things"
This reverts commit 49fd293f20.
2016-04-30 19:20:12 -05:00
Elizabeth Myers
49fd293f20
authd: change to lists instead of dictionaries for various things
Iteration is the primary thing done on these, so using a dictionary
doesn't help a lot. Furthermore (and most importantly), they are not
safe to delete from.
2016-04-30 01:59:05 -05:00
Elizabeth Myers
6b3e61f1f8 Use uint32_t for get_provider_id, not int 2016-04-06 05:43:28 -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
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
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
64afc35817 authd/provider: make reject_client take a format string and varargs 2016-03-30 01:29:21 -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
247b304f1f authd/provider: forgot this file... 2016-03-26 20:33:21 -05:00
Elizabeth Myers
cdf1592915 Check these out from authd-framework-2. 2016-03-26 16:53:43 -05:00
Elizabeth Myers
9b24cbdecc Merge branch 'authd-framework-2' into authd-framework 2016-03-26 16:52:13 -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
a7d5aea119 provider: make blacklist queries come after ident/rdns. 2016-03-25 20:46:58 -05:00
Elizabeth Myers
add80afdcb authd/provider: add blacklist provider.
This took way longer than it should have.
2016-03-25 20:07:36 -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
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
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
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
Elizabeth Myers
91f870b39b auth: enable soft reject of clients.
This doesn't cancel callbacks in progress. This is useful in cases where
you're not sure you want to reject a client yet.
2016-03-10 11:30:09 -06:00
Elizabeth Myers
f1861e48e6 authd: identd fixes 2016-03-10 10:00:46 -06:00
Elizabeth Myers
b74739c247 auth: use sockaddr_storage to store ports 2016-03-10 09:32:37 -06:00
Elizabeth Myers
187643195c authd: add rdns provider (compile-tested) 2016-03-10 08:04:17 -06:00
Elizabeth Myers
5bfc606fa4 authd/provider: use rb_sockaddr_storage for IP addresses. 2016-03-10 07:25:22 -06:00
Elizabeth Myers
f169fc8842 authd: add address families to provider processing.
ircd knows about them so let's not reinvent checking for address types
and stuff.
2016-03-10 05:40:21 -06:00
Elizabeth Myers
9b5b2dedc0 authd/provider: add these to provider.h 2016-03-10 03:15:03 -06:00
Elizabeth Myers
0f95a2749f rename auth.[ch] to provider.[ch]
This name is less confusing and more descriptive.
2016-03-10 03:07:52 -06:00
Renamed from authd/auth.h (Browse further)