aboutsummaryrefslogtreecommitdiffstats
path: root/perl/PDOSCGI.pm
blob: 94eb07c9b03256817f480b543d9d341b27646c83 (plain)
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;