RT# 78547 Library for SQL savepoints
[freeside.git] / FS / FS / Misc / Geo.pm
index 73122fa..6b3d6ca 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 IO::Socket::SSL;
 use HTML::TokeParser;
 use Cpanel::JSON::XS;
 use URI::Escape 3.31;
@@ -209,13 +210,13 @@ sub wa_sales {
         if ( lc($text) eq 'location code' ) {
           $p->get_tag('td'); # skip to the next column
           undef $u;
-          $u = $p->get_token until $u->[0] eq 'T'; # and then skip non-text
+          $u = $p->get_token until ($u->[0] || '') eq 'T'; # and then skip non-text
           $return->{'district'} = $u->[1];
         }
         elsif ( lc($text) eq 'total tax rate' ) {
           $p->get_tag('td');
           undef $u;
-          $u = $p->get_token until $u->[0] eq 'T';
+          $u = $p->get_token until ($u->[0] || '') eq 'T';
           $return->{'tax'} = $u->[1];
         }
       } # get_token
@@ -655,7 +656,12 @@ sub standardize_freeside {
     return $location;
   }
 
-  my $ua = LWP::UserAgent->new( 'ssl_opts' => { 'verify_hostname'=>0 });
+  my $ua = LWP::UserAgent->new(
+             'ssl_opts' => {
+               verify_hostname => 0,
+               SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
+             },
+           );
   my $response = $ua->request( POST $url, [
     'support-key' => scalar($conf->config('support-key')),
     %$location,
@@ -666,7 +672,10 @@ sub standardize_freeside {
 
   local $@;
   my $content = eval { decode_json($response->content) };
-  die "Address normalization JSON error : $@\n" if $@;
+  if ( $@ ) {
+    warn $response->content;
+    die "Address normalization JSON error : $@\n";
+  }
 
   die $content->{error}."\n"
     if $content->{error};