|
Revision 283, 0.7 kB
(checked in by ogawa, 3 years ago)
|
|
Add aproxy.cgi to the svn repository.
|
-
Property svn:executable set to
*
|
| Line | |
|---|
| 1 | #!/usr/bin/perl -w |
|---|
| 2 | use strict; |
|---|
| 3 | use CGI; |
|---|
| 4 | use LWP::UserAgent; |
|---|
| 5 | |
|---|
| 6 | my $q = CGI->new; |
|---|
| 7 | $q->charset('utf-8'); |
|---|
| 8 | if ($q->param('src')) { |
|---|
| 9 | print $q->header('text/plain'); |
|---|
| 10 | open my $fh, $0 or die $!; |
|---|
| 11 | print while <$fh>; |
|---|
| 12 | close $fh; |
|---|
| 13 | exit; |
|---|
| 14 | } |
|---|
| 15 | my $url = $q->param('url'); |
|---|
| 16 | unless ($url) { |
|---|
| 17 | print $q->header('text/plain','403 Forbidden'), '403 Forbidden'; |
|---|
| 18 | exit; |
|---|
| 19 | } |
|---|
| 20 | my $ua = LWP::UserAgent->new; |
|---|
| 21 | $ua->agent("aproxy/0.01"); |
|---|
| 22 | $ua->timeout(10); |
|---|
| 23 | my $r = $ua->get($url); |
|---|
| 24 | unless ($r->is_success) { |
|---|
| 25 | print $q->header('text/plain','404 Not Found'), '404 Not Found'; |
|---|
| 26 | exit; |
|---|
| 27 | } |
|---|
| 28 | if ($r->content !~ m!<kml xmlns="http://earth.google.com/kml/2.0">!) { |
|---|
| 29 | print $q->header('text/plain','403 Forbidden'), '403 Forbidden'; |
|---|
| 30 | exit; |
|---|
| 31 | } |
|---|
| 32 | print $q->header('text/xml'), $r->content; |
|---|