Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. #
  3. # Parses DHCP options from openvpn to update resolv.conf
  4. # To use set as 'up' and 'down' script in your openvpn *.conf:
  5. # up /etc/openvpn/update-resolv-conf
  6. # down /etc/openvpn/update-resolv-conf
  7. #
  8. # Example envs set from openvpn:
  9. # foreign_option_1='dhcp-option DNS 193.43.27.132'
  10. # foreign_option_2='dhcp-option DNS 193.43.27.133'
  11. # foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
  12. # foreign_option_4='dhcp-option DOMAIN-SEARCH bnc.local'
  13.  
  14. case $script_type in
  15.  
  16. up)
  17. for optionname in ${!foreign_option_*} ; do
  18. option="${!optionname}"
  19. echo $option
  20. part1=$(echo "$option" | cut -d " " -f 1)
  21. if [ "$part1" == "dhcp-option" ] ; then
  22. part2=$(echo "$option" | cut -d " " -f 2)
  23. part3=$(echo "$option" | cut -d " " -f 3)
  24. if [ "$part2" == "DNS" ] ; then
  25. IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
  26. fi
  27. if [[ "$part2" == "DOMAIN" || "$part2" == "DOMAIN-SEARCH" ]] ; then
  28. IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
  29. fi
  30. fi
  31. done
  32. if [ -n "$IF_DNS_SEARCH" ]; then
  33. nmcli connection modify "${dev}" ipv4.dns-search "$IF_DNS_SEARCH"
  34. fi
  35. if [ -n "$IF_DNS_NAMESERVERS" ]; then
  36. nmcli connection modify "${dev}" ipv4.dns "$IF_DNS_NAMESERVERS"
  37. fi
  38. nmcli connection up "${dev}" # Force NM to reevaluate the properties
  39. ;;
  40. esac
  41.  
  42. # Workaround / jm@epiclabs.io
  43. # force exit with no errors. Due to an apparent conflict with the Network Manager
  44. # $RESOLVCONF sometimes exits with error code 6 even though it has performed the
  45. # action correctly and OpenVPN shuts down.
  46. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement