diff --git a/system-bin/rnetworking b/system-bin/rnetworking index 02b73d4..e14edc4 100755 --- a/system-bin/rnetworking +++ b/system-bin/rnetworking @@ -6,28 +6,47 @@ # Autor: Eduard Toloza # Define variables -services='systemd-networkd iwd systemd-resolved randomvpn' +services='systemd-networkd systemd-resolved randomvpn' # iwd +bond_active=$(ip -o link show type bond | awk -F': ' '{print $2}') -if [ "$1" == "f" ]; then - sudo systemctl restart $services +restart_network() { + + #Check if ping command is available + if command -v ping > /dev/null; then + # Check internet connection and if not OK then restart all networking services + echo "Testing your connection..." + if ! ping -q -c 1 -W 1 9.9.9.9 > /dev/null; then + echo "Your connection is not working, restarting your network services: $services" + # Delete bond interfaces if they exists + if [ ! -z "$bond_active" ] ; then + for bond_iface in "$bond_active"; do + ip link delete $bond_iface + done + fi + # Restart services + systemctl restart $services + if [ $? -eq 0 ]; then + echo "Services restarted sucessfully, leaving." + else + echo "An error has occurred, make sure that service names are correct." + fi + else + echo "Your connection is OK" + fi + else + echo "ping command is not available, aborting." + fi +} + +if [ "$UID" != 0 ]; then + echo "You don't have root permisions." exit fi -#Check if ping command is available -if command -v ping > /dev/null; then - # Check internet connection and if not OK then restart all networking services - echo "Testing your connection..." - if ! ping -q -c 1 -W 1 9.9.9.9 > /dev/null; then - echo "Your connection is not working, restarting your network services: $services" - sudo systemctl restart $services - if [ $? -eq 0 ]; then - echo "Services restarted sucessfully, leaving." - else - echo "An error has occurred, make sure that service names are correct." - fi - else - echo "Your connection is OK" - fi -else - echo "ping command is not available, aborting." +# Check if the f options was passed to force restart of services +if [ "$1" == "f" ]; then + systemctl restart $services + exit fi + +restart_network diff --git a/user-config/i3status/config b/user-config/i3status/config index 1f2d311..9173bc6 100644 --- a/user-config/i3status/config +++ b/user-config/i3status/config @@ -35,7 +35,7 @@ ethernet _first_ { path_exists bond { format = "Bonding: active" - format_down = "Bond: down" + format_down = "Bonding: down" path = "/proc/net/bonding/bond1" }