citadel.control
userlist
citadel.log
+data
+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
+
Mon Sep 14 20:49:08 EDT 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
* Tried my hand at adding the ability for server extensions to
register various types of "hooks" in addition to just adding
locate_host.o: locate_host.c citadel.h sysdep.h sysconfig.h ipcdef.h server.h
$(CC) $(CFLAGS) -D_REENTRANT -c locate_host.c
-$(MODDIR)/serv_chat.so: serv_chat.o support.o
- $(CC) -shared -o $(MODDIR)/serv_chat.so serv_chat.o support.o
+$(MODDIR)/serv_chat.so: serv_chat.o
+ $(CC) -shared -o $(MODDIR)/serv_chat.so serv_chat.o
serv_chat.o: serv_chat.c citadel.h sysdep.h sysconfig.h ipcdef.h server.h
- $(CC) $(CFLAGS) -D_REENTRANT -c serv_chat.c
+ $(CC) $(CFLAGS) -D_REENTRANT -fPIC -c serv_chat.c
housekeeping.o: housekeeping.c citadel.h sysdep.h sysconfig.h ipcdef.h server.h
$(CC) $(CFLAGS) -D_REENTRANT -c housekeeping.c
#include "dynloader.h"
#include "citadel.h"
#include "server.h"
+#include "sysdep_decls.h"
symtab *global_symtab;
if (t_sym)
{
- if (!(fcn_handle = dlopen(t_sym->module_path, RTLD_LAZY)))
+ if (!(fcn_handle = dlopen(t_sym->module_path, RTLD_NOW)))
{
dl_error = dlerror();
syslog(LOG_NOTICE, "WARNING: module %s failed to load", t_sym->module_path);
filename = strdup(dptr->d_name);
snprintf(pathbuf, 512, "%s/%s", pathname, filename);
- if (!(fcn_handle = dlopen(pathbuf, RTLD_LAZY)))
+ if (!(fcn_handle = dlopen(pathbuf, RTLD_NOW)))
{
dl_error = dlerror();
fprintf(stderr, "DLoader_Init dlopen failed (%s)", dl_error);
void DLoader_Init(char *pathname, symtab **);
int DLoader_Exec_Cmd(char *cmdbuf);
void add_symbol(char *fcn_name, char *server_cmd, char *info_msg, symtab **);
+void CtdlRegisterHook(void *fcn_ptr, int fcn_type);