compatibility fix for FFIEC census tract lookup, #25258
authorMark Wells <mark@freeside.biz>
Tue, 15 Oct 2013 20:04:17 +0000 (13:04 -0700)
committerMark Wells <mark@freeside.biz>
Tue, 15 Oct 2013 20:04:17 +0000 (13:04 -0700)
FS/FS/Misc/Geo.pm

index b5cc325..c6d6f1f 100644 (file)
@@ -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},