Guest User

Untitled

a guest
Jun 18th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #
  2. # Parses DHCP options from openvpn to update resolv.conf
  3. # To use set as 'up' and 'down' script in your openvpn *.conf:
  4. # up /etc/openvpn/update-resolv-conf
  5. # down /etc/openvpn/update-resolv-conf
  6. #
  7. # Used snippets of resolvconf script by Thomas Hood and Chris Hanson.
  8. # Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
  9. #
  10. # Example envs set from openvpn:
  11. # foreign_option_1='dhcp-option DNS 193.43.27.132'
  12. # foreign_option_2='dhcp-option DNS 193.43.27.133'
  13. # foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
  14. #
  15.  
  16. foreign_option_1='dhcp-option DNS 10.250.20.222'
  17. foreign_option_2='dhcp-option DNS 10.250.50.222'
  18. foreign_option_3='dhcp-option DOMAIN 127.0.0.1'
  19.  
  20. [ -x /sbin/resolvconf ] || exit 0
  21. [ "$script_type" ] || exit 0
  22. [ "$dev" ] || exit 0
  23.  
  24. split_into_parts()
  25. {
  26. part1="$1"
  27. part2="$2"
  28. part3="$3"
  29. }
  30.  
  31. case "$script_type" in
  32. up)
  33. NMSRVRS=""
  34. SRCHS=""
  35. for optionvarname in ${!foreign_option_*} ; do
  36. option="${!optionvarname}"
  37. echo "$option"
  38. split_into_parts $option
  39. if [ "$part1" = "dhcp-option" ] ; then
  40. if [ "$part2" = "DNS" ] ; then
  41. NMSRVRS="${NMSRVRS:+$NMSRVRS }$part3"
  42. elif [ "$part2" = "DOMAIN" ] ; then
  43. SRCHS="${SRCHS:+$SRCHS }$part3"
  44. fi
  45. fi
  46. done
  47. R=""
  48. [ "$SRCHS" ] && R="search $SRCHS
  49. "
  50. for NS in $NMSRVRS ; do
  51. R="${R}nameserver $NS
  52. "
  53. done
  54. echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
  55. ;;
  56. down)
  57. /sbin/resolvconf -d "${dev}.openvpn"
  58. ;;
  59. esac
Add Comment
Please, Sign In to add comment