recognize 60xx as discover, RT#71291
[freeside.git] / FS / FS / Mason.pm
index 3d577f6..1008fd5 100644 (file)
@@ -45,13 +45,7 @@ if ( -e $addl_handler_use_file ) {
 
   use strict;
   use vars qw( %session );
-  use CGI 3.29 qw(-private_tempfiles); #3.29 to fix RT attachment problems
-
-  #breaks quick payment entry
-  #http://rt.cpan.org/Public/Bug/Display.html?id=37365
-  die "CGI.pm v3.38 is broken, use any other version >= 3.29".
-      " (Debian 5.0?  aptitude remove libcgi-pm-perl)"
-    if $CGI::VERSION == 3.38;
+  use CGI 3.39 qw(-private_tempfiles); #3.39 for cpan#37365
 
   #use CGI::Carp qw(fatalsToBrowser);
   use CGI::Cookie;
@@ -77,7 +71,7 @@ if ( -e $addl_handler_use_file ) {
   use HTML::TableExtract qw(tree);
   use HTML::FormatText;
   use HTML::Defang;
-  use JSON::XS;
+  use Cpanel::JSON::XS;
   use MIME::Base64;
   use IO::Handle;
   use IO::File;
@@ -97,7 +91,7 @@ if ( -e $addl_handler_use_file ) {
   use Excel::Writer::XLSX;
   #use Excel::Writer::XLSX::Utility; #redundant with above
 
-  use Business::CreditCard 0.30; #for mask-aware cardtype()
+  use Business::CreditCard 0.36; #for best-effort cardtype() (60xx as Discover)
   use NetAddr::IP;
   use Net::MAC::Vendor;
   use Net::Ping;
@@ -121,6 +115,7 @@ if ( -e $addl_handler_use_file ) {
   use HTML::Widgets::SelectLayers 0.07; #should go away in favor of
                                         #selectlayers.html
   use Locale::Country;
+  #use FS::geocode_Mixin; #for its code2country
   use Locale::Currency;
   use Locale::Currency::Format;
   use Business::US::USPS::WebTools::AddressStandardization;
@@ -136,20 +131,23 @@ if ( -e $addl_handler_use_file ) {
   use FS::Conf;
   use FS::CGI qw(header menubar table itable ntable idiot
                  eidiot myexit http_header);
-  use FS::UI::Web qw(svc_url);
+  use FS::UI::Web qw(svc_url random_id
+                  get_page_pref  set_page_pref);
   use FS::UI::Web::small_custview qw(small_custview);
   use FS::UI::bytecount;
   use FS::UI::REST qw( rest_auth rest_uri_remain encode_rest );
   use FS::Msgcat qw(gettext geterror);
   use FS::Misc qw( send_email send_fax ocr_image
                    states_hash counties cities state_label
+                   card_types
                  );
   use FS::Misc::eps2png qw( eps2png );
   use FS::Report::FCC_477;
   use FS::Report::Table;
   use FS::Report::Table::Monthly;
   use FS::Report::Table::Daily;
-  use FS::Report::Tax;
+  use FS::Report::Tax::ByName;
+  use FS::Report::Tax::All;
   use FS::TicketSystem;
   use FS::NetworkMonitoringSystem;
   use FS::Tron qw( tron_lint );
@@ -405,6 +403,16 @@ if ( -e $addl_handler_use_file ) {
   use FS::cust_pkg_reason_fee;
   use FS::part_svc_link;
   use FS::access_user_log;
+  use FS::report_batch;
+  use FS::report_batch;
+  use FS::report_batch;
+  use FS::report_batch;
+  use FS::password_history;
+  use FS::svc_fiber;
+  use FS::fiber_olt;
+  use FS::olt_site;
+  use FS::access_user_page_pref;
+  use FS::part_svc_msgcat;
   # Sammath Naur
 
   if ( $FS::Mason::addl_handler_use ) {
@@ -566,7 +574,7 @@ if ( -e $addl_handler_use_file ) {
 
 } # end package HTML::Mason::Commands;
 
-=head1 SUBROUTINE
+=head1 SUBROUTINES
 
 =over 4
 
@@ -662,6 +670,35 @@ sub mason_interps {
 
 }
 
+=item child_init
+
+Per-process Apache child initialization code.
+
+Calls srand() to re-seed Perl's PRNG so that multiple children do not generate
+the same "random" numbers.
+
+Works around a Net::SSLeay connection error by creating and deleting an SSL
+context, so subsequent connections do not error out with a CTX_new (900 NET OR
+SSL ERROR).  See http://bugs.debian.org/830152
+
+=cut
+
+sub child_init {
+  #my ($pool, $server) = @_; #the child process pool (APR::Pool) and the server object (Apache2::ServerRec).
+
+  srand();
+
+  #{
+    use Net::SSLeay;
+    package Net::SSLeay;
+    initialize();
+    my $bad_ctx = new_x_ctx();
+    while ( ERR_get_error() ) {}; #print_errs('CTX_new');
+    CTX_free($bad_ctx);
+  #}
+
+}
+
 =back
 
 =head1 BUGS