Bläddra i källkod

Move to upgraded version of inadyn

Bob Mottram 7 år sedan
förälder
incheckning
ff0ba8b806

+ 2
- 2
src/freedombone-app-akaunting Visa fil

@@ -110,7 +110,7 @@ function install_interactive_akaunting {
110 110
         while [ ! $AKAUNTING_DETAILS_COMPLETE ]
111 111
         do
112 112
             data=$(mktemp 2>/dev/null)
113
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
113
+            if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
114 114
                 dialog --backtitle $"Freedombone Configuration" \
115 115
                        --title $"Akaunting Configuration" \
116 116
                        --form $"\\nPlease enter your Akaunting details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \
@@ -142,7 +142,7 @@ function install_interactive_akaunting {
142 142
                     AKAUNTING_DOMAIN_NAME=
143 143
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
144 144
                 else
145
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
145
+                    if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
146 146
                         AKAUNTING_CODE=$(sed -n 2p < "$data")
147 147
                         validate_freedns_code "$AKAUNTING_CODE"
148 148
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-gnusocial Visa fil

@@ -112,7 +112,7 @@ function install_interactive_gnusocial {
112 112
         while [ ! $GNUSOCIAL_DETAILS_COMPLETE ]
113 113
         do
114 114
             data=$(mktemp 2>/dev/null)
115
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
115
+            if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
116 116
                 dialog --backtitle $"Freedombone Configuration" \
117 117
                        --title $"GNU Social Configuration" \
118 118
                        --form $"\\nPlease enter your GNU Social details. The background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 4 \
@@ -156,7 +156,7 @@ function install_interactive_gnusocial {
156 156
                     GNUSOCIAL_DOMAIN_NAME=
157 157
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
158 158
                 else
159
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
159
+                    if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
160 160
                         GNUSOCIAL_CODE=$(sed -n 4p < "$data")
161 161
                         validate_freedns_code "$GNUSOCIAL_CODE"
162 162
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-kanboard Visa fil

@@ -91,7 +91,7 @@ function install_interactive_kanboard {
91 91
         while [ ! $KANBOARD_DETAILS_COMPLETE ]
92 92
         do
93 93
             data=$(mktemp 2>/dev/null)
94
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
94
+            if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
95 95
                 dialog --backtitle $"Freedombone Configuration" \
96 96
                        --title $"KanBoard Configuration" \
97 97
                        --form $"\\nPlease enter your KanBoard details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt." 13 55 2 \
@@ -123,7 +123,7 @@ function install_interactive_kanboard {
123 123
                     KANBOARD_DOMAIN_NAME=
124 124
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
125 125
                 else
126
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
126
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
127 127
                         KANBOARD_CODE=$(sed -n 2p < "$data")
128 128
                         validate_freedns_code "$KANBOARD_CODE"
129 129
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-koel Visa fil

@@ -90,7 +90,7 @@ function install_interactive_koel {
90 90
         while [ ! $KOEL_DETAILS_COMPLETE ]
91 91
         do
92 92
             data=$(mktemp 2>/dev/null)
93
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
93
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
94 94
                 dialog --backtitle $"Freedombone Configuration" \
95 95
                        --title $"Koel Configuration" \
96 96
                        --form $"\\nPlease enter your Koel details. The background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 3 \
@@ -122,7 +122,7 @@ function install_interactive_koel {
122 122
                     KOEL_DOMAIN_NAME=
123 123
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
124 124
                 else
125
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
125
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
126 126
                         KOEL_CODE=$(sed -n 2p < "$data")
127 127
                         validate_freedns_code "$KOEL_CODE"
128 128
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-movim Visa fil

@@ -79,7 +79,7 @@ function install_interactive_movim {
79 79
         while [ ! $MOVIM_DETAILS_COMPLETE ]
80 80
         do
81 81
             data=$(mktemp 2>/dev/null)
82
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
82
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
83 83
                 dialog --backtitle $"Freedombone Configuration" \
84 84
                        --title $"Movim Configuration" \
85 85
                        --form $"\\nPlease enter your Movim details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 12 65 2 \
@@ -106,7 +106,7 @@ function install_interactive_movim {
106 106
                     MOVIM_DOMAIN_NAME=
107 107
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
108 108
                 else
109
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
109
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
110 110
                         MOVIM_CODE=$(sed -n 2p < "$data")
111 111
                         validate_freedns_code "$MOVIM_CODE"
112 112
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-nextcloud Visa fil

@@ -90,7 +90,7 @@ function install_interactive_nextcloud {
90 90
         while [ ! $NEXTCLOUD_DETAILS_COMPLETE ]
91 91
         do
92 92
             data=$(mktemp 2>/dev/null)
93
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
93
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
94 94
                 dialog --backtitle $"Freedombone Configuration" \
95 95
                        --title $"NextCloud Configuration" \
96 96
                        --form $"\\nPlease enter your NextCloud details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 13 65 3 \
@@ -119,7 +119,7 @@ function install_interactive_nextcloud {
119 119
                     NEXTCLOUD_DOMAIN_NAME=
120 120
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
121 121
                 else
122
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
122
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
123 123
                         NEXTCLOUD_CODE=$(sed -n 2p < "$data")
124 124
                         validate_freedns_code "$NEXTCLOUD_CODE"
125 125
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-pelican Visa fil

@@ -380,7 +380,7 @@ function install_interactive_pelican {
380 380
         while [ ! $PELICAN_DETAILS_COMPLETE ]
381 381
         do
382 382
             data=$(mktemp 2>/dev/null)
383
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
383
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
384 384
                 dialog --backtitle $"Freedombone Configuration" \
385 385
                        --title $"Pelican Blog Configuration" \
386 386
                        --form $"\\nPlease enter your blog details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \
@@ -412,7 +412,7 @@ function install_interactive_pelican {
412 412
                     PELICAN_DOMAIN_NAME=
413 413
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
414 414
                 else
415
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
415
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
416 416
                         PELICAN_BLOG_CODE=$(sed -n 2p < "$data")
417 417
                         validate_freedns_code "$PELICAN_BLOG_CODE"
418 418
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-pleroma Visa fil

@@ -335,7 +335,7 @@ function install_interactive_pleroma {
335 335
         while [ ! $PLEROMA_DETAILS_COMPLETE ]
336 336
         do
337 337
             data=$(mktemp 2>/dev/null)
338
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
338
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
339 339
                 dialog --backtitle $"Freedombone Configuration" \
340 340
                        --title $"Pleroma Configuration" \
341 341
                        --form $"\\nPlease enter your Pleroma details. The background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 4 \
@@ -379,7 +379,7 @@ function install_interactive_pleroma {
379 379
                     PLEROMA_DOMAIN_NAME=
380 380
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
381 381
                 else
382
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
382
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
383 383
                         PLEROMA_CODE=$(sed -n 4p < "$data")
384 384
                         validate_freedns_code "$PLEROMA_CODE"
385 385
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-postactiv Visa fil

@@ -118,7 +118,7 @@ function install_interactive_postactiv {
118 118
         while [ ! $POSTACTIV_DETAILS_COMPLETE ]
119 119
         do
120 120
             data=$(mktemp 2>/dev/null)
121
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
121
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
122 122
                 dialog --backtitle $"Freedombone Configuration" \
123 123
                        --title $"PostActiv Configuration" \
124 124
                        --form $"\\nPlease enter your PostActiv details. The background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 16 65 4 \
@@ -162,7 +162,7 @@ function install_interactive_postactiv {
162 162
                     POSTACTIV_DOMAIN_NAME=
163 163
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
164 164
                 else
165
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
165
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
166 166
                         POSTACTIV_CODE=$(sed -n 4p < "$data")
167 167
                         validate_freedns_code "$POSTACTIV_CODE"
168 168
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-privatebin Visa fil

@@ -89,7 +89,7 @@ function install_interactive_privatebin {
89 89
         while [ ! $PRIVATEBIN_DETAILS_COMPLETE ]
90 90
         do
91 91
             data=$(mktemp 2>/dev/null)
92
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
92
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
93 93
                 dialog --backtitle $"Freedombone Configuration" \
94 94
                        --title $"PrivateBin Configuration" \
95 95
                        --form $"\\nPlease enter your PrivateBin details. The background image URL can be left blank.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 14 65 2 \
@@ -121,7 +121,7 @@ function install_interactive_privatebin {
121 121
                     PRIVATEBIN_DOMAIN_NAME=
122 122
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
123 123
                 else
124
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
124
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
125 125
                         PRIVATEBIN_CODE=$(sed -n 2p < "$data")
126 126
                         validate_freedns_code "$PRIVATEBIN_CODE"
127 127
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-app-riot Visa fil

@@ -76,7 +76,7 @@ function install_interactive_riot {
76 76
         while [ ! $RIOT_DETAILS_COMPLETE ]
77 77
         do
78 78
             data=$(mktemp 2>/dev/null)
79
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
79
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
80 80
                 dialog --backtitle $"Freedombone Configuration" \
81 81
                        --title $"Riot Web user interface for Matrix" \
82 82
                        --form $"\\nPlease enter your details.\\n\\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:" 13 65 3 \
@@ -105,7 +105,7 @@ function install_interactive_riot {
105 105
                     RIOT_DOMAIN_NAME=
106 106
                     dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
107 107
                 else
108
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
108
+                    if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
109 109
                         RIOT_CODE=$(sed -n 2p < "$data")
110 110
                         validate_freedns_code "$RIOT_CODE"
111 111
                         if [ ! "$VALID_CODE" ]; then

+ 2
- 2
src/freedombone-config Visa fil

@@ -184,7 +184,7 @@ function choose_social_instance_domain_name {
184 184
     while [ ! $DEFAULT_DOMAIN_DETAILS_COMPLETE ]
185 185
     do
186 186
         data=$(mktemp 2>/dev/null)
187
-        if [[ "$DDNS_PROVIDER" == "default@freedns.afraid.org" ]]; then
187
+        if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
188 188
             dialog --backtitle $"Freedombone Configuration" \
189 189
                    --title $"Instance domain" \
190 190
                    --form $"\\nEnter your instance domain name and its FreeDNS code:" 11 55 3 \
@@ -247,7 +247,7 @@ function choose_default_domain_name {
247 247
         while [ ! $DEFAULT_DOMAIN_DETAILS_COMPLETE ]
248 248
         do
249 249
             data=$(mktemp 2>/dev/null)
250
-            if [[ "$DDNS_PROVIDER" == "default@freedns.afraid.org" ]]; then
250
+            if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
251 251
                 dialog --backtitle $"Freedombone Configuration" \
252 252
                        --title $"Your main domain name on FreeDNS" \
253 253
                        --form $"\nWhich domain name should your email/XMPP/IRC/Mumble be associated with?" 13 55 5 \

+ 26
- 26
src/freedombone-ddns Visa fil

@@ -80,32 +80,32 @@ function dynamic_dns_setup {
80 80
     fi
81 81
 
82 82
     case $selection in
83
-        1) DDNS_PROVIDER="default@freedns.afraid.org";;
84
-        2) DDNS_PROVIDER="default@www.dyn.com";;
85
-        3) DDNS_PROVIDER="default@www.zoneedit.com";;
86
-        4) DDNS_PROVIDER="default@www.no-ip.com";;
87
-        5) DDNS_PROVIDER="default@www.easydns.com";;
88
-        6) DDNS_PROVIDER="default@www.dnsomatic.com";;
89
-        7) DDNS_PROVIDER="default@dns.he.net";;
90
-        8) DDNS_PROVIDER="default@www.tunnelbroker.net";;
91
-        9) DDNS_PROVIDER="default@www.sitelutions.com";;
92
-        10) DDNS_PROVIDER="default@www.dnsexit.com";;
93
-        11) DDNS_PROVIDER="default@www.changeip.com";;
94
-        12) DDNS_PROVIDER="default@www.zerigo.com";;
95
-        13) DDNS_PROVIDER="default@www.dhis.org";;
96
-        14) DDNS_PROVIDER="default@nsupdate.info";;
97
-        15) DDNS_PROVIDER="default@www.loopia.com";;
98
-        16) DDNS_PROVIDER="default@www.namecheap.com";;
99
-        17) DDNS_PROVIDER="default@www.ovh.com";;
100
-        18) DDNS_PROVIDER="default@www.dtdns.com";;
101
-        19) DDNS_PROVIDER="default@giradns.com";;
102
-        20) DDNS_PROVIDER="default@www.duiadns.net";;
103
-        21) DDNS_PROVIDER="default@ddnss.de";;
104
-        22) DDNS_PROVIDER="default@dynv6.com";;
105
-        23) DDNS_PROVIDER="default@ipv4.dynv6.com";;
106
-        24) DDNS_PROVIDER="default@spdyn.de";;
107
-        25) DDNS_PROVIDER="default@freemyip.com";;
108
-        26) DDNS_PROVIDER="default@www.cloudxns.net";;
83
+        1) DDNS_PROVIDER="freedns";;
84
+        2) DDNS_PROVIDER="dyn";;
85
+        3) DDNS_PROVIDER="zoneedit.com";;
86
+        4) DDNS_PROVIDER="no-ip.com";;
87
+        5) DDNS_PROVIDER="easydns.com";;
88
+        6) DDNS_PROVIDER="dnsomatic.com";;
89
+        7) DDNS_PROVIDER="dns.he.net";;
90
+        8) DDNS_PROVIDER="tunnelbroker.net";;
91
+        9) DDNS_PROVIDER="sitelutions.com";;
92
+        10) DDNS_PROVIDER="dnsexit.com";;
93
+        11) DDNS_PROVIDER="changeip.com";;
94
+        12) DDNS_PROVIDER="zerigo.com";;
95
+        13) DDNS_PROVIDER="dhis.org";;
96
+        14) DDNS_PROVIDER="nsupdate.info";;
97
+        15) DDNS_PROVIDER="loopia.com";;
98
+        16) DDNS_PROVIDER="namecheap.com";;
99
+        17) DDNS_PROVIDER="ovh.com";;
100
+        18) DDNS_PROVIDER="dtdns.com";;
101
+        19) DDNS_PROVIDER="giradns.com";;
102
+        20) DDNS_PROVIDER="duiadns.net";;
103
+        21) DDNS_PROVIDER="ddnss.de";;
104
+        22) DDNS_PROVIDER="dynv6.com";;
105
+        23) DDNS_PROVIDER="ipv4.dynv6.com";;
106
+        24) DDNS_PROVIDER="spdyn.de";;
107
+        25) DDNS_PROVIDER="freemyip.com";;
108
+        26) DDNS_PROVIDER="cloudxns.net";;
109 109
     esac
110 110
     save_configuration_values
111 111
 

+ 72
- 49
src/freedombone-utils-dns Visa fil

@@ -35,12 +35,12 @@ NAMESERVER5='85.25.251.254'
35 35
 NAMESERVER6='2.141.58.13'
36 36
 
37 37
 # parameters used when adding a new domain
38
-DDNS_PROVIDER="default@freedns.afraid.org"
38
+DDNS_PROVIDER="freedns"
39 39
 DDNS_USERNAME=
40 40
 DDNS_PASSWORD=
41 41
 
42
-INADYN_REPO="https://github.com/bashrc/inadyn"
43
-INADYN_COMMIT='fadbe17f520d337dfb8d69ee4bf1fcaa23fce0d6'
42
+INADYN_REPO="https://github.com/troglobit/inadyn"
43
+INADYN_COMMIT='3fe26d2235ddda9047cf33e8ed1453bcc3bbbf19'
44 44
 INADYN_CONFIG_FILE=/etc/inadyn.conf
45 45
 
46 46
 # web site used to obtain the external IP address of the system
@@ -105,42 +105,57 @@ function update_inadyn_config {
105 105
     fi
106 106
 
107 107
     if ! grep -q "$DDNS_PROVIDER" "${INADYN_CONFIG_FILE}"; then
108
-        # store any previous aliases
109
-        grep 'alias ' "${INADYN_CONFIG_FILE}" > /tmp/inadyn_aliases
110
-
111
-        # remove entry for any previous ddns
112
-        sed -i '/system /,$d' "${INADYN_CONFIG_FILE}"
113
-
114
-        # add the new provider
115
-        { echo '';
116
-          echo "system $DDNS_PROVIDER";
117
-          echo '  ssl';
118
-          echo "  checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
119
-        if [ "$DDNS_USERNAME" ]; then
120
-            echo "  username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
121
-        fi
122
-        if [ "$DDNS_PASSWORD" ]; then
123
-            echo "  password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
124
-        fi
108
+        if grep -q "{" "${INADYN_CONFIG_FILE}"; then
109
+            sed -i "s|provider .*|provider $DDNS_PROVIDER {|g" "${INADYN_CONFIG_FILE}"
110
+            sed -i "s|username .*|username       = $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
111
+            sed -i "s|password .*|password       = $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
112
+            sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
113
+        else
114
+            # Old inadyn config file format
115
+            # store any previous aliases
116
+            grep 'alias ' "${INADYN_CONFIG_FILE}" > /tmp/inadyn_aliases
117
+
118
+            # remove entry for any previous ddns
119
+            sed -i '/system /,$d' "${INADYN_CONFIG_FILE}"
120
+
121
+            # add the new provider
122
+            { echo '';
123
+              echo "system $DDNS_PROVIDER";
124
+              echo '  ssl';
125
+              echo "  checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
126
+            if [ "$DDNS_USERNAME" ]; then
127
+                echo "  username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
128
+            fi
129
+            if [ "$DDNS_PASSWORD" ]; then
130
+                echo "  password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
131
+            fi
125 132
 
126
-        if [ -f /tmp/inadyn_aliases ]; then
127
-            cat /tmp/inadyn_aliases >> "${INADYN_CONFIG_FILE}"
128
-            rm /tmp/inadyn_aliases
133
+            if [ -f /tmp/inadyn_aliases ]; then
134
+                cat /tmp/inadyn_aliases >> "${INADYN_CONFIG_FILE}"
135
+                rm /tmp/inadyn_aliases
136
+            fi
129 137
         fi
130 138
     else
131
-        # change username/password for an existing provider
132
-        if [ "$DDNS_USERNAME" ]; then
133
-            if grep -q "  username " "${INADYN_CONFIG_FILE}"; then
134
-                sed -i "s|  username .*|  username $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
135
-            else
136
-                echo "  username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
139
+        if grep -q "{" "${INADYN_CONFIG_FILE}"; then
140
+            sed -i "s|username .*|username       = $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
141
+            sed -i "s|password .*|password       = $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
142
+            sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
143
+        else
144
+            # Old inadyn config file format
145
+            # change username/password for an existing provider
146
+            if [ "$DDNS_USERNAME" ]; then
147
+                if grep -q "  username " "${INADYN_CONFIG_FILE}"; then
148
+                    sed -i "s|  username .*|  username $DDNS_USERNAME|g" "${INADYN_CONFIG_FILE}"
149
+                else
150
+                    echo "  username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
151
+                fi
137 152
             fi
138
-        fi
139
-        if [ "$DDNS_PASSWORD" ]; then
140
-            if grep -q "  password " "${INADYN_CONFIG_FILE}"; then
141
-                sed -i "s|  password .*|  password $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
142
-            else
143
-                echo "  password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
153
+            if [ "$DDNS_PASSWORD" ]; then
154
+                if grep -q "  password " "${INADYN_CONFIG_FILE}"; then
155
+                    sed -i "s|  password .*|  password $DDNS_PASSWORD|g" "${INADYN_CONFIG_FILE}"
156
+                else
157
+                    echo "  password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
158
+                fi
144 159
             fi
145 160
         fi
146 161
     fi
@@ -203,24 +218,29 @@ function add_ddns_domain {
203 218
         exit 5745
204 219
     fi
205 220
     if ! grep -q "$DDNS_PROVIDER" "${INADYN_CONFIG_FILE}"; then
206
-        { echo '';
207
-          echo "system $DDNS_PROVIDER";
208
-          echo '  ssl';
209
-          echo "  checkip-url $GET_IP_ADDRESS_URL /"; } >> "${INADYN_CONFIG_FILE}"
210
-        if [ $DDNS_USERNAME ]; then
211
-            echo "  username $DDNS_USERNAME" >> "${INADYN_CONFIG_FILE}"
212
-        fi
213
-        if [ $DDNS_PASSWORD ]; then
214
-            echo "  password $DDNS_PASSWORD" >> "${INADYN_CONFIG_FILE}"
215
-        fi
221
+        { echo 'period          = 300';
222
+          echo 'user-agent      = Mozilla/5.0';
223
+          echo '';
224
+          echo "provider $DDNS_PROVIDER {";
225
+          echo "    ssl            = true";
226
+          echo "    checkip-ssl    = false";
227
+          echo "    checkip-server = $GET_IP_ADDRESS_URL";
228
+          echo "    username       = $DDNS_USERNAME";
229
+          echo "    password       = $DDNS_PASSWORD";
230
+          echo "    hostname       = { $CURRENT_DDNS_DOMAIN }";
231
+          echo '}'; } > "${INADYN_CONFIG_FILE}"
232
+    else
233
+        sed -i "s|checkip-server .*|checkip-server = $GET_IP_ADDRESS_URL|g" "${INADYN_CONFIG_FILE}"
216 234
     fi
217 235
 
218 236
     if ! grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
219
-        echo "  alias $CURRENT_DDNS_DOMAIN" >> "${INADYN_CONFIG_FILE}"
237
+        DDNS_HOSTNAMES=$(grep 'hostname ' "${INADYN_CONFIG_FILE}"| awk -F '{' '{print $2}' | sed 's| }||g')
238
+        sed -i "s|hostname .*|hostname       = {${DDNS_HOSTNAMES}, ${CURRENT_DDNS_DOMAIN} }|g" "${INADYN_CONFIG_FILE}"
220 239
     fi
221 240
     chmod 600 "${INADYN_CONFIG_FILE}"
222
-    systemctl restart inadyn
241
+
223 242
     systemctl daemon-reload
243
+    systemctl restart inadyn
224 244
 }
225 245
 
226 246
 function remove_ddns_domain {
@@ -241,9 +261,12 @@ function remove_ddns_domain {
241 261
     fi
242 262
     if grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
243 263
         systemctl stop inadyn
244
-        sed -i "/alias $CURRENT_DDNS_DOMAIN/d" "${INADYN_CONFIG_FILE}"
245
-        systemctl start inadyn
264
+        sed -i "s|, ${CURRENT_DDNS_DOMAIN}||g" "${INADYN_CONFIG_FILE}"
265
+        if grep -q "$CURRENT_DDNS_DOMAIN" "${INADYN_CONFIG_FILE}"; then
266
+            sed -i "s|${CURRENT_DDNS_DOMAIN}||g" "${INADYN_CONFIG_FILE}"
267
+        fi
246 268
         systemctl daemon-reload
269
+        systemctl start inadyn
247 270
     fi
248 271
 }
249 272
 

+ 4
- 4
src/freedombone-utils-interactive Visa fil

@@ -126,7 +126,7 @@ function interactive_site_details {
126 126
     while [ ! $SITE_DETAILS_COMPLETE ]
127 127
     do
128 128
         data=$(mktemp 2>/dev/null)
129
-        if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
129
+        if [[ $DDNS_PROVIDER == "freedns" ]]; then
130 130
             dialog --backtitle "$SITE_BACKTITLE" \
131 131
                    --title "$SITE_CONFIG_TITLE" \
132 132
                    --form "$SITE_FORM_TEXT" 14 55 3 \
@@ -155,7 +155,7 @@ function interactive_site_details {
155 155
                 SITE_DOMAIN_NAME=
156 156
                 dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
157 157
             else
158
-                if [[ "$DDNS_PROVIDER" == "default@freedns.afraid.org" ]]; then
158
+                if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
159 159
                     SITE_CODE=$(sed -n 2p < "$data")
160 160
                     validate_freedns_code "$SITE_CODE"
161 161
                     if [ ! "$VALID_CODE" ]; then
@@ -193,7 +193,7 @@ function interactive_site_details_with_title {
193 193
     while [ ! $SITE_DETAILS_COMPLETE ]
194 194
     do
195 195
         data=$(mktemp 2>/dev/null)
196
-        if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
196
+        if [[ $DDNS_PROVIDER == *"freedns"* ]]; then
197 197
                 dialog --backtitle $"Freedombone Configuration" \
198 198
                        --title "$SITE_BACKTITLE" \
199 199
                        --form "$SITE_FORM_TEXT" 14 55 4 \
@@ -225,7 +225,7 @@ function interactive_site_details_with_title {
225 225
                 SITE_DOMAIN_NAME=
226 226
                 dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
227 227
             else
228
-                if [[ "$DDNS_PROVIDER" == "default@freedns.afraid.org" ]]; then
228
+                if [[ "$DDNS_PROVIDER" == *"freedns"* ]]; then
229 229
                     SITE_CODE=$(sed -n 3p < "$data")
230 230
                     validate_freedns_code "${SITE_CODE}"
231 231
                     if [ ! "$VALID_CODE" ]; then

+ 56
- 15
src/freedombone-utils-web Visa fil

@@ -430,6 +430,46 @@ function install_web_server_access_control {
430 430
     fi
431 431
 }
432 432
 
433
+function upgrade_inadyn_config {
434
+    if [ ! -f "${INADYN_CONFIG_FILE}" ]; then
435
+        return
436
+    fi
437
+
438
+    if grep -q "{" "${INADYN_CONFIG_FILE}"; then
439
+        return
440
+    fi
441
+
442
+    read_config_param DDNS_PROVIDER
443
+    read_config_param DDNS_USERNAME
444
+    read_config_param DDNS_PASSWORD
445
+
446
+    grep "alias " "${INADYN_CONFIG_FILE}" | sed 's| alias ||g' > ~/.inadyn_existing_sites
447
+    DDNS_HOSTNAMES=
448
+    while read -r host; do
449
+        if [ "$DDNS_HOSTNAMES" ]; then
450
+            DDNS_HOSTNAMES="$DDNS_HOSTNAMES, $host"
451
+        else
452
+            DDNS_HOSTNAMES="$host"
453
+        fi
454
+    done <~/.inadyn_existing_sites
455
+
456
+    if [ ! "$DDNS_HOSTNAMES" ]; then
457
+        return
458
+    fi
459
+
460
+    { echo 'period          = 300';
461
+      echo 'user-agent      = Mozilla/5.0';
462
+      echo '';
463
+      echo "provider $DDNS_PROVIDER {";
464
+      echo "    ssl            = true";
465
+      echo "    checkip-ssl    = false";
466
+      echo "    checkip-server = $GET_IP_ADDRESS_URL";
467
+      echo "    username       = $DDNS_USERNAME";
468
+      echo "    password       = $DDNS_PASSWORD";
469
+      echo "    hostname       = { $DDNS_HOSTNAMES }";
470
+      echo '}'; } > "${INADYN_CONFIG_FILE}"
471
+}
472
+
433 473
 function install_dynamicdns {
434 474
     if [[ $SYSTEM_TYPE == "mesh"* ]]; then
435 475
         return
@@ -458,6 +498,7 @@ function install_dynamicdns {
458 498
     # https version 1.99.8
459 499
 
460 500
     apt-get -yq install build-essential curl libgnutls28-dev automake1.11
501
+    apt-get -yq install gnutls-dev libconfuse-dev
461 502
     if [ ! -d "$INSTALL_DIR/inadyn" ]; then
462 503
         if [ -d /repos/inadyn ]; then
463 504
             mkdir "$INSTALL_DIR/inadyn"
@@ -477,47 +518,47 @@ function install_dynamicdns {
477 518
     git checkout "$INADYN_COMMIT" -b "$INADYN_COMMIT"
478 519
     set_completion_param "inadyn commit" "$INADYN_COMMIT"
479 520
 
480
-    #./autogen.sh
481
-    if ! ./configure; then
521
+    ./autogen.sh
522
+
523
+    if ! ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-openssl; then
482 524
         exit 74890
483 525
     fi
484
-    if ! USE_OPENSSL=1 make; then
526
+    if ! make -j5; then
485 527
         exit 74858
486 528
     fi
487
-    if ! make install; then
529
+    if ! make install-strip; then
488 530
         exit 3785
489 531
     fi
490 532
 
491
-    # create an unprivileged user
492
-    #chmod 600 /etc/shadow
493
-    #chmod 600 /etc/gshadow
494
-    #useradd -r -s /bin/false debian-inadyn
495
-    #chmod 0000 /etc/shadow
496
-    #chmod 0000 /etc/gshadow
497
-
498 533
     # create a configuration file
499 534
     { echo 'background';
500 535
       echo 'verbose        1';
501 536
       echo 'period         300';
502 537
       echo 'startup-delay  60';
503 538
       echo 'cache-dir      /run/inadyn';
504
-      echo 'logfile        /dev/null'; } > /etc/inadyn.conf
505
-    chmod 600 /etc/inadyn.conf
539
+      echo 'logfile        /dev/null'; } > "${INADYN_CONFIG_FILE}"
540
+    chmod 600 "${INADYN_CONFIG_FILE}"
506 541
 
507 542
     { echo '[Unit]';
508 543
       echo 'Description=inadyn (DynDNS updater)';
509 544
       echo 'After=network.target';
510 545
       echo '';
511 546
       echo '[Service]';
512
-      echo 'ExecStart=/usr/local/sbin/inadyn --config /etc/inadyn.conf';
547
+      echo "ExecStart=/usr/sbin/inadyn --config ${INADYN_CONFIG_FILE}";
513 548
       echo 'Restart=always';
514 549
       echo 'Type=forking';
515 550
       echo '';
516 551
       echo '[Install]';
517 552
       echo 'WantedBy=multi-user.target'; } > /etc/systemd/system/inadyn.service
518 553
     systemctl enable inadyn
519
-    systemctl start inadyn
520 554
     systemctl daemon-reload
555
+    systemctl start inadyn
556
+
557
+    # Remove old version of inadyn
558
+    if [ -f /usr/local/sbin/inadyn ]; then
559
+        rm /usr/local/sbin/inadyn
560
+        upgrade_inadyn_config
561
+    fi
521 562
 
522 563
     mark_completed "${FUNCNAME[0]}"
523 564
 }