X-Grey requires the following packages before you can
- CGIlib, which is a library I wrote obstensibly to handle CGI scripts, but has grown considerably in the decade or so I've been using it.
- The GNU getopt library.
- The GNU readline package.
- libmilter and pthreads, but only if you are installing the Sendmail client.
- GLD: Use calloc() over malloc(n * s) to avoid overflow
- MCP: Use calloc() over malloc(n * s) to avoid overflow
- ALL: Code reorganization—the code is no longer built in a different directory.
- ALL: Removed ability to log to stdout. I changed my mind about this and now all logging goes directly to syslog.
- ALL: Update the code to remove custom integer types and use C99 standard ints instead, to better clarify intent.
- ALL: Official announcement: ignore any pleas that this is the last release of this version. Also ignore any pleas that this is the last release, period. Obviously, I can't make up my mind on this.
- MCP: Fix logging message (was using an obsolete form)
- PFC: Fix logging message (was using an obsolete form)
- GLD: Fix logging message (was using an obsolete form)
- ALL: Closed out last bug as "won't fix". I haven't heard back on it in six years and I've yet to sucessfully reproduce it.
- ALL: Official announcement: this is the LAST 1.0 release. This may be the last release, period.
- ALL: More changes to the Makefile.
- Version information is generated during make from the revision control software.
- Follow GNU advice about building with
- Directories that used to be defined in conf.h now set in Makefile.
- ALL: Makefile tweaks.
- ALL: fixed core dump because of code I should have removed but didn't
- GLD: don't write PID file if using
1.0.13(2011-11-27) (NOTE: I lied about 1.0.12 being the last 1.x release)
- GLD: new metrics, such as:
- # times read tuplespace
- #times write tuplespace
- low tuple mark
- high tuple mark
- GLD: faster cleanup of tuplespace
- GLD: better self-monitoring in case of segfaults, etc.
- ALL: Now C99!
- GLD: fixed a tuplespace corruption bug
- GLD: fixed a parsing bug when reading the whitelist on startup
- GLD: call madvise() to let kernel know we're hitting the tuple space randomly
- GLD: fixed output bug
- GLD: Removed the following command line arguments as
they were very seldom used:
--greylist / --graylist
--timeout-grey / --timeout-gray
- GLD: Added command line option
- GLD: expired tuples logged via syslog
1.0.12(2010-05-10) (NOTE: this is the last 1.x release)
- Now you can uninstall the program! (new Makefile targets)
- ALL: Version number is now pulled from source control. Yea!
- GLD: fixed a segfault when it received to many requests it filled up the tuple array (not that I didn't check for that—I did, it's just that I reset the master index to 0 and forgot to check for that when adding a new tuple)
- GLD: Forgot to send back an error condition to the MCP in one case.
- PFC: Fixed an issue that filtered out logging messages.
- ALL: Added sequence numbers to all logged messages.
- ALL: Added a more pedantic value for the number of seconds in a year.
- Removed calls to
exit()that should not have been there.
- GLD: Changed startup behavior—it now clears all
counts from the saved state when starting up; use the
--old-countsoption to retain old behavior.
- PFC: Added an extra space in logging output.
- PFC: Changed some logging from level
- Make sure that we only log messages at or below our
current logging level (set via the
- Changed default system logging facility from
--log-facilityoption if you want to retain old facilities.
-ansicompiler options, and cleaning up code to remove warnings.
- Fixed a potential bug in the binary search routines. See Extra, Extra—Read All About It: Nearly All Binary Searches and Mergesorts are Broken for more information.
- Changed nearly all occurances of “gray” (regardless of case) to “grey” (yes, I'm anal like that).
- Fixed the clean target in a few make files.
- GLD: I used to ignore
accept()for a bulk data transfer. This was not the thing to do. I also limit the time for
accept()to 10 seconds.
- SMC: Set default stack to 64k
- SMC: made sure calls to
setrlimit(RLIMIT_STACK)actually takes effect (affect?) by calling
setrlimit(); apparently, the
pthreadinitialization takes place before
main()is called, and thus limiting the stack size afterwards won't do any good
- Fixed a typo in the
- SMC: Fixed a bug where SMTP AUTH users would still get greylisted
- Fixed a typo in the
- Fixed an inconsistency in the
- Added an omitted step when install the Postfix client
- PFC: fixed segfault
- MCP: fixed segfault
- MCP: changed
- MCP: if it can't find the pager program in interactive mode, uses the internal pager
- SMC: set default stack to 1M
- Added version information to each program
- Made sure all fields in the packets were initialized before calculating the CRC
- Some more documentation written
- Fixed datatypes relating to the network protcol on 64bit systems
- GCC on OpenBSD doesn't like compiling into
- Removed Linux specific headers
- Fixed some dodgy, not quite legal C code relating to networking
- Initial release