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)
}
}