changed the method used for auto-reload on the status page to use
authorAndrew Tridgell <tridge@samba.org>
Wed, 18 Mar 1998 07:33:11 +0000 (07:33 +0000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 18 Mar 1998 07:33:11 +0000 (07:33 +0000)
JavaScript. This avoids the nasty inetd problem.

source/include/proto.h
source/web/cgi.c
source/web/statuspage.c

index b7c64cbc251028dfb3d8fc6be3f92338136565a4..54f833a93e8886ae4d9789c16db9ae60e21a0dc6 100644 (file)
@@ -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  */
 
index c5b2ac55f1532fdb1139cd6b76aa69cea0b12d05..065c524cb86c730364ea9ba1b9cd021f5e90570b 100644 (file)
@@ -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");
+}
index 41681c22283e671585a57ddd052b4aff19b7e38e..98c0982b99d52ccdef3811ccf6ead06eba0b1b52 100644 (file)
@@ -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");