#!/bin/bash

# Upgraded script with DNS leak closure for Mageia Linux
# The original: https://github.com/alfredopalhares/openvpn-update-resolv-conf

export PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin

case $script_type in

up)
  for optionname in ${!foreign_option_*} ; do
    option="${!optionname}"
    echo $option
    part1=$(echo "$option" | cut -d " " -f 1)
    if [ "$part1" == "dhcp-option" ] ; then
      part2=$(echo "$option" | cut -d " " -f 2)
      part3=$(echo "$option" | cut -d " " -f 3)
      if [ "$part2" == "DNS" ] ; then
        IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
      fi
      if [[ "$part2" == "DOMAIN" || "$part2" == "DOMAIN-SEARCH" ]] ; then
        IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
      fi
    fi
  done
  R=""
  if [ "$IF_DNS_SEARCH" ]; then
    R="search "
    for DS in $IF_DNS_SEARCH ; do
      R="${R} $DS"
    done
  R="${R}
"
  fi

  for NS in $IF_DNS_NAMESERVERS ; do
    R="${R}nameserver $NS
"
  done
  #DNS replace
    echo "# Generated by Luntik" > /etc/resolv.conf
    case $(echo -n "$R" | wc -l) in
      0)
      echo -e "nameserver 1.0.0.1\nnameserver 9.9.9.9" >> /etc/resolv.conf
      ;;
      1)
      echo -e "${R}nameserver 9.9.9.9" >> /etc/resolv.conf
      ;;
      *)
      echo -n "$R" >> /etc/resolv.conf
      ;;
    esac
  ;;
down)
   #DNS restore
  if [[ $(systemctl is-active systemd-resolved) == "active" ]]; then
     systemctl restart systemd-resolved
        else
     pgrep NetworkManager && systemctl restart NetworkManager.service || resolvconf -u
  fi;
  ;;
esac

exit 0
