1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package main;
#####
# SERVER DATA
$server_url = "http://www.pdos.lcs.mit.edu";
$img_dir = "/img";
$cgi_dir = "/cgi-bin";
$main_dir = ""; # == top dir
$css_dir = ""; # == top dir
$pdos_bib_dir = "/home/am0/httpd/htdocs/pdosbib";
#####
# ERROR_EXIT
# &error_exit($title, $message...) prints an HTML document summarizing the
# error and exits.
sub error_exit ($@) {
my($title) = $_[0];
my($message) = join('', @_[1..$#_]);
print <<"EOD;";
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>PDOS CGI Error</title></head>
<body>
<h1>$title</h1>
<p>$message
<p><a href="$server_url">PDOS home page</a>
</body>
</html>
EOD;
exit 0;
}
#####
# HTTP_DATE
# Given a time value (seconds since 00:00:00 UTC, Jan 1, 1970), formats an
# HTTP date and returns it. Useful for Expires:.
@PDOSCGI::weekdays = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
@PDOSCGI::months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
sub http_date ($) {
my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
gmtime($_[0]);
sprintf("%s, %02d %s %d %02d:%02d:%02d GMT",
$PDOSCGI::weekdays[$wday], $mday, $PDOSCGI::months[$mon],
$year, $hour, $min, $sec);
}
#####
# URL_TRANSLATE
sub url_translate ($) {
my($x) = $_[0];
$x =~ s/\+/ /g;
$x =~ s/%(\w\w)/pack('C', hex($1))/eg;
$x;
}
1;
|