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