summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h1
-rw-r--r--source3/web/cgi.c14
-rw-r--r--source3/web/statuspage.c14
3 files changed, 23 insertions, 6 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index b7c64cbc25..54f833a93e 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1929,6 +1929,7 @@ char *cgi_rooturl(void);
char *cgi_pathinfo(void);
char *cgi_remote_host(void);
char *cgi_remote_addr(void);
+BOOL cgi_waspost(void);
/*The following definitions come from web/diagnose.c */
diff --git a/source3/web/cgi.c b/source3/web/cgi.c
index c5b2ac55f1..065c524cb8 100644
--- a/source3/web/cgi.c
+++ b/source3/web/cgi.c
@@ -26,7 +26,7 @@
/* set the expiry on fixed pages */
#define EXPIRY_TIME (60*60*24*7)
-#define CGI_LOGGING 0
+#define CGI_LOGGING 1
#ifdef DEBUG_COMMENTS
extern void print_title(char *fmt, ...);
@@ -688,3 +688,15 @@ char *cgi_remote_addr(void)
}
return getenv("REMOTE_ADDR");
}
+
+
+/***************************************************************************
+return True if the request was a POST
+ ***************************************************************************/
+BOOL cgi_waspost(void)
+{
+ if (baseurl) {
+ return request_post;
+ }
+ return strequal(getenv("REQUEST_METHOD"), "POST");
+}
diff --git a/source3/web/statuspage.c b/source3/web/statuspage.c
index 41681c2228..98c0982b99 100644
--- a/source3/web/statuspage.c
+++ b/source3/web/statuspage.c
@@ -107,11 +107,6 @@ void status_page(void)
refresh_interval = atoi(v);
}
- if (autorefresh) {
- printf("<META HTTP-EQUIV=refresh CONTENT=\"%d;URL=%s/status?refresh=1&refresh_interval=%d\">\n",
- refresh_interval, cgi_baseurl(), refresh_interval);
- }
-
pstrcpy(fname,lp_lockdir());
standard_sub_basic(fname);
trim_string(fname,"","/");
@@ -147,6 +142,15 @@ void status_page(void)
printf("<input type=submit value=\"Stop Refreshing\" name=norefresh>\n");
printf("<br>Refresh Interval: %d\n", refresh_interval);
printf("<input type=hidden name=refresh value=1>\n");
+ /* this little JavaScript allows for automatic refresh
+ of the page. There are other methods but this seems
+ to be the best alternative */
+ printf("<script language=\"JavaScript\">\n");
+ printf("<!--\nsetTimeout('window.location.replace(\"%s/status?refresh_interval=%d&refresh=1\")', %d)\n",
+ cgi_baseurl(),
+ refresh_interval,
+ refresh_interval*1000);
+ printf("//-->\n</script>\n");
}
printf("<p>\n");