auth_t *auth_get_authenticator(char *type, config_options_t *options) { auth_t *auth = NULL; if(!strcmp(type, "htpasswd")) { auth = auth_get_htpasswd_auth(options); auth->type = strdup(type); } else { ERROR1("Unrecognised authenticator type: \"%s\"", type); return NULL; } if(!auth) ERROR1("Couldn't configure authenticator of type \"%s\"", type); return auth; }
static int get_authenticator (auth_t *auth, config_options_t *options) { if (auth->type == NULL) { ICECAST_LOG_WARN("no authentication type defined"); return -1; } do { ICECAST_LOG_DEBUG("type is %s", auth->type); if (strcmp (auth->type, "url") == 0) { #ifdef HAVE_AUTH_URL if (auth_get_url_auth (auth, options) < 0) return -1; break; #else ICECAST_LOG_ERROR("Auth URL disabled"); return -1; #endif } if (strcmp (auth->type, "htpasswd") == 0) { if (auth_get_htpasswd_auth (auth, options) < 0) return -1; break; } ICECAST_LOG_ERROR("Unrecognised authenticator type: \"%s\"", auth->type); return -1; } while (0); while (options) { if (strcmp (options->name, "allow_duplicate_users") == 0) auth->allow_duplicate_users = atoi ((char*)options->value); options = options->next; } return 0; }
static int get_authenticator (auth_t *auth, config_options_t *options) { if (auth->type == NULL) { WARN0 ("no authentication type defined"); return -1; } do { DEBUG1 ("type is %s", auth->type); if (strcmp (auth->type, "url") == 0) { #ifdef HAVE_AUTH_URL if (auth_get_url_auth (auth, options) < 0) return -1; break; #else ERROR0 ("Auth URL disabled, no libcurl support"); return -1; #endif } if (strcmp (auth->type, "command") == 0) { #ifdef WIN32 ERROR1("Authenticator type: \"%s\" not supported on win32 platform", auth->type); return -1; #else if (auth_get_cmd_auth (auth, options) < 0) return -1; break; #endif } if (strcmp (auth->type, "htpasswd") == 0) { if (auth_get_htpasswd_auth (auth, options) < 0) return -1; break; } ERROR1("Unrecognised authenticator type: \"%s\"", auth->type); return -1; } while (0); while (options) { if (strcmp (options->name, "allow_duplicate_users") == 0) auth->flags |= atoi (options->value) ? AUTH_ALLOW_LISTENER_DUP : 0; else if (strcmp(options->name, "realm") == 0) auth->realm = (char*)xmlStrdup (XMLSTR(options->value)); else if (strcmp(options->name, "drop_existing_listener") == 0) auth->flags |= atoi (options->value) ? AUTH_DEL_EXISTING_LISTENER : 0; else if (strcmp (options->name, "rejected_mount") == 0) auth->rejected_mount = (char*)xmlStrdup (XMLSTR(options->value)); else if (strcmp(options->name, "handlers") == 0) auth->handlers = atoi (options->value); options = options->next; } if (auth->handlers < 1) auth->handlers = 3; if (auth->handlers > 100) auth->handlers = 100; return 0; }