Upon login, the remote IP is used to create/update a tinydns file with the
DNS record for a hostname given by the SSH client.
+In addition to the IP record, a TXT record with the update time will be added.
tinydns is part of the dbjdns/dbndns package.
tinydns will automatically pick up the change.
+Test
+====
+You can test it locally:
+
+1. Create config file::
+
+ $ cp ssh-dyndns.sh.config-dist ~/.config/ssh-dyndns.sh
+
+2. Create dummy makefile::
+
+ $ touch /tmp/Makefile
+
+3. Run it::
+
+ $ SSH_CLIENT=192.168.1.4 SSH_CONNECTION=1 ./ssh-dyndns foo home.example.org
+
+4. See generated file::
+
+ $ cat /tmp/data-dyndns-home.example.org
+
====
Bugs
====
update=1
if [ -f "$datafile" ]; then
- currentdata=`cat "$datafile"`
+ currentdata=`head -n1 "$datafile"|tr -d '\n'`
if [ "$currentdata" = "$djbdnsline" ]; then
#no need to update
update=0
echo $djbdnsline > $datafile
+#TXT record with last update
+date=`date --rfc-3339=seconds|tr : .|tr -d '\n'`
+djbdnsTxtLine="'${domain}:Last update ${date}.:${timeout}"
+echo $djbdnsTxtLine >> $datafile
+
#compile dns data
cd "$data_dir"
sudo make