--- magicpoint-1.11b/contrib/mgpnet.in 1998-08-26 07:30:13.000000000 +0200 +++ magicpoint-1.11b/contrib/mgpnet.in.new 2006-06-13 22:45:35.000000000 +0200 @@ -32,7 +32,7 @@ # configurations $tmpdir = '/tmp'; -$httpdatestr = "date '+\%a, \%d \%b \%Y \%H:\%M:\%S \%Z'"; +$httpdatestr = "env LC_ALL=C date '+\%a, \%d \%b \%Y \%H:\%M:\%S \%Z'"; $seltimeout = 1; $refreshtimeout = 10; $debug = 0; @@ -53,6 +53,7 @@ } while ($hostname =~ /^127\./); close(IN); }; + $hostname =~ s/^addr://; # for GNU/Linux, by ukai print "http://$hostname:$port/\n"; exit 0; } @@ -256,7 +257,7 @@ $httpmethod = $httppath = $httpver = ''; ($httpmethod, $httppath, $httpver) = split(/\s+/, $httpreq); $httppath =~ s/http:\/\/[^:\/]+(:\d+)\//\//; - if ($httpver eq '' || $httpver eq 'HTTP/1.0') { + if ($httpver eq '' || $httpver =~ m'HTTP/1.[01]') { ; # ok } else { &httpheader(501, $cthtml) if ($httpver); @@ -415,7 +416,7 @@ 'XXX4', 'SO_REUSEPORT', 'XXX5', 'SOCK_STREAM', 'XXX6', 'WNOHANG', ); $tmpnam = &tmpname; - open(CPP, "| @CPP@ >$tmpnam") || return; + open(CPP, "| @CPP@ - >$tmpnam") || return; print CPP "#include \n"; print CPP "#include \n"; foreach $tmp (keys %varnames) { @@ -438,13 +439,20 @@ } else { $havesinlen = 0; $sockaddr = 'S n a4 x8'; } + use Socket; foreach $i (keys %varnames) { if (@tmp2 = grep($_ =~ /^$i/, @tmp1)) { $tmp = (split(/\s+/, @tmp2[0]))[1]; $tmp = oct($tmp) if ($tmp =~ /^0/); - next if ($tmp !~ /^[0-9]+$/); - eval "\$$varnames{$i} = \$tmp;"; + if ($tmp =~ /^[0-9]+$/) { + eval "\$$varnames{$i} = \$tmp;"; + } else { + # some constant defined by enum, so we can not + # always use cpp as above. I believe use Socket + # is more reliable in these days. + eval "\$$varnames{$i} = &$varnames{$i};"; + } } } }