Advertisement
Guest User

/etc/openvpn/update-resolv-conf

a guest
Jul 9th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. #!/bin/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. # Used snippets of resolvconf script by Thomas Hood and Chris Hanson.
  9. # Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
  10. #
  11. # Example envs set from openvpn:
  12. #
  13. foreign_option_1='dhcp-option DNS 8.8.8.8'
  14. foreign_option_2='dhcp-option DNS 8.8.4.4'
  15. foreign_option_3='dhcp-option DNS 46.14.166.97'
  16.  
  17. [ -x /sbin/resolvconf ] || exit 0
  18. [ "$script_type" ] || exit 0
  19. [ "$dev" ] || exit 0
  20.  
  21. split_into_parts()
  22. {
  23. part1="$1"
  24. part2="$2"
  25. part3="$3"
  26. }
  27.  
  28. case "$script_type" in
  29. up)
  30. NMSRVRS=""
  31. SRCHS=""
  32. for optionvarname in ${!foreign_option_*} ; do
  33. option="${!optionvarname}"
  34. echo "$option"
  35. split_into_parts $option
  36. if [ "$part1" = "dhcp-option" ] ; then
  37. if [ "$part2" = "DNS" ] ; then
  38. NMSRVRS="${NMSRVRS:+$NMSRVRS }$part3"
  39. elif [ "$part2" = "DOMAIN" ] ; then
  40. SRCHS="${SRCHS:+$SRCHS }$part3"
  41. fi
  42. fi
  43. done
  44. R=""
  45. [ "$SRCHS" ] && R="search $SRCHS
  46. "
  47. for NS in $NMSRVRS ; do
  48. R="${R}nameserver $NS
  49. "
  50. done
  51. echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
  52. ;;
  53. down)
  54. /sbin/resolvconf -d "${dev}.openvpn"
  55. ;;
  56. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement