citadel.git
25 years agominor documentation changes
Art Cancro [Tue, 27 Oct 1998 05:08:44 +0000 (05:08 +0000)]
minor documentation changes

25 years agomessages.c: fixed an oversight that was allowing attachments even
Art Cancro [Sun, 25 Oct 1998 19:58:18 +0000 (19:58 +0000)]
messages.c: fixed an oversight that was allowing attachments even
          when disabled in citadel.rc

25 years ago * routines2.c: warning fix
Nathan Bryant [Sun, 25 Oct 1998 06:19:05 +0000 (06:19 +0000)]
    * routines2.c: warning fix

25 years agoClient: added <.A>ide <S>ystem configuration command
Art Cancro [Sun, 25 Oct 1998 03:47:19 +0000 (03:47 +0000)]
Client: added <.A>ide <S>ystem configuration command

25 years agohmm
Art Cancro [Sun, 25 Oct 1998 02:25:40 +0000 (02:25 +0000)]
hmm

25 years agoFloor expire
Art Cancro [Sun, 25 Oct 1998 02:18:48 +0000 (02:18 +0000)]
Floor expire

25 years agoClient: added message expiration policy questions to room edit
Art Cancro [Sun, 25 Oct 1998 02:08:55 +0000 (02:08 +0000)]
Client: added message expiration policy questions to room edit

25 years ago * citadel.c, citadel.h, commands.c: make client suspendable
Nathan Bryant [Sun, 25 Oct 1998 00:48:23 +0000 (00:48 +0000)]
    * citadel.c, citadel.h, commands.c: make client suspendable

