--- html.pl	Mon Aug 14 08:41:52 2000
+++ html.pl.new	Mon Aug 14 08:41:23 2000
@@ -92,12 +92,8 @@
 	}
 	if (($server = fork()) == 0) {
 		if (($helper = fork()) == 0) {
-			alarm 3600;
 			&patience();
 		}
-		&init_saint_data();
-		&read_saint_data() unless defined($opt_i);
-		kill 'TERM',$helper;
 		$SIG{'PIPE'} = 'IGNORE';
 		for (;;) {
 			accept(CLIENT, SOCK) || die "accept: $!";
@@ -520,23 +516,12 @@
 # Give them something to read while the server is initializing.
 #
 sub patience {
+	&init_saint_data();
+	&read_saint_data() unless defined($opt_i);
 	for (;;) {
 		accept(CLIENT, SOCK) || die "accept: $!";
-		<CLIENT>;
-		print CLIENT <<EOF
-<HTML>
-<HEAD>
-<TITLE>Server is busy</TITLE>
-<LINK REV="made" HREF="mailto:saint\@wwdsi.com">
-</HEAD>
-<BODY>
-<H1>Server is busy</H1>
-The server is busy right now.  SAINT is either initializing
-or processing another request.  Please try again later.
-</BODY>
-</HTML>
-EOF
-;
+		select((select(CLIENT), $| = 1)[0]);
+		&process_html_request();
 		close(CLIENT);
 	}
 }
