UPS: apcupsd clean sources
[tomato.git] / release / src / router / apcupsd / doc / techlogs / 1999 / kes03Nov99
blob44276afa6b52ec7cc1e57887d409dc730f2648b1
1          Technical notes on my code submission of 03 Nov 99
2                         Kern Sibbald
4 General:
5 - This is a preliminary submission that has not been fully tested 
6   though I have been using the apcupsd generated by this submission
7   as the changes are made.
8 - LW LI and LD are gone. They are replaced by log_event()
10 New features:
11 - All logging except apcnet.c and the status file done through syslog().
12 - New cgi code with graphical display of UPS data.
13 - Configuration file may be specified on the command line.
14 - Status file location can be specified in the configuration.
15 - Status file writes can also be logged.
16 - Status file contains additional data.
17 - The first record of the status file contains a version,
18   the number of records (not including the first one), and
19   the total bytes (not including the first record).
21 New directory:                    
22 - I added a new cgi directory. It contains the cgi code that
23   interfaces to apcupsd through a web server. Follow the
24   directions in the directory for compiling and installing
25   it. 
26 - Note, we should probably automatically call the make in this
27   directory from our make.            
29 Changes to code: general
30 - I cleaned up the error_abort() and error_exit() code a bit to
31   eliminate the varags #defines. It should now compile on compilers
32   that do not support varags in defines.
33 - There is now only a single syslog call in all of apcupsd. 
34   It is in subroutine log_event(), which is used to log all events.
35 - I eliminated a lot of printfs (not all of them) and replaced
36   them with log_event() calls or error_abort()s as appropriate.
37 - I added additional log_event() calls in many places to
38   enhance logging.
39 - error_abort() now logs an event.
40 - Cleaned up some of the error messages and messages that
41   are logged.
42 - Cleaned up some of the messages in the configuration
43   section.
44 - Changed the PROCFS configuration statement to STATTIME
45 - Changed the LOGGING configuration statement to DATATIME
46 - Added the STATFILE configuration statement
47 - Added the LOGSTATS configuration statement
48 - Changed the ACCESS configuration statement to NETACCESS
49 - Removed the JUSTOSHUTUPCOMPILER configuration statement
50 - added lpr, mail, news, and uucp to the FACILITY statement
51 - added code to close and reopen the logging if the facility
52   changes from the default.
53 - added variables necessary for new format of UPS function
54   codes.
55 - allow the configuration file location to be specified on
56   the command line.
57 - tried to cleanup and simplify the killpwr code. I believe
58   that I stumbled into a bug where non Smart UPS are not
59   being correctly shutdown.   See subroutine unknown()
60 - LD LI and LD were eliminated in favor of log_event().
61 - Rewind the status file rather than reopening it for
62   each write.
63 - Handle the writing of the status file differently.
64 - Status file contains additional data.
65 - The first record of the status file contains a version,
66   the number of records (not including the first one), and
67   the total bytes (not including the first record).
68 - added a maximum length to getline() to avoid buffer overflows
70 Final comments:
72 Work to complete:
73 - Automatically call cgi make from our make.
74 - Documentation.
75 - Automatic conversion of old apcupsd.config files
76   to the new format?
77 - Eliminate the rest of the printfs().
78 - Examine all configuration messages, and eliminate all
79  "Someone will have to explain this to me" messages.
80 - Check and double check killpwr changes.
82