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()
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.
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>
* 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>
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.
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.
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.
* 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
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.
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
* 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 [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.
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 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 [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: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.
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 :)
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
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 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.