0. Contents of RXDYNDNS.ZIP: 0.1 RXDYNDNS.TXT this text 0.2 RXDYNDNS.CMD simple DynDNS update script for OS/2 REXX 0.3 WATCHPPP.CMD simple OS/2 ppp0 daemon using RXDYNDNS.CMD 0.4 WATCHPPP.ICO a nice icon for WATCHPPP.CMD 1. Prerequisites 1.1 RXSOCK.DLL REXX sockets library from IBM 1.2 ppp0.pid ?:\mptn\etc\ppp0.pid watched by WATCHPPP.CMD 1.3 ifconfig.exe dynamic IP determined by IFCONFIG PPP0 1.4 host.exe used by WATCHPPP.CMD to get host by name 1.5 hostid.exe used by WATCHPPP.CMD to get and set local IP 1.6 HOSTNAME your DynDNS host, e.g. test.dnsalias.org 1.7 USERNAME your DynDNS loginid., e.g. test 1.8 PASSWORD your DynDNS password, e.g. test for test 2. Installation 2.1 Copy WATCHPPP.CMD and RXDYNDNS.CMD to a directory in your PATH. 2.2 Edit WATCHPPP.CMD to reflect your HOSTNAME, USERNAME, PASSWORD. 2.3 Use 'WATCHPPP *' (once) to (re)create a WPS object PPP0.DAEMON. 2.4 Edit PPP0.DAEMON settings as needed (e.g. use WATCHPPP.ICO). 2.5 Create a shadow of PPP0.DAEMON in the start folder . 2.6 Start PPP0.DAEMON manually for the first time (or reboot :-). 2.7 Move object PPP0.DAEMON from the desktop to any other folder. 3. WATCHPPP.CMD 3.1 The shipped version of WATCHPP.CMD updates a DynDNS host with call RXDYNDNS 'ppp0', 'test.dnsalias.org', 'test', 'test' 3.2 You can edit this script as needed, e.g. start other tasks as soon as a new IP (= dialup internet connection) is detected. 3.3 You can edit FORCEDIP = 1 to use a new dynamic IP as hostid (reported by hostid.exe), if your host has no other IP. 3.4 WATCHPPP.CMD can be used as VIO program on the command line or as PM program (started by CMD.EXE or PMREXX.EXE). At most one instance of WATCHPPP.CMD can run for any given interface, the default interface is IFCONFIG = 'ppp0'. 3.5 To start a new PPP0.DAEMON call e.g. WATCHPPP 10 for a poll cycle of 10 seconds. To kill a running PPP0.DAEMON or to see the usage text call WATCHPPP without arguments, this sends a termination request to the running daemon. 3.6 In fact PPP0.DAEMON uses a private REXX queue 'PPP0.DAEMON' to retrieve the output of ifconfig.exe etc., and terminates itself if anybody else writes into this queue. 4. RXDYNDNS.CMD 4.1 RXDYNDNS can be used directly on the command line to update a DynDNS host: RXDYNDNS interface hostname username password, e.g. try RXDYNDNS ppp0 test.dyndns.org test test 4.2 Please edit the line COPYLEFT = ... in RXDYNDNS.CMD as soon as you change anything else in this script, because DynDNS can block erroneous resp. abusive update clients. 4.3 As shipped RXDYNDNS.CMD supports only the DynDNS system of DynDNS.org for a single host without MX record. Adding more options should be easy, but please change the COPYLEFT too. 4.4 RXDYNDNS.CMD does not actually handle the DynDNS protocol, it only displays resp. returns the result of an attempted update. The caller has to evaluate the result messages as specified in: http://clients.dyndns.org/devel/codes.php 4.5 WATCHPPP.CMD simply displays any RXDYNDNS.CMD result, so the user is responsible for the proper reaction like waiting for a certain period or correcting invalid WATCHPPP parameters. 5. History 5.1 I've created RXDYNDNS 0.3 because DNSAlias-Net 2.0 had been removed from the list of "other clients" for unknown reasons. It's now back again, see http://clients.dyndns.org 5.2 One problem with DNSAlias-Net 2.0 could be that the author forgot to update the client's identification (compare 4.2 ;-). Of course you can use WATCHPPP.CMD with UPDATE.CMD instead of RXDYNDNS.CMD. 5.3 Please note that B64encode used in DNSAlias-Net 2.0 is not strictly correct, but DynDNS accepts it anyway. For details compare results of RXDYNDNS.CMD procedure MIME and B64encode. 5.4 If your domain is something like host.orgdns.org then RXDYNDNS version 0.4 sends its update requests to members.orgdns.org instead of members.dyndns.org, see http://www.orgdns.org 5.5 Version 0.5 sends "Connection: close" and "Pragma: no-cache" headers in a HTTP/1.0 GET request, HTTP 1.0 has no "chunked" replies (see HTTP/1.1 RFC 2616 19.4.6) and is easier to parse. 5.6 This is version 0.4 of RXDYNDNS.CMD, for future updates see http://frank.ellermann.bei.t-online.de/src/rxdyndns.zip