|
@@ -6233,6 +6233,7 @@ function add_ddns_domain {
|
6233
|
6233
|
fi
|
6234
|
6234
|
chmod 600 /etc/inadyn.conf
|
6235
|
6235
|
service inadyn restart
|
|
6236
|
+ systemctl daemon-reload
|
6236
|
6237
|
|
6237
|
6238
|
# clear the arguments
|
6238
|
6239
|
CURRENT_DDNS_DOMAIN=
|
|
@@ -8325,24 +8326,166 @@ function install_dynamicdns {
|
8325
|
8326
|
if grep -Fxq "install_dynamicdns" $COMPLETION_FILE; then
|
8326
|
8327
|
return
|
8327
|
8328
|
fi
|
8328
|
|
- apt-get -y install inadyn curl
|
8329
|
8329
|
|
8330
|
|
- if [ ! -f /etc/inadyn.conf ]; then
|
8331
|
|
- echo 'Unable to find inadyn configuration file /etc/inadyn.conf'
|
8332
|
|
- exit 57894
|
8333
|
|
- fi
|
|
8330
|
+ # Here we compile from source because the current package
|
|
8331
|
+ # doesn't support https, which clould result in passwords
|
|
8332
|
+ # being leaked
|
8334
|
8333
|
|
8335
|
|
- sed -i "s/# bind eth.*/# bind eth0/g" /etc/inadyn.conf
|
|
8334
|
+ cd $INSTALL_DIR
|
|
8335
|
+ apt-get -y install build-essential curl libgnutls28-dev automake1.11
|
|
8336
|
+ git clone https://github.com/troglobit/inadyn
|
|
8337
|
+ cd inadyn
|
|
8338
|
+ ./configure
|
|
8339
|
+ if [ ! "$?" = "0" ]; then
|
|
8340
|
+ exit 74890
|
|
8341
|
+ fi
|
|
8342
|
+ USE_OPENSSL=1 make
|
|
8343
|
+ if [ ! "$?" = "0" ]; then
|
|
8344
|
+ exit 74858
|
|
8345
|
+ fi
|
|
8346
|
+ make install
|
|
8347
|
+ if [ ! "$?" = "0" ]; then
|
|
8348
|
+ exit 3785
|
|
8349
|
+ fi
|
8336
|
8350
|
|
8337
|
|
- # clear existing settings
|
8338
|
|
- sed -i 's/system <provider>//g' /etc/inadyn.conf
|
8339
|
|
- sed -i 's/# Your username//g' /etc/inadyn.conf
|
8340
|
|
- sed -i 's/username <username>//g' /etc/inadyn.conf
|
8341
|
|
- sed -i 's/# Your password//g' /etc/inadyn.conf
|
8342
|
|
- sed -i 's/password <password>//g' /etc/inadyn.conf
|
8343
|
|
- sed -i 's/# Your hostname. This option can appear multiple times//g' /etc/inadyn.conf
|
8344
|
|
- sed -i 's/alias <hostname>//g' /etc/inadyn.conf
|
|
8351
|
+ # create a configuration file
|
|
8352
|
+ echo 'period 300' > /etc/inadyn.conf
|
|
8353
|
+ echo 'startup-delay 60' >> /etc/inadyn.conf
|
|
8354
|
+ echo 'cache-dir /etc/inadyn' >> /etc/inadyn.conf
|
|
8355
|
+ chmod 600 /etc/inadyn.conf
|
8345
|
8356
|
|
|
8357
|
+ if [ ! -d /etc/inadyn ]; then
|
|
8358
|
+ mkdir /etc/inadyn
|
|
8359
|
+ fi
|
|
8360
|
+
|
|
8361
|
+ # add an init script
|
|
8362
|
+ echo '#!/bin/sh' > /etc/init.d/inadyn
|
|
8363
|
+ echo '### BEGIN INIT INFO' >> /etc/init.d/inadyn
|
|
8364
|
+ echo '# Provides: inadyn' >> /etc/init.d/inadyn
|
|
8365
|
+ echo '# Required-Start: $network $local_fs $remote_fs $syslog' >> /etc/init.d/inadyn
|
|
8366
|
+ echo '# Required-Stop: $network $local_fs $remote_fs $syslog' >> /etc/init.d/inadyn
|
|
8367
|
+ echo '# Default-Start: 2 3 4 5' >> /etc/init.d/inadyn
|
|
8368
|
+ echo '# Default-Stop: 0 1 6' >> /etc/init.d/inadyn
|
|
8369
|
+ echo '# Short-Description: Dynamic DNS client' >> /etc/init.d/inadyn
|
|
8370
|
+ echo '# Description: Register an Internet name with your IP address' >> /etc/init.d/inadyn
|
|
8371
|
+ echo '### END INIT INFO' >> /etc/init.d/inadyn
|
|
8372
|
+ echo '' >> /etc/init.d/inadyn
|
|
8373
|
+ echo '# Author: Timur Birsh <taem@linukz.org>' >> /etc/init.d/inadyn
|
|
8374
|
+ echo '' >> /etc/init.d/inadyn
|
|
8375
|
+ echo 'PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/local/bin:/usr/bin' >> /etc/init.d/inadyn
|
|
8376
|
+ echo 'DESC="Dynamic DNS client"' >> /etc/init.d/inadyn
|
|
8377
|
+ echo 'NAME=inadyn' >> /etc/init.d/inadyn
|
|
8378
|
+ echo 'DAEMON=/usr/local/sbin/inadyn' >> /etc/init.d/inadyn
|
|
8379
|
+ echo 'CACHEDIR=/run/$NAME' >> /etc/init.d/inadyn
|
|
8380
|
+ echo 'PIDFILE=$CACHEDIR/$NAME.pid' >> /etc/init.d/inadyn
|
|
8381
|
+ echo 'SCRIPTNAME=/etc/init.d/$NAME' >> /etc/init.d/inadyn
|
|
8382
|
+ echo 'DEFAULT=/etc/default/$NAME' >> /etc/init.d/inadyn
|
|
8383
|
+ echo 'CONFIG=/etc/$NAME.conf' >> /etc/init.d/inadyn
|
|
8384
|
+ echo '' >> /etc/init.d/inadyn
|
|
8385
|
+ echo '[ -x $DAEMON ] || exit 0' >> /etc/init.d/inadyn
|
|
8386
|
+ echo '' >> /etc/init.d/inadyn
|
|
8387
|
+ echo '[ -r $DEFAULT ] && . $DEFAULT' >> /etc/init.d/inadyn
|
|
8388
|
+ echo '' >> /etc/init.d/inadyn
|
|
8389
|
+ echo '. /lib/lsb/init-functions' >> /etc/init.d/inadyn
|
|
8390
|
+ echo '' >> /etc/init.d/inadyn
|
|
8391
|
+ echo '# Set defaults values if no DEFAULT exist' >> /etc/init.d/inadyn
|
|
8392
|
+ echo 'RUN_DAEMON="yes"' >> /etc/init.d/inadyn
|
|
8393
|
+ echo 'USER=root' >> /etc/init.d/inadyn
|
|
8394
|
+ echo 'GROUP=root' >> /etc/init.d/inadyn
|
|
8395
|
+ echo '' >> /etc/init.d/inadyn
|
|
8396
|
+ echo 'DAEMON_ARGS="--pidfile $PIDFILE \' >> /etc/init.d/inadyn
|
|
8397
|
+ echo ' --config $CONFIG \' >> /etc/init.d/inadyn
|
|
8398
|
+ echo ' --background \' >> /etc/init.d/inadyn
|
|
8399
|
+ echo ' --drop-privs $USER:$GROUP"' >> /etc/init.d/inadyn
|
|
8400
|
+ echo '' >> /etc/init.d/inadyn
|
|
8401
|
+ echo 'create_cache_dir() {' >> /etc/init.d/inadyn
|
|
8402
|
+ echo ' # Create the cache empty dir if necessary' >> /etc/init.d/inadyn
|
|
8403
|
+ echo ' if [ ! -d $CACHEDIR ]; then' >> /etc/init.d/inadyn
|
|
8404
|
+ echo ' mkdir $CACHEDIR' >> /etc/init.d/inadyn
|
|
8405
|
+ echo ' chmod 0755 $CACHEDIR' >> /etc/init.d/inadyn
|
|
8406
|
+ echo ' chown $USER:$GROUP $CACHEDIR' >> /etc/init.d/inadyn
|
|
8407
|
+ echo ' fi' >> /etc/init.d/inadyn
|
|
8408
|
+ echo '}' >> /etc/init.d/inadyn
|
|
8409
|
+ echo '' >> /etc/init.d/inadyn
|
|
8410
|
+ echo 'do_start()' >> /etc/init.d/inadyn
|
|
8411
|
+ echo '{' >> /etc/init.d/inadyn
|
|
8412
|
+ echo ' start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \' >> /etc/init.d/inadyn
|
|
8413
|
+ echo ' || return 1' >> /etc/init.d/inadyn
|
|
8414
|
+ echo ' start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \' >> /etc/init.d/inadyn
|
|
8415
|
+ echo ' $DAEMON_ARGS \' >> /etc/init.d/inadyn
|
|
8416
|
+ echo ' || return 2' >> /etc/init.d/inadyn
|
|
8417
|
+ echo '}' >> /etc/init.d/inadyn
|
|
8418
|
+ echo '' >> /etc/init.d/inadyn
|
|
8419
|
+ echo 'do_stop()' >> /etc/init.d/inadyn
|
|
8420
|
+ echo '{' >> /etc/init.d/inadyn
|
|
8421
|
+ echo ' start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME' >> /etc/init.d/inadyn
|
|
8422
|
+ echo ' RETVAL="$?"' >> /etc/init.d/inadyn
|
|
8423
|
+ echo ' [ "$RETVAL" = 2 ] && return 2' >> /etc/init.d/inadyn
|
|
8424
|
+ echo ' rm -f $PIDFILE' >> /etc/init.d/inadyn
|
|
8425
|
+ echo ' return "$RETVAL"' >> /etc/init.d/inadyn
|
|
8426
|
+ echo '}' >> /etc/init.d/inadyn
|
|
8427
|
+ echo '' >> /etc/init.d/inadyn
|
|
8428
|
+ echo 'do_reload() {' >> /etc/init.d/inadyn
|
|
8429
|
+ echo ' start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME' >> /etc/init.d/inadyn
|
|
8430
|
+ echo ' return 0' >> /etc/init.d/inadyn
|
|
8431
|
+ echo '}' >> /etc/init.d/inadyn
|
|
8432
|
+ echo '' >> /etc/init.d/inadyn
|
|
8433
|
+ echo 'case "$1" in' >> /etc/init.d/inadyn
|
|
8434
|
+ echo ' start)' >> /etc/init.d/inadyn
|
|
8435
|
+ echo ' log_daemon_msg "Starting $DESC " "$NAME"' >> /etc/init.d/inadyn
|
|
8436
|
+ echo ' create_cache_dir' >> /etc/init.d/inadyn
|
|
8437
|
+ echo ' do_start' >> /etc/init.d/inadyn
|
|
8438
|
+ echo ' case "$?" in' >> /etc/init.d/inadyn
|
|
8439
|
+ echo ' 0|1) log_end_msg 0 ;;' >> /etc/init.d/inadyn
|
|
8440
|
+ echo ' 2) log_end_msg 1 ;;' >> /etc/init.d/inadyn
|
|
8441
|
+ echo ' esac' >> /etc/init.d/inadyn
|
|
8442
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8443
|
+ echo ' stop)' >> /etc/init.d/inadyn
|
|
8444
|
+ echo ' log_daemon_msg "Stopping $DESC" "$NAME"' >> /etc/init.d/inadyn
|
|
8445
|
+ echo ' do_stop' >> /etc/init.d/inadyn
|
|
8446
|
+ echo ' case "$?" in' >> /etc/init.d/inadyn
|
|
8447
|
+ echo ' 0|1) log_end_msg 0 ;;' >> /etc/init.d/inadyn
|
|
8448
|
+ echo ' 2) log_end_msg 1 ;;' >> /etc/init.d/inadyn
|
|
8449
|
+ echo ' esac' >> /etc/init.d/inadyn
|
|
8450
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8451
|
+ echo ' status)' >> /etc/init.d/inadyn
|
|
8452
|
+ echo ' status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?' >> /etc/init.d/inadyn
|
|
8453
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8454
|
+ echo ' reload|force-reload)' >> /etc/init.d/inadyn
|
|
8455
|
+ echo ' log_daemon_msg "Reloading $DESC" "$NAME"' >> /etc/init.d/inadyn
|
|
8456
|
+ echo ' do_reload' >> /etc/init.d/inadyn
|
|
8457
|
+ echo ' log_end_msg $?' >> /etc/init.d/inadyn
|
|
8458
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8459
|
+ echo ' restart)' >> /etc/init.d/inadyn
|
|
8460
|
+ echo ' log_daemon_msg "Restarting $DESC" "$NAME"' >> /etc/init.d/inadyn
|
|
8461
|
+ echo ' do_stop' >> /etc/init.d/inadyn
|
|
8462
|
+ echo ' case "$?" in' >> /etc/init.d/inadyn
|
|
8463
|
+ echo ' 0|1)' >> /etc/init.d/inadyn
|
|
8464
|
+ echo ' do_start' >> /etc/init.d/inadyn
|
|
8465
|
+ echo ' case "$?" in' >> /etc/init.d/inadyn
|
|
8466
|
+ echo ' 0) log_end_msg 0 ;;' >> /etc/init.d/inadyn
|
|
8467
|
+ echo ' 1) log_end_msg 1 ;; # Old process is still running' >> /etc/init.d/inadyn
|
|
8468
|
+ echo ' *) log_end_msg 1 ;; # Failed to start' >> /etc/init.d/inadyn
|
|
8469
|
+ echo ' esac' >> /etc/init.d/inadyn
|
|
8470
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8471
|
+ echo ' *)' >> /etc/init.d/inadyn
|
|
8472
|
+ echo ' # Failed to stop' >> /etc/init.d/inadyn
|
|
8473
|
+ echo ' log_end_msg 1' >> /etc/init.d/inadyn
|
|
8474
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8475
|
+ echo ' esac' >> /etc/init.d/inadyn
|
|
8476
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8477
|
+ echo ' *)' >> /etc/init.d/inadyn
|
|
8478
|
+ echo ' echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2' >> /etc/init.d/inadyn
|
|
8479
|
+ echo ' exit 3' >> /etc/init.d/inadyn
|
|
8480
|
+ echo ' ;;' >> /etc/init.d/inadyn
|
|
8481
|
+ echo 'esac' >> /etc/init.d/inadyn
|
|
8482
|
+ echo '' >> /etc/init.d/inadyn
|
|
8483
|
+ echo ':' >> /etc/init.d/inadyn
|
|
8484
|
+ chmod +x /etc/init.d/inadyn
|
|
8485
|
+ update-rc.d inadyn defaults
|
|
8486
|
+ service inadyn start
|
|
8487
|
+ systemctl daemon-reload
|
|
8488
|
+
|
8346
|
8489
|
echo 'install_dynamicdns' >> $COMPLETION_FILE
|
8347
|
8490
|
}
|
8348
|
8491
|
|