Change the way authd configures opm
It's a bit of a hack, but better than before. Rather than rehashing (which could get us into an endless loop), we now segregate the configuration phase (creating entries ircd-side in case we restart authd later) and sending phases (when configure_authd() is called). Since we have to call configure_authd() no matter what (to send timeouts etc.) and we have to send this data to configure authd anyway, and sending duplicate data is bad, this is the only way I can think of for now.
This commit is contained in:
parent
5eb8ce0679
commit
5e9a3f8674
6 changed files with 175 additions and 21 deletions
|
@ -30,15 +30,38 @@
|
|||
#include "rb_dictionary.h"
|
||||
#include "client.h"
|
||||
|
||||
struct blacklist_stats
|
||||
struct BlacklistStats
|
||||
{
|
||||
uint8_t iptype;
|
||||
unsigned int hits;
|
||||
};
|
||||
|
||||
struct OPMScanner
|
||||
{
|
||||
char type[16]; /* Type of proxy */
|
||||
uint16_t port; /* Port */
|
||||
|
||||
rb_dlink_node node;
|
||||
};
|
||||
|
||||
struct OPMListener
|
||||
{
|
||||
char ipaddr[HOSTIPLEN]; /* Listener address */
|
||||
uint16_t port; /* Listener port */
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
LISTEN_IPV4,
|
||||
LISTEN_IPV6,
|
||||
LISTEN_LAST,
|
||||
};
|
||||
|
||||
extern rb_helper *authd_helper;
|
||||
|
||||
extern rb_dictionary *bl_stats;
|
||||
extern rb_dlink_list opm_list;
|
||||
extern struct OPMListener opm_listeners[LISTEN_LAST];
|
||||
|
||||
void init_authd(void);
|
||||
void configure_authd(void);
|
||||
|
@ -58,10 +81,13 @@ void del_blacklist_all(void);
|
|||
bool set_authd_timeout(const char *key, int timeout);
|
||||
void ident_check_enable(bool enabled);
|
||||
|
||||
void conf_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 conf_create_opm_proxy_scanner(const char *type, uint16_t port);
|
||||
void create_opm_proxy_scanner(const char *type, uint16_t port);
|
||||
void delete_opm_proxy_scanner(const char *type, uint16_t port);
|
||||
void delete_opm_proxy_scanner_all(void);
|
||||
void delete_opm_listener_all(void);
|
||||
void opm_check_enable(bool enabled);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue