Changes in 1.0-beta2:
* cfg.cpp:
- [MISC] Make it an error if certain command line arguments are given
more than once, to prevent surprising results.
* log.cpp:
- [FIX] Fix a small logical error in makeMessageAndLog() and ensure that
errno isn't changed by this method in any way.
* main.cpp:
- [FIX] Signals revisited: protect syslog() inside the crash handler by
blocking all signals.
- [FIX] Fix and cleanup a few error and log messages.
- [MISC] Set up the server before dropping privileges, to allow the user
to make XSI listen on a privileged port.
* linux.cpp:
- [FIX] Properly initialize private sensor data; should be a no-op, but
better safe than sorry. Any potential issue would be easier to
debug now.
* various:
- [MISC] Clean up the startup procedure of XMLSysInfo. No more chit-chat,
and do not spam syslog if the startup is going to fail anyways.
- [FIX] Minor #include fixes; no-op on all supported platforms.
- [MISC] Reorganize and improve platform/compiler compatibility related
code. (Affects libxsicompat mostly.) Sync with Proxsi where
applicable.
* Documentation:
- [MISC] Some tweaks and cleanups.
Changes in 1.0-beta1:
* fuzzer.{cpp,h}:
- [FIX] Unbreak the Fuzzer after the beta0 changes by ensuring that
XSICommon methods do nothing.
* netbsd.cpp:
- [FIX] Initialize last_cp_time[] properly to prevent bogus output
in , and before the first stats
update.
* main.cpp:
- [FIX] Fix informational [config] message in debug mode.
* Documentation:
- [MISC] various small tweaks
Changes in 1.0-beta0:
! XMLSysInfo IS NOW "BETA", meaning that only important bug fixes may be
done to the XML Schema from now on. No new features that affect the
output will be added. Development concentrates on bug fixes and cleanups
in preparation for the 1.0 release. !
! There were incompatible changes to the XML Schema in this release. !
! The versioning scheme of both the XML Schema and XMLSysInfo itself
changed. !
! This release adds a new command line parameter `-l', which allows logging
via syslog. !
* XML Schema / xmlsysinfo.cpp / system.{cpp,h} / storage.{cpp,h}:
- [MISC] Revert an earlier change and make the element optional
again. This will make it easier in the future to have XSI ports
on more exotic platforms, and help dummy-os.cpp to produce
valid output.
- [MISC] Make the element optional. However, it can be
expected to exist on all supported platforms, which all have the
element. This allows dummy-os.cpp to produce
valid output.
- [MISC] Also make , and elements
optional. This allows dummy-os.cpp to produce output that does
not contain false information.
- [MISC] Rename to for consistency.
- [MISC] Reorganize the element and its children, changing and
adding elements to contains (per second) values
as well.
* XML Schema / xmlsysinfo.cpp / sensor.cpp:
- [MISC] Rename all *_pct elements to *_percent, and call a percentage-
sensor's unit "percent". Pct is no valid abbreviation and will
not be used in an "externally visible" fashion.
* XML Schema / xmlsysinfo.h:
- [MISC] Bump schema version to 1.0-beta (new versioning scheme!)
* XML Schema / timekeeper.cpp:
- [MISC] Change the element to be of the type
xs:decimal and include milliseconds in the output.
* XML Schema / xmlsysinfo.cpp:
- [MISC] Inside the element, nest the children in and
elements for consistency.
- [MISC] Inside the element, nest the children in and
elements for consistency.
* XML Schema:
- [FIX] Change the type of the element from xs:decimal to
xs:integer.
* - [MISC] Change the XML Schema's versioning scheme, so that backwards
compatible, minor version bumps are possible. This means:
Clients supporting a higher minor version always support lower
version output, and the other way round works if clients can
ignore unknown (to them) elements (or just dump output.)
Different major version numbers stay incompatible to each
other.
* main.cpp:
- [FIX] Reorganize and comment code, fix a memory leak when using
compression, and fix a few other (minor) buglets.
Improve error and warning messages.
- [ADD] Add handler for fatal signals, which logs crashes to syslog
and/or stderr if logging or debug mode are enabled,
respectively.
- [ADD] Add XSI runtime and resource usage to the internal stats
printed upon receiving SIGUSR1.
* util.cpp:
- [MISC] Add error checks for snprintf() return values, in order to be
able to detect string truncation or format/encoding errors.
* storage.{cpp,h} / xmlsysinfo.cpp:
- [MISC] Make XSIStorage more efficient by taking care of the
updateIOTotals() method. Now it is called only once per query
and updates I/O totals only when necessary.
* linux.cpp / netbsd.cpp:
- [FIX] Filesystem space output was often wrong (duh!) due to using the
wrong member of struct statvfs. Use f_frsize instead of f_bsize,
unless f_frsize is 0.
- [MISC] Do not include tmpfs filesystems in the output, just like on
Solaris.
* freebsd.cpp / netbsd.cpp / openbsd.cpp / solaris.cpp:
- [ADD] Add support for transfers per second output on disk devices.
* linux.cpp
- [FIX] Add support for transfers per second output on disk devices,
and remove output of I/O bytes per second output. The output
is wrong for all devices that do not have a sector size of
512 bytes, and we can't find out the proper size without root
privileges.
* solaris.cpp:
- [FIX] Explicitly ignore ZFS filesystems in the output. ZFS is so
different that it cannot be squeezed into a data layout that is
suited for "traditional" filesystems. This change prevents
bogus output in the element.
* - [MISC] Add precaution, as on Linux and NetBSD, and use f_bsize if the
f_frsize member of struct statvfs64 is 0.
* configure.in:
- [MISC] Find pfvar.h in net/pf/pfvar.h as well, as seen on DragonFly.
- [MISC] Use new versioning scheme, in sync with the XML Schema.
* libxsicompat:
- [MISC] Remove err*() and warn*() compatibility functions, they are no
longer required.
- [MISC] Remove daemon(3) function and use our own instead.
* various:
- [ADD] New feature: Logging to syslog (on demand,) with the new
command line parameter `-l'.
- [MISC] Switch to using the new XSI_Log class.
- [MISC] Clean up constructors in platform-dependent code.
- [MISC] Handle packet filter statistics in the XSICommon class, instead
of the platform-dependent code.
- [MISC] Set certain uname() information in the XSICommon class (uname()
is a POSIX standard function.)
- [FIX] Fix arithmetic to calculate the size of memory, swap space and
filesystem space by adding explicit casts to 64-bit integers as
appropriate.
Changes in 0.98.30:
! The XML Namespace definitions have changed. !
! This release adds a new build configuration `--enable-fuzzer' (disabled
by default.) !
* XML Schema / xmlsysinfo.{cpp,h}:
- [MISC] Adjust the XML Schema/output namespace and location to the new
project location at SourceForge. This is an incompatible change
to the XML Schema.
* various:
- [ADD] A fuzzer has been added to XSI, which can be enabled at build
time. With the --enable-fuzzer configuration setting, the
resulting binary will output nasty random junk instead of
system information. Useful for debugging and testing both XSI
itself and front-ends / clients.
- [FIX] Complete, and - more importantly - correct string sanitization
on all string data in elements and attributes. While there,
ensure that string sanitization occurs only once. Found with
the fuzzer.
- [FIX] Miscellaneous mini-fixes of no real consequence, such as fixed
error messages, and adding means to select a random enumeration
value. (Used by the fuzzer.)
- [MISC] Eliminate all single-precision floats and replace them with
doubles, for added consistency and maintainability at almost
no cost.
* main.cpp:
- [FIX] Fix a serious reliability issue by ignoring SIGPIPE.
- [FIX] Squelch a harmless warning seen with gcc on NetBSD 4.
* sensor.cpp:
- [FIX] Fix a double-free() crash in code that handles the
element. Found with the fuzzer.
- [FIX] Fix a buglet introduced with the re-write, that caused silly
output of the element. Found with the fuzzer.
- [FIX] When setting the value age with a struct timeval, allow zero
to be returned as the result. Also return zero on nonsensical
input. Found with the fuzzer.
* xmlsysinfo.cpp:
- [FIX] Sync behavior with what is intended and documented: Output
the element only if one or more _valid_ sensors
are present and have its element show the number of
_valid_ sensors. Found with the fuzzer.
Changes in 0.98.29:
! Some possible values of restricted tokens changed in the XML Schema. !
* XML Schema / various:
- [MISC] Major cleanup and revamp of the sensors related code, making it
more flexible and easier to use internally (sensor.cpp is now
almost 4kB smaller after a rewrite.) While doing so, the
"type" attribute's possible values have changed, and
two new elements and were added
(for sensors that XSI does not anticipate.)
* various:
- [MISC] internal consistency cleanup wrt class names
* openbsd.cpp:
- [FIX] OpenBSD -current as of December 23rd 2006 has a new sensor
API. Adjust so that XSI works again.
* netbsd.cpp:
- [FIX] Be more thorough when collecting vmstat child processes in the
get-interrupt-stats hack.
Changes in 0.98.28:
! New XML output documentation (in HTML format) is now installed with the
rest of XMLSysInfo. !
! While writing the documentation, several bugs and inconsistencies have
been found and subsequently fixed. !
* XML Schema / cfg.cpp:
- [MISC] Removed the element, as it is actually useless.
The output is not affected by not running XSI as a daemon.
This is an incompatible change to the XML Schema.
* XML Schema / netifstat.cpp:
- [FIX] Restrict the possible content of attribute "family"
further, in order to match XSI reality more closely while
keeping flexibility in this area.
* XML Schema / xmlsysinfo.cpp:
- [MISC] Always include the element in the output.
- [FIX] Consistency fix: Let the values of indicator and drive sensors
be element content instead of attributes.
This is an incompatible change to the XML Schema.
- [FIX] Consistency fix: Rename to .
This is an incompatible change to the XML Schema.
- [FIX] Consistency fix: Rename a RAID disk's to .
This is an incompatible change to the XML Schema.
- [FIX] Consistency fix: Make the element contain the CARP
status and remove the status attribute.
- [FIX] Consistency fix: Make the sensor status a new element
and remove the attribute.
This is an incompatible change to the XML Schema.
* XML Schema / netifstat.cpp / xmlsysinfo.cpp:
- [FIX] Change the address family attribute values INET and INET6 to
IPv4 and IPv6, respectively. No need to be obscure ...
This is an incompatible change to the XML Schema.
* XML Schema:
- [FIX] Additional token/string type fixes.
- [FIX] Remove default value from ' element. (Only
in theory an incompatible change to the Schema.)
- [FIX] Change the order the and elements occur, to
sync with reality.
- [FIX] Remove <*_avg/> default values, as they cannot have any if
is not available. Therefore, must not have
a default value either.
- [FIX] add missing types to a few attributes
* network.cpp / network.h:
- [MISC] Always return a fresh, sanitized readout of the hostname.
Remove the now empty constructor of XSI_Network
* raid.cpp:
- [MISC] Return a real token as the RAID level, e.g. "RAID0".
* util.cpp:
- [FIX] improve string sanitization method
* openbsd.cpp:
- [FIX] No longer include inactive pages when calculating the size of
available memory.
* linux.cpp:
- [MISC] Do not set the redundant sensor "description", as it has no
real value.
* doc/Makefile.am:
- [ADD] Add the new HTML output documentation to the installation in
$docdir.
* configure:
- [MISC] Update to autoconf-2.61
Changes in 0.98.27:
! The element was replaced with , with
different semantics. New elements and (state) added. !
! The element was renamed to . !
! Even though Netfilter support is still missing on Linux, elevate the
Linux port to "fully supported" status, as it is as complete as possible
in every other aspect. !
* main.cpp:
- [FIX] Ensure that handled signals are suspended during updates, to
prevent accidential interruptions of system calls during
regular usage.
* XML Schema:
- [FIX] In multipath routing setups, more than one default route per
address family is possible. Therefore, unrestrict the number of
default routes.
- [FIX] Consistency: rename to
to bring it in line with other elements showing totals. This is
an incompatible change to the XML Schema.
- [FIX] Clean up no longer used reference.
- [FIX] String types cleanup. No functional change.
* openbsd.cpp / freebsd.cpp / netbsd.cpp / solaris.cpp (+ netifstat.*):
- [FIX] Ensure that local IPv6 addresses include their scope.
* various:
- [FIX] Replace the awkward element with a better
element. This is an incompatible change to the
XML Schema.
- [ADD] Add new element to provide a proper method to output
the duplex status of network interfaces.
- [ADD] New element inside shows when the number of
states comes dangerously close to the hard limit (pf only.)
Changes in 0.98.26:
! The unit for timedelta sensors changed from "s" to "ms" !
* various:
- [ADD] Add more top(1)-like functionality by including some process
information inside the element. Report number of
processes, number of running/zombie processes, and information
about the top CPU and memory using processes.
- [ADD] New command line parameter: -N ("No (user) names")
Prevents username lookups and removes all usernames from the
output.
- [ADD] New command line parameter: -h ("help")
Print a more verbose command line help and exit.
- [ADD] print some statistics when receiving SIGUSR1 in debug mode
* freebsd.cpp:
- [FIX] Plug a nasty memory leak in FreeBSD's setDisks() method, which
happened due to wrong libdevstat usage.
- [FIX] fix a crash in setInterrupts()
* netbsd.cpp:
- [FIX] also ignore ENXIO when trying to open an unconfigured
/dev/sysmon, to prevent premature self-termination
* sensors.cpp / XML Schema:
- [FIX] Timedelta sensors report milliseconds, not seconds. This small
schema change is NOT backwards compatible.
* main.cpp:
- [FIX] Due to the different signal(3) behavior on Solaris from all the
other OSes, switch to using sigaction(). This brings the
behaviors in line, and also fixes SIGHUP catching on Solaris.
Changes in 0.98.25:
* openbsd.{cpp,h} / netbsd.{cpp,h} / darwin.{cpp,h}:
- [FIX] merge per-sysctl methods into one, which actually enables
UUID reporting on OpenBSD (it was forgotten)
* sensor.{cpp,h} / openbsd.cpp / xmlsysinfo.cpp / XML Schema:
- [ADD] If a sensor reports its value's age or the time of the value's
last change, report it in a new element. Old,
unused code in sensor.* was changed and made usable for this.
* xmlsysinfo.cpp / XML Schema:
- [MISC] Relax the schema a bit and no longer print the rather boring
0 when no sensor data is
available. This also improves logic, since not being able to
get sensor data doesn't necessarily mean that no sensors exist
in the system.
* main.cpp:
- [FIX] Fix up compressed output support so that it can be actually
used by clients. This introduces some "magic" that is explained
in the FRONTENDS file.
Changes in 0.98.24:
* solaris.cpp:
- [ADD] Most of the information and statistics are now
implemented. Only information about default route(s) are still
missing.
- [FIX] A seemingly pointless API change in kstat(3kstat) broke XSI
on Solaris 11. This is now being dealt with.
- [FIX] The kernel version parser was broken on OpenSolaris, which is
now fixed, hopefully.
- [FIX] ignore NFS "disks" and USB controllers/root HUBs in disk I/O
stats
Changes in 0.98.23:
! This release makes the NetBSD port feature-complete, and elevates it to
"fully supported" status. !
* ipf.cpp:
- [FIX] both and (wrt states) are
enabled, now that they are calculated correctly
* netbsd.cpp
- [ADD] implement sensors support on NetBSD via envsys(4)
- [FIX] adjust updateDiskStats() method to cope with incompatible
changes to the API in NetBSD -current/4.0
* netifstat.cpp / xmlsysinfo.cpp / XML Schema:
- [ADD] introduce new elements to report errors and collisions per
second, per interface
* xmlsysinfo.cpp:
- [FIX] Allow for packet filter stats to be displayed on systems that
don't "have network interfaces", i.e. do not support network
interfae stats, yet. (For Solaris.)
Changes in 0.98.22:
! This release focuses on fixes and improvements of the XML Schema and
output according to valuable feedback from several front-end authors. !
* cfg.cpp / netifstat.cpp:
- [FIX] make these two build again on architectures with gcc 2.9*,
whose libs don't offer std::string::clear(), yet.
* Util / netifstat.cpp / system.cpp:
- [ADD] rudimentary string sanitization implemented to ensure valid
output (wrt unknown or unterminated entity references)
- [ADD] string normalization method that strips excess whitespaces
from strings - used on vendor/serial information from RAID
disks
* xmlsysinfo.cpp:
- [FIX] Do not output a tag in sensors if it's an indicator
or a drive sensor, as those two are special and don't report
decimal values. The new, more strict schema made the previous
behavior illegal.
* configure.in:
- [MISC] remove redundant checks, which (surprise, surprise) speeds up
configuration of the software
Changes in 0.98.21:
! NEW: Solaris 10 (and newer) port !
! Solaris introduces a slightly different format, see the XML
Schema's comments for details. |
! This release has incompatible changes in the XML Schema in the packet
filter area. !
* various:
- [MISC] further portability tweaks, XSI now builds with Sun's cc/CC
compilers
- [ADD] Support multiple packet filters per system and implement
ipfilter support on FreeBSD, NetBSD and Solaris.
Intrusive changes in the XML Schema's packet filter parts had
to be done to ensure valid output fed with data from less
sophisticated packet filters.
- [MISC] various documentation, comment and header cleanups
* util.cpp / linux.cpp:
- [FIX] reliability fixes; ensure that indices are non-negative:
e.g. line[line.size() - 1]
* linux.cpp:
- [FIX] ignore I/O errors when trying to gather stats from broken
media, as this should not be fatal to XSI
Changes in 0.98.20:
! This release has a trivial change and an addition to the XML Schema !
* various:
- [ADD] carp(4) status report on OpenBSD and FreeBSD
- [MISC] strip element name lengths in RAID section
- [MISC] several portability improvements and related fixes
* main.cpp:
- [ADD] support systems whose libc does not define __progname
- [FIX] reset the SIGALRM handler every time in the main loop to
catch all timer alerts on systems like Solaris, IRIX, etc
* netbsd.cpp:
- [ADD] add unaesthetic method to gather interrupt stats using
vmstat(8). Workable, but worth an entry in BUGS.
- [ADD] add CPU speed reporting on some architectures
* configure.in:
- [MISC] generic cleanup
Changes in 0.98.19:
! This release has incompatible changes to the XML Schema !
* various:
- [MISC] XML output optimized wrt network interface, packet filter and
disk I/O statistics to make it smaller by at least ~10%
- [MISC] consistency; let the Server class determine the port number xsi
is supposed to listen on
Changes in 0.98.18:
! NEW: NetBSD 3.0 (and newer) port !
* freebsd.cpp:
- [FIX] network media information
- [MISC] minor code cleanup
* openbsd.cpp:
- [FIX] more reliable network media information
- [MISC] code cleanups w/ slightly improved efficiency
* packetfilter.cpp/xmlsysinfo.cpp:
- [MISC] state counters will no longer be included in the output if
they would show zeroes only
Changes in 0.98.17:
! Dropped support for FreeBSD 5.x -- the new minimum requirement is 6.0 !
* freebsd.cpp:
- [FIX] CPU state percentages output
- [FIX] OS information
- [ADD] disk I/O support
- [ADD] interrupts support
- [ADD] network interface information and stats
- [ADD] pf(4) support
- [ADD] ACPI (temperature) sensors support
* linux.cpp:
- [MISC] code cleanups
* main.cpp:
- [MISC] small fixes: proper warnings on write(2) errors and a more
reasonable place to print the first startup message in debug
mode
* openbsd.cpp:
- [FIX] consider the possibility that all disks are removed from the
system
Post-0.98.16 release:
* begin maintenance of CHANGELOG