Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions src/etc/ppp/ip-up.d/98-vyos-pppoe-setup-nameservers

This file was deleted.

45 changes: 45 additions & 0 deletions src/etc/ppp/ip-up.d/99-vyos-ppp-callback
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/bin/bash

interface=$6
if [ -z "$interface" ]; then
exit
fi

# 1. Handle sstpc interface callback
if [[ "$interface" == sstpc* ]]; then
/etc/ppp/ip-up.d/ppp-hook-scripts/96-vyos-sstpc-callback "$@"
fi

# 2. Configure DNS via vyos-hostsd if active
hostsd_client="/usr/bin/vyos-hostsd-client"
hostsd_active=false

if /usr/bin/systemctl -q is-active vyos-hostsd; then
hostsd_active=true
fi

if $hostsd_active; then
$hostsd_client --delete-name-servers --tag "dhcp-$interface"

if [ "$USEPEERDNS" ] && [ -n "$DNS1" ]; then
$hostsd_client --add-name-servers "$DNS1" --tag "dhcp-$interface"
fi

if [ "$USEPEERDNS" ] && [ -n "$DNS2" ]; then
$hostsd_client --add-name-servers "$DNS2" --tag "dhcp-$interface"
fi

$hostsd_client --apply
fi

# 3. Handle pppoe interface callbacks
if [[ "$interface" == pppoe* ]]; then
/etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-callback "$@"
/etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-qos "$@"
fi

# 4. Handle WLB callback if wlb daemon is running
WLB_PID_FILE="/run/wlb_daemon.pid"
if [ -f "$WLB_PID_FILE" ]; then
/etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-wlb "$@"
fi
File renamed without changes.
File renamed without changes.
33 changes: 33 additions & 0 deletions src/etc/ppp/ip-up.d/ppp-hook-scripts/99-vyos-pppoe-qos
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env python3

# Dynamic interfaces may lose QoS config on reconnect.
# This script reapplies the QoS policy when the interface comes up.

from sys import argv
from sys import exit
from vyos.utils.process import call
from vyos.configquery import ConfigTreeQuery

# When the ppp link comes up, this script is called with the following
# parameters
# $1 the interface name used by pppd (e.g., pppoe0, l2tpc0, sstpc0)
# $2 the tty device name
# $3 the tty device speed
# $4 the local IP address for the interface
# $5 the remote IP address
# $6 the parameter specified by the 'ipparam' option to pppd

if len(argv) < 7:
exit(1)

interface = argv[6]

conf = ConfigTreeQuery()

try:
# Check if QoS is configured for the interface
qos_path = ['qos', 'interface', interface]
if conf.exists(qos_path):
call('/usr/libexec/vyos/conf_mode/qos.py')
except Exception:
exit(1)
File renamed without changes.
Loading