2 Revision 641.23 2005/03/07 04:08:07 ajc
5 Revision 641.22 2005/03/05 22:31:01 ajc
6 * Allow the use of chained certificates for crypto
8 Revision 641.21 2005/03/04 20:04:00 ajc
9 * IMAP FETCH RFC822.SIZE now honors the cached rfc822 size in each
10 message's metadata, using it if present and storing it for next time
12 * Fixed bug in POP3 server that was causing it to fail to store the
13 correct RFC822 size in metadata. Fortunately it was failing in a way
14 that merely affected performance rather than corrupting the data on
15 existing installations.
17 Revision 641.20 2005/03/04 02:24:31 ajc
18 * SMTP: only offer TLS on the MSA port (587), not on the MTA port (25).
19 There seem to be some other MTA's out there that make things go haywire
22 Revision 641.19 2005/03/04 02:18:46 ajc
23 * config.c: default setting for "maxmsglen" is now 10 megabytes, not INT_MAX
25 Revision 641.18 2005/03/03 18:10:27 ajc
26 * sysdep.c: change the algorithm for dynamically expanding the redirect
27 buffer's size. Large writes were overflowing it.
29 Revision 641.17 2005/03/03 17:56:53 ajc
30 * Finished removing the use of temp files in IMAP.
31 WARNING: DON'T USE THIS ON A PRODUCTION SYSTEM, IT HAS NOT BEEN
32 FULLY TESTED WITH VARIOUS IMAP CLIENTS YET!
34 Revision 641.16 2005/03/03 05:14:06 ajc
35 * Realized that memreadline() does NOT return a NULL pointer when it hits
36 a null character, and adjusted all the code I wrote yesterday under that
38 * Removed the use of a temp file for IMAP FETCH BODYSTRUCTURE on a
41 Revision 641.15 2005/03/02 17:33:03 ajc
42 * msgbase.c: fixed a buffer overflow error
43 * imap_fetch.c, serv_imap.c, serv_imap.h: migrated imap_fetch_rfc822() to
44 use the new in-memory message buffering. BODY comes next...
46 Revision 641.14 2005/03/02 03:35:18 ajc
47 * serv_smtp.c: removed use of temporary file for SMTP transmission
49 Revision 641.13 2005/03/02 03:01:18 ajc
50 * serv_spam.c: use redirect_buffer instead of redirect_sock
51 * Removed redirect_sock from the API. redirect_fp is next!
53 Revision 641.12 2005/03/02 02:42:06 ajc
54 * Finished moving the POP3 server to the new redirect_buffer semantics
56 Revision 641.11 2005/03/02 02:16:10 ajc
57 * Toned down some of the hostility in the code's comments :)
59 Revision 641.10 2005/03/01 22:03:35 ajc
60 * Began implementation of a third RedirectOutput mode -- one which writes
61 to a memory buffer. This will replace the other two.
62 * serv_pop3.c: began migration to the new redirect mode.
64 Revision 641.9 2005/03/01 04:24:52 ajc
65 * When saving an RFC822 message, use a less expensive algorithm to
66 search for the Content Type
68 Revision 641.8 2005/02/28 20:32:50 ajc
69 * IMAP APPEND command now accepts the message text using one big
70 client_read() call instead of a bunch of smaller ones.
72 Revision 641.7 2005/02/28 02:25:29 ajc
73 * added pid file writing
75 Revision 641.6 2005/02/27 15:36:28 ajc
76 * database_cleanup.sh: look for /usr/local/ctdlsupport/bin/db_dump and
77 prepend that directory to the PATH if found.
78 * database_cleanup.sh: add more warnings about how dangerous this tool is
80 Revision 641.5 2005/02/26 16:27:54 ajc
81 * setup.c: added "hula" to the list of non-Citadel MTA's which can be
82 disabled during setup.
84 Revision 641.4 2005/02/25 17:59:12 ajc
85 * Ok, now we accept *all* the flags transmitted during an IMAP APPEND, not
88 Revision 641.3 2005/02/25 05:51:52 ajc
89 * Started working on a fix for the IMAP APPEND "flags" thing. It works
90 but only for the first flag sent. Will finish tomorrow.
92 Revision 641.2 2005/02/24 18:14:24 ajc
93 * Removed excessive trace messages that were slowing the server down
94 * Prepared for handling of setting flags in IMAP APPEND
96 Revision 641.1 2005/02/23 04:24:57 ajc
97 * When auto-creating Mail>, Sent Items>, etc... set view to VIEW_MAILBOX
99 Revision 641.0 2005/02/21 21:59:33 ajc
102 Revision 640.14 2005/02/21 21:40:28 ajc
103 * Updated internal version number to 6.41
105 Revision 640.13 2005/02/20 21:10:59 ajc
106 * Repaired access control problem in IMAP SUBSCRIBE
108 Revision 640.12 2005/02/17 16:13:59 ajc
109 * Removed "Log Hooks." This enabled the removal of a buf[SIZ] in lprintf,
110 where it can potentially blow lots of stacks.
112 Revision 640.11 2005/02/17 03:52:16 ajc
113 * setup.c: clarify some of the messages
115 Revision 640.10 2005/02/16 19:03:38 ajc
116 * master_cleanup() now passes along an exit code from its caller to the OS.
118 Revision 640.9 2005/02/16 18:48:39 ajc
119 * Try to reach our cleanup routine when SIGSEGV is caught. Hopefully
120 we'll get there and we can close the databases cleanly.
122 Revision 640.8 2005/02/16 17:37:16 ajc
123 * Be more aggressive about shutting down when told to. Getting the
124 databases closed is the highest priority.
126 Revision 640.7 2005/02/16 04:08:42 ajc
127 * newinstall.sh: put the checksum files server-side to avoid
128 unnecessary downloads
130 Revision 640.6 2005/02/16 03:02:28 ajc
131 * Applied patches submitted by Kevin Kilbride for TCP_CORK and for
132 turning CitContext into a doubly-linked list.
134 Revision 640.5 2005/02/13 04:55:18 ajc
135 * Did the server port hooks etc. for SSL listeners. For some reason it
138 Revision 640.4 2005/02/13 04:23:59 ajc
139 * Added server and client configuration settings to specify port
140 numbers for IMAPS, POP3S, and SMTPS (SSL-encrypted services that start
141 SSL upon connect instead of using a STARTTLS command). These services
142 are not yet implemented, only the port number settings are.
144 Revision 640.3 2005/02/13 03:39:21 ajc
145 * IMAP flag twiddling with STORE was broken because of the \Flag leading
146 backslash getting stripped out. Located problem and worked around. Said
147 many nasty things about IMAP's gratuitous complexity, particularly the
148 moronic idea to put backslashes in a place where they were completely
151 Revision 640.2 2005/02/12 16:58:36 ajc
152 * Changes to lprintf() and start_daemon() submitted by Kevin Kilbride
153 for more "true unix" approaches to each.
155 Revision 640.1 2005/02/11 03:51:51 ajc
156 * <.A>ide <U>ser-edit is now <.A>ide <U>ser <E>dit
157 * Added a new <.A>ide <U>ser <D>elete command, because it is unintuitive
158 to tell people "delete a user by setting their access level to 0"
160 Revision 640.0 2005/02/10 16:52:18 ajc
163 Revision 630.16 2005/02/10 16:52:03 ajc
164 * Updated documentation etc. for 6.40 release (and for 2005 copyright)
166 Revision 630.15 2005/02/08 03:33:49 ajc
167 * client_gets(char *buf) has been replaced by
168 client_getln(char *buf, int maxbytes)
170 Revision 630.14 2005/02/05 22:56:31 ajc
171 * More reliable handling of conversion of vCard UID to Citadel Extended ID
172 (necessary for GroupDAV URL's to be generated properly in WebCit)
174 Revision 630.13 2005/02/05 04:13:34 ajc
175 * msgbase.c: replication checks for Exclusive-ID no longer cause a save
176 operation to fail when the existing message is newer. This was causing
177 groupware clients to go haywire because of datestamps being set to
178 event start times, etc.
180 Revision 630.12 2005/02/03 04:36:56 ajc
181 * serv_calendar.c: beforesave hook now looks for the UID inside nested
182 VTODO components, in addition to VCALENDAR components.
184 Revision 630.11 2005/02/01 23:11:46 ajc
185 * new ENT0 syntax now also outputs EUID
187 Revision 630.10 2005/02/01 19:46:12 ajc
188 * Added an SMTP-like calling syntax to ENT0 to allow a confirmation message
189 to be sent back to the client after a message is transmitted.
191 Revision 630.9 2005/02/01 03:33:22 ajc
192 * Changed CtdlRoomAccess() calling syntax in order to return both
193 the access bits and the current view
194 * All "list rooms" commands now return the view for each room.
196 Revision 630.8 2005/01/27 22:05:21 ajc
197 * Renamed the "Extended message ID" field to "Exclusive message ID"
198 (nothing changes except documentation and internal variable names)
200 Revision 630.7 2005/01/27 21:59:22 ajc
201 * serv_vcard.c: changed the logic a bit. When saving a vCard to a user's
202 "My Citadel Config" room, force-feed the vCard a site-compliant UID and
203 FBURL. When saving a vCard to *any* address book room, set the Citadel
204 EUID to the vCard UID.
206 Revision 630.6 2005/01/27 17:33:52 ajc
207 * The before-save hook in serv_calendar.c now runs for any room with a
208 view of VIEW_CALENDAR or VIEW_TASKS, not just Calendar> and Tasks>.
210 Revision 630.5 2005/01/26 23:04:22 ajc
211 * When saving calendar items, if the vCalendar object does not contain
212 a UUID, generate one on the fly. In order to support GroupDAV we need
213 persistent URL's, and I plan to base those on the UUID.
215 Revision 630.4 2005/01/25 20:58:07 ajc
216 * serv_pop3.c: minor change to logging output
218 Revision 630.3 2005/01/25 15:02:12 error
219 * Updated SSL/TLS code to actually use the TLS cipher suites
221 Revision 630.2 2005/01/22 04:15:32 ajc
222 * Increased per-thread stack size again, this time to 1MB
224 Revision 630.1 2005/01/22 03:14:20 ajc
225 * Each message's metadata now has the ability to cache the length of
226 the message when output in RFC822 format. The POP3 service populates
227 this field the first time it sees each message, and fetches the length
228 from cache on subsequent visits.
229 * Because of this optimization, we no longer need to keep the entire POP3
230 mailbox stored in open temp files during a session. Each message is
231 opened again when it is fetched.
233 Revision 630.0 2005/01/21 20:25:08 ajc
236 Revision 629.10 2005/01/21 20:24:34 ajc
237 * Internal version number is now 6.30
239 Revision 629.9 2005/01/21 20:20:06 ajc
240 * Increase per-thread stack size from 128k to 256k. This fixes the
241 crashing IMAP service on 64-bit Linux.
243 Revision 629.8 2005/01/19 20:49:46 ajc
244 * Minor fixenbugs after running with Valgrind
246 Revision 629.7 2005/01/19 03:03:36 ajc
247 * Minor and/or cosmetic changes made during x64 troubleshooting
249 Revision 629.6 2005/01/18 17:58:38 ajc
250 * Trying to fix IMAP brokenness on Linux-x64. Committing changes even
251 though there are a lot of annoying trace messages in this tree, because
252 I did clean up a bunch of stuff here and there.
254 Revision 629.5 2005/01/14 17:08:30 ajc
255 * Applied a configure script fix sent in by David Given for more reliable
256 detection of the installed libical version.
258 Revision 629.4 2005/01/13 05:43:16 ajc
259 * Initial support for having a room participate in a remote mailing list
261 Revision 629.3 2005/01/09 03:20:41 ajc
262 * Applied a patch sent in by David Given for handling of the "&" character
263 plus Unicode characters in IMAP folder names.
265 Revision 629.2 2005/01/07 15:56:14 ajc
266 * msgbase.c: fixed an incorrect variable name in the bigmsg-handler
268 Revision 629.1 2005/01/07 03:05:04 ajc
269 * serv_imap.c: fail with a "BAD" error response if the LOGIN command is
270 called with the wrong number of parameters (otherwise it goes boom)
271 * user_ops.c: CtdlLoginExistingUser() was calling strproc() on the supplied
272 name, which killed the ability to log in with your email address (because
273 it stripped the @ symbol). Changed it to striplt() instead.
275 Revision 629.0 2005/01/04 03:57:32 ajc
278 Revision 628.2 2005/01/04 03:57:21 ajc
279 * newinstall.sh: save tarball checksums after successful install of each
280 component; skip subsequent installs for components which have not changed
281 * Bumped internal version number to 6.29
283 Revision 628.1 2005/01/04 02:06:28 ajc
284 * sysdep.c: if we have enough information to do so, adjust maximum file
285 descriptors to avoid exceeding FD_SETSIZE. This is done to circumvent
286 a rare but specific vulnerability.
288 Revision 628.0 2004/12/14 03:16:19 ajc
291 Revision 627.12 2004/12/12 17:33:24 error
292 * sysdep.c: lprintf(): Bug 124: Fix remote format string vulnerability
293 (thanks to coki@nosystem.com.ar)
295 Revision 627.11 2004/12/01 16:28:58 ajc
296 * tools.c: don't crash when striplt() is called with z zero length string
298 Revision 627.10 2004/11/26 22:44:08 ajc
299 * Added a sooper-seekrit way to spool network messages to a remote node
300 where the room has a different name
301 * Internal version number is now 6.28, so that WebCit doesn't b0rk the
302 netconfigs of older Citadel servers
304 Revision 627.9 2004/11/19 02:31:56 ajc
305 * Added developer ID # 177
307 Revision 627.8 2004/11/16 23:04:18 ajc
308 * setup.c: added "dovecot" to the list of "other email services" which
309 the setup program can helpfully disable for you. :)
311 Revision 627.7 2004/11/12 03:51:42 ajc
312 * serv_expire.c: auto-purge any user whose user number is less than 1.
314 Revision 627.6 2004/11/11 16:21:12 nbryant
315 * database_sleepycat.c: make cdb_rewind enforce that cursors must be
316 closed before they can be opened again. (prevents cursors being held
317 open for longer than they should be and holding database locks.)
319 Revision 627.5 2004/11/11 14:56:16 ajc
320 * Further adjustments to ldap setup
322 Revision 627.4 2004/11/11 04:38:36 ajc
323 * setup.c: fix bug that kept creating new inittab entries for slapd
325 Revision 627.3 2004/11/10 21:33:47 ajc
326 * Go to Berkeley DB 4.3.21 in Easy Install
328 Revision 627.2 2004/11/10 19:59:23 nbryant
329 * configure.ac: detect /usr/local/BerkeleyDB.4.3
331 Revision 627.1 2004/11/10 03:03:14 ajc
332 * Added a few wonderful linebreaks to >80 column lines
334 Revision 627.0 2004/11/03 20:18:58 ajc
337 Revision 626.18 2004/11/03 20:18:46 ajc
338 * Internal version number is now 6.27
340 Revision 626.17 2004/11/02 22:59:20 ajc
341 * setup.c: fixed an incorrect variable name that was causing inittab
342 twiddling to malfunction.
344 Revision 626.16 2004/11/02 02:47:10 ajc
345 * Easy Install: put the log directly in /tmp instead of in the build
346 directory so it doesn't get deleted on a failed install.
348 Revision 626.15 2004/10/23 14:33:44 ajc
349 * serv_notes.c: finished. When saving a message in a room whose view
350 is set to "notes," look for an X-KOrg-Note-Id: header, and if one is
351 present, set both the Extended ID and the Subject to that. This is for
352 Aethera compatibility.
354 Revision 626.14 2004/10/22 14:49:25 ajc
355 * newinstall.sh: Be more careful about locating make/gmake on the host
356 system. Also now tries to use curl if wget is not available.
358 Revision 626.13 2004/10/22 02:53:25 ajc
359 * serv_notes.c: added skeleton module
360 * serv_newuser.c: corrected internal comment
361 * techdoc: renamed session.txt to protocol.txt because it really isn't
362 a session layer protocol, it's more of an application layer protocol.
364 Revision 626.12 2004/10/13 02:11:00 ajc
365 * Repaired a completely broken <;Z>ap floor command.
367 Revision 626.11 2004/10/12 11:24:42 ajc
368 * Tracing a problem with ;Z command
370 Revision 626.10 2004/10/12 02:48:11 ajc
371 * Reworked shutdown sequence to avoid thread deadlock
373 Revision 626.9 2004/10/12 02:17:49 ajc
374 * Cleaned up some things that generated compiler warnings
375 * crypto keys directory is now relative to the server's working directory,
376 not to the compiled-in BBSDIR
377 * Re-ordered the security checks in CtdlAccessCheck()
379 Revision 626.8 2004/10/06 21:23:21 error
380 * Fixup a few more compiler warnings from icc
382 Revision 626.7 2004/10/05 01:44:20 ajc
383 * Changed a bunch of localtime() calls to localtime_r(), for great justice.
385 Revision 626.6 2004/10/04 21:40:29 error
386 * configure.ac: Add CFLAGS for icc Intel Compiler
388 Revision 626.5 2004/10/04 21:39:35 error
389 * Fix a couple of minor compiler warnings
391 Revision 626.4 2004/10/03 04:25:23 ajc
392 * Removed some vestiges
394 Revision 626.3 2004/10/03 04:11:48 ajc
395 * sysdep.c: in the main server loop, when time_to_die is detected, return
396 immediately instead of falling through to the end of the function.
398 Revision 626.2 2004/10/03 03:57:32 ajc
399 * Added pthread_attr_destroy() in the appropriate location (thanks fleeb!)
401 Revision 626.1 2004/10/01 15:58:08 ajc
402 * Configure "notes" view and auto-create Notes> room
404 Revision 626.0 2004/09/28 16:11:16 ajc
407 Revision 625.33 2004/09/28 16:09:58 ajc
408 * Update documentation and config files for 6.26 release
410 Revision 625.32 2004/09/28 02:18:12 ajc
411 * Improve output of RECENT flag in IMAP
413 Revision 625.31 2004/09/23 03:02:31 ajc
414 * MyContext() no longer declared INLINE
416 Revision 625.30 2004/09/23 02:54:46 ajc
417 * in MyContext(), reduced the number of calls to pthread_getspecific()
420 Revision 625.29 2004/09/23 00:22:18 error
421 * rooms.c: create_floor(): Fix the check for whether a floor name was given
423 Revision 625.28 2004/09/21 02:09:30 ajc
426 Revision 625.27 2004/09/21 01:43:23 ajc
427 * imap_search.c: when search criteria permit, do not fetch messages.
429 Revision 625.26 2004/09/17 16:54:13 ajc
430 * Updated documentation to include information about setting up MSA 587 port.
432 Revision 625.25 2004/09/17 04:14:18 ajc
433 * serv_network.c: added a missing \n in log output
435 Revision 625.24 2004/09/17 03:54:47 ajc
436 * citadel-openldap.schema: replaced. Dunno why it was missing.
437 * serv_calendar.c: fixed a return with no value for a function returning
438 int; this was causing a before-save hook to abandon messages
440 Revision 625.23 2004/09/16 01:46:40 ajc
441 * CRE8 command: allow setting default view during room creation
443 Revision 625.22 2004/09/15 03:02:47 ajc
444 * Add an SMTP MSA listener (separate port, requires auth)
446 Revision 625.21 2004/09/13 15:51:59 ajc
447 * newinstall.sh: updated from the working version at easyinstall.citadel.org
449 Revision 625.20 2004/09/11 03:13:04 error
450 * Remove calls to the broken flush_output() while I try to figure out what's
451 wrong with it. Replaced with unbuffer_output() which does work.
453 Revision 625.19 2004/09/10 02:54:26 ajc
454 * Added flush_output() calls to IMAP modules. (Do we need them? Are we
455 buffering IMAP output? Should we?)
457 Revision 625.18 2004/09/09 02:26:45 ajc
458 * Completed (I think) the 'dialog' mode in setup
460 Revision 625.17 2004/09/08 04:16:07 ajc
461 * setup.c: initial changes to use a 'dialog' based setup (yes, it's back,
462 because the b0rken version is now long gone and it appears to be more
465 Revision 625.16 2004/09/07 04:15:35 error
466 * msgbase.c: cmd_msgs(): Call unbuffer_output() when a message list is
467 requested using a search template.
469 Revision 625.15 2004/09/06 01:11:35 error
470 * msgbase.c: cmd_ent0(): Fix another unbuffer_output()
472 Revision 625.14 2004/09/06 00:59:01 error
473 * file_ops.c: cmd_writ(): Add an unbuffer_output() that I forgot.
475 Revision 625.13 2004/09/05 17:39:09 error
476 * Buffered output needs to be flushed in several places. Added calls to
477 flush_output(). (basically anywhere where we send a response and then
478 wait for the client, except chat, where we turned it off entirely)
480 Revision 625.12 2004/09/05 15:41:45 error
481 * Network optimizations - buffer output server-side for better network
482 utilization; one client-side optimization
484 Revision 625.11 2004/09/05 15:20:41 error
485 * sysdep.c: unbuffer_output(): Split the writing part to a new function
486 flush_output() for more precise control
488 Revision 625.10 2004/09/03 04:34:30 ajc
489 * setup.c: when creating an inittab entry for slapd, use "-d 0" instead
490 of "-d 1" to avoid spewing messages to the console, while still remaining
493 Revision 625.9 2004/09/03 04:19:17 ajc
494 * setup.c: Changes to inittab-twiddling to make it a bit more reliable
495 * ipc_c_tcp.c: don't send SIGHUP to children; it makes them very angry
497 Revision 625.8 2004/09/01 15:34:52 ajc
498 * serv_smtp.c: fix build error on hosts with no SSL support
500 Revision 625.7 2004/08/31 17:31:55 ajc
501 * Calendar: store UUID+comment instead of comment as Subject (this was done
502 at the request of Eugen Constantinescu for Aethera optimizations)
504 Revision 625.6 2004/08/30 02:45:33 ajc
505 * setup.c: when running in Newt mode, make the size of the dialogs dynamic
506 to the size of the text in them.
508 Revision 625.5 2004/08/29 15:18:41 error
509 * newinstall.sh: fix detection of gmake/make
511 Revision 625.4 2004/08/28 14:21:25 error
512 * Change the logging level of some messages and add a couple of new ones to
513 show when a network node is connecting.
515 Revision 625.3 2004/08/28 02:42:44 ajc
516 * setup.c: when run from the Easy Install script, auto-configure slapd
517 and put it into /etc/inittab
519 Revision 625.2 2004/08/28 01:56:38 ajc
520 * Generalize some of the inittab-tweaking stuff so that we can use it
523 Revision 625.1 2004/08/27 21:39:33 ajc
524 * Fleshed out contemplate_ldap() a bit
526 Revision 625.0 2004/08/27 21:06:30 ajc
529 Revision 624.8 2004/08/27 20:16:51 ajc
530 * Update internal version number to 6.25
532 Revision 624.7 2004/08/26 04:13:55 ajc
533 * newinstall.sh: updated with some new goodies
534 * setup.c: when run from Easy Install, offer to set up LDAP. (Not finished.)
536 Revision 624.6 2004/08/23 21:41:26 error
537 * html.c: Try to something sane with lists
539 Revision 624.5 2004/08/23 21:40:04 error
540 * No longer accept MD5 as a hash when encrypting
542 Revision 624.4 2004/08/23 21:34:28 error
543 * serv_network.c: Suppress Invalid node name for "." and ".."
545 Revision 624.3 2004/08/16 04:19:14 ajc
546 * newinstall.sh: more intelligent auto-run of setup programs
547 * setup.c: change inittab question to be more newbie-friendly
549 Revision 624.2 2004/08/15 05:04:36 ajc
550 * newinstall.sh: various tweaks to make it more reliable
552 Revision 624.1 2004/08/14 03:59:43 ajc
553 * newinstall.sh: shuffled around the environment variables to prevent
554 "C compiler cannot generate executables" error.
556 Revision 624.0 2004/08/12 13:47:47 ajc
559 Revision 623.16 2004/08/11 04:09:14 ajc
560 * Replaced all "Citadel/UX" references with "Citadel"
562 Revision 623.15 2004/08/05 03:19:48 ajc
563 * html.c: handle the <BLOCKQUOTE> tag properly
565 Revision 623.14 2004/08/05 02:02:33 ajc
566 * CtdlHostAlias() now accepts "localhost" as a localhost address.
567 * working_ignetcfg is now loaded during incoming NETP commands, which
568 should theoretically take care of the missing config problem.
570 Revision 623.13 2004/08/02 02:51:03 ajc
571 * utilsmenu: removed. Because most of the admin functions have been moved
572 into Citadel proper, what's left of this menu is now pathetic.
573 * techdoc/build.txt: removed verbage that referred to the old build system.
575 Revision 623.12 2004/07/30 03:18:21 ajc
576 * user_ops.c: limit the length of the name which can be supplied
577 to CtdlLoginExistingUser() to avoid crashing it.
579 Revision 623.11 2004/07/28 04:09:58 ajc
580 * serv_network.c: we had ignetcfg and working_ignetcfg, but it turns out we
581 no longer use the former anywhere, so it has been removed (along with the
582 aftersave hook that detected changes)
584 Revision 623.10 2004/07/25 16:20:04 error
585 * msgbase.c: CtdlCheckInternetMailPermission(): Do not allow twits to send
586 Internet mail (they shouldn't be sending ANYTHING at all)
588 Revision 623.9 2004/07/25 16:18:43 error
589 * citadel.spec: update version number
591 Revision 623.8 2004/07/25 16:17:37 error
592 * stress.c: Slightly more verbose output
594 Revision 623.7 2004/07/25 16:16:19 error
595 * citadel_decls.h: fixed the new logoff() macro
597 Revision 623.6 2004/07/24 05:11:52 ajc
598 * citadel.c: temporarily commented out the signal() call for SIGHUP because
599 it is causing the client not to work at all on Linux 2.6 (or at least on
600 Fedora Core 2) when citadel is called as the login shell -- a SIGHUP is
601 mysteriously received at the username prompt and the program exits.
603 Revision 623.5 2004/07/15 02:54:49 ajc
604 * serv_network.c: grab and use a networker-local copy of the network
605 configuration, ensuring that it doesn't accidentally get clobbered while
606 the network is running.
608 Revision 623.4 2004/07/11 18:41:39 ajc
609 * Updated roadmap document slightly
611 Revision 623.3 2004/07/11 03:59:02 ajc
612 serv_network.c: small fix to above
614 Revision 623.2 2004/07/11 03:50:31 ajc
615 * serv_network.c: removed a stray end_critical_section()
616 * serv_network.c: purge invalid ignet_push_share entries during
617 netconfig load instead of during rewrite
619 Revision 623.1 2004/07/10 02:51:01 ajc
620 * Changed "policy set" message to "policy has been updated" to make it
623 Revision 623.0 2004/07/06 18:15:04 ajc
626 Revision 622.7 2004/07/06 18:09:13 ajc
627 * When writing a message body to the CDB_BIGMSGS table instead of the main
628 message base, increase data length by one byte in order to include the
629 NULL terminator. (Doh!)
631 Revision 622.6 2004/07/03 04:09:37 ajc
632 * Check the "Permission to send Internet mail" access controls when
633 messages are submitted via Authenticated SMTP.
635 Revision 622.5 2004/06/28 17:09:20 ajc
636 * Properly re-terminate messages posted via IMAP APPEND. The newline
637 conversion process was shortening the text but not adjusting string
638 termination, causing extra message snippets to appear.
640 Revision 622.4 2004/06/24 20:38:06 ajc
641 * updated serv_vandelay.c to include new "c_ip_addr" config
643 Revision 622.3 2004/06/24 20:33:37 ajc
644 * Bumped internal version number to 6.23
645 * Added "Server IP address" to config (server, client, docs)
647 Revision 622.2 2004/06/24 15:26:33 ajc
648 * Updated the ig_tcp_server() function to allow binding to a single IP
649 address. This is not yet used by anything.
651 Revision 622.1 2004/06/24 02:34:39 ajc
652 * serv_imap.c: when an IMAP socket breaks while a folder is selected,
653 auto-expunge the folder before closing it. Fixes the "mysteriously
654 reappearing deleted messages" for clients that just drop the session
655 without issuing a CLOSE when the user closes the window.
657 Revision 622.0 2004/06/19 03:20:22 ajc
660 Revision 621.19 2004/06/19 03:13:26 ajc
661 * Updated internal version number to 6.22
663 Revision 621.18 2004/06/19 02:35:16 ajc
664 *** empty log message ***
666 Revision 621.17 2004/06/19 02:33:54 ajc
667 * Removed the configuration option "Allow Aides access to all mailboxes."
668 This functionality *must* always be enabled for administrative create/edit
669 of vCards, which live in the user's My Citadel Config> room.
671 Revision 621.16 2004/06/16 04:17:43 ajc
672 * More scheduler changes. Removed the rescan pipe again, and also
673 removed the mutex wrapper around select(). In my initial testing I am
674 getting reliable, fast service, but further testing is needed.
676 Revision 621.15 2004/06/16 03:13:02 ajc
677 * Scheduler fix ... added the rescan pipe back in
679 Revision 621.14 2004/06/15 20:42:42 ajc
680 * Store the body of any large (>1K) message in a separate database. This
681 will allow fast headers-only retrieval later.
683 Revision 621.13 2004/06/15 03:05:01 ajc
684 * Bumped internal version number to 6.22
685 * Added a new faster headers-only mode that excludes enumeration of
688 Revision 621.12 2004/06/14 19:09:26 ajc
689 * serv_vandelay.c: re-inserted a missing line of code for setting tempfile
690 names, which was causing exports to crash.
692 Revision 621.11 2004/06/11 01:26:02 ajc
693 * Optimized the scheduler some more. The S_I_WANNA_SELECT mutex now
694 wraps only the select() call itself.
696 Revision 621.10 2004/06/09 03:54:07 ajc
697 * The scheduler can now "wake up" a session to deliver async messages.
698 * Renumbered the "instant msgs waiting" message and changed its usage
700 Revision 621.9 2004/06/07 22:12:19 ajc
701 * Removed network/filterlist network/mailinglists network/rnews.xref
702 because none of these are used anymore.
704 Revision 621.8 2004/06/07 16:41:28 ajc
705 * Changed "express message" to "instant message" everywhere in the code
706 and documentation, to reflect the now industry-standard terminology for
707 this function. (Obviously, the server command names have not changed,
708 because that would break everything.)
710 Revision 621.7 2004/06/06 22:30:10 ajc
711 * New session scheduler. All sessions which select() marks for activity
712 are now handled before select() is called again.
714 Revision 621.6 2004/06/03 02:49:14 ajc
715 * html.c: allow parsing of tags even when they're qualified
716 (i.e. <TAG foo=bar> instead of just <TAG> )
717 * html.c: handle escaped decimal characters (such as ' for an apostrophe)
719 Revision 621.5 2004/06/03 02:28:16 ajc
720 * citadel_ipc.c: SETR command was missing defaultview and flags2. Added.
722 Revision 621.4 2004/05/31 15:19:14 ajc
723 * Reworked the security checks for move/copy commands. Theoretically it's
724 performing all the same checks, but the code is far more readable.
726 Revision 621.3 2004/05/26 18:13:15 nbryant
727 * stress.c: silence warning
729 Revision 621.2 2004/05/26 16:53:31 nbryant
730 * configure.ac: check for /usr/local/BerkeleyDB.4.2
732 Revision 621.1 2004/05/24 01:59:16 ajc
733 * serv_network.c: when processing incoming IGnet spool, give the <C> field
734 priority over the <R> field. This allows messages emailed to a network
735 room to be shared properly instead of attempting to deliver via email a
738 Revision 621.0 2004/05/21 01:58:16 ajc
741 Revision 620.35 2004/05/20 16:14:08 ajc
742 * Changed internal version number to 6.21
743 * Added missing VIEW_* defines in citadel.h (they're used only by WebCit
744 for now, which is why Citadel didn't need them, but they should be there
745 anyway for completeness)
746 * Removed the last vestiges of the built-in spam filter. It had been
747 commented out, but it's definitely never coming back now, so away it goes.
748 * Updated some of the docs
750 Revision 620.34 2004/05/15 14:19:52 error
751 * Scheduler: when next_session is to be deleted, make it point to some
752 other session which isn't being deleted (or NULL if there aren't any).
754 Revision 620.33 2004/05/14 03:09:54 ajc
755 * When a session kills itself (for example, due to a broken socket),
756 force the dead_session_purge() to run immediately. This avoids
757 thousands of error messages for up to the next five seconds while it
758 waits for the next purge.
759 * For the main select() loop, we can now recover from EBADF by jumping
760 back to the code that scans for valid descriptors. (Yeah, I used a
761 goto. It's more readable that way, so STFU if you have a problem with
764 Revision 620.32 2004/05/11 15:21:45 nbryant
765 * configure.ac: check for <sys/prctl.h>
766 * server_main.c: call prctl(PR_SET_DUMPABLE, 1) if we are dropping root
768 * sysdep.c: no longer call setrlimit(RLIMIT_CORE, ...); this can be handled
771 Revision 620.31 2004/05/10 01:47:11 error
772 * messages.c: Fix crash when trying to use m<Y> next
774 Revision 620.30 2004/05/07 20:27:46 ajc
775 # citadel-openldap.schema: updated to include RFC2739 objects & attributes
777 Revision 620.29 2004/05/07 19:31:40 ajc
778 * More RFC2739 compliance: when converting vCard to LDAP, include
779 the calFBURL attribute.
781 Revision 620.28 2004/05/07 19:09:07 ajc
782 * Implemented partial RFC2739 compliance (calendar free/busy URL in vCard).
783 Still need to add it to LDAP.
785 Revision 620.27 2004/05/07 18:17:26 ajc
786 * Scrawled some notes in roadmap.txt
788 Revision 620.26 2004/05/06 03:38:26 ajc
789 * Never reduce the size of the thread pool, only increase it (still
790 observing the max ceiling, of course)
791 * Don't explicitly call RemoveContext() when a session exits. The
792 subsequent call to dead_session_purge() will handle it.
794 Revision 620.25 2004/05/03 00:12:27 ajc
795 * Found and removed a bug that caused network rooms to be un-shared with
796 all nodes instead of only with nodes that no longer exist.
797 * New target "make upgrade" (to be consistent with other projects)
799 Revision 620.24 2004/04/29 02:37:58 ajc
800 * Updated the roadmap
802 Revision 620.23 2004/04/26 15:11:17 ajc
803 * Enable core dumps regardless of system ulimit setting
804 (maybe temporary until we fix BOOM)
806 Revision 620.22 2004/04/23 17:27:50 ajc
807 * user_ops.c: do not attempt to save the loaded user record into the
808 supplied buffer, when the supplied buffer is NULL. (This calling
809 syntax is used to check for the existence of a user without storing it.)
811 Revision 620.21 2004/04/21 03:44:50 ajc
812 * serv_crypto.c: small fix to make self-signed certs no longer invalid
814 Revision 620.20 2004/04/21 03:00:06 ajc
815 * Replace ctdl_install_certificate() with convenience functions found
816 in the OpenSSL library.
818 Revision 620.19 2004/04/20 02:42:54 ajc
819 * techdoc/binaries.txt : updated, now includes WebCit instructions
820 * setup.c: detect when setup is run from within the Citadel Ridiculously
821 Easy Installer and skip the directory prompt; the installer sets it.
823 Revision 620.18 2004/04/14 18:43:51 nbryant
824 * citadel.spec: BuildRequire redhat-rpm-config
826 Revision 620.17 2004/04/14 16:16:47 nbryant
827 * citadel.spec: don't BuildRequire newt-devel
829 Revision 620.16 2004/04/14 03:42:01 ajc
830 * ICAL FREEBUSY output now includes ORGANIZER, DTSTART, and DTEND fields.
831 (Required for Kolab compatibility.)
833 Revision 620.15 2004/04/13 23:53:00 nbryant
834 * citadel.spec: BuildRequire bison
836 Revision 620.14 2004/04/13 22:44:35 nbryant
837 * citadel.spec: commented out Icon line and the openldap-servers dependency.
838 * citadel.spec: added several BuildRequires. Some of these are, strictly
839 speaking, compile time options, but the goal is to document the runtime
840 dependencies and make sure our RPM's are always built consistently.
842 Revision 620.13 2004/04/13 21:09:20 error
843 * citadel.spec: Updated for 6.20p1
845 Revision 620.12 2004/04/13 18:31:40 ajc
846 * serv_calendar.c: ICAL FREEBUSY command now tries the supplied name not
847 only as a screen name, but as an email address, and then as an
848 unqualified email address in every hosted domain. (For Kolab compat)
850 Revision 620.11 2004/04/13 02:45:07 ajc
851 * Don't display the "Ending SSL/TLS" log message unless TLS is actually present
853 Revision 620.10 2004/04/12 20:51:40 error
854 * citadel.lsm: Update LSM for 6.20p1; uploaded to ibiblio.org
856 Revision 620.9 2004/04/09 23:11:01 error
857 * serv_chat.c: Differentiate when a user does not exist when paging users.
859 Revision 620.8 2004/04/09 23:05:52 error
860 * user_ops.c: fix unused variable compiler warnings
862 Revision 620.7 2004/04/03 15:42:35 ajc
863 * stress.c: include <stdlib.h> in order to get RAND_MAX
864 (Submitted by Thomas.Lotterer@cw.com, Cable & Wireless / OpenPKG)
866 Revision 620.6 2004/04/01 04:41:55 ajc
867 * Put some blankety-blank values in the default generated vCard so it's
868 more acceptable to LDAP conversion
870 Revision 620.5 2004/03/31 02:19:09 ajc
871 * Change the IMAP folder delimiter from "|" to "/" because more than a few
872 client programs don't follow RFC2060 strictly enough to work with
873 non-"/" delimiters. Actual slashes in room names appear as "|" in IMAP.
875 Revision 620.4 2004/03/30 03:11:07 ajc
876 * control.c: when config.c_maxsessions is unset or negative, set it to 0
877 instead of setting it to 1 when it is 0 or negative. The default should
878 be unlimited sessions.
880 Revision 620.3 2004/03/29 16:05:02 ajc
881 * begin_critical_section() -- bypass transaction checking for S_FLOORCACHE
882 sections, to avoid crashing the db layer
884 Revision 620.2 2004/03/29 02:33:19 error
885 * citadel.spec: major modifications for 6.xx (hasn't been updated since 5.xx)
887 Revision 620.1 2004/03/27 23:04:59 error
888 * citadel.lsm: update version number, sending to ibiblio
890 Revision 620.0 2004/03/27 02:33:26 ajc
893 Revision 614.105 2004/03/27 02:33:10 ajc
894 * Bumped the version number to 6.20
895 * Corrected session.txt writeup for CONF command (three of the five LDAP
896 related fields were missing)
897 * Updated the roadmap documentation slightly
899 Revision 614.104 2004/03/27 02:21:30 ajc
900 * Completed documenting the LDAP Connector
902 Revision 614.103 2004/03/26 05:41:25 ajc
903 * Began writing up the LDAP Connector for Citadel in the documentation
905 Revision 614.102 2004/03/26 05:40:47 ajc
906 *** empty log message ***
908 Revision 614.101 2004/03/26 05:13:15 ajc
909 * citadel-slapd.conf: comment out the reference to the Citadel schema
910 and add "schemacheck off" to make it easier to get started with the
911 Citadel LDAP connector. Also made the backend in the sample conf
912 ldbm instead of bdb, because that's what RH9 ships with.
914 Revision 614.100 2004/03/24 21:23:50 ajc
915 * msgbase.c: repaired a memory leak
917 Revision 614.99 2004/03/24 17:07:11 ajc
918 * Put a new memory leak checker into the server because it turns out that
919 the third-party ones all suck. :) This one doesn't involve renaming
920 all of the malloc() related functions, though.
922 Revision 614.98 2004/03/24 15:04:06 ajc
923 * stress.c: fix "wrong password" race condition by giving the very
924 first worker thread time to finish creating the user account before the
925 other threads start using it. (Ok, I fixed it by creating a different
926 race condition, but if your Citadel takes more than three seconds to
927 create an account, your problems can't be fixed with the stress tester.)
929 Revision 614.97 2004/03/24 03:46:40 ajc
930 * Reorg header stuff to make it more compatible with leak checkers
932 Revision 614.96 2004/03/24 03:25:19 ajc
933 * Removed the built-in memory leak checker. It wasn't threadsafe and
934 there now exist third-party utilities that do this job better.
936 Revision 614.95 2004/03/24 02:59:19 ajc
937 * After initializing the database, chown and chmod all files in the data/
938 directory correctly to avoid EPERM errors later on when we drop root privs
940 Revision 614.94 2004/03/22 19:37:28 error
941 * sysdep.c: worker_thread(): Make scheduling a little more fair to higher
943 * sysdep.c: lprintf(): Enable microsecond display in trace file
944 * stress.c: worker(): Sleep for random amount of time as per specification
946 Revision 614.93 2004/03/21 22:51:54 error
947 * Fix a few remaining lprintf(9, ...) to lprintf(CTDL_DEBUG, ...)
949 Revision 614.92 2004/03/21 22:35:20 error
950 * stress.c: Wait before posting instead of after posting.
952 Revision 614.91 2004/03/21 22:34:41 error
953 * database_sleepycat.c: emit a panic message when Berkeley DB wants us to
954 run recovery; should provide a little more detail on the actual error
956 Revision 614.90 2004/03/21 22:32:24 ajc
957 * room_ops.c: increased the thread safety of cgetfloor()
958 * housekeeping.c: check floor reference counts in two passes instead of
959 trying to manipulate multiple tables in O^2
961 Revision 614.89 2004/03/21 17:14:46 error
962 * stress.c: Fixed. Now properly spawns threads and stresses out your
963 favorite Citadel server by simulating large numbers of really active
964 users. (It's configurable on the command line, too, to vary the stress
965 level.) Don't use it against a production system! You've been warned!
967 Revision 614.88 2004/03/21 17:13:15 error
968 * configure.ac: Fix for defines for pthreads not being included properly
970 Revision 614.87 2004/03/21 06:15:06 ajc
971 * docs/citadel.html: documented TLS support and administration procedures
973 Revision 614.86 2004/03/20 22:32:06 ajc
974 * citadel.rc: changed the comments around local_screen_dimensions= to
975 reflect its legacy type of situation
977 Revision 614.85 2004/03/16 22:44:15 ajc
978 * Better conversion of friendly name to fully qualified vcard name
980 Revision 614.84 2004/03/16 21:09:37 ajc
981 * Eliminate EVT_OUTPUTMSG server extensions (don't need them anymore)
982 * Add EVT_NEWUSER server extensions
983 * EVT_NEWUSER and EVT_PURGEUSER server extensions now specify a
984 struct ctdluser * instead of a username and usernum
985 * serv_vcard.c: automatically create and submit a skeleton vCard when
986 a new user is created.
988 Revision 614.83 2004/03/16 19:05:50 error
989 * Further changes to stress.c, Makefile.in to build it, .cvsignore
990 (but it's still broken)
992 Revision 614.82 2004/03/15 18:11:34 error
993 * stress.c: various fixed/improvements (but it still isn't working)
995 Revision 614.81 2004/03/15 17:22:14 error
996 * First draft of the stress tester. Isn't quite ready (it needs to be
999 Revision 614.80 2004/03/15 16:48:22 error
1000 * Documentation update: update citadel.html for new syslog logging
1002 Revision 614.79 2004/03/15 16:47:04 error
1003 * msgbase.c: cmd_move(): Fix the security logic for non-aides trying to
1004 move or copy messages. The logic should do the following:
1005 * Allow move/copy for Aides
1006 * Allow regular users to:
1007 * Move a message between two personal rooms
1008 * Copy a message from a Personal room to a room the user is subscribed to
1009 * Copy a message from a room the user is subscribed to, to a personal room
1010 * Prohibit other moves/copies
1012 Revision 614.78 2004/03/15 16:39:27 error
1013 * Multiple files: Set permissions on existing Citadel directories to prevent
1014 access to the database by local unix users to prevent direct database reads.
1016 Revision 614.77 2004/03/15 16:36:50 error
1017 * Multiple files: Convert most remaining client code to use new Citadel IPC
1018 functions. A few bits remain and will be converted when the chat system
1021 Revision 614.76 2004/03/14 06:35:46 ajc
1022 * Cache IMAP "BODY" fetches in an already-converted format. This speeds
1023 up clients like Mozilla and Thunderbird that request big messages in
1024 chunks -- we don't have to load and convert the message every time
1025 another chunk is requested.
1026 * Fixed a potential memory leak in fetch
1028 Revision 614.75 2004/03/13 23:26:10 ajc
1029 * imap_fetch.c: don't fetch the message from disk at all for UID and FLAGS
1030 fetch items. (It's rare, but sometimes IMAP optimizations are actually
1031 possible, despite IMAP's brain-dead design!)
1033 Revision 614.74 2004/03/13 22:52:05 ajc
1034 * Documented the GNET and SNET commands :)
1036 Revision 614.73 2004/03/12 19:35:13 error
1037 * routines2.c: Fix two typos
1039 Revision 614.72 2004/03/12 19:32:09 error
1040 * routines2.c: Convert multiple functions to use new IPC code (almost done!)
1042 Revision 614.71 2004/03/12 19:30:06 error
1043 * citadel.c: main(): Fix error response for RCHG, HCHG and UCHG commands.
1045 Revision 614.70 2004/03/12 19:28:04 error
1046 * Implement GNET/SNET commands in IPC code; provide a CtdlIPC_delete();
1047 emit warnings when client code uses CtdlIPC_getline() or CtdlIPC_putline()
1048 (These are reserved and should not be used by client code.)
1050 Revision 614.69 2004/03/10 04:50:04 ajc
1051 * serv_expire.c: auto-purge any Citadel account that is associated with
1052 a Unix account that no longer exists.
1054 Revision 614.68 2004/03/09 20:46:33 error
1055 * Add a Linux Software Map file
1057 Revision 614.67 2004/03/08 05:26:49 ajc
1058 * When the last argument of an IMAP APPEND command is a binary literal
1059 (i.e. all the time), the client will still be sending a CRLF after the
1060 literal. Added an extra client_read() after the message input to absorb
1061 that extra CRLF, to keep client and server from getting out of sync.
1063 Revision 614.66 2004/03/06 05:09:04 ajc
1064 * serv_smtp.c: don't offer the STARTTLS extension if TLS is already
1065 active. Done for to-the-letter compliance with RFC2487.
1067 Revision 614.65 2004/03/06 02:03:39 ajc
1068 * serv_smtp.c: do not offer the PIPELINING extension when TLS is
1069 running. Doing so causes sessions to hang unexpectedly.
1071 Revision 614.64 2004/03/05 23:21:25 ajc
1072 * Added some more debugging to serv_smtp.c to try to figure out the
1073 problem with Postfix TLS hanging during send
1075 Revision 614.63 2004/03/05 03:36:03 ajc
1076 * Remove the automatic population of A and N fields we recently added
1077 when found to be NULL. It was confusing the output functions into
1078 thinking that Internet messages were local.
1080 Revision 614.62 2004/03/03 05:43:29 ajc
1081 * Generate better output when a user is kicked out of chat
1083 Revision 614.61 2004/03/01 22:36:14 ajc
1084 * Implement the NAMESPACE extension of IMAP (RFC 2342)
1086 Revision 614.60 2004/03/01 17:47:28 error
1087 * Fix missing arg in m<Y> next rewrite.
1089 Revision 614.59 2004/03/01 17:33:30 error
1090 * Rewrite m<Y> next function; now uses CtdlIPC code.
1092 Revision 614.58 2004/03/01 04:08:34 ajc
1093 * Revoke access to room when /kicked
1095 Revision 614.57 2004/02/29 23:26:48 ajc
1096 * Added /kick command to chat. /ban coming soon.
1098 Revision 614.56 2004/02/28 16:37:41 ajc
1099 * setup.c: removed an unused temp file name variable
1101 Revision 614.55 2004/02/27 17:23:21 error
1102 * Use syslog-compatible logging levels in lprintf(); the loglevel chosen
1103 is passed directly to syslog(). The available levels are docuemnted in
1106 Revision 614.54 2004/02/27 04:29:00 ajc
1107 * Fixed a bug in PLAIN authentication
1109 Revision 614.53 2004/02/26 22:03:24 error
1110 * ;Goto floor now goes to first KNOWN room, or first room only if no known
1113 Revision 614.52 2004/02/26 20:30:36 error
1114 * Populate IPC into a few more places to avoid a nasty crash at MORE prompt
1116 Revision 614.51 2004/02/26 20:17:29 error
1117 * Client stability and enhancements:
1118 * CtdlServInfo structure moved inside CtdlIPC; eliminates unnecessary
1119 global and makes IPC more self-contained
1120 * Removed redundant serv_ from variable names in CtdlServInfo struct
1121 * Send SIGHUP to process group when connection_died(). Kills self and
1122 children (e.g. external editor).
1124 Revision 614.50 2004/02/25 01:35:34 error
1125 Missing parameter to a printf() function. No idea where it went, but I
1128 Revision 614.49 2004/02/24 05:09:06 ajc
1129 * Better validation of incoming network messages.
1131 Revision 614.48 2004/02/23 16:10:47 nbryant
1132 --disable-pie by default.
1134 Revision 614.47 2004/02/22 04:55:15 ajc
1135 * CSR code more or less in its final form for now.
1137 Revision 614.46 2004/02/22 04:42:05 ajc
1138 * Initial version of function to automatically generate a Certificate
1139 Signing Request if one is not present
1141 Revision 614.45 2004/02/20 19:29:05 error
1142 * Fix bug 112: .Goto allowed partial room match on forgotten rooms
1144 Revision 614.44 2004/02/20 02:55:18 ajc
1145 * Fixed one of the prompts (bugzilla #118)
1147 Revision 614.43 2004/02/19 04:12:56 ajc
1148 * Instead of doing the silly "Kolab reserved folder names" thing, instead
1149 implemented the Cyrus-compatible style of forcing all personal mailbox
1150 folders to be subfolders of INBOX. But only for IMAP.
1152 Revision 614.42 2004/02/18 14:46:05 ajc
1153 * smtp: EHLO response now includes both "AUTH " and "AUTH=" output, due to
1154 the requirement to interoperate with brain-dead Microsoft shitware that
1155 doesn't follow the RFC.
1157 Revision 614.41 2004/02/17 16:56:51 ajc
1158 * During SSL initialization, create the "keys" directory if it does not
1159 exist ... generate a private key if that does not exist ... more code
1160 coming soon to generate CSR and self-signed cert. Hard-coded pathnames
1161 have been moved to sysconfig.h.
1163 Revision 614.40 2004/02/17 04:47:22 ajc
1164 * Support PLAIN auth method in SMTP
1166 Revision 614.39 2004/02/17 03:53:11 ajc
1167 * New ICAL subcommand "sgi" to enable or disable automatic server
1168 generated invitations. (WebCit wants sgi's but Kontaqt doesn't.)
1170 Revision 614.38 2004/02/16 21:54:22 ajc
1171 * Support POP3 over TLS
1173 Revision 614.37 2004/02/16 21:45:43 ajc
1174 * Implement RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
1176 Revision 614.36 2004/02/16 21:02:28 ajc
1177 * IMAP and Citadel protocols now use the same code path for TLS negotiation
1179 Revision 614.35 2004/02/16 20:55:47 ajc
1180 * Genericized the Citadel API for TLS-enabling protocols
1182 Revision 614.34 2004/02/16 18:16:39 error
1183 * Remove some unnecessary and possibly hazardous debugging code leftover
1184 from debugging IMAP STARTTLS
1186 Revision 614.33 2004/02/16 18:14:00 error
1187 * Fixed IMAP STARTTLS; trouble was in client_read_ssl the whole time.
1188 It should now be possible to implement SSL/TLS for any protocol.
1190 Revision 614.32 2004/02/16 18:13:10 error
1191 * Log session IDs in syslog as well as stderr
1193 Revision 614.31 2004/02/16 15:06:44 error
1194 * Add specific error codes for every command on the wire protocol, so that
1195 clients can more easily determine what went wrong. Partially updated
1196 session.txt (will finish it later). This lets clients more easily
1197 determine what, if anything, went wrong with a particular command.
1199 Revision 614.30 2004/02/15 06:06:49 ajc
1200 * More work on IMAP TLS. Still not working correctly. :( Added in
1201 support for server-side certificates. Now instead of failing it hangs.
1203 Revision 614.29 2004/02/14 04:41:55 ajc
1204 * STARTTLS attempt #2. Still disabled because it's broken.
1206 Revision 614.28 2004/02/13 20:51:13 error
1207 * Reset screen attributes before fork() so that external programs do the
1210 Revision 614.27 2004/02/12 04:16:38 ajc
1211 * Support for PLAIN logins in IMAP (need to test!)
1213 Revision 614.26 2004/02/11 03:50:49 ajc
1214 * The groupware folders "Calendar", "Contacts", "Notes", and "Tasks" are
1215 now presented as subfolders of INBOX when using IMAP. This is for the
1216 purpose of Kolab compatibility.
1218 Revision 614.25 2004/02/09 22:40:57 error
1219 * oops...also close the client on EOF/error on tty OUTPUT
1221 Revision 614.24 2004/02/09 22:26:17 error
1222 * Exit the citadel client when EOF reached on input - should prevent
1223 a process from hanging around when a telnet connection dies unexpectedly
1225 Revision 614.23 2004/02/08 05:29:34 ajc
1226 * Corrected various small syntax conversion problems that were keeping
1227 some vCards out of the LDAP directory.
1229 Revision 614.22 2004/02/07 05:28:10 ajc
1230 * Automatically purge files from ./network/spoolout which were intended
1231 for nodes which no longer exist
1233 Revision 614.21 2004/02/07 04:59:21 ajc
1234 * Cache the IGnet config in memory, avoiding a db fetch for every single
1235 operation which references it. Invalidate the cache when a new config
1237 * When doing network spool for a room, automatically remove shares for
1238 Citadel nodes which no longer exist.
1240 Revision 614.20 2004/02/07 04:22:12 ajc
1241 * serv_network.c: fixed a problem with an uninitialized data structure
1243 Revision 614.19 2004/02/06 04:40:50 ajc
1244 * Suppress posting of messages to Aide> when the loopzapper catches dupes.
1245 * New command NSYN to sync the entire contents of a room to a specified
1246 network node. This will be used to bring new nodes in sync with existing
1249 Revision 614.18 2004/02/06 03:58:10 ajc
1250 * Added some comments to the sample citadel-slapd.conf
1252 Revision 614.17 2004/02/06 03:52:46 ajc
1253 * Changed the domain name and password in the sample slapd.conf
1255 Revision 614.16 2004/02/05 05:20:20 ajc
1256 * Delete a user's LDAP entry when deleting the vCard. NOT TESTED.
1258 Revision 614.15 2004/02/05 03:54:14 ajc
1259 * Completed the per-user initialization of LDAP entries.
1261 Revision 614.14 2004/02/04 18:27:25 error
1262 * Don't delete temp file when composing message until after server writes
1263 it successfully (or an error occurs in the client itself).
1265 Revision 614.13 2004/02/04 04:07:56 ajc
1266 * More work on LDAP connector
1268 Revision 614.12 2004/02/01 06:19:22 ajc
1269 * policy.c: fix bug in GetExpirePolicy() that was causing the default
1270 mailbox purge policy to be misinterpreted if it was set to "use
1272 * serv_vcard.c: always set the Global Address Book room's expire policy
1273 to "never expire" and its default view to "address book"
1275 Revision 614.11 2004/01/31 05:44:29 ajc
1276 *** empty log message ***
1278 Revision 614.10 2004/01/27 19:56:29 ajc
1279 * serv_smtp.c: HELO and EHLO responses now reply with the detected
1280 IP address and reverse DNS lookup of the connecting host
1282 Revision 614.9 2004/01/24 05:47:50 ajc
1283 * Got Citadel talking to LDAP. Still requires manual creation of schema
1284 and container entries, which I don't like; we'll have to fix that. It
1285 also does not yet populate all fields.
1287 Revision 614.8 2004/01/19 21:01:15 error
1288 * Clear out the autom4te.cache when bootstrapping to avoid autoheader problems
1290 Revision 614.7 2004/01/19 04:44:11 ajc
1291 * Further work on creating LDAP entries.
1293 Revision 614.6 2004/01/18 21:04:40 ajc
1294 * Reworked vCard etc. functions for addition of new vCard data to LDAP
1296 Revision 614.5 2004/01/17 22:57:54 ajc
1297 * Added "Base DN" "Bind DN" and "Bind DN password" config options
1298 * serv_ldap.c: added. (New module implementing the LDAP Connector)
1299 * Upon startup, connect to LDAP directory and bind to it. Unbind at exit.
1301 Revision 614.4 2004/01/17 04:23:28 ajc
1302 * Sysconfig commands for specifying where the LDAP server lives
1304 Revision 614.3 2004/01/17 03:26:17 ajc
1305 * Changed a diagnostic in msgbase.c to a higher logging level so it doesn't
1307 * Setup now adds "-x3 -llocal4" to the default inittab line.
1309 Revision 614.2 2004/01/17 03:17:34 ajc
1310 * New server command-line option "-l" to send log output to the host
1311 computer's syslog facility instead of to a trace file.
1313 Revision 614.1 2004/01/02 22:13:59 ajc
1314 * Link to OpenLDAP client library (-lldap) and set HAVE_LDAP if present.
1316 Revision 614.0 2003/12/30 04:13:40 ajc
1319 Revision 613.12 2003/12/30 04:13:31 ajc
1320 * Commented out one of the supplied .RU commands in citadel.rc
1322 Revision 613.11 2003/12/24 05:02:49 ajc
1323 * Allow a separate default message expire policy for mailbox rooms. The
1324 floor default setting is now ignored for mailboxes. Updated client and
1325 documentation to match.
1327 Revision 613.10 2003/12/23 03:53:49 ajc
1328 * Expanded the size of all string fields in "struct CtdlIPCMessage" to
1329 the standard SIZ length, in order to accomodate "weird" messages
1330 without crashing. Also converted many strcpy()'s to safestrncpy()'s
1331 while populating this data structure, to avoid overruns.
1333 Revision 613.9 2003/12/22 16:49:36 error
1334 * Add Preview for Mac OS X as an image viewer option in citadel.rc
1336 Revision 613.8 2003/12/22 15:30:53 error
1337 * Fork image viewer process in background (works now); suppress
1338 stdout/stderr from the image viewer
1340 Revision 613.7 2003/12/21 20:02:28 error
1341 * When viewing images, append the image filename to the temp filename so
1342 that less-intelligent viewers can deal with the images
1344 Revision 613.6 2003/12/21 19:07:28 error
1345 * Start a new thread and fork() for image viewer (broken/disabled; for
1348 Revision 613.5 2003/12/21 01:23:12 nbryant
1349 added some additional comments to citadel.rc concerning possible image viewers
1351 Revision 613.4 2003/12/21 00:44:19 error
1352 * Fix for idle_threshold being ignored when reading citadel.rc
1354 Revision 613.3 2003/12/21 00:37:54 error
1355 * Fix for crash when downloading multiple attachments
1357 Revision 613.2 2003/12/21 00:19:41 error
1358 * Image viewer code for the text client. Hit 'I' to view an image
1359 attached to a file. Hey aahz, this code actually works!
1361 Revision 613.1 2003/12/19 04:33:52 ajc
1362 * Changes to auto-expunge algorithm to support correct behavior in
1363 some IMAP clients while moving messages.
1365 Revision 613.0 2003/12/15 16:37:01 ajc
1368 Revision 612.14 2003/12/15 16:33:47 ajc
1369 * Added support for "Cc" and "Bcc" IMAP SEARCHes
1370 * Bumped the version number to 6.13
1372 Revision 612.13 2003/12/11 04:21:23 ajc
1373 * Removed a "FIXME this needs blah blah" comment because blah blah has
1374 since been completed
1376 Revision 612.12 2003/12/11 04:06:55 nbryant
1377 configure.ac: add support for position-independent executables. can be disabled
1380 Revision 612.11 2003/12/11 03:44:18 nbryant
1381 domain.c: include <arpa/nameser_compat.h> if present
1382 configure.ac: check for <arpa/nameser_compat.h>
1384 Revision 612.10 2003/12/10 03:58:26 ajc
1385 * Completed a more accurate implementation of the ENVELOPE fetch in IMAP.
1387 Revision 612.9 2003/12/09 06:39:19 nbryant
1388 did a minimal amount of ANSIfication without changing anything that would
1389 affect the compiler output in any way. I was just trying to get enough warnings
1390 enabled to be able to tell if there are any nested functions lurking about...
1392 If we get rid of nested functions we can get some big security gains under
1395 Revision 612.8 2003/12/09 05:12:49 ajc
1396 * Don't give away anonymous poster information in IMAP or RFC822
1398 Revision 612.7 2003/12/09 04:50:16 ajc
1399 * Painstakingly combed through IMAP headers and responses for two hours in
1400 an attempt to figure out why the horrendous pile of crap called Microsoft
1401 Outlook counts the correct number of messages but wasn't displaying any
1402 of them. Eventually determined that it was ONE EXTRA SPACE after the
1403 closing paren of the ENVELOPE output that caused Outlook to totally ignore
1404 all the messages. This only reinforces my belief that anything designed
1405 in the state of Washington is utter and complete CRAP.
1406 * Corrected the above glitch. Outbreak works properly now.
1408 Revision 612.6 2003/12/09 03:56:29 ajc
1409 * user_ops.c: missing string declaration or something?
1411 Revision 612.5 2003/12/08 17:41:01 ajc
1412 * serv_smtp.c: validated and documented compliance with a big pile of RFC's
1413 which are in one way or another related to SMTP.
1415 Revision 612.4 2003/12/07 19:59:13 error
1416 * Minor enhancements to a few of the trace file entries
1418 Revision 612.3 2003/12/07 19:57:48 error
1419 * Added some useless comments to some of the techdocs/ files
1421 Revision 612.2 2003/12/07 19:56:24 error
1422 * CREU command now allows specification of an initial password
1424 Revision 612.1 2003/12/04 04:20:08 ajc
1425 * Incoming RFC822 messages get the To: field translated directly to
1426 a Citadel <R> field.
1428 Revision 612.0 2003/12/01 04:11:48 ajc
1431 Revision 611.10 2003/11/30 03:43:34 ajc
1432 * Support IMAP \Answered flag
1434 Revision 611.9 2003/11/22 03:30:14 ajc
1435 * Commented out the call to the 'high speed download' function and
1436 uncommented the call to the original 'chatty' download function. Some
1437 users were reporting lockups.
1439 Revision 611.8 2003/11/14 20:15:44 ajc
1440 * Reversed the previous change because it made things b0rken
1442 Revision 611.7 2003/11/14 20:04:28 ajc
1443 * IMAP FETCH ENVELOPE now outputs more fields correctly.
1445 Revision 611.6 2003/11/14 03:49:54 ajc
1446 * MUCH faster implementation of rfc822_fetch_field()
1448 Revision 611.5 2003/11/13 04:25:38 ajc
1449 * mime_parser.c: handle multipart *much* more efficiently now. Instead
1450 of scanning line by line, we snag the boundaries using the Boyer-Moore
1453 Revision 611.4 2003/11/12 04:28:22 ajc
1454 * Replaced bmstrcasestr() with a more generic function, bmstrstr(), which
1455 can be supplied with *any* strncmp()-compatible compare function.
1457 Revision 611.3 2003/11/08 06:46:08 ajc
1458 * IMAP FETCH BODY<xxx.yyy> was outputting the offset and length in the
1461 Revision 611.2 2003/11/08 06:29:47 ajc
1462 * IMAP FETCH FLAGS ... removed extra trailing space after last flag
1464 Revision 611.1 2003/11/06 04:25:30 ajc
1465 * For certain IMAP outputs (such as BODYSTRUCTURE), buffer all output until
1466 we've got the whole thing, then spew it all at once to avoid lots of
1468 * New API calls buffer_output() (to start buffering) and unbuffer_output()
1469 (to dump the buffer and stop buffering) are available to do this.
1471 Revision 611.0 2003/10/21 04:20:41 ajc
1474 Revision 610.22 2003/10/17 02:18:40 ajc
1475 * Replaced the DEFAULT_ENTRY definition in sysconfig.h with a new option
1476 "reply_with_external_editor" in citadel.rc.
1478 Revision 610.21 2003/10/14 03:09:47 ajc
1479 * routines2.c: fixed an off-by-one error in filename sanitization for
1482 Revision 610.20 2003/10/10 05:43:57 ajc
1483 * citadel.c: Reworded one of the prompts
1485 Revision 610.19 2003/10/07 15:56:17 ajc
1486 * Better handling of incoming Internet addresses consisting of an address
1487 in angle brackets with no name outside the brackets.
1489 Revision 610.18 2003/09/21 04:10:56 ajc
1490 * messages.c: don't crash when a message contains more than MAXURLS of
1491 embedded URL's. Omit them instead.
1492 * citadel.rc: updated the sample browser remoting command for Macintosh
1493 based on a Mr.T suggestion
1494 * techdoc/session.txt: redid the writeup for the MOVE command (fixed a
1495 mistake and made the writeup clearer)
1497 Revision 610.17 2003/09/17 21:40:13 ajc
1498 * html.c: don't truncate messages when wacky characters are
1499 encountered. Substitute '?' characters instead. Now the Citadel
1500 community can complain about b0rken MS ASCII.
1502 Revision 610.16 2003/09/13 02:53:04 ajc
1503 * More intelligent selection of directory to save attachments
1505 Revision 610.15 2003/09/12 15:48:55 ajc
1506 * serv_smtp.c: remember whether we're SMTP or LMTP across a RSET command.
1508 Revision 610.14 2003/09/09 02:42:28 ajc
1509 * Documentation update for LMTP
1511 Revision 610.13 2003/09/09 01:47:02 ajc
1512 * Suppress domain forgery check when using LMTP
1514 Revision 610.12 2003/09/08 18:48:14 ajc
1515 * The unix domain socket used for citmail to talk to citserver now
1516 implements LMTP (RFC2033). Other LMTP client implementations (such as
1517 Postfix) can also use the socket, eliminating the need for citmail.
1519 Revision 610.11 2003/09/07 03:29:25 ajc
1520 * serv_network.c: aggressively poll any node for which we have data
1522 Revision 610.10 2003/09/06 02:04:54 ajc
1523 * Don't reset "last poll" time when not doing the "full" net processing
1525 Revision 610.9 2003/09/03 03:29:01 ajc
1526 * syslog messages now say session started/ended instead of ended/ended
1528 Revision 610.8 2003/09/03 03:24:40 ajc
1529 * client: remove rooms from the march list when zapping them (or the floors
1532 Revision 610.7 2003/09/02 15:05:34 ajc
1533 * Repaired an incorrect adjustment of floor reference counts when a room was
1534 moved to a different floor. (Thanks to Winzlo for reporting this.)
1536 Revision 610.6 2003/09/02 14:49:05 ajc
1537 * Improve client chat mode reliability and performance by assuming that all
1538 server output will be in complete lines. (This is a safe assumption.)
1540 Revision 610.5 2003/09/02 04:04:39 ajc
1541 * Don't try to directly spool to non-neighbor nodes
1543 Revision 610.4 2003/08/29 08:21:57 ajc
1544 * Do network runs more proactively. The inbound queue is now scanned
1545 every minute instead of every poll frequency.
1547 Revision 610.3 2003/08/21 23:26:06 ajc
1548 * setup.c: offer to disable "exim" if found
1550 Revision 610.2 2003/08/20 03:51:08 ajc
1551 * Bumped the internal version number to 6.11
1553 Revision 610.1 2003/08/20 03:36:13 ajc
1554 * Create a "Contacts" room for personal address book use
1556 Revision 610.0 2003/08/17 03:00:37 ajc
1559 Revision 609.2 2003/08/17 02:58:46 ajc
1560 * Changed internal version number to 6.10
1562 Revision 609.1 2003/08/17 02:46:37 ajc
1563 * Don't fail on "data files too old to be upgraded" for NEW installations
1565 Revision 609.0 2003/08/14 03:40:55 ajc
1568 Revision 608.21 2003/08/13 18:08:24 ajc
1569 * Removed the last vestiges of the now-obsolete global networking password
1571 Revision 608.20 2003/08/13 14:36:04 ajc
1572 * "make install" now installs the contents of docs/ as well as README.txt
1574 Revision 608.19 2003/08/13 14:30:47 ajc
1575 * Temporarily disabled IMAP TLS support due to the discovery of some
1576 compatibility problems. It will be re-enabled when they are fixed.
1578 Revision 608.18 2003/08/12 00:39:35 ajc
1579 * setup now knows about lots of other mail programs it can disable (various
1580 flavors of Cyrus and Courier, for example)
1581 * setup now ensures that it really did startup/shutdown the Citadel service,
1582 and displays an error message when that fails.
1583 * "make install" now instructs the user run "setup"
1584 * Removed an old GDBM reference from the documentation
1586 Revision 608.17 2003/08/05 03:06:58 ajc
1587 * Added a README.txt file because some Joker kept bugging me about it
1588 * Reloaded the code that extracts embedded URL's to a place where it'll
1589 get picked up on *every* message, not just the old variformat stuff
1591 Revision 608.16 2003/08/03 17:51:52 ajc
1592 * Clear out all masqueraded wholist fields when logging out, in case another
1593 user logs in without reconnecting.
1595 Revision 608.15 2003/07/30 20:36:18 ajc
1596 * Allow users to authenticate with either their display name or any valid
1597 e-mail address which belongs to them. Applies to all protocols.
1599 Revision 608.14 2003/07/30 03:54:34 ajc
1600 * Fixed a small client bug in the purge hour setting
1602 Revision 608.13 2003/07/30 03:47:53 ajc
1603 * Eliminated the EXPI command
1604 * Completed the configuration item of "purge hour"
1605 * Auto-purger now runs as a scheduled job
1607 Revision 608.12 2003/07/30 00:26:50 ajc
1608 * Removed the "weekly" script and began installing a facility to allow
1609 database maintenance to happen automatically. (One Step Install can't
1610 require the sysadmin to know cron)
1612 Revision 608.11 2003/07/28 04:17:24 ajc
1613 * migratenet.c: removed. Adjusted Makefile.in accordingly.
1615 Revision 608.10 2003/07/27 21:15:23 ajc
1616 * Implemented all IMAP date-based search criteria. Note that Citadel does
1617 not record an "internal date" of a message, so the "sent date" and "internal
1618 date" searches perform identically.
1619 * Date search comparisons available: "before," "on," or "on or after." Yet
1620 another example of IMAP's gratuitous complexity.
1622 Revision 608.9 2003/07/26 04:49:40 ajc
1623 * Implemented a bunch of the IMAP SEARCH keywords
1625 Revision 608.8 2003/07/26 04:28:44 ajc
1626 * tools.c: added bmstrcasestr(), a Boyer-Moore, case-insensitive string search
1627 * imap_search.c: implement BODY criterion in search command
1629 Revision 608.7 2003/07/24 04:57:53 ajc
1630 * Began implementation of the IMAP SEARCH command. Basically just got the
1631 parser working and stubbed all the search criteria. Next step is to
1632 implement the functionality of each criterion keyword.
1633 * Implemented the functionality for the ALL (wow!) and UID criteria.
1635 Revision 608.6 2003/07/23 03:57:05 ajc
1636 * Optimized the updating of visit records in several places by checking to
1637 see if they've changed and aborting the db update if they haven't.
1638 * Functions which read/write user records are now slightly faster due to
1639 an improvement of the algorithm used to generate the database keys.
1641 Revision 608.5 2003/07/22 03:07:50 nbryant
1642 fix build for Solaris
1644 Revision 608.4 2003/07/20 20:46:06 ajc
1645 * build system: link Berkeley DB only to the server, not to the client & utils
1647 Revision 608.3 2003/07/20 03:51:46 ajc
1648 * setup.c: offer to disable sendmail, postfix, and qmail if found (only if
1649 using the /etc/init.d type of startup scripts)
1651 Revision 608.2 2003/07/20 03:08:22 ajc
1652 * setup.c: offer to hack /etc/xinetd.d/telnet
1654 Revision 608.1 2003/07/15 14:54:09 ajc
1655 * Killed off CtdlGetDynamicSymbol() and just put all the symbols in server.h
1657 Revision 608.0 2003/07/15 04:12:52 ajc
1660 Revision 607.23 2003/07/14 17:26:42 ajc
1661 * strcpy() --> safestrncpy() in a few other random places
1663 Revision 607.22 2003/07/14 17:12:28 ajc
1664 * Replaced strcpy() with safestrcpy() in cmd_setp()
1666 Revision 607.21 2003/07/14 03:07:05 ajc
1667 * ipgm_secret is no longer set during setup. Now it is set at server startup
1668 and automatically changes whenever an IPGM command is executed.
1669 * Upon an IPGM authentication failure, wait 5 seconds before displaying an
1670 error, then disconnect the session.
1672 Revision 607.20 2003/07/13 04:58:35 ajc
1673 * Allow connect on unix domain sockets to Citadels in other directories
1674 * sendcommand now uses unix domain sockets instead of the network
1675 * Do not allow IPGM command to run on the network -- unix domain sockets only
1677 Revision 607.19 2003/07/11 22:33:02 ajc
1678 * Ignore comments in public_clients file
1680 Revision 607.18 2003/07/11 22:30:19 ajc
1681 * Automatically add 127.0.0.1 and config.c_fqdn to public_clients
1683 Revision 607.17 2003/07/11 22:19:49 ajc
1684 * is_public_client() now caches the IP addresses of all hosts in
1685 the public_clients file, at server startup and whenever the file is
1686 modified. This eliminates the need to make lots of calls to the
1687 resolver library every time.
1689 Revision 607.16 2003/07/10 05:51:46 ajc
1690 * Added cs_addr field to struct CitContext -- holds a dotted quad string
1691 of the user's source IP (if applicable). It's big enough to hold other
1692 types of address strings in the future (such as IPv6).
1693 * locate_host() populates cs_addr when on a network connection.
1694 * serv_smtp.c now saves the IP address in the proper place in
1695 the Received: header.
1696 * is_public_client() no longer accepts a hostname. It just looks at
1697 CC->cs_host instead.
1699 Revision 607.15 2003/06/29 19:54:39 ajc
1700 * Renamed "struct user" to "struct ctdluser"
1701 * Renamed "struct room" to "struct ctdlroom"
1703 Revision 607.14 2003/06/29 04:13:32 ajc
1705 S_QUICKROOM to S_ROOMS
1706 S_USERSUPP to S_USERS
1707 CDB_QUICKROOM to CDB_ROOMS
1708 CDB_USERSUPP to CDB_USERS
1710 Revision 607.13 2003/06/29 04:07:11 ajc
1711 * Globally renamed "struct quickroom" and "struct usersupp" to
1712 "struct room" and "struct user".
1714 Revision 607.12 2003/06/29 04:06:41 ajc
1715 *** empty log message ***
1717 Revision 607.11 2003/06/29 03:58:41 ajc
1718 * Renamed fields in 'struct config' which are no longer relevant (but kept
1719 them in place to avoid corrupting everyone's data files). Removed them
1720 entirely from serv_vandelay.c.
1722 Revision 607.10 2003/06/28 05:12:56 ajc
1723 * Bump internal version number to 6.08
1724 * Use (-1) instead of BBSUID as the uid of user records which exist only
1725 in Citadel and not in the system password database. serv_upgrade also
1726 changes this setting for ALL such users, the first time the server is run
1727 after upgrading to 6.08
1729 Revision 607.9 2003/06/27 22:19:31 error
1730 * routines2.c: Quick and dirty fix for Mail> becoming new after entering a
1733 Revision 607.8 2003/06/26 01:50:14 ajc
1734 * Compiler warning fix for building setup without newt
1736 Revision 607.7 2003/06/25 15:40:57 ajc
1737 * setup now uses "newt" instead of "curses" to draw its pretty screens.
1738 Changes were made to setup.c as well as all the autoconf stuff.
1740 Revision 607.6 2003/06/25 02:40:05 ajc
1741 * Per-user and global flags calling for validation need to be set in the
1742 vCard upload thingie, not in the wrapper function that emulates the
1743 deprecated REGI server command. Moved it to the correct place.
1745 Revision 607.5 2003/06/22 20:49:31 error
1746 * citadel.c: display idle times in wholist up to 999 days
1748 Revision 607.4 2003/06/19 04:12:30 ajc
1749 * domain.c: use qsort() to sort MX records by preference. Why have a
1750 custom function when the operating system provides one for free?
1751 * serv_smtp.c: accept mail from "<>" (empty sender). RFC1123 5.2.9 demands it.
1753 Revision 607.3 2003/06/19 03:55:22 ajc
1754 * Fixed a subtle but ugly bug in the SMTP sender that was causing it to
1755 ignore all successful connections except the last one. Now when it gets
1756 a connection it uses it.
1758 Revision 607.2 2003/06/17 22:05:11 ajc
1759 * New format for wholist.
1761 Revision 607.1 2003/06/16 04:39:45 ajc
1762 * support.c: removed an unused variable
1763 * citadel.c: sort wholist by idle time (most recently active users first)
1765 Revision 607.0 2003/06/10 04:15:39 ajc
1768 Revision 606.10 2003/06/04 21:46:13 error
1769 * citadel.c: Added a missing #ifdef __CYGWIN__
1771 Revision 606.9 2003/06/04 21:39:27 error
1772 * Numerous fixups needed for Windows port:
1773 * cmd_mesg() rewritten to use the stat() syscall to find files
1774 * really_do_keepalive() does not try to send if we are not connected
1775 * Misc. fixups; added Windows readme file
1777 Revision 606.8 2003/06/04 21:30:39 error
1778 * messages.c: When file attachment has no name, use message subject as name
1780 Revision 606.7 2003/06/02 23:11:00 error
1781 * Checkin installer script citadel.nsi for NSIS Windows installer
1783 Revision 606.6 2003/06/02 03:01:22 ajc
1784 * citserver.c: added another trace message to is_public_client(). Uncensored
1785 has crashed twice in this function, for no apparent reason.
1786 * internet_addressing.c: don't attempt to look up the specified Internet
1787 address in a Citadel directory, if the supplied address has no hostname
1788 portion. (Fixes a crash in the calendar service when alias() attempts to
1789 look up potentially nonexistent attendees during event validation)
1791 Revision 606.5 2003/05/28 03:08:38 ajc
1792 * msgbase.c: validate_recipients() now rejects Internet addresses in
1793 domains belonging to the local system or an attached Citadel network,
1794 when it fails to translate to a Citadel address.
1796 Revision 606.4 2003/05/26 05:36:25 ajc
1797 * citadel.h: changed internal version number to 6.07
1798 * file_ops.c: #include <ctype.h>
1799 * migratenet.c: #include <ctype.h>
1801 Revision 606.3 2003/05/26 05:30:18 ajc
1802 * serv_calendar.c: fixed a bug in the "ICAL freebusy" subcommand which
1803 caused it to always fetch the logged in user's freebusy times instead
1804 of the user specified.
1806 Revision 606.2 2003/05/22 13:34:30 ajc
1807 * database_sleepycat.c: added a couple of diagnostic messages to help
1808 troubleshoot problems with db-4.1.25 on Red Hat Linux 9
1809 * room_ops.c: call mkdir() instead of system() to create a directory
1811 Revision 606.1 2003/05/20 01:28:50 error
1812 * citadel.c: don't truncate roomname when user is idle, in long who list;
1813 display idle time in short who list
1815 Revision 606.0 2003/05/16 15:17:11 ajc
1818 Revision 605.50 2003/05/16 14:59:08 ajc
1819 * Removed the old rec_log() facility because the utilities which read its
1820 data are crufty, disused, and produce incorrect output.
1821 * Updated the documentation for the forthcoming 6.06 release.
1822 * public_clients: removed hostnames which crept in from development servers
1824 Revision 605.49 2003/05/16 04:07:37 nbryant
1825 make configure.ac automagically do the right thing on redhat 9
1826 remove crappy tolower() hack that was breaking the build on redhat 9
1827 (because the kerberized openssl includes ctype.h)
1829 before anyone yells at me, i did a little cvs archaeology on the tolower
1830 thing, and it appears to have been in the Citadel source base since,
1831 roughly, the Epoch. I doubt that the hack is needed any longer, and using
1832 the OS's tolower() will handle extended charsets.
1834 Anyone who is stupid enough to be using an OS with such a horribly broken
1835 tolower() can just scratch their head and figure things out for
1836 themselves. Citadel needs higher barriers to entry, there are too many
1837 weirdos on the IGnet lately. :-)
1839 Revision 605.48 2003/05/13 03:22:04 ajc
1840 * Implemented the IMAP STARTTLS command as specified in RFC 2595.
1842 Revision 605.47 2003/05/06 03:38:59 ajc
1843 * IMAP folder create and rename commands -- don't allow backslashes in
1846 Revision 605.46 2003/05/03 16:50:52 ajc
1847 * Change folder delimiter in room names from / to \
1849 Revision 605.45 2003/05/02 04:02:47 ajc
1850 * setup.c: allow specification of the Citadel system account by either
1852 * setup.c: tell init to re-read /etc/inittab by sending a SIGHUP to pid 1
1853 instead of hunting around for the correct init or telinit command
1854 * docs/citadel.html: documented the above change, and also rewrote some
1855 other stuff to be less BBS-specific
1857 Revision 605.44 2003/04/30 16:16:13 ajc
1858 * Minor fix to ESMTP greeting (missing '-' screwed up pipelining)
1860 Revision 605.43 2003/04/30 15:46:27 ajc
1861 * Added the ENHANCEDSTATUSCODES extention to ESMTP.
1863 Revision 605.42 2003/04/29 04:41:22 ajc
1864 * Fix an off-by-one error in the mime parser
1866 Revision 605.41 2003/04/29 04:13:58 ajc
1867 * mime parser: look for the "name=" subfield tacked onto either
1868 Content-type or Content-disposition, wherever it finds it.
1870 Revision 605.40 2003/04/28 16:56:51 ajc
1871 * Added a site-configurable setting to suppress the automatic correction of
1872 forged From: lines from authenticated SMTP users, for those who prefer
1873 strict RFC compliance instead of common sense.
1875 Revision 605.39 2003/04/26 21:55:15 ajc
1876 * Anytime a socket connect() fails, CLOSE THE SOCKET before erroring out.
1877 Not doing so causes a file descriptor leak.
1879 Revision 605.38 2003/04/26 04:22:51 ajc
1880 * Removal of individual "remote" lines from message delivery instruction sets
1881 was corrupting the end of the set, rendering the "bounceto" line unusable
1882 and preventing bounces from being delivered. Fixed this by explicitly
1883 adding a trailing newline when remove_token() strips it.
1885 Revision 605.37 2003/04/25 18:28:47 ajc
1886 * When rejecting spam, use SMTP error code 550, not 552
1888 Revision 605.36 2003/04/23 03:18:44 ajc
1889 * Allow IMAP STORE of more than one flag at a time (Mail.app from MacOS
1892 Revision 605.35 2003/04/15 02:44:02 ajc
1893 * Do not allow incoming network polls while an outbound network processing
1894 session is in progress.
1895 * tools.c: removed collapsed_strcmp() as it is no longer used anywhere
1897 Revision 605.34 2003/04/08 04:03:37 ajc
1898 * Implemented the ".SILENT" protocol option in IMAP STORE. Certain apps seem
1900 * Optimized the IMAP operations which scan for expunged and added messages.
1901 These loops no longer make multiple traversals through the message list.
1903 Revision 605.33 2003/04/07 05:02:23 ajc
1904 * Reworked all the "list rooms" operations so that they only require one
1905 pass through the database.
1906 * Repaired the "create floor" operation which was broken by the switch
1907 to the new IPC libray
1909 Revision 605.32 2003/04/02 13:33:28 ajc
1910 * Fixed output of "-0500" vs. "+0500" type of timezone stamps in RFC822.
1911 (I think they were reversed.)
1913 Revision 605.31 2003/04/01 05:01:08 ajc
1914 * sysdep.c: optimized MyContext() a bit, and inlined it. A little profiling
1915 revealed that this function was getting used super heavily.
1916 * tools.c: removed the older, slower string tokenizer functions that
1917 weren't getting used anymore.
1919 Revision 605.30 2003/03/31 04:55:58 ajc
1920 * Repaired the formatting of text/plain messages with blank lines.
1922 Revision 605.29 2003/03/30 06:16:52 ajc
1923 * Optimized CtdlReadMessageBody() and also gave it an option to store
1924 messages with CRLF newlines instead of LF. This option is used when
1925 reading SMTP in order to keep Pine from barfing on LF-terminated newlines
1926 while decoding quoted-printable. *sigh*
1928 Revision 605.28 2003/03/26 05:17:12 ajc
1929 * Downloading of attachments was completely broken by the change to the new
1930 protocol library. Located and fixed bugs.
1931 * html.c: increased the conversion buffer size
1933 Revision 605.27 2003/03/24 03:42:14 ajc
1934 * Add the ability to quit out while validating users. Also added a help
1935 option listing available access levels. This closes Bugzilla #37.
1937 Revision 605.26 2003/03/22 05:38:23 ajc
1938 * During startup, display the version string from the Berkeley DB library.
1939 * When deleting a mailbox, don't reveal the namespace prefix to the user.
1941 Revision 605.25 2003/03/20 08:37:04 error
1942 * connection_died(): Don't crash before printing message, crash afterward.
1945 Revision 605.24 2003/03/19 11:48:06 error
1946 * entmsg(): Don't corrupt the msg_arr[] when replying to a message in a room
1948 Revision 605.23 2003/03/19 04:04:56 ajc
1949 * Dropped support for GDBM and for versions of Berkeley DB prior to 4.1
1951 Revision 605.22 2003/03/18 05:15:05 ajc
1952 * Applied a patch sent in by Clint Adams <schizo@debian.org> to handle
1953 building on Debian's unstable with Berkeley DB 4.1, compiled with
1954 the --with-db-uniquename when errno is a macro (as in glibc 2.3.1).
1956 Revision 605.21 2003/03/17 11:56:35 error
1957 * Fix <G>oto in alternate_semantics - it actually marks messages read now.
1959 Revision 605.20 2003/03/17 04:03:14 ajc
1960 * Supply a NULL argument as the second argument to accept() instead of an
1961 empty buffer whose contents we never even look at.
1963 Revision 605.19 2003/03/16 05:07:12 ajc
1964 * Fixed the bug that caused freebusy publishes to crash.
1966 Revision 605.18 2003/03/15 23:05:08 ajc
1967 * Rewrite of calendar-to-freebusy conversion functions. This one creates
1968 freebusy in the correct format, instead of what I mistakenly assumed it
1969 was supposed to look like. :(
1971 Revision 605.17 2003/03/15 22:31:06 ajc
1972 * When scanning a user's Calendar> room for calendar events, search for
1973 MIME parts of type text/calendar instead of assuming that the event will
1974 always appear as part "1"
1976 Revision 605.16 2003/03/14 05:08:25 ajc
1977 * Clone calendar subcomponents before encapsulating in case they already
1978 happen to have a parent.
1980 Revision 605.15 2003/03/13 05:48:33 ajc
1981 * Move towards storing calendar objects as fully encapsulated VCALENDAR
1982 components instead of just VEVENT subcomponents.
1984 Revision 605.14 2003/03/12 03:33:54 ajc
1985 * More changes to the handling of RFC822 headers with regard to
1986 splitting up the headers and body. (Blank lines and such.)
1988 Revision 605.13 2003/03/11 06:23:50 ajc
1989 * More accurate handling of IMAP FETCH xx BODYSTRUCTURE command. This should
1990 make Pine happier with multipart messages.
1992 Revision 605.12 2003/03/10 05:38:21 ajc
1993 * Tweaks to msgbase.c and imap_fetch.c to fix slightly incorrect byte counts
1994 reported in the numerous variations of IMAP FETCH. This silences a number of
1995 error messages reported by Pine.
1997 Revision 605.11 2003/03/10 03:40:08 ajc
1998 * Fixed bug that caused segv when <R>eplying to certain messages
2000 Revision 605.10 2003/03/07 17:39:45 ajc
2001 * Remove the "modules" directory
2003 Revision 605.9 2003/03/06 04:58:11 ajc
2004 * When entering a message into Citadel with authenticated SMTP, stamp the
2005 room name as MAILROOM (Mail>) so it doesn't end up with an ugly moniker
2006 like "0000058008.Sent Items"
2008 Revision 605.8 2003/03/05 04:55:32 ajc
2009 * serv_smtp.c: when authenticated, do not log out when a RSET command is
2010 issued. This breaks clients which carelessly issue RSET before each
2011 message, such as Pine.
2012 * serv_smtp.c: when authenticated, ignore envelope FROM:<xxx> sender name
2013 and replace with address of user who authenticated. Also fixes Pine.
2014 * serv_smtp.c: when authenticated, not only do we continue our glorious
2015 RFC-violating condition of replacing the From: header with the user who
2016 is logged in, but we also stamp it with their preferred Internet address
2017 for outbound mail (which is kept in CC->cs_inet_email).
2019 Revision 605.7 2003/03/03 04:09:21 ajc
2020 * When creating a user, hide the "My Citadel Config>" room of the user being
2021 created, not the user currently logged in.
2023 Revision 605.6 2003/03/01 18:18:03 ajc
2024 * commands.c: alternate_semantics might have been getting set where it
2027 Revision 605.5 2003/03/01 17:25:33 ajc
2028 * citadel.rc default for alternate_semantics = no
2030 Revision 605.4 2003/02/23 05:34:45 ajc
2031 * When the <N>ew command is used to read new messages, the next "lazy"
2032 command (space bar) now always does <G>oto, regardless of the last one.
2034 Revision 605.3 2003/02/21 04:24:51 ajc
2035 * Completed the "ICAL freebusy" subcommand, which fetches free/busy times
2036 for any requested user (output in stripped-down VCALENDAR format)
2038 Revision 605.2 2003/02/20 04:51:17 ajc
2039 * Began framing up a command to view other users' free/busy times
2041 Revision 605.1 2003/02/19 22:38:43 ajc
2042 * Changed socklen_t to int (to allow compile on Macintosh)
2044 Revision 605.0 2003/02/19 03:46:01 ajc
2047 Revision 601.134 2003/02/17 05:23:20 ajc
2048 * Fixed a small bug in the GDBM backend (deprecated, but the bug was very
2049 obvious and a kind user pointed it out)
2050 * Removed vestiges of setjmp/longjmp from the client
2051 * When doing .TS, don't get caught in a constant-logout loop
2053 Revision 601.133 2003/02/14 16:12:04 ajc
2054 * Added support for any standard RBL
2056 Revision 601.132 2003/02/13 22:33:41 ajc
2057 * Fixed algorithm for reporting "last login"
2059 Revision 601.131 2003/02/13 21:52:13 ajc
2060 * IMAP service: fixed bug that was causing the wrong messages (usually *all*
2061 messages) to be flagged when a STORE or COPY operation was performed.
2063 Revision 601.130 2003/02/13 20:13:51 ajc
2064 * Applied "multi editor" patch supplied by georbit
2066 Revision 601.129 2003/02/12 04:51:44 ajc
2069 Revision 601.128 2003/02/10 04:50:33 ajc
2070 * More documentation updates
2072 Revision 601.127 2003/02/09 03:38:28 ajc
2073 * Updated the documentation some more
2075 Revision 601.126 2003/01/25 07:37:15 error
2076 * whobbs.c: Print error message if we can't connect to server
2078 Revision 601.125 2003/01/23 05:50:59 ajc
2079 * citadel.c: hitting enter without entering a room name in the <.G>oto and
2080 <.S>kip commands now does nothing instead of exhibiting undefined behavior
2082 Revision 601.124 2003/01/23 04:42:33 ajc
2083 * Began reviewing, updating, and HTML-izing the documentation
2085 Revision 601.123 2003/01/22 03:53:24 ajc
2086 * More reliablility hacks for autologin mode, and better quarantine of
2087 autologin code when it's disabled.
2089 Revision 601.122 2003/01/21 04:42:12 ajc
2090 * Moved login-to-screenname code ... no longer part of CtdlTryExistingUser(),
2091 it's now part of getuser() so it always gets called, even when looking up
2092 addresses for mail and stuff.
2094 Revision 601.121 2003/01/19 08:59:02 error
2095 * Remove irrelevant file hpsux.h (was part of dynloader)
2097 Revision 601.120 2003/01/19 05:55:59 ajc
2098 * serv_calendar.c: allocate dynamic symbol at module startup, not during
2099 each session startup. This error was causing crashes (of course).
2101 Revision 601.119 2003/01/18 06:18:20 ajc
2102 * whobbs.c: line up the columns better
2103 * routines2.c: when doing <.ASI> command, entering a blank hostname causes
2104 it to abort instead of adding a new host. Also strip l/t whitespace.
2106 Revision 601.118 2003/01/17 22:36:56 ajc
2107 * This commit is a figment of your imagination.
2109 Revision 601.117 2003/01/17 21:50:27 ajc
2110 * Began making some build changes for Cygwin compatibility
2112 Revision 601.116 2003/01/17 10:06:54 error
2113 * fmout(): Ignore \r (carriage return) characters in messages
2115 Revision 601.115 2003/01/17 04:36:04 ajc
2116 * whobbs.c: fix bad call to CtdlGetServInfo() so we can get our session ID
2117 and the name of the BBS
2119 Revision 601.114 2003/01/16 21:16:23 error
2120 * CtdlIPCGetMessages(): Fix message read failing on first attempt to read
2123 Revision 601.113 2003/01/16 10:04:03 error
2124 * ENT0 command: changed post-as username from arg 4 to arg 5; 4 was already
2125 used as the message subject
2126 * Convert message entry and reading to new IPC code
2127 * Minor bugfixes throughout IPC code
2129 Revision 601.112 2003/01/16 04:17:02 ajc
2130 * citadel_ipc.c: when issuing a SPEX command, send the string value for
2131 room/floor/site instead of the number. citserver wants a string.
2132 * ipc_c_tcp.c: don't call SSL_shutdown() from connection_died(). This just
2133 causes it to segfault because there's no valid socket.
2135 Revision 601.111 2003/01/16 03:41:45 ajc
2136 * Renamed "dynloader" to "serv_extensions" globally. We don't want people
2137 to think we have a dynamic loader, do we? :)
2138 * serv_*_init() is now declared in serv_extensions.h. This is definitely the
2139 wrong place for it. It's there temporarily until we decide on a new
2140 convention for server extensions.
2141 * bootstrap: more reliable detection of Red Hat Linux 7.3 -- more specifically,
2142 fewer fireworks when the host system is *not* Red Hat Linux.
2144 Revision 601.110 2003/01/15 16:34:53 ajc
2145 * bootstrap: don't check /etc/redhat-release if it doesn't exist (which is
2146 the case on all non Red Hat Linux systems)
2148 Revision 601.109 2003/01/15 05:57:09 ajc
2149 * First cut at static-linking the citserver. Ripped out libtool and
2150 replaced the dynloader paradigm with "server extensions" paradigm (static
2151 linked, but still very loosely coupled by way of using the API's to
2152 register callbacks and commands etc.) Needs more testing.
2154 Revision 601.108 2003/01/14 04:12:26 ajc
2155 * Set default view for new user Calendar> rooms to 3 (calendar)
2156 * Set default view for new user Tasks> rooms to 4 (tasks)
2158 Revision 601.107 2003/01/13 17:04:19 ajc
2159 * Add a sample URL view command for Macintosh in the included citadel.rc
2161 Revision 601.106 2003/01/13 02:55:07 ajc
2162 * Do calendar support only if libical header *and* library are present
2164 Revision 601.105 2003/01/12 23:07:40 ajc
2165 * configure.ac: Attempt to check for libical 0.24 or newer
2167 Revision 601.104 2003/01/12 05:01:58 ajc
2168 * Start marking things for 6.05 release
2170 Revision 601.103 2003/01/12 04:48:23 ajc
2171 * Display message subjects in magenta instead of white
2173 Revision 601.102 2003/01/06 09:17:10 error
2174 * Remove non (yet) existent sstring.c dependency from Makefile.in
2176 Revision 601.101 2003/01/05 07:35:03 error
2177 * Add an AllFloors parameter to the citadel IPC API
2179 Revision 601.100 2003/01/01 08:07:46 error
2180 * commands.c: bugfix for reading from FILE pointers; affected quote, print
2181 and external editor.
2183 Revision 601.99 2002/12/28 05:33:29 ajc
2184 * ical_dezonify: set is_utc=1 even if we didn't convert from some arbitrary
2185 timezone. Presumably this means the time was already UTC, and we really
2186 need that "Z" to get slapped on it.
2188 Revision 601.98 2002/12/28 05:12:06 ajc
2189 * Yet another attempt at making ical_dezonify() send outgoing calendar items
2190 in UTC format. (This one will probably work -- the timestamps have the
2191 "Z" after them which signifies UTC instead of local time.)
2193 Revision 601.97 2002/12/27 04:40:40 ajc
2194 * Another attempt at fixing timezones :(
2196 Revision 601.96 2002/12/25 23:17:07 ajc
2197 * ical_dezonify.c: shuffle around #includes and #ifdef's
2199 Revision 601.95 2002/12/25 21:46:19 ajc
2200 * Another shot at timezone handling (ugggghh)
2202 Revision 601.94 2002/12/25 07:05:26 ajc
2203 * set up ical_dezonify() to be called at appropriate times
2204 (but it doesn't seem to work correctly yet)
2206 Revision 601.93 2002/12/25 06:41:44 ajc
2207 * ical_dezonify.c: added (function to strip localized timestamps out of
2208 a component and replace them with UTC timestamps)
2210 Revision 601.92 2002/12/19 04:51:49 ajc
2211 * database_cleanup.sh: added
2213 Revision 601.91 2002/12/18 04:08:16 ajc
2214 * Don't attempt to send out invitations when there are no attendees.
2216 Revision 601.90 2002/12/15 10:53:51 error
2217 * Final touches on the new message formatter.
2219 Revision 601.89 2002/12/15 09:42:37 error
2220 * Converted more routines to new IPC code.
2222 Revision 601.88 2002/12/14 23:21:29 ajc
2223 * When saving a calendar event, set the message Subject to the event
2224 summary string, and the message Date/time to the event start time.
2226 Revision 601.87 2002/12/10 23:36:20 ajc
2227 * Fixed a bug in the allocation of per-session dynamic data for calendar module
2229 Revision 601.86 2002/12/09 06:07:29 ajc
2230 * Finished the code to accept incoming calendar REPLY messages and
2231 merge/save the updated event in the user's calendar.
2233 Revision 601.85 2002/12/08 06:01:48 ajc
2234 * More work on the reply handler. Wrote functions to locate the message
2235 containing the invitation being replied to. Just need to write the
2236 merge and resave functions now.
2238 Revision 601.84 2002/12/08 00:23:08 ajc
2239 * Began adding a calendaring subcommand to accept a reply to a meeting
2240 invitation and update the event in the user's calendar. (Not finished.)
2242 Revision 601.83 2002/12/04 05:01:18 ajc
2243 * When sending out invitations, encapsulate the VEVENT component inside a
2244 VCALENDAR component, along with proper metadata such as product ID and
2245 vcalendar version. Move the METHOD:REQUEST property to the encapsulating
2246 component rather than the event itself. (Still need to add a VTIMEZONE).
2248 Revision 601.82 2002/12/03 04:49:15 ajc
2249 * Send out meeting requests! (Need to test with various clients.)
2251 Revision 601.81 2002/12/02 08:09:00 error
2252 * Improvements to the new message formatter, including URL support and
2253 doing the Right Thing for text/plain messages.
2255 Revision 601.80 2002/12/01 11:02:57 error
2256 * New experimental message formatter - try it, you'll like it!
2258 Revision 601.79 2002/12/01 04:48:24 ajc
2259 * The code to check for sending invitations needs to happen *after* save
2261 Revision 601.78 2002/12/01 00:59:54 ajc
2262 * Reliably detect when the user saving an event is listed as the meeting
2263 organizer. (Currently calls a stub function. Still need to write the
2264 function to generate and send invitations.)
2266 Revision 601.77 2002/11/30 21:35:30 ajc
2267 * just some trace messages
2269 Revision 601.76 2002/11/30 05:39:28 ajc
2270 * Started banging out some code to determine when a saved vEvent needs to
2271 send out meeting invites.
2273 Revision 601.75 2002/11/29 16:24:59 ajc
2274 * When calling ical*_remove_*() routines, the caller then owns the object
2275 which is removed. Added ical*_free() calls to free the memory.
2277 Revision 601.74 2002/11/29 15:44:41 ajc
2278 * CC->cs_inet_email is now a string buffer, not a pointer
2279 * Initialize CC->cs_inet_email with a default address, so it always
2280 contains something even when the directory doesn't
2281 * Augment CHEK command to return the user's preferred Internet e-mail addr.
2283 Revision 601.73 2002/11/27 21:05:31 nixo
2284 added dot ungoto functionality.
2285 It allows you to enter a room to ungoto, it will look
2286 through the ungoto list and goto there at the room position
2287 you last goto-ed it from.
2288 Don't blame me, this was Gary's idea.
2290 Revision 601.72 2002/11/25 05:10:07 ajc
2291 * Post a notification to Aide> when a user is manually deleted
2292 (resolves Bugzilla enhancement request #73)
2294 Revision 601.71 2002/11/25 04:57:43 ajc
2295 * Allow set/clear of per-user Internet mail privilege
2298 Revision 601.70 2002/11/23 13:35:47 error
2299 * Makefile.in: Alphabetized all the source files
2301 Revision 601.69 2002/11/21 05:38:13 ajc
2302 * Added support for a "New User Greetings" room. See docs/install.txt
2304 Revision 601.68 2002/11/15 11:24:40 error
2305 * serv_rwho.c: cmd_rwho(): move logged_in from param 8 to param 11
2306 (see RWHO in techdoc/session.txt)
2308 Revision 601.67 2002/11/13 17:20:57 ajc
2309 * When in curses mode, call beep() instead of putc(7, stdout) to make it beep.
2311 Revision 601.66 2002/11/12 04:30:16 ajc
2312 * Completed the invitation accept/decline code. It now sends back a
2313 correctly formated reply! (Tested with Evolution)
2315 Revision 601.65 2002/11/11 06:21:55 error
2316 * Fixed minor bugs with color handling; added explicit support for handling
2317 the background color e.g. for transparent terminals
2319 Revision 601.64 2002/11/11 04:17:24 ajc
2320 * More work on reply to meeting invitation
2322 Revision 601.63 2002/11/10 09:21:57 error
2323 * messages.c: fixed <H>eader command
2325 Revision 601.62 2002/11/10 09:19:38 error
2326 * Convert some more routines to new IPC code
2328 Revision 601.61 2002/11/10 09:14:16 error
2329 * citadel.spec: updated for post-6.01
2331 Revision 601.60 2002/11/10 09:12:06 error
2332 * citadel.c: When terminating, don't mark messages new when using new
2335 Revision 601.59 2002/11/08 05:28:54 ajc
2336 * Reply to VEVENT invitations: generate reply by cloning the request,
2337 stripping out non-me attendees, setting the partstat to accept/decline,
2338 and extracting the address of the organizer. (Still not finished: right
2339 now it does everything except actually sending the reply.)
2341 Revision 601.58 2002/11/07 04:40:07 ajc
2342 * Repaired the "remember username/password" functionality of the client
2343 (it was broken during the transition to the new client protocol library)
2345 Revision 601.57 2002/11/06 05:03:01 ajc
2346 * No changes; just testing CVS permissions
2348 Revision 601.56 2002/11/04 21:49:53 ajc
2349 * Don't run the wait indicator when in an external editor
2351 Revision 601.55 2002/11/01 04:57:56 ajc
2352 * Fixed .AM and .AE commands
2354 Revision 601.54 2002/10/29 20:14:56 error
2355 * rooms.c: don't allow a blank floor name when creating a floor (in client)
2357 Revision 601.53 2002/10/26 06:15:09 ajc
2358 * cmd_cflr() - don't allow zero length floor names
2360 Revision 601.52 2002/10/26 06:01:19 ajc
2361 * Increase size of temp file name buffer in struct CitContext
2363 Revision 601.51 2002/10/25 09:38:38 error
2364 * Fixed broken .Goto by partial match
2366 Revision 601.50 2002/10/25 09:26:26 error
2367 * Fix the status line not updating with the new wait indicator; rearrange
2368 the code so network_status_cb is a member function of ipc.
2370 Revision 601.49 2002/10/25 04:39:38 ajc
2371 * When in fullscreen mode, display an "X" icon in the lower right corner of
2372 the screen while waiting for the server.
2374 Revision 601.48 2002/10/24 09:04:53 error
2375 * acconfig.h: add DISABLE_CURSES template
2377 Revision 601.47 2002/10/23 04:06:41 ajc
2378 * "conflicts" check now also tells the client whether a conflicting event
2379 is really just an older version of the same object.
2381 Revision 601.46 2002/10/23 03:55:21 ajc
2382 * Finished: when saving an object of type text/calendar to the Calendar> room,
2383 set the Citadel "extended message ID" to the UID of the VEVENT object. This
2384 causes the message base to automatically delete any existing instance(s) of
2385 that object: automatic replacement.
2387 Revision 601.45 2002/10/23 03:07:43 ajc
2388 * First hack at UID-to-EMSGID mapping (for auto replacement)
2390 Revision 601.44 2002/10/21 20:00:41 ajc
2391 * List UID and SUMMARY properties of conflicting events
2393 Revision 601.43 2002/10/21 17:14:42 ajc
2394 * More work on conflict detects
2396 Revision 601.42 2002/10/20 21:42:54 ajc
2397 * More conflict checking stuff
2399 Revision 601.41 2002/10/20 20:21:27 ajc
2400 * Put in a skeleton "hunt for conflicts" code
2402 Revision 601.40 2002/10/20 08:01:03 error
2403 * docs/install.txt: add Mac OS X build instructions
2405 Revision 601.39 2002/10/19 21:35:34 ajc
2406 * Moved some of the calendar logic over from WebCit
2408 Revision 601.38 2002/10/19 08:30:03 error
2409 * dynloader.c: Darwin places underscores in front of symbol names, just
2412 Revision 601.37 2002/10/19 08:18:06 error
2413 * Disable any use of curses on Darwin (this is temporary until I beat
2414 Apple's bizarre linker into submission)
2416 Revision 601.36 2002/10/18 10:33:09 error
2417 * More signed/unsigned fixes (for the new progress gauge)
2419 Revision 601.35 2002/10/18 07:56:30 error
2420 * fix self-service account creation at login prompt (accidentally called
2421 CREU instead of NEWU).
2423 Revision 601.34 2002/10/18 03:44:13 ajc
2424 * Fixed a bug in CtdlRenameRoom() that caused the old room record not to be
2425 deleted when there was a mailbox namespace attached.
2426 * Reworked imap_rename() and imap_rename_backend() to not use nested functions
2428 Revision 601.33 2002/10/17 12:56:44 error
2429 * Bug fixes: Fix numerous char array size mismatches, signed/unsigned
2430 mismatches, and const correctness problems (though not nearly all)
2432 Revision 601.32 2002/10/17 11:13:27 error
2433 * Convert room listings and some aide functions to new IPC code
2435 Revision 601.31 2002/10/16 13:46:19 ajc
2436 * Remove some trace messages
2438 Revision 601.30 2002/10/16 08:59:41 error
2439 * Don't assume pointer to time_t is compatible with pointer to
2440 struct timeval.tv_sec (it isn't on darwin)
2442 Revision 601.29 2002/10/16 02:49:55 ajc
2443 * CtdlWriteObject() encode in memory instead of on disk (not tested)
2445 Revision 601.28 2002/10/15 17:41:20 ajc
2446 * Numerous warning fixes and cleanups for compile on Linux for IBM S/390
2447 * Name temp files with source code location of who created them
2449 Revision 601.27 2002/10/15 06:47:11 error
2450 * IPC support for resumable downloads
2452 Revision 601.26 2002/10/15 06:44:55 error
2453 * configure.ac check for malloc.h header file (Mac OS X needs this)
2455 Revision 601.25 2002/10/15 03:56:33 ajc
2456 * Run without crashing on Berkeley DB 4.1 :)
2458 Revision 601.24 2002/10/15 03:30:52 ajc
2459 * Build ok on Berkeley DB 4.1
2461 Revision 601.23 2002/10/14 08:27:40 error
2462 * Mac OS X build fixes (everything but serv_imap now builds)
2464 Revision 601.22 2002/10/08 09:44:52 error
2465 * Build environment: cvs ignore .diff/.patch files
2467 Revision 601.21 2002/10/07 18:59:37 ajc
2468 * Build fixes for Solaris box without OpenSSL installed
2470 Revision 601.20 2002/10/07 09:40:49 error
2471 * Don't try to compile non-existent client_crypto.c (oops!)
2473 Revision 601.19 2002/10/06 18:46:30 error
2474 * Move (nearly) all IPC-related code to citadel_ipc.[ch].
2476 Revision 601.18 2002/10/05 04:48:29 ajc
2477 * Change MAXSETUP from 4 to 3 (bug reported by mavherzog, fix suggested by IO)
2479 Revision 601.17 2002/10/04 07:11:56 error
2480 * Fix bootstrap for Red Hat 7.3
2482 Revision 601.16 2002/10/02 04:07:27 error
2483 * status_line() now shows "new mail" only when there is new mail
2485 Revision 601.15 2002/10/01 04:00:13 ajc
2486 * html.c: speed improvement in html-to-ascii converter
2487 * messages.c: MASSIVE speed improvement in message output
2489 Revision 601.14 2002/09/30 08:07:11 error
2490 * ipcdef.h: add extern "C" for linking to C++ programs
2492 Revision 601.13 2002/09/30 07:32:09 error
2493 * ipcdef.h: remove prototype for connection_died(), it doesn't belong there
2495 Revision 601.12 2002/09/30 07:20:35 error
2496 * Fix configure mis-detecting libical and zlib and a missing semicolon in
2499 Revision 601.11 2002/09/29 04:55:13 error
2500 * File and attachment downloads now use the new IPC code.
2501 * Implemented high-speed pipelined file download in IPC code.
2503 Revision 601.10 2002/09/29 04:41:43 error
2504 * file_ops.c: cmd_read() now returns a short read at end-of-file instead of
2505 4096, this prevents trailing garbage on the downloaded file; also it now
2506 succeeds if the requested number of bytes is > 4096; it simply returns
2509 Revision 601.9 2002/09/27 06:53:20 error
2510 * Allow multiple simultaneous IPC connections. All changes necessary for
2511 the client to use the new code are necessarily included.
2513 Revision 601.8 2002/09/22 02:48:04 ajc
2514 * axdefs.h: add "Notes" view
2516 Revision 601.7 2002/09/17 03:18:15 ajc
2517 * Create the Calendar> and Tasks> rooms at login time, and set their default
2518 views to calendar and tasklist views. Renamed "My Calendar>" to "Calendar>"
2519 to be in sync with the KDE groupware project.
2521 Revision 601.6 2002/09/15 03:24:28 ajc
2522 * Renamed decode_base64() to CtdlDecodeBase64()
2523 * Renamed decode_quoted_printable() to CtdlDecodeQuotedPrintable()
2524 * These changes are to avoid namespace conflict with libical
2526 Revision 601.5 2002/09/13 15:41:39 ajc
2527 * serv_calendar.c: #include "serv_calendar.h", not "serv_ical.h"
2529 Revision 601.4 2002/09/11 03:17:18 ajc
2530 * [EXPERIMENTAL] Link in the "libical" calendar library if present
2531 * Rename serv_ical to serv_calendar (because the resulting module would be
2532 named "libical" which conflicts with the external library by that name)
2534 Revision 601.3 2002/09/10 08:07:38 error
2535 * update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00* update citadel.spec for 6.00
2537 Revision 601.2 2002/09/09 03:03:18 ajc
2538 * When a user logs in, create the Mail> room if it doesn't exist. (Should
2539 never happen, but one site had a situation where this patch came in handy.)
2541 Revision 601.1 2002/09/08 04:15:28 ajc
2542 * Also fixed a bug in <.T>erminate <S>tay which caused the terminal to
2543 become wacky on second and subsequent sessions.
2545 Revision 601.0 2002/09/08 03:51:30 ajc
2546 * Let's call this 6.01, shall we?
2548 Revision 600.2 2002/09/08 03:48:48 ajc
2549 * Fixed a crashy crashy bug in the AGUP protocol function in the client
2551 Revision 600.1 2002/09/07 03:24:23 ajc
2552 * When displaying messages using MSG4, enumerate the attachments on the
2553 client side, because the server won't add their descriptions to the
2556 Revision 600.0 2002/09/04 03:06:58 ajc
2557 * Committing the current code base as version 6.00
2559 Revision 591.109 2002/09/03 14:09:04 ajc
2560 * setup.c: automatically stop/start services
2562 Revision 591.108 2002/09/03 04:42:15 ajc
2563 * Added MSG4 support to client-side IPC
2564 * Moved HTML-to-text conversion to the client side
2566 Revision 591.107 2002/09/02 20:40:34 ajc
2567 * Automation work for setup
2569 Revision 591.106 2002/08/31 04:36:26 ajc
2570 * IMAP APPEND no longer forces messages to appear as from the logged-in user
2571 when appending to a mailbox room. (Allows migration to Citadel from some
2572 other type of server without losing all the sender names.)
2574 Revision 591.105 2002/08/31 04:12:39 ajc
2575 * Set version number to 6.00 in documentation and header files.
2576 * Convert RFC822 newlines (CRLF) to Unix/Citadel newlines (LF) when
2577 performing an IMAP APPEND command.
2579 Revision 591.104 2002/08/28 03:18:06 ajc
2580 * Make reply_to and reply_subject global (otherwise they don't work!)
2582 Revision 591.103 2002/08/27 04:01:03 ajc
2583 * Added the ability to run an external command from the client when new mail
2584 arrives. (Ok, I admit it: I just discovered http://www.dailywav.com and I
2585 just *had* to have Bear in the Big Blue House tell me I've got mail)
2587 Revision 591.102 2002/08/26 02:55:09 ajc
2588 * Small bugfix for memory bounds checking in the MIME parser
2590 Revision 591.101 2002/08/25 21:23:49 ajc
2591 * Hide the SMTP queue and the sysconfig rooms.
2593 Revision 591.100 2002/08/24 05:58:53 ajc
2594 * Bugfixes and cosmetic changes to listsub system
2596 Revision 591.99 2002/08/23 03:36:52 ajc
2597 * Finished all of the subscribe/unsubscribe/confirm stuff!
2599 Revision 591.98 2002/08/23 02:30:02 ajc
2600 * Delete unconfirmed pending subscribe/unsubscribe requests after three days
2601 * Don't allow multiple subscriptions of the same address to a list
2603 Revision 591.97 2002/08/22 03:55:11 ajc
2604 * Fixed bug in above
2606 Revision 591.96 2002/08/22 03:40:00 ajc
2607 * Add "unsubscribe" command (but not yet "confirm unsubscribe")
2609 Revision 591.95 2002/08/21 21:58:00 ajc
2610 * Completed self-service list subscription via web.
2611 (Still need to implement unsubscribe.)
2613 Revision 591.94 2002/08/16 21:04:56 ajc
2616 Revision 591.93 2002/08/14 20:21:52 ajc
2617 * Extend GETR/SETR to allow twiddling of bits in the QRflags2 bucket
2618 * New flag and config options to allow/disallow self-service list subscription
2619 and unsubscription to a room
2621 Revision 591.92 2002/08/14 02:36:05 ajc
2622 * WebCit list subscription integration
2624 Revision 591.91 2002/08/13 18:48:46 ajc
2625 * Generate and send subscription confirmation requests.
2626 (Still need to finalize the URL format)
2628 Revision 591.90 2002/08/13 17:19:11 ajc
2629 * Added email capability to quickie_message()
2631 Revision 591.89 2002/08/13 04:02:06 ajc
2632 * <R>eplace string is now case sensitive
2634 Revision 591.88 2002/08/13 03:46:31 ajc
2635 * More work on the self-service subscribe/unsubscribe infrastructure
2637 Revision 591.87 2002/08/12 03:00:20 ajc
2638 * Fixed bug in <R>eplacestring which caused it to lock up in certain conditions
2640 Revision 591.86 2002/08/12 00:09:05 ajc
2641 * Compress VISIT records using zlib if available. This reduces the object
2642 size from over 4k to about 70 bytes. Experimental.
2643 * Automatically uncompress database records found to be compressed (duh)
2645 Revision 591.85 2002/08/08 22:01:35 ajc
2646 * autoconf to look for zlib (for an upcoming experiment)
2648 Revision 591.84 2002/08/08 03:25:56 ajc
2650 * Started writing some infrastructure for sub/unsub
2652 Revision 591.83 2002/08/08 02:49:12 ajc
2653 * serv_network.c: retain unknown commands in netconfigs and write them back
2654 * techdoc/netconfigs.txt: specify commands for subscribe/unsubscribe pending
2655 * serv_listsub.c: added (currently a stub)
2657 Revision 591.82 2002/08/06 03:12:14 ajc
2658 * Fixed and clarified "new mail has arrived" messages.
2660 Revision 591.81 2002/08/06 03:02:29 ajc
2661 * ;AE command -- Make it clearer which floor the user is editing
2663 Revision 591.80 2002/08/06 02:58:01 ajc
2664 * Cleaned up the output of digest mode. It's usable now, but the self-service
2665 subscribe/unsubscribe functions are not there yet.
2667 Revision 591.79 2002/08/05 14:38:11 ajc
2668 * rooms.c: corrected a typo reported by Campagnolo (Mike Poulin)
2670 Revision 591.78 2002/08/03 19:48:40 ajc
2671 * NULLify 'roomrec' before attempting partial match in <G>oto
2672 (fixes heap corruption when this command is executed)
2674 Revision 591.77 2002/08/03 04:13:46 ajc
2675 * citadel_ipc.c: Attempted to clean up memory allocation
2677 Revision 591.76 2002/08/01 05:41:53 ajc
2678 * Completion of (most of) digest mode. Still needs some polish.
2680 Revision 591.75 2002/07/31 04:01:57 ajc
2681 * Began implementing "digest mode" for listserving. (Not complete)
2683 Revision 591.74 2002/07/28 20:33:13 ajc
2684 * Augmented the "headers only" functionality of the message reading API (as
2685 well as the options of the server commands which expose it) to allow
2686 headers+body, headers only, or body only.
2687 * Adjusted message output of IMAP command FETCH BODY[1] when message is in
2688 legacy Citadel format. This fixes a bug exposed by SquirrelMail.
2690 Revision 591.73 2002/07/23 04:00:06 ajc
2691 * Completed the MSGP and MSG4 commands to set the client's preferred MIME
2692 content types, and fetch messages with MIME content types.
2694 Revision 591.72 2002/07/21 22:29:46 ajc
2695 * Added in some infrastructure to switch the client's message reading from
2696 conventional MSG0 to a MIME-download type thing, like WebCit does.
2698 Revision 591.71 2002/07/21 15:45:07 error
2699 * Remove duplicate call for server time in who_is_online(); IPC does this now
2701 Revision 591.70 2002/07/21 15:43:57 error
2702 * citadel_ipc.c: Fix for segfault on empty messages
2704 Revision 591.69 2002/07/20 04:05:10 ajc
2705 * Updated hack.txt with some fresh new information
2707 Revision 591.68 2002/07/19 02:28:11 ajc
2708 * citadel_ipc.c: changed various buffer lengths from 256 to SIZ in order to
2709 accomodate long lines which often spew out (usually from spam unfortunately)
2711 Revision 591.67 2002/07/18 21:29:37 nbryant
2712 added a note about GNU make to the configure script output
2714 Revision 591.66 2002/07/18 20:21:18 ajc
2715 * Eliminated the 512-message limit in the client for reading messages.
2717 Revision 591.65 2002/07/13 04:12:40 ajc
2718 * Don't lie about format types in MSG0 anymore. We no longer need to.
2720 Revision 591.64 2002/07/13 03:24:32 ajc
2721 * CtdlOutputMsg() caches the most recently fetched message in memory. This
2722 eliminates the need to do multiple database fetches when we go back for
2723 additional MIME parts, etc.
2725 Revision 591.63 2002/07/11 03:40:51 ajc
2726 * When outputting a multipart MIME message, supply the client with "pref="
2727 and "suff=" lines in addition to the "part=" lines.
2729 Revision 591.62 2002/07/02 16:27:06 error
2730 * prototypes in citadel_ipc.h updated
2732 Revision 591.61 2002/06/29 23:26:55 error
2733 * fixed some memory leaks
2735 Revision 591.60 2002/06/29 18:36:31 error
2736 * tools.c: Massively faster versions of extract_token() and remove_token().
2737 These functions can now handle multi-kilobyte sized strings with hundreds
2738 of tokens (or more?).
2740 Revision 591.59 2002/06/29 15:55:07 error
2741 * Convert whobbs, serv_info, misc. functions to new IPC code
2743 Revision 591.58 2002/06/27 03:10:04 error
2744 * rooms.c: converted most functions to new IPC code
2746 Revision 591.57 2002/06/25 15:38:52 error
2747 * fixed bug in dotgoto() causing free() to segfault
2749 Revision 591.56 2002/06/25 15:13:27 error
2750 * gotonext() now uses new IPC code to retrieve room listing
2752 Revision 591.55 2002/06/25 14:21:35 error
2753 * remove a debugging trap I accidentally left in the code
2755 Revision 591.54 2002/06/24 20:17:43 error
2756 * Fixed code for client segfault at login
2758 Revision 591.53 2002/06/24 20:11:00 error
2759 * Buffer overflow fixes and minor cleanup in IPC code
2761 Revision 591.52 2002/06/24 16:07:42 error
2762 * Message reading and other functions which use the fmout() screen
2763 formatter now use the new IPC code.
2765 Revision 591.51 2002/06/22 20:09:16 error
2766 * Use a new IPC API (in citadel_ipc.c). Partially converted citadel.c to
2769 Revision 591.50 2002/06/21 12:32:48 ajc
2770 * Minor documentation update
2772 Revision 591.49 2002/06/19 21:52:13 ajc
2773 * Support a transient room create as well
2775 Revision 591.48 2002/06/19 21:42:57 ajc
2776 * Added support for "transient goto" which allows entry into a private and/or
2777 zapped room without putting the room [back] on your known rooms list. This
2778 is useful for the new administrative functions in WebCit (updating a user's
2779 vCard without the Aide suddenly having that user's config room on their
2782 Revision 591.47 2002/06/18 16:34:06 error
2783 * room_ops.c: Fix for old room record not being deleted when renaming
2784 baseroom or aideroom
2786 Revision 591.46 2002/06/16 21:01:11 ajc
2787 * Allow Aides to create rooms in other users' namespaces (if global access
2790 Revision 591.45 2002/06/15 20:48:50 ajc
2791 * Fixed small bug in the e<X>pert mode toggle
2793 Revision 591.44 2002/06/15 20:14:55 ajc
2794 * Fixed a memory allocation bug in the vCard parser
2796 Revision 591.43 2002/06/15 17:53:59 error
2797 * citserver.c: MESG command can now send a different system message based
2798 on the developer and client ID of the connected client
2800 Revision 591.42 2002/06/15 04:52:26 ajc
2801 * SpamAssassin connector is now configurable in <.A>ide <S>ysconfig <I>nternet.
2802 * Allow more than one SA server (it'll try 'em all)
2803 * Don't run SA for logged in users
2805 Revision 591.41 2002/06/14 20:42:56 ajc
2806 * Discovered that spamd works even without the Content-length: command, so I
2807 was able to redo the spam checker to work without a temp file.
2809 Revision 591.40 2002/06/14 20:37:03 ajc
2810 * Disabled the spam strings checker I wrote a few days ago.
2811 * When receiving SMTP, check to see if spamd (the SpamAssassin daemon) is
2812 running on the local machine. If yes, run the message through it and
2815 Revision 591.39 2002/06/12 03:42:21 ajc
2816 * "Suppress message prompts" has been changed to "Prompt after each message"
2817 and of course the effect has been reversed.
2818 * "Be unlisted in userlog" has been moved to the end of the list of
2819 configuration prompts, so it doesn't interrupt the flow of thought regarding
2820 the prompting questions.
2822 Revision 591.38 2002/06/10 22:25:25 ajc
2823 * Configuration for spam filter
2825 Revision 591.37 2002/06/09 23:59:38 ajc
2826 * Started working on the spam filter
2828 Revision 591.36 2002/06/07 22:10:51 ajc
2829 * Added a new message function hook type EVT_SMTPSCAN which permits modules to
2830 register hooks that can scan incoming SMTP messages and elect to reject them
2831 (due to virus or spam content, for example).
2833 Revision 591.35 2002/06/07 03:22:13 ajc
2834 * Added a module "serv_mrtg" which allows activity reporting to MRTG
2835 (http://www.mrtg.org) -- this will replace our stats program.
2837 Revision 591.34 2002/06/02 16:42:17 error
2838 * Support for Ctrl-W to erase a word when editing or at a prompt
2840 Revision 591.33 2002/05/31 18:34:04 nbryant
2841 better curses compatibility, and a couple makefile/configure tweaks
2843 Revision 591.32 2002/05/28 13:59:02 ajc
2844 * Removed the 'netsetup' and 'dnetsetup' utilities (obsolete)
2846 Revision 591.31 2002/05/24 19:58:13 ajc
2847 * Fixed the "idle timeout during paginator prompt" bug by reintroducting the
2848 concept of a "half keepalive" and sending them during paginator prompts.
2850 Revision 591.30 2002/05/23 03:33:21 ajc
2851 * Added a GTSN (GeT list of SeeN messages) command
2853 Revision 591.29 2002/05/20 14:29:59 ajc
2854 * commands.c: fixed bug in the scan for idle_threshold= which didn't include
2855 the = sign and ended up always setting this value to 0
2857 Revision 591.28 2002/05/17 03:57:30 ajc
2858 * When doing fixed_output() of converted HTML, output the whole block of
2859 data at once instead of one character at a time
2861 Revision 591.27 2002/05/16 04:44:58 ajc
2862 * Reduce the number of socket writes when doing fixed_output() to avoid
2863 getting killed by overhead. (Thanks to IO for the insight)
2865 Revision 591.26 2002/05/14 15:25:34 error
2866 * room_ops.c: clarified aide message when room aide is removed
2868 Revision 591.25 2002/05/14 15:18:43 error
2869 * rooms.c: Print name of room aide if any when doing <i>nfo
2871 Revision 591.24 2002/05/14 01:33:18 error
2872 * Fixed some incredibly silly typos
2874 Revision 591.23 2002/05/14 01:27:18 error
2875 * Minor cosmetic changes, extraneous double spaces etc.
2877 Revision 591.22 2002/05/14 01:15:54 error
2878 * Idle threshold on the who list is now customizable in the citadel.rc
2880 Revision 591.21 2002/05/14 01:09:57 error
2881 * citadel.c: spacebar won't read New if there are no new messages
2883 Revision 591.20 2002/05/12 23:00:11 ajc
2884 * Removed an unused variable
2886 Revision 591.19 2002/05/12 22:57:04 ajc
2887 * Removed the unfinished moderation system.
2888 * CtdlForEachMessage() - only fetch metadata when hunting for messages with
2889 a specified Content-type. Serious performance boost.
2891 Revision 591.18 2002/05/05 17:33:09 error
2892 * screen.c: fix lack of beeps in curses mode
2894 Revision 591.17 2002/05/04 02:58:16 ajc
2895 * Documented a small protocol change for the STEL command
2897 Revision 591.16 2002/04/30 03:13:59 ajc
2898 * When sending a page that results in the receiver's Sent/Received Pages>
2899 room to be created, don't automatically grant the sender access to that room.
2900 * Added a parameter to create_room() to implement the above
2902 Revision 591.15 2002/04/23 13:38:08 ajc
2905 Revision 591.14 2002/04/21 21:28:06 ajc
2906 * Create the My Citadel Config> room along with the user account
2908 Revision 591.13 2002/04/20 03:00:01 ajc
2909 * One more fix for the RENAME command wrt namespaces.
2911 Revision 591.12 2002/04/18 18:44:36 nbryant
2912 don't use libtool -avoid-version for libcitserver - this might help for
2915 Revision 591.11 2002/04/17 04:35:06 ajc
2916 * Finished the IMAP RENAME command. (I ended up using nested functions
2917 because it made the task much, much easier. We can fix it later or convert
2918 it to C++ if we find this becomes a problem.)
2920 Revision 591.10 2002/04/15 13:25:47 ajc
2921 * Add error responses to imap_rename() and set up subfolder framework
2923 Revision 591.9 2002/04/14 22:42:49 ajc
2924 * Began implementing RENAME command in IMAP.
2926 Revision 591.8 2002/04/14 22:27:05 ajc
2927 * Added access control checking to CtdlRenameRoom()
2929 Revision 591.7 2002/04/14 22:11:22 ajc
2930 * New back end function CtdlRenameRoom() which is used to rename a room and/or
2931 move it to a different floor.
2932 * cmd_setr() now uses CtdlRenameRoom() to do part of its work
2934 Revision 591.6 2002/04/10 03:58:40 ajc
2935 * Began work on IMAP RENAME
2937 Revision 591.5 2002/04/09 14:26:43 ajc
2938 * Allow INBOX to have subfolders. There's no longer any reason not to.
2940 Revision 591.4 2002/04/05 22:31:59 error
2941 * Send time-of-day with pages sent via IMAP
2943 Revision 591.3 2002/04/05 14:34:02 ajc
2944 * Minor tweak to nested folder algorithm to handle nesting in mail root
2946 Revision 591.2 2002/04/05 04:25:56 ajc
2947 * Support nested folders in IMAP. We might want to change the delimiter.
2949 Revision 591.1 2002/04/04 23:25:30 ajc
2950 * Experimental hacking to handle subfolderization in IMAP. Seems to work ok
2951 but it makes Mozilla mail hang. Will investigate more later...
2953 Revision 591.0 2002/04/01 05:13:20 ajc
2954 * Tagged everything for 5.91 release
2956 Revision 590.168 2002/04/01 05:12:57 ajc
2957 * Prep for 5.91 release
2959 Revision 590.167 2002/03/29 04:43:15 ajc
2960 * Removed the BMBX command. Mailbox security update now runs automatically when the
2961 server starts and it sees data files version <5.91.
2963 Revision 590.166 2002/03/26 05:58:35 nbryant
2964 don't check for a database driver until after the openssl check is
2965 complete. if the ld paths aren't set up for the db installation this
2966 can interfere with the openssl check because it tries to run a program
2967 linked against the libraries we've been finding.
2969 Revision 590.165 2002/03/26 05:20:46 nbryant
2970 removed last vestiges of "#ifdef CIT_CLIENT" conditional compilation,
2971 which has been rendered unusable by the build system simplifications
2973 Revision 590.164 2002/03/26 05:13:32 nbryant
2974 fix monstrous shell script syntax in configure.ac
2976 Revision 590.163 2002/03/26 04:38:31 nbryant
2977 * support autoconf 2.53
2978 * make a note that people should be using libtool 1.4d
2979 * cut some of the more pointless bells and whistles out of the configure
2980 script in an effort to make it more maintainable
2981 * modularized ipc_c_tcp.c and client_crypto.o so that they're not tied
2982 to the curses stuff.
2983 * timezone/daylight and other FreeBSD fixes
2984 * more effort in the configure script to detect the common
2985 bastardizations (ahem, ports) of Berkeley DB without falling down
2987 Revision 590.162 2002/03/25 03:09:39 nbryant
2988 fix warning on platforms where pthread_t may be a pointer
2990 Revision 590.161 2002/03/25 00:01:50 nbryant
2991 * compatibility with Berkeley DB < 3.3
2992 * squished symbol clashes with the OK symbol from curses in certain *n[iu]x
2993 distributions. this is kind of a pain in the ass, but I had to rename our
2996 Revision 590.160 2002/03/22 04:35:38 ajc
2997 * Handle vCard registration updates for users other than the one currently
2998 logged in. (Allows administrative editing of contact information.)
3000 Revision 590.159 2002/03/20 19:03:27 ajc
3001 * Don't re-declare timezone variables ('cuz FreeBSD chokes on that)
3003 Revision 590.158 2002/03/19 04:34:42 ajc
3004 * mime_parser.c: minor changes for easier porting between Citadel and WebCit
3006 Revision 590.157 2002/03/19 04:19:33 ajc
3007 * Saw what IO did with strchr() and did the same in a few more places
3009 Revision 590.156 2002/03/17 00:08:02 error
3010 * mime_parser.c: more robust parsing of Content-Type header
3012 Revision 590.155 2002/03/16 05:22:59 ajc
3013 * Post an error message to Aide> when unlink() is unable to delete old
3016 Revision 590.154 2002/03/14 04:35:26 nbryant
3017 avoid symbol clash with curses' "timeout" function (which may be a macro
3020 Revision 590.153 2002/03/14 04:24:20 nbryant
3021 support window resizing in curses mode
3023 Revision 590.152 2002/03/13 04:11:11 nbryant
3024 fix up minor gotcha introduced by fgets change
3026 Revision 590.151 2002/03/13 03:58:29 ajc
3027 * Site-configurable option "Allow system Aides to gain access to mailboxes"
3029 Revision 590.150 2002/03/13 03:34:38 nbryant
3030 /* when running in curses mode, the scroll bar in most
3031 xterm-style programs becomes useless, so it makes sense to
3032 pause after a screenful of pages if the user has been idle
3033 for a while. However, this is annoying to some of the users
3034 who aren't in curses mode and tend to leave their clients
3035 idle. keepalives become disabled, resulting in getting booted
3036 when coming back to the idle session. but they probably have
3037 a working scrollback in their terminal, so disable it in this
3040 if (!is_curses_enabled())
3043 Revision 590.149 2002/03/12 23:34:37 nbryant
3044 use ncurses in preference to curses if it's installed; it handles
3045 background colors properly on dtterm, has a larger color pair palette,
3046 and has a bigger terminal database than solaris curses
3048 Revision 590.148 2002/03/12 22:47:17 nbryant
3049 curses fix: map our normal color pairs into the 0-7 range instead of 1-8,
3050 in order to make our pairs fit on terminals such as dtterm where COLOR_PAIRS=8.
3051 map the white/blue color pair onto 8 instead of 9, but only if that slot
3052 is available; fall back on white/black otherwise.
3054 it seems there may be an off-by-one error in the color pair manpages for
3055 the various curses packages (?) if not, our 0 entry is unusable, but that's
3056 the DIM_BLACK color and we don't use it anyway.
3058 Revision 590.147 2002/03/12 22:17:20 ajc
3059 * Give mailbox owners access to "who knows room" command
3061 Revision 590.146 2002/03/12 21:08:03 nbryant
3062 support color under Solaris curses
3064 Revision 590.145 2002/03/12 19:59:40 ajc
3065 * Access control change: do not treat mailboxes as guessname rooms for Aides.
3066 Open up INVT/KICK commands to non-Aides for their mailboxes.
3068 Revision 590.144 2002/03/12 04:30:52 nbryant
3069 if a filesystem node exists at /var/run/egd-pool, try to connect to it as
3070 the EGD (Entropy Gathering Daemon) or PRNGD (pseudorandom number
3071 generator daemon) socket and seed OpenSSL's RNG.
3073 this is necessary on solaris and other systems which lack /dev/urandom.
3075 Revision 590.143 2002/03/12 03:43:26 nbryant
3076 squished the last remaining calls to sprintf
3078 Revision 590.142 2002/03/12 03:36:55 nbryant
3079 replace calls to gets with fgets
3081 Revision 590.141 2002/03/12 03:19:09 nbryant
3082 more sprintf bashing. now the only ones left are in mime_parser
3084 Revision 590.140 2002/03/12 01:33:42 nbryant
3085 - pass -Wcast-qual to gcc
3086 - more sprintf bashing
3088 Revision 590.139 2002/03/12 00:03:43 nbryant
3089 more sprintf removals
3091 Revision 590.138 2002/03/11 06:00:21 nbryant
3092 use <db.h> before <db3/db.h> or <db4/db.h>
3093 this is the only way i can think of to make it work everywhere; people on
3094 systems like FreeBSD where the ports work the other way around will have to
3095 specify an extra -I flag in their CPPFLAGS variable.
3097 Revision 590.137 2002/03/11 05:42:46 nbryant
3098 removed all references to sprintf from several files (not all files yet)
3099 and replace with snprintf
3101 Revision 590.136 2002/03/11 04:16:20 nbryant
3102 warning fixes on sparc-sun-solaris2.8 with gcc 3.0.4, mostly for *printf
3105 Revision 590.135 2002/03/11 03:55:24 nbryant
3106 - fixes for building without OpenSSL
3107 - setenv doesn't exist on all systems, use putenv instead
3108 - support Solaris' curses implementation
3110 Revision 590.134 2002/03/09 22:52:04 ajc
3111 * Applied a patch submitted by <xperc@hotmail.com> to fix a potential buffer
3112 overflow problem in lprintf(). I also did the same fix to cprintf().
3114 Revision 590.133 2002/03/09 16:47:57 ajc
3115 * Added BMBX to fix a problem
3117 Revision 590.132 2002/03/09 06:18:37 ajc
3120 Revision 590.131 2002/03/09 05:22:29 ajc
3121 * this should do it.
3123 Revision 590.130 2002/03/09 05:02:20 ajc
3124 * Attempts to fix the access control crap
3126 Revision 590.129 2002/03/08 05:42:02 ajc
3127 * Patch to allow invitations and admin access to mailbox rooms. NEEDS TESTING!
3129 Revision 590.128 2002/03/07 04:30:37 ajc
3130 * Force recipient only in Mail>, not in all mailbox rooms
3132 Revision 590.127 2002/03/05 22:45:40 error
3133 * Autoconf fixes for DB4 support
3135 Revision 590.126 2002/03/05 04:47:49 ajc
3136 * vcard.c: another API update
3138 Revision 590.125 2002/03/04 05:29:39 ajc
3139 * Made a small API change to vcard.c for WebCit, brought the change over here too
3140 in order to keep vcard.c identical everywhere.
3142 Revision 590.124 2002/03/03 06:48:25 ajc
3143 * Client and server options to disable self-service user account creation
3145 Revision 590.123 2002/03/03 06:31:58 ajc
3146 * Added password starred-out entry to newprompt() and strprompt()
3147 * Applied the above setting to password set/change in <.A>ide <U>seredit
3149 Revision 590.122 2002/03/03 06:18:45 ajc
3150 * Implemented the CREU server command to administratively create user accounts
3151 * Added the ability to create new user accounts to <.A>ide <U>seredit
3153 Revision 590.121 2002/03/03 06:05:16 ajc
3154 * Split up some of the code in order to prepare for user accounts to be
3155 administratively created without logging in to them.
3157 Revision 590.120 2002/03/02 05:56:48 ajc
3158 * Properly implemented the network filter list. Finished the server module and
3159 did a client-side <.A>ide <S>ysconfig <F>ilterlist command.
3161 Revision 590.119 2002/03/01 04:24:20 ajc
3162 * Cosmetic change to Received: line
3164 Revision 590.118 2002/03/01 04:16:22 ajc
3165 * CtdlReadMessageBody() -- fixed bug that caused the prepend buffer to be
3166 discarded instead of prepended. "Received:" lines now work.
3168 Revision 590.117 2002/02/23 19:20:51 ajc
3169 * Do the use table purge in two phases to avoid crashy crashy
3171 Revision 590.116 2002/02/20 22:42:19 ajc
3172 * Started adding better management of source IP addressses in SMTP service
3174 Revision 590.115 2002/02/15 04:28:57 ajc
3175 * Wrote the expire/purge routine for the new use table
3177 Revision 590.114 2002/02/15 04:05:08 ajc
3178 * Began implementation of a networker use table that doesn't chew up oodles
3179 of CPU time. (It uses a cdb instead.)
3181 Revision 590.113 2002/02/15 03:40:06 ajc
3182 * Stu's changes (which he checked in without making any ChangeLog comments,
3183 bad Stu!) didn't build properly without curses. Added #ifdef's.
3185 Revision 590.112 2002/02/13 22:15:10 ajc
3188 Revision 590.111 2002/02/13 22:04:11 ajc
3189 * added vcard_to_html() function
3191 Revision 590.110 2002/02/13 15:48:55 ajc
3192 * Allow the READ command to return packets bigger than 1 byte. (ooops!)
3194 Revision 590.109 2002/02/12 20:15:25 ajc
3195 * Threw in a few more #ifdef's so the client build doesn't barf on
3197 * Added rc_prompt_control (<N>ext/<S>top active at paginator: on/off/user)
3199 Revision 590.108 2002/02/11 15:52:10 ajc
3200 * Don't crash when deleting "purge this vCard" messages
3202 Revision 590.107 2002/02/10 22:36:41 nbryant
3203 - replace cdb_trunc with a complete version of the code i had been
3204 working on; fallback code for db < 3.3.x needed
3205 - change 'can't connect to host.port' to 'can't connect to host:port'
3207 Revision 590.106 2002/02/08 22:39:08 ajc
3208 * If there's already a Subject line in memory, display it below the usual
3209 headers when the user hits <E>
3211 Revision 590.105 2002/02/08 22:36:23 ajc
3212 * Changed the logic for printing RFC822 addresses (again)
3213 * Implemented cdb_trunc() in database_sleepycat.c, using db_truncate()
3214 (We need to either provide an alternative implementation or require DB >=3.3)
3215 * Automatically Re: subject line in the client where appropriate
3217 Revision 590.104 2002/02/08 19:02:25 ajc
3218 * Added client and server side support for entering Subject lines in
3219 messages when not using RFC822.
3221 Revision 590.103 2002/02/08 18:10:07 ajc
3222 * When outputting a message in non-RFC822 format, don't display an Internet
3223 address if the user is local.
3225 Revision 590.102 2002/02/07 04:42:49 ajc
3226 * Silently refuse to add directory entries for Internet addresses already
3227 belonging to other users.
3228 * cdb_trunc() for CtdlDirectoryInit: implemented for GDBM, stubbed for DB
3230 Revision 590.101 2002/02/05 05:05:53 ajc
3231 * Don't crash when posting if the user doesn't have an Internet directory address
3233 Revision 590.100 2002/02/03 15:29:03 error
3234 * fixed a silly oversight in serv_crypto.c when removing the ETLS command
3236 Revision 590.99 2002/02/03 15:21:48 error
3237 * Remove the ETLS command, it is no longer needed
3239 Revision 590.98 2002/02/02 21:44:04 ajc
3240 * If a user has at least one valid Internet directory address, stamp it onto
3241 any outgoing messages.
3243 Revision 590.97 2002/02/01 05:11:26 ajc
3244 * Added a QDIR protocol command to do quick-and-dirty queries of the directory
3245 * In the client, check the directory for conflicts when selecting email addr.
3247 Revision 590.96 2002/01/31 05:13:44 ajc
3248 * When deleting a vCard from the Global Address Book room, remove the
3249 corresponding address in the directory. (Not tested.)
3251 Revision 590.95 2002/01/30 19:03:41 ajc
3252 * Added a new DeleteFunctionHook type of thing. These get called when a
3253 message is being deleted from a room.
3254 * When deleting messages from a room, do the AdjRefCount() calls (and now,
3255 the PerformDeleteHooks() calls) in a second pass. This keeps that stuff
3256 outside of the S_QUICKROOM critical section.
3258 Revision 590.94 2002/01/27 06:39:45 error
3259 * file_ops.c: fixed bug in cmd_read() which could cause server to report
3260 the wrong number of bytes for the client to download
3262 Revision 590.93 2002/01/26 21:33:38 ajc
3263 * More internet addressing and global directory stuff. I think it's all working now
3264 except for the purging of old entries.
3266 Revision 590.92 2002/01/26 11:02:37 error
3267 * citadel.spec cleaned up
3269 Revision 590.91 2002/01/26 09:23:40 error
3270 * setup now has a silent running mode (-q option) where it silently sets
3271 defaults for everything. This is intended for use in scripts such as
3272 the RPM packages, eliminating a step from the installation process.
3274 Revision 590.90 2002/01/26 09:19:16 error
3275 * citadel.spec has been completely overhauled, we can make RPMs now!
3277 Revision 590.89 2002/01/26 04:59:57 ajc
3278 * smtp FROM command now validates sender using the validate_recipients() loop
3279 (yeah, it's good for that too) making it directory-aware
3281 Revision 590.88 2002/01/26 04:01:10 error
3282 * Formatter now uses more of the available screen width
3284 Revision 590.87 2002/01/26 03:57:30 error
3285 * Revised status_line() display, it's much more compact now
3287 Revision 590.86 2002/01/26 03:50:26 error
3288 * Better error reporting in connection_died(), kills curses before printing
3289 error message, prints last errno.
3291 Revision 590.85 2002/01/25 05:19:03 ajc
3292 * Greatly simplified the logic for validating recipient addresses for incoming
3293 SMTP. This logic destroys the whitespace mangling for local names; I will
3296 Revision 590.84 2002/01/25 04:36:35 ajc
3297 * fixz to allow incoming vCards in the address book to actually get processed
3299 Revision 590.83 2002/01/24 06:52:54 error
3300 * citadel_decls.h: fix unresolved extern errors
3302 Revision 590.82 2002/01/23 05:04:05 ajc
3303 * Add vCards from incoming network messages in the GAB to the directory.
3305 Revision 590.81 2002/01/23 03:39:32 ajc
3306 * Added a new hook type for handling incoming network messages
3307 * Wrote a skeleton module for net filtering
3309 Revision 590.80 2002/01/22 10:46:25 error
3310 * read_message() and fmout() now accept a FILE to which to send their
3311 output; this fixes quoting in the fullscreen client
3313 Revision 590.79 2002/01/20 08:03:43 error
3314 * curses client: use the status line as "input" line in chat mode
3316 Revision 590.78 2002/01/20 07:43:07 error
3317 * serv_chat.c: Server no longer crashes when CHATLOG can't be opened
3319 Revision 590.77 2002/01/20 05:22:07 error
3320 * curses client: allow goodbye message to be seen on some terminals
3322 Revision 590.76 2002/01/19 16:56:31 error
3323 * Fixed color support, now works when rc_ansi_color is on or auto
3325 Revision 590.75 2002/01/19 15:10:25 error
3326 * Cosmetics for the client status line
3328 Revision 590.74 2002/01/19 11:59:33 error
3329 * A real status line for the text client
3331 Revision 590.73 2002/01/19 10:08:43 error
3332 * fix link for libcitserver.so to tools.o which I broke (oops!)
3334 Revision 590.72 2002/01/19 09:59:08 error
3335 * Full-screen curses support for Citadel text client
3337 Revision 590.71 2002/01/17 20:11:05 nbryant
3338 remove lock.c/lock.h; don't need them for what i was planning after all
3340 Revision 590.70 2002/01/17 10:48:36 error
3341 * cosmetic fixes in the new trace file functionality
3343 Revision 590.69 2002/01/17 10:32:14 error
3344 * lprintf() now logs the session ID for each log entry within a session.
3345 Also SMTP, IMAP, POP3 and Citadel protocol commands are differentiated.
3347 Revision 590.68 2002/01/17 10:16:09 error
3348 * migratenet.c: cygwin fix: include limits.h
3350 Revision 590.67 2002/01/17 10:13:31 error
3351 * serv_ical.c: set expire policy for My Calendar> to manual
3353 Revision 590.66 2002/01/17 07:18:11 ajc
3354 * Changed all "free software" references to "open source" in order
3355 to piss off Richard Stallman
3357 Revision 590.65 2002/01/17 00:22:35 nbryant
3358 added lock.[ch]: recursive read/write locking support. (not actually used yet)
3360 Revision 590.64 2002/01/15 12:41:53 error
3361 * Implement alternate_semantics (see comments in citadel.rc file)
3363 Revision 590.63 2002/01/15 11:07:51 ajc
3364 * vcard.c: updated vCard "object methods" to handle multiple instances of
3365 the same key name when necessary.
3367 Revision 590.62 2002/01/15 06:38:39 error
3368 * Update citadelapi.txt with CtdlUnregister* calls, LogHook calls
3370 Revision 590.61 2002/01/15 06:20:18 error
3371 * Modules can now unregister any of their hooks (though none yet take
3374 Revision 590.60 2002/01/14 08:49:13 error
3375 * Fixed bug in cmd_cre8() causing protocol to get out of sync when creating
3378 Revision 590.59 2002/01/13 04:46:31 ajc
3379 * Allow incoming SMTP to relay to other Citadel nodes for whom we are
3380 providing directory service.
3382 Revision 590.58 2002/01/13 04:06:33 ajc
3383 * Repaired the problems I created when moving the_mime_parser()'s variables
3384 from the stack to the heap. (Hint: sizeof(char *) is 4, not 4096)
3386 Revision 590.57 2002/01/11 15:46:57 error
3387 * Allow users to move/copy messages between personal rooms
3389 Revision 590.56 2002/01/11 04:59:00 ajc
3390 * Finished most of the work for the Global Address Book.
3392 Revision 590.55 2002/01/11 04:37:03 ajc
3393 * More code for the Global Address Book
3395 Revision 590.54 2002/01/11 02:57:35 error
3396 * Don't print **** when sending a page or mail from an anonymous-only room
3398 Revision 590.53 2002/01/10 21:22:37 ajc
3399 * Minor changes for global directory service
3401 Revision 590.52 2002/01/10 04:29:28 ajc
3402 * Minor updates for directory service
3404 Revision 590.51 2002/01/09 23:12:40 ajc
3405 * Allow users to zap mailbox rooms
3407 Revision 590.50 2002/01/09 04:37:32 ajc
3408 * Finished the callback stuff for vCard address extraction
3410 Revision 590.49 2002/01/09 04:05:53 ajc
3411 * Began writing code to harvest Internet e-mail addresses from vCards, and
3412 hacked together a temporary version (and writeup) of the IGAB command.
3414 Revision 590.48 2002/01/08 16:34:22 ajc
3415 * serv_vcard.c: cosmetic cleanup
3417 Revision 590.47 2002/01/06 22:44:21 error
3418 * Enable/disable encryption in client from command line and/or citadel.rc
3420 Revision 590.46 2002/01/06 21:25:26 ajc
3421 * sysdep.c: in client_write(), handle redirect_fp and redirect_sock *before*
3422 handling redirect_ssl, because these need to be done the same way regardless
3423 of client session crypto
3424 * serv_crypto.c: pasted a bunch of Nathan's #ifdef blocks from sysdep.c in
3425 order to gain greater portability (or even to get it to compile on splorph)
3427 Revision 590.45 2002/01/06 11:13:33 error
3428 * Enable SSL/TLS support in the client (again)
3430 Revision 590.44 2002/01/06 11:11:31 error
3431 * Enable SSL/TLS in the client
3433 Revision 590.43 2002/01/06 10:49:55 error
3434 * Add some #includes I apparently somehow missed
3436 Revision 590.42 2002/01/06 10:33:10 error
3437 * SSL/TLS support for the Citadel wire protocol
3439 Revision 590.41 2002/01/06 08:54:58 error
3440 * user_ops.c: fixed become_session() when calling EVT_LOGOUT session hooks
3442 Revision 590.40 2002/01/05 22:31:22 ajc
3443 * Removed some protocol commands and writeups that are no longer necessary
3444 * Began some of the framework for the Global Address Book
3446 Revision 590.39 2002/01/05 12:44:43 error
3447 * serv_chat.c: allow a session to be killed while in chat
3449 Revision 590.38 2002/01/05 12:31:04 error
3450 * user_ops.c: become_session() when calling EVT_LOGOUT session hooks
3452 Revision 590.37 2002/01/05 04:51:36 error
3453 * stats now sorts its top 20 lists properly
3455 Revision 590.36 2002/01/04 20:57:36 nbryant
3458 Revision 590.35 2002/01/04 20:46:26 nbryant
3459 Makefile fix for cygwin (fix migratenet linkage)
3461 Revision 590.34 2002/01/04 20:43:26 nbryant
3462 configure/genstamp: check for struct tm.tm_gmtoff
3464 Revision 590.33 2002/01/03 22:01:17 ajc
3465 * Fixed mail to "sysop"
3467 Revision 590.32 2002/01/03 21:35:07 ajc
3468 * I think this is the last of the fixes for the new submit queue.
3470 Revision 590.31 2002/01/03 12:27:35 error
3471 * Fixed my name in docs/copyright.txt, why didn't I notice that before?
3473 Revision 590.30 2002/01/03 12:21:02 error
3474 * Autoconf support for recognizing OpenSSL
3476 Revision 590.29 2002/01/03 04:52:28 ajc
3477 * serv_network.c: migrated deliveries and bounces to the new message
3478 submission subsystem. NOT TESTED.
3480 Revision 590.28 2002/01/01 21:32:10 ajc
3481 * Finished the updates to serv_smtp.c, although I think there may be a
3482 problem with one-too-many reference counts when a message is submitted
3485 Revision 590.27 2001/12/31 20:15:13 ajc
3486 * Almost finished converting serv_smtp.c to the new message submission
3487 framework. Still not done yet; don't use this.
3489 Revision 590.26 2001/12/30 06:20:46 error
3490 * More keys while reading messages: Q or S same as Ctrl-C, N same as Ctrl-O.
3492 Revision 590.25 2001/12/30 05:50:46 error
3493 * Security: Citadel now drops privileges when called from telnetd, also
3494 checks to make sure you didn't set the setuid/setgid bits. No more
3497 Revision 590.24 2001/12/29 05:19:32 ajc
3498 * Minor cosmetic hack
3500 Revision 590.23 2001/12/29 04:21:22 nixo
3501 stupid me. I didn't realize that asking for the header did what I wanted
3502 so I changed my little 'y' hack to not bother reading the text of the
3503 message. a little saving on the bandwidth.
3505 Revision 590.22 2001/12/28 22:32:38 nixo
3506 Added a "read m<y> next" function in read mode. It will skip to the next
3507 message by the user in the current message list (whatever mode you're in
3508 be it read forward, last 50, whatever.)
3510 Revision 590.21 2001/12/28 11:06:53 error
3511 * More server support for hostnames up to 63 characters (oops I missed a spot)
3513 Revision 590.20 2001/12/28 09:39:10 error
3514 * Client support for hostnames up to 63 characters: truncated at 24 in
3515 short who list, full display in long who list.
3517 Revision 590.19 2001/12/28 09:28:04 error
3518 * Server support for hostnames up to 63 characters
3520 Revision 590.18 2001/12/26 05:01:30 ajc
3521 * Added a new developer ID for Anticlimactic Teleservices
3523 Revision 590.17 2001/12/23 10:00:43 error
3524 * Pages are once again formatted to the caller's screen width.
3526 Revision 590.16 2001/12/23 09:57:47 error
3527 * tools.c: added parameter to fmt_date() to allow for printing the seconds
3528 along with the time, e.g. 12:34 pm or 12:34:56 pm
3530 Revision 590.15 2001/12/20 04:54:26 ajc
3531 * If you paid for this software, someone is ripping you off.
3533 Revision 590.14 2001/12/18 08:24:56 nbryant
3534 more lovely configure tweaks (include paths for db)
3536 Revision 590.13 2001/12/18 06:04:08 ajc
3537 * Moved the buffers in the_mime_parser() from the stack to the heap, because
3538 it was crashing boxen with small stack sizes.
3540 Revision 590.12 2001/12/18 05:54:16 ajc
3541 * Added more load_floorlist() commands to the beginning and end of functions
3542 in the client that manipulate the floor list. This fixes a bug in which
3543 new floors don't show up right away after being created.
3545 Revision 590.11 2001/12/17 08:14:26 nbryant
3546 restored the checks for /usr/include/db3 and /usr/local/include/db3
3547 in configure. there are too many variations on db installation; this is
3550 Revision 590.10 2001/12/17 08:00:45 nbryant
3551 set the pthreads stack size to 128K because FreeBSD's default of 64K
3552 seems too small. fixes crashes under FreeBSD.
3554 Revision 590.9 2001/12/16 00:50:14 error
3555 * Added usersupp.lastcall to the parameters returned from the PASS/PAS2
3556 commands in logged_in_response().
3558 Revision 590.8 2001/12/14 21:33:18 nbryant
3559 finally changed configure to complain if there's no database driver ;)
3561 Revision 590.7 2001/12/14 08:29:30 error
3562 * Security: trace file is now only readable by owner, since it contains
3563 plain text passwords.
3565 Revision 590.6 2001/12/14 07:04:24 ajc
3566 * Now you can send mail to yourself. Hi from Stu.
3568 Revision 590.5 2001/12/14 06:58:12 ajc
3571 Revision 590.4 2001/12/13 22:36:30 nbryant
3572 make configure search for /usr/local/BerkeleyDB.4.0
3574 Revision 590.3 2001/12/13 22:29:57 nbryant
3575 make it compile with Berkeley DB 4.0.x
3577 Revision 590.2 2001/12/11 21:31:07 nbryant
3578 - test for -ldb3 before -ldb
3580 Revision 590.1 2001/12/11 20:04:41 nbryant
3581 - fix library flags, includes for portability
3582 - malloc.h is deprecated
3583 - fix genstamp, hopefully
3584 - fix size_t *printf handling for portability
3586 Revision 590.0 2001/12/08 03:31:41 ajc
3589 Revision 580.95 2001/12/08 03:30:37 ajc
3590 * Final changes to networking docs for 5.90
3592 Revision 580.94 2001/12/06 05:13:34 ajc
3593 * Added the documentation for room sharing and listserv
3595 Revision 580.93 2001/12/04 05:24:15 ajc
3596 * Added two more bytes to the possible length of shared secrets in networking
3597 due to some legacy support requirements.
3599 Revision 580.92 2001/12/04 05:16:19 ajc
3600 * mime_parser.c: change to memory allocation algorithm ... some badly done
3601 messages were crashing the server
3603 Revision 580.91 2001/12/03 22:48:16 ajc
3604 * ooops. Look for the QR2_SYSTEM flag in QRflags2, not QRflags.
3606 Revision 580.90 2001/12/03 17:02:50 ajc
3607 * dynloader.c: fixed improperly done declaration and mallok()
3609 Revision 580.89 2001/12/03 04:28:02 ajc
3610 * mime_parser.c: now uses built-in functions to decode base64 and
3611 quoted-printable attachments, instead of piping data to outboard programs.
3613 Revision 580.88 2001/12/03 02:45:46 ajc
3614 * Began implementing some code to handle multiple recipients (but #define'd
3615 it all out because we're approaching a release)
3617 Revision 580.87 2001/12/03 01:50:17 ajc
3618 * When sending mail, copy to the sender's "Sent Items>" room instead of to
3619 the sender's "Mail>" room.
3621 Revision 580.86 2001/12/02 23:36:24 ajc
3622 * On a new system, set the default new user level to 4 instead of 1.
3624 Revision 580.85 2001/12/02 23:27:01 ajc
3625 * Removed references to the old networker from the documentation. Did not
3626 write any new documentation, so what's there now is kind of sparse.
3628 Revision 580.84 2001/12/02 02:42:55 ajc
3629 * Implemented new room flag QR2_SYSTEM which supresses the room from all
3630 room listings, even for Aides (but it's still gotoable). This will be used
3631 for rooms which hold system configuration and message queues.
3633 Revision 580.83 2001/12/01 19:23:26 ajc
3634 * clientsocket.c: implement socket timeouts for read operations
3636 Revision 580.82 2001/12/01 17:00:23 ajc
3637 * serv_smtp.c: when multiple MX's are the same preference, randomize them
3639 Revision 580.81 2001/12/01 07:18:28 ajc
3640 * Fixed an SMTP delivery problem that was causing certain classes of
3641 transient errors to cause a message to never be delivered.
3643 Revision 580.80 2001/12/01 05:26:01 ajc
3644 * Added a command "SMTP" to the Citadel protocol, to do some unimportant
3645 utility/diagnostic functions.
3647 Revision 580.79 2001/11/27 17:08:29 ajc
3648 * When calling an external editor, set the environment variable
3649 WINDOW_TITLE to an appropriate value.
3651 Revision 580.78 2001/11/26 03:27:08 ajc
3652 * new algorithm to load the use table
3654 Revision 580.77 2001/11/17 19:55:08 ajc
3655 * Updated some of the documentation
3657 Revision 580.76 2001/11/16 04:43:12 ajc
3658 * Eliminated the sock_puts_crlf() function and ensured that all SMTP client
3659 commands are sent out using a single sock_write() call. There are broken
3660 SMTP server implementations that can't handle SMTP commands split across
3661 multiple writes. (Thanks to Andru Luvisi and Ben Mehlman for the idea.)
3663 Revision 580.75 2001/11/15 04:11:30 ajc
3664 * hack.doc: updated to reflect Cit86Net compatibility fields removed from the
3665 file format (since we dumbed down the gateway software)
3666 * ipc_c_tcp.c: removed SOCKS4 support. Nobody uses it anymore.
3667 * ipc_c_tcp.c: fixed a bug which caused the client to fall back to defaultPort
3668 if a numeric port number was specified instead of a service name
3670 Revision 580.74 2001/11/14 02:59:01 ajc
3671 * Network run frequency is now a site-definable setting
3673 Revision 580.73 2001/11/13 22:05:23 ajc
3674 * Re-introduced the ability to enter IGnet mail into the system.
3676 Revision 580.72 2001/10/29 22:59:22 ajc
3677 * Renamed "SuppMsgInfo" to "MetaData" because that's what it is
3679 Revision 580.71 2001/10/29 16:39:54 ajc
3680 * Finished the migratenet utility (finally).
3682 Revision 580.70 2001/10/28 05:18:51 ajc
3683 * migratenet almost finished
3685 Revision 580.69 2001/10/26 04:26:45 ajc
3686 * more work on the net migrator
3688 Revision 580.68 2001/10/23 03:37:33 ajc
3689 * Threw a few more lines of code into migratenet.c
3691 Revision 580.67 2001/10/20 18:10:50 ajc
3692 * migratenet.c: added (not even close to being finished)
3694 Revision 580.66 2001/10/17 21:07:20 nbryant
3695 further format string cleanups (for i686-linux type sizes)
3697 Revision 580.65 2001/10/17 20:41:07 nbryant
3698 - declare *printf format specifiers if gcc detected
3699 - format string fixes (compiles w/o warnings on alpha osf/1)
3701 Revision 580.64 2001/10/17 19:40:38 nbryant
3702 warning fixes and cleanups for 64-bit machines
3704 Revision 580.63 2001/10/16 20:47:37 nbryant
3705 - backed out -export-dynamic, it doesn't do anything and i've found the real
3707 - remove declaration for make_message
3709 Revision 580.62 2001/10/16 19:18:49 nbryant
3710 backed out that compiler detection change for Tru64. it's not incredibly
3711 important and results in broken autoconf macro expansions.
3713 Revision 580.61 2001/10/16 18:36:33 nbryant
3714 reinstate -export-dynamic for citserver in case libtool decides to build
3715 static libraries (why?)
3717 Revision 580.60 2001/10/16 18:21:53 nbryant
3718 add some explanatory text to bootstrap
3720 Revision 580.59 2001/10/16 17:43:53 nbryant
3721 - further configure tweaks for FreeBSD and Tru64 Unix
3722 - updated to latest libtool configure fragment
3723 - there are two functions named make_message. (?) so declare them both
3726 Revision 580.58 2001/10/16 01:48:55 nbryant
3727 - configury tweaks for a /usr/include/db3 goof and Digital/Tru64 Unix
3728 - #ifdef out inline on non-GCC compilers
3730 Revision 580.57 2001/10/15 19:50:50 ajc
3731 * Fixed a bug in the loopzapper that was corrupting the use table saved copy.
3732 * Post notification in Aide> when the loopzapper catches a message.
3734 Revision 580.56 2001/10/12 22:41:11 ajc
3735 * Wrote the rest of the use table code. Finished except for a bug.
3737 Revision 580.55 2001/10/10 18:35:12 ajc
3738 * Comments & cosmetics for previous update
3740 Revision 580.54 2001/10/10 17:12:54 ajc
3741 * Bugfix for MSG0 command to properly handle multipart/alternative
3743 Revision 580.53 2001/10/06 21:32:29 ajc
3744 * Finished the concurrency check for network polling. (Now works both for
3745 polling and being polled. Severe UUCP deja vu.)
3747 Revision 580.52 2001/10/06 20:28:06 ajc
3748 * Began implementing some concurrency stuff for the networker
3750 Revision 580.51 2001/10/06 19:51:47 ajc
3751 * Stripped the build of obsolete parts of the old networker no longer in use.
3753 Revision 580.50 2001/10/03 20:05:50 ajc
3754 * serv_smtp.c: implement RFC2920 ESMTP "pipelining" extension on the server
3755 side. (No changes required other than advertising the extension.)
3757 Revision 580.49 2001/10/03 03:15:16 ajc
3758 * Implemented BOUNCE BOUNCE BOUNCE
3760 Revision 580.48 2001/10/02 03:04:30 ajc
3761 * Allow non-Aides to terminate sessions belonging to them
3763 Revision 580.47 2001/09/24 18:55:13 ajc
3764 * Completed migrating the "netpoll" utility into the serv_network module.
3765 Removed this utility.
3767 Revision 580.46 2001/09/21 20:58:25 nbryant
3768 support different log_archive prototype in DB versions prior to 3.3
3770 Revision 580.45 2001/09/20 04:17:10 ajc
3771 * Inbound network authentication working. Fixed a bug in the split-horizon
3772 algorithm. Still need to move the 'netpoll' command into the server.
3774 Revision 580.44 2001/09/18 04:05:04 ajc
3775 * Added host/IP and port to node config (client side only)
3777 Revision 580.43 2001/09/17 23:55:45 ajc
3778 * Support for IGnet routing (not tested)
3780 Revision 580.42 2001/09/16 05:44:51 ajc
3781 * serv_smtp.c: instead of doubling delivery retry times unbounded, set a
3782 maximum retry time of SMTP_RETRY_MAX (currently set to 12 hours)
3784 Revision 580.41 2001/09/09 16:19:29 error
3785 * Updated PAM configuration file citadel.pam for Red Hat 7.x.
3787 Revision 580.40 2001/09/09 03:19:38 ajc
3788 * cdb_cull_logs() now removes log files as soon as the log_archive() function
3789 says it's ok to do so.
3791 Revision 580.39 2001/09/08 18:58:38 ajc
3792 * More changes to the new networker. Added client command for room sharing.
3794 Revision 580.38 2001/09/07 04:05:27 ajc
3795 * You guessed it: still more code for the new networker.
3797 Revision 580.37 2001/09/06 05:47:29 nbryant
3798 check for /usr/include/db3 (for RedHat 6.2; others?)
3800 Revision 580.36 2001/09/06 05:23:14 nbryant
3801 #include fix for glibc 2.1.3
3803 Revision 580.35 2001/09/06 04:02:34 ajc
3804 * A few more updates to the networker
3806 Revision 580.34 2001/09/06 03:32:41 nbryant
3807 build fix for sparc-sun-solaris2.8; i think the dependencies should be
3808 set up properly for all platforms now.
3810 Revision 580.33 2001/09/06 02:55:27 nbryant
3813 Revision 580.32 2001/09/06 02:49:22 ajc
3814 * Fixed paste-post mode (<.E>nter <A>scii) to append instead of replace when
3815 the user hits <C>ontinue (bug reported by Stu Mark)
3817 Revision 580.31 2001/09/06 01:26:39 nbryant
3818 - port to Cygwin (DLL support, etc.)
3819 - don't build SMTP module if there's no resolver library (eg on Windows)
3821 Revision 580.30 2001/09/06 00:54:01 nbryant
3822 updated to libtool 1.4.1 and automake 1.5
3824 Revision 580.29 2001/08/29 02:51:25 ajc
3825 * More work on the new networker.
3827 Revision 580.28 2001/08/25 05:04:57 ajc
3828 * Worked a little more on the in-server replacement for netproc
3830 Revision 580.27 2001/08/22 04:18:17 ajc
3831 * Realized that there was lots of similarly broken code in
3832 process_rfc822_addr(). Wrote two new utility functions in tools.c
3833 stripout() and stripallbut() and used them where appropriate. This should
3834 take care of all possible infinite loops.
3836 Revision 580.26 2001/08/22 03:43:11 ajc
3837 * internet_addressing.c: fixed a bug in process_rfc822_addr() that caused the
3838 server to jump into an endless loop when an e-mail address contained
3839 unbalanced angle brackets.
3841 Revision 580.25 2001/08/15 04:26:02 ajc
3842 * Added split horizon and delete-after-spool to the new networker
3844 Revision 580.24 2001/08/14 02:41:57 ajc
3845 * Began the migration of netproc into part of the serv_network.c module instead
3846 of a standalone program.
3848 Revision 580.23 2001/08/11 22:35:40 nbryant
3849 updated citadel-with-berkeley-db.txt.
3850 - updated build instructions
3851 - improved backup procedures to be safer and more space-efficient.
3853 Revision 580.22 2001/08/11 19:18:41 ajc
3854 * Realized that I am stupid and started implementing server commands to load
3855 and save network configurations, when I had already lovingly implemented the
3856 CONF GETSYS and CONF PUTSYS commands to store arbitrary configuration sets
3857 in the Local System Configuration> room. Ripped the newer crap out.
3858 * Implemented a skeleton of <.A>ide <S>ysconfig <N>etwork on the client side.
3860 Revision 580.21 2001/08/11 03:51:56 ajc
3861 * Removed the idle timer from the client. Dialup is dead.
3863 Revision 580.20 2001/08/06 21:33:29 nbryant
3864 made the client fall back on port 504 if there's no /etc/services entry
3866 Revision 580.19 2001/08/05 23:54:14 ajc
3867 * prep for new network node infrastructure
3869 Revision 580.18 2001/08/03 16:53:21 ajc
3870 * Added some more "break" statements to the main switch..case loop in
3871 citadel.c where they were needed.
3873 Revision 580.17 2001/08/03 16:43:53 ajc
3874 * database_sleepycat.c: when running txn_checkpoint(), handle DB_INCOMPLETE
3875 return code as a warning instead of an error worthy of aborting the server.
3876 See http://www.sleepycat.com/docs/api_c/txn_checkpoint.html for explanation.
3878 Revision 580.16 2001/07/30 03:46:14 nbryant
3879 made ForEachUser use a read-only cursor, too. there is now only one piece of
3880 code in Citadel proper (not the database driver) that needs transactions.
3881 that's check_ref_counts; in other words it's the only thing standing in the way
3882 of a clean implementation of retryable transactions.
3884 Revision 580.15 2001/07/29 22:24:04 nbryant
3885 - added a new function to the database interface, cdb_close_cursor(). always
3886 call this when you're finished with a traversal but didn't bother reading all
3889 - removed several cdb_begin_transaction()/cdb_end_transaction() calls that are
3890 no longer needed because of the read-only cursor support.
3892 Revision 580.14 2001/07/29 20:56:09 nbryant
3893 change ForEachRoom to use read-only cursors by default. it can be overridden to
3894 still use read/write cursors by doing:
3896 cdb_begin_transaction();
3898 cdb_end_transaction();
3900 the only place I found where it appears necessary to do so is check_ref_counts,
3901 so this checkin affects that function too.
3903 Revision 580.13 2001/07/29 20:06:33 nbryant
3904 generate symlinks to .libs in modules directory
3906 Revision 580.12 2001/07/28 00:02:50 nbryant
3907 implemented read-only cursors. one of the advantages to these is that
3908 transactions can be avoided; a cursor operation that occurs within a
3909 transaction will often acquire a read lock on every single database page. in
3910 general, the Sleepycat documentation recommends avoiding transaction-protected
3911 read-only operations where practical. read/modify/write operations can still
3912 be transaction protected, of course.
3914 to use a read-only cursor, call cdb_rewind without a previous call to
3915 cdb_begin_transaction. the DB driver will notice this and prevent the current
3916 thread from modifying data or starting a transaction until the cursor is
3919 Revision 580.11 2001/07/27 20:45:44 nbryant
3920 libtool has matured a lot since the last time i looked at it (years ago)
3921 so we now use it to handle the details of building shared libraries and
3922 the linker flags for the main executable.
3924 in theory this should bring a lot more portability to the dynloader
3925 subsystem and enable us to do things like transparently detect GNU vs Sun
3926 linkers on solaris, for example
3928 Revision 580.10 2001/07/27 03:29:04 nbryant
3929 missed one thing in the autoconf move
3931 Revision 580.9 2001/07/27 02:57:43 nbryant
3932 support one cursor per database rather than one global cursor
3934 Revision 580.8 2001/07/27 01:32:07 nbryant
3935 remove the automatic transaction demarcation on singleton read operations
3937 Revision 580.7 2001/07/26 21:43:46 nbryant
3938 - move to autoconf 2.52
3939 - random warning fix
3942 Revision 580.6 2001/07/24 13:17:54 ajc
3943 * New UI for mailing list setup
3944 * rooms.c: code cleanup
3947 Revision 580.5 2001/07/20 23:48:23 nbryant
3948 fix build on solaris, check default install location for db 3.2, and silence
3951 Revision 580.4 2001/07/16 14:24:30 ajc
3952 * Silly cosmetic change to keep the wholist ordered by ascending session number
3954 Revision 580.3 2001/07/13 00:01:36 ajc
3955 * Shuffled around some of the housekeeping loop code
3957 Revision 580.2 2001/07/11 17:01:10 ajc
3958 * database_sleepycat.c: small changes to log messages
3960 Revision 580.1 2001/07/11 04:35:40 nbryant
3961 moved dret initialization in cdb_fetch, just in case
3963 Revision 580.0 2001/07/03 03:07:06 ajc
3966 Revision 573.143 2001/07/03 03:06:50 ajc
3967 * Last minute doco update for 5.80
3969 Revision 573.142 2001/07/01 15:44:32 nbryant
3970 configure.in: check for Berkeley DB first.
3972 Revision 573.141 2001/06/27 23:34:30 ajc
3973 * Added some verbage to messages/roomaccess to placate a user who keeps
3974 bitching about privacy policy.
3976 Revision 573.140 2001/06/19 03:41:04 ajc
3977 * Ooops... last_cull needs to be declared static
3979 Revision 573.139 2001/06/19 03:33:19 ajc
3980 * imap_fetch.c: download MIME parts without decoding first. We like that.
3981 * database_sleepycat.c: added automatic culling of log files which have not
3982 been written to in five days.
3984 Revision 573.138 2001/06/17 19:42:23 nbryant
3985 fix all the <time.h> vs. <sys/time.h> issues, hopefully
3987 Revision 573.137 2001/06/07 03:28:37 ajc
3988 * More tweaks to the MIME parser
3990 Revision 573.136 2001/06/06 15:44:37 ajc
3991 * msgbase.c: output extra newline at end of RFC822 message if necessary to
3992 ensure that 000 termination string appears on a line by itself.
3994 Revision 573.135 2001/06/06 04:22:25 ajc
3995 * Moved memreadline() to tools.c
3996 * internet_addressing.c: fixed conversion of fields to (hopefully) never get
3997 into an active loop when encountering badly formed headers
3999 Revision 573.134 2001/05/27 05:23:03 ajc
4000 * Added a "no new messages" response in the client, displayed when a read
4001 command turns up a zero message count.
4003 Revision 573.133 2001/05/18 20:12:09 ajc
4004 * Fixed bug in mime_parser.c that caused parts to be dropped when the last
4005 boundary was the very last line of the message.
4006 * serv_smtp.c: toned down some of the command response verbage.
4008 Revision 573.132 2001/04/28 04:42:55 ajc
4009 * Updated some of the docs. Bumped version number to 5.80 in anticipation
4010 of going into a release cycle soon.
4012 Revision 573.130 2001/04/26 03:31:00 ajc
4013 * Finished the implementation of per-message seen/unseen logic, both in the
4014 server proper and in IMAP. Citadel protocol uses new "seen" command.
4016 Revision 573.129 2001/04/21 04:55:51 ajc
4017 * Began implementation of per-message seen/unseen attribute
4019 Revision 573.128 2001/04/20 03:39:54 ajc
4020 * IMAP LIST/LSUB: made it case insensitive. Also minor IMAP code cleanup.
4022 Revision 573.127 2001/04/17 00:35:19 cough
4023 * Modified rooms.c in the client so that it would allow inviting into
4024 public rooms. This is important since there is now a V_LOCKOUT
4025 flag which prevents users who have been kicked from rejoining
4026 a room unless/until you invite them back in.
4028 Revision 573.126 2001/04/16 19:21:14 cough
4029 * Fixed bug in room_ops.c that wasn't allowing aides to goto passworded
4030 rooms without knowing the password.
4032 Revision 573.125 2001/04/14 04:26:44 ajc
4033 * Fixed an unterminated string bug in IMAP APPEND. Storing messages should
4036 Revision 573.124 2001/04/10 01:04:10 ajc
4037 * Finished coding IMAP APPEND. It works, but there's a bug in it somewhere
4038 that is corrupting the memory.
4040 Revision 573.123 2001/04/03 00:47:23 ajc
4041 * Began implementing IMAP APPEND
4043 Revision 573.122 2001/04/01 22:05:44 cough
4044 * *Actually* fixed a botched ChangeLog entry.
4046 Revision 573.121 2001/04/01 22:04:28 cough
4047 * Fixed a botched ChangeLog entry.
4049 Revision 573.120 2001/04/01 22:03:10 cough
4050 * Changed two fclose()s to pclose()s.
4052 Revision 573.119 2001/03/25 11:52:36 error
4053 * serv_pop3.c: Fixed APOP. Now logs in properly. Also cleaned up some non-
4054 RFC-compliant error messages.
4056 Revision 573.118 2001/03/21 05:47:49 ajc
4057 * Added the new IMAP mailbox string compare submitted by Daniel Malament.
4059 Revision 573.117 2001/03/20 01:33:55 ajc
4060 * Added the (\NoInferiors) tag to all rooms listed in IMAP. This made Mozilla
4063 Revision 573.116 2001/03/13 17:19:33 ajc
4064 * support (BODY[HEADER.FIELDS(BLAH BLAH BLAH)]) and HEADER.FIELDS.NOT
4066 Revision 573.115 2001/03/12 01:27:42 ajc
4067 * Implemented SUBSCRIBE and UNSUBSCRIBE commands
4069 Revision 573.114 2001/03/11 23:00:29 ajc
4070 * Mega sexy hack to deliver express messages THROUGH IMAP! uber coolness!!
4072 Revision 573.113 2001/03/11 22:09:20 ajc
4073 * Replaced the "citlogin" binary wrapper with the "loginwrapper.sh" script.
4075 Revision 573.112 2001/03/11 20:06:53 ajc
4076 * Fixed bug that created incorrect roomnames when sending pages
4078 Revision 573.111 2001/03/11 19:23:32 ajc
4079 * IMAP DELETE command ... also split up access control for room delete cmds
4081 Revision 573.110 2001/03/10 17:29:07 ajc
4082 * Implement proper access control for deleting messages from IMAP
4084 Revision 573.109 2001/03/07 04:02:27 ajc
4085 * Fixed some small IMAP bugs
4087 Revision 573.108 2001/03/06 04:44:00 ajc
4088 * Probable completion of STATUS, COPY, STORE, and EXPUNGE commands in IMAP
4090 Revision 573.107 2001/03/06 03:31:58 nbryant
4091 database-related cleanups and paranoia tests;
4092 fixed a transaction-leak/deadlock problem in cdb_delete;
4093 solved the SIGPIPE mystery (GDB stops on SIGPIPE is all it was)
4095 Revision 573.106 2001/03/05 04:59:31 ajc
4098 Revision 573.105 2001/03/04 23:49:41 ajc
4099 * IMAP EXPUNGE responses -should- be correct now
4101 Revision 573.94 2001/02/20 00:02:56 ajc
4102 * IMAP: implemented the STATUS command (sort of).
4104 Revision 573.93 2001/02/19 22:24:41 ajc
4105 * IMAP server: added untagged, unsolicited server messages for newly arrived
4106 messages, and messages expunged by another session.
4108 Revision 573.92 2001/02/17 05:53:35 ajc
4109 * Repaired the creation of page log rooms in the wrong namespace when the
4110 recipient does not yet have his/her log room created.
4111 * Rewrite "EXPI messages" to run in two passes: one to gather messages to
4112 purge and the next to delete them. Works better in transactionland.
4114 Revision 573.91 2001/02/14 08:11:27 error
4115 * citadel.rc: added RCS ID (it's about time!)
4117 Revision 573.90 2001/02/14 04:23:54 ajc
4118 * Fixed POP3 server responses ending in \n instead of \r\n as they should be.
4119 This was causing some clients (such as Pine) to lock up.
4121 Revision 573.89 2001/02/13 04:06:14 ajc
4122 * Worked out the remaining bugs in IMAP FETCH for the BODYSTRUCTURE and
4123 BODY[n] data items. I think. So much protocol crud, so little time...
4125 Revision 573.88 2001/02/13 01:18:44 ajc
4128 Revision 573.87 2001/02/12 04:31:34 ajc
4129 * sysdep.c ig_tcp_server() - use IPPROTO_TCP instead of getprotobyname()
4131 Revision 573.86 2001/02/08 04:45:58 ajc
4132 * Fixed namespace problems resulting from the automatic namespece prefixing
4133 added to create_room(). Also added the ability to specify "create a mailbox
4134 but I've already supplied the namespace prefix" for situations where the
4135 namespace isn't that of the logged in user.
4136 * Made the POP3 server response messages slightly less humorous
4138 Revision 573.85 2001/02/06 04:44:12 ajc
4139 * Added a floor listing (complete with \NoSelect flag) to LIST and LSUB
4141 Revision 573.84 2001/02/06 02:09:38 ajc
4142 * citadel.rc: changed the default for local_screen_dimensions to 1, since
4143 Internet users now outnumber dialup users 100 to 0.
4144 * room_ops.c: added a really_create option to create_room(). Also moved the
4145 generation of personal namespace into that function. MODULE OWNERS PLEASE
4146 CHECK YOUR CALLS TO AVOID MULTIPLE NAMESPACING!!
4147 * room_ops.c: fixed a bug in cgetfloor() that left bad pointers around
4148 * serv_imap.c: finished the CREATE command (finally)
4150 Revision 573.83 2001/02/05 05:20:22 ajc
4151 * Made some changes to functions which translate between Citadel room names
4152 and IMAP folder names. They're still buggy.
4154 Revision 573.82 2001/02/04 23:17:28 ajc
4155 * Implemented the IMAP CREATE command
4157 Revision 573.81 2001/02/04 02:40:07 ajc
4158 * more imap. imap sucks. die crispin die.
4160 Revision 573.80 2001/02/03 10:02:12 error
4161 * serv_ical.c: Verify that objects posted to My Calendar> are of type
4162 text/x-calendar or text/calendar; abort saving if not
4164 Revision 573.79 2001/02/03 09:30:46 error
4165 * serv_ical.c: now creates a My Calendar> personal room, sets attributes
4167 Revision 573.78 2001/02/03 08:21:00 error
4168 * serv_ical.c and serv_ical.h added; skeleton code for now
4170 Revision 573.77 2001/02/02 20:18:18 ajc
4171 * Changed the error message in cdb_delete() to actually *say* cdb_delete
4172 instead of cdb_store. Useful to know which function failed...
4174 Revision 573.76 2001/02/01 04:08:03 ajc
4175 * IMAP minor change to mailbox name output
4176 * Increased size of buffer in lprintf()
4178 Revision 573.75 2001/01/28 09:50:02 error
4179 * sysdep.c: lprintf() now generates timestamps
4181 Revision 573.74 2001/01/28 07:35:04 error
4182 * serv_bio.c: RBIO now also returns stats about a user, see session.txt
4184 Revision 573.73 2001/01/16 04:03:13 ajc
4185 * yeesh ... more on the IMAP BODYSTRUCTURE
4187 Revision 573.72 2001/01/16 01:51:12 ajc
4188 * imap bodystructure
4190 Revision 573.71 2001/01/16 00:46:40 ajc
4191 * Changed the MIME parser API *again* because we now need the ability to
4192 supply callback functions to be executed before and/or after parsing a
4193 multipart. (Need this for IMAP BODYSTRUCTURE output.)
4195 Revision 573.70 2001/01/15 23:59:26 ajc
4196 * user_ops.c: reject NULL password in CtdlTryPassword() instead of crashing
4198 Revision 573.68 2001/01/15 20:34:04 ajc
4199 * "Path:" removed for now because it confuses brain-dead Microsoft shitware
4200 into thinking that mail messages are newsgroup messages instead. When we
4201 add NNTP support back into Citadel we'll have to add code to only output
4202 this field when appropriate.
4204 Revision 573.67 2001/01/15 16:30:31 ajc
4205 * temporary implementation of 901 asynchronous express messages
4207 Revision 573.66 2001/01/14 14:55:39 ajc
4208 * Changed the format of <.W>holist <L>ong
4210 Revision 573.65 2001/01/13 06:40:26 nbryant
4211 merged remaining changes from TRANSACTIONS (using cvs update -j TRANSACTIONS)
4212 which should now be considered closed.
4214 Revision 573.64 2001/01/13 06:12:15 ajc
4215 * Added the ASYN command
4217 Revision 573.63 2001/01/12 22:05:46 ajc
4218 * Fixed a bug that caused bogus wholist lines to be displayed when a non-aide
4219 reads a list containing stealth mode sessions.
4221 Revision 573.62 2001/01/09 05:39:45 ajc
4222 * Merged in code from the TRANSACTIONS branch for testing.
4224 Revision 573.61 2000/12/30 06:17:17 ajc
4225 * Still more work on IMAP. Damn this is tedious.
4227 Revision 573.60 2000/12/30 04:55:05 ajc
4228 * more buffer size stuff
4230 Revision 573.59 2000/12/27 20:19:51 ajc
4231 * The size constant "256" which shows up everywhere as a buffer size has now
4232 been changed to SIZ. And, SIZ has been defined now as 1024, not 256, because
4233 we need 1024 byte buffers for most Internet protocols.
4235 Revision 573.58 2000/12/27 05:09:58 ajc
4236 * Added a skeleton IMAP "SEARCH" command (based on the FETCH logic)
4238 Revision 573.57 2000/12/26 03:46:50 ajc
4241 Revision 573.56 2000/12/25 22:50:43 ajc
4242 * Added an API function to extract and unfold specific RFC822 fields.
4243 * imap-->fetch-->envelope-->in-reply-to now works
4244 * More robust checking and reporting of temp file errors in the client
4246 Revision 573.55 2000/12/25 20:43:24 ajc
4247 * imap_fetch.c: added support for fetch-->envelope-->from
4249 Revision 573.54 2000/12/20 04:09:24 ajc
4250 * A few memory handling fixes to netproc.
4252 Revision 573.53 2000/12/20 01:57:37 ajc
4253 * netproc.c: added bounds check to fpgetfield()
4255 Revision 573.52 2000/12/19 20:41:55 ajc
4256 * Fixed generation of unique file names for network uploads etc.
4258 Revision 573.51.2.11 2000/12/26 05:30:55 nbryant
4259 remove extraneous transaction around dynamic module initializations. this will
4260 fix the crash on database creation.
4262 Revision 573.51.2.10 2000/12/24 23:00:58 nbryant
4263 clean: also remove parsedate.c
4265 Revision 573.51.2.9 2000/12/20 01:38:42 nbryant
4266 require transactional cursors
4268 Revision 573.51.2.8 2000/12/20 00:30:01 nbryant
4269 release any stale db handles at the end of a server command
4270 (unfinished transactions will be aborted to annoy lazy programmers)
4272 Revision 573.51.2.7 2000/12/19 06:18:27 nbryant
4273 set sched_yield as sleepycat's yield function. this should improve locking
4276 Revision 573.51.2.6 2000/12/19 02:22:29 nbryant
4277 added automatic transaction start/end on cdb_fetch, cdb_delete, and cdb_store
4279 Revision 573.51.2.5 2000/12/18 03:51:13 nbryant
4280 ditto S_USER_TRANS, S_CALLLOG, and S_HOUSEKEEPING, which are no longer used at
4283 Revision 573.51.2.4 2000/12/18 02:49:17 nbryant
4284 removed all references to S_MSGMAIN critical section; it wasn't really needed.
4285 this should make things significantly more scaleable.
4287 Revision 573.51.2.3 2000/12/17 22:12:48 nbryant
4288 reworked shutdown sequence to wait for worker threads to terminate before
4289 checkpointing and closing databases. it is no longer safe to call
4290 master_cleanup() directly to force a shutdown; instead, just set
4291 time_to_die to a nonzero value
4293 Revision 573.51.2.2 2000/12/17 05:06:09 nbryant
4294 added deadlock detection and cleaned up messages
4296 Revision 573.51.2.1 2000/12/16 21:06:59 nbryant
4297 created TRANSACTIONS branch
4298 track cursor and transaction id's in thread-specific data
4300 Revision 573.51 2000/12/14 18:36:34 ajc
4301 * Fixed the "users not in chat" wholist display
4303 Revision 573.50 2000/12/12 18:06:46 ajc
4304 * Removed the transaction stuff (but left the log in). It wasn't working.
4306 Revision 573.49 2000/12/12 06:19:55 ajc
4307 * Stabilize, dammit!!
4309 Revision 573.48 2000/12/12 04:20:03 ajc
4310 * Made the transaction open/close a global thing, in a frantic attempt to get
4311 Uncensored to stop crashing. More fixes on the way...
4313 Revision 573.47 2000/12/11 06:08:41 ajc
4314 * Removed the housekeeper thread, moved terminate_idle_sessions() out to a
4315 timer event, and check_sched_shutdown() to the end of the worker thread
4316 loop. Seems to have improved reliability (but why?)
4318 Revision 573.46 2000/12/11 03:22:11 ajc
4319 * Added server-side REQT command to issue client termination requests
4321 Revision 573.45 2000/12/11 02:19:26 ajc
4322 * Client now honors EM_GO_AWAY flag, used by the server to request that a
4323 client log off. (The server doesn't support sending that flag yet, though)
4325 Revision 573.44 2000/12/09 06:20:06 ajc
4326 * A few final touches to the Sleepycat DB back-end
4328 Revision 573.43 2000/12/08 17:06:33 ajc
4329 * Wrap txn_begin and txn_end in S_DATABASE mutex
4331 Revision 573.42 2000/12/07 20:21:39 ajc
4332 * begin/end transaction in master_startup()
4334 Revision 573.41 2000/12/07 16:59:02 nbryant
4335 added --with-db and --with-gdbm options to configure
4337 Revision 573.40 2000/12/07 04:50:33 ajc
4338 * Wrap housekeeper and timer events in transaction open/close functions
4339 * Checkpoint the DB as an EVT_TIMER event instead of after each session
4340 (runs each minute, but actually limited by the parameters of the function)
4342 Revision 573.39 2000/12/06 04:44:36 ajc
4343 * Changed netproc to keep the use table in a flat file instead of a database
4345 Revision 573.38 2000/12/05 05:32:58 ajc
4346 * Added support for non-USA country identities in vCard and registration
4347 * User edit now asks whether it should prompt to change the password
4349 Revision 573.37 2000/12/03 04:12:21 ajc
4350 * Finished (mostly) the Sleepycat DB backend ... added transaction logging
4352 Revision 573.36 2000/11/30 03:23:17 ajc
4353 * Got the Sleepycat DB back end working, by opening the databases in a non
4354 shared, non threaded mode, and using Citadel's locking to serialize access.
4356 Revision 573.35 2000/11/29 05:00:02 ajc
4357 * I think the db stuff is ok, but my db library is fux0red...
4359 Revision 573.34 2000/11/27 14:12:09 error
4360 * commands.c: fixups to print_express() to make external command not print
4361 extraneous stuff to the terminal and make the displayed message consistent
4363 Revision 573.33 2000/11/27 10:41:14 error
4364 * print_express(): now uses GEXP instead of old PEXP; displays timestamps
4366 Revision 573.32 2000/11/27 10:29:59 error
4367 * serv_chat.c: fix send_express_message() to include timestamps
4369 Revision 573.31 2000/11/27 03:44:27 ajc
4370 * Initial checkin of database_sleepycat.c (doesn't work yet)
4372 Revision 573.30 2000/11/26 05:24:22 ajc
4373 * msgbase.c: Added new API function CtdlOutputPreLoadedMsg(), and
4374 re-implemented the existing CtdlOutputMsg() as a wrapper around it.
4375 * imap_fetch.c: used the above function to do all output pre-loaded
4377 Revision 573.29 2000/11/25 09:36:18 error
4378 * Added a bit of detail to syslog entries; now shows session id attached to
4379 client, hostname, and username, and time the session ended.
4381 Revision 573.28 2000/11/25 06:17:06 ajc
4382 * Minor IMAP tweaks. It still doesn't work. :(
4384 Revision 573.27 2000/11/23 07:22:21 error
4385 * citadel.spec: update version number
4387 Revision 573.26 2000/11/21 11:12:56 error
4388 * domain.h: changed the HP/UX compatibility code to use defines from
4389 typesize.h for integers of specific bit widths (needed for Solaris, etc)
4391 Revision 573.25 2000/11/12 04:20:49 ajc
4392 * Optimized server side input of message text
4394 Revision 573.24 2000/11/10 03:55:06 ajc
4395 * Ford's Fix for Faster Functionality (save position during reply)
4397 Revision 573.23 2000/11/09 04:48:50 ajc
4398 * tools.c: striplt() strips all whitespace, not just spaces
4400 Revision 573.22 2000/11/07 20:47:21 ajc
4401 * imap_fetch.c: added a skeleton "ENVELOPE" fetch. Currently sends NIL's.
4403 Revision 573.21 2000/11/07 15:54:53 ajc
4404 * xx FETCH n:n BODY[pn.MIME] now works
4406 Revision 573.20 2000/11/06 05:10:01 ajc
4407 * Changed the mime_parser() API (again) to allow "don't decode" mode
4409 Revision 573.19 2000/10/29 18:11:07 ajc
4410 * Start numbering top-level MIME parts as 1, 2... not 1.1, 1.2...
4412 Revision 573.18 2000/10/28 14:14:19 error
4413 * msgbase.c: eliminated most gotos; a single goto in alias() remains because
4414 it actually makes sense to do it that way...
4416 Revision 573.17 2000/10/25 21:37:09 ajc
4417 * Implemented the AUTHENTICATE LOGIN command in IMAP
4419 Revision 573.16 2000/10/25 19:20:37 ajc
4420 * FETCH now works for ranges *and* sets, and with sequence numbers *and* UID's
4422 Revision 573.15 2000/10/24 20:39:59 ajc
4423 * Added RFC822, RFC822.HEADER, RFC822.SIZE, RFC822.TEXT fetch keys to IMAP
4425 Revision 573.14 2000/10/23 20:26:51 error
4426 * War on goto: rewrote a few easy functions to eliminate unnecessary gotos
4428 Revision 573.13 2000/10/11 23:03:44 error
4429 * utilsmenu: obey $PAGER environment var, if any. Default to more if neither
4430 $PAGER nor less is available.
4432 Revision 573.12 2000/10/11 22:55:25 error
4433 * citadel.c: when ansi_color=user, enable color at login, so Lobby> posts
4434 displayed at login are in color
4436 Revision 573.11 2000/10/11 22:47:51 error
4437 * domain.c: getmx() returns hostname as MX if no MX records found a la RFC 974
4439 Revision 573.10 2000/10/10 19:18:12 ajc
4440 * Added support of macros ALL, BODY, FAST, and FULL to the IMAP FETCH command
4442 Revision 573.9 2000/10/06 03:31:55 ajc
4443 * IMAP is a convoluted mess.
4445 Revision 573.8 2000/10/05 22:23:16 ajc
4446 * Slowly and painfully writing IMAP support
4448 Revision 573.7 2000/10/04 22:39:06 ajc
4449 * Added skeleton versions of the LIST and LSUB commands to the imap server
4451 Revision 573.6 2000/10/04 17:48:21 ajc
4452 * Allow Aides to zap rooms (site configurable setting)
4454 Revision 573.5 2000/10/03 01:45:00 ajc
4455 * Changed the <.A>ide <S>ysconfig <G>eneral command to explicitly allow the
4456 global page log room to be disabled (answer "no" to set the log room to a
4459 Revision 573.4 2000/09/28 10:27:38 error
4460 * commands.c: changed sttybbs() to support HP/UX termios VMIN and VTIME
4462 Revision 573.3 2000/09/24 22:01:45 ajc
4463 * ipc_c_tcp.c: don't hardcode BBSDIR path for unix domain sockets
4465 Revision 573.2 2000/09/21 04:16:44 ajc
4466 * Fixed logged_in_response() so it only displays responses during Citadel
4467 protocol sessions. (This was affecting POP etc.)
4469 Revision 573.1 2000/09/11 22:05:04 ajc
4470 * citadel.c: accept -h <host> and -p arguments, so citadel can be called
4471 directly by telnetd, bypassing /bin/login. It works, but not recommended at
4472 this time because it has to run as root.
4474 Revision 573.0 2000/09/05 18:35:22 ajc
4475 * Tagged everything for version 5.73 release
4477 Revision 572.39 2000/09/04 03:59:15 ajc
4479 ----------------------------
4481 date: 2000/09/03 06:36:01; author: error; state: Exp; lines: +5 -1
4482 Added HP/UX linker flag for dynamic modules to work
4483 ----------------------------
4485 date: 2000/09/01 06:50:00; author: error; state: Exp; lines: +8 -1
4486 Changed to use integer macros from typesize.h for specific bit widths
4487 ----------------------------
4489 Revision 572.38 2000/09/01 20:17:08 ajc
4490 * msgbase.c: cmd_opna() - increase desired_section buffer from 64 to 256 bytes
4492 Revision 572.37 2000/09/01 17:31:47 ajc
4493 * Fixed oopseth in control.c that might call fileno(NULL)
4495 Revision 572.36 2000/09/01 13:37:16 ajc
4496 * control.c: chown citadel.control to bbsuid when opening/creating as root
4498 Revision 572.35 2000/09/01 03:55:44 ajc
4499 * Fixed a few more references to the deprecated uncnsrd.mt-kisco.ny.us name
4501 Revision 572.34 2000/09/01 03:43:09 ajc
4502 * Added 'author' command-line arg to aidepost. Closes enhancement request
4504 * Put the default SMTP and POP3 ports back to 25 and 110. Now that the
4505 unix domain socket bug is fixed, it's ok if these binds fail.
4507 Revision 572.33 2000/08/31 23:02:15 ajc
4508 * ig_tcp_server() and ig_uds_server() - check to make sure queue length is
4509 always at least 5. Zero-length queues can cause connection lockups.
4511 Revision 572.32 2000/08/31 21:32:44 ajc
4512 * Still trying to fix a socket connect bug
4514 Revision 572.31 2000/08/31 16:37:08 ajc
4515 * docs/import-export.txt: added.
4517 Revision 572.30 2000/08/28 19:51:51 ajc
4518 * messages.c: cosmetic cleanup (coding convention and comments)
4520 Revision 572.29 2000/08/26 20:23:18 ajc
4521 * Finished up the back end code for mailing list sends. Sends now work!
4523 Revision 572.28 2000/08/24 02:48:18 ajc
4524 * Merged in IO ERROR's diffs to make Citadel work with HP/UX
4526 Revision 572.27 2000/08/22 02:31:47 ajc
4527 * nonce (for APOP-style auth) is now generated when a context is created
4528 instead of during protocol greeting functions.
4529 * Moved Citadel protocol nonce output from greeting to INFO
4531 Revision 572.26 2000/08/18 21:09:36 ajc
4532 * Added a little more mailing list code to serv_network.c
4534 Revision 572.25 2000/08/10 04:36:25 ajc
4535 * Fixed a bug in keyboard polling (in commands.c) which was causing the
4536 client protocol to get out of sync in certain conditions.
4538 Revision 572.24 2000/08/10 02:42:13 ajc
4539 * Changed all the "200 ok" responses to more descriptive strings
4540 * Added a *temporary* protocol sync check. Remove this!
4542 Revision 572.23 2000/08/09 17:14:34 ajc
4543 msgbase.c: fixed a bug in
4544 remove_any_whitespace_to_the_left_or_right_of_at_symbol() that was
4545 causing the <R>eply function to fail on names with whitespace in
4546 certain parts of the string. This closes Bug #56.
4548 Revision 572.22 2000/08/05 04:24:00 ajc
4549 * Added [idle] to client wholist display for sessions idle >15 minutes
4550 * Added a generic "void *userdata" field to CtdlForEachMessage()
4551 * More prep for mailing list handling in the server
4553 Revision 572.21 2000/07/30 04:36:12 ajc
4554 * Set up the SNET (Send NETwork config) and GNET (Get NETwork config) commands
4555 for the network overhaul.
4557 Revision 572.20 2000/07/29 05:29:19 ajc
4558 * Changed the format of RWHO output to provide non-masqueraded user/room/host
4559 names (to Aides only) as additional fields rather than an extra line of
4561 * Changed the client to display new RWHO fields, in the "long" wholist only.
4562 * Default SMTP and POP ports are now -1, not 25/110. These services must now
4563 be activated manually.
4565 Revision 572.19 2000/07/24 00:39:13 ajc
4566 * Fixed a path problem when calling netmailer from mailinglist.c
4568 Revision 572.18 2000/07/22 03:44:17 ajc
4569 * Prepared infrastructure for the networker rewrite
4571 Revision 572.17 2000/07/17 02:38:08 ajc
4572 * Completed serv_vandelay.c (importer/exporter module)
4573 * sendcommand.c: fix behavior of SEND_LISTING mode
4574 * sysdep.c: client_gets() fill buffer with "000" terminator when returning -1
4576 Revision 572.16 2000/07/14 03:06:55 ajc
4577 * Added .ATN (DOWN) and .ATS (SCDN 1) commands to the client
4579 Revision 572.15 2000/07/10 23:36:08 ajc
4580 * Another attempt to fix the crashy crashy bug in serv_vcard
4581 * Did more work on the Art Vandelay module
4582 * Replaced all instances of sprintf(tempfile, tmpnam(NULL)) with strcpy()
4584 Revision 572.14 2000/07/10 04:01:12 ajc
4585 * added an unfinished serv_vandelay.c (Art Vandelay module - importer/exporter)
4587 Revision 572.13 2000/07/09 02:47:40 ajc
4588 * Overhauled the keepalive logic in the chat client. Closes bug #20.
4590 Revision 572.12 2000/07/09 02:27:02 ajc
4591 * Eliminated the whole SIGINT/SIGQUIT based handling of Ctrl-O and Ctrl-C
4592 keyboard interrupts. Replaced with a non-blocking check for keyboard input
4593 which sets the global variable 'sigcaught' if either key was pressed.
4594 fmout() and pprintf() switch to 'drain mode' if sigcaught is set.
4595 This closes Bug #18.
4597 Revision 572.11 2000/07/06 20:26:36 ajc
4598 * updated .Help SUMMARY
4600 Revision 572.10 2000/07/04 20:02:46 ajc
4601 * Fixed potential crashy crashy bug in serv_vcard.c
4603 Revision 572.9 2000/06/28 03:42:56 ajc
4604 * Changed the comments at the beginning of each file to a consistent format
4605 * Improved the parameterization of commands in the IMAP module
4607 Revision 572.8 2000/06/27 01:27:13 ajc
4608 * Coupla very small changes to get on the road to IMAP support
4610 Revision 572.7 2000/06/22 21:41:48 ajc
4611 * Made the ICQ stuff far more reliable ... by removing it!
4613 Revision 572.6 2000/06/21 03:46:20 ajc
4614 * IMAP is now legal but useless, supporting NOOP, LOGIN, and LOGOUT.
4616 Revision 572.5 2000/06/15 20:15:52 ajc
4617 * Inserted a skeleton IMAP module into the build. IT DOES NOT WORK AT ALL.
4619 Revision 572.4 2000/06/04 02:30:56 ajc
4620 * CtdlForEachMessage() now returns the number of messages processed. It also
4621 accepts the MSGS_EQ mode, for targeting a specific message number (useful
4622 for determining whether the specified message actually exists in a room).
4623 * Completed the server side of the moderation system (serv_moderate.c module
4624 which implements the MMOD command)
4626 Revision 572.3 2000/06/03 05:47:57 ajc
4627 * Replaced most of the very repetitive and very redundant access level checks
4628 in most commands with a single API call: CtdlAccessCheck()
4629 * serv_moderate.c: added (not finished)
4631 Revision 572.2 2000/06/02 03:38:50 ajc
4632 * Bind unix socket prior to TCP socket for citadel protocol
4633 * Fixed bug in sendcommand.c which was causing it to crash on attach
4635 Revision 572.1 2000/05/26 19:27:51 ajc
4636 * Changed some of the rev-level sensitive stuff to look at the actual version
4637 of Citadel running, not the last version with which we ran setup
4638 * Added a moderation system. Default filter level for new users is in the
4639 config file. Per-user setting is in usersupp. Moderation level of each
4640 message is in SuppMsgInfo. Tweaked CONF, GETU, and SETU. Read filter is
4641 working. Moderate message up/down commands are not here yet. See
4642 techdoc/moderation.txt for more info.
4644 Revision 572.0 2000/05/23 02:09:30 ajc
4645 * Updated docs and tagged everything for the 5.72 release
4647 Revision 571.7 2000/05/20 23:28:20 ajc
4648 * Fixed bug in client API that was causing netproc to crash
4650 Revision 571.6 2000/05/15 00:05:19 ajc
4651 * Double the retry interval for SMTP deliveries after each failed attempt.
4653 Revision 571.5 2000/05/11 03:08:47 ajc
4654 * serv_smtp.c: clear the relevant state buffers after an SMTP DATA command
4655 completes, allowing multiple messages in one session. Closes bug #58.
4657 Revision 571.4 2000/04/24 03:36:43 ajc
4658 * Removed references to strucmp() and struncmp(), replaced them with
4659 strcasecmp() and strncasecmp() as we did in the server a while ago, and
4660 set up the config script to figure out whether they need to be compiled
4661 in. Also moved them to tools.h
4662 * Wrote a password manager for the client
4664 Revision 571.3 2000/04/19 03:17:10 ajc
4665 * Don't ever expire the Local System Configuration> room
4667 Revision 571.2 2000/04/16 19:03:47 ajc
4668 * Minor changes to avoid host lookup for local clients
4670 Revision 571.1 2000/04/15 19:55:52 ajc
4671 * Fixed "Unvalidated users appear even with registration disabled" bug #36
4673 Revision 571.0 2000/04/13 02:43:24 ajc
4674 * Fixed a problem that crashed the client during <G>oto commands if a room
4675 existed with a name more than 32 characters (thanks to Magus for reporting
4677 * Tagged everything and updated docs for the 5.71 release
4679 Revision 570.18 2000/04/10 01:47:22 ajc
4680 * More paginator changes. Shuffled code around, added pagination to a bunch
4681 of other functions, and replaced the old, cumbersome pagination with the
4682 new, easy, API-based one in everything except message output.
4684 Revision 570.17 2000/04/09 17:51:18 ajc
4685 * Added pprintf() (paginated version of printf) to the client-side API. Now
4686 any client side function can be paginated simply by changing all of the
4687 printf's to pprintf's. I've already done this for the user list and wholist
4688 (removing the old style pagination) and for "read directory."
4690 Revision 570.16 2000/04/08 04:52:48 ajc
4691 * Another minor stoopid little time display fix
4693 Revision 570.15 2000/04/08 03:58:12 nbryant
4694 * backed out the previous changes since they didn't look good on some
4695 xterms with a blue bold mode. just set the background color to black
4696 instead. this makes black-on-white terminals actually readable, if not
4697 particularly good looking.
4699 Revision 570.14 2000/04/08 01:36:30 nbryant
4700 * citadel.c, commands.c: comment out cls() as this wasn't called if
4701 ansi_color=user anyway, and we have no way of knowing whether the user's
4702 terminal does background color erase, which was the reason for adding this
4703 in the first place. with the recent changes to color(), the display will get
4704 screwed up if they *do* have background color erase. perhaps this is a job
4707 Revision 570.13 2000/04/08 00:37:42 nbryant
4708 * commands.c: fix color support for black-on-white color terminals such as
4709 CDE's dtterm. this just avoids white-on-white text; some color combinations
4710 such as yellow-on-white still aren't very legible due to contrast. There's
4711 not much I can think to do about that without affecting the look on the
4712 white-on-black terminals which probably account for most users.
4714 Revision 570.12 2000/04/07 20:22:34 ajc
4715 * Fixed am/pm bug in time display
4717 Revision 570.11 2000/04/07 19:22:45 ajc
4718 * For services disabled by setting port number to -1, administratively skip
4719 the bind instead of just allowing it to fail.
4721 Revision 570.10 2000/03/31 04:31:02 ajc
4722 * Quick fix to 'stats' utility to purge records with bogus timestamps
4724 Revision 570.9 2000/03/31 02:10:52 ajc
4725 * Caved in to pressure and enabled <R>eply in public rooms.
4727 Revision 570.8 2000/03/28 03:55:53 ajc
4728 * Modified <.RU> to allow search for partial match
4730 Revision 570.7 2000/03/27 03:08:19 ajc
4731 * Third parameter of CtdlDeleteMessages() now takes "" instead of NULL to
4732 specify 'any MIME type'.
4734 Revision 570.6 2000/03/27 01:14:08 nbryant
4735 * Makefile.in: generate parsedate.c automatically
4736 * configure.in: check for bison/byacc/yacc. bison seems to build cleaner
4738 * parsedate.c: removed from CVS
4739 * parsedate.y: added #include <stdlib.h> so it builds with bison
4741 Revision 570.5 2000/03/27 00:46:10 nbryant
4742 * First cut at Solaris fixes. There may still be some *printf("%s", NULL)
4743 type of issues lurking in the shadows.
4745 Revision 570.4 2000/03/25 18:29:58 nbryant
4746 changed my email address
4748 Revision 570.3 2000/03/23 02:41:50 ajc
4749 *** empty log message ***
4751 Revision 570.2 2000/03/21 03:23:24 ajc
4752 * Experimental new linebreak mode
4754 Revision 570.1 2000/03/20 14:43:19 ajc
4755 * "Brown paper bag" fix for SMTP bug (incoming long fields crash logger)
4757 Revision 570.0 2000/03/19 23:42:34 ajc
4758 * This is the official 5.70 release.
4760 Revision 1.494 2000/03/19 23:04:08 ajc
4761 * Small cosmetic change to date/time output
4763 Revision 1.493 2000/03/19 05:02:39 ajc
4764 * SMTP hacks to deal with AOL braindamage
4766 Revision 1.492 2000/03/18 18:18:04 ajc
4767 * Support multiline responses from SMTP servers when sending mail
4769 Revision 1.491 2000/03/17 16:26:57 ajc
4770 * Set up a private "Sent/Received Pages" room for each user
4772 Revision 1.490 2000/03/17 04:11:24 ajc
4773 * Moved bio-related commands out to a loadable module
4775 Revision 1.489 2000/03/16 17:58:54 smw
4776 Created a docs directory.
4777 Moved install.txt to docs.
4778 Added inetmailsetup.txt (BBS server side e-mail)
4779 Added inetmailsetupmx.txt (local mail AND bbs e-mail
4780 Added inetsiteconfig.txt (describes the .asi command)
4781 Added siteconfig.txt (describes .asg)
4782 Added chat.txt (describes changes and new chat functionality)
4783 Made a couple of changes to install.txt (references to new documentation)
4784 Added Steve Williams to copyright.txt as the document writer.
4786 Revision 1.488 2000/03/15 03:04:51 ajc
4787 * Added DEXP server command to disable incoming express messages.
4788 * <Q>uiet mode client side command to set/clear DEXP mode.
4789 * <K>nown rooms list displays through the paginator.
4791 Revision 1.487 2000/03/12 00:21:35 ajc
4792 * Removed the semi-broken "chat room" functionality in the chat system, and
4793 replaced it with direct mapping to the actual Citadel room the user is in.
4794 * Display masqueraded roomname in chat, if applicable. Fixes bug #19.
4796 Revision 1.486 2000/03/11 21:29:37 ajc
4797 * SM_ flags for CtdlSaveMsgPointerInRoom() need to be a bit bucket, not an
4798 enum, since more than one can be passed. Changed SM_DONT_BUMP_REF_COUNT
4799 from 3 to 4. This also fixes bug #33.
4801 Revision 1.485 2000/03/11 20:26:03 ajc
4802 * Reworked the <R>eply logic in messages.c - fixes bug #34
4804 Revision 1.484 2000/03/11 19:22:19 nbryant
4805 * commands.c: improved timing of background keepalives if connection is
4808 Revision 1.483 2000/03/11 05:08:48 nbryant
4809 * commands.c: oops, that mutex stuff wasn't necessary
4811 Revision 1.482 2000/03/11 04:09:03 nbryant
4812 * new threaded client code for background keepalives
4814 Revision 1.481 2000/03/10 21:40:04 ajc
4815 * Changes to message base and networker to support Internet-style message
4816 ID's instead of the conventional Citadel style.
4818 Revision 1.480 2000/03/08 03:36:37 ajc
4819 * Shut off hostname resolution when dealing with Unix domain sockets
4820 * Cleaned up the 'citmail' MDA tool
4821 * Added POP3 and SMTP port numbers to global system configuration
4823 Revision 1.479 2000/03/07 21:54:58 ajc
4824 * Fixed the naming conventions and permissions for unix domain sockets.
4826 Revision 1.478 2000/03/05 07:33:23 ajc
4827 * Added support for protocols over Unix domain sockets.
4829 Revision 1.477 2000/03/04 22:36:23 ajc
4830 * Remove nulls appended to editor files during replace, edit, and print
4831 operations. Truncate temp files during same operations.
4832 Closes bugs #6 and #7.
4834 Revision 1.476 2000/03/04 05:29:18 ajc
4835 * Relax restrictions on editing of base rooms. Renaming is not allowed but
4836 all other attributes can be edited. Closes feature request #21.
4837 * Sending pages from the client now uses the same message editing functions
4838 as entering messages, allowing edit/abort. Closes feature request #25.
4840 Revision 1.475 2000/03/03 04:50:14 ajc
4841 * Moved all of the wholist masquerading commands into the serv_rwho module
4843 Revision 1.474 2000/03/03 04:12:37 ajc
4844 * Finished the inbound side of gateway domain service
4846 Revision 1.473 2000/02/27 04:55:51 ajc
4847 * Added "keymenu()" generic menu-maker to commands.c
4848 * Blocked non-numeric input to intprompt() (fixes bug #16)
4850 Revision 1.472 2000/02/27 03:57:35 ajc
4851 * Completed 'fsck'-like reference count verifier (server and client)
4853 Revision 1.471 2000/02/26 18:30:40 ajc
4854 * Properly handle all aliases specified in network/mail.aliases for incoming
4855 SMTP mail (uses the alias() function, so if we replace that function with
4856 something that uses the same calling convention, it'll still work)
4858 Revision 1.470 2000/02/26 05:15:38 ajc
4859 * Fortified the message base and SMTP code so that misdirected bounce messages
4860 end up in the Aide> room instead of getting dereferenced
4861 * Started writing a message reference count verifier ('fsck' for message base)
4863 Revision 1.469 2000/02/25 06:14:05 ajc
4864 * Modularized the RWHO (Read WHO is online) command, basically as a pilot
4865 for modularizing all "non-API" functionality.
4867 Revision 1.468 2000/02/24 03:44:00 ajc
4868 * Implemented holdoff time (15 minutes) for SMTP send retry.
4869 * Implemented "try for 3 days and then give up" on SMTP send.
4871 Revision 1.467 2000/02/24 00:51:48 ajc
4872 * Client protocol synchronization check during exit from chat.
4873 This closes Bug #15.
4875 Revision 1.466 2000/02/22 16:37:28 ajc
4876 * Minor tweaks to RFC822 output to keep brain-damanged MS Outlook from dying
4878 Revision 1.465 2000/02/22 04:17:56 ajc
4879 * Got bounce messages working (mostly ... testers, please beat this up!)
4880 * Changed 'FIX' comments to 'FIXME' (less conflict, plus vim highlights it!)
4882 Revision 1.464 2000/02/18 22:29:18 ajc
4883 * Coded up the "bounce" functions. Still a coupla bugs.
4885 Revision 1.463 2000/02/18 05:10:50 ajc
4886 * Made the <.ASI> command a bit friendlier.
4887 * SMTP sender now pays attention to "smarthost" entries in the system's
4888 Internet configuration, using them if one or more is present.
4890 Revision 1.462 2000/02/17 05:27:39 ajc
4891 * Got the "MAIL From:" command sending the correct data. (unnnhhhhnnhhhh...)
4893 Revision 1.461 2000/02/16 22:06:26 ajc
4894 * Altered the display and conversion of RFC822 messages
4896 Revision 1.460 2000/02/16 03:43:28 ajc
4897 * Added the resolver library to the configure script
4899 Revision 1.459 2000/02/16 01:19:39 ajc
4900 * Vanquished the evil dn_expand() beast. getmx() now seems to be working.
4902 Revision 1.458 2000/02/14 04:36:14 ajc
4903 * sysdep.c: added new event hook type EVT_TIMER. Timer event hooks are called
4904 once per minute by any worker thread.
4905 * msgbase.c: removed dependence on nested functions in CtdlOutputMsg() by
4906 replacing them with an API call CtdlRedirectOutput() in sysdep.c, which
4907 can temporarily redirect a session's output to an arbitrary file or socket.
4908 * serv_smtp.c: implemented the purging of messages in the queue for which all
4909 deliveries have been completed.
4910 * serv_smtp.c: removed temporary 'QQQQ' server command and replaced it with
4911 a timer event hook that runs the queue once per minute (this needs to be
4914 Revision 1.457 2000/02/08 21:00:47 ajc
4915 * Implemented the deprecated "LAST" command in POP3. Some clients need it.
4916 * POP3 sessions now set the last-read pointer in Mail>.
4918 Revision 1.456 2000/02/07 05:15:00 ajc
4919 * Renamed CtdlLocalHost() to CtdlHostAlias() and worked it a little deeper into
4920 the message routing logic. Still needs some work on the gateway-domain
4922 * Twiddled CtdlOutputMsg() a bit for 'all Internet' situations. Still needs
4923 some work to avoid printing dual headers when both Cit and RFC822 exist.
4925 Revision 1.455 2000/02/03 03:57:35 ajc
4926 * Formalized the 'Internet Configuration' logistics. Added new API call
4927 CtdlLocalHost() to detect aliases for the local host. Used in SMTP listener.
4929 Revision 1.454 2000/01/31 02:13:05 ajc
4930 * <.A>ide <S>ystem configuration <I>nternet in the client (unfinished)
4932 Revision 1.453 2000/01/26 02:41:27 ajc
4933 * SMTP delivery is working but still *very* rough.
4935 Revision 1.452 2000/01/25 04:45:50 ajc
4936 * Wrote enough of the SMTP sender to get Patriot drooling over it, but not
4937 enough to complete the transmission of mail.
4939 Revision 1.451 2000/01/23 21:25:45 ajc
4940 * Temporary hack to ig_tcp_server() to listen on an arbitrary port if the
4941 one specified is not bindable (for development only)
4942 * Added SM_DONT_BUMP_REF flag to CtdlSaveMsgPointerInRoom() to be used only
4943 in very specific and special situations
4944 * Generate delivery instructions when outbound SMTP mail is created from
4945 within Citadel (as opposed to being from the SMTP module)
4947 Revision 1.450 2000/01/23 05:22:41 ajc
4948 * Coded up some more of the SMTP-sender (still not done)
4950 Revision 1.449 2000/01/22 05:13:56 ajc
4951 * Added some more functionality to the string tokenizer
4953 Revision 1.448 2000/01/17 20:57:43 ajc
4954 * CR to CRLF hacks (lose, lose, lose)
4956 Revision 1.447 2000/01/17 18:30:27 ajc
4957 * Completed POP3 server. All RFC1939 commands except APOP are implemented.
4959 Revision 1.446 2000/01/17 17:09:23 ajc
4960 * Implemented LIST and STAT commands in the pop3 server
4962 Revision 1.445 2000/01/17 05:38:14 ajc
4963 * citserver.c: cleanup hook functions are now run under the proper context,
4964 even when initiated by the housekeeper thread
4965 * serv_pop3.c: establish a place to hold the message list
4967 Revision 1.444 2000/01/17 04:26:39 ajc
4968 * Modified CtdlOutputMsg() to handle output to arbitrary sockets or files.
4969 This uses nested functions and may not be portable beyond GCC...
4971 Revision 1.443 2000/01/15 18:29:15 ajc
4972 * Added a generic (void *) parameter to the ForEachUser() and ForEachRoom()
4973 callback mechanisms, to allow callers and callbacks to pass arbitrary data
4974 between each other without requiring TSD variables.
4975 * room_ops.c: eliminated the need for 'FloorBeingSearched' TSD variable
4976 * internet_addressing.c: eliminated 'buffer1' and 'buffer2' TSD variables
4978 Revision 1.442 2000/01/15 04:31:44 ajc
4979 * Removed UI_DIALOG mode in setup. Can't count on 'dialog' to be consistent.
4981 Revision 1.441 2000/01/15 04:07:17 ajc
4982 * Fixed the access rights on auto-created rooms (the same changes that were
4983 made to version 5.62 in the stable tree)
4985 Revision 1.440 2000/01/13 03:32:36 ajc
4986 * techdoc/delivery-list.txt: added (syntax for delivery lists)
4987 * domain.*: added (will contain MX lookup code)
4988 * internet_addressing.c, logging.c: fixed some buffer overflow bugs
4990 Revision 1.439 2000/01/12 03:56:27 ajc
4991 * sysdep.c: start the housekeeping thread *after* dropping root perms.
4993 Revision 1.438 2000/01/09 19:03:16 ajc
4994 * Removed the fifo-based protocol downloads and replaced it with a less
4995 elegant "download temporary file to client, then sx/sb/sz" because
4996 downloading through a fifo was confusing some software.
4998 Revision 1.437 2000/01/08 22:19:44 ajc
4999 * Completed spool to outbound delivery queue (still no queue sender implemented)
5001 Revision 1.436 2000/01/08 05:00:09 ajc
5002 * Reworked some of the data structures to handle multiple recipients
5003 * Began implementation of the delivery queue
5004 * Added CtdlReallocUserData()
5005 * CtdlSaveMsg() now returns the local message ID in the database
5007 Revision 1.435 2000/01/06 03:50:34 ajc
5008 * Replaced citmail.c with a new one that simply SMTP-forwards to Citadel
5009 * Started outbound SMTP queue work
5011 Revision 1.434 1999/12/30 04:56:29 ajc
5012 * Got initial SMTP delivery working in a very specific situation (delivery
5013 to a single, local user)
5015 Revision 1.433 1999/12/29 04:44:00 ajc
5016 * client_chat.c: display "No message sent" if a send page is aborted.
5017 Closes bug #2 in bugzilla.
5019 Revision 1.432 1999/12/26 21:50:07 ajc
5020 * serv_vcard: don't run hooks when not logged in (such as in SMTP sessions)
5021 * serv_pop3: added. This is the skeleton for a module implementing POP3.
5023 Revision 1.431 1999/12/23 04:46:23 ajc
5024 * "Finished" initial hack of RFC822 import
5026 Revision 1.430 1999/12/22 04:46:34 ajc
5027 * Fixed up the "Date:" headers to be RFC822-compliant
5029 Revision 1.429 1999/12/13 05:30:57 ajc
5030 * Removed our naive 'conv_date()' RFC822-to-unixtime conversion function
5031 and replaced it with the public domain 'parsedate()' function from UseNet
5033 Revision 1.428 1999/12/10 23:58:25 ajc
5034 * internet_addressing.c: added. (Internet address to Citadel mapping)
5036 Revision 1.427 1999/12/10 21:34:19 ajc
5037 * serv_smtp: implemented RFC821 "VRFY" and "EXPN" commands
5039 Revision 1.426 1999/12/09 05:01:14 ajc
5040 * Split cmd_user() and cmd_pass() into frontend/backend functions
5041 * serv_smtp: implemented AUTH LOGIN for client authentication
5043 Revision 1.425 1999/12/09 00:22:58 ajc
5044 * Finished the "arbitrary service" registration.
5045 * Eliminated "special" master socket for Citadel protocol - just register it
5046 like any other protocol.
5047 * Began initial implementation of native SMTP service.
5049 Revision 1.424 1999/12/08 18:09:10 ajc
5050 * Added CtdlRegisterServiceHook() and its data type, for implementing arbitrary
5051 TCP-based services directly in the Citadel server. Not finished yet.
5053 Revision 1.423 1999/11/29 17:39:07 nbryant
5054 * citserver.c: Solaris lacks inet_aton; use inet_addr instead
5056 Revision 1.422 1999/11/29 17:26:15 nbryant
5057 * citserver.c: include <sys/types.h>; may help portability to Solaris
5059 Revision 1.421 1999/11/22 00:27:42 ajc
5060 * Added some temporary variables to OpenCmdResult(). Hopefully fixes
5061 bug #14 when running on FreeBSD.
5063 Revision 1.420 1999/11/21 18:30:16 ajc
5064 * Protected cmd_move() from buffer overrun (no longer crashes the server)
5065 * cmd_chat() -- truncate input at 100 characters to prevent buffer overruns.
5066 Also handle broken client sockets properly. (Thanks to DME for bug report)
5068 Revision 1.419 1999/11/19 01:57:40 ajc
5069 * Fixed a *serious* memory leak in the database function wrappers.
5070 * Updated version number to 5.60 -- run setup when installing this version.
5072 Revision 1.418 1999/11/18 03:29:20 ajc
5073 * Changed the order of parameters in <.A>ide <S>ystem config into a more
5076 Revision 1.417 1999/11/18 02:31:50 ajc
5077 * Updated some of the documentation
5078 * Brought the internal version number up to 5.60
5080 Revision 1.416 1999/11/17 04:15:05 ajc
5081 * Removed the session_count() function. Instead, keep a reference count
5082 updated when sessions begin and end.
5083 * Replaced fixed number of worker threads with lower and upper limits; current
5084 code now tries to make thread count == session count, within these limits
5086 Revision 1.415 1999/11/15 03:17:39 ajc
5087 * Put lockfile in /tmp instead of in /var/lock. The latter is not guaranteed
5088 to exist, nor is it guaranteed to be writable by BBSUID
5089 (Resolves bug #11 from the Bugzilla repository)
5091 Revision 1.414 1999/11/15 03:07:24 ajc
5092 * Fixed the network-wide vCard purge logic so that it (1) actually works,
5093 and (2) forces a netproc run immediately when a purge is entered
5095 Revision 1.413 1999/11/09 21:20:44 nbryant
5096 * configure.in: include <sys/types.h> when doing checks which require <utmp.h>
5097 (should fix Bug #10 on FreeBSD)
5099 Revision 1.412 1999/11/05 03:53:47 ajc
5100 * Issue 'cancel' messages for vCard when a user is deleted.
5101 * Try to delete 'cancel' messages locally after they've been distributed.
5103 Revision 1.411 1999/11/03 04:01:20 ajc
5104 * Fixed buffer overrun problems in cmd_rchg(), cmd_hchg(), and cmd_uchg()
5105 * Removed my email address as the feedback content from the docs; replaced
5106 it with a reference to the Citadel web site.
5108 Revision 1.410 1999/11/02 19:51:23 ajc
5109 * Fixed timeout problem for remote client sessions (all timeouts were set to
5110 1 second ... probably a temporary hack that was missed in the cleanup)
5112 Revision 1.409 1999/11/02 03:03:27 ajc
5113 * Several fixes to msgbase.c and netproc.c to prevent corrupted incoming
5114 network traffic from crashing the server. Reject bad messages.
5116 Revision 1.408 1999/11/01 04:21:34 ajc
5117 * Fixed a concurrency bug which crashed the server when multiple sessions
5118 terminated simultaneously.
5120 Revision 1.407 1999/11/01 00:54:02 ajc
5121 * CtdlFetchMessage() - generate a "<no text>" message body if there's none
5122 on disk. Too much stuff goes haywire if there's no M field.
5124 Revision 1.406 1999/10/31 18:17:17 ajc
5125 * Fixed buffer overrun in cmd_rchg()
5126 * Call master_cleanup() when time_to_die==1 for proper shutdown
5128 Revision 1.405 1999/10/31 16:26:55 ajc
5129 * Fixed incorrect assignment of new session ID's
5131 Revision 1.404 1999/10/31 04:17:17 ajc
5132 * Fixed a bug which was crashing the server during very long message entry.
5134 Revision 1.403 1999/10/29 01:48:45 ajc
5135 * database.c: Removed arbitrary limit on maximum number of sessions
5137 Revision 1.402 1999/10/29 01:03:03 ajc
5138 * Debugged all possible ways for a session to terminate; do them cleanly.
5139 * Assign session numbers in a more portable and less arbitrary way.
5141 Revision 1.401 1999/10/28 19:50:55 ajc
5142 * Fixed a problem where the client protocol would spit out two responses
5143 and therefore get out of sync if ASUP command set the access level to
5144 0 and therefore deleted the user (thanks to Eric McDonald)
5146 Revision 1.400 1999/10/28 05:08:49 ajc
5147 * Removed all of the thread cancellation cruft that is no longer necessary
5148 * Moved the now non-system-dependent RemoveContext() out of sysdep.c (now
5149 it's part of cleanup() in citserver.c)
5150 * Removed all references to pthread_* from all modules except sysdep.c
5152 Revision 1.399 1999/10/28 03:20:17 ajc
5153 * Fixed the problem of worker threads waking up prematurely.
5154 * 'QUIT'-terminated sessions now exit properly.
5156 Revision 1.398 1999/10/27 04:26:58 ajc
5157 * Initial hack of worker-thread rearchitecture. Right now it is successfully
5158 dispatching worker threads to active client sockets (and to the master
5159 socket too, of course). Removing sessions is currently broken.
5161 Revision 1.397 1999/10/26 20:20:29 ajc
5162 * Removed the auto-reconnect stuff... it was locking the client in an active
5163 loop more often than it was reconnecting.
5165 Revision 1.396 1999/10/26 13:59:11 ajc
5168 Revision 1.395 1999/10/26 03:48:39 ajc
5169 * Shuffled around the order of events when a thread is terminating. All
5170 mutex operations now happen prior to the freeing of the CitContext structure,
5171 otherwise begin_critical_section() and end_critical_section() try to
5172 manipulate the context's mutex count when there isn't any context.
5174 Revision 1.394 1999/10/26 03:21:16 ajc
5175 * Changed a lot of strncpy() calls to safestrncpy() and replaced most of their
5176 hardcoded size arguments with 'sizeof' based arguments.
5178 Revision 1.393 1999/10/24 19:22:51 nbryant
5179 * Makefile.in, configure.in: added --enable-icq flag; made checks for
5180 authentication libraries more intelligent.
5182 Revision 1.392 1999/10/23 03:39:12 ajc
5183 * Finished moving vCard functionality to the new message base functions.
5185 Revision 1.391 1999/10/21 00:50:14 ajc
5186 * Finished up the flags and replication checks in CtdlSaveMsgPointerInRoom().
5188 Revision 1.390 1999/10/20 16:46:27 ajc
5189 * More code shuffle. Added some flags to CtdlSaveMessagePointerInRoom() and
5190 enabled the MOVE command to also do a "copy" operation (actually just
5191 creates a second link and bumps the ref count). Implemented "<C>opy" in
5194 Revision 1.389 1999/10/20 16:07:48 ajc
5195 * Wholist fixes for users who are in chat mode
5197 Revision 1.388 1999/10/20 03:42:29 ajc
5198 * In the wholist, only show <private room> if the user viewing the list
5199 doesn't know that room. Otherwise show the name.
5201 Revision 1.387 1999/10/20 02:59:22 ajc
5202 * Code reorganization. Making it easier to move/copy messages without
5203 duplicating existing code.
5205 Revision 1.386 1999/10/17 02:25:18 ajc
5206 * Discovered a huge design flaw in the replication algorithm. Ripped it
5207 out and replaced it with something a bit more robust.
5209 Revision 1.385 1999/10/16 05:30:17 ajc
5210 * Changes to message replication code. Don't do server-side hooks during
5211 an ENT3 command. Also fixed a bug in cmd_whok() that caused crashes
5212 after a file format change.
5214 Revision 1.384 1999/10/14 03:04:16 ajc
5215 * Finished the netproc side of Z (zap/supersede) processing for replication
5217 Revision 1.383 1999/10/13 04:24:18 ajc
5218 * Added search-by-header-fields to CtdlForEachMessage(), and then to the
5219 server MSGS command. This will have lots of uses.
5221 Revision 1.382 1999/10/13 01:36:39 ajc
5222 * Starting some work on network zap (supersede) mode for replication
5224 Revision 1.381 1999/10/08 02:55:57 ajc
5225 * More vCard-related debugging
5227 Revision 1.380 1999/10/07 02:58:46 ajc
5228 * Semi-broken vCard replacement implementation in place.
5229 * Added "Z" (Zap, supersede) field to message format
5231 Revision 1.377 1999/10/04 03:19:52 ajc
5232 * We now have a housekeeping thread and a housekeeping queue.
5234 Revision 1.376 1999/10/03 21:48:21 ajc
5235 * Added serv_upgrade.h to automagically convert pre-5.55 format user records
5236 to 5.55 format user records and generate vCards.
5238 Revision 1.375 1999/09/29 21:13:17 ajc
5239 * CtdlWriteObject() can now store objects in personal rooms for any specified
5240 user -- rather than only the current user or non-personal rooms.
5242 Revision 1.374 1999/09/29 17:26:56 ajc
5243 * serv_vcard.c: fixed crashola bug in cmd_greg()
5244 * tools.c: simplified and improved the string tokenizer. Now it runs in a
5245 single pass with no intermediate buffer.
5247 Revision 1.373 1999/09/28 03:27:37 ajc
5248 * Fully migrated cmd_greg() and cmd_regi() into serv_vcard (still has bugs)
5250 Revision 1.372 1999/09/27 03:33:40 ajc
5251 * cmd_regi() is now in serv_vcard and writes to the vcard instead of to the
5252 usersupp file. Still needs tweaking.
5254 Revision 1.371 1999/09/24 03:32:19 ajc
5255 * "read my vCard" and "write my vCard" are written and tested.
5257 Revision 1.370 1999/09/24 02:54:17 ajc
5258 * Worked a little more on the vCard stuff. The serv_vcard module is now in
5259 place, and a "read my vcard" function is there; "write my" is next...
5261 Revision 1.369 1999/09/23 03:07:56 ajc
5262 * The vCard 'class' is now linked into the server, though it's not really
5263 functional yet. Its constructors/destructors are debugged, though.
5265 Revision 1.368 1999/09/19 21:28:33 ajc
5266 * Finished off the message architecture stuff with a new class of hooks to
5267 enable future server-side handlers.
5269 Revision 1.367 1999/09/19 15:57:06 ajc
5270 * migrated cmd_ent3() to CtdlSaveMessage()
5272 Revision 1.366 1999/09/19 05:13:57 ajc
5273 * Debugged the new version of CtdlWriteObject()
5275 Revision 1.365 1999/09/16 03:23:23 ajc
5276 * Did most of the migration from save_message() to CtdlSaveMsg(). The
5277 latter builds a "struct CtdlMessage" (so we can run server-side handlers
5278 against it later on), then serializes it and stores to disk.
5279 * BROKEN BUILD ALERT!! cmd_ent3() and CtdlWriteObject() are still not
5280 migrated. They are stubbed out and will MALFUNCTION if used right now!!
5282 Revision 1.364 1999/09/07 01:42:42 ajc
5283 * cmd_msg3() now uses serialize_message() for its output. All message
5284 commands will eventually exist as a "struct CtdlMessage" at some point
5285 so that we can install server-side handler hooks.
5287 Revision 1.363 1999/09/07 00:04:13 ajc
5288 * netproc.c: put outgoing messages into the use table, too -- this prevents
5289 locally originated messages from showing up again if a remote system is
5290 misconfigured and spools them back to us.
5292 Revision 1.362 1999/09/06 03:39:15 ajc
5293 * citadel.c: run strproc() on new passwords
5295 Revision 1.361 1999/09/03 17:50:26 playcow
5296 For URL view, don't prompt user to select url if there is only one. Display
5297 <U>RL View prompt if message contains url(s). -Ben
5299 Revision 1.360 1999/09/02 02:09:59 ajc
5300 * msgbase.c: new function serialize_message() for future use
5302 Revision 1.359 1999/09/01 21:09:25 ajc
5303 * database.c: display the GDBM version string on startup
5305 Revision 1.358 1999/09/01 02:36:34 ajc
5306 * Actually _enforce_ the max msg len limit
5308 Revision 1.357 1999/09/01 01:51:48 ajc
5309 * Added the ability to handle embedded URL's from the text client
5311 Revision 1.356 1999/09/01 01:02:47 ajc
5312 * Implemented "maximum message length" in global system config
5314 Revision 1.355 1999/08/31 00:57:17 ajc
5315 * Handle multipart/alternative properly during legacy message outputs.
5316 Basically it just prints the first alternative and skips the rest.
5318 Revision 1.354 1999/08/29 21:12:24 ajc
5319 * Made some changes to the output of MIME (especially multipart) messages.
5321 Revision 1.353 1999/08/29 19:56:43 ajc
5324 Revision 1.352 1999/08/24 02:01:03 ajc
5325 * html.c: added. This is an overly simplistic HTML-to-text converter.
5327 Revision 1.351 1999/08/21 18:37:29 ajc
5328 * Minor cosmetic cleanup. No code changes.
5330 Revision 1.350 1999/08/21 05:15:34 ajc
5331 * mailinglist.c, netmailer.c: fixed to allow list submissions from all posters
5332 on a Citadel network rather than only on the local system.
5334 Revision 1.349 1999/08/08 00:25:45 ajc
5335 * Made one more byte available in locate_host() and in all the structs which
5336 its output gets written to (client can display 24 positions but we were only
5339 Revision 1.348 1999/08/07 16:34:38 nbryant
5340 * serv_icq.c: warning fixes
5342 Revision 1.347 1999/08/06 02:57:26 ajc
5343 * locate_host.c: use strdoop() and phree() instead of strdup() and free()
5344 * serv_icq.c: run learned IP's through Citadel's locate_host() & put in Wholist
5346 Revision 1.346 1999/08/05 17:58:59 ajc
5347 * RWHO command now returns express message code in postion 3
5349 Revision 1.345 1999/08/04 02:21:45 ajc
5350 * Fixed some bugs in the ICQ metaclient, and documented the new protocol cmds
5352 Revision 1.344 1999/08/03 11:34:35 ajc
5353 * Added client_icq.c and client_icq.h
5355 Revision 1.343 1999/08/03 03:14:51 ajc
5356 * Wrote the client side of the ICQ gateway. Now on to other projects. :)
5358 Revision 1.342 1999/08/03 01:52:06 ajc
5359 * Redesigned the client protocol commands for dealing with ICQ
5360 * Implemented page function priority ordering to prevent pages from being
5361 simultaneously delivered over multiple IM systems
5362 * Migrated serv_icq.* into the Makefile
5364 Revision 1.341 1999/08/01 21:36:30 ajc
5365 * EXTREME coolness. The server side of the ICQ metaclient is now working.
5366 It is set up using ICQL and ICQA commands, it automatically logs the user
5367 onto ICQ along with Citadel, and displays all non-offline ICQ contacts
5370 Revision 1.340 1999/07/31 07:18:01 ajc
5371 * Restructured the express message infrastructure, adding a class of function
5372 hooks for the addition of multiple paging modules with message routing
5374 Revision 1.339 1999/07/30 22:20:19 ajc
5375 * Applied bugfix patches contributed by Vaggelis Tsirkas:
5376 * rooms.c: buffer overrun fix
5377 * room_ops.c: cmd_rdir() now behaves better when directory doesn't exist
5379 Revision 1.338 1999/07/30 03:32:24 ajc
5380 * Added strdoop(), a leak-checked version of strdup()
5381 * Small fixes to new API functions in msgbase.c
5382 * ICQ metaclient stores/reads config using the message base API functions
5384 Revision 1.337 1999/07/29 03:36:37 ajc
5385 * msgbase.c: reorganized. output_message() now uses CtdlFetchMessage(),
5386 cmd_msg3() now fetches directly from disk and spews to the client.
5388 Revision 1.336 1999/07/28 04:02:37 ajc
5389 * Server modules are now labelled with their RCS ID instead of a complex and
5390 manually-updated data structure.
5392 Revision 1.335 1999/07/28 03:50:24 ajc
5393 * serv_expire.c: expire-by-age now calls CtdlFetchMessage() instead of
5394 calling output_message() in MT_DATE mode.
5395 * msgbase.c: removed MT_DATE mode ('twas a sleazy hack)
5397 Revision 1.334 1999/07/27 22:47:26 ajc
5398 * Implemented new data type "CtdlMessage" which will eventually be used as
5399 widely as possible to represent a message in memory.
5400 * Implemented CtdlFetchMessage() which is intended to become the back-end to
5401 output_message() as well as a bunch of other things.
5403 Revision 1.333 1999/07/27 20:00:24 ajc
5404 Removed all references to CC->msglist and CC->num_msgs, and all utility
5405 functions which relied upon them. Citadel Is Now Better.
5407 Revision 1.332 1999/07/27 19:32:22 ajc
5408 Removed serv_upgrade.c and all references to it in Makefile.in
5409 Reworked new-mail-count to not use MessageFromList() etc.
5411 Revision 1.331 1999/07/25 02:59:37 ajc
5412 Fixed reference count problem in cmd_move()
5414 Revision 1.330 1999/07/24 22:50:38 ajc
5415 Continued replacing references to [get|put]_msglist() with better code.
5416 For some reason, cmd_msgs() still doesn't always work right.
5418 Revision 1.329 1999/07/24 22:16:41 ajc
5419 Experimenting with automatic updating of ChangeLog by CVS. Simply twiddle
5420 ChangeLog a bit (i.e. by adding or removing a newline from the end of the
5421 file) before issusing "cvs commit", and the comments recorded by CVS will
5422 automatically appear at the beginning of ChangeLog.
5424 Revision 1.328 1999/07/24 22:14:21 ajc
5425 cmd_move() now uses CtdlDeleteMessages().
5426 WARNING: build is temporarily broken. Currently removing all references
5427 to the "msglist" kept in CitContext. It's ugly and must die.
5429 Thu Jul 22 22:26:50 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5430 * Moved message deletion into new API function CtdlDeleteMessages()
5431 * Added CtdlWriteObject() to store generic data in the msgbase
5432 * Fixed really dumb error that prevented network msgs from posting
5434 Tue Jul 20 22:14:54 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5435 * Moved the actual work done in cmd_msgs() into a new API function
5436 called CtdlForEachMessage() which is supplied a callback function.
5438 Mon Jul 19 23:24:18 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5439 * Keep the (unqualified) content-type in the SuppMsgInfo record. We'll
5440 be using this shortly to search rooms for specific object types.
5442 Sun Jul 18 14:53:16 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5443 * Changes to dynloader et al to handle ICQ module being written
5444 * serv_icq.c, serv_icq.mk: added (separate makefile is temporary)
5446 1999-07-17 Nathan Bryant <bryant@cs.usm.maine.edu>
5447 * chkpwd.c: DELETED CVS REVISION 1.3 (backed out Art's last change)
5448 use 'cvs update -r 1.2 chkpwd.c; cvs update -A chkpwd.c' NOW to
5449 avoid problems with working directories.
5450 * Makefile.in: don't install chkpwd setuid if make install isn't
5452 * citadel.spec: chmod u+s chkpwd during %install stage
5454 Fri Jul 16 18:39:04 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5455 * PEXP and GEXP no longer trip the idle time display
5456 * Fixed bug which duplicated incoming private mail to Trashcan
5457 * Improved auto-reconnect by NOT using SIGPIPE and longjmp(); also
5458 implemented a 15 second delay to wait for a crashed server to restart
5459 * Relaxed the security check in chkpwd.c a bit; it was just flat-out
5460 preventing logins on my system otherwise
5462 Thu Jul 15 22:57:32 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5463 * eliminate redundant "name" parameter in [l]putuser(), now uses
5464 usbuf->fullname to guarantee the correct name for the index
5466 1999-07-12 Nathan Bryant <bryant@cs.usm.maine.edu>
5467 * Makefile.in, configure.in: link netproc with gdbm
5468 * netproc.c: only include gdbm.h if HAVE_GDBM_H
5469 * user_ops.c: warning fix
5471 Mon Jul 12 19:51:30 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5472 * Mail is now saved in both sender and recipient mailboxes. This is
5473 structured in a way that will allow a separate "outbox" room and/or
5474 multiple recipients in the future.
5476 Sun Jul 11 18:46:48 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5477 * netproc.c: msgfind() no longer uses the timestamp as a message-ID
5478 when no other message-ID is available (it screws up the loopzapper)
5479 * room_ops.c: eliminate room name parameter in putroom() and its ilk;
5480 get data from quickroom.QRname instead; prevents incorrect indexes
5481 * Tentative implementation of "personal rooms" (user-private namespace)
5482 * Added supplementary message info records for info that may change
5483 at some time later than when the message is saved (i.e. ref counts)
5484 * Implemented msg reference count increment/decrement; delete messages
5485 whose reference count reaches zero
5487 Wed Jul 7 23:25:09 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5488 * control.c: create citadel.control if it doesn't exist (yikes!)
5489 * serv_expire.c: purge mailbox rooms belonging to non-existent users
5490 * user_ops.c: don't delete user's mailbox at user-delete time
5492 Mon Jul 5 17:01:29 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5493 * utilsmenu: removed menu items for defunct utilities
5495 Mon Jun 28 16:24:10 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5496 * Changed any remaining references to UUCP, to "Internet" instead.
5498 Thu Jun 24 11:13:23 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5499 * added server command line option "-f" to defrag databases on startup
5500 * control.c: better performance and reliability in [get|put]_control()
5501 * netproc.c: Finished the loopzapper
5503 Mon Jun 21 00:04:15 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5504 * netproc.c: started writing a vortex checker. Not finished.
5506 Wed Jun 9 23:34:25 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5507 * Replaced all code that generated temporary filenames with calls to
5508 tmpnam(). Rewrote using tmpfile() where possible.
5510 Thu Jun 3 11:35:18 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5511 * base64.c: mapped fi and fo to stdin and stdout using
5512 actual code rather than assignment at declaration time
5513 (several users of Red Hat Linux 6.0 reported problems)
5515 Fri May 21 20:05:00 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5516 * Added function CtdlGetDynamicSymbol() for dynamic symbol allocation
5517 * server.h: Changed discrete #define's to enum's where appropriate
5518 * sysdep.c: Changed the startup message to give credit to the whole
5519 development team :) Also made the message more GNU-ish.
5521 Thu May 20 20:01:30 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5522 * database.c: print log messages for file defragmentations
5523 * citserver.c: implemented CtdlAllocUserData() and CtdlGetUserData()
5524 for arbitrary per-session data storage (by modules etc.) without
5525 having to add fields to struct CitContext
5526 * msgbase.c: removed "desired_section" from struct CitContext and
5527 implemented it using CtdlGetUserData() as a test.
5529 Wed May 19 19:30:28 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5530 * commands.c, commands.h, routines.c: began color scheme changes
5532 1999-05-15 Nathan Bryant <bryant@cs.usm.maine.edu>
5533 * configure.in: Added untested support for BSDI 4.x.
5535 1999-05-13 Nathan Bryant <bryant@cs.usm.maine.edu>
5536 * acconfig.h, configure.in, routines.c: fix for certain SYSV variants
5537 which lack utmp.ut_host
5538 * citadel.h, file_ops.c, msgbase.c, netproc.c, serv_chat.c: fix
5539 namespace collision with <sys/stream.h> on aforementioned SYSV
5541 * configure.in, getutline.c: check for paths.h
5542 * configure.in, Makefile.in: check for -lsocket and -lnsl
5544 1999-05-11 Nathan Bryant <bryant@cs.usm.maine.edu>
5545 * chkpwd.c: fixed excessive paranoia; it used to refuse to run when
5546 invoked by root and BBSUID != 0
5547 * Makefile.in: ignore errors while installing /etc/pam.d/citadel
5549 1999-04-27 Art Cancro <ajc@uncensored.citadel.org>
5550 * file_ops.c: fixed NDOP to not crash the server if it has trouble
5551 with a download file
5552 * netpoll.c: upped default packet size
5554 Mon Apr 26 22:06:57 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5555 * Repaired IGnorant security hole blunder re. citmail
5557 Sun Apr 25 12:44:08 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5558 * serv_chat.c: notify user of number of participants upon entering chat
5559 * Built the 5.53 distribution
5561 Wed Apr 21 22:23:13 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5562 * aidepost.c: add -r flag to allow posting to rooms other than Aide>
5563 * serv_expire.c: now posts transcripts of all auto-purged rooms/users
5565 Tue Apr 20 12:45:55 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5566 * messages.c: downloading more than MAX_MSGS messages now truncates
5567 (off the beginning of the list) rather than crashing.
5569 Mon Apr 19 12:11:48 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5570 * whobbs.c: auto-detect when being called from a webserver, and act
5571 as a CGI (print HTTP headers and HTML output)
5573 1999-04-18 Nathan Bryant <bryant@cs.usm.maine.edu>
5574 * serv_chat.c: fixed some potential buffer overruns (thanks dme)
5576 Wed Apr 14 21:32:28 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5577 * Makefile.in: chmod 4755 citmail to prevent citmail from aborting
5578 when called from sendmail due to citadel.config security check
5580 1999-04-13 Nathan Bryant <bryant@cs.usm.maine.edu>
5581 * dynloader.c: OpenBSD places underscores in front of symbol names
5582 * Makefile.in: fixed a few sillies
5583 * aidepost.c, citmail.c, file_ops.c, logging.c, msgbase.c, netmailer.c,
5584 netproc.c, rcit.c, routines.c, serv_upgrade.c: fixed time_t handling
5585 (have to cast it to long for printf/scanf)
5587 Mon Apr 12 22:13:26 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5588 * aidepost.c: rewrote to unlink temp file before writing to it so that
5589 it will automatically go away if interrupted. Also ran indent -kr -i8
5591 1999-04-12 Nathan Bryant <bryant@cs.usm.maine.edu>
5592 * configure.in, Makefile.in: taught it how to generate OpenBSD shared
5594 * config.c, sysdep.c: fix -h option not setting proper modules dir
5595 * configure.in, citadel.spec: make --enable-chkpwd the default
5596 * setup.c: don't chown chkpwd
5598 1999-04-11 Nathan Bryant <bryant@cs.usm.maine.edu>
5599 * configure.in: another OpenBSD fix, but we're still not quite there yet
5600 * serv_chat.c: warning fix
5602 Thu Apr 8 22:51:28 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5603 * config.c: now requires a setup run for *any* rev level difference
5604 * Updated docs & confs for 5.53b1 release
5605 * setup.c: sets the 0600 permission bits on citadel.config that
5606 is checked for in config.c
5608 1999-04-08 Nathan Bryant <bryant@cs.usm.maine.edu>
5609 * citserver.c: improved is_public_client(), also if a public_client
5610 only supplies a numeric address, attempt to resolve it
5611 * locate_host.c: verify that the forward DNS matches the reverse
5612 * locate_host.c, locate_host.h: more general interface
5613 * configure.in, acconfig.h: fixes for Digital UNIX
5615 Wed Apr 7 21:36:16 EDT 1999 Art Cancro <ajc@uncensored.citadel.org>
5616 * Implemented "access level required to create rooms" (client & server)
5618 1999-04-07 Nathan Bryant <bryant@cs.usm.maine.edu>
5619 * configure.in: updated help messages, OpenBSD support
5620 * setup.c: if /etc/inittab doesn't exist, don't ask to create an
5622 * server.h, sysdep.c: fix a potential deadlock/data corruption bug
5623 * room_ops.c: fixed the 'gdbm error: Illegal data' message when
5624 deleting a room which had never been posted to
5625 * user_ops.c: include errno.h
5626 * dynloader.c: fix for OpenBSD
5628 1999-04-06 Nathan Bryant <bryant@cs.usm.maine.edu>
5629 * Makefile.in, configure.in, getutline.c, sysdep.c:
5630 fixes/bug workarounds for FreeBSD
5632 1999-04-03 Nathan Bryant <bryant@cs.usm.maine.edu>
5633 * Makefile.in, configure.in, chkpwd.c, acconfig.h: support for
5634 `chkpwd', a setuid helper program for machines which use shadow
5635 passwords (configure --enable-chkpwd)
5636 * Makefile.in, configure.in, auth.c, citadel.pam, user_ops.c: support
5637 for PAM or shadow passwords (configure --with-pam)
5638 * Makefile.in: made some messages simpler
5639 * citadel.spec: updated for 5.53; correct name of tarball; build with
5640 --enable-chkpwd and --with-pam; add defattr tags so rpm's can be
5641 built by non-root user
5642 * commands.c: cosmetic cleanup
5643 * config.c: (security/paranoia) check permissions on citadel.config
5644 * configure.in: check for ncurses if we can't find curses
5645 * dynloader.c: warning fix
5646 * sysdep.c: don't complain if initgroups() fails
5647 * citadel.c: fix systems with SYSV-style signal handling (e.g. libc5)
5648 * Makefile.in: New! Improved! Cleaner! Shinier!
5650 Sun Mar 21 14:21:47 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5651 * messages.c: cosmetic cleanups to message reading loop
5653 Sat Mar 13 21:33:19 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5654 * commands.c: use bright colors by default in color mode
5655 * citserver.c: initialize wholist fields with (not logged in) etc.
5657 1999-03-08 Nathan Bryant <bryant@cs.usm.maine.edu>
5658 * sysdep.c: call DLoader_Init() with an absolute path so that gdb can
5660 * database.c: bail out if opening databases fails
5662 Sat Mar 6 01:55:55 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5663 * serv_chat.c: use memfmout(), *not* cprintf() to transmit express
5664 messages. Calling cprintf() on strings >256 bytes crashes the server
5665 * msgbase.c: minor logging fix in save_message()
5667 1999-03-05 Nathan Bryant <bryant@cs.usm.maine.edu>
5668 * sysdep.c: add undocumented -r flag to citserver to prevent it from
5669 dropping root permissions.
5670 * sysdep.c: also drop supplementary groups
5672 1999-03-04 Nathan Bryant <bryant@cs.usm.maine.edu>
5673 * config.c: error checking in put_config()
5674 * setup.c: chgrp files to the login group associated with BBSUID
5675 * sysdep.c: copyright 1987-1999; drop root perms; load modules and call
5676 master_startup() after dropping perms
5678 Wed Mar 3 00:00:55 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5679 * Prevent buffer overruns in lowercase_name in [get|put]user()
5680 * client_chat.c: use citedit() for page composition
5682 Sat Feb 27 07:47:36 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5683 * rooms.c: download_to_local_disk() prompts for a filename if a blank
5684 filename was supplied to it (for attachments without names)
5685 * mime_parser.c: strip leading whitespace in content_type & disposition
5687 1999-02-24 Nathan Bryant <bryant@cs.usm.maine.edu>
5688 * configure.in: improved check for pthreads
5689 * configure.in, routines.c, acconfig.h: check for ut_type in struct utmp
5690 * configure.in, Makefile.in: support for building server modules as
5691 relocatable objects for BSDI (which still uses a.out *gag* *choke*)
5692 * configure.in: compiler choice & flags for BSDI; check for libtermcap
5693 * database.c: don't use a critical section in open_databases()
5694 * housekeeping.c: use getfloor()/putfloor() instead of
5695 lgetfloor()/lputfloor() in check_ref_counts()
5696 * mime_parser.c: include <errno.h>
5697 * msgbase.c: include <limits.h>
5698 * sysdep.c: hacks for BSDI. use signals to fake thread cancellation;
5699 don't call master_cleanup() directly from signal handler.
5700 * routines.c: prototype getutline() if necessary
5701 * getutline.c: stupid bugfix
5702 * acconfig.h, configure.in, locate_host.c, server.h: work around
5703 nonreentrant gethostbyaddr() on BSDI
5705 Mon Feb 15 22:59:00 EST 1999 Vaggelis Tsirkas
5706 * citadel.c: increased hostname buffer size to handle very big names
5708 1999-02-15 Nathan Bryant <bryant@cs.usm.maine.edu>
5709 * sysdep.c(main): initialize alen before call to accept()
5711 1999-02-04 Nathan Bryant <bryant@cs.usm.maine.edu>
5712 * configure.in: improved check for cygwin
5713 * configure.in, routines.c: access utmp directly instead of calling
5714 `who' if getutline() is available.
5715 * configure.in, Makefile.in, getutline.c: replace getutline() on
5716 systems which don't have it
5717 * routines.c: now always access utmp directly unless we can't find
5720 1999-02-02 Nathan Bryant <bryant@cs.usm.maine.edu>
5722 - ifdef out file download methods that require named pipes (client)
5723 - include pthread.h and gdbm.h only if they are present (fixes
5724 auto dependency generation)
5725 - include snprintf.h where needed
5726 - handle .exe suffixes for "make install"
5728 Tue Feb 2 22:15:08 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5729 * Overhauled the express messaging system (again)
5731 Mon Feb 1 19:48:04 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5732 * messages.c: implemented client download of MIME attachments
5734 Sun Jan 31 18:29:18 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5735 * Added qpdecode.c to the distribution (decodes quoted-printable)
5736 * Finished the MIME parser
5737 * Gave MSG0 a reasonable behaviour for MIME messages
5738 * Added the OPNA command for downloading attachments
5740 Sat Jan 30 18:39:53 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5741 * Look for citadel.rc in current directory if not found elsewhere
5742 * More work on the MIME parser
5743 * Added base64.c to the distribution
5745 1999-01-29 Nathan Bryant <bryant@cs.usm.maine.edu>
5746 * fixes for IRIX (thanks to wr and family for use of the Indy):
5747 - use memset()/memcpy() instead of bzero()/bcopy() in all cases
5749 - handle `long' pid's
5750 - a few other little bits
5752 Mon Jan 25 21:23:07 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5753 * Fixed bug in save_message() which crashed the server on mail to sysop
5754 * Rewrote pop_march() to be smarter about <G>oto heuristics
5756 Sat Jan 23 14:32:19 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5757 * Changed internal storage of express messages from a linked list to
5758 a single, resizable buffer.
5759 * Added a "room order" key to the room record, to allow some control
5760 over room listing order.
5761 * Made the room list commands aware of the room order key.
5762 * Overhauled <G>oto heuristics to pay attention to floor & room order
5764 Wed Jan 20 19:21:51 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5765 * Added some more code to the unfinished MIME parser
5766 * Changed module loading path to simply "modules" because after calling
5767 get_config(), the cwd is guaranteed to be the correct BBS directory.
5769 Tue Jan 19 21:28:29 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5770 * Fixed a bug in the user editing command (client side)
5771 * Started a rewrite of the MIME parser
5773 Thu Jan 14 21:21:15 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5774 * Brought over the mime_parser from WebCit and began preliminary work
5775 on supporting MIME format messages.
5777 Tue Jan 12 22:30:00 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5778 * Various changes to begin work on support for MIME messages
5779 - Defined format type 4 for MIME
5780 - msgbase.c: *temporary* hacks in output_message() for Type 4
5781 - citmail.c: added more robust header parsing, and support
5782 for Type 4. Also eliminated the crappy built-in
5784 - Updated some of the technical documentation
5786 Sun Jan 10 13:34:36 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5787 * Fixed access to page log room
5789 Fri Jan 8 12:35:09 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5790 * control.c: include <limits.h> to fix PATH_MAX undefined
5791 * serv_chat.c: made the following changes to cmd_sexp() --
5792 * Send zero-length message to check only, don't send
5793 * Send "-" message on the command line to invoke
5794 the SEND_LISTING transfer mode for a multi-line message
5795 * Added facilities to log all pages to a room (site configurable)
5797 Tue Jan 5 23:24:52 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5798 * Replaced all occurances of malloc(), realloc(), and free() in the
5799 server and server-modules with mallok(), reallok(), and phree().
5800 Wrote macros and a set of leak-tracking functions.
5802 Sun Jan 3 20:38:45 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5803 * Documentation changes
5805 Fri Jan 1 01:01:45 EST 1999 Art Cancro <ajc@uncensored.citadel.org>
5806 * Fixed security problem relating to private rooms
5808 Wed Dec 30 20:10:52 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5809 * sysdep.c: put a bigger string buffer into lprintf() to avoid overruns
5811 Sat Dec 26 16:56:46 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5812 * internetmail.config: commented this file more clearly
5814 Wed Dec 23 20:42:49 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5815 * citadel.c: added some experimental code to automatically reconnect
5816 to the server if the connection is broken. For some reason, it only
5819 Wed Dec 23 18:47:12 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5820 * sysdep.c: ignore SIGPIPE. This keeps broken connections from
5821 crashing the whole server.
5822 * Tagged everything for the official 5.50 release.
5824 Mon Dec 21 07:54:20 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5825 * housekeeping.c: call kill_session() with session_to_kill,
5826 not ccptr->cs_pid (was crashing the server)
5828 Sat Dec 19 13:57:48 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5829 * Added "-i" flag to netproc to make it skip the export phase.
5830 Updated other programs to call netproc in this way when appropriate.
5831 * Updated network.txt to reflect the usage for netproc (which has
5832 been wrong for several releases)
5834 Thu Dec 17 00:17:04 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5835 * Started removing the word "beta" from the docs and code.
5836 Preparing for an actual release.
5837 * msgbase.c: generate an 'I' field when requested (i.e. on locally
5838 originating messages. this was breaking parts of the network)
5840 1998-12-15 Art Cancro <ajc@uncensored.citadel.org>
5841 * msgbase.c: remove extra call to alias() which was causing
5842 Citadel-to-Citadel mail to fall into the bit bucket.
5843 * msgbase.c: fixed tempfile naming problem that could cause a new
5844 outgoing netmail message to overwrite another if netproc had not been
5847 1998-12-14 Art Cancro <ajc@uncensored.citadel.org>
5848 * More session table stability nonsense
5850 Sun Dec 13 17:40:08 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5851 * sysdep.c, citserver.c: (hopefully) fixed a session table concurrency
5852 bug which was causing the server to occasionally crash.
5853 * removed serv_test.so from the default build
5855 Fri Dec 11 18:50:00 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5856 * setup.c: default value for maxsessions is now 0 (no limit)
5857 * room_ops.c: don't allow users to create a room called "Mail"
5858 * serv_expire.c: fixed "number of messages purged" display
5859 * commands.c: when using color, default to low-intensity colors
5861 Tue Dec 8 07:58:16 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5864 Sat Dec 5 01:24:03 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5865 * Added a new type of module hook for adding logging functions
5866 * Removed whitespace to left and right of '@' in netmail recipients
5867 * sysdep.c: read citadel.config _before_ initializing loadable modules
5868 * stats.c: fixed segfault resulting from extracting log lines
5869 * Ripped most of the "attachments" stuff out of both the client and
5870 server. (Thought of a better way to handle it ... LATER.)
5872 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
5873 * setup.c: create citadel.config with mode 0600
5874 * Makefile.in: don't chmod sendcommand
5875 * serv_upgrade.c: don't create citadel.config if it doesn't already
5877 * setup.c: saner defaults for nodename and fqdn
5879 Wed Dec 2 20:37:05 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5880 * msgbase.c: modified AddMessageToRoom() and all functions that call it
5881 to use a more reliable/accurate method to set quickroom.QRhighest
5882 * weekly.in: don't sort/purge filedir where filedir doesn't exist
5884 1998-12-02 Nathan Bryant <bryant@cs.usm.maine.edu>
5885 * weekly is now generated by configure
5887 Mon Nov 30 19:48:52 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5888 * room_ops.c: added sort_msglist() to move and save operations
5889 * sendcommand.c: added (also updated utils.txt, weekly, Makefile.in)
5892 Sun Nov 29 23:57:39 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5893 * Fixed cmd_regi() to not display a second result code after xfer
5894 * Makefile.in: Removed "chmod 4755 citmail netmailer"
5896 1998-11-23 Nathan Bryant <bryant@cs.usm.maine.edu>
5897 * citadel.spec: added
5899 1998-11-22 Nathan Bryant <bryant@cs.usm.maine.edu>
5900 * Makefile.in: split install target into install-exec, install-data,
5901 and install-doc subtargets
5903 Sat Nov 21 16:53:30 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5904 * Added a fourth color mode in the client: "user" which turns color
5905 on or off according to a per-user flag stored on the server. Added
5906 server-side support for this too, of course.
5908 * serv_expire.c: finished the code to purge stale visits
5909 * sysdep.c: strip trailing nonprintables in client_gets()
5910 * routines2.c: fixed <.AS> command; all configs now work properly
5911 * Moved num_parms() and all the extract() type functions into tools.c
5912 and removed them from all other files. Linked in tools.[o|ro] there.
5913 * netproc.c: handled incoming file transfers to correct room directory
5914 * room_ops.c: fixed incorrect naming of files in info and images dirs
5916 Fri Nov 20 20:29:07 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5917 * setup.c: removed all prompts that can be configured from within the
5918 client in order to simplify the setup procedure
5920 Thu Nov 19 23:28:33 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5921 * Fixed serv_upgrade.c and export5.c (found elsewhere) to use a new
5922 export format which treats visits as a separate section
5923 * serv_expire.c: began writing functions to purge rooms and visits
5924 (neither work yet), and added a way to call defrag_databases()
5926 Wed Nov 18 23:51:17 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5927 * Reimplemented 'visit' structs stored globally instead of as
5930 Tue Nov 17 22:37:48 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5931 * Started implementing global room numbers.
5933 Sun Nov 15 20:32:34 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5934 * room_ops.c: mailbox rooms always appear on the main floor
5935 * made QR_MAILBOX rooms non-editable
5936 * cmd_setr() delete old room record when room name changes
5937 (This causes a big mess that exposes a flaw in the whole design.)
5938 * room_ops.c: users can delete messages from their mailboxes
5940 Thu Nov 12 23:59:13 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5941 * Rewrote cmd_rchg() and also increased the size of the "fakename"
5942 buffer. Overruns are probably what was causing the crashes.
5943 * Changed the way cmd_ent3() handles mail messages; the previous code
5944 rerouted all private mail to the trash.
5946 Wed Nov 11 17:57:39 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5947 * citserver.c: slight changes to cmd_rchg() and cmd_hchg() [crashes]
5948 * citserver.c, msgbase.c, user_ops.c: hide the owner-prefix of mail
5949 rooms in a couple more places: set_wtmpsupp() and make_message()
5950 * sysdep.c: added an fflush() to lprintf() for "tail -f"-able logs
5951 * serv_expire.c: purge ops are now a command instead of a cleanup
5952 function. This is probably temporary as well.
5953 * citadel.c: fixed the way <.WL> parses the returned data from a
5956 1998-11-11 Nathan Bryant <bryant@cs.usm.maine.edu>
5957 * serv_upgrade.c: fix uninitialized variable
5959 Wed Nov 11 00:47:32 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5960 * msgbase.c: fixed a bug that was misrouting incoming network msgs
5961 * server.h, database.c: wrapped all GDBM calls in critical sections
5962 to avoid making those calls re-entrantly (gdbm fatal: lseek error)
5964 1998-11-10 Nathan Bryant <bryant@cs.usm.maine.edu>
5965 * Makefile.in: link in snprintf.o where needed
5967 1998-11-09 Nathan Bryant <bryant@cs.usm.maine.edu>
5968 * client_chat.c: eliminate calls to sprintf()
5969 * commands.h, routines.c, routines2.c: warning fix
5970 * commands.c, control.c, cux2ascii.c, file_ops.c, import.c,
5971 ipc_c_tcp.c: eliminate sprintf() calls
5973 Mon Nov 9 19:15:31 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5974 * serv_upgrade.c: added all missing fields to export/import
5975 * serv_expire.c: support per-user purge time when purging users
5976 * user_ops.c: added per-user purge time to AGUP and ASUP commands
5977 * routines.c: added more stuff to <.A>ide <E>dit user
5979 Sun Nov 8 22:56:53 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5980 * serv_expire.c: created; moved message expiry from serv_test.c,
5981 moved user purge from userpurge.c
5982 * userpurge.c: deleted
5983 * routines2.c: finished <.AS> command
5984 * room_ops.c: fixed Aide room access (for some reason, the Aide
5985 room had the QR_MAILBOX flag set)
5987 1998-11-08 Nathan Bryant <bryant@cs.usm.maine.edu>
5988 * useradmin.c: really removed (cvs remove)
5989 * aidepost.c, citadel.c: convert all sprintf() calls to snprintf()
5990 * sysdep.c: fix overrun in lprintf() described by dme/Dead Monkey
5991 * citmail.c, citserver.c: convert all sprintf() call to snprintf()
5993 Sun Nov 8 13:19:36 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5994 * useradmin.c: removed
5995 * utils.doc: removed references to useradmin and sysoputil
5997 Fri Nov 6 20:22:20 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
5998 * citadel.h (and related files): removed defunct parameters,
5999 c_defent and c_msgbase (erase your test bbs)
6000 * Implemented CONF server command for site-global configs
6001 * Shuffled yesno() and yesno_d() from routines.c to commands.c
6002 * commands.c: implemented boolprompt()
6003 * routines2.c: started adding CONF questions to <.AS> command
6004 * room_ops.c: began a fix for the mysterious disappearing Aide room
6006 1998-11-05 Nathan Bryant <bryant@cs.usm.maine.edu>
6007 * snprintf.c: warning fix propagated over from gcit
6009 1998-11-04 Nathan Bryant <bryant@cs.usm.maine.edu>
6010 * added RCS Id keyword strings to sources
6011 * citmail.c: reverted to version 1.10
6013 Wed Nov 4 10:53:13 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6014 * messages.c: temporarily set screenwidth to a fixed value of 80
6015 during <P>rint operations.
6017 Mon Nov 2 12:59:03 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6018 * setup.c: looks for 'citadel', 'bbs', or 'guest' in /etc/passwd to
6019 try to get a default for bbsuid if it's currently set to 0
6020 * citmail.c: changed usersupp.eternal to usersupp.usernum (why didn't
6021 it complain about this before?)
6022 * serv_upgrade.c: began writing an "export" command to do sidegrades
6024 Sun Nov 1 18:47:42 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6025 * serv_upgrade.c: cosmetic changes
6026 * Implemented message expiry by date (this really needs to be moved
6027 out of serv_test.c, but where does it belong?)
6029 1998-11-01 Nathan Bryant <bryant@cs.usm.maine.edu>
6030 * serv_upgrade.c: warning fixes
6031 * acconfig.h: remove ANSI_COLOR
6032 * Configure, Makefile.tmpl: removed
6034 Sat Oct 31 20:48:44 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6035 * More stoopid ANSI colour additions here and there.
6036 * ANSI colour selection is now in citadel.rc instead of an option in
6037 the configure script. "on" "off" and "auto" are available.
6038 * added "build.txt" to the techdoc directory, with LS's build notes
6040 1998-10-31 Nathan Bryant <bryant@cs.usm.maine.edu>
6041 * citadel.c, commands.c, commands.h: set background color to black
6042 before clearing screen, so that we can actually see text on
6043 black-on-white xterms.
6045 1998-10-29 Nathan Bryant <bryant@cs.usm.maine.edu>
6046 * rooms.c: fix color of Mail>
6047 * citadel.c: send ANSI detect sequence after attach_to_server() so the
6048 terminal doesn't send the answerback sequence to the shell if we
6051 Wed Oct 28 20:20:14 EST 1998 Art Cancro <ajc@uncensored.citadel.org
6052 * citadel.c: Added a splash of colour to the Wholist
6054 1998-10-28 Nathan Bryant <bryant@cs.usm.maine.edu>
6055 * configure.in: added comments
6056 * mkinstalldirs: new file to be used for `make install'
6057 * aclocal.m4, missing: new files, also swiped from automake
6058 * citadel.c: don't mung the terminal if we can't find citadel.rc
6059 * Makefile.in: added `install' target, `clean' removes
6060 *.mo, rebuild configure when configure.in changes.
6061 * configure.in: check for install and autoconf
6062 * configure.in, Makefile.in: only pass -fPIC to gcc
6063 * policy.c: warning fix for OSF/1 (use memset() instead of bzero())
6065 Tue Oct 27 22:25:42 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6066 * Unified the "unpacked database" format for both upgrades and
6067 sidegrades (also see export5.c elsewhere)
6068 * citserver.c: clear out cmdbuf before reading a command; some server
6069 commands were accidentally extracting parameters from previous cmds
6070 * rooms.c: removed the warning about the ineffectiveness of kicking
6071 users out of public rooms, because the new server can do lockouts
6073 1998-10-27 Nathan Bryant <bryant@cs.usm.maine.edu>
6074 * sysdep.c (client_gets), ipc_c_tcp.c (serv_gets): improved handling
6076 * Makefile.in: partial support for VPATH builds, autodependency fix
6078 Tue Oct 27 00:08:16 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6079 * minor documentation changes
6081 Sun Oct 25 14:57:40 EST 1998 Art Cancro <ajc@uncensored.citadel.org>
6082 * messages.c: fixed an oversight that was allowing attachments even
6083 when disabled in citadel.rc
6085 1998-10-25 Nathan Bryant <bryant@cs.usm.maine.edu>
6086 * routines2.c: warning fix
6088 Sat Oct 24 22:07:56 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6089 * Client: added message expiration policy questions to room edit
6090 * Client: added <.A>ide <S>ystem configuration command
6092 1998-10-24 Nathan Bryant <bryant@cs.usm.maine.edu>
6093 * Makefile.in: Auto dependency generation (may require GNU make, but
6094 does at least function without this feature on OSF/1 make);
6095 Makefile is regenerated when Makefile.in changes (ditto);
6096 `realclean' is now known as `distclean';
6097 portability fixes for older Unix make utilities
6098 * citadel.c, citadel.h, commands.c: make client suspendable
6100 Fri Oct 23 19:34:38 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6101 * setup.c: default node name is now obtained from uname()
6102 * config.c: added put_config()
6103 * policy.c: added, moved GetExpirePolicy() from room_ops.c
6104 * policy.c: implemented cmd_gpex() and cmd_spex()
6106 Wed Oct 21 22:24:48 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6107 * Mail rooms now hide their owner-prefix from the client.
6108 * proxy.c: added configurability and primitive message expiry
6110 1998-10-20 Nathan Bryant <bryant@cs.usm.maine.edu>
6111 * Makefile.tmpl: fix to build client with old Configure script
6112 * configure.in: autologin defaults to enabled if crypt() is available
6113 * room_ops.c: fix improper null-termination bug I introduced
6115 Mon Oct 19 20:52:55 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6116 * Client ability to force display of prompts in Mail rooms, even when
6117 the user has prompting turned off (citadel.rc option)
6119 1998-10-16 Nathan Bryant <bryant@cs.usm.maine.edu>
6120 * sysdep.c (cprintf): generate a newline on truncated buffer
6121 * room_ops.c: exploitable overrun fixes
6123 Thu Oct 15 19:27:32 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6124 * msgbase.c: reimplemented cmd_move()
6125 room_ops.c: wrote AddMessageToRoom() which is used for both entering
6126 and moving messages.
6127 * setup.c: system-default message expire policy of "number of
6128 messages, 150" is now a default configuration instead of a temp hack
6129 * proxy.c: cache dir create now dies on any error except EEXIST
6131 Wed Oct 14 22:41:16 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6134 1998-10-13 Nathan Bryant <bryant@cs.usm.maine.edu>
6135 * configure.in: don't check for -lcrypt unless autologin is enabled
6136 * file_ops.c: fix another overrun
6138 Mon Oct 12 15:27:21 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6139 * Killed the "rooms" subdirectory (it isn't used anymore)
6140 * dynloader.c: Made dynamically added server commands case-insensitive
6141 * import.c is now serv_upgrade.c, a module
6142 * Removed most of the "level 9" trace messages no longer needed
6144 1998-10-12 Nathan Bryant <bryant@cs.usm.maine.edu>
6145 * Makefile.in: simplified to use pattern rules; files compiled with
6146 -D_REENTRANT go to *.ro to allow the same files to be used with both
6148 * tools.c, tools.h: new files; misc routines used by both client and
6149 server go here. contains safestrncpy() at the moment.
6150 * rooms.c: fix several exploitable buffer overruns
6151 * sysdep.c: fix infinite loop when long lines are received from the
6152 client; fix exploitable buffer overrun in cprintf()
6153 * ipc_c_tcp.c: fix infinite loop on long line from server
6154 * serv_upgrade.sh: remove uncnsrd-dependent absolute path
6155 * .cvsignore: add *.ro
6157 Sun Oct 11 23:17:48 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6158 * Built some more of the message expiry infrastructure
6160 1998-10-11 Nathan Bryant <bryant@cs.usm.maine.edu>
6161 * citserver.c: fix two more overruns, one of which was preventing
6162 the "From Host" from showing up in the <W>ho listing.
6164 Sun Oct 11 02:51:55 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6165 * Moved "struct visit" and its associated defs from citadel.h to
6166 server.h where they belong
6167 * Set up data structures for room policies (expiry, etc.)
6169 1998-10-10 Nathan Bryant <bryant@cs.usm.maine.edu>
6170 * citserver.c: fix overrun which caused segv's on servers with long
6173 Fri Oct 9 18:34:06 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6174 * user_ops.c: added PurgeStaleRelationships() to do processing at
6175 session logout time to remove visits for rooms which no longer exist
6176 * user_ops.c: implemented NewMailCount()
6178 1998-10-09 Nathan Bryant <bryant@cs.usm.maine.edu>
6179 * serv_chat.c: fix buffer overrun that was resulting in segv's
6180 * serv_chat.c: fix another overrun that could cause sessions to hang,
6181 and cleaned up some other strncpy()-related stuff. DON'T FORGET TO
6182 NULL-TERMINATE DESTINATION BUFFERS AFTER STRNCPY CALLS.
6184 Fri Oct 9 13:22:37 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6185 * Implemented "lazy mode" traversal - pressing the space bar will do
6186 <N>ext messsage, <G>oto next room, or read <N>ew as appropriate.
6187 * room_ops.c: modify CtdlRoomAccess() to allow access to mailbox rooms
6188 only to their owners.
6190 Thu Oct 8 17:13:27 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6191 * messages.c, citadel.rc: added the ability to display message numbers
6192 in the header when reading messages. I think this is butt ugly, but
6193 some of the DaveCode afficionados seem to like it...
6195 Thu Oct 8 15:34:45 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6196 * room_ops.c: Added is_noneditable() function to replace all of the
6197 duplicated code present in all functions which edit room parameters.
6199 1998-10-08 Nathan Bryant <bryant@cs.usm.maine.edu>
6200 * lots of warning fixes; builds with -std1 on dec unix
6201 * aidepost.c, citadel.h, citmail.c, file_ops.c, msgbase.c, netmailer.c,
6202 netproc.c, rcit.c, server.h, stats.c, userlist.c: use time_t where
6204 * control.c, room_ops.c, serv_chat.c, sysdep.c: use memset() instead of
6206 * dynloader.c, dynloader.h, messages.c, server.h, sysdep.c,
6207 sysdep_decls.h: function pointer/prototyping fixes
6208 * rooms.c: use mkfifo(3) instead of system("mkfifo")
6210 1998-10-07 Nathan Bryant <bryant@cs.usm.maine.edu>
6211 * snprintf.c, snprintf.h: new files
6212 * Makefile.in, configure.in, dynloader.c, sysdep.c: support for the
6213 above; citserver now builds and runs on Digital Unix 4.0d with the
6214 GNU-style configure script. there is a bug with the hostname display
6216 * netproc.c: sillyness fix
6217 * room_ops.h: prototype delete_room()
6218 * client_chat.c, commands.c, serv_chat.c, sysdep.c:
6219 use HAVE_SYS_SELECT_H macro
6221 Mon Oct 5 17:01:32 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6222 * Began fixing the stuff I broke
6224 Sun Oct 4 23:35:18 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6225 * Did the big migration to the new data structures. Lots of stuff is
6226 now broken. Basic moving from room to room works, but Mail is
6227 broken, and some of the administrative commands are unimplemented.
6229 1998-10-02 Nathan Bryant <bryant@cs.usm.maine.edu>
6230 * configure.in: autologin now defaults to disabled
6232 Fri Oct 2 00:04:31 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6233 * Finally removed all three usersupp.foo[MAXROOMS] elements, and
6234 migrated all the code that used them to use "struct visit" instead.
6236 Thu Oct 1 23:02:20 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6237 * Rewrote [l][get|put]room() functions to use room names rather than
6238 room index numbers. Temporarily prepended a "n" to these four
6239 function names until they are put to use.
6241 Thu Oct 1 16:27:13 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6242 * Removed a few more references to usersupp.lastseen[]
6244 1998-10-01 Nathan Bryant <bryant@cs.usm.maine.edu>
6245 * .cvsignore: add so_locations (generated by osf1 ld with shared libs)
6246 * Makefile.in: restructured variables for greater consistency, use
6247 @echo to print out notices during the make process, add so_locations
6249 * configure.in, Makefile.in: configure checks for -rdynamic
6250 * ipc_c_tcp.c: fix DEC compiler warning wrt unsigned char
6251 * stats.c: add semicolon to placate DREC compiler
6252 * user_ops.c: define _POSIX_C_SOURCE, include <limits.h>
6253 * configure.in: pass -pthread to DEC compiler, don't check for
6254 libpthread[s] on DEC Unix
6256 1998-09-30 Nathan Bryant <bryant@cs.usm.maine.edu>
6257 * Makefile.in: new variable PTHREAD_DEFS for portability
6258 * aidepost.c, citadel.c, citmail.c, mailinglist.c, msgform.c,
6259 netmailer.c, netpoll.c, netproc.c, rcit.c, readlog.c, setup.c,
6260 stats.c, userlist.c, whobbs.c: return type of main() is int
6261 * citadel.c, commands.c, messages.c: use time_t properly
6262 * citserver.c: include <limits.h>
6263 * config.guess, config.sub, install-sh: new files
6264 * configure.in: don't use gcc on Digital Unix
6266 Tue Sep 29 23:17:34 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6267 * room_ops.c: modified usergoto() to look at the new data structures
6268 for counting new messages and such.
6270 1998-09-29 Nathan Bryant <bryant@cs.usm.maine.edu>
6271 * user_ops.c: fix compiler warning and potential memory leak,
6273 * configure.in, Makefile.in: only build the server if we find pthreads
6274 * Makefile.in: realclean removes config.{cache,log,status}
6276 Tue Sep 29 13:20:14 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6277 * Removed code from some of the utilities which was still attempting
6278 to access the old non-gdbm data store.
6279 * housekeeping.c: rewrote check_ref_counts() to do a ForEachRoom()
6280 traversal instead of a MAXROOMS loop.
6281 * sysdep.c: set up a dummy CitContext record to be used during server
6282 startup, during which time there is no real context.
6284 Mon Sep 28 23:51:51 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6285 * Implemented the function ForEachRoom() to handle all-rooms traversal
6286 (this will work with both the old and new paradigms, because both
6287 use a GDBM database with one room per record). Migrated all room
6288 list commands to use it.
6290 Mon Sep 28 22:05:35 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6291 * Implemented the function CtdlRoomAccess() to handle *all* of the
6292 user-access-to-rooms functionality. Migrated all room list commands
6293 to use it. Still need to migrate gotos.
6295 1998-09-28 Nathan Bryant <bryant@cs.usm.maine.edu>
6296 * configure.in, acconfig.h: new files; partially functional GNU
6297 autoconf configure script. Run autoheader; autoconf; ./configure
6298 --prefix=`pwd` to test.
6299 * Makefile.tmpl: new file; this is what Makefile.in used to be. Used by
6301 * Makefile.in: modified to work with autoconf-style configure script
6302 * Configure: modified to use Makefile.tmpl and generate autoconf-style
6303 macros. Removed procfs detection. Pass -O2 to gcc, -O to other
6304 compilers. Removed mknod/mkfifo detection; code should use mkfifo(3).
6305 * citmail.c, msgform.c, netproc.c, routines.c, support.c, userlist.c,
6306 whobbs.c: use HAVE_STRERROR macro rather than NO_STRERROR
6307 * commands.c: use HAVE_TERMIOS_H macro rather than POSIX_TERMIO
6308 * netproc.c: remove procfs stuff. simply attempt to kill the target
6309 process with signal zero instead; this checks whether the process
6311 * setup.c, useradmin.c: use HAVE_CURSES_H macro
6313 Sun Sep 27 23:41:29 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6314 * BOTH the old and new generation systems are being written to at
6315 this point. Code that reads stuff is still using the old system.
6317 Sun Sep 27 16:10:49 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6318 * Changed all "generation" variables from char to long, in preparation
6319 for removing MAXROOMS. Generations for new rooms are now timestamps.
6320 * Defined "struct visit" to hold user/room relationships.
6321 * Removed some #define's from citadel.h that are no longer used.
6323 Wed Sep 23 13:41:49 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6324 * More changes to support attachments. They mostly work, but only
6325 in fixed-format messages.
6327 Mon Sep 21 21:19:17 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6328 * msgbase.c: began laying the groundwork to support attachments.
6329 Purchased Rogaine(tm) in preparation for expected hair loss.
6331 1998-09-21 Nathan Bryant <bryant@cs.usm.maine.edu>
6332 * msgbase.c: include dynloader.h
6333 * citadelapi.h: removed
6334 * dynloader.h: prototype CtdlRegisterUserHook()
6336 Sun Sep 20 18:56:37 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6337 * Added a UserFunctionHook category to implement hooks which perform
6338 operations on various users or usernames
6340 Fri Sep 18 21:14:41 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6341 * citserver.c: removed cmd_extn() and related code
6343 1998-09-18 Nathan Bryant <bryant@cs.usm.maine.edu>
6344 * user_ops.c: include dynloader.h
6345 * roomstats.{c,mk}: removed
6346 * Configure, Makefile.in: autodependency-related fixes
6348 Thu Sep 17 22:55:29 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6349 * Various changes to allow "new messages" to work correctly with Mail
6351 Thu Sep 17 22:21:45 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6352 * server.h, dynloader.c, citserver.c, user_ops.c: reduced the number
6353 of hook types by inventing an EventType field to the Session hook.
6354 * proxy.c: added pre-fetching
6356 1998-09-17 Nathan Bryant <bryant@cs.usm.maine.edu>
6357 * Makefile.in: add SERV_MODULES and PROXY_TARGETS to `cleaner'
6358 * dynloader.[ch], serv_{chat,test}.[ch], sysdep.c: cleaned
6359 up the dynamic loader interface as follows:
6360 - all the symbol table stuff is gone.
6361 - modules are loaded once at server startup and never unloaded.
6362 - Added a new function CtdlRegisterProtoHook() to handle the stuff
6363 that was being done with the symbol tables.
6364 - Dynamic_Module_Init() now returns a pointer to a static struct
6365 DLModule_Info; this structure itself has been modified to use char*
6366 fields instead of fixed char arrays.
6367 * roomstats.c: include <stdarg.h> not <stdargs.h> (is this file still
6369 * Configure, Makefile.in: added autodependency support
6371 Wed Sep 16 22:25:13 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6372 * Implemented separate structs, lists, and functions for each type
6373 of server-side hook available.
6375 1998-09-16 Nathan Bryant <bryant@cs.usm.maine.edu>
6376 * ipc_c_tcp.c: Fixed up some #include/prototyping stuff, call memcpy()
6379 * sysdep.c, user_ops.c: removed reference to hooks.h
6381 Wed Sep 16 11:42:42 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6382 * ipc_c_tcp.c: Reversed any changes that have been made to this file,
6383 because something was causing abominally slow response time.
6384 * proxy.c: added. This will eventually become a caching, pre-fetching
6385 multiuser proxy server for the Citadel protocol.
6387 1998-09-15 Nathan Bryant <bryant@cs.usm.maine.edu>
6388 * Makefile.in: remove support.o from serv_chat.so, add -fPIC to compile
6389 flags for serv_chat.o
6390 * dynloader.c: include "sysdep_decls.h", use RTLD_NOW not RTLD_LAZY
6391 * dynloader.h: prototype CtdlRegisterHook()
6392 * .cvsignore: added data
6394 Mon Sep 14 20:49:08 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6395 * Tried my hand at adding the ability for server extensions to
6396 register various types of "hooks" in addition to just adding
6397 server commands. This is probably not final.
6399 Tue Sep 8 12:11:56 EDT 1998 Brian Costello <btx@calyx.net>
6400 * Added support for dynamic server modules. Reworked serv_chat.c
6401 to be such a module.
6403 Tue Sep 1 23:09:50 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6404 * userpurge.c: rewrote using functions from the server core, rather
6405 than the now-defunct external API. This'll be ready once the module
6406 loading code is done. (I just had to commit _something_ tonight.)
6408 Mon Aug 31 22:47:58 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6409 * Yanked the citadelapi.c module. This wasn't working out well.
6410 * techdocs/citadelapi.txt - began documenting the new API to be used
6411 by modules which will be dynamic linked into the server - most of
6412 this API is existing server functions.
6413 * Added a ForEachUser() function with callback mechanism, and reworked
6414 cmd_list() to use it.
6416 Sun Aug 30 21:52:43 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6417 * Moved all of the gdbm databases to a separate "data" directory.
6419 1998-08-26 Nathan Bryant <bryant@cs.usm.maine.edu>
6420 * Makefile.in: realclean removes Makefile, fixed `touch citadel.h'
6423 1998-08-25 Nathan Bryant <bryant@cs.usm.maine.edu>
6424 * room_ops.c: include time.h
6425 * userlist.c, whobbs.c, serv_chat.c, user_ops.c, sysdep.c, stats.c,
6426 citadel_decls.h, commands.c, messages.h, routines.h, routines2.h:
6427 remove duplicated declarations
6429 Mon Aug 24 23:45:01 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6430 * setup.c: Removed yesno_s()
6431 * citadel.h, room_ops.c: added QRmtime field to struct quickroom,
6432 modified whenever a room is modified or posted in.
6433 * citadelapi.c: Added CtdlForEachRoom() function
6435 Mon Aug 24 20:04:04 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6436 * Makefile.in: new target `cleaner' does the same as `realclean'
6437 without removing sysdep.h
6438 * proto.h: is bad. eliminate. I've moved the prototypes into several
6439 header files, one per .c file
6441 Mon Aug 24 00:45:55 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6442 * Added a CtdlGotoRoom() function to the CitadelAPI.
6444 Sun Aug 23 21:47:00 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6445 * sysoputil is finally dead! Removed it from the build.
6446 * Added userpurge.c server extension (initial implementation)
6448 Tue Aug 18 00:42:33 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6449 * Makefile.in: `clean' target no longer rm's sysdep.h; new target
6450 `realclean' removes everything clean does, plus sysdep.h, plus
6452 * Configure: add -Wstrict-prototypes to CFLAGS for gcc systems
6453 * *.[ch]: protoized. Added several new header files containing
6454 prototypes and other external declarations; many duplicated
6455 declarations still should be moved to header files. proto.h must die
6458 Mon Aug 17 23:52:13 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6459 * Implemented a bunch of user account related functions in the
6462 Mon Aug 17 20:01:18 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6463 * Fixed the crash problem. It wasn't AGUP/ASUP, but rather a buffer
6464 overrun in getuser() (thanks, Nathan). Implemented overrun checks
6465 in getuser(), getroom(), and getfloor() to prevent future problems.
6467 Mon Aug 17 00:06:52 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6468 * Updated citmail.c with the latest stuff from the production system.
6469 * Implemented AGUP and ASUP commands, but AGUP crashes the server
6470 after its first successful use (user-not-found's don't affect it).
6472 Thu Aug 6 19:25:01 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6473 * Got the CitadelAPI library to the point where the server can start
6474 up an extension, and the extension will connect to the server, do
6475 some initialization, call a user-supplied CtdlMain(), and exit. Also
6476 hacked together a _temporary_ form of the new EXTN server command.
6478 Wed Aug 5 23:02:22 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6479 * Second attempt at getting the server API started. Now it runs
6480 outside of the server and builds a connection.
6482 Tue Aug 4 18:33:06 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6483 * Modified the appearance of Internet addresses when they arrive on
6485 * Removed the <E> field from the message format writeup in hack.txt.
6486 * Fixed-up citmail.c so that it doesn't try to do database lookups.
6488 Mon Aug 3 23:01:37 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6489 * Started developing the server-side API. This is in its very
6490 initial stages. See serverapi.c and techdoc/api.txt
6492 1998-08-02 Nathan Bryant <bryant@cs.usm.maine.edu>
6493 * Makefile.in: added config_decls.h to dependencies
6495 Sun Aug 2 21:09:09 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6496 * config_defs.h: renamed to config_decls.h
6497 * config.c, sysoputil.c: updated to reflect the above
6499 Sun Aug 2 18:52:05 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6500 * config_defs.h: new file, contains external declarations from config.c
6501 * config.c: moved defs to config_defs.h, use PATH_MAX from <limits.h>
6502 for bbs_home_directory
6503 * mailinglist.c, support.c: include <string.h>
6504 * sysoputil.c: include <string.h>, <limits.h>, "config_defs.h", remove
6505 duplicated defs, replace gets() call with fgets()
6506 * user_ops.c: define _XOPEN_SOURCE_EXTENDED
6508 Sat Aug 1 18:32:52 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6509 * ipc_c_tcp.c: fixed order of memcpy parameters after gethostbyname
6511 Sun Jul 19 17:26:12 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6512 * ChangeLog: reordered; the GNU standard is to add new entries to the
6514 * .cvsignore: added userlist
6516 Sun Jul 12 20:58:59 EDT 1998 Art Cancro <ajc@uncensored.citadel.org>
6517 * Finished migrating everything to the new data store.
6518 * Replaced the binary "calllog" with the ASCII "citadel.log"
6519 * Began converting broken utilities that depend on the old data store
6521 Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
6522 * Makefile.in: removed msgstats
6524 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
6525 * Initial CVS import