serv_mrtg.o \
serv_imap.o imap_fetch.o imap_misc.o imap_search.o \
imap_store.o imap_tools.o \
+ serv_fulltext.o ft_wordbreaker.o \
serv_network.o \
serv_listsub.o \
serv_netfilter.o \
serv_spam.c serv_test.c serv_mrtg.c serv_spam.c serv_upgrade.c \
serv_vandelay.c serv_vcard.c server_main.c setup.c snprintf.c \
stress.c support.c sysdep.c tools.c user_ops.c userlist.c \
- whobbs.c vcard.c serv_notes.c
+ whobbs.c vcard.c serv_notes.c serv_fulltext.c ft_wordbreaker.c
DEP_FILES=$(SOURCES:.c=.d)
--- /dev/null
+/*
+ * $Id$
+ *
+ * Default wordbreaker module for full text indexing.
+ *
+ */
+
+
+#include "sysdep.h"
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pwd.h>
+#include <errno.h>
+#include <sys/types.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
+#include <sys/wait.h>
+#include <string.h>
+#include <limits.h>
+#include "citadel.h"
+#include "server.h"
+#include "sysdep_decls.h"
+#include "citserver.h"
+#include "support.h"
+#include "config.h"
+#include "serv_extensions.h"
+#include "database.h"
+#include "msgbase.h"
+#include "control.h"
+#include "tools.h"
+#include "ft_wordbreaker.h"
+
+
--- /dev/null
+ft_wordbreaker.o ft_wordbreaker/.o ft_wordbreaker.d: ft_wordbreaker.c sysdep.h /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/sys/cdefs.h \
+ /usr/include/gnu/stubs.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/stddef.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/sched.h /usr/include/alloca.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+ /usr/include/gconv.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/fcntl.h /usr/include/bits/fcntl.h /usr/include/signal.h \
+ /usr/include/bits/signum.h /usr/include/bits/siginfo.h \
+ /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+ /usr/include/asm/sigcontext.h /usr/include/bits/sigstack.h \
+ /usr/include/bits/sigthread.h /usr/include/pwd.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/sys/time.h \
+ /usr/include/sys/wait.h /usr/include/sys/resource.h \
+ /usr/include/bits/resource.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/string.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/limits.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h citadel.h sysconfig.h typesize.h \
+ ipcdef.h server.h /usr/include/openssl/ssl.h \
+ /usr/include/openssl/e_os2.h /usr/include/openssl/opensslconf.h \
+ /usr/include/openssl/opensslconf-i386.h /usr/include/openssl/comp.h \
+ /usr/include/openssl/crypto.h /usr/include/openssl/stack.h \
+ /usr/include/openssl/safestack.h /usr/include/openssl/opensslv.h \
+ /usr/include/openssl/symhacks.h /usr/include/openssl/bio.h \
+ /usr/include/openssl/x509.h /usr/include/openssl/buffer.h \
+ /usr/include/openssl/evp.h /usr/include/openssl/ossl_typ.h \
+ /usr/include/openssl/md2.h /usr/include/openssl/md4.h \
+ /usr/include/openssl/md5.h /usr/include/openssl/sha.h \
+ /usr/include/openssl/ripemd.h /usr/include/openssl/des.h \
+ /usr/include/openssl/des_old.h /usr/include/openssl/ui_compat.h \
+ /usr/include/openssl/ui.h /usr/include/openssl/rc4.h \
+ /usr/include/openssl/rc2.h /usr/include/openssl/blowfish.h \
+ /usr/include/openssl/cast.h /usr/include/openssl/aes.h \
+ /usr/include/openssl/rsa.h /usr/include/openssl/asn1.h \
+ /usr/include/openssl/bn.h /usr/include/openssl/dsa.h \
+ /usr/include/openssl/dh.h /usr/include/openssl/objects.h \
+ /usr/include/openssl/obj_mac.h /usr/include/openssl/x509_vfy.h \
+ /usr/include/openssl/lhash.h /usr/include/openssl/pkcs7.h \
+ /usr/include/openssl/kssl.h /usr/include/openssl/pem.h \
+ /usr/include/openssl/pem2.h /usr/include/openssl/ssl2.h \
+ /usr/include/openssl/ssl3.h /usr/include/openssl/tls1.h \
+ /usr/include/openssl/ssl23.h sysdep_decls.h /usr/include/pthread.h \
+ /usr/include/sched.h /usr/include/bits/initspin.h citserver.h \
+ serv_extensions.h support.h config.h database.h msgbase.h control.h \
+ tools.h ft_wordbreaker.h
--- /dev/null
+/*
+ * $Id$
+ *
+ */
+
+
+/*
+ * This is an ID for the wordbreaker module. If we do pluggable wordbreakers
+ * later on, or even if we update this one, we can use a different ID so the
+ * system knows it needs to throw away the existing index and rebuild it.
+ */
+#define FT_WORDBREAKER_ID 0x0001
serv_upgrade_init();
serv_vandelay_init();
serv_vcard_init();
+ serv_fulltext_init();
}
--- /dev/null
+/*
+ * $Id$
+ *
+ * This module handles fulltext indexing of the message base.
+ *
+ */
+
+
+#include "sysdep.h"
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pwd.h>
+#include <errno.h>
+#include <sys/types.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
+#include <sys/wait.h>
+#include <string.h>
+#include <limits.h>
+#include "citadel.h"
+#include "server.h"
+#include "sysdep_decls.h"
+#include "citserver.h"
+#include "support.h"
+#include "config.h"
+#include "serv_extensions.h"
+#include "database.h"
+#include "msgbase.h"
+#include "control.h"
+#include "tools.h"
+#include "serv_fulltext.h"
+#include "ft_wordbreaker.h"
+
+
+void do_fulltext_indexing(void) {
+ lprintf(CTDL_DEBUG, "do_fulltext_indexing() started\n");
+
+ /*
+ * Check to see whether the fulltext index is up to date; if there
+ * are no messages to index, don't waste any more time trying.
+ */
+ lprintf(CTDL_DEBUG, "CitControl.MMhighest = %ld\n", CitControl.MMhighest);
+ lprintf(CTDL_DEBUG, "CitControl.MMfulltext = %ld\n", CitControl.MMfulltext);
+ if (CitControl.MMfulltext >= CitControl.MMhighest) {
+ lprintf(CTDL_DEBUG, "Nothing to do!\n");
+ return;
+ }
+
+ /*
+ * If we've switched wordbreaker modules, burn the index and start
+ * over. FIXME write this...
+ */
+
+
+ lprintf(CTDL_DEBUG, "do_fulltext_indexing() finished\n");
+ return;
+}
+
+
+/*****************************************************************************/
+
+char *serv_fulltext_init(void)
+{
+ CtdlRegisterSessionHook(do_fulltext_indexing, EVT_TIMER);
+ return "$Id$";
+}
--- /dev/null
+serv_fulltext.o serv_fulltext/.o serv_fulltext.d: serv_fulltext.c sysdep.h /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/sys/cdefs.h \
+ /usr/include/gnu/stubs.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/stddef.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/bits/sched.h /usr/include/alloca.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/confname.h \
+ /usr/include/getopt.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+ /usr/include/gconv.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/fcntl.h /usr/include/bits/fcntl.h /usr/include/signal.h \
+ /usr/include/bits/signum.h /usr/include/bits/siginfo.h \
+ /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \
+ /usr/include/asm/sigcontext.h /usr/include/bits/sigstack.h \
+ /usr/include/bits/sigthread.h /usr/include/pwd.h /usr/include/errno.h \
+ /usr/include/bits/errno.h /usr/include/linux/errno.h \
+ /usr/include/asm/errno.h /usr/include/sys/time.h \
+ /usr/include/sys/wait.h /usr/include/sys/resource.h \
+ /usr/include/bits/resource.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/string.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/limits.h \
+ /usr/lib/gcc/i386-redhat-linux/3.4.2/include/syslimits.h \
+ /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+ /usr/include/bits/posix2_lim.h citadel.h sysconfig.h typesize.h \
+ ipcdef.h server.h /usr/include/openssl/ssl.h \
+ /usr/include/openssl/e_os2.h /usr/include/openssl/opensslconf.h \
+ /usr/include/openssl/opensslconf-i386.h /usr/include/openssl/comp.h \
+ /usr/include/openssl/crypto.h /usr/include/openssl/stack.h \
+ /usr/include/openssl/safestack.h /usr/include/openssl/opensslv.h \
+ /usr/include/openssl/symhacks.h /usr/include/openssl/bio.h \
+ /usr/include/openssl/x509.h /usr/include/openssl/buffer.h \
+ /usr/include/openssl/evp.h /usr/include/openssl/ossl_typ.h \
+ /usr/include/openssl/md2.h /usr/include/openssl/md4.h \
+ /usr/include/openssl/md5.h /usr/include/openssl/sha.h \
+ /usr/include/openssl/ripemd.h /usr/include/openssl/des.h \
+ /usr/include/openssl/des_old.h /usr/include/openssl/ui_compat.h \
+ /usr/include/openssl/ui.h /usr/include/openssl/rc4.h \
+ /usr/include/openssl/rc2.h /usr/include/openssl/blowfish.h \
+ /usr/include/openssl/cast.h /usr/include/openssl/aes.h \
+ /usr/include/openssl/rsa.h /usr/include/openssl/asn1.h \
+ /usr/include/openssl/bn.h /usr/include/openssl/dsa.h \
+ /usr/include/openssl/dh.h /usr/include/openssl/objects.h \
+ /usr/include/openssl/obj_mac.h /usr/include/openssl/x509_vfy.h \
+ /usr/include/openssl/lhash.h /usr/include/openssl/pkcs7.h \
+ /usr/include/openssl/kssl.h /usr/include/openssl/pem.h \
+ /usr/include/openssl/pem2.h /usr/include/openssl/ssl2.h \
+ /usr/include/openssl/ssl3.h /usr/include/openssl/tls1.h \
+ /usr/include/openssl/ssl23.h sysdep_decls.h /usr/include/pthread.h \
+ /usr/include/sched.h /usr/include/bits/initspin.h citserver.h \
+ serv_extensions.h support.h config.h database.h msgbase.h control.h \
+ tools.h serv_fulltext.h ft_wordbreaker.h
--- /dev/null
+/*
+ * $Id$
+ *
+ */
+
+char *serv_fulltext_init(void);
long MMnextuser; /* highest user number on system */
long MMnextroom; /* highest room number on system */
int version; /* Server-hosted upgrade level */
+ int fulltext_wordbreaker; /* ID of wordbreaker in use */
+ long MMfulltext; /* highest message number indexed */
};
extern struct CitContext *ContextList;