25 years ago * Makefile.in: Auto dependency generation (may require GNU make, but
Nathan Bryant [Sat, 24 Oct 1998 21:30:19 +0000 (21:30 +0000)]
    * Makefile.in: Auto dependency generation (may require GNU make, but
          does at least function without this feature on OSF/1 make);
          Makefile is regenerated when Makefile.in changes (ditto);
          `realclean' is now known as `distclean';
          portability fixes for older Unix make utilities

25 years agopolicy.c: implemented cmd_gpex() and cmd_spex()
Art Cancro [Sat, 24 Oct 1998 04:05:03 +0000 (04:05 +0000)]
policy.c: implemented cmd_gpex() and cmd_spex()

25 years agopolicy
Art Cancro [Sat, 24 Oct 1998 00:27:59 +0000 (00:27 +0000)]
policy

25 years agopolicy.c: added, moved GetExpirePolicy() from room_ops.c
Art Cancro [Sat, 24 Oct 1998 00:12:05 +0000 (00:12 +0000)]
policy.c: added, moved GetExpirePolicy() from room_ops.c

25 years agoconfig.c: added put_config()
Art Cancro [Fri, 23 Oct 1998 23:57:59 +0000 (23:57 +0000)]
config.c: added put_config()

25 years agoMore of the same.
Art Cancro [Fri, 23 Oct 1998 23:38:00 +0000 (23:38 +0000)]
More of the same.

25 years agosetup.c: default node name is now obtained from uname()
Art Cancro [Fri, 23 Oct 1998 23:35:58 +0000 (23:35 +0000)]
setup.c: default node name is now obtained from uname()

25 years ago*** empty log message ***
Art Cancro [Thu, 22 Oct 1998 03:00:11 +0000 (03:00 +0000)]
*** empty log message ***

25 years agoproxy.c: added configurability and primitive message expiry
Art Cancro [Thu, 22 Oct 1998 02:43:54 +0000 (02:43 +0000)]
proxy.c: added configurability and primitive message expiry

25 years agoMail rooms now hide their owner-prefix from the client.
Art Cancro [Thu, 22 Oct 1998 02:25:59 +0000 (02:25 +0000)]
Mail rooms now hide their owner-prefix from the client.

25 years agoOoops
Art Cancro [Thu, 22 Oct 1998 02:01:24 +0000 (02:01 +0000)]
Ooops

25 years agoMinor cosmetic change
Art Cancro [Wed, 21 Oct 1998 22:07:57 +0000 (22:07 +0000)]
Minor cosmetic change

25 years ago * room_ops.c: fix improper null-termination bug I introduced
Nathan Bryant [Wed, 21 Oct 1998 05:00:13 +0000 (05:00 +0000)]
    * room_ops.c: fix improper null-termination bug I introduced

25 years ago * configure.in: autologin defaults to enabled if crypt() is available
Nathan Bryant [Wed, 21 Oct 1998 02:12:50 +0000 (02:12 +0000)]
    * configure.in: autologin defaults to enabled if crypt() is available

25 years ago * Makefile.tmpl: fix to build client with old Configure script
Nathan Bryant [Tue, 20 Oct 1998 18:15:19 +0000 (18:15 +0000)]
    * Makefile.tmpl: fix to build client with old Configure script

25 years agoErr?
Art Cancro [Tue, 20 Oct 1998 03:29:43 +0000 (03:29 +0000)]
Err?

25 years ago * Client ability to force display of prompts in Mail rooms, even when
Art Cancro [Tue, 20 Oct 1998 00:53:49 +0000 (00:53 +0000)]
   * Client ability to force display of prompts in Mail rooms, even when
          the user has prompting turned off (citadel.rc option)

25 years ago * room_ops.c: exploitable overrun fixes
Nathan Bryant [Fri, 16 Oct 1998 17:56:43 +0000 (17:56 +0000)]
    * room_ops.c: exploitable overrun fixes

25 years ago * sysdep.c (cprintf): generate a newline on truncated buffer
Nathan Bryant [Fri, 16 Oct 1998 17:39:45 +0000 (17:39 +0000)]
    * sysdep.c (cprintf): generate a newline on truncated buffer

25 years agofix
Art Cancro [Fri, 16 Oct 1998 00:46:36 +0000 (00:46 +0000)]
fix

25 years agoFix
Art Cancro [Fri, 16 Oct 1998 00:46:18 +0000 (00:46 +0000)]
Fix

25 years ago proxy.c: cache dir create now dies on any error except EEXIST
Art Cancro [Fri, 16 Oct 1998 00:45:33 +0000 (00:45 +0000)]
 proxy.c: cache dir create now dies on any error except EEXIST

25 years agoPulled out a coupla "FIX" comments
Art Cancro [Fri, 16 Oct 1998 00:39:23 +0000 (00:39 +0000)]
Pulled out a coupla "FIX" comments

25 years ago * setup.c: system-default message expire policy of "number of
Art Cancro [Fri, 16 Oct 1998 00:33:31 +0000 (00:33 +0000)]
    * setup.c: system-default message expire policy of "number of
          messages, 150" is now a default configuration instead of a temp hack

25 years ago * msgbase.c: reimplemented cmd_move()
Art Cancro [Thu, 15 Oct 1998 23:29:08 +0000 (23:29 +0000)]
    * msgbase.c: reimplemented cmd_move()
          room_ops.c: wrote AddMessageToRoom() which is used for both entering
          and moving messages.

25 years agoInitial work on new implementation of move_message()
Art Cancro [Thu, 15 Oct 1998 20:36:28 +0000 (20:36 +0000)]
Initial work on new implementation of move_message()

25 years agoMisc code cleanup
Art Cancro [Thu, 15 Oct 1998 02:41:47 +0000 (02:41 +0000)]
Misc code cleanup

25 years ago * file_ops.c: fix another overrun
Nathan Bryant [Tue, 13 Oct 1998 17:59:33 +0000 (17:59 +0000)]
    * file_ops.c: fix another overrun

25 years ago * configure.in: don't check for -lcrypt unless autologin is enabled
Nathan Bryant [Tue, 13 Oct 1998 04:53:31 +0000 (04:53 +0000)]
    * configure.in: don't check for -lcrypt unless autologin is enabled

25 years ago * serv_upgrade.sh: remove uncnsrd-dependent absolute path
Nathan Bryant [Tue, 13 Oct 1998 04:26:28 +0000 (04:26 +0000)]
    * serv_upgrade.sh: remove uncnsrd-dependent absolute path

25 years agoFinished the import module
Art Cancro [Tue, 13 Oct 1998 03:59:47 +0000 (03:59 +0000)]
Finished the import module
Removed most of the "level 9" trace messages no longer needed

25 years agoUpdate stuff
Art Cancro [Tue, 13 Oct 1998 02:53:40 +0000 (02:53 +0000)]
Update stuff

25 years agostuff
Art Cancro [Tue, 13 Oct 1998 00:57:43 +0000 (00:57 +0000)]
stuff

25 years agoimport.c is now serv_upgrade.c, a module (unfinished)
Art Cancro [Tue, 13 Oct 1998 00:57:07 +0000 (00:57 +0000)]
import.c is now serv_upgrade.c, a module (unfinished)

25 years agodynloader.c: Made dynamically added server commands case-insensitive
Art Cancro [Mon, 12 Oct 1998 23:14:46 +0000 (23:14 +0000)]
dynloader.c: Made dynamically added server commands case-insensitive

25 years ago * ipc_c_tcp.c: fix infinite loop on long line from server
Nathan Bryant [Mon, 12 Oct 1998 21:13:33 +0000 (21:13 +0000)]
    * ipc_c_tcp.c: fix infinite loop on long line from server

25 years ago * sysdep.c: fix infinite loop when long lines are received from the
Nathan Bryant [Mon, 12 Oct 1998 20:52:06 +0000 (20:52 +0000)]
    * sysdep.c: fix infinite loop when long lines are received from the
          client; fix exploitable buffer overrun in cprintf()

25 years agoKilled the "rooms" subdirectory (it isn't used anymore)
Art Cancro [Mon, 12 Oct 1998 19:29:29 +0000 (19:29 +0000)]
Killed the "rooms" subdirectory (it isn't used anymore)

25 years ago * Makefile.in: simplified to use pattern rules; files compiled with
Nathan Bryant [Mon, 12 Oct 1998 19:23:52 +0000 (19:23 +0000)]
    * Makefile.in: simplified to use pattern rules; files compiled with
          -D_REENTRANT go to *.ro to allow the same files to be used with both
          client and server
        * tools.c, tools.h: new files; misc routines used by both client and
          server go here. contains safestrncpy() at the moment.
        * rooms.c: fix several exploitable buffer overruns
        * .cvsignore: add *.ro

25 years agoIt's in there!
Art Cancro [Mon, 12 Oct 1998 03:45:44 +0000 (03:45 +0000)]
It's in there!

25 years agoBuilt some more of the message expiry infrastructure
Art Cancro [Mon, 12 Oct 1998 03:18:17 +0000 (03:18 +0000)]
Built some more of the message expiry infrastructure

25 years ago * citserver.c: fix two more overruns, one of which was preventing
Nathan Bryant [Sun, 11 Oct 1998 18:45:35 +0000 (18:45 +0000)]
    * citserver.c: fix two more overruns, one of which was preventing
          the "From Host" from showing up in the <W>ho listing.

25 years agoSet up data structures for room policies
Art Cancro [Sun, 11 Oct 1998 07:16:25 +0000 (07:16 +0000)]
Set up data structures for room policies

25 years agoMoved "struct visit" from citadel.h to server.h
Art Cancro [Sun, 11 Oct 1998 06:52:36 +0000 (06:52 +0000)]
Moved "struct visit" from citadel.h to server.h

25 years ago * citserver.c: fix overrun which caused segv's on servers with long
Nathan Bryant [Sat, 10 Oct 1998 15:28:54 +0000 (15:28 +0000)]
    * citserver.c: fix overrun which caused segv's on servers with long
          hostnames.

25 years ago * serv_chat.c: fix another overrun that could cause sessions to hang,
Nathan Bryant [Sat, 10 Oct 1998 03:03:13 +0000 (03:03 +0000)]
    * serv_chat.c: fix another overrun that could cause sessions to hang,
          and cleaned up some other strncpy()-related stuff. DON'T FORGET TO
          NULL-TERMINATE DESTINATION BUFFERS AFTER STRNCPY CALLS.

25 years agouser_ops.c: implemented NewMailCount()
Art Cancro [Fri, 9 Oct 1998 22:47:22 +0000 (22:47 +0000)]
user_ops.c: implemented NewMailCount()

25 years ago * user_ops.c: added PurgeStaleRelationships() to do processing at
Art Cancro [Fri, 9 Oct 1998 22:35:17 +0000 (22:35 +0000)]
    * user_ops.c: added PurgeStaleRelationships() to do processing at
          session logout time to remove visits for rooms which no longer exist

25 years ago * serv_chat.c: fix buffer overrun that was resulting in segv's
Nathan Bryant [Fri, 9 Oct 1998 19:20:03 +0000 (19:20 +0000)]
    * serv_chat.c: fix buffer overrun that was resulting in segv's

25 years ago * room_ops.c: modify CtdlRoomAccess() to allow access to mailbox rooms
Art Cancro [Fri, 9 Oct 1998 17:47:44 +0000 (17:47 +0000)]
    * room_ops.c: modify CtdlRoomAccess() to allow access to mailbox rooms
          only to their owners.

25 years agoNothing
Art Cancro [Fri, 9 Oct 1998 17:36:48 +0000 (17:36 +0000)]
Nothing

25 years ago * Implemented "lazy mode" traversal - pressing the space bar will do
Art Cancro [Fri, 9 Oct 1998 17:24:51 +0000 (17:24 +0000)]
    * Implemented "lazy mode" traversal - pressing the space bar will do
          <N>ext messsage, <G>oto next room, or read <N>ew as appropriate.

25 years ago * rooms.c: use mkfifo(3) instead of system("mkfifo")
Nathan Bryant [Fri, 9 Oct 1998 03:51:35 +0000 (03:51 +0000)]
    * rooms.c: use mkfifo(3) instead of system("mkfifo")

25 years ago * messages.c, citadel.rc: added the ability to display message numbers
Art Cancro [Thu, 8 Oct 1998 21:15:11 +0000 (21:15 +0000)]
    * messages.c, citadel.rc: added the ability to display message numbers
          in the header when reading messages.  I think this is butt ugly, but
          some of the DaveCode afficionados seem to like it...

25 years agoUh oh
Art Cancro [Thu, 8 Oct 1998 20:37:29 +0000 (20:37 +0000)]
Uh oh

25 years agoOops
Art Cancro [Thu, 8 Oct 1998 20:35:14 +0000 (20:35 +0000)]
Oops

25 years ago * room_ops.c: Added is_noneditable() function to replace all of the
Art Cancro [Thu, 8 Oct 1998 19:36:10 +0000 (19:36 +0000)]
    * room_ops.c: Added is_noneditable() function to replace all of the
          duplicated code present in all functions which edit room parameters.

25 years ago * lots of warning fixes; builds with -std1 on dec unix
Nathan Bryant [Thu, 8 Oct 1998 15:19:09 +0000 (15:19 +0000)]
    * lots of warning fixes; builds with -std1 on dec unix
        * aidepost.c, citadel.h, citmail.c, file_ops.c, msgbase.c, netmailer.c,           netproc.c, rcit.c, server.h, stats.c, userlist.c: use time_t where
          needed
        * control.c, room_ops.c, serv_chat.c, sysdep.c: use memset() instead of           bzero()
        * dynloader.c, dynloader.h, messages.c, server.h, sysdep.c,
          sysdep_decls.h: function pointer/prototyping fixes

25 years ago * client_chat.c, commands.c, serv_chat.c, sysdep.c:
Nathan Bryant [Thu, 8 Oct 1998 03:22:30 +0000 (03:22 +0000)]
    * client_chat.c, commands.c, serv_chat.c, sysdep.c:
          use HAVE_SYS_SELECT_H macro

25 years ago * snprintf.c, snprintf.h: new files
Nathan Bryant [Wed, 7 Oct 1998 23:46:11 +0000 (23:46 +0000)]
    * snprintf.c, snprintf.h: new files
        * Makefile.in, configure.in, dynloader.c, sysdep.c: support for the
          above; citserver now builds and runs on Digital Unix 4.0d with the
          GNU-style configure script. there is a bug with the hostname display
          in the wholist.
        * netproc.c: sillyness fix
        * room_ops.h: prototype delete_room()

25 years agoFixed stuff I broke.
Art Cancro [Tue, 6 Oct 1998 03:56:28 +0000 (03:56 +0000)]
Fixed stuff I broke.

25 years agoChangeover to new room structure. See ChangeLog for details.
Art Cancro [Mon, 5 Oct 1998 15:35:21 +0000 (15:35 +0000)]
Changeover to new room structure.  See ChangeLog for details.

25 years agoDon't automatically defrag databases on shutdown
Art Cancro [Mon, 5 Oct 1998 00:22:49 +0000 (00:22 +0000)]
Don't automatically defrag databases on shutdown

25 years ago * configure.in: autologin now defaults to disabled
Nathan Bryant [Fri, 2 Oct 1998 13:12:39 +0000 (13:12 +0000)]
    * configure.in: autologin now defaults to disabled

25 years ago * Finally removed all three usersupp.foo[MAXROOMS] elements, and
Art Cancro [Fri, 2 Oct 1998 04:06:25 +0000 (04:06 +0000)]
    * Finally removed all three usersupp.foo[MAXROOMS] elements, and
          migrated all the code that used them to use "struct visit" instead.

25 years ago * Rewrote [l][get|put]room() functions to use room names rather than
Art Cancro [Fri, 2 Oct 1998 03:03:38 +0000 (03:03 +0000)]
    * Rewrote [l][get|put]room() functions to use room names rather than
          room index numbers.  Temporarily prepended a "n" to these four
          function names until they are put to use.

25 years agoRemoved a few more references to usersupp.lastseen[]
Art Cancro [Thu, 1 Oct 1998 20:28:58 +0000 (20:28 +0000)]
Removed a few more references to usersupp.lastseen[]

25 years ago * configure.in: pass -pthread to DEC compiler, don't check for
Nathan Bryant [Thu, 1 Oct 1998 14:55:43 +0000 (14:55 +0000)]
    * configure.in: pass -pthread to DEC compiler, don't check for
          libpthread[s] on DEC Unix

25 years ago * .cvsignore: add so_locations (generated by osf1 ld with shared libs)
Nathan Bryant [Thu, 1 Oct 1998 14:17:27 +0000 (14:17 +0000)]
    * .cvsignore: add so_locations (generated by osf1 ld with shared libs)
        * Makefile.in: restructured variables for greater consistency, use
          @echo to print out notices during the make process, add so_locations
          to `cleaner'
        * configure.in, Makefile.in: configure checks for -rdynamic
        * ipc_c_tcp.c: fix DEC compiler warning wrt unsigned char
        * stats.c: add semicolon to placate DREC compiler
        * user_ops.c: define _POSIX_C_SOURCE, include <limits.h>

25 years ago * configure.in: don't use gcc on Digital Unix
Nathan Bryant [Wed, 30 Sep 1998 22:18:04 +0000 (22:18 +0000)]
    * configure.in: don't use gcc on Digital Unix

25 years agoinstall-sh: new file
Nathan Bryant [Wed, 30 Sep 1998 22:02:12 +0000 (22:02 +0000)]
install-sh: new file

25 years ago * config.guess, config.sub: new files
Nathan Bryant [Wed, 30 Sep 1998 21:48:40 +0000 (21:48 +0000)]
    * config.guess, config.sub: new files

25 years ago * Makefile.in: new variable PTHREAD_DEFS for portability
Nathan Bryant [Wed, 30 Sep 1998 20:38:21 +0000 (20:38 +0000)]
    * Makefile.in: new variable PTHREAD_DEFS for portability
        * aidepost.c, citadel.c, citmail.c, mailinglist.c, msgform.c,
          netmailer.c, netpoll.c, netproc.c, rcit.c, readlog.c, setup.c,
          stats.c, userlist.c, whobbs.c: return type of main() is int
        * citadel.c, commands.c, messages.c: use time_t properly
        * citserver.c: include <limits.h>

25 years ago * room_ops.c: modified usergoto() to look at the new data structures
Art Cancro [Wed, 30 Sep 1998 03:18:16 +0000 (03:18 +0000)]
    * room_ops.c: modified usergoto() to look at the new data structures
          for counting new messages and such.

25 years ago * Makefile.in: realclean removes config.{cache,log,status}
Nathan Bryant [Tue, 29 Sep 1998 22:44:48 +0000 (22:44 +0000)]
    * Makefile.in: realclean removes config.{cache,log,status}

25 years ago * configure.in, Makefile.in: only build the server if we find pthreads
Nathan Bryant [Tue, 29 Sep 1998 22:40:41 +0000 (22:40 +0000)]
    * configure.in, Makefile.in: only build the server if we find pthreads
* user_ops.c: include sysdep.h

25 years ago * user_ops.c: fix compiler warning and potential memory leak
Nathan Bryant [Tue, 29 Sep 1998 22:22:42 +0000 (22:22 +0000)]
    * user_ops.c: fix compiler warning and potential memory leak

25 years ago * Removed code from some of the utilities which was still attempting
Art Cancro [Tue, 29 Sep 1998 17:25:52 +0000 (17:25 +0000)]
    * Removed code from some of the utilities which was still attempting
          to access the old non-gdbm data store.
        * housekeeping.c: rewrote check_ref_counts() to do a ForEachRoom()
          traversal instead of a MAXROOMS loop.
        * sysdep.c: set up a dummy CitContext record to be used during server
          startup, during which time there is no real context.

25 years agoCommented some of the code that will need to be changed.
Art Cancro [Tue, 29 Sep 1998 14:24:24 +0000 (14:24 +0000)]
Commented some of the code that will need to be changed.

25 years ago * Implemented the function ForEachRoom() to handle all-rooms traversal
Art Cancro [Tue, 29 Sep 1998 03:54:42 +0000 (03:54 +0000)]
    * Implemented the function ForEachRoom() to handle all-rooms traversal
          (this will work with both the old and new paradigms, because both
          use a GDBM database with one room per record).  Migrated all room
          list commands to use it.

25 years agoAdded ForEachRoom()
Art Cancro [Tue, 29 Sep 1998 03:25:05 +0000 (03:25 +0000)]
Added ForEachRoom()

25 years ago * Implemented the function CtdlRoomAccess() to handle *all* of the
Art Cancro [Tue, 29 Sep 1998 02:07:27 +0000 (02:07 +0000)]
    * Implemented the function CtdlRoomAccess() to handle *all* of the
          user-access-to-rooms functionality.  Migrated all room list commands
          to use it.  Still need to migrate gotos.

25 years ago * configure.in, acconfig.h: new files; partially functional GNU
Nathan Bryant [Mon, 28 Sep 1998 23:57:37 +0000 (23:57 +0000)]
    * configure.in, acconfig.h: new files; partially functional GNU
          autoconf configure script. Run autoheader; autoconf; ./configure
          --prefix=`pwd` to test.
        * Makefile.tmpl: new file; this is what Makefile.in used to be. Used by
          Configure.
        * Makefile.in: modified to work with autoconf-style configure script
        * Configure: modified to use Makefile.tmpl and generate autoconf-style
          macros. Removed procfs detection. Pass -O2 to gcc, -O to other
          compilers. Removed mknod/mkfifo detection; code should use mkfifo(3).
        * citmail.c, msgform.c, netproc.c, routines.c, support.c, userlist.c,
          whobbs.c: use HAVE_STRERROR macro rather than NO_STRERROR
        * commands.c: use HAVE_TERMIOS_H macro rather than POSIX_TERMIO
        * netproc.c: remove procfs stuff. simply attempt to kill the target
          process with signal zero instead; this checks whether the process
          exists.
        * setup.c, useradmin.c: use HAVE_CURSES_H macro

25 years agoAdded V_ACCESS
Art Cancro [Mon, 28 Sep 1998 19:59:30 +0000 (19:59 +0000)]
Added V_ACCESS

25 years ago * BOTH the old and new generation systems are being written to at
Art Cancro [Mon, 28 Sep 1998 03:42:48 +0000 (03:42 +0000)]
    * BOTH the old and new generation systems are being written to at
          this point.  Code that reads stuff is still using the old system.

25 years agoDefined user/room relationships
Art Cancro [Mon, 28 Sep 1998 01:48:04 +0000 (01:48 +0000)]
Defined user/room relationships

25 years agoJust a quick update to .cvsignore
Art Cancro [Mon, 28 Sep 1998 01:32:21 +0000 (01:32 +0000)]
Just a quick update to .cvsignore

25 years ago * Changed all "generation" variables from char to long, in preparation
Art Cancro [Sun, 27 Sep 1998 20:38:27 +0000 (20:38 +0000)]
    * Changed all "generation" variables from char to long, in preparation
          for removing MAXROOMS.  Generations for new rooms are now timestamps.
        * Defined "struct visit" to hold user/room relationships.
        * Removed some #define's from citadel.h that are no longer used.

25 years ago * More changes to support attachments. They mostly work, but only
Art Cancro [Wed, 23 Sep 1998 17:43:54 +0000 (17:43 +0000)]
    * More changes to support attachments.  They mostly work, but only
          in fixed-format messages.

25 years agoMultipart attachments stuff. arrgh
Art Cancro [Wed, 23 Sep 1998 02:55:08 +0000 (02:55 +0000)]
Multipart attachments stuff.  arrgh

25 years agoCosmetic changes
Art Cancro [Wed, 23 Sep 1998 01:21:10 +0000 (01:21 +0000)]
Cosmetic changes

25 years agoAttachments continued...
Art Cancro [Tue, 22 Sep 1998 20:29:11 +0000 (20:29 +0000)]
Attachments continued...