瀏覽代碼

Simplify dynamic DNS setup

Bob Mottram 7 年之前
父節點
當前提交
432230c521
共有 1 個檔案被更改,包括 150 行新增137 行删除
  1. 150
    137
      src/freedombone-config

+ 150
- 137
src/freedombone-config 查看文件

@@ -247,150 +247,163 @@ function choose_default_domain_name {
247 247
     save_configuration_values
248 248
 }
249 249
 
250
+function dynamic_dns_setup {
251
+    data=$(tempfile 2>/dev/null)
252
+    trap "rm -f $data" 0 1 2 5 15
253
+    dialog --backtitle $"Freedombone Configuration" \
254
+           --radiolist $"Choose Dynamic DNS provider:" 40 40 40 \
255
+           1 dyn.com off \
256
+           2 freedns.afraid.org on \
257
+           3 zoneedit.com off \
258
+           4 no-ip.com off \
259
+           5 easydns.com off \
260
+           6 tzo.com off \
261
+           7 3322.org off \
262
+           8 dnsomatic.com off \
263
+           9 dns.he.net off \
264
+           10 tunnelbroker.net off \
265
+           11 dynsip.org off \
266
+           12 sitelutions.com off \
267
+           13 dnsexit.com off \
268
+           14 changeip.com off \
269
+           15 zerigo.com off \
270
+           16 dhis.org off \
271
+           17 nsupdate.info off \
272
+           18 duckdns.org off \
273
+           19 loopia.com off \
274
+           20 namecheap.com off \
275
+           21 domains.google.com off \
276
+           22 ovh.com off \
277
+           23 dtdns.com off \
278
+           24 giradns.com off \
279
+           25 duiadns.net off \
280
+           26 ddnss.de off \
281
+           27 dynv6.com off \
282
+           28 ipv4.dynv6.com off \
283
+           29 default@spdyn.de off \
284
+           30 strato.com off \
285
+           31 freemyip.com off \
286
+           32 cloudxns.net off \
287
+           33 none off 2> $data
288
+    sel=$?
289
+    case $sel in
290
+        1) exit 1;;
291
+        255) exit 1;;
292
+    esac
293
+    case $(cat $data) in
294
+        1) DDNS_PROVIDER="default@www.dyn.com";;
295
+        2) DDNS_PROVIDER="default@freedns.afraid.org";;
296
+        3) DDNS_PROVIDER="default@www.zoneedit.com";;
297
+        4) DDNS_PROVIDER="default@www.no-ip.com";;
298
+        5) DDNS_PROVIDER="default@www.easydns.com";;
299
+        6) DDNS_PROVIDER="default@www.tzo.com";;
300
+        7) DDNS_PROVIDER="default@www.3322.org";;
301
+        8) DDNS_PROVIDER="default@www.dnsomatic.com";;
302
+        9) DDNS_PROVIDER="default@dns.he.net";;
303
+        10) DDNS_PROVIDER="default@www.tunnelbroker.net";;
304
+        11) DDNS_PROVIDER="default@www.dynsip.org";;
305
+        12) DDNS_PROVIDER="default@www.sitelutions.com";;
306
+        13) DDNS_PROVIDER="default@www.dnsexit.com";;
307
+        14) DDNS_PROVIDER="default@www.changeip.com";;
308
+        15) DDNS_PROVIDER="default@www.zerigo.com";;
309
+        16) DDNS_PROVIDER="default@www.dhis.org";;
310
+        17) DDNS_PROVIDER="default@nsupdate.info";;
311
+        18) DDNS_PROVIDER="default@duckdns.org";;
312
+        19) DDNS_PROVIDER="default@www.loopia.com";;
313
+        20) DDNS_PROVIDER="default@www.namecheap.com";;
314
+        21) DDNS_PROVIDER="default@domains.google.com";;
315
+        22) DDNS_PROVIDER="default@www.ovh.com";;
316
+        23) DDNS_PROVIDER="default@www.dtdns.com";;
317
+        24) DDNS_PROVIDER="default@giradns.com";;
318
+        25) DDNS_PROVIDER="default@www.duiadns.net";;
319
+        26) DDNS_PROVIDER="default@ddnss.de";;
320
+        27) DDNS_PROVIDER="default@dynv6.com";;
321
+        28) DDNS_PROVIDER="default@ipv4.dynv6.com";;
322
+        29) DDNS_PROVIDER="default@spdyn.de";;
323
+        30) DDNS_PROVIDER="default@www.strato.com";;
324
+        31) DDNS_PROVIDER="default@freemyip.com";;
325
+        32) DDNS_PROVIDER="default@www.cloudxns.net";;
326
+        33) DDNS_PROVIDER="none";;
327
+        255) exit 1;;
328
+    esac
329
+    save_configuration_values
330
+
331
+    valid_ddns_username=
332
+    valid_ddns_password=
333
+    if [[ "$DDNS_PROVIDER" == "none" ]]; then
334
+        if [ -f /etc/systemd/system/inadyn.service ]; then
335
+            systemctl stop inadyn
336
+            systemctl disable inadyn
337
+        fi
338
+    else
339
+        while [ ! $valid_ddns_username ]
340
+        do
341
+            data=$(tempfile 2>/dev/null)
342
+            trap "rm -f $data" 0 1 2 5 15
343
+            dialog --backtitle $"Freedombone Configuration" \
344
+                   --inputbox $"Dynamic DNS provider username" 10 30 "$(grep 'DDNS_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
345
+            sel=$?
346
+            case $sel in
347
+                0)  possible_username=$(cat $data)
348
+                    if [ "$possible_username" ]; then
349
+                        if [ ${#possible_username} -gt 1 ]; then
350
+                            valid_ddns_username=$(cat $data)
351
+                            DDNS_USERNAME=$valid_ddns_username
352
+                            break;
353
+                        fi
354
+                    fi
355
+                    ;;
356
+                1) exit 1;;
357
+                255) exit 1;;
358
+            esac
359
+        done
360
+        save_configuration_values
361
+
362
+        while [ ! $valid_ddns_password ]
363
+        do
364
+            data=$(tempfile 2>/dev/null)
365
+            trap "rm -f $data" 0 1 2 5 15
366
+            dialog --backtitle $"Freedombone Configuration" \
367
+                   --clear \
368
+                   --insecure \
369
+                   --passwordbox $"Dynamic DNS provider password" 10 30 "$(grep 'DDNS_PASSWORD' temp.cfg | awk -F '=' '{print $2}')" 2> $data
370
+            sel=$?
371
+            case $sel in
372
+                0)  possible_password=$(cat $data)
373
+                    if [ "$possible_password" ]; then
374
+                        if [ ${#possible_password} -gt 1 ]; then
375
+                            valid_ddns_password=$(cat $data)
376
+                            DDNS_PASSWORD=$valid_ddns_password
377
+                            break;
378
+                        fi
379
+                    fi
380
+                    ;;
381
+                1) exit 1;;
382
+                255) exit 1;;
383
+            esac
384
+            if [ ${#DDNS_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
385
+                dialog --title $"Password quality check" --msgbox $"The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site." 10 40
386
+                DDNS_PASSWORD=""
387
+            fi
388
+        done
389
+        save_configuration_values
390
+    fi
391
+}
392
+
250 393
 function choose_dynamic_dns {
251
-    if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
394
+    DDNS_PROVIDER="none"
252 395
 
253
-        data=$(tempfile 2>/dev/null)
254
-        trap "rm -f $data" 0 1 2 5 15
255
-        dialog --backtitle $"Freedombone Configuration" \
256
-               --radiolist $"Choose Dynamic DNS provider:" 40 40 40 \
257
-               1 dyn.com off \
258
-               2 freedns.afraid.org on \
259
-               3 zoneedit.com off \
260
-               4 no-ip.com off \
261
-               5 easydns.com off \
262
-               6 tzo.com off \
263
-               7 3322.org off \
264
-               8 dnsomatic.com off \
265
-               9 dns.he.net off \
266
-               10 tunnelbroker.net off \
267
-               11 dynsip.org off \
268
-               12 sitelutions.com off \
269
-               13 dnsexit.com off \
270
-               14 changeip.com off \
271
-               15 zerigo.com off \
272
-               16 dhis.org off \
273
-               17 nsupdate.info off \
274
-               18 duckdns.org off \
275
-               19 loopia.com off \
276
-               20 namecheap.com off \
277
-               21 domains.google.com off \
278
-               22 ovh.com off \
279
-               23 dtdns.com off \
280
-               24 giradns.com off \
281
-               25 duiadns.net off \
282
-               26 ddnss.de off \
283
-               27 dynv6.com off \
284
-               28 ipv4.dynv6.com off \
285
-               29 default@spdyn.de off \
286
-               30 strato.com off \
287
-               31 freemyip.com off \
288
-               32 cloudxns.net off \
289
-               33 none off 2> $data
396
+    if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
397
+        dialog --title $"Dynamic DNS" \
398
+               --backtitle $"Freedombone Configuration" \
399
+               --yesno $"\nConfigure a dynamic DNS service?\n\nIf it is already handled by your internet router then select 'no'." 10 50
290 400
         sel=$?
291 401
         case $sel in
292
-            1) exit 1;;
402
+            0) dynamic_dns_setup;;
293 403
             255) exit 1;;
