fix torrus interface slowness resulting from initializing FS for every component...
authorivan <ivan>
Sun, 30 Jan 2011 23:45:58 +0000 (23:45 +0000)
committerivan <ivan>
Sun, 30 Jan 2011 23:45:58 +0000 (23:45 +0000)
torrus/perllib/Torrus/Renderer/Freeside.pm
torrus/perllib/Torrus/ReportOutput/Freeside.pm

index 8d93415..9a7c023 100644 (file)
@@ -6,10 +6,16 @@ use base 'Torrus::Freeside';
 use FS::UID qw(cgisuidsetup);
 use FS::TicketSystem;
 
 use FS::UID qw(cgisuidsetup);
 use FS::TicketSystem;
 
+our $cgi = '';
+
 sub freesideSetup {
   #my $self = shift;
 
 sub freesideSetup {
   #my $self = shift;
 
-  cgisuidsetup($Torrus::CGI::q);
+  return if $cgi eq $Torrus::CGI::q;
+
+  $cgi = $Torrus::CGI::q;
+
+  cgisuidsetup($cgi);
   FS::TicketSystem->init();
 
 }
   FS::TicketSystem->init();
 
 }
index 47db28d..f04ac61 100644 (file)
@@ -6,9 +6,13 @@ use base 'Torrus::Freeside';
 use FS::UID qw(adminsuidsetup);
 use FS::TicketSystem;
 
 use FS::UID qw(adminsuidsetup);
 use FS::TicketSystem;
 
+our $issetup = 0;
+
 sub freesideSetup {
   #my $self = shift;
 
 sub freesideSetup {
   #my $self = shift;
 
+  return if $issetup++;
+
   adminsuidsetup('fs_queue'); #XXX for now
   FS::TicketSystem->init();
 
   adminsuidsetup('fs_queue'); #XXX for now
   FS::TicketSystem->init();