From 02b39a0e2c1f4c6289ef1d7596cb41ad552dde6b Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 16 May 2005 20:37:00 +0000 Subject: [PATCH] * Added in skeleton modules for fulltext indexer --- citadel/Makefile.in | 3 +- citadel/ft_wordbreaker.c | 46 ++++++++++++++++++++++ citadel/ft_wordbreaker.d | 59 ++++++++++++++++++++++++++++ citadel/ft_wordbreaker.h | 12 ++++++ citadel/ft_wordbreaker.o | Bin 0 -> 688 bytes citadel/serv_extensions.c | 1 + citadel/serv_fulltext.c | 79 ++++++++++++++++++++++++++++++++++++++ citadel/serv_fulltext.d | 59 ++++++++++++++++++++++++++++ citadel/serv_fulltext.h | 6 +++ citadel/serv_fulltext.o | Bin 0 -> 1397 bytes citadel/server.h | 2 + 11 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 citadel/ft_wordbreaker.c create mode 100644 citadel/ft_wordbreaker.d create mode 100644 citadel/ft_wordbreaker.h create mode 100644 citadel/ft_wordbreaker.o create mode 100644 citadel/serv_fulltext.c create mode 100644 citadel/serv_fulltext.d create mode 100644 citadel/serv_fulltext.h create mode 100644 citadel/serv_fulltext.o diff --git a/citadel/Makefile.in b/citadel/Makefile.in index 21053649b..2b52fb802 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -32,6 +32,7 @@ SERV_MODULES=serv_chat.o \ 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 \ @@ -95,7 +96,7 @@ SOURCES=aidepost.c auth.c base64.c chkpwd.c citadel.c citadel_ipc.c \ 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) diff --git a/citadel/ft_wordbreaker.c b/citadel/ft_wordbreaker.c new file mode 100644 index 000000000..c9d9db259 --- /dev/null +++ b/citadel/ft_wordbreaker.c @@ -0,0 +1,46 @@ +/* + * $Id$ + * + * Default wordbreaker module for full text indexing. + * + */ + + +#include "sysdep.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include +#include +#include +#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" + + diff --git a/citadel/ft_wordbreaker.d b/citadel/ft_wordbreaker.d new file mode 100644 index 000000000..827722090 --- /dev/null +++ b/citadel/ft_wordbreaker.d @@ -0,0 +1,59 @@ +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 diff --git a/citadel/ft_wordbreaker.h b/citadel/ft_wordbreaker.h new file mode 100644 index 000000000..d093489f5 --- /dev/null +++ b/citadel/ft_wordbreaker.h @@ -0,0 +1,12 @@ +/* + * $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 diff --git a/citadel/ft_wordbreaker.o b/citadel/ft_wordbreaker.o new file mode 100644 index 0000000000000000000000000000000000000000..6e341fe906e8d87c0e104316d0843316b4cf30e0 GIT binary patch literal 688 zcma)4O-sW-5S^I%(VG=-dRR}UV3(u~3gWHQdJqqSXW1lM3MC0-2h@}P2!BTZoc@72 z(_}D;LI;L7@6BU&cG=g-?X~B5AmM=z-wa^cG~zV|(1jg<>3Dppg6Z8uUyXFEhiVvx zaTG=uD!8|qx-nSmgL6GgM|}Y8UUD=EAyzfcr9%6RpfiI8bmAQ7qC~4{_Q0V@7ogKJ z&uxLS;0Aa^9=-!@x{iAHh7fd`@`R9me#8Isol<{q1K$~W+Hd!Jp7gH%@I|Cah_6S2 z?8ZGyIpLxS@iA_RNO(x(jgWWVrR4kWQ+6ra^WMpKOqztu6E4`+JMgg*o$=>yVcy<^ sdHY1>^7{1@AGYCuN<|q`_TX~`Gkkn1t1PLkS=dUaU|gD)1 +#include +#include +#include +#include +#include +#include +#include + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include +#include +#include +#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$"; +} diff --git a/citadel/serv_fulltext.d b/citadel/serv_fulltext.d new file mode 100644 index 000000000..3b7068466 --- /dev/null +++ b/citadel/serv_fulltext.d @@ -0,0 +1,59 @@ +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 diff --git a/citadel/serv_fulltext.h b/citadel/serv_fulltext.h new file mode 100644 index 000000000..919922f94 --- /dev/null +++ b/citadel/serv_fulltext.h @@ -0,0 +1,6 @@ +/* + * $Id$ + * + */ + +char *serv_fulltext_init(void); diff --git a/citadel/serv_fulltext.o b/citadel/serv_fulltext.o new file mode 100644 index 0000000000000000000000000000000000000000..dbf664b4dbc6f0adc48f91ba364f3cf167211f3c GIT binary patch literal 1397 zcma)6&ubGw6n<%;&=W8`1t|;9k{E9c%sM0 zk?!t5_{$_Xe}LQD?G@iFb<5l0?_aQRZ`TRe8xMS6t8KmR1&-SGf@Ur+VqJ^0a>l6Q z=}H*rDD>s>vgA~p#k4;hv}tT`CDbk_6FL-5cxH^N{iRmJ3%uAxv8hF8ifExy znG?B%m9@N>m1S8Hr9z=xEEF$^+^TX!wWbq(=AvxWXY)ide$>*n4fZ-pylYpH@+Hnj z(y8eh$&ENB8HEW5Laij%nc>scw@B8*R!aq%pY%WNH0yBRhm9VW{>H4~GG={}{SmW< z`^tgmhQog7vOK1F0H=AtJ|?a=+kEGlf&O2*0&9?Oga-`yUUgT=Wb<8S2%R<6516#D z+P8)lx*`_FtZss_eKv$%bKsWIz*!x