inadyn-mt - Simple DYNAMIC DNS client.
Version 02.28.10, October 2016
INADYN Advanced Help
INADYN Advanced is a dynamic DNS client. That is, it maintains the IP address
of a host name. It periodically checks whether the IP address stored by the DNS server is
the real current address of the machine that is running INADYN Advanced.
inadyn-mt contains some substantive bug fixes, and feature additions, including built in
Windows service installation and management, connection event trapping, unicode, additional dynamic dns servers support,
IPv6, and a few other things.
inadyn-mt source, and binaries can be found at
http://sourceforge.net/projects/inadyn-mt/
Download
Features:
Thanks to:
Thomas Morgan of zerigo.com for IPv6 parameter suggestions, and IPv6 related testing.
Roman, for prompting me to continue working on the project after having set aside a while.
Sander Jonkers for helping to track down afraid.org null hash, IPv6 address parameter bugs, and prompting update results detection improvements.
And everyone else who has taken the time to report bugs, make feature requests, suggestions.
Installation
For Windows:
-
As of version 02.00.00 inadyn-mt, MS service related files aren't needed (but, still work if desired). The
program can be started as a service (Windows NT) without these files, either from the command line, or the Windows service interface after command line installation. The service is named 'inadyn-mt'.
Install
inadyn-mt -i ["My Service Description"]
Optionally, a service may be installed with a specified name (defaults to inadyn-mt), providing for multiple service instances, useful for multiple dynamic dns server accounts (just point AppParamerters registry entry to corresponding configuration file,
with the --input_file (see inadyn-mt program parameters below) parameter):
inadyn-mt -i ["My Service Description"] -n <service_name>
Installation gives a default registry setup. The registry entry can be found at:
HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Services\inadyn-mt
Edit the Parameters\AppParameters default string value to customize to your dynamic dns system, and preferences. See below
for a full list of parameters, or simply type the program name, with no commands to see a listing.
Post installation configuration can also be done using the registry files method listed in step 2 below (edit the "mt" registry
file for inadyn-mt -i install method).
Start
inadyn-mt -s
Or:
inadyn-mt -s -n <service_name>
(The service name (-n) parameter may be similarly applied to all service commands.)
Assuming a configuration file of say, d:\inadyn-mt\inadyn-mt.cfg, the service can be installed, and started
from the command line, with:
inadyn-mt -i ["My Service Description"] -s --input_file d:\inadyn-mt\inadyn-mt.cfg
The optional service description command option is commited to Windows registry. Other parameters are not commited to
the Windows registry, and still need setting up as listed in step 2 (edit the "mt" registry file for inadyn-mt -i install
method), or by editing installation registry defaults directly, as described in Install section above.
Command line parameters override registry, parameters. Configuration file parameters are inserted
at point configuration file command appears.
Exit
inadyn-mt -e
Uninstall
inadyn-mt -x
Restart (if the service is not running, this command will start it):
inadyn-mt -r
If it appears commands are not carried out according to parameters given on command line, try closing other service
related programs such as the Windows Services interface.
See inadyn-mt\bin\win32 for registry, and batch files named corresponding to the present program version, and function
corresponding to registry, and batch files mentioned in the present html page. The batch files are convenient for service
installation, or removal without the command line -- just double click.
Windows 95/98
For unicode compatibility on Windows 95/98, in MS VC6 Project Settings, C/C++ tab, define
preprocessor definition, UNICOWS, link with unicows.lib, and place the dll, unicows.dll in
program executable directory.
- Edit the registry file with the correct
name for your service (e.g. 'configure_inadyn-mt_service_dyndns.reg') in order to pass your
username,
password, aliases, and other params to inadyn-mt. After you have finished
double click on the reg
file.
Notes:
- The correct path to inadyn-mt binary has to be entered in the
config file.
- The log file is located in %System%\system32 by default
- Beware of the double backslashes '\\' and the correct paths!
After you have finished double click on the reg file.
- Go to ControlPanel/AdministrativeTools/Services/inadyn-mt and START the service. Also make sure that the startup
mode is 'automatic'.
For Linux:
(As of inadyn-mt version 02.16.01-beta, regular makefile is deprecated for automake. makefile is still maintained,
but must be copied from makefile-deprecated to makefile in order to use.)
- No
installation necessary. The inadyn-mt executable found in bin/linux/inadyn-mt is self contained
and can be launched at any time
For MAC (thanks to Rob.S)
-
Put the binary somewhere in path (e.g. ~/bin),
Start it with the following AppleScript saved as an Application and dragged to
System Preferences -> Accounts -> Login Items:
do shell script "~/bin/inadyn-mt -a HOST.dyndns.org -u USER -p PASSWORD"
Alternatively, one can put it in the system startup scripts.
For other operating systems:
- Adjust the makefile - change the architecture to yours. (e.g. solaris)
- Recompile - make clean all
Command line options
They are automatically printed if inadyn-mt gets wrong parameters or if --help option is used.
Typical usage:
-for dyndns.org system:
inadyn-mt -u username -p password -a my.registered.name
-for freedns.afraid.org:
inadyn-mt --dyndns_system default@freedns.afraid.org -a my.registered.name,hash -a
anothername,hash2
'hash' is extracted from the grab url batch file that is downloaded from freedns.afraid.org
Parameters:
'--help': help
'-h': help
'--username <name>': your membername/hash
'-u <name>': your membername/hash
'--password <password>': your password. Optional.
'-p <password>': your password. Optional.
'--alias <alias host name>[, hash] [ip type] [if] [addr pref] [ip server[:port] <ip server url> [ip server host]]':
     alias host name, optional comma delimted hash, optional ip version (default auto), ipv6 source address preference,
network interface, ip server, ip server port, ip server host.
'-a <alias host name>' --alias short option.
     This option can appear multiple times.
