#include "http_request.h"
#include "http_protocol.h"
-
typedef struct anon_auth {
char *password;
struct anon_auth *next;
} anon_auth;
typedef struct {
-
anon_auth *anon_auth_passwords;
int anon_auth_nouserid;
int anon_auth_logemail;
int anon_auth_verifyemail;
int anon_auth_mustemail;
int anon_auth_authoritative;
-
} anon_auth_config_rec;
-
static void *create_anon_auth_dir_config(apr_pool_t *p, char *d)
{
anon_auth_config_rec *conf = apr_palloc(p, sizeof(*conf));
anon_auth *first;
if (!(*arg))
- return "Anonymous string cannot be empty, use Anonymous_NoUserId instead";
+ return "Anonymous string cannot be empty, use Anonymous_NoUserId instead";
/* squeeze in a record */
first = conf->anon_auth_passwords;
if (!(conf->anon_auth_passwords = apr_palloc(cmd->pool, sizeof(anon_auth))) ||
!(conf->anon_auth_passwords->password = apr_pstrdup(cmd->pool, arg)))
- return "Failed to claim memory for an anonymous password...";
+ return "Failed to claim memory for an anonymous password...";
/* and repair the next */
conf->anon_auth_passwords->next = first;
const char *sent_pw;
int res = DECLINED;
- if ((res = ap_get_basic_auth_pw(r, &sent_pw)))
- return res;
+ if ((res = ap_get_basic_auth_pw(r, &sent_pw))) {
+ return res;
+ }
/* Ignore if we are not configured */
- if (!conf->anon_auth_passwords)
- return DECLINED;
+ if (!conf->anon_auth_passwords) {
+ return DECLINED;
+ }
/* Do we allow an empty userID and/or is it the magic one
*/
if ((!(r->user[0])) && (conf->anon_auth_nouserid)) {
- res = OK;
+ res = OK;
}
else {
- anon_auth *p = conf->anon_auth_passwords;
- res = DECLINED;
- while ((res == DECLINED) && (p != NULL)) {
- if (!(strcasecmp(r->user, p->password)))
- res = OK;
- p = p->next;
- }
+ anon_auth *p = conf->anon_auth_passwords;
+ res = DECLINED;
+ while ((res == DECLINED) && (p != NULL)) {
+ if (!(strcasecmp(r->user, p->password))) {
+ res = OK;
+ }
+ p = p->next;
+ }
}
if (
- /* username is OK */
- (res == OK)
- /* password been filled out ? */
- && ((!conf->anon_auth_mustemail) || strlen(sent_pw))
- /* does the password look like an email address ? */
- && ((!conf->anon_auth_verifyemail)
- || ((strpbrk("@", sent_pw) != NULL)
- && (strpbrk(".", sent_pw) != NULL)))) {
- if (conf->anon_auth_logemail && ap_is_initial_req(r)) {
- ap_log_rerror(APLOG_MARK, APLOG_INFO, APR_SUCCESS, r,
- "Anonymous: Passwd <%s> Accepted",
- sent_pw ? sent_pw : "\'none\'");
- }
- return OK;
+ /* username is OK */
+ (res == OK)
+ /* password been filled out ? */
+ && ((!conf->anon_auth_mustemail) || strlen(sent_pw))
+ /* does the password look like an email address ? */
+ && ((!conf->anon_auth_verifyemail)
+ || ((strpbrk("@", sent_pw) != NULL)
+ && (strpbrk(".", sent_pw) != NULL)))) {
+ if (conf->anon_auth_logemail && ap_is_initial_req(r)) {
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, APR_SUCCESS, r,
+ "Anonymous: Passwd <%s> Accepted",
+ sent_pw ? sent_pw : "\'none\'");
+ }
+ return OK;
}
else {
- if (conf->anon_auth_authoritative) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_SUCCESS, r,
- "Anonymous: Authoritative, Passwd <%s> not accepted",
- sent_pw ? sent_pw : "\'none\'");
- return HTTP_UNAUTHORIZED;
- }
- /* Drop out the bottom to return DECLINED */
+ if (conf->anon_auth_authoritative) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, APR_SUCCESS, r,
+ "Anonymous: Authoritative, Passwd <%s> not accepted",
+ sent_pw ? sent_pw : "\'none\'");
+ return HTTP_UNAUTHORIZED;
+ }
+ /* Drop out the bottom to return DECLINED */
}
return DECLINED;
anon_auth_config_rec *conf = ap_get_module_config(r->per_dir_config,
&auth_anon_module);
- if (!conf->anon_auth)
- return DECLINED;
+ if (!conf->anon_auth) {
+ return DECLINED;
+ }
- if (strcasecmp(r->connection->user, conf->anon_auth))
- return DECLINED;
+ if (strcasecmp(r->connection->user, conf->anon_auth)) {
+ return DECLINED;
+ }
return OK;
#endif
module AP_MODULE_DECLARE_DATA auth_anon_module =
{
STANDARD20_MODULE_STUFF,
- create_anon_auth_dir_config,/* dir config creater */
- NULL, /* dir merger ensure strictness */
- NULL, /* server config */
- NULL, /* merge server config */
- anon_auth_cmds, /* command apr_table_t */
- register_hooks /* register hooks */
+ create_anon_auth_dir_config, /* dir config creater */
+ NULL, /* dir merger ensure strictness */
+ NULL, /* server config */
+ NULL, /* merge server config */
+ anon_auth_cmds, /* command apr_table_t */
+ register_hooks /* register hooks */
};