246 |
static void addcommand(int); |
static void addcommand(int); |
247 |
static void addargument(char *); |
static void addargument(char *); |
248 |
static void addmailserver(char *); |
static void addmailserver(char *); |
249 |
static int addcredentials(char *, char *, int); |
static int addcredentials(char *, char *, int, int); |
250 |
static void addhtpasswdentry(char *, char *, int); |
static void addhtpasswdentry(char *, char *, int); |
251 |
static uid_t get_uid(char *, uid_t); |
static uid_t get_uid(char *, uid_t); |
252 |
static gid_t get_gid(char *, gid_t); |
static gid_t get_gid(char *, gid_t); |
295 |
|
|
296 |
%token IF THEN ELSE FAILED CYCLE |
%token IF THEN ELSE FAILED CYCLE |
297 |
%token SET LOGFILE FACILITY DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT |
%token SET LOGFILE FACILITY DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT |
298 |
%token CLEARTEXT MD5TOKEN CRYPT |
%token READONLY CLEARTEXT MD5TOKEN CRYPT |
299 |
%token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION |
%token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION |
300 |
%token STATEFILE SEND EXPECT |
%token STATEFILE SEND EXPECT |
301 |
%token CHECK PIDFILE START STOP PATHTOK |
%token CHECK PIDFILE START STOP PATHTOK |
575 |
} |
} |
576 |
; |
; |
577 |
|
|
578 |
allow : ALLOW STRING':'STRING { |
allow : ALLOW STRING':'STRING readonly { |
579 |
addcredentials($2,$4, DIGEST_CLEARTEXT ); |
addcredentials($2,$4, DIGEST_CLEARTEXT, $<number>5); |
580 |
} |
} |
581 |
| ALLOW PATH { addhtpasswdentry($2, NULL, DIGEST_CLEARTEXT); |
| ALLOW PATH { addhtpasswdentry($2, NULL, DIGEST_CLEARTEXT); |
582 |
FREE($2); } |
FREE($2); } |
619 |
FREE($1); } |
FREE($1); } |
620 |
; |
; |
621 |
|
|
622 |
|
readonly : /* EMPTY */ { $<number>$= FALSE; } |
623 |
|
| READONLY { $<number>$= TRUE; } |
624 |
|
; |
625 |
|
|
626 |
checkproc : CHECKPROC SERVICENAME PIDFILE PATH { |
checkproc : CHECKPROC SERVICENAME PIDFILE PATH { |
627 |
check_name($<string>2); |
check_name($<string>2); |
628 |
createservice(TYPE_PROCESS, $<string>2, $4); |
createservice(TYPE_PROCESS, $<string>2, $4); |
2109 |
|
|
2110 |
if (username==NULL) { |
if (username==NULL) { |
2111 |
|
|
2112 |
if (addcredentials(ht_username, ht_passwd, dtype)) { |
if (addcredentials(ht_username, ht_passwd, dtype, FALSE)) { |
2113 |
credentials_added++; |
credentials_added++; |
2114 |
} |
} |
2115 |
|
|
2116 |
} else if (strcmp(username, ht_username) == 0) { |
} else if (strcmp(username, ht_username) == 0) { |
2117 |
|
|
2118 |
if (addcredentials(ht_username, ht_passwd, dtype)) { |
if (addcredentials(ht_username, ht_passwd, dtype, FALSE)) { |
2119 |
credentials_added++; |
credentials_added++; |
2120 |
} |
} |
2121 |
|
|
2154 |
/* |
/* |
2155 |
* Add Basic Authentication credentials |
* Add Basic Authentication credentials |
2156 |
*/ |
*/ |
2157 |
static int addcredentials(char *uname, char *passwd, int dtype) { |
static int addcredentials(char *uname, char *passwd, int dtype, int readonly) { |
2158 |
|
|
2159 |
Auth_T c; |
Auth_T c; |
2160 |
|
|
2195 |
c->uname=uname; |
c->uname=uname; |
2196 |
c->passwd=passwd; |
c->passwd=passwd; |
2197 |
c->digesttype=dtype; |
c->digesttype=dtype; |
2198 |
|
c->is_readonly= readonly; |
2199 |
|
|
2200 |
DEBUG("%s: Adding credenitials for user '%s'.\n", prog, uname); |
DEBUG("%s: Adding credenitials for user '%s'.\n", prog, uname); |
2201 |
|
|