1
0
mirror of https://github.com/falk-werner/webfuse-provider synced 2024-10-27 20:44:10 +00:00
falk-werner_webfuse-provider/lib/wsfs/adapter/impl/authenticator.c
Falk Werner 1c9d1c8420
feat(API wrapper): separates implementation from public API
* moves implementation to impl subdirectory
* adds prefix _impl to implementation symbols
* removes double compilation for shared and static libraries
* fixes include guards
* fixes usage of extern "C"
2019-03-26 15:35:33 +01:00

49 lines
1.1 KiB
C

#include "wsfs/adapter/impl/authenticator.h"
#include <stdlib.h>
#include <string.h>
#include "wsfs/adapter/impl/credentials.h"
struct wsfs_impl_authenticator * wsfs_impl_authenticator_create(
char const * type,
wsfs_authenticate_fn * authenticate,
void * user_data)
{
struct wsfs_impl_authenticator * authenticator = malloc(sizeof(struct wsfs_impl_authenticator));
if (NULL != authenticator)
{
authenticator->type = strdup(type);
authenticator->authenticate = authenticate;
authenticator->user_data = user_data;
authenticator->next = NULL;
}
return authenticator;
}
void wsfs_impl_authenticator_dispose(
struct wsfs_impl_authenticator * authenticator)
{
free(authenticator->type);
free(authenticator);
}
bool wsfs_impl_authenticator_autenticate(
struct wsfs_impl_authenticator * authenticator,
struct wsfs_credentials * credentials)
{
bool result;
if (0 == strcmp(authenticator->type, credentials->type))
{
result = authenticator->authenticate(credentials, authenticator->user_data);
}
else
{
result = false;
}
return result;
}