UPTIME CLIENT 5 BETA HISTORY 5.0b5 - Changed SI_MACHINE in stats-sol.c to SI_PLATFORM, thanks to Robert-Jan Oosterloo. This gives more meaningful output like "SUNW,Ultra-5_10" instead of just "sun4u", which just describes all Suns since the Ultra 1. - New feature: re-read config file when receiving a 'kill -HUP' signal. Added additional checking for a valid timer interval when re-reading the config. - New: An invalid timer interval in the config is no longer considered a fatal error. Instead, a default value of 300s is used (or the previous interval if the config file was re-read due to signal HUP). - Fixed problem transmitting data with Solaris. The client would compile and run normally but no data would ever be sent and no transmission attempts were recorded in syslog. Thanks to Paul Theodoropoulos for reporting this and was instrumental in helping me track it down. * If you believe this problem is happening on your system email me so I can adjust the code to apply the same fix for your OS. (upclient.c: use pause() not sleep(cfg_interval).) - Cleaned up some syslog reporting. When the idle time and/or load are not sent due to the configuration set in upclient.conf, they are no longer logged as being sent instead of recording -1 or some other bogus value. - More informative error message when opening UDP a socket fails. - Now installs config file for Solaris/SunOS with defaults set to not transmit load and idle time (same as IRIX). 5.0b4 - No new features since 5.0b2. - Test-build on several machines and cleaned up some dumb mistakes in the code which prevented building. Thanks to SourceForge who provides a compile-farm with eight different machines. Processor OS Build Command Build Result ----------------- ---------------------- ------------- ----------------- [PPC Dual-G4] Mac OS X 10.2 & 10.2.1 make darwin ok (Darwin v6 & 6.1) [PPC G4] Mac OS X 10.1 SERVER make darwin ok but with (Darwin 5.5) compiler warnings [PPC 601] MkLinux DR3 (2.033) make linux ok [x86] Linux 2.4 (Debian 2.2) make linux ok [x86] Linux 2.4 (Redhat 7.3) make linux ok [x86] FreeBSD (4.7-RC) make bsd ok [PPC RS/6000] Linux 2.4 (Debian 3.0) make linux ok [Sparc R220] Sun Solaris (8) make solaris ok [CerfCube SA1110] Linux 2.4 (Debian 3.0) make linux ok [Alpha] Linux 2.4 (Debian 3.0) make linux fails, probably compiler flags ----------------- ---------------------- ------------- ----------------- To add your machine to this list email <carstenklapp@users.sf.net>. Send me your patch if you manage to compile on any of the above non-working systems or any unsupported system. Successful builds of 5.0b1/5.0b2 were previously reported on: o FreeBSD 4.6.2 o IRIX 6.5.16 Internal changes: - Fixed 'static' compiler errors on FreeBSD (problem introduced in 5.0b3). - Fixed typo in stats-sol.c which prevented building on Solaris (broken since 5.0b2). - Fix build problem in uplog.c & uplog.h for FreeBSD, include <stdio.h> (broken for some BSD systems in 5.0b2). - Tinkered with documentation and man file. - Some Makefile fixes and improvements. 5.0b3 * Updated Makefile's config-file path for WinNT and INSTALL instructions for WinNT. * Reorganise Makefile to allow for installation of custom upclient.conf depending on OS (So far only SendIdleTime = 0 and SendLoadAvg = 0 for IRIX, there will probably need to be others added). * Added rcs strings for what(1) identification. * More descriptive error reporting and use syslog on Irix/Solaris. * Addressed build problem on Irix 6.5.16 `EX_OSFILE' undeclared. (#include <sysexits.h>). * Addressed build problem on FreeBSD `pid' undeclared. (move declarations to top of main). The fix is unconfirmed but this looks like the same problem as the Linux build has (see below). * Addressed build problem on Linux `pid' undeclared. (move declarations to top of main), released a patch to fix 5.0b2. * Minor corrections to copyright notices. 5.0b2 * Updated INSTALL doc. * Added uninstall target to Makefile. * Provide startup status messages to stderr when manually started. * Rudimentary command-line arg parsing added (-h for usage and -V for version). * Morebetter syslog reporting (notably BSD & Darwin). - daemon PID shows in syslog (use LOG_PID for all syslog() calls) * syslog(3) wrapper/emulation function for WinNT (untested). * Internal changes and improvements: - base64_encode() now calculated before connecting to server to slightly. decrease http connection duration (protocol 4.2). - base64_encode() result cached (static), so it is only calculated once per execution instead of every time a connection is made (protocol 4.2). - Removed trailing newline from end of transmitted data (protocol 5). - Use sigsuspend(2) with itimer instead of obsolete pause(3) function. - #ifdef changes for simpler Makefile (and to encourage portability). - Debugging messages now use syslog (to allow debugging when fork()ed). - all exit() calls now use <sysexits.h> constants instead of arbitrary integers. - use "compat/sysexits.h" for WinNT & BeOS (is this still required for Be?). - More functionality "available" when compiled in paranoid+debug mode. - Source code reformatting. 5.0b1 * Updated to use new protocol 5 via UDP. * Added Darwin 6+ / OS X 10.2 compatibility patch from fink. * Added man file and Protocol 5 doc. * Client now sends feedback to stderr when successfully started in background. * Some enhancement to syslog messages when starting and stopping. * Executable now installs into $prefix/sbin by default instead of $prefix/bin. * New Makefile with 'install' target (goal) - Makefile automatically uses pid & config file paths during build. - Makefile automatically inserts server name and pid file path into config file. - Makefile inserts stuff into the man file to reflect local build settings. * Internal changes and improvements: - Minor code cleanup. - Added new strings for UDP errors, so all error code numbers have changed. - Started migrating exit() codes to use <sysexits.h> constants, added "compat/sysexits.h" for those who have none. - More daemon-like behaviour (I hope). o program now cleans up pidfile when quitting. o now detaches from terminal (request new session job control when forking with setsid()). o now ignores SIGINT and SIGHUP. This should make it easier to add other code to check whether another instance of the program is already running and then take appropriate action (i.e. die, without clobbering pidfile). $Id: HISTORY-BETA,v 1.13 2002/10/10 02:36:28 carstenklapp Exp $ -- There are two major products that come out of Berkeley: LSD and BSD UNIX. We don't believe this to be a coincidence.