summaryrefslogtreecommitdiff
path: root/FS/FS/svc_Common.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-09-04 12:53:30 -0700
committerMark Wells <mark@freeside.biz>2013-09-04 12:53:38 -0700
commit00de593a7e5b5b50aeec62c0ddb90db7bcd62f55 (patch)
treea600ff4184a41d22362c6b8cdfef7e1e47688b7d /FS/FS/svc_Common.pm
parent36ad5e538cb56de33c779e34baf9abdf63c4312e (diff)
assign entire address blocks to services for RADIUS Framed-Route option, #20742
Diffstat (limited to 'FS/FS/svc_Common.pm')
-rw-r--r--FS/FS/svc_Common.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm
index 0aea4559b..3993d3d64 100644
--- a/FS/FS/svc_Common.pm
+++ b/FS/FS/svc_Common.pm
@@ -367,6 +367,7 @@ sub delete {
|| $self->SUPER::delete
|| $self->export('delete', @$export_args)
|| $self->return_inventory
+ || $self->release_router
|| $self->predelete_hook
|| $self->cust_svc->delete
;
@@ -989,6 +990,24 @@ sub inventory_item {
});
}
+=item release_router
+
+Delete any routers associated with this service. This will release their
+address blocks, also.
+
+=cut
+
+sub release_router {
+ my $self = shift;
+ my @routers = qsearch('router', { svcnum => $self->svcnum });
+ foreach (@routers) {
+ my $error = $_->delete;
+ return "$error (removing router '".$_->routername."')" if $error;
+ }
+ '';
+}
+
+
=item cust_svc
Returns the cust_svc record associated with this svc_ record, as a FS::cust_svc