mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-09-29 04:25:55 -04:00
Feature: Added function to convert strings into auth results
This commit is contained in:
parent
b3497e6ec8
commit
7b608e27be
65
src/auth.c
65
src/auth.c
@ -62,40 +62,43 @@ static unsigned long _next_auth_id(void) {
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct {
|
||||||
|
auth_result result;
|
||||||
|
const char *string;
|
||||||
|
} __auth_results[] = {
|
||||||
|
{.result = AUTH_UNDEFINED, .string = "undefined"},
|
||||||
|
{.result = AUTH_OK, .string = "ok"},
|
||||||
|
{.result = AUTH_FAILED, .string = "failed"},
|
||||||
|
{.result = AUTH_RELEASED, .string = "released"},
|
||||||
|
{.result = AUTH_FORBIDDEN, .string = "forbidden"},
|
||||||
|
{.result = AUTH_NOMATCH, .string = "no match"},
|
||||||
|
{.result = AUTH_USERADDED, .string = "user added"},
|
||||||
|
{.result = AUTH_USEREXISTS, .string = "user exists"},
|
||||||
|
{.result = AUTH_USERDELETED, .string = "user deleted"}
|
||||||
|
};
|
||||||
|
|
||||||
static const char *auth_result2str(auth_result res)
|
static const char *auth_result2str(auth_result res)
|
||||||
{
|
{
|
||||||
switch (res) {
|
size_t i;
|
||||||
case AUTH_UNDEFINED:
|
|
||||||
return "undefined";
|
for (i = 0; i < (sizeof(__auth_results)/sizeof(*__auth_results)); i++) {
|
||||||
break;
|
if (__auth_results[i].result == res)
|
||||||
case AUTH_OK:
|
return __auth_results[i].string;
|
||||||
return "ok";
|
|
||||||
break;
|
|
||||||
case AUTH_FAILED:
|
|
||||||
return "failed";
|
|
||||||
break;
|
|
||||||
case AUTH_RELEASED:
|
|
||||||
return "released";
|
|
||||||
break;
|
|
||||||
case AUTH_FORBIDDEN:
|
|
||||||
return "forbidden";
|
|
||||||
break;
|
|
||||||
case AUTH_NOMATCH:
|
|
||||||
return "no match";
|
|
||||||
break;
|
|
||||||
case AUTH_USERADDED:
|
|
||||||
return "user added";
|
|
||||||
break;
|
|
||||||
case AUTH_USEREXISTS:
|
|
||||||
return "user exists";
|
|
||||||
break;
|
|
||||||
case AUTH_USERDELETED:
|
|
||||||
return "user deleted";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return "(unknown)";
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return "(unknown)";
|
||||||
|
}
|
||||||
|
|
||||||
|
auth_result auth_str2result(const char *str)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < (sizeof(__auth_results)/sizeof(*__auth_results)); i++) {
|
||||||
|
if (strcasecmp(__auth_results[i].string, str) == 0)
|
||||||
|
return __auth_results[i].result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return AUTH_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static auth_client *auth_client_setup (client_t *client)
|
static auth_client *auth_client_setup (client_t *client)
|
||||||
|
@ -164,6 +164,8 @@ int auth_get_htpasswd_auth(auth_t *auth, config_options_t *options);
|
|||||||
void auth_initialise(void);
|
void auth_initialise(void);
|
||||||
void auth_shutdown(void);
|
void auth_shutdown(void);
|
||||||
|
|
||||||
|
auth_result auth_str2result(const char *str);
|
||||||
|
|
||||||
auth_t *auth_get_authenticator(xmlNodePtr node);
|
auth_t *auth_get_authenticator(xmlNodePtr node);
|
||||||
void auth_release(auth_t *authenticator);
|
void auth_release(auth_t *authenticator);
|
||||||
void auth_addref(auth_t *authenticator);
|
void auth_addref(auth_t *authenticator);
|
||||||
|
Loading…
Reference in New Issue
Block a user