minor fix
[distro-setup] / dynamic-ip-update
index b6dfa09e940b6a9ca8dc550ee9e57e4f01f3b123..3d36363bcfe3cce4e60aa2c1e4ff804d9f9eaad8 100755 (executable)
@@ -1,4 +1,25 @@
 #!/bin/bash
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+#     http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 
 set -e; . /usr/local/lib/bash-bear; set +e
 [[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
@@ -55,7 +76,7 @@ main() {
 
   if ! tmp=$(ip -4 route get 85.119.83.50 2>/dev/null); then
     # our internet is down
-    if [[ $INVOCATION_ID ]]; then
+    if [[ $PPID == 1 ]]; then
       return 0
     else
       echo $0: failed to get route, giving up
@@ -67,7 +88,11 @@ main() {
   case $gateway in
     10.2.0.1)
       dyndomain=b8.nz
-      dynhost=i.b8.nz
+      # This domain is for any case where we want some different
+      # configuration based on lan vs wan. For right now, the only use
+      # is for ssh config to use port forwarding ports on the wan
+      # domain.
+      dyndomain_internet=i.b8.nz
       ;;
     *)
       return 0
@@ -95,8 +120,8 @@ main() {
 
 
   if $athome; then
-    if ! cur4="$(dig +short $dynhost @iankelling.org | tail -1)"; then
-      if [[ ! $INVOCATION_ID ]]; then
+    if ! cur4="$(dig +short $dyndomain @iankelling.org | tail -1)"; then
+      if [[ $PPID != 1 ]]; then
         echo "$0: dig failed. internet looks down. giving up"
       fi
       return 0
@@ -154,10 +179,10 @@ EOF
 
   if $up4; then
     cat >>$tmpf <<EOF
-update delete $dynhost. A
-update add $dynhost. 300 A $ip4
 update delete $dyndomain. A
 update add $dyndomain. 300 A $ip4
+update delete $dyndomain_internet. A
+update add $dyndomain_internet. 300 A $ip4
 EOF
   fi
 
@@ -199,7 +224,7 @@ loop-main() {
 }
 
 nsupdate_fails=0
-if [[ $INVOCATION_ID ]]; then
+if [[ $PPID == 1 ]]; then
   nsupdate_fail_limit=10
   loop-main
 else