0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-27 07:54:05 +01:00

ircd/authd: cleanups

This commit is contained in:
Elizabeth Myers 2016-04-02 01:05:21 -05:00
parent 1de169a248
commit b1a577f224
2 changed files with 38 additions and 8 deletions

View file

@ -47,7 +47,8 @@ void rehash_authd(void);
void check_authd(void); void check_authd(void);
void authd_initiate_client(struct Client *); void authd_initiate_client(struct Client *);
void authd_decide_client(struct Client *client_p, const char *ident, const char *host, bool accept, char cause, const char *data, const char *reason); void authd_accept_client(struct Client *client_p, const char *ident, const char *host);
void authd_reject_client(struct Client *client_p, const char *ident, const char *host, char cause, const char *data, const char *reason);
void authd_abort_client(struct Client *); void authd_abort_client(struct Client *);
const char *get_provider_string(char cause); const char *get_provider_string(char cause);
@ -56,6 +57,8 @@ void del_blacklist(const char *host);
void del_blacklist_all(void); void del_blacklist_all(void);
bool set_authd_timeout(const char *key, int timeout); bool set_authd_timeout(const char *key, int timeout);
void ident_check_enable(bool enabled); void ident_check_enable(bool enabled);
bool create_opm_listener(const char *ip, uint16_t port); void create_opm_listener(const char *ip, uint16_t port);
void opm_check_enable(bool enabled);
void create_opm_proxy_scan(const char *scan, uint16_t port);
#endif #endif

View file

@ -151,7 +151,7 @@ parse_authd_reply(rb_helper * helper)
return; return;
} }
authd_decide_client(client_p, parv[2], parv[3], true, '\0', NULL, NULL); authd_accept_client(client_p, parv[2], parv[3]);
break; break;
case 'R': /* Reject client */ case 'R': /* Reject client */
if(parc != 7) if(parc != 7)
@ -178,7 +178,7 @@ parse_authd_reply(rb_helper * helper)
return; return;
} }
authd_decide_client(client_p, parv[3], parv[4], false, toupper(*parv[2]), parv[5], parv[6]); authd_reject_client(client_p, parv[3], parv[4], toupper(*parv[2]), parv[5], parv[6]);
break; break;
case 'N': /* Notice to client */ case 'N': /* Notice to client */
if(parc != 3) if(parc != 3)
@ -398,7 +398,7 @@ authd_initiate_client(struct Client *client_p)
* *
* After this point authd no longer "owns" the client. * After this point authd no longer "owns" the client.
*/ */
void static inline void
authd_decide_client(struct Client *client_p, const char *ident, const char *host, bool accept, char cause, const char *data, const char *reason) authd_decide_client(struct Client *client_p, const char *ident, const char *host, bool accept, char cause, const char *data, const char *reason)
{ {
if(client_p->preClient == NULL || client_p->preClient->authd_cid == 0) if(client_p->preClient == NULL || client_p->preClient->authd_cid == 0)
@ -435,6 +435,20 @@ authd_decide_client(struct Client *client_p, const char *ident, const char *host
read_packet(client_p->localClient->F, client_p); read_packet(client_p->localClient->F, client_p);
} }
/* Convenience function to accept client */
void
authd_accept_client(struct Client *client_p, const char *ident, const char *host)
{
authd_decide_client(client_p, ident, host, true, '\0', NULL, NULL);
}
/* Convenience function to reject client */
void
authd_reject_client(struct Client *client_p, const char *ident, const char *host, char cause, const char *data, const char *reason)
{
authd_decide_client(client_p, ident, host, false, cause, data, reason);
}
void void
authd_abort_client(struct Client *client_p) authd_abort_client(struct Client *client_p)
{ {
@ -450,7 +464,7 @@ authd_abort_client(struct Client *client_p)
rb_helper_write(authd_helper, "E %x", client_p->preClient->authd_cid); rb_helper_write(authd_helper, "E %x", client_p->preClient->authd_cid);
/* XXX should we blindly allow like this? */ /* XXX should we blindly allow like this? */
authd_decide_client(client_p, "*", "*", true, '\0', NULL, NULL); authd_accept_client(client_p, "*", "*");
client_p->preClient->authd_cid = 0; client_p->preClient->authd_cid = 0;
} }
@ -563,9 +577,22 @@ ident_check_enable(bool enabled)
} }
/* Create an OPM listener */ /* Create an OPM listener */
bool void
create_opm_listener(const char *ip, uint16_t port) create_opm_listener(const char *ip, uint16_t port)
{ {
rb_helper_write(authd_helper, "O opm_listener %s %hu", ip, port); rb_helper_write(authd_helper, "O opm_listener %s %hu", ip, port);
return true; }
/* Disable all OPM scans */
void
opm_check_enable(bool enabled)
{
rb_helper_write(authd_helper, "O opm_enable %d", enabled ? 1 : 0);
}
/* Create an OPM proxy scan */
void
create_opm_proxy_scan(const char *scan, uint16_t port)
{
rb_helper_write(authd_helper, "O opm_scanner %s %hu", scan, port);
} }