diff options
-rw-r--r-- | source3/cgi.c | 4 | ||||
-rw-r--r-- | source3/include/proto.h | 2 | ||||
-rw-r--r-- | source3/swat.c | 9 | ||||
-rw-r--r-- | source3/web/cgi.c | 4 | ||||
-rw-r--r-- | source3/web/swat.c | 9 |
5 files changed, 17 insertions, 11 deletions
diff --git a/source3/cgi.c b/source3/cgi.c index 7c84f47ada..83158fc1a5 100644 --- a/source3/cgi.c +++ b/source3/cgi.c @@ -548,7 +548,7 @@ static void cgi_download(char *file) setup the cgi framework, handling the possability that this program is either run as a true cgi program by a web browser or is itself a mini web server ***************************************************************************/ -void cgi_setup(char *rootdir) +void cgi_setup(char *rootdir, int auth_required) { int authenticated = 0; char line[1024]; @@ -586,7 +586,7 @@ void cgi_setup(char *rootdir) /* ignore all other requests! */ } - if (!authenticated) { + if (auth_required && !authenticated) { cgi_setup_error("401 Authorization Required", "WWW-Authenticate: Basic realm=\"root\"\r\n", "You must be authenticated to use this service"); diff --git a/source3/include/proto.h b/source3/include/proto.h index 06b2d4ec78..f0591743c0 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -28,7 +28,7 @@ char *quotedup(char *s); char *urlquote(char *s); char *quotequotes(char *s); void quote_spaces(char *buf); -void cgi_setup(char *rootdir); +void cgi_setup(char *rootdir, int auth_required); char *cgi_baseurl(void); /*The following definitions come from charcnv.c */ diff --git a/source3/swat.c b/source3/swat.c index 4810d87af3..6a5b4f51f1 100644 --- a/source3/swat.c +++ b/source3/swat.c @@ -432,6 +432,7 @@ int main(int argc, char *argv[]) extern FILE *dbf; int opt; char *page; + int auth_required = 1; /* just in case it goes wild ... */ alarm(300); @@ -440,16 +441,18 @@ int main(int argc, char *argv[]) if (!dbf) dbf = stderr; - cgi_setup(SWATDIR); - - while ((opt = getopt(argc, argv,"s:")) != EOF) { + while ((opt = getopt(argc, argv,"s:a")) != EOF) { switch (opt) { case 's': pstrcpy(servicesf,optarg); break; + case 'a': + auth_required = 0; + break; } } + cgi_setup(SWATDIR, auth_required); print_header(); diff --git a/source3/web/cgi.c b/source3/web/cgi.c index 7c84f47ada..83158fc1a5 100644 --- a/source3/web/cgi.c +++ b/source3/web/cgi.c @@ -548,7 +548,7 @@ static void cgi_download(char *file) setup the cgi framework, handling the possability that this program is either run as a true cgi program by a web browser or is itself a mini web server ***************************************************************************/ -void cgi_setup(char *rootdir) +void cgi_setup(char *rootdir, int auth_required) { int authenticated = 0; char line[1024]; @@ -586,7 +586,7 @@ void cgi_setup(char *rootdir) /* ignore all other requests! */ } - if (!authenticated) { + if (auth_required && !authenticated) { cgi_setup_error("401 Authorization Required", "WWW-Authenticate: Basic realm=\"root\"\r\n", "You must be authenticated to use this service"); diff --git a/source3/web/swat.c b/source3/web/swat.c index 4810d87af3..6a5b4f51f1 100644 --- a/source3/web/swat.c +++ b/source3/web/swat.c @@ -432,6 +432,7 @@ int main(int argc, char *argv[]) extern FILE *dbf; int opt; char *page; + int auth_required = 1; /* just in case it goes wild ... */ alarm(300); @@ -440,16 +441,18 @@ int main(int argc, char *argv[]) if (!dbf) dbf = stderr; - cgi_setup(SWATDIR); - - while ((opt = getopt(argc, argv,"s:")) != EOF) { + while ((opt = getopt(argc, argv,"s:a")) != EOF) { switch (opt) { case 's': pstrcpy(servicesf,optarg); break; + case 'a': + auth_required = 0; + break; } } + cgi_setup(SWATDIR, auth_required); print_header(); |