From fb5a64a0a517291efe62185d053b437b62ef2921 Mon Sep 17 00:00:00 2001
From: DmitriyEshenko <dmitriy.eshenko@vyos.io>
Date: Wed, 27 Jan 2021 14:19:22 +0000
Subject: pppoe: T3261: Stop systemd service if pppoe interface disable

(cherry picked from commit 7630f2c915c27bceabcc808fcd9d29ed198b9dbe)
---
 src/conf_mode/interfaces-pppoe.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

(limited to 'src')

diff --git a/src/conf_mode/interfaces-pppoe.py b/src/conf_mode/interfaces-pppoe.py
index c31e49574..fd8919918 100755
--- a/src/conf_mode/interfaces-pppoe.py
+++ b/src/conf_mode/interfaces-pppoe.py
@@ -79,7 +79,7 @@ def generate(pppoe):
     config_files = [config_pppoe, script_pppoe_pre_up, script_pppoe_ip_up,
                     script_pppoe_ip_down, script_pppoe_ipv6_up, config_wide_dhcp6c]
 
-    if 'deleted' in pppoe:
+    if 'deleted' in pppoe or 'disable' in pppoe:
         # stop DHCPv6-PD client
         call(f'systemctl stop dhcp6c@{ifname}.service')
         # Hang-up PPPoE connection
@@ -116,13 +116,11 @@ def generate(pppoe):
     return None
 
 def apply(pppoe):
-    if 'deleted' in pppoe:
-        # bail out early
+    if 'deleted' in pppoe or 'disable' in pppoe:
+        call('systemctl stop ppp@{ifname}.service'.format(**pppoe))
         return None
 
-    if 'disable' not in pppoe:
-        # Dial PPPoE connection
-        call('systemctl restart ppp@{ifname}.service'.format(**pppoe))
+    call('systemctl restart ppp@{ifname}.service'.format(**pppoe))
 
     return None
 
-- 
cgit v1.2.3