Guest User

Untitled

a guest
Aug 24th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 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 193.43.27.132'
  14. # foreign_option_2='dhcp-option DNS 193.43.27.133'
  15. # foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
  16. #
  17.  
  18. [ -x /sbin/resolvconf ] || exit 0
  19. [ "$script_type" ] || exit 0
  20. [ "$dev" ] || exit 0
  21.  
  22. split_into_parts()
  23. {
  24. part1="$1"
  25. part2="$2"
  26. part3="$3"
  27. }
  28.  
  29. case "$script_type" in
  30. up)
  31. NMSRVRS=""
  32. SRCHS=""
  33. for optionvarname in ${!foreign_option_*} ; do
  34. option="${!optionvarname}"
  35. echo "$option"
  36. split_into_parts $option
  37. if [ "$part1" = "dhcp-option" ] ; then
  38. if [ "$part2" = "DNS" ] ; then
  39. NMSRVRS="${NMSRVRS:+$NMSRVRS }$part3"
  40. elif [ "$part2" = "DOMAIN" ] ; then
  41. SRCHS="${SRCHS:+$SRCHS }$part3"
  42. fi
  43. fi
  44. done
  45. R=""
  46. [ "$SRCHS" ] && R="search $SRCHS
  47. "
  48. for NS in $NMSRVRS ; do
  49. R="${R}nameserver $NS
  50. "
  51. done
  52. echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
  53. ;;
  54. down)
  55. /sbin/resolvconf -d "${dev}.openvpn"
  56. ;;
  57. esac
Add Comment
Please, Sign In to add comment