authd/provider: don't crash if there's no init or destroy function
This commit is contained in:
parent
15c49abbb3
commit
9f9ab5c2d6
1 changed files with 7 additions and 3 deletions
|
@ -82,7 +82,9 @@ load_provider(struct auth_provider *provider)
|
||||||
if(provider->stats_handler.letter != '\0')
|
if(provider->stats_handler.letter != '\0')
|
||||||
authd_stat_handlers[provider->stats_handler.letter] = provider->stats_handler.handler;
|
authd_stat_handlers[provider->stats_handler.letter] = provider->stats_handler.handler;
|
||||||
|
|
||||||
provider->init();
|
if(provider->init != NULL)
|
||||||
|
provider->init();
|
||||||
|
|
||||||
rb_dlinkAdd(provider, &provider->node, &auth_providers);
|
rb_dlinkAdd(provider, &provider->node, &auth_providers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +102,9 @@ unload_provider(struct auth_provider *provider)
|
||||||
if(provider->stats_handler.letter != '\0')
|
if(provider->stats_handler.letter != '\0')
|
||||||
authd_stat_handlers[provider->stats_handler.letter] = NULL;
|
authd_stat_handlers[provider->stats_handler.letter] = NULL;
|
||||||
|
|
||||||
provider->destroy();
|
if(provider->destroy != NULL)
|
||||||
|
provider->destroy();
|
||||||
|
|
||||||
rb_dlinkDelete(&provider->node, &auth_providers);
|
rb_dlinkDelete(&provider->node, &auth_providers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,7 +186,7 @@ provider_done(struct auth_client *auth, provider_t id)
|
||||||
{
|
{
|
||||||
provider = ptr->data;
|
provider = ptr->data;
|
||||||
|
|
||||||
if(provider->completed && is_provider_on(auth, provider->id))
|
if(provider->completed != NULL && is_provider_on(auth, provider->id))
|
||||||
/* Notify pending clients who asked for it */
|
/* Notify pending clients who asked for it */
|
||||||
provider->completed(auth, id);
|
provider->completed(auth, id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue