summaryrefslogtreecommitdiff
path: root/FS/FS/Misc/Geo.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-10-15 13:04:17 -0700
committerMark Wells <mark@freeside.biz>2013-10-15 13:04:17 -0700
commit0b52519a5a11bb839b1ef5abe79b97a442bc1909 (patch)
tree509e49a44753c3ff25a74bc20db4077cfaa438b6 /FS/FS/Misc/Geo.pm
parent6422e165313ee8d67790007581821217240734fb (diff)
compatibility fix for FFIEC census tract lookup, #25258
Diffstat (limited to 'FS/FS/Misc/Geo.pm')
-rw-r--r--FS/FS/Misc/Geo.pm9
1 files changed, 6 insertions, 3 deletions
diff --git a/FS/FS/Misc/Geo.pm b/FS/FS/Misc/Geo.pm
index b5cc325..c6d6f1f 100644
--- a/FS/FS/Misc/Geo.pm
+++ b/FS/FS/Misc/Geo.pm
@@ -6,6 +6,7 @@ use vars qw( $DEBUG @EXPORT_OK $conf );
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common qw( GET POST );
+use HTTP::Cookies;
use HTML::TokeParser;
use URI::Escape 3.31;
use Data::Dumper;
@@ -48,19 +49,20 @@ sub get_censustract_ffiec {
my $return = {};
my $error = '';
- my $ua = new LWP::UserAgent;
+ my $ua = new LWP::UserAgent('cookie_jar' => HTTP::Cookies->new);
my $res = $ua->request( GET( $url ) );
warn $res->as_string
if $DEBUG > 2;
- unless ($res->code eq '200') {
+ if (!$res->is_success) {
$error = $res->message;
} else {
my $content = $res->content;
+
my $p = new HTML::TokeParser \$content;
my $viewstate;
my $eventvalidation;
@@ -74,7 +76,7 @@ sub get_censustract_ffiec {
last if $viewstate && $eventvalidation;
}
- unless ($viewstate && $eventvalidation ) {
+ if (!$viewstate or !$eventvalidation ) {
$error = "either no __VIEWSTATE or __EVENTVALIDATION found";
@@ -86,6 +88,7 @@ sub get_censustract_ffiec {
my @ffiec_args = (
__VIEWSTATE => $viewstate,
__EVENTVALIDATION => $eventvalidation,
+ __VIEWSTATEENCRYPTED => '',
ddlbYear => $year,
txtAddress => $location->{address1},
txtCity => $location->{city},