Art Cancro [Tue, 22 Sep 1998 02:35:03 +0000 (02:35 +0000)]
More changes to get attachments working.
Art Cancro [Tue, 22 Sep 1998 01:20:32 +0000 (01:20 +0000)]
* msgbase.c: began laying the groundwork to support attachments.
Purchased Rogaine(tm) in preparation for expected hair loss.
Nathan Bryant [Mon, 21 Sep 1998 17:36:39 +0000 (17:36 +0000)]
* dynloader.h: prototype CtdlRegisterUserHook()
Nathan Bryant [Mon, 21 Sep 1998 17:17:42 +0000 (17:17 +0000)]
* msgbase.c: include dynloader.h
* citadelapi.h: removed
Art Cancro [Sun, 20 Sep 1998 22:57:38 +0000 (22:57 +0000)]
* Added a UserFunctionHook category to implement hooks which perform
operations on various users or usernames
Art Cancro [Sat, 19 Sep 1998 03:56:21 +0000 (03:56 +0000)]
Minor client change to keep stale temp files off the disk.
Art Cancro [Sat, 19 Sep 1998 01:15:58 +0000 (01:15 +0000)]
citserver.c: removed cmd_extn() and related code
Nathan Bryant [Fri, 18 Sep 1998 19:18:08 +0000 (19:18 +0000)]
* Configure, Makefile.in: autodependency-related fixes
Nathan Bryant [Fri, 18 Sep 1998 19:07:32 +0000 (19:07 +0000)]
* Makefile.in: autodependency-related fixes
Nathan Bryant [Fri, 18 Sep 1998 15:39:03 +0000 (15:39 +0000)]
* roomstats.{c,mk}: removed
Nathan Bryant [Fri, 18 Sep 1998 15:33:45 +0000 (15:33 +0000)]
* user_ops.c: include dynloader.h
Art Cancro [Fri, 18 Sep 1998 02:56:19 +0000 (02:56 +0000)]
* Various changes to allow "new messages" to work correctly with Mail
Nathan Bryant [Fri, 18 Sep 1998 02:47:24 +0000 (02:47 +0000)]
* roomstats.c: include <stdarg.h> not <stdargs.h> (is this file still
in use?)
* Configure, Makefile.in: added autodependency support
Art Cancro [Fri, 18 Sep 1998 02:23:09 +0000 (02:23 +0000)]
* server.h, dynloader.c, citserver.c, user_ops.c: reduced the number
of hook types by inventing an EventType field to the Session hook.
* proxy.c: added pre-fetching
Nathan Bryant [Thu, 17 Sep 1998 22:02:12 +0000 (22:02 +0000)]
* Makefile.in: add SERV_MODULES and PROXY_TARGETS to `cleaner'
* dynloader.[ch], serv_{chat,test}.[ch], sysdep.c: cleaned
up the dynamic loader interface as follows:
- all the symbol table stuff is gone.
- modules are loaded once at server startup and never unloaded.
- Added a new function CtdlRegisterProtoHook() to handle the stuff
that was being done with the symbol tables.
- Dynamic_Module_Init() now returns a pointer to a static struct
DLModule_Info; this structure itself has been modified to use char*
fields instead of fixed char arrays.
Art Cancro [Thu, 17 Sep 1998 17:28:49 +0000 (17:28 +0000)]
Pre-caching proxy.
Nathan Bryant [Thu, 17 Sep 1998 03:39:31 +0000 (03:39 +0000)]
* hooks.h: removed
* sysdep.c, user_ops.c: removed reference to hooks.h
Art Cancro [Thu, 17 Sep 1998 02:27:21 +0000 (02:27 +0000)]
*** empty log message ***
Art Cancro [Thu, 17 Sep 1998 02:26:17 +0000 (02:26 +0000)]
* Implemented separate structs, lists, and functions for each type
of server-side hook available.
Nathan Bryant [Wed, 16 Sep 1998 17:38:38 +0000 (17:38 +0000)]
* ipc_c_tcp.c: Fixed up some #include/prototyping stuff, call memcpy()
instead of bcopy()
Art Cancro [Wed, 16 Sep 1998 16:16:36 +0000 (16:16 +0000)]
*** empty log message ***
Art Cancro [Wed, 16 Sep 1998 16:14:56 +0000 (16:14 +0000)]
Donut spark?
Art Cancro [Wed, 16 Sep 1998 15:44:43 +0000 (15:44 +0000)]
* ipc_c_tcp.c: Reversed any changes that have been made to this file,
because something was causing abominally slow response time.
* proxy.c: added. This will eventually become a caching, pre-fetching
multiuser proxy server for the Citadel protocol.
Nathan Bryant [Tue, 15 Sep 1998 21:16:59 +0000 (21:16 +0000)]
1998-09-15 Nathan Bryant <bryant@cs.usm.maine.edu>
* Makefile.in: remove support.o from serv_chat.so, add -fPIC to compile
flags for serv_chat.o
* dynloader.c: include "sysdep_decls.h", use RTLD_NOW not RTLD_LAZY
* dynloader.h: prototype CtdlRegisterHook()
* .cvsignore: added data
Art Cancro [Tue, 15 Sep 1998 19:59:52 +0000 (19:59 +0000)]
Added proxy.c
Art Cancro [Tue, 15 Sep 1998 00:50:14 +0000 (00:50 +0000)]
* Tried my hand at adding the ability for server extensions to
register various types of "hooks" in addition to just adding
server commands. This is probably not final.
Art Cancro [Tue, 8 Sep 1998 16:12:45 +0000 (16:12 +0000)]
* Added support for dynamic server modules. Reworked serv_chat.c
to be such a module.
Brian Costello [Tue, 8 Sep 1998 16:09:11 +0000 (16:09 +0000)]
Damn CVS. This should have the unlimited extra commands thing in here.
I'll get CVS working someday.
Brian Costello [Tue, 8 Sep 1998 03:16:52 +0000 (03:16 +0000)]
A module which conforms to the initial module spec.
Brian Costello [Tue, 8 Sep 1998 03:16:02 +0000 (03:16 +0000)]
Dynloader initialization added
Brian Costello [Tue, 8 Sep 1998 03:13:39 +0000 (03:13 +0000)]
The dynloader.c header
Brian Costello [Tue, 8 Sep 1998 03:13:21 +0000 (03:13 +0000)]
The dynamic loader module which should have already been there (?)
Brian Costello [Sun, 6 Sep 1998 01:46:35 +0000 (01:46 +0000)]
Added module stuff.
Art Cancro [Thu, 3 Sep 1998 15:58:35 +0000 (15:58 +0000)]
Minor changes to some of the documentation.
Art Cancro [Thu, 3 Sep 1998 15:01:41 +0000 (15:01 +0000)]
readlog.c: small patch to prevent core dumps when reading certain records
Art Cancro [Wed, 2 Sep 1998 03:12:10 +0000 (03:12 +0000)]
* userpurge.c: rewrote using functions from the server core, rather
than the now-defunct external API. This'll be ready once the module
loading code is done. (I just had to commit _something_ tonight.)
Art Cancro [Tue, 1 Sep 1998 02:52:23 +0000 (02:52 +0000)]
more of the same
Art Cancro [Tue, 1 Sep 1998 02:50:53 +0000 (02:50 +0000)]
* Yanked the citadelapi.c module. This wasn't working out well.
* techdocs/citadelapi.txt - began documenting the new API to be used
by modules which will be dynamic linked into the server - most of
this API is existing server functions.
* Added a ForEachUser() function with callback mechanism, and reworked
cmd_list() to use it.
Art Cancro [Mon, 31 Aug 1998 01:54:21 +0000 (01:54 +0000)]
Moved all of the gdbm databases to a separate "data" directory.
Nathan Bryant [Thu, 27 Aug 1998 01:08:40 +0000 (01:08 +0000)]
*** empty log message ***
Nathan Bryant [Thu, 27 Aug 1998 01:06:07 +0000 (01:06 +0000)]
realclean removes Makefile, fixed `touch citadel.h' problem
Nathan Bryant [Wed, 26 Aug 1998 21:38:38 +0000 (21:38 +0000)]
*** empty log message ***
Brian Costello [Wed, 26 Aug 1998 19:50:39 +0000 (19:50 +0000)]
*** empty log message ***
Brian Costello [Wed, 26 Aug 1998 05:26:46 +0000 (05:26 +0000)]
[aug 25 btx]
o Added code to dynamically spawn the three commands in serv_chat.
o This is only a basic framework - I just wanted to commit it quickly before
someone else screwed me over :)
Brian Costello [Wed, 26 Aug 1998 05:24:54 +0000 (05:24 +0000)]
[aug 25 btx]
o Made small change to allow for modularization
Nathan Bryant [Wed, 26 Aug 1998 00:38:52 +0000 (00:38 +0000)]
removed duplicated declarations
Nathan Bryant [Tue, 25 Aug 1998 23:52:30 +0000 (23:52 +0000)]
remove duplicated declarations
Nathan Bryant [Tue, 25 Aug 1998 23:38:02 +0000 (23:38 +0000)]
remove duplicated declarations
Nathan Bryant [Tue, 25 Aug 1998 23:28:50 +0000 (23:28 +0000)]
remove duplicated declarations
Nathan Bryant [Tue, 25 Aug 1998 23:23:44 +0000 (23:23 +0000)]
remove duplicated declarations
Nathan Bryant [Tue, 25 Aug 1998 23:15:05 +0000 (23:15 +0000)]
*** empty log message ***
Nathan Bryant [Tue, 25 Aug 1998 23:13:54 +0000 (23:13 +0000)]
include time.h
Art Cancro [Tue, 25 Aug 1998 03:51:09 +0000 (03:51 +0000)]
* setup.c: Removed yesno_s()
* citadel.h, room_ops.c: added QRmtime field to struct quickroom,
modified whenever a room is modified or posted in.
* citadelapi.c: Added CtdlForEachRoom() function
Nathan Bryant [Tue, 25 Aug 1998 00:34:03 +0000 (00:34 +0000)]
Mon Aug 24 20:04:04 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* Makefile.in: new target `cleaner' does the same as `realclean'
without removing sysdep.h
* proto.h: is bad. eliminate. I've moved the prototypes into several
header files, one per .c file
Art Cancro [Mon, 24 Aug 1998 04:46:53 +0000 (04:46 +0000)]
* Added a CtdlGotoRoom() function to the CitadelAPI.
Art Cancro [Mon, 24 Aug 1998 01:48:31 +0000 (01:48 +0000)]
* sysoputil is finally dead! Removed it from the build.
* Added userpurge.c server extension (initial implementation)
Art Cancro [Tue, 18 Aug 1998 15:49:08 +0000 (15:49 +0000)]
Small changes to the code to delete a user.
Nathan Bryant [Tue, 18 Aug 1998 13:43:13 +0000 (13:43 +0000)]
DR19980818
Nathan Bryant [Tue, 18 Aug 1998 04:53:01 +0000 (04:53 +0000)]
forgot Configure
Nathan Bryant [Tue, 18 Aug 1998 04:50:10 +0000 (04:50 +0000)]
Tue Aug 18 00:42:33 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* Makefile.in: `clean' target no longer rm's sysdep.h; new target
`realclean' removes everything clean does, plus sysdep.h, plus
target binaries.
* *.[ch]: protoized. Added several new header files containing
prototypes and other external declarations; many duplicated
declarations still should be moved to header files. proto.h must die
as well, IMHO.
Art Cancro [Tue, 18 Aug 1998 03:53:02 +0000 (03:53 +0000)]
* Implemented a bunch of user account related functions in the
CitadelAPI library.
Art Cancro [Tue, 18 Aug 1998 00:03:11 +0000 (00:03 +0000)]
* Fixed the crash problem. It wasn't AGUP/ASUP, but rather a buffer
overrun in getuser() (thanks, Nathan). Implemented overrun checks
in getuser(), getroom(), and getfloor() to prevent future problems.
Art Cancro [Mon, 17 Aug 1998 04:08:48 +0000 (04:08 +0000)]
* Updated citmail.c with the latest stuff from the production system.
* Implemented AGUP and ASUP commands, but AGUP crashes the server
after its first successful use (user-not-found's don't affect it).
Haven't figured this one out yet...
Art Cancro [Wed, 12 Aug 1998 02:58:45 +0000 (02:58 +0000)]
Added the EXTN command in a temporary form to run server extensions, but
there's a bug in it for some reason, that after you successfully run an
extension, the next server command crashes the server. This needs to be
fixed...
Art Cancro [Thu, 6 Aug 1998 23:27:02 +0000 (23:27 +0000)]
Got the CitadelAPI library to the point where the server can start
up an extension, and the extension will connect to the server, do
some initialization, call a user-supplied CtdlMain(), and exit. Also
hacked together a _temporary_ form of the new EXTN server command.
Art Cancro [Thu, 6 Aug 1998 03:03:45 +0000 (03:03 +0000)]
Second attempt at getting the server API started. Now it runs
outside of the server and builds a connection.
Art Cancro [Wed, 5 Aug 1998 02:47:04 +0000 (02:47 +0000)]
Eliminated the logged_time and time_limit stuff. Since the code which handles
the db records is written to pad "short" records with nulls, we can add these
at any time later on.
Art Cancro [Wed, 5 Aug 1998 02:40:27 +0000 (02:40 +0000)]
*** empty log message ***
Art Cancro [Wed, 5 Aug 1998 02:39:39 +0000 (02:39 +0000)]
Changes required in order to handle the new translation paradigm for Internet
addresses being converted into Citadel addresses. Also cleaned up citmail.c
to not look at any local databases, but instead feed blindly into netproc.
Art Cancro [Tue, 4 Aug 1998 22:34:04 +0000 (22:34 +0000)]
*** empty log message ***
Art Cancro [Tue, 4 Aug 1998 22:32:56 +0000 (22:32 +0000)]
Altered the translation of incoming Internet e-mail addresses to Citadel
addresses.
Removed the <E> field from the message format. It doesn't work.
Art Cancro [Tue, 4 Aug 1998 22:32:42 +0000 (22:32 +0000)]
Altered the translation of incoming Internet e-mail addresses to Citadel
addresses.
Art Cancro [Tue, 4 Aug 1998 03:04:48 +0000 (03:04 +0000)]
Umm...
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.
Art Cancro [Tue, 4 Aug 1998 02:18:42 +0000 (02:18 +0000)]
Start of documentation for server extension API
Art Cancro [Tue, 4 Aug 1998 01:31:30 +0000 (01:31 +0000)]
Gotta add LS to the mix! I'm not quite sure how the copyright is supposed to
get phrased on a bazaar project though.
Nathan Bryant [Mon, 3 Aug 1998 01:57:56 +0000 (01:57 +0000)]
*** empty log message ***
Nathan Bryant [Mon, 3 Aug 1998 01:48:33 +0000 (01:48 +0000)]
Added config_decls.h to dependencies
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
Nathan Bryant [Sat, 1 Aug 1998 22:36:00 +0000 (22:36 +0000)]
.cvsignore: added citadel.log
Nathan Bryant [Sat, 1 Aug 1998 22:33:57 +0000 (22:33 +0000)]
Sat Aug 1 18:32:52 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
* ipc_c_tcp.c: fixed order of memcpy parameters after gethostbyname
Art Cancro [Fri, 31 Jul 1998 01:12:16 +0000 (01:12 +0000)]
Prettied up the verbose version of the wholist.
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 [Wed, 29 Jul 1998 03:43:05 +0000 (03:43 +0000)]
Fixed a bug which caused the server to crash when reading a message in
"headers only" mode.
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.
Art Cancro [Fri, 24 Jul 1998 01:23:28 +0000 (01:23 +0000)]
useradmin doesn't work
Art Cancro [Fri, 24 Jul 1998 01:21:41 +0000 (01:21 +0000)]
No more pwcrypt
Art Cancro [Fri, 24 Jul 1998 01:16:58 +0000 (01:16 +0000)]
Removed all of the "pwcrypt" stuff. The algorithm was so pathetic it was
completely worthless.
Huh?
Art Cancro [Fri, 24 Jul 1998 01:16:49 +0000 (01:16 +0000)]
Removed all of the "pwcrypt" stuff. The algorithm was so pathetic it was
completely worthless.
Nathan Bryant [Sun, 19 Jul 1998 21:27:42 +0000 (21:27 +0000)]
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 [Sat, 18 Jul 1998 05:32:39 +0000 (05:32 +0000)]
Doco mods
Art Cancro [Sat, 18 Jul 1998 05:24:08 +0000 (05:24 +0000)]
Y'know, the utils are probably all going to eventually go away in favour of
server-side administration tools.
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 [Thu, 16 Jul 1998 00:24:36 +0000 (00:24 +0000)]
Updating the structures to reflect variables we don't need anymore.
This Will Happen Again.
Art Cancro [Tue, 14 Jul 1998 03:26:04 +0000 (03:26 +0000)]
yeesh