| 1 | #!/usr/bin/perl | 
 
 
 
 
 | 2 |  | 
 
 
 
 
 | 3 | #-------------------------------------------------------------- | 
 
 
 
 
 | 4 | # download.cgi | 
 
 
 
 
 | 5 | # | 
 
 
 
 
 | 6 | # A Perl CGI script that requests some details from the user | 
 
 
 
 
 | 7 | # before they download a build from the i-scream web site. | 
 
 
 
 
 | 8 | # To assist the paranoid, all fields are optional. | 
 
 
 
 
 | 9 | # | 
 
 
 
 
 | 10 | # Copyright Paul Mutton, 2001. | 
 
 
 
 
 | 11 | #-------------------------------------------------------------- | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | use strict; | 
 
 
 
 
 | 14 | use CGI; | 
 
 
 
 
 | 15 |  | 
 
 
 
 
 | 16 | $| = 1; | 
 
 
 
 
 | 17 |  | 
 
 
 
 
 | 18 |  | 
 
 
 
 
 | 19 | #-------------------------------------------------------------- | 
 
 
 
 
 | 20 | # Essential Settings | 
 
 
 
 
 | 21 | #-------------------------------------------------------------- | 
 
 
 
 
 | 22 | my ($build_dir) = "/downloads"; | 
 
 
 
 
 | 23 | my ($log_file) = "download_log"; | 
 
 
 
 
 | 24 | my ($left) = "../htdocs/left.inc" ; | 
 
 
 
 
 | 25 | my ($title) = "../htdocs/title.inc"; | 
 
 
 
 
 | 26 | my ($bottom) = "../htdocs/bottom.inc"; | 
 
 
 
 
 | 27 | #-------------------------------------------------------------- | 
 
 
 
 
 | 28 |  | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | my ($query) = new CGI; | 
 
 
 
 
 | 31 |  | 
 
 
 
 
 | 32 | my ($file_name) = ($query->param('file_name') =~ /^\s*(.*)\s*$/); | 
 
 
 
 
 | 33 | my ($your_name) = ($query->param('your_name') =~ /^\s*(.*)\s*$/); | 
 
 
 
 
 | 34 | my ($email_address) = ($query->param('email_address') =~ /^\s*(.*)\s*$/); | 
 
 
 
 
 | 35 | my ($country) = ($query->param('country') =~ /^\s*(.*)\s*$/); | 
 
 
 
 
 | 36 | my ($submit) = ($query->param('submit') =~ /^\s*(.*)\s*$/); | 
 
 
 
 
 | 37 | my ($date) = scalar localtime time; | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | $your_name =~ s/\|//g; | 
 
 
 
 
 | 40 | $email_address =~ s/\|//g; | 
 
 
 
 
 | 41 | $country =~ s/\|//g; | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | if (!defined($file_name) || $file_name eq "") { | 
 
 
 
 
 | 44 | print "Content-type: text/html\n\n"; | 
 
 
 
 
 | 45 | print "You must specify a filename for use with the i-scream downloader."; | 
 
 
 
 
 | 46 | exit; | 
 
 
 
 
 | 47 | } | 
 
 
 
 
 | 48 |  | 
 
 
 
 
 | 49 | if (defined($submit) && $submit eq "Download") { | 
 
 
 
 
 | 50 | open(LOGFILE, ">>$log_file"); | 
 
 
 
 
 | 51 | print LOGFILE "$date|$ENV{'REMOTE_ADDR'}|$file_name|$your_name|$email_address|$country\n"; | 
 
 
 
 
 | 52 | close(LOGFILE); | 
 
 
 
 
 | 53 | print $query->redirect("$build_dir/$file_name"); | 
 
 
 
 
 | 54 | } | 
 
 
 
 
 | 55 | else { | 
 
 
 
 
 | 56 | print "Content-type: text/html\n\n"; | 
 
 
 
 
 | 57 |  | 
 
 
 
 
 | 58 | print <<"END"; | 
 
 
 
 
 | 59 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | 
 
 
 
 
 | 60 |  | 
 
 
 
 
 | 61 | <!-- | 
 
 
 
 
 | 62 | download.cgi | 
 
 
 
 
 | 63 | Created by pjm2 31/03/2001 | 
 
 
 
 
 | 64 | Last modified 31/03/2001 | 
 
 
 
 
 | 65 | --> | 
 
 
 
 
 | 66 |  | 
 
 
 
 
 | 67 | <html> | 
 
 
 
 
 | 68 |  | 
 
 
 
 
 | 69 | <head> | 
 
 
 
 
 | 70 | <title>i-scream downloads</title> | 
 
 
 
 
 | 71 | <meta name="description" content="The i-scream Project is a central monitoring system for Unix, Linux and NT servers."> | 
 
 
 
 
 | 72 | <meta name="keywords" content="i-scream, project, central monitoring system, unix, linux, nt, server, alert"> | 
 
 
 
 
 | 73 | <meta name="generator" content="notepad on acid, aye."> | 
 
 
 
 
 | 74 | </head> | 
 
 
 
 
 | 75 |  | 
 
 
 
 
 | 76 | <body bgcolor="#ffffff" link="#0000ff" alink="#3333cc" vlink="#3333cc" text="#000066"> | 
 
 
 
 
 | 77 |  | 
 
 
 
 
 | 78 | <table border="0" cellpadding="2" cellspacing="2"> | 
 
 
 
 
 | 79 | <tr> | 
 
 
 
 
 | 80 | <td valign="top"> | 
 
 
 
 
 | 81 | END | 
 
 
 
 
 | 82 |  | 
 
 
 
 
 | 83 | &print_html($left); | 
 
 
 
 
 | 84 |  | 
 
 
 
 
 | 85 | print <<"END"; | 
 
 
 
 
 | 86 | </td> | 
 
 
 
 
 | 87 | <td valign="top"> | 
 
 
 
 
 | 88 | END | 
 
 
 
 
 | 89 |  | 
 
 
 
 
 | 90 | &print_html($title); | 
 
 
 
 
 | 91 |  | 
 
 
 
 
 | 92 | print <<EOT; | 
 
 
 
 
 | 93 | <table align="center" width="500"> | 
 
 
 
 
 | 94 | <tr> | 
 
 
 
 
 | 95 | <td> | 
 
 
 
 
 | 96 | <font face="arial,sans-serif"> | 
 
 
 
 
 | 97 | <center><h3>i-scream builds</h3></center> | 
 
 
 
 
 | 98 | <font size="2"> | 
 
 
 
 
 | 99 | If you wish your details to be kept so we can contact you in the | 
 
 
 
 
 | 100 | future about i-scream, please enter them below. At the moment we | 
 
 
 
 
 | 101 | are not using this information, but we may collate a list of | 
 
 
 
 
 | 102 | details for when we make a new major release. All details are | 
 
 
 
 
 | 103 | optional - do not feel obliged to enter anything! | 
 
 
 
 
 | 104 | </font> | 
 
 
 
 
 | 105 | </font> | 
 
 
 
 
 | 106 | </td> | 
 
 
 
 
 | 107 | </tr> | 
 
 
 
 
 | 108 | </table> | 
 
 
 
 
 | 109 |  | 
 
 
 
 
 | 110 | <p> </p> | 
 
 
 
 
 | 111 |  | 
 
 
 
 
 | 112 | <form action="/cgi-bin/download.cgi" method="POST"> | 
 
 
 
 
 | 113 | <table border="0" align="center"> | 
 
 
 
 
 | 114 | <tr> | 
 
 
 
 
 | 115 | <td><font face="arial,sans-serif">Filename:</font></td> | 
 
 
 
 
 | 116 | <td><font face="arial,sans-serif"><b>$file_name</b></font><input type="hidden" name="file_name" value="$file_name"></td> | 
 
 
 
 
 | 117 | </tr> | 
 
 
 
 
 | 118 | <tr> | 
 
 
 
 
 | 119 | <td><font face="arial,sans-serif">Your name:</font></td> | 
 
 
 
 
 | 120 | <td><input type="text" name="your_name" value=""></td> | 
 
 
 
 
 | 121 | </tr> | 
 
 
 
 
 | 122 | <tr> | 
 
 
 
 
 | 123 | <td><font face="arial,sans-serif">Email address:</font></td> | 
 
 
 
 
 | 124 | <td><input type="text" name="email_address" value=""></td> | 
 
 
 
 
 | 125 | </tr> | 
 
 
 
 
 | 126 | <tr> | 
 
 
 
 
 | 127 | <td><font face="arial,sans-serif">Country:</font></td> | 
 
 
 
 
 | 128 | <td><input type="text" name="country" value=""></td> | 
 
 
 
 
 | 129 | </tr> | 
 
 
 
 
 | 130 | <tr> | 
 
 
 
 
 | 131 | <td> </td> | 
 
 
 
 
 | 132 | <td><input type="submit" name="submit" value="Download"></td> | 
 
 
 
 
 | 133 | </tr> | 
 
 
 
 
 | 134 | </table> | 
 
 
 
 
 | 135 | </form> | 
 
 
 
 
 | 136 |  | 
 
 
 
 
 | 137 | </body> | 
 
 
 
 
 | 138 | </html> | 
 
 
 
 
 | 139 | EOT | 
 
 
 
 
 | 140 |  | 
 
 
 
 
 | 141 | &print_html($bottom); | 
 
 
 
 
 | 142 |  | 
 
 
 
 
 | 143 | print <<"END"; | 
 
 
 
 
 | 144 |  | 
 
 
 
 
 | 145 | </td> | 
 
 
 
 
 | 146 | </tr> | 
 
 
 
 
 | 147 | </table> | 
 
 
 
 
 | 148 | END | 
 
 
 
 
 | 149 |  | 
 
 
 
 
 | 150 | } | 
 
 
 
 
 | 151 |  | 
 
 
 
 
 | 152 | exit; | 
 
 
 
 
 | 153 |  | 
 
 
 
 
 | 154 |  | 
 
 
 
 
 | 155 | # Print a file without escaping HTML: - | 
 
 
 
 
 | 156 | sub print_html ($) { | 
 
 
 
 
 | 157 | my ($filename) = @_; | 
 
 
 
 
 | 158 | print `cat $filename 2>&1`; | 
 
 
 
 
 | 159 | } |