fix router/block unlinking, #29829, from #20742
authorMark Wells <mark@freeside.biz>
Tue, 12 Aug 2014 20:46:22 +0000 (13:46 -0700)
committerMark Wells <mark@freeside.biz>
Tue, 12 Aug 2014 20:46:22 +0000 (13:46 -0700)
FS/FS/router.pm
httemplate/edit/process/svc_acct.cgi

index 937dc1f..b3efa3b 100755 (executable)
@@ -116,7 +116,7 @@ sub replace {
   my $error = $self->SUPER::replace($old, @_);
   return $error if $error;
 
-  if ( defined($self->blocknum) ) {
+  if ( length($self->blocknum) ) {
     #warn "FS::router::replace: blocknum = ".$self->blocknum."\n";
     # then release any blocks we're already holding
     foreach my $block ($self->addr_block) {
index ca614cb..9cac2c5 100755 (executable)
@@ -102,10 +102,14 @@ if ( ! $error ) {
       map { $_ => $cgi->param("router_$_") }
       qw( routernum routername blocknum )
     });
-    if (length($router->routername == 0)) {
+    if (length($router->routername) == 0) {
       #sensible default
       $router->set('routername', $new->label);
     }
+    if (length($router->blocknum) == 0) {
+      #unset it
+      $router->set('blocknum', 0);
+    }
     push @child_objects, $router;
   }