Next: , Previous: Some Applications and Techniques, Up: Some Applications and Techniques


3.1 PANIC: An Emergency Web Server

At first glance, the "Hello, world" example in 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)
       }
     }