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

# User Rev Content
1 douglas 856 #!/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 douglas 1005 [[ $# -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 douglas 856 for (( index = 6; index <= $#; ++index )); do
25     case $(eval "echo \"\${$index}\"") in
26     (dns@(1|2))
27 douglas 1005 : $((++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 douglas 856 usage
33     fi
34     ;;
35     (*)
36     usage
37     ;;
38     esac
39     done
40    
41 douglas 859 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 douglas 856 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 douglas 859 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 douglas 856 fi
47    
48 douglas 1005 key
49 douglas 856
50     nsupdate <<EOF
51     key $name $secret
52     update delete $hostname IN A
53     update add $hostname 300 IN A $remote_ip
54 douglas 859 send`if [[ -n $reverse ]]; then echo "
55 douglas 856 update delete $reverse IN PTR
56     update add $reverse 300 IN PTR $hostname
57 douglas 861 send"; fi`
58 douglas 856 EOF
59    
60     echo $hostname $reverse > ~/.mpd-nsupdate.$interface

Properties

Name Value
svn:executable *
svn:keywords Id