don't open a database connection in the parent process
[freeside.git] / FS / bin / freeside-selfservice-server
index f9571fa..d34e841 100644 (file)
@@ -15,7 +15,7 @@ use POSIX qw(:sys_wait_h setsid);
 use IO::Handle;
 use IO::Select;
 use IO::File;
-use Storable qw(nstore_fd fd_retrieve);
+use Storable 2.09 qw(nstore_fd fd_retrieve);
 use Net::SSH qw(sshopen2);
 use FS::UID qw(adminsuidsetup forksuidsetup);
 use FS::ClientAPI;
@@ -24,7 +24,7 @@ use FS::Conf;
 use FS::cust_bill;
 use FS::cust_pkg;
 
-$Debug = 2; # >= 2 will log packet contents, including potentially compromising
+$Debug = 1; # >= 2 will log packet contents, including potentially compromising
             # information
 
 $shutdown = 0;
@@ -34,8 +34,9 @@ $kids = 0;
 my $user = shift or die &usage;
 my $machine = shift or die &usage;
 my $tag = scalar(@ARGV) ? shift : '';
-my $pid_file = "/var/run/freeside-selfservice-server.$user.pid";
-#my $pid_file = "/var/run/freeside-selfservice-server.$user.pid"; $FS::UID::datasrc not posible, but should include machine name at least, hmm
+
+# $FS::UID::datasrc not posible
+my $pid_file = "/var/run/freeside-selfservice-server.$user.$machine.pid";
 
 my $lock_file = "/usr/local/etc/freeside/selfservice.$machine.writelock";
 open(LOCKFILE,">$lock_file") or die "can't open $lock_file: $!";
@@ -106,9 +107,12 @@ while (1) {
       warn "child $pid spawned\n" if $Debug;
     } else { #kid time
 
-      #get new db handle
-      $FS::UID::dbh->{InactiveDestroy} = 1;
-      forksuidsetup($user);
+      ##get new db handle
+      #$FS::UID::dbh->{InactiveDestroy} = 1;
+      #forksuidsetup($user);
+
+      #get db handle
+      adminsuidsetup($user);
 
       my $type = $packet->{_packet};
       warn "calling $type handler\n" if $Debug; 
@@ -194,7 +198,7 @@ sub init {
   #eslaf
 
   $ENV{HOME} = (getpwuid($>))[7]; #for ssh
-  adminsuidsetup $user;
+  #adminsuidsetup $user;
 
   #$log_file = "/usr/local/etc/freeside/selfservice.". $FS::UID::datasrc; #MACHINE NAME
   $log_file = "/usr/local/etc/freeside/selfservice.$machine.log";