don't error out when not actually changing domain
[freeside.git] / FS / bin / freeside-selfservice-server
index 05fa72b..f9571fa 100644 (file)
@@ -74,7 +74,18 @@ while (1) {
 
     warn "receiving packet from client\n" if $Debug;
 
-    my $packet = fd_retrieve($reader);
+    my $packet = eval { fd_retrieve($reader); };
+    if ( $@ ) {
+      warn "Storable error receiving packet from client".
+           " (assuming lost connection): $@\n"
+        if $Debug;
+      if ( $ssh_pid ) {
+        warn "sending TERM signal to ssh process $ssh_pid\n" if $Debug;
+        kill 'TERM', $ssh_pid;
+        $ssh_pid = 0;
+      }
+      last;
+    }
     warn "packet received\n".
          join('', map { " $_=>$packet->{$_}\n" } keys %$packet )
       if $Debug > 1;
@@ -120,6 +131,9 @@ while (1) {
 
   }
 
+  warn "connection lost, reconnecting\n" if $Debug;
+  sleep 3;
+
 }
 
 ###