ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/VPN/mpd-up.sh
Revision: 1005
Committed: 2008-05-18T05:34:06-07:00 (17 years, 1 month ago) by douglas
Content type: text/x-sh
File size: 1402 byte(s)
Log Message:
Changes!

File Contents

# Content
1 #!/usr/local/bin/bash
2 # MPD Interface Up
3 #
4 # Douglas Thrift
5 #
6 # $Id$
7
8 shopt -s extglob
9
10 function usage()
11 {
12 echo -e "Usage: `basename $0` \e[1minterface\e[0m inet \e[1mlocal-ip remote-ip authname\e[0m [dns1 \e[1mserver-ip\e[0m] [dns2 \e[1mserver-ip\e[0m]"
13 exit 1
14 }
15
16 [[ $# -ne 5 ]] && [[ $# -ne 7 ]] && [[ $# -ne 9 ]] && usage
17
18 root=`dirname $0`
19
20 source $root/mpd-common.sh
21
22 declare -a dns
23
24 for (( index = 6; index <= $#; ++index )); do
25 case $(eval "echo \"\${$index}\"") in
26 (dns@(1|2))
27 : $((++index))
28
29 if [[ $(eval "echo \"\${$((index))}\"") =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
30 dns[${#dns}]=${BASH_REMATCH[0]}
31 else
32 usage
33 fi
34 ;;
35 (*)
36 usage
37 ;;
38 esac
39 done
40
41 hostname=`host $remote_ip | sed -Ee 's/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.in-addr.arpa domain name pointer ([a-z.-]+)/\1/p;d'`
42
43 if [[ -z $hostname ]]; then
44 hostname=`sed -E 's/^[0-9]{1,3}\.[0-9]{1,3}\.([0-9]{1,3})\.([0-9]{1,3})$/vpn-\1-\2.douglasthrift.net./' <<<$remote_ip`
45 reverse=`sed -E 's/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/\4.\3.\2.\1.in-addr.arpa./' <<<$remote_ip`
46 fi
47
48 key
49
50 nsupdate <<EOF
51 key $name $secret
52 update delete $hostname IN A
53 update add $hostname 300 IN A $remote_ip
54 send`if [[ -n $reverse ]]; then echo "
55 update delete $reverse IN PTR
56 update add $reverse 300 IN PTR $hostname
57 send"; fi`
58 EOF
59
60 echo $hostname $reverse > ~/.mpd-nsupdate.$interface

Properties

Name Value
svn:executable *
svn:keywords Id