A host name alias, optional comma delimited hash, and optional ip version (default auto), network interface, address
preference, ip server (and optional colon delimited port) and url, ip server host.
IP types are dual, coupled, ip4, ip6, or auto. IP type auto is the default. IP type dual (for dual ip stack), denotes the
alias should be updated to both ipv6, ipv4. Coupled is like dual, but denotes DDNS server accepts dual stack updates in a
single request, where the ipv4, ipv6 addresses are presented as a comma delimited list.
Network interface parameter should denote the network interface to be used as the ip server connect source address. When this
parameter is opted, unless ip type is ip4, the alias will be updated to the ipv6 address obtained from this interface, along
with, if indicated, the ipv4 address obtained from ip server.
The addr pref parameter denotes ipv6 privacy extentions address preference. It can be one of either pub, policy, home,
careof, crypto, nocrypto, tmp, pubtmp. Logical OR not yet supported. The default is pub.
Use the ip server parameter for other than the DDNS server's ip server as per default inadyn-mt hard coded configuration set‐
tings. It can include a colon delimted port number. It must be accompanied by a url parameter. Finally, an ip server host
can be designated - useful in case of ip server running on multiple server hosts, or the ip server domain name used to reach
the server otherwise differs from actual ip server domain name.
Except the host (alias) parameter, all of these parameters are optional, but order matters.
'--debug': <#> - debug level 1..7 (higher = more output)
'-d': debug level 1..7 (higher = more output).
'-i [quoted service description] [-n <service name>]': install service
'-s [-n <service name>]': start service
'-e [-n <service name>]': exit service
'-r [-n <service name>]': restart service
'-x [-n <service name>]': remove service
'--input_file <path/file>': input file name that contains inadyn-mt command options (adds to those already present in the cmd line). The default configuration file name is '/etc/inadyn-mt.conf'. It is only
used if inadyn-mt is called without any command line options. This allows inadyn-mt to be called without any arguments. The format is as expected for a **NIX config file. See below for details.
'--ip_server_name <name>[:port] <url>': The client
IP is detected by calling 'url' from this 'ip_server_name:port'.
Choice of ip server name parameter option can determine what type of address is updated.
To update an IPv6 address, simply choose an ip server that supports IPv6, such as, ip6.me /, myip.dk /, dhis.org /, among
others. And, of course, dynamic dns server should be set to one that supports IPv6. See IPv6 section below for more
information.
'--ip_server_host <host>': Host name used in http request to ip server if different from ip server name,
as when, e.g., ip_server_name is 'localhost:port /' through an SSL bridge. Defaults to ip server name.
'--dyndns_server_name <name>[:port]': dynamic dns server name, and optional port.
The server that receives the update DNS
request.
If no proxy is wanted, then it is enough to set the dyndns system. The default servers will be taken.
'--dyndns_server_url <url>': full URL relative to DynDNS server root.
'--dyndns_server_host <host>': Host name used in http update DNS request, if different from
dyndns server name, as when, e.g., ip_server_name is 'localhost:port' through an SLL bridge. Defaults to dyndns server name.
'--dyndns_system <NAME>': optional DYNDNS service type.
This option can be used multiple times - once for each DDNS server to update - followed by --alias, and other options corresponding to the
--dyndns_system entry. Per --dyndns_system entry options are username, password, alias, ip_server_name, ip_server_host, dyndns_server_name,
dyndns_server_url, dyndns_server_host, and proxy_server.
dyndns_system parameter should be one of the following:
-For dyndns.org DNS system: dyndns@dyndns.org, dual@dyndns.org OR statdns@dyndns.org OR custom@dyndns.org.
-For freedns.afraid.org DNS system: default@freedns.afraid.org
-For zoneedit.com: default@zoneedit.com
-For no-ip.com: default@no-ip.com
-For easydns.com: default@easydns.com
-For 3322.org: dyndns@3322.org
-For sitelutions.com: default@sitelutions.com
-For dnsomatic.com: default@dnsomatic.com
-For tunnelbroker.net: ipv6tb@he.net
-For tzo.com: default@tzo.com
-For dynsip.org: default@dynsip.org
-For dhis.org: default@dhis.org
-For zerigo.com: default@zerigo.com
-For two-dns.de: default@two-dns.de
-For www.dnsdynamic.org: default@dnsdynamic.org
-For dnspark.com: default@dnspark.com
-For regfish.de: ipv4@regfish.de
-For regfish.de: ipv6@regfish.de
-For www.ovh.com: default@ovh.com
-For joker.com: default@joker.com
-For dyndns.strato.com: default@strato.com
-For system-ns.com: default@system-ns.com
-For www.dtdns.com: default@dtdns.com
-For changeip.com: default@changeip.com
-For dnsexit.com: default@dnsexit.com
-For nsupdate.info: ipv4@nsupdate.info
-For nsupdate.info: ipv6@nsupdate.info
-For loopia.com: default@loopia.com
-For domains.google.com: default@domains.google.com (requires SSL bridge, like stunnel)
-For duckdns.org: default@duckdns.org
-For dy.fi: default@dy.fi
-For ddnss.de: default@ddnss.de
-For dynv6.com: ipv4@dynv6.com
-For dynv6.com: ipv6@dynv6.com
-For dynv6.com: dual@dynv6.com
-For selfhost.de: default@selfhost.de
-For generic DNS system: custom@http_svr_basic_auth
DEFAULT: dyndns@dyndns.org.
'--proxy_server <name[:port]>': the http proxy server name and port. Default is none.
'--update_period <#>': how often the IP is checked. The period is in [ms]. 30000..864000000. Default is about 10 min. Max is 10 days
'--update_period_sec <#>': how often the IP is checked. The period is in [sec]. 30..864000. Default is about 10 min. Max is 10 days
'--forced_update_period <#>': how often, in seconds, the IP is updated even if it is not changed. 30 sec..30 days, default, 30 days.
'--log_file <path/file>': log file path and name
'--background': runs in background. Output to syslog or to log file [if specified].
'--verbose <#>': set dbg level. 0 to 5
'--iterations <#>': set the number of DNS updates. Default is 0, which means infinity.
'--syslog': explicit set output to syslog. (e.g. /var/log/messages). Works on **NIX systems only.
'--change_persona <uid[:gid]>': After init changes user ID and group ID to the provided ones. This allows dropping
unneeded [root] privileges after startup. Works for **NIX only.
'--exec <command>': external command to exec after an IP update. Include the full path.
'--cache_dir <path>': cache directory name. (e.g. /tmp/ddns). Defaults to /tmp on **NIX systems.
'--wildcard': enable domain wildcarding for dyndns.org, 3322.org, or easydns.com.
'--retries <#>': network comm retry attempts. 0 to 100, default 0.
'--retry_interval <#>': network comm miliseconds retry interval. 0 to 30,000, default 1,000.
'--retry_pending': retry ip update even after network comm retries exhausted, default on.
'--retry_pending_interval <#>': network comm seconds update retry interval, after retries exhausted, 5 to 3600,
default 300.
'--lang_file <path/file>': [language file path, and file name]. defaults to either ../inadyn-mt/lang/en.lng,
or /etc/inadyn-mt/en.lng. No parameter option gives hard coded defaults
'--online_check_url <srv_name[:port] url>': server name, optional port, and url to reach to confirm online status.
'--status_interval <#>': seconds [30..864000] interval at which to check online status, default 600.
'--alert_retries <#>': network retries before audible network status alerts. [0..100], default 0.
'--status_offline_interval <#>': seconds [5..864000] interval at which to check online status, after offline detected,
default 15.
'--audible': audible network status alerts toggle. default off.
'--wave_file <file/path>': audible network status alerts wave file path, and file name. defaults to either
../inadyn-mt/extra/wav/alarm.wav, or etc/inadyn-mt/extra/wav/alarm.wav [wave loops: 0..100; -1 for
infinite] same as wave_loops below -- optional number of times per wave play call to repeat wave file
play, default 0.
'--wave_loops <#>': same as wave_file parameter optional parameter -- 0..100 or -1 for infinite number of times
per wave play call to repeat wave file play, default 0.
'--wave_buff <#>': wave file output buffer size control -- integer or float multiple of wave file bytes per sec.
[.25..10], default .25.
'--wave_gain <#>': gain (amplitude adjust) at which to play audible alert (beware clipping), integer or float.
[-10..10], default 10 (0db, no attenuation).
'--alert_interval <#>': time in miliseconds between consecutive audible network status alerts. [0..3600000],
default 0.
'--svr_rsp_success <custom DDNS server update success return code>': Optional for custom DDNS updates. A comma delimited quoted
string, e.g., "good, nochg", representing custom DDNS server successful update return values.
'--svr_rsp_other <custom DDNS server non-fatal return codes>': Optional for custom DDNS updates. A comma delimited quoted string
representing custom DDNS server non-fatal update failure return values, e.g., "dnserr,911,unknown error".
'--svr_ip_param <custom DDNS server ip name parameter> [user] [pass]': Optional for custom DDNS updates. DDNS url parameter for ip address,
e.g., myip.
'--svr_ip_in_rsp': Optional for custom DDNS updates. Flag that custom DDNS server returns your ip address on update success.
Defaults to false.
'--svr_auto_dual': Flag that server defaults to dual list (coupled) alias ip type. Defaults to false.
'--svr_auto_detect': Flag server auto detects ip. Defaults to false.
'--svr_add_cfg <full path, file name>': Additional servers file. Default search for servers_additional.cfg in ./extra, /etc, /etc/inadyn-mt,
/etc/inadyn-mt/extra. Contains additional preconfigured DDNS servers to be used as --dyndns_system option parameter in same
fashion as servers inadyn-mt supports natively. Should appear before any dyndns_system option in inadyn-mt.conf or command
line if not using inadyn-mt.conf.
'--if <network interface name>': Name of network interface to use for ip server, and DDNS server comm. Defaults to
system configured default.
'--addr_pref <pub | policy | home | careof | crypto | nocrypto | tmp | pubtmp>': ipv6 privacy extensions address
preference. Valid parameters are
'pub,' 'policy,' 'home,' 'careof,' 'crypto,' 'nocrypto,' 'tmp,'
'pubtmp.' Defaults to 'pub.' See rfc5014. Combining via logical OR not presently supported.
'--if_enum': Enumerate network interfaces.
'--improb': ????
SPECIAL NOTE: Cache file :
There are two cache files: inadyn_time.cache and inadyn_ip.cache. They store the time and IP address when an update last occurred. Under **NIX systems, the cache directory defaults to /tmp, under windows it defaults to the directory where inadyn-mt.exe was launched.
Example usage:
1. Update every minute, in console mode, for a dyndns.org system:
inadyn-mt --username test --password test --update_period 60000 --alias
test.homeip.net --alias my.second.domain
2. Update every minute, in demon mode (background task), with log file, of an dyndns.org address:
inadyn-mt --background -u test -p test --update_period 60000 --alias
inarcis.homeip.net --alias my.second.domain --log_file
inadyn_srv.log
3. Update freedns.afraid.org, every minute, in daemon mode, with configuration read from file.
Config file can be placed anywhere. In linux, default location: /etc/inadyn-mt.conf
Content of config file:
--update_period 60000
--alias test.homeip.net, hash_for_host1
--log_file /var/log/inadyn.log
--change_persona 10012 #to change to another user id after init.
Launching of inadyn-mt does not need any params. It looks for /etc/inadyn-mt.conf
4. Freedns update in console
inadyn-mt --update_period 60000 --alias test.homeip.net,hash_for_host1 -a
my.second.domain,hash2 --dyndns_system default@freedns.afraid.org
Configuration file
inadyn-mt can read the very same options which can be present in the
command line from a configuration file. This feature allows the user to
write the options only once, and avoids frequent retyping.
Default configuration file is /etc/inadyn.conf under Unix systems.
The location of the config file can be given to inadyn-mt via --input_file option
The format :
- '#' is a comment sign.
- the long options (those with '--' in front) can also be placed at the
beginning of the line without
'--' signs
Examples:
1.
#Some comment about inadyn-mt cfg file
--username test --password test --update_period 60000 --alias
test.homeip.net --alias my.second.domain
2.
--username test #user
--password test
update_period 60000 #some other param without '--'
alias test.homeip.net
LOG Output
inadyn-mt prints messages to the log when the ip is updated.
When the connection goes down it is possible that inadyn-mt displays some errors. But they should
be followed by 'OK' messages after the connection is up again.
Adjust log output verbosity with option, --debug (see above). Configure with option, --enable-debug, and use program configuration option, --debug, with option parameter 7 (i.e., --debug 7), for maximum log output.
IPv6
If you wish to update an IPv6 address, choose an ip server that is IPv6 capable -- that is, will
return your IPv6 address. And, you'll need a dynamic dns service that honors IPv6 addresses (you may need to use this
program's "custom" type dynamic dns server option -- see preceding documentation).
If your IPv6 ip server gives an IPv4 address, it may be because of ip server preference for IPv4. Choose an IPv6 ip server
that gives IPv6 addresses preference. Some Teredo clients may require precedence adjustment.
A few IPv6 --ip_server_name parameter options values known to work with inadyn-mt are ip6.me /, dhis.org /,
myip.dk /.
At this writing, recent inadyn-mt dual stack dynamic dns server support additions are zerigo.com, majimoto.net, and
dhis.org.
If updating an IPv6 tunnel broker, your selected ip server should not prefer IPv6 addresses (alternatively,
see alias option, and associated ip type parameters above). ip4.me, and default ip server, checkip.dyndns.org, at
this writing, are two ip servers that return IPv4 addresses.
Note that, ideally, ip server response should be relatively small. At least one, is upwards of 3.5 killobytes. This program
allocates 4.5 killobytes for the response. Any beyond that, and the program may not be able to parse the ip address
contained in the ip server response.
Special notes for freedns.afraid.org
This provider prefers to get as parameter a single hashed (base64 encoded) value.
As of inadyn-mt version 02.24.07-afraid_00_patch, aliases hashes can be automatically obtained via sha1 hashed 'username|password'.
To this end, use options username, and password.
Otherwise, the freedns.afraid.org DDNS web user interface provides a "Direct URL" link via which corresponding alias hash may be copied, and
pasted into inadyn-mt config as alias option hash paramter.
Example: Resulting address window url looks like this:
http://freedns.afraid.org/dynamic/update.php?YUGIUGSEIUFGOUIHEOIFEOIHJFEIO=
The user has to copy and paste the hash value after the '?' until the end of line.
The hash will be used as additional param in --alias option. (see typical usage above)
Support and Bug reports
http://sourceforge.net/p/inadyn-mt/discussion/751470/
Contact info:
Original Inadyn Web: www.inatech.eu
Inadyn Advanced Web: stevehorbachuk.com
inadyn-mt: bhoover@wecs.com
HISTORY
Ver. inadyn-mt 2.28.10 - October 2016
Changes:
- broken ipv4, dual stack ip fetch fixed
Ver. inadyn-mt 2.28.08 - October 2016
Changes:
- fetch freedns.afraid.org alias update tokens
- fix Windows 02.28.05 short options fail regress bug
- fixes changeip.com url type-o
- added option --if_enum - net if enum
- Fabian Raab's regfish.de server response code fixes
- ip lookup ip version precedence independence
- some refactoring
Ver. inadyn-mt 2.28.07 - August 2016
Changes:
- accomodate ipv4 only client stack, ipv6 socket create failure
- finally fix no ifaddrs.h compile failures
- added explicit DDNS ip auto detect option --svr_auto_detect
Ver. inadyn-mt 2.28.06 - May 2016
Changes:
- fixed missing --ip_server_name_global option
- added ipv4.dynv6.com, ipv6.dynv6.com, ddnss.de...
- added --svr_auto_dual option
- added servers_additional.cfg vars IP_ADDR4, IP_ADDR6
Ver. inadyn-mt 2.28.05 - April 2016
Changes:
- improved thread synchronization
- audio output allocation error fixed
- Linux mono audio output fixed
- some bind, address pref refactoring
- fixed short options
- --svr_ip_param sprintf dest, src overlap trunc fix
- fixes Solaris ifaddrs.h include conditional compile
- added XP401 CIA engram protection encoding, 8-2
Ver. inadyn-mt 2.28.04 - March 2016
Changes:
- ARM signed char bug fixed
- Windows config file relative path
- Windows --if option bugs fixed
- Windows registry defaults changed
Ver. inadyn-mt 2.24.49 - January 2016
Changes:
- debug output null pointer fixed
- back compat custom success ret fixed
- more flexible custom script like vars
- added config examples, examples.conf
Ver. inadyn-mt 2.24.48 - January 2016
Changes:
- Multiple services, in single program instance
- additional alias option parameters (see --alias)
- Windows --addr_pref, --if implementation
- default DDNS server --addrs_pref default
- Riot Nrrrd's Solaris build, queue_t collision fix patch
- adds Ville Skyttä's man page fixes patch
- adds DDNS, www.dy.fi
- improbability option manifests (improbably) as --improb
- more general, missing ifaddrs.h compile
- backward compatibly removed win/dos '\' escape require
Ver. inadyn-mt 2.24.47 - August 2015
Changes:
- avoid unnecessary config change related alias updates
- init to empty string(s) if not one, nor either of user, pass
- cache updates refactored for ip fetch fail
- robert-tx' MAC OS X semaphore excessive cpu use fix patch
- add src/cache_list.* to MS VC 6 project file
Ver. inadyn-mt 2.24.46 - June 2015
Changes:
- added network interface bind option --if
- added custom DDNS server option --svr_ip_param
- added custom DDNS server option --svr_rsp_other
- added custom DDNS server option --svr_rsp_success
- added custom DDNS server option --svr_ip_in_rsp
- added additional DDNS server option --svr_add_cfg
- added host name option, --dyndns_server_host
- added host name option, --ip_server_host
- some refactoring, doc, man file editing, updates
- language file duplicate entries input ignored
- fixed unicode file test routine file pointer reset
- /usr/local added to shared library search
- accepts ::1 as ip_server_name option host parameter
- recompile not required for debug_level above 5
- added some DDNS servers
- imaginary options now with enhanced lucidity xp
Ver. inadyn-mt 2.24.45 - March 2015
Changes:
- remote controlled sarcasm automation
- it puts on the lotion, and rubs it into...
- drools at the very mention of your name
- much weeping, and gnashing of teeth
Ver. inadyn-mt 2.24.44 - January 2015
Changes:
- fixes shared library, libao open failure
Ver. inadyn-mt 2.24.43 - August 2014
Changes:
- pre v.02.24.40 ip cache read incompatibility fixed
- decoupled ip cache reads, and struct update
- removed v.02.24.42 improbability related functionality
Ver. inadyn-mt 2.24.42 - February 2015 (probably)
Changes:
- added option --improbabilty
- added --improbabilty option related listener socket
- various --improbabilty option parameters
Ver. inadyn-mt 2.24.40 - June 2014
Changes:
- change config w/o cache deletion
- alias update logging includes associated DDNS server
- some code clean up, and formatting
- ip server request format supports vanity domains
- Windows missing _vsnprintf conditional compile updated
- Windows legacy, e.g. _vsnprintf compiler define _WIN_LEG
- added ipv6 privacy extensions option --addr_pref
- refactored to decouple sockets init, and connect
- fixed coupled alias type parse error
- includes previous patches (excluding multi-services)
- dns server port allocation error fixed
- Windows version shell execute bug fixed
- Windows version corrupt .exe fixed
- added DDNS server, two-dns.de
Ver. inadyn-mt 2.24.38 - January 2013
Changes:
- fatal configuration selector fault fixed
Ver. inadyn-mt 2.24.36 - March 2011
Changes:
- fix debug output out of bounds array index bug
- fail on partial "coupled" address update attempt
Ver. inadyn-mt 2.24.34 - March 2011
Changes:
- default debug output level
- some minor housekeeping
Ver. inadyn-mt 2.24.32 - March 2011
Changes:
- ip type, coupled, cache related update state bug fixed
Ver. inadyn-mt 2.24.30 - March 2011
Changes:
- *nix broken pipe signal trapped
Ver. inadyn-mt 2.24.28 - March 2011
Changes:
- added ip type, coupled, for comma delimited ip updates
- option status_interval default changed to 10 minutes
- changed default ip server
- changed default online status check url
Ver. inadyn-mt 2.24.26 - March 2011
Changes:
- ip type change, cache related update state bug fixed
- readme.html IPv6 section Teredo clients comment
- short version parameters hyphen/defaults parse bug fixed
- dual ip type max alias increase bug fixed
Ver. inadyn-mt 2.24.24 - March 2011
Changes:
- afraid.org update results detection improvements
- afraid.org dual ip type null hash bug fixed/refactored
- afraid.org update ip address parameter implemented
Ver. inadyn-mt 2.24.22 - February 2011
Changes:
- zerigo.com specific return codes, default ip server
Ver. inadyn-mt 2.24.20 - February 2011
Changes:
- uninitialized ip type flag fixed
Ver. inadyn-mt 2.24.14 - February 2011
Changes:
- reverted command loop design/branching logic restored
Ver. inadyn-mt 2.24.12 - February 2011
Changes:
- ip buffer initialization fixed
- increased max alias to accomodate type, dual
- added more ip type flow control/bullet proofing
- dual stack ip4 without ip6 updates allowed
- forced update triggered on program start-up
- allow no user name, password, as well as neither or both
- ip version related refactoring, improvements
- some documentation additions
- added alias option ip type parameters
- Windows version socket layer start/stop bug fixed
- one off utf file type check memory error fixed
Ver. inadyn-mt 2.24.10 - January 2011
Changes:
- abstracted invalid socket value check, Windows version
- restored invalid socket checks on object shutdown
- fixed ip parser fail mode (potential) memory leak
- man file updates
Ver. inadyn-mt 2.24.08 - January 2011
Changes:
- "custom" IPv4 updates to dual stack auto detecting servers
- zerigo.com dynamic dns server added
- fixed majimoto.com update request format
Ver. inadyn-mt 2.24.06 - January 2011
Changes:
- some minor "class" hierarchy balancing
Ver. inadyn-mt 2.24.04 - January 2011
Changes:
- IPv6 fallback to IPv4 failure corrected
- some more "class" hierarchy cleanup/improvment
- some default option parameter values changes
- man files, online help, readme.html updates, sync
Ver. inadyn-mt 2.24.02 - January 2011
Changes:
- added missing OOP superclass defines
- completed IPv6 architectural shift
- added dhis.org dynamic dns server
- added majimoto.net dynamic dns server
- added ip parameter to sitelutions.com updates
- changed status, and update interval defaults to more server friendly 10 minutes
- IPv6 dynamic dns updates
Ver. inadyn-mt 2.20.46 - January 2011
Changes:
- zoneedit.com config invalid user, pass detected
Ver. inadyn-mt 2.20.44 - December 2010
Changes:
- uninitialized timer structure fixed
- unicode user, pass, dynamic allocation
- main loop clean-up
Ver. inadyn-mt 2.20.42 - December 2010
Changes:
- minor forced update period improvements
- added SIG_USR1 to man file
- corrected man file, system_service reference
Ver. inadyn-mt 2.20.40 - December 2010
Changes:
- libao data structure future proofing
- potential libao, main init bug fixed
Ver. inadyn-mt 2.20.38 - November 2010
Changes:
- ALL aliases updated on forced update
Ver. inadyn-mt 2.20.36 - November 2010
Changes:
- faulty *nix audio library parameter init fixed
- several faulty type safe variable inits fixed
- fixed mutiple alias forced update
- some formatting, and minor code clean up
Ver. inadyn-mt 2.20.34 - November 2010
Changes:
- TIME_WAIT socket linger removed
- added v.02.20.32 server support additions to help output
- man file formatting
- corrections to present (readme.html) file
Ver. inadyn-mt 2.20.32 - November 2010
Changes:
- fixed zoneedit.com bad config false positive
- added troglobit.com's ipv6tb, dnsomatic, tzo, milkfish sip
- implemented tzo.com's update okay response detect
- implemented tzo.com's update config error response detect
- implemented milkfish sip update config error response detect
- some minor code clean up
Ver. inadyn-mt 2.20.28 - November 2010
Changes:
- added multiple Windows service instance support
- multiple aliases ip cache updated correctly
Ver. inadyn-mt 2.20.27 - November 2010
Changes:
- cvs updated supporting multiple accounts
Ver. inadyn-mt 2.20.22 - November 2010
Changes:
- online status check socket resource leak fixed
- status_offline_interval help output entry corrected
Ver. inadyn-mt 2.20.20 - November 2010
Changes:
- successful updates repeated with pendings bug fixed
- unchanged ip forced update succeeds on first alias update
- no configure/restart on multi alias single config fail
Ver. inadyn-mt 2.20.18 - November 2010
Changes:
- pending update ip change not detected fixed
Ver. inadyn-mt 2.20.16 - November 2010
Changes:
- stray ip cache file update remove
Ver. inadyn-mt 2.20.14 - November 2010
Changes:
- freedns.org client config fail false positive fixed
Ver. inadyn-mt 2.20.12 - November 2010
Changes:
- multi alias related forced update period reset bug fixed
Ver. inadyn-mt 2.20.10 - November 2010
Changes:
- initial update bounded forced update if pendings off
- fixed multiple alias update break on first alias update fail
- ip update files cache updated on all alias success only
- no command loop forced update break for bad config
Ver. inadyn-mt 2.20.08 - November 2010
Changes:
- forced update failure fallback to update period retry
- --retry_pending_interval changed to seconds, default 900
- man, readme.html, help screen updates, corrections
Ver. inadyn-mt 2.20.06 - November 2010
Changes:
- updates, forced updates, pending updates coordinated
- unsigned integer overflow checked
- readme.html wrong version changes log entry fixed
Ver. inadyn-mt 2.20.04 - November 2010
Changes:
- --disable-threads related compiler error fixed
- update period cache file ignored bug fixed
Ver. inadyn-mt 2.20.02 - October 2010
Changes:
- update failure config implicit inverted to explicit
- forced_update_period checked inside update period
- forced_update_period input parameter range check
- simplified RAS trigger to only signaling update need
- fixed freedns.afraid.org fail on user id params bug
- added support for Windows processed console output
- repeated config error log priority treated lower
Ver. inadyn-mt 2.18.50 - October 2010
Changes:
- improperly initialized timer fixed
Ver. inadyn-mt 2.18.48 - October 2010
Changes:
- several pending update logic errors fixed
Ver. inadyn-mt 2.18.46 - October 2010
Changes:
- parameter retry_interval set to net_retries fixed
- more specific ip update debug output
- added --retry_pending toggle parameter
- added --retry_pending_interval parameter
- improved --forced_update_period timing accuracy
- timer loop command response time adjust bug fixed
Ver. inadyn-mt 2.18.42 - October 2010
Changes:
- too many net retries before fail bug fixed
Ver. inadyn-mt 2.18.40 - October 2010
Changes:
- ver. 02.18.38 --net_retries iterations fail/config response bug fixed
- yet more update loop fail safety
Ver. inadyn-mt 2.18.38 - October 2010
Changes:
- added support for quoted option parameters, and spaces in file/directory paths
- added online_check_url parameter, decoupling ip server from online status checks url
- improved audible alert exit condition responsiveness
- fixed Windows version iterations over counting bug
- added more specific dynamic dns server error return code client response
Ver. inadyn-mt 2.18.36 - July 2010
Changes:
- socket handle value of 0, error detected as NULL, fixed
- a couple thread stack data sharing moved to global
- wave file output, --wave_gain parameter changed to float
- option file parse error aborts config file search
Ver. inadyn-mt 2.18.34 - July 2010
Changes:
- corrected previous changelog entry, Win32s reference
- some wave_util.c refactoring
- some readme.html formatting
Ver. inadyn-mt 2.18.32 - July 2010
Changes:
- 32 bit Windows pre WAVE_FORMAT_EXTENSIBLE wave output
- improved Windows wave output error checking
- updated debian changelog
Ver. inadyn-mt 2.18.30 - June 2010
Changes:
- threads_wrapper_init undefined reference fixed
Ver. inadyn-mt 2.18.28 - June 2010
Changes:
- improved mutex create in threads_wrapper.c
- automake cleaned
Ver. inadyn-mt 2.18.26 - June 2010
Changes:
- inadyn man files updated to inadyn-mt
- *nix inadyn-mt.conf moved to /etc
- added debian dpkg-buildpackage directory, et al
- moved *nix meta files to /usr/share
Ver. inadyn-mt 2.18.24 - May 2010
Changes:
- removed bird-calls-32.wav from NOTICE license file
Ver. inadyn-mt 2.18.22 - May 2010
Changes:
- *nix meta files search root /etc, /usr/share, /usr/local/etc
- too many params compiler warning fixed
Ver. inadyn-mt 2.18.20 - May 2010
Changes:
- update server fatal error shutdown more readable debug
- downstream Fedora patch, lang file default, and install path
- autoconf reflects lang file, path patch
- empty --lang_file parameter option gives hard coded output strings defaults
Ver. inadyn-mt 2.18.18 - May 2010
Changes:
- broken update server fatal error shutdown fixed
Ver. inadyn-mt 2.18.16 - May 2010
Changes:
- downstream Fedora patch, gethostbyname size_t crash fixed
- improved ip update loop reliability
- downstream Fedora patch, src/Makefile.am improvements
Ver. inadyn-mt 2.18.14 - Feb. 2010
Changes:
- wave_file parameter options documentation corrections to present readme.html
- *nix manual files updated for parameter, wave_buff
- some comments removed form ./src/tcp.c
Ver. inadyn-mt 2.18.12 - Feb. 2010
Changes:
- --wave_buff [.25..10], option added for controlling wave file output buffer size
- some configure.ac variable assignments syntax changes
Ver. inadyn-mt 2.18.10 - Feb. 2010
Changes:
- Restored distribution archive, FreeBSD version binary
- --cache_dir parameter option pointer check
- stray dyndns.h version constant, linefeed removed
Ver. inadyn-mt 2.18.08 - Feb. 2010
Changes:
- logfile pointer check error fixed
- FreeBSD version source compile required
Ver. inadyn-mt 2.18.06 - Dec. 2009
Changes:
- no libao compile errors fixed
Ver. inadyn-mt 2.18.04 - Dec. 2009
Changes:
- wave output attenuation range check
Ver. inadyn-mt 2.18.02 - Dec. 2009
Changes:
- removed Makefile.am 32 bit wave files install
Ver. inadyn-mt 2.17.14 - Dec. 2009
Changes:
- shutdown/destroy global http client in test_connect fixed
Ver. inadyn-mt 2.17.12-beta - Dec 2009
Changes:
- wave_gain parameter default to 10
- wave_gain parameter range check
Ver. inadyn-mt 2.17.10-beta - Dec 2009
Changes:
- remaining legacy string storage changed to heap
Ver. inadyn-mt 2.17.09-beta - Dec 2009
Changes:
- async connect test initialization bug fixed
- sans ip_server_name parameter default ip server bug fixed
Ver. inadyn-mt 2.17.08-beta - Dec 2009
Changes:
- ip, time cache directory parameter handler refactored, error checked
- wave_gain parameter documentation updated
Ver. inadyn-mt 2.17.07-beta - Nov 2009
Changes:
- added wave format 32 bit ieee float support
- gain attenuation extended for 8, 16, 24 bit depths
- changed wave_gain option parameter gain parameter range to [-10..10]
- gain mapped to [0..120] decibels
- improved wave file parsing code
- cache dir, log file updated to unicode
- removed 32 bit ./extra/wav wave files
Ver. inadyn-mt 2.17.06-beta - Nov 2009
Changes:
- source file, wave_util.c amplitude attenuation
- changed option parameter, wave_volume to wave_gain
Ver. inadyn-mt 2.17.05-beta - Nov 2009
Changes:
- wave audio output --wave_gain option parameter added
- wave structure destroy null ptr check
- wave format error debug output format fixed
- added inadyn-mt/extra/wav 32 bit wav files
- updated wav files copyright NOTICE file
Ver. inadyn-mt 2.17.03-beta - Nov 2009
Changes:
- zero wait mutex release ownership test
- null terminated wave error table
- modularized exit testing sleep timer routine
Ver. inadyn-mt 2.17.02-beta - Oct 2009
Changes:
- libao dynamic loading
- --disable-dynamic configure option
- makefile-deprecated NO_DYN_LOAD preproc option
- makefile-deprecated NO_LIBDL preproc option
- makefile-deprecated GETHOSTBYNAME_PARAMS preproc option
- makefile-deprecated non-reentrant ASYNC_LOOKUP preproc option
- archive *nix executables audible support as Windows version
Ver. inadyn-mt 2.16.38-beta - Oct 2009
Changes:
- linux version libao audible alerts requires recompile
- no gethostbyname_r gethostname.c compile exclusion
- threads disabled gethostname.c compile exclusion
Ver. inadyn-mt 2.16.36-beta - Oct 2009
Changes:
- configure script syntax error fixed
- config.h source includes
- makefile-deprecated config.h preprocessor option
- Windows config.h preprocessor option
Ver. inadyn-mt 2.16.34-beta - Oct 2009
Changes:
- gethostbyname_r detection
- reentrant, async dns lookup
- non-reentrant asynchronous dns lookup mutex protection
- autotools macros clean up
- makefile-deprecated preprocessor lookup options
- *nix automake compile sound, network status checks default on
- option parameter, --audible-off changed to --audible toggle, defaults to off
Ver. inadyn-mt 2.16.32-beta - Oct 2009
Changes:
- debug level global for os.c
Ver. inadyn-mt 2.16.31-beta - Oct 2009
Changes:
- Windows, pthreads threads wrapper
Ver. inadyn-mt 2.16.29-beta - Oct 2009
Changes:
- changed tcp.c mutexes' storage class
- null ptr assignment compiler error fixed
Ver. inadyn-mt 2.16.27-beta - Oct 2009
Changes:
- improved connection synchronization
Ver. inadyn-mt 2.16.25-beta - Oct 2009
Changes:
- improved connection testing synchronization
Ver. inadyn-mt 2.16.23-beta - Oct 2009
Changes:
- src/Makefile.am lib path to include /usr/lib
- limit number of threads in async connect test
Ver. inadyn-mt 2.16.21-beta - Sept 2009
Changes:
- status_offline_interval documentation, man file correction
Ver. inadyn-mt 2.16.19-beta - Sept 2009
Changes:
- socket create fail debug output level quiet
- configure.ac version update
Ver. inadyn-mt 2.16.17-beta - Sept 2009
Changes:
- async connect test not based solely on successful socket create
Ver. inadyn-mt 2.16.15-beta - Sept 2009
Changes:
- non-blocking network socket connect
- consistent windows socket layer shutdown per startup
- makefile-deprecated preprocessor option, USE_THREADS changed to DISABLE_THREADS
- configure --enable-threads option when --enable-sound not used
- fixed possible allocation error in Windows version cross_platform_cwd
- removed unused mythreads.c, mythreads.h from archive
- more reliable Windows version connection test
Ver. inadyn-mt 2.16.13-beta - Sept 2009
Changes:
- small man file edit
- sound entry/exit debug level downgraded
- unneccessary wave file read sign conversion removed
- --wave_loops option added
- wave loops optional option parameter added to --wave_file option parameter
Ver. inadyn-mt 2.16.12-beta - Sept 2009
Changes:
- retro fix for 8 bit sample sized wave files format
Ver. inadyn-mt 2.16.09-beta - Sept 2009
Changes:
- ./extra/wav/bird-calls.wav, and corresponding copyright notice included
- waveout.c accomodation for 8 bit sample sized wave files format
- some refactoring
Ver. inadyn-mt 2.16.07-beta - Sept 2009
Changes:
- updated man file
Ver. inadyn-mt 2.16.05-beta - Sept 2009
Changes:
- waveout.c refactor
- destroy wave data structure call for Linux/FreeBSD play_wave
- init dyndns.c main data structure defaults only once
Ver. inadyn-mt 2.16.03-beta - Sept 2009
Changes:
- control flow so as not to overwrite --wave_file option with default
Ver. inadyn-mt 2.16.02-beta - Sept 2009
Changes:
- configure, make install, dist improvements
Ver. inadyn-mt 2.16.01-beta - Sept 2009
Changes:
- Audible alerts if offline -- *nix/BSD requires recompile with ./configure --enable-sound; libao, and libao dev installed.
- Audible alerts options -- run: inadyn-mt --help
- Deprecated make (copy from makefile-deprecated), for autoconf, make
- Added configure options: --disable-threads to disable concurrent online status checks;
--enable-sound; --enable-debug
- Added to old makefile (copy from makefile-deprecated), preprocessor options, USE_SNDFILE, USE_THREADS
Ver. inadyn-mt 2.12.28 - Sept 2009
Changes:
- corrected release notes/changes log error
Ver. inadyn-mt 2.12.26 - Sept 2009
Changes:
- fixed possible string truncation in cross_platform_cwd
- Windows version: fixed possible invalid ptr in dyn_dns_update_ip (no invalid ptr)
- added FreeBSD binary in bin/freebsd
Ver. inadyn-mt 2.12.24 - July 2008
Changes:
- program abort flag check fixed
- GNU GPL related issues addressed
- calloc safe_mem wrap
Ver. inadyn-mt 2.12.22 - July 2008
Changes:
- Windows log file pointer check
- added sitelutions.com dynamic dns server
- simplified Windows service installation default registry parameters
- memory alloc error abort wrapper potential stack overflow
because of error log output memory alloc, changed to printf string literal output
- added to program root directory, gpl.txt, GNU GPL license text file
Ver. inadyn-mt 2.12.20 - June 2008
Changes:
- default configuration backward compatible with inadyn
- usage help restored
Ver. inadyn-mt 2.12.18 - June 2008
Changes:
- Windows version latent ras/main thread synchronization details completed
- forced update period adjusted accordingly in event of USR1
Ver. inadyn-mt 2.12.16 - June 2008
Changes:
- fixed obscure Windows RAS thread orphaning potential
(iterations condition true) in main program loop
- obscure Windows RAS thread, and main loop race condition fixed
- main loop iterations condition rendered so increment,
and related exit, on success only, as in original inadyn
Ver. inadyn-mt 2.12.06 - May 2008
Changes:
- Windows service shutdown on client initiated exit
- RAS thread initialization to separate function
- Windows ip update retries exited on network down
- added ip update trigger, via SIGUSR1
- Windows Unicode ip cache file dir
Ver. inadyn-mt 2.12.04 - May 2008
Changes:
- removed old MSVC project files, replaced
with fixed new inadyn-mt version project files
Ver. inadyn-mt 2.12.02 - May 2008
Changes:
- executable, and related output changed from inadyn to
inadyn-mt
- updated inadyn-mt man files' original inadyn homepage
to http://www.inatech.eu/inadyn/
- changed default config file from /etc/inadyn.conf to
/etc/inadyn-mt/inadyn-mt.conf
Ver. inadyn-mt 2.12.01 - May 2008
Changes:
- safer memory, with program abort on allocation error
- couple unchecked pointers, checked
- language strings file default override parameter, --lang_file
- fixed program version parameter output
Ver. inadyn-mt 2.11.98 - March, April 2008
Changes:
- added network communication --retries parameter, and
--retry_interval parameter
- centralized dns update routine relative to main loop,
and RAS events trapping
- linux, unix DEBUG startup output conditional compile added
- Windows QUIET debug startup output conditional compile added
Ver. inadyn-mt 2.11.96 - March 2008
Changes:
- cwd/root path search overshoot fixed
- default Unix locale/lang file fixed
- some minor refactoring
Ver. inadyn-mt 2.11.94 - Feb 2008
Changes:
- wrong version number reported fixed.
- minor control flow logic error fixed.
Ver. inadyn-mt 2.11.93 - Feb 2008
Changes:
- bad program root directory fault fixed.
Ver. inadyn-mt 2.11.92 - Feb 2008
Changes:
- linux lang file search seg fault fixed.
- lang strings hash table key computation fixed.
- lang, path routines factored to modules.
Ver. inadyn-mt 2.11.89 - Feb 2008
New features:
- tighter memory management, buffer checking.
- Win Service language strings.
Ver. inadyn-mt 2.11.88 - Feb 2008
New features:
- indexed language strings.
Ver. inadyn-mt 2.11.87 - Feb 2008
New features:
- language strings files support.
Ver. inadyn-mt 2.11.80 - Jan 2008
New features:
- Unicode.
Ver. inadyn-mt 2.01.02 - Dec 2007
New features:
- registry string value for separate service server log file.
Ver. inadyn-mt 2.01.00 - Nov/Dec 2007
New features:
- options file commands/parameters inserted "in place" in command line.
- built in Windows service management.
- Windows RAS events (modem connection) trapping.
- debug level command option.
Ver. 1.96 - 09 September 2005
New features:
- zoneedit.com supported.
- no-ip.com supported.
- support for generic DNS services that support HTTP updates
Fixes:
- immediate exit in case of --iterations=1 (not after a sleep period)
- added missing option for specifying the path in the DNS server
Ver. 1.95 - 20 July 2005
New features:
- UNIX signals supported - inadyn will
stop gracefully in case of ALRM, HUP, INT, ...
- new dynamic dns service supported -
www.zoneedit.com - Not tested!
- makefile adjusted for Solaris -
compilable under Solaris.
- support for generic DYNDNS service
that supports update via HTTP with basic authentication
- not yet fully
complete. Not known where might be applicable.
Ver. 1.90 - 24 February 2005
New features/enhancements:
- new option '--change_persona uid:gid'
- inadyn can switch the user after launch. Typical feature for daemons.
- addition to '--ip_server_name'
feature, now it has another parameter: the URL to read from the
given server name.
- reduced some error
messages
- manual pages updated. (thanks to
Shaul Karl)
Bugfixes:
- typo fixed (--ip_server_name option)
Ver. 1.86 - 30 January 2005
Updated UNIX man pages for inadyn. Even a page for
inadyn.conf! (thanks to Shaul Karl)
Enhancement: - Inadyn doesn't print anything (e.g.
ver. number) anymore when goes to background.
Enhancement: - new config file parser. Accepts
ESCAPE character: '\'.
Bugfix: - Corrected check of the return code from
socket() call.
Ver. 1.85 - 10 January 2005
Config file related enhancements:
- a default location for the config
file in case of no arguments for inadyn
- a more **NIX like format for the
config file. Thanks to Jerome Benoit.
Small bugfix:
- in case when 'iterations' option is
specified as being '1', inadyn exits immediately after first update,
not after the sleep period as before.
Ver. 1.81 - 23 November 2004
No new features. Just a better integration with
Linux OS:
Reviewed usage of syslog and fork to background in 'daemon mode',
thanks to Shaul Karl.
Ver. 1.80 - 16 October 2004
New feature:
--syslog: output to syslog for
Linux (should work for all **nix systems)
New feature:
run in background for Linux
(should work for all **nix systems)
Minor compile warnings removed.
Ver. 1.70 - 5 July 2004
Bugfix:
custom dns from dyndns option was
not accepted by the cmd line parser. "Copy-paste" error :-( !
New option: (not tested. It was a debug option now
made accessible via cmd line. It should work)
--iterations. Now one can run
inadyn with only one iteration.
Ver. 1.60 - 5 June 2004
On users' request the inadyn can read the options
from file. Ver. 1.5 - 1 May 2004
- Support for dynamic DNS service offered by freedns.afraid.org
- support for http proxy
- GPL Copyright notice added.
Ver. 1.4 - 1 March 2004
- Support for custom DNS and static DNS services offered by dyndns.org.
- support for forced IP update (so the account will not expire even
though the IP never
changes)
Ver. 1.35 - 04 february, 2004
- Bugfixes: - It supports AGAIN the multiple aliases for the same IP
address
- Under Windows the OS signal handler is installed only once no matter
if IP update errors
occur
Ver. 1.34 - 6 Novemeber 2003
- first port *NIX (Linux)
- Linux version running as console app
- bugfixes
Ver. 1.2 - June 2003
- port to embedded system pSOS. Runs on the Remote management card.
Note:
No DNS support under pSOS -> input params are the IP addresses of
the servers used (DynDNS,
CGI)
Ver. 1.0 - 20 May 2003 - first stable version.
main features ready:
- DYNDNS client
- free
- works fine behind a NAT router
- runs fine as a service
- has a nice log file
- it is MINE ;)
Future plans:
- port to some other DNS services.