294 404
         esac
295
-        case $(cat $data) in
296
-            1) DDNS_PROVIDER="default@www.dyn.com";;
297
-            2) DDNS_PROVIDER="default@freedns.afraid.org";;
298
-            3) DDNS_PROVIDER="default@www.zoneedit.com";;
299
-            4) DDNS_PROVIDER="default@www.no-ip.com";;
300
-            5) DDNS_PROVIDER="default@www.easydns.com";;
301
-            6) DDNS_PROVIDER="default@www.tzo.com";;
302
-            7) DDNS_PROVIDER="default@www.3322.org";;
303
-            8) DDNS_PROVIDER="default@www.dnsomatic.com";;
304
-            9) DDNS_PROVIDER="default@dns.he.net";;
305
-            10) DDNS_PROVIDER="default@www.tunnelbroker.net";;
306
-            11) DDNS_PROVIDER="default@www.dynsip.org";;
307
-            12) DDNS_PROVIDER="default@www.sitelutions.com";;
308
-            13) DDNS_PROVIDER="default@www.dnsexit.com";;
309
-            14) DDNS_PROVIDER="default@www.changeip.com";;
310
-            15) DDNS_PROVIDER="default@www.zerigo.com";;
311
-            16) DDNS_PROVIDER="default@www.dhis.org";;
312
-            17) DDNS_PROVIDER="default@nsupdate.info";;
313
-            18) DDNS_PROVIDER="default@duckdns.org";;
314
-            19) DDNS_PROVIDER="default@www.loopia.com";;
315
-            20) DDNS_PROVIDER="default@www.namecheap.com";;
316
-            21) DDNS_PROVIDER="default@domains.google.com";;
317
-            22) DDNS_PROVIDER="default@www.ovh.com";;
318
-            23) DDNS_PROVIDER="default@www.dtdns.com";;
319
-            24) DDNS_PROVIDER="default@giradns.com";;
320
-            25) DDNS_PROVIDER="default@www.duiadns.net";;
321
-            26) DDNS_PROVIDER="default@ddnss.de";;
322
-            27) DDNS_PROVIDER="default@dynv6.com";;
323
-            28) DDNS_PROVIDER="default@ipv4.dynv6.com";;
324
-            29) DDNS_PROVIDER="default@spdyn.de";;
325
-            30) DDNS_PROVIDER="default@www.strato.com";;
326
-            31) DDNS_PROVIDER="default@freemyip.com";;
327
-            32) DDNS_PROVIDER="default@www.cloudxns.net";;
328
-            33) DDNS_PROVIDER="none";;
329
-            255) exit 1;;
330
-        esac
331
-        save_configuration_values
332
-
333
-        valid_ddns_username=
334
-        valid_ddns_password=
335
-        if [[ "$DDNS_PROVIDER" == "none" ]]; then
336
-            if [ -f /etc/systemd/system/inadyn.service ]; then
337
-                systemctl stop inadyn
338
-                systemctl disable inadyn
339
-            fi
340
-        else
341
-            while [ ! $valid_ddns_username ]
342
-            do
343
-                data=$(tempfile 2>/dev/null)
344
-                trap "rm -f $data" 0 1 2 5 15
345
-                dialog --backtitle $"Freedombone Configuration" \
346
-                       --inputbox $"Dynamic DNS provider username" 10 30 "$(grep 'DDNS_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
347
-                sel=$?
348
-                case $sel in
349
-                    0)  possible_username=$(cat $data)
350
-                        if [ "$possible_username" ]; then
351
-                            if [ ${#possible_username} -gt 1 ]; then
352
-                                valid_ddns_username=$(cat $data)
353
-                                DDNS_USERNAME=$valid_ddns_username
354
-                                break;
355
-                            fi
356
-                        fi
357
-                        ;;
358
-                    1) exit 1;;
359
-                    255) exit 1;;
360
-                esac
361
-            done
362
-            save_configuration_values
363
-
364
-            while [ ! $valid_ddns_password ]
365
-            do
366
-                data=$(tempfile 2>/dev/null)
367
-                trap "rm -f $data" 0 1 2 5 15
368
-                dialog --backtitle $"Freedombone Configuration" \
369
-                       --clear \
370
-                       --insecure \
371
-                       --passwordbox $"Dynamic DNS provider password" 10 30 "$(grep 'DDNS_PASSWORD' temp.cfg | awk -F '=' '{print $2}')" 2> $data
372
-                sel=$?
373
-                case $sel in
374
-                    0)  possible_password=$(cat $data)
375
-                        if [ "$possible_password" ]; then
376
-                            if [ ${#possible_password} -gt 1 ]; then
377
-                                valid_ddns_password=$(cat $data)
378
-                                DDNS_PASSWORD=$valid_ddns_password
379
-                                break;
380
-                            fi
381
-                        fi
382
-                        ;;
383
-                    1) exit 1;;
384
-                    255) exit 1;;
385
-                esac
386
-                if [ ${#DDNS_PASSWORD} -lt $MINIMUM_PASSWORD_LENGTH ]; then
387
-                    dialog --title $"Password quality check" --msgbox $"The password given was too short. It must be at least $MINIMUM_PASSWORD_LENGTH characters. You may need to change your password on the dynamic DNS provider's web site." 10 40
388
-                    DDNS_PASSWORD=""
389
-                fi
390
-            done
391
-            save_configuration_values
392
-        fi
393 405
     fi
406
+    save_configuration_values
394 407
 }
395 408
 
396 409
 function choose_debian_repo {