$Id: Changes 319 2009-04-16 19:19:06Z keescook $ 1.1.1: (2009-04-16) - changed Sys::Hostname to Sys::Hostname::Long since we need the FQDN to be a valid email address. (Thanks Joh Clarke!) - fixed time-out code to handle endless failure situation (from 1.0.2) - fixed recipient bleed-through across SEND/RESE in SNPP (from 1.0.2) - fixed queue filename collision (from 1.0.2) - added minimal "use" testing (from 1.0.2) - corrected version number reporting on banner (from 1.0.2) - added SMS delivery capabilities (proto=SMS) - changed default "group-tty" to "dailout" - Google Summer of Code cleanups by Zak B. Elep - Don't include RFC1861 -- the license is non-free 1.1.0: (2005-06-10) - rearranged modem init so that failed modems will be skipped (thanks to Peter Smith for pointing that out). - adding timing arguments to command completion. (recommended by Russell Adams) - added the options "pc:cc-simple" and "pc:proto=Test" for functionality similar to Bill Ayres's "null PC" patch. - updated postfix instructions from Russell L. Adams. - added "max-age" PC option to age-out undelivered pages (funded by David St. John). - corrected version report - correct reload failure 1.0.0: (2005-02-23) - changed how email2page handles the header regex list. This will allow each rule to match each header line, rather that just the first match. Recommended by Erastus Z Allen. - changed syslog-facility default to "daemon". To keep prior behavior, set "syslog-facility = local6". - created syslog-minlevel with default of "info". To keep prior behavior, set "syslog-minlevel = debug". - creating a "stable" version since I'll never reach 1.0.0 :) - updated copyright years - added older debian rules to CVS - created sendpage.spec from many sources - handling "strict parity" from Device::SerialPort - added "chars-per-block" config to the sendpage.cf examples - fixed field-spanning block code bug noticed by David St. John - added DBI support from Todd T. Fries - found evil SNPP hang bug, funded by David St. John - added few more comments, and renamed functions more sensibly - fixed up calls to KeesLog to not allow format strings to show up (thanks to Peter Smith for persisting with his queries about this) 0.9.14: (31May2002) - oops! I recreated an earlier bug where splits would destroy the page text for the next person in an alias. Fixed in SNPPServer.pm - corrected 8-bit CRC bug, thanks to Mark Frey - added UCP support, thanks to a great patch from Adrian Steiner 0.9.13: (04Nov2001) - added parameters and code for completion command execution. - fixed lock-file parsing to handle minicom's strange format. - allowed pid "0" to exist in lockfiles - wasn't including Sys::Hostname. whoops! - changed "ignore-carrier" to "carrier-detect" multi-selection - FINALLY found the DESTROY bug with Modem.pm. - Requires Device::SerialPort 0.12 now (goes with DESTROY bug) 0.9.12: (17Jul2001) - changed Modem.pm to deal with vmin problems under Solaris - fixed bug in email2page where bodies weren't being chopped correctly - "fixed" Modem.pm to close the device opened by Device::SerialPort - corrected the format of the PID printing in the lock file 0.9.11: (15May2001) - added "maxlines" to email2page. - changed (once again) how I reap dead children. (sendpage) - added the ability to write directly to the queues. (sendpage) - updated documentation slightly, some fixes in SNPP module for direct writing. 0.9.10: (20Apr2001) - tempfail-notify-after was going off on the very first temp failure, if it was set at all. (PagingCental.pm) - ignore-carrier was not boolean. (sendpage) - claim shutdown source correctly on children. (sendpage) - removed closed pipes from select set correctly (typos). (sendpage) - closed the RIGHT file descriptors. (typos, sendpage) - added "debug-snpp" for SNPP debugging. (sendpage) - added "debug-select" for select-loop debugging. (sendpage) - added Randy Emler's postfix instructions to docs/. - increased accept queue to 20 in SNPPServer.pm - I've wrapped the signal blocker around everything but the select now. I'm worried this might do bad things, but I haven't been able to prove it yet. Hmm. 0.9.9: (06Mar2001) - improved call-out debugging in Modem.pm - corrected pet3 handling, added the 'proto' option to PCs - allow whitespace to preceed comments in sendpage.cf - fixed "dialout" typo in Modem.pm - changed the email-sending error messages - fixed bug with empty "from" getting filled to "nobody" on splits - improved sendpage.init to be a little more flexible - added "Errors-To" field for outbound email - fixed bug in "PC logon handshake timeout" in PagingCentral.pm - added page-daemon on CC for any failures, if configured - added new "fallbackget" for KeesConf to pull PC-overridden variables - added "cc-on-error" to both global and PC sections to control if page-daemon will actually get CC's of failed pages - implemented "maxpages" variable to force PC to hang up after handling a certain number of pages - implemented "maxblocks" variable to force PC to hang up after transmitting a certain number of blocks - added email debugging to PagingCentral.pm - whoops: fixed total lack of "snpp-addr" working - fixed bug in SNPPServer.pm during unexpected loss of socket - implemented "/etc/snpp.conf" file for snpp defaults - fixed bug with "esc=true" for PagingCentral.pm - added "disabled" notice to the "-bq" output - added proper signal handler control during forks - fixed bug with hanging SNPP clients during a HUP - fixed "fail-notify" to be a boolean - added "fail-notify", "tempfail-notify-after", and "max-tempfail" to PC section, allowing for global fall back - added first pass at IP address Access Control Lists - wrote a simple PHP script to demo CGI-style delivery - updated README to reflect changes in docs directory 0.9.8: (30Jan2001) - further updates to Device::SerialPort and associated documentation - further updates to signal handlers - fixed bug in queue directory ownership during creation - added script to push email through email2page into snpp for sendmail - added page queue/delivery logging - fixed bug in expanding multiple pins sent to SNPP server - fixed error handler for calls into SNPPServer->create - added an init-script 0.9.7: (23Jan2001) - implemented level 2 SNPP server - added SNPP config options - added "enabled" flag to PCs - added areacode handling on modems and PCs - corrected some queue file logic - added immediate notification of pages coming from SNPP clients - added parent-death awareness - corrected USR1 handling in PC queue runners - implemented priv dropping for spawned children (no more craziness with setgid/setuid perl settings, etc) - created SNPP client - created email-parsing tool (with config file) - fixed signal handler inheritance bug 0.9.6: (12/31/2000) - ported KeesLog.pm's "new" function to use a hash (and fixed calls) - ported Modem.pm's "new" function to use a hash (and fixed calls) - started work on the SNPP Server functions - added documentation on how to port Device::SerialPort - added additional debugging to modem settings - created "dtrtime" to allow the DTR toggling timeout to be config'd - added logic to fully allow a "directly attached" modem to work - fixed a few small typos and other nonesense - improved handling of dropped-carrier conditions - changed device locking behavior to act like minicom and pppd 0.9.5: (09/27/2000) - hopefully fixed queue lock-up bug. if not, it'll warn now instead of looping forever. - added portability support for Solaris, and hopefully for AIX and HPUX. (and SCO, too.) - misc typos and corrections - fixed bug where modem settings weren't being passed to the modem when dialing a PC (PC defaults were being used) - started to correct problems with Device::SerialPort under other OS's. - move kicker section of "chat" in Modem.pm to the front, so kickers won't be sent during the last timeout cycle. - created an "answerretries" variable for the Paging Central to match "answerwait" for some slow Paging Centrals. 0.9.4c: (07/28/2000, argh: deadly typo. I should be more careful) - fixed a stupid typo in Modem.pm 0.9.4b: (07/28/2000, another point-release due to serious bug fixes) - made sendpage fail with exit codes on bad pager aliases - smooshed setgid taint removed in Modem.pm - smooshed modem disconnect chat failure buf in Modem.pm - queue manager announces it's version (for people sending debugging) 0.9.4a: (07/13/2000, point-release due to serious numeric-only paging bug) - created the "lfok" option and corrected the ctrl-char detection code. This bug made paging numeric pagers impossible because of the trailing LF. - fixed some typos in the documentation 0.9.4: (06/30/2000) - email notification completed - error reporting cleaned up further - temporary failures will eventually time out - added a bunch of documentation - converted all the package names to be correct - fixed a bug with alias expansion across multiple PCs - changed how we listen for children (now a wait loop, not SIGCHLD) - fixed up modem ioctl checking - allowed any PIN@PC as recipient if the PC exists - fixed the stupid damn error I've ever seen with Perl. The ExtUtils::MakeMaker doesn't let you have imbedded PODs inside .pm files that have "config" or "setup" in their name. STUPID! I had to change KeesConfig to KeesConf. I guess it has a nicer ring to it, but that's just plain dumb. 0.9.3: (06/21/2000) - created the logging subsystem and migrated to it - working more issues out of the TAP implementation - more and more error checking - started the framework for email support - created Makefile.PL and started adding pod documentation 0.9.2: (06/17/2000) - queue manager fully implemented and tested. should be stable. - debugging cleaned up: one line at a time, prep'ing for syslog. - continued misc bug fixes. 0.9.1: (06/14/2000) - queue manager written and mostly functioning. - Device::Serial buffer-flushing bug worked around. - various improvements and bug fixes to TAP implementation. - various improvements to config engine. - tested with 2 more PCs. Seems totally fine. 0.9.0: (04/27/2000) - initial public release of new perl version (0.9.x+ tree). - TAP protocol implemented and tested. - configuration engine implemented and tested. - I registered a Sourceforge account. - Code is FAR from finished, but it at least controls the modem correctly (one hard part), has a configuration engine (another hard part), and speaks TAP within most specs that I can find. And I've tested it with a whole *2* paging centrals. :)