3 #false-laziness hack w login.cgi
6 use vars qw( $cgi $username $password $error $ip $portnum );
8 use CGI::Carp qw(fatalsToBrowser);
9 use FS::SessionClient qw( logout portnum );
13 if ( defined $cgi->param('magic') ) {
14 $cgi->param('username') =~ /^\s*(\w{1,255})\s*$/ or do {
15 $error = "Illegal username";
20 $cgi->param('password') =~ /^([^\n]{0,255})$/ or die "guru meditation #420";
22 #$ip = $cgi->remote_host;
23 $ip = $ENV{REMOTE_ADDR};
24 $ip =~ /^([\d\.]+)$/ or die "illegal ip: $ip";
26 $portnum = portnum( { 'ip' => $1 } ) or do {
27 $error = "You appear to be coming from an unknown IP address. Verify ".
28 "that your computer is set to obtain an IP address automatically ".
35 'username' => $username,
36 'portnum' => $portnum,
37 'password' => $password,
50 my $self_url = $cgi->self_url;
52 print $cgi->header( '-expires' => 'now' ), <<END;
53 <HTML><HEAD><TITLE>logout</TITLE></HEAD>
57 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: $error</FONT>! if $error;
60 <FORM ACTION="$self_url" METHOD=POST>
61 <INPUT TYPE="hidden" NAME="magic" VALUE="process">
62 Username <INPUT TYPE="text" NAME="username" VALUE="$username"><BR>
63 Password <INPUT TYPE="password" NAME="password"><BR>
73 print $cgi->header( '-expires' => 'now' ), <<END;
74 <HTML><HEAD><TITLE>logout sucessful</TITLE></HEAD>
75 <BODY>logout successful, etc.
82 die "Usage:\n\n freeside-logout username ( portnum | ip | nasnum nasport )";