Art Cancro [Tue, 4 Aug 1998 02:55:25 +0000 (02:55 +0000)]
Oof. Here it is: the beginning of our server-side API. This commit is just
a couple of basic functions to get information about user records. The initial
plan is to get enough functionality in place to write a new version of the
auto-purger (the code that automatically deletes users who haven't called in
a while) using the API.
Nathan Bryant [Mon, 3 Aug 1998 01:11:13 +0000 (01:11 +0000)]
Sun Aug 2 21:09:09 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* config_defs.h: renamed to config_decls.h
* config.c, sysoputil.c: updated to reflect the above
Nathan Bryant [Sun, 2 Aug 1998 22:56:39 +0000 (22:56 +0000)]
Sun Aug 2 18:52:05 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* config_defs.h: new file, contains external declarations from config.c
* config.c: moved defs to config_defs.h, use PATH_MAX from <limits.h>
for bbs_home_directory
* mailinglist.c, support.c: include <string.h>
* sysoputil.c: include <string.h>, <limits.h>, "config_defs.h", remove
duplicated defs, replace gets() call with fgets()
* user_ops.c: define _XOPEN_SOURCE_EXTENDED
Art Cancro [Thu, 30 Jul 1998 00:50:11 +0000 (00:50 +0000)]
Changed all of the proprietary strucmp() and struncmp() calls to the more
standardized strcasecmp() and strncasecmp(), EXCEPT in the client. The client
was left alone in order to allow it to be more portable -- strcasecmp() is
on most systems these days, but it's still not universal.
Art Cancro [Tue, 28 Jul 1998 16:55:50 +0000 (16:55 +0000)]
Call bzero() on newly allocated CitContext structs. Hopefully this will
clear up the garbaged-wholist problem. (Applied this fix to the stable code
on Uncensored also)
Art Cancro [Mon, 27 Jul 1998 03:32:55 +0000 (03:32 +0000)]
Converted send_message() to accept a memory buffer rather than the name of
a temporary file. The temporary file is still there, however -- the buffer
read is now done in save_message() instead. But we're one step closer to
removing the temporary file. Now we have to convert save_message() (not a
big deal) and all of its callers (somewhat more involved).
Art Cancro [Sun, 26 Jul 1998 23:52:09 +0000 (23:52 +0000)]
This is a program which imports "exported" Citadel databases. It will be used
primarily for Citadel5->Citadel6 migration, and perhaps to change database
managers on an existing system. (There is an "export5" utility for Citadel 5,
and this import utility works on Citadel 6. Therefore, the migration works,
but until an import utility is written for Citadel 6, the changing of
database managers isn't possible yet. That probably won't be a big deal,
though, because after I discovered that the inflated message base size problem
was due to the netproc bug rather than poor GDBM implementation, we'll probably
stick with GDBM. Indeed, GDBM is _exceptionally_ efficient with disk!
Art Cancro [Sun, 26 Jul 1998 23:48:14 +0000 (23:48 +0000)]
Fixed a bug which was here even before we started the groupware project: in
the inprocess() section of netproc.c, the sizes of incoming messages were
being miscalculated. This caused significantly inflated (and possibly
corrupted) messages to be transmitted to the local Citadel server. Symptoms
included lots of "Error trying to read 255 bytes" messages in the netproc log,
and (when using the GDBM-based development code) unacceptably large message
base sizes. Now the bug is fixed and correct message sizes are being
calculated - using a more efficient algorithm, even. I can envision one more
optimization, though: buffer the incoming messages in memory instead of
holding them in a temp file. Perhaps next time...
Art Cancro [Fri, 24 Jul 1998 03:02:20 +0000 (03:02 +0000)]
Used a call to stat() instead of fseek()/ftell() to measure messages being
saved. This will eventually be replaced again when there are no temporary
files being used anymore.
Sun Jul 19 17:26:12 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* ChangeLog: reordered; the GNU standard is to add new entries to the
top.
* .cvsignore: added userlist
Art Cancro [Fri, 17 Jul 1998 04:38:03 +0000 (04:38 +0000)]
These are the changes to eliminate most of the arbitrary limits in the
system, such as the maximum number of messages in a room, or the maximum
number of messages in a user mailbox.
The only remaining arbitrary limits are the number of room slots in the
system (MAXROOMS) and the number of floor slots (MAXFLOORS). I don't know if
we'll be able to nix those.
Right now, rooms and mailboxes will grow infinitely. We now have to impement
artificial constraints.
Art Cancro [Mon, 13 Jul 1998 03:24:19 +0000 (03:24 +0000)]
Since it is no longer possible for the utilities to access the data files
directly, they all have to be reworked to talk to the server instead. This
version of userlist does that.
Art Cancro [Sun, 12 Jul 1998 23:59:18 +0000 (23:59 +0000)]
Brian Costello implemented a bunch of new commands, but for some reason,
access to these commands never made it into the development tree. This new
citadel.rc contains them.
Art Cancro [Sun, 12 Jul 1998 22:37:30 +0000 (22:37 +0000)]
This is part of the server core. It contains code relating to the writing
of log records (stuff that goes in citadel.log). It's not very big right
now, but I put it into its own file so that we can potentially do more with
it later.
Brian Costello [Sun, 12 Jul 1998 21:56:30 +0000 (21:56 +0000)]
Technical domument / RFC - CHAT SUBSYSTEM SPECIFICATION
-------------------------------------------------------
This document should outline the basic idea of my chat subsystem proposal.
This should only be thought of as an RFC; all comments and discussions are
welcome.
Art Cancro [Sun, 12 Jul 1998 21:38:11 +0000 (21:38 +0000)]
Changed logging mechanism from a circular binary file to a text file. The
file is still intended to be read by other programs, not by humans, but the
format should be more straightforward at this time.
Art Cancro [Sun, 12 Jul 1998 20:34:10 +0000 (20:34 +0000)]
Finished all of the code relating to the "global server info" stuff defined
in control.c. The file "citadel.control" is the file that used to be called
"MMstructure", and "struct CitControl" used to be "struct msgmain".
Also, the user number is now called "usernum" rather than "eternal", and
the highest existing user number is now stored in citadel.control rather than
in its own file.