mirror of
https://github.com/matrix-construct/construct
synced 2024-12-29 00:44:17 +01:00
authd/provider: add stats handling hooking
This commit is contained in:
parent
02e141f7a3
commit
ee7f92714a
2 changed files with 15 additions and 0 deletions
|
@ -74,6 +74,9 @@ load_provider(struct auth_provider *provider)
|
||||||
rb_dictionary_add(authd_option_handlers, handler->option, handler);
|
rb_dictionary_add(authd_option_handlers, handler->option, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(provider->stats_handler.letter != '\0')
|
||||||
|
authd_stat_handlers[provider->stats_handler.letter] = provider->stats_handler.handler;
|
||||||
|
|
||||||
provider->init();
|
provider->init();
|
||||||
rb_dlinkAdd(provider, &provider->node, &auth_providers);
|
rb_dlinkAdd(provider, &provider->node, &auth_providers);
|
||||||
}
|
}
|
||||||
|
@ -88,6 +91,10 @@ unload_provider(struct auth_provider *provider)
|
||||||
for(handler = provider->opt_handlers; handler->option != NULL; handler++)
|
for(handler = provider->opt_handlers; handler->option != NULL; handler++)
|
||||||
rb_dictionary_delete(authd_option_handlers, handler->option);
|
rb_dictionary_delete(authd_option_handlers, handler->option);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(provider->stats_handler.letter != '\0')
|
||||||
|
authd_stat_handlers[provider->stats_handler.letter] = NULL;
|
||||||
|
|
||||||
provider->destroy();
|
provider->destroy();
|
||||||
rb_dlinkDelete(&provider->node, &auth_providers);
|
rb_dlinkDelete(&provider->node, &auth_providers);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,6 +65,12 @@ typedef bool (*provider_start_t)(struct auth_client *);
|
||||||
typedef void (*provider_cancel_t)(struct auth_client *);
|
typedef void (*provider_cancel_t)(struct auth_client *);
|
||||||
typedef void (*provider_complete_t)(struct auth_client *, provider_t);
|
typedef void (*provider_complete_t)(struct auth_client *, provider_t);
|
||||||
|
|
||||||
|
struct auth_stats_handler
|
||||||
|
{
|
||||||
|
const char letter;
|
||||||
|
authd_stat_handler handler;
|
||||||
|
};
|
||||||
|
|
||||||
struct auth_provider
|
struct auth_provider
|
||||||
{
|
{
|
||||||
rb_dlink_node node;
|
rb_dlink_node node;
|
||||||
|
@ -78,6 +84,8 @@ struct auth_provider
|
||||||
provider_cancel_t cancel; /* Authentication cancelled */
|
provider_cancel_t cancel; /* Authentication cancelled */
|
||||||
provider_complete_t completed; /* Callback for when other performers complete (think dependency chains) */
|
provider_complete_t completed; /* Callback for when other performers complete (think dependency chains) */
|
||||||
|
|
||||||
|
struct auth_stats_handler stats_handler;
|
||||||
|
|
||||||
struct auth_opts_handler *opt_handlers;
|
struct auth_opts_handler *opt_handlers;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue