GNU Info

Info Node: (gawkinet.info)PANIC

(gawkinet.info)PANIC


Next: GETURL Prev: Some Applications and Techniques Up: Some Applications and Techniques
Enter node , (file) or (file)node

PANIC: an Emergency Web Server
==============================

   At first glance, the `"Hello, world"' example in Note: A Primitive
Web Service, seems useless. By adding just a few
lines, we can turn it into something useful.

   The PANIC program tells everyone who connects that the local site is
not working. When a web server breaks down, it makes a difference if
customers get a strange "network unreachable" message, or a short
message telling them that the server has a problem. In such an
emergency, the hard disk and everything on it (including the regular
web service) may be unavailable. Rebooting the web server off a
diskette makes sense in this setting.

   To use the PANIC program as an emergency web server, all you need
are the `gawk' executable and the program below on a diskette. By
default, it connects to port 8080. A different value may be supplied on
the command line:

     BEGIN {
       RS = ORS = "\r\n"
       if (MyPort ==  0) MyPort = 8080
       HttpService = "/inet/tcp/" MyPort "/0/0"
       Hello = "<HTML><HEAD><TITLE>Out Of Service</TITLE>" \
          "</HEAD><BODY><H1>" \
          "This site is temporarily out of service." \
          "</H1></BODY></HTML>"
       Len = length(Hello) + length(ORS)
       while ("awk" != "complex") {
         print "HTTP/1.0 200 OK"          |& HttpService
         print "Content-Length: " Len ORS |& HttpService
         print Hello                      |& HttpService
         while ((HttpService |& getline) > 0)
            continue;
         close(HttpService)
       }
     }


automatically generated by info2www version 1.2.2.9