1
2Change Log
3----------
4
5Changes in 1.5.5
6* Bugfix in io.c fixes segfault when using debugging
7* Addded check for SIGHUP in ringd to reload log file
8
9Changes in 1.5.4
10* buglet: db4 now included in dist tar.gz file
11
12Changes in 1.5.3
13* Hopefully fixes bug that in special occasions could crash pproxy when
14  too many connections came in in a short time under hight load.
15* There are now new PDM modules for newer Berkeley DB libraries (db4 and
16  bdb). See pdm/README for details.
17* Changes for new autoconf version
18* SGML documentation stuff updated to work with Debian tools
19* Bugfix: Quoting new lines in pcontrol.c
20* Bugfix: ringd: wrong integer type used
21* messages.xml now in deb file
22
23Changes in 1.5.2
24* Fixed SSL includes in pdm files
25
26Changes in 1.5.1
27* TLS: Ports 995 and 996 by default in ALLOWED_PORTS
28* TLS: New "prng" command to seed pseudo random number generator
29* TLS: Added SSL_MODE_AUTO_RETRY option
30* TLS: New configuration var "allowsslv2" (default off)
31* TLS: improved documentation for SSL/TLS
32
33Changes in 1.5.0
34* TLS: changed uses of 'SSL' to 'TLS' where possible.
35* TLS: sslkeyfile option is not used any more. instead <tlsdir>/<vserv>.pem
36  is used
37* TLS: uses different keys and certs now for each vserv
38* TLS: initialization is done as far as possible for each vserv when it is
39  configured
40* TLS: support for STLS (see "starttls" config option to vserv command)
41
42Changes in 1.4.5
43* Full paths for programs in init scripts
44* Bugfix: When using fallback username and password should now be given to
45  the backend properly.
46
47Changes in 1.4.4
48* new option --host for checked to bind to specific IP address
49* bugfix: pstatus now shows mailbox instead of username in mailbox field
50* documentation for read-only variables gid, uid, group, and user have been
51  removed because they don't work any more since version 1.4.3.
52* dbdir config var was still in documentation. It has been removed long ago,
53  because this is now configured in pdm modules. The documentation has been
54  updated
55* ringd has now two options: --user and --group to set the ownership of the
56  UNIX domain socket used for communicating with pproxy. init files have
57  been updated accordingly
58* ringd is now included in rpm files
59
60
61Changes in 1.4.3
62* Small fix in io.c, so that SSL sort-of-works again
63* pserv now listens to -l command line option and opens the right log file
64* pproxy must now be started as a normal user, it will use a running ringd
65  daemon to bind to needed tcp ports, the -u and -g command line options
66  for pproxy don't exist any more
67* new ringd daemon
68* db3 pdm module updated to use version 3.3
69
70
71Changes in 1.4.2
72* fixed bug in test program t_util_timedesc
73* allow '-' char in session IDs, because they can appear in hostnames
74* if too many (currently 5) bad commands are received in the auth phase the
75  connections is dropped
76* fixed type of argument for accept in two places (size_t -> socklen_t)
77* server start message in log file for pproxy, pserv and pcheckd now includes
78  version, rundir, user and group information where applicable
79* changes in the RedHat rpm build scripts. An 'rpm -ba' will not try to do
80  a 'rm -fr /' any more.
81
82
83Changes in 1.4.1
84* bug fix in xlog.c: A buffer was too small which resulted in segmentation
85  faults if long lines were logged. This could probably not be used to hack
86  the server because only ascii printable chars would be written into that
87  buffer.
88* there was no default for some config vars. This is fixed now.
89* superfluous message "SOS 010b backend_unreachable" will not be printed any
90  more
91* the session slot used for a new connection is now logged
92* new config var 'localip' for pserv to bind to a specific IP number
93* session ids can now be made unique clusterwide. There is a new config
94  variable 'sidprefix', the session prefix, see the documentation for details.
95* the format of the shmem files has changed to accommodate a bigger session
96  id. version is now 3.
97
98Changes in 1.4.0
99* This is the same as 1.3b9
100
101Changes in 1.3b9
102* Logging changes for 'logeachmsg'
103* Log length of input for null_byte_in_input
104* checktimeout conf var works again. This is the timeout for the UDP mail
105  check. Three tries will be used, each with this timeout.
106
107
108Changes in 1.3b8
109* MASTER namespace is now called "USER", so it is not confused with master
110  authentication
111* nice stuff removed from init scripts
112* libpdm_master.so supports the * wildcard now in peer, namespace or password
113  fields. Only a single * is allowed, no fancy regexps or so.
114* when maxsession is reached in pserv a file /var/run/popular/pserv.maxsession
115  will be created. pcheckd uses this file to signal the proxy that the
116  maximum number of sessions is reached. pserv will remove the file if the
117  number of sessions falls below maxsession-1
118* new option -a (--active) for pstatus to only display active session slots
119* don't log erroneous LIST and NOOP commands in auth state, too many clients
120  get this wrong
121* some log messages have changed to be cleaner etc.
122* the check for null bytes on input is now only done for data flowing from
123  the client to the proxy or from the proxy to the server. This is because
124  there are too many mail messages floating around with null bytes in them.
125* if /proc/loadavg is not found at configure time, load check will be
126  disabled
127* new 'sessiontimeout' variable limits overall length of a pproxy or pserv
128  session
129* config var readtimeout has been renamed to idletimeout.
130* new config var: authtimeout
131* time intervals can now be set easier with days, hours, minutes and seconds
132  like the following examples: "6h", "15s", "3d12h", etc. Giving just the
133  number of seconds is still allowed. This is used for the config variables
134  checktimeout, sessiontimeout, idletimeout, authtimeout, and proxytimeout.
135* there is a new 'StateTime' printed by pstatus. This is the time since the
136  last state change of this session
137* the running time of the pproxy and pserv is printed with pstatus in the
138  title line
139
140
141Changes in 1.3b7
142* pchecks loggs statistics on SIGHUP
143* 'Status: RO'-Header is now configurable at run time with 'statusheader'
144  config variables
145* new Bool type for config variables
146* documentation of config variable types in main documentation
147* setting of config variables and other settings are now logged
148* some system calls have been made more reliable by wrapping tests for EINTR
149  around them and restarting them if the come back with EINTR. this is
150  necessary so that the process can be straced :-(
151* new --range parameter for pstatus
152* pserv going online and offline is now logged
153* several log messages had wrong log id: fixed
154* pcheckd can now fork and use several processes to better distribute the
155  load
156* process priority settings didn't change much on real server systems, so
157  we don't set it any more.
158* pserv uses mmap() to access mailboxes now. This is much faster than the
159  old implementation
160* several pathologic cases for mail contents (like empty mails, mails without
161  header etc.) have been checked and the server send reasonable things now.
162* 'make deb' creates several .deb files
163* retr-counter is only incremented once for each mail file
164
165
166Changes in 1.3b6
167* fixed a few minor RFC compatibility issues. Mostly access to deleted mail
168  is now forbidden everywhere as required by the RFC
169* added a chapter about standards compliance to the documentation
170* mail check is now retried three times and if pcheckd could not be reached,
171  pproxy will pretend that the mailbox is empty
172* changes for Solaris support. Builds mostly successfully on
173  sparc-sun-solaris2.8
174* new test directory with test programs
175* pdm directories are no included in autoconf/automake stuff. Use --with-pdm
176  to state what PDM modules to build
177* bug fixes
178* documentation updates
179
180
181Changes in 1.3b5
182
183* Silly bug fixed: Some commands gave "-OK" as answer. That should be "+OK".
184* bug fix: local ip/port wasn't displayed in pstatus
185* pstatus: some small display changes
186* new option --rundir in pserv, pproxy, pcheckd replaces --statefile,
187  --pidfile and --sockfile options
188* TOP x 0 doesn't return the whole mail anymore
189* bugfix: extra arguments on command line for some commands didn't generate
190  an error
191* autoconf support for documentation
192* new man page popular-log.7 with log messages
193* new redhat spec file
194* improved documentation
195* defines for special behaviour in pserv.c: INCLUDE_STATUS_LINE and
196  TOP_ZERO_SEND_ALL. These are for backward compatibility and will probably
197  vanish soon
198* small bug fixes and code cleanups
199
200
201Changes in 1.3b4
202
203* Unified signal handling
204* Use of readline is now default (use configure --diable-readline for
205  disabling it)
206* new 'any' pdm module for testing
207* init files for RedHat and Debian
208* install server in sbin instead of bin
209* install-man target in doc Makefile
210* reorg of the files in /var/run/popular. they always contain the pid now. This
211  makes it possible to run several servers or proxies at the same time. This
212  is needed for (nearly) seamless upgrade of a running server
213* some files needed for the debian package. But doesn't work properly yet
214
215
216Changes in 1.3b3
217
218* rewrite of some low level IO functions
219* PIPELINING support
220* new var 'logeachmsg'. If this var is set to '1', the state of each message
221  in a mailbox is logged after the quit command.
222* if the maximum number of sessions (in pproxy or pserv) is reached, this
223  will be logged
224* ptestpdm can check the protocol now
225* missing pdm load/unload functions implemented
226* funny chars in log files are escaped better now (like "\r\n\t\xfc" etc.)
227* log format has changed. There is a unique id consisting of four hex digits
228  is logged now with every command. For 'legacy' messages this id is 0000.
229  There is a list of all log messages that will be created automatically
230  from comments in the C source. See README in doc dir.
231* the process priority of the child processes of pproxy and pserv is reduced
232* the TCP keepalive option is set on all sockets in pproxy and pserv
233* new buffering write operations. this leads to less packets in a POP3
234  dialog.
235* message length was wrong (added 12 bytes for 'Status: RO'-Header for new
236  files instead of for old files)
237* bug fix: log reopen on SIGHUP works for pserv now
238* if the new log file can't be opened on SIGHUP the old file will be kept
239  open
240* bugfix: top command works again
241* pcheckd has an option -e now, which allows to set a max value for the system
242  load. If the load reaches that number, all mailboxes will be reported as
243  empty.
244* the variable 'usernamecase' has been deleted. the PDM modules do case
245  insensitive checking
246* pcontrol now supports line continuation with \ if reading from files
247
248
249Changes in 1.3b2
250
251* the whole authentication stuff is new. All the functionality is now in
252  shared libraries that will be loaded at runtime. This is much more
253  flexible than before. See 'pdm' directory and documentation for details.
254* capa command now works for pserv
255* pcontrol help texts for pserv
256* pop dir can be changed now while pserv is running
257* more checks in pserv to catch install errors
258* more checks in pserv/pproxy to catch config errors
259* pcontrol is a bit more intelligent how they finds the socket to talk to the
260  server. There is a new option --program (-p) which takes a program name
261  (pserv, pproxy) as required argument and will connect to the corresponding
262  socket in /var/run/popular. If neither --socket (-s) nor --program (-p) is
263  given, pcontrol will look for a pproxy socket and if that is not found for
264  a pserv socket.
265* pstatus uses the same algorithm as pcontrol to find the status file
266* pcontrol will complain if started as root or made setuid. this is a
267  protection against user error
268* debug logging: default is now off, use the "/h debug" command in pcontrol
269  to see how all this works, debug options are now documented in the main
270  documentation also
271* pserv and pproxy have a 'maxlocalload' variable now. If the system load
272  is equal or higher than this value no new connections are accepted.
273* fixed a 2001 bug: The mails are sorted based on the unix time stamp in
274  the file name. Currently this needs 9 decimal digits. On September, 9th,
275  2001 this will "overflow" to 10 digits. The string comparison would
276  return wrong results, so it is changed to a numeric comparison now.
277* fallback to pop3 works now
278
279
280Changes in 1.3b
281
282* pserv is now also configured and controlled with the pcontrol utility.
283  Instead of the pserv.conf file there is now a pserv.rc file. Use
284    pcontrol --socket=/var/run/popular/pserv.socket
285  to connect to pserv instead of connecting to pproxy. (This will be easier
286  in a future version.) The pcontrol help texts are currently only for
287  pproxy. This might be confusing, sorry.
288* SSL/TLS support now works. This is still early alpha, but you can actually
289  connect with s_client and 'hold a conversation' with pproxy. I haven't
290  tried it with a real POP client yet. If anyone wants to help me test this,
291  give me a shout.
292* To make SSL/TLS support possible there is a whole new bunch of low level IO
293  operations that support normal sockets or SSL in a transparent way. I might
294  have broken something on the way and I know of at least one bug still in
295  there. All the new functions are in io.c.
296* There is now support for the CAPA command in pproxy. This is a somewhat
297  complex issue. Read the chapter in the documentation before you use this.
298  The server currently has no CAPA support, but will in the final version.
299* There is now a 'Setup' chapter in the documentation, that will help you
300  set up POPular. There are several other small changes to the documentation.
301* There is the beginning of a check_setup script, that can be run to check
302  your setup. It will check directory permissions etc. and report anything
303  that looks out of the ordinary.
304* binder is not an external program any more but a part of pproxy.
305* A bug in the command line option parsing that let the process core dump
306  if an unknown option was used is fixed in all programs.
307* Password is now passed properly to POP3 backend (bug found by Bruno Conte
308  <brunoc@ieg.com.br>)
309* Fix for missing socketbits.h resp. bits/socket.h include files on older
310  RedHats.
311
312
313Changes in 1.2
314
315* First public version.
316
317