Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

mod_searchm.c File Reference

mod_searchm source code More...

#include <httpd.h>
#include <http_config.h>
#include <http_core.h>
#include <http_log.h>
#include <apr.h>
#include <apr_strings.h>
#include <apr_lib.h>
#include <apr_file_io.h>
#include <apr_file_info.h>
#include <apr_pools.h>
#include <http_protocol.h>
#include <ap_config.h>
#include <util_filter.h>
#include <apr_version.h>
#include <apr_md5.h>
#include <ap_mpm.h>
#include <apr_proc_mutex.h>
#include <apr_global_mutex.h>
#include <apr_want.h>
#include <swish-e.h>
#include <apr_buckets.h>
#include <http_request.h>
#include <http_main.h>
#include <util_script.h>
#include <apr_general.h>
#include <unistd.h>
#include <apr_time.h>
#include "searchm.h"
#include <unixd.h>

Defines

#define APR_WANT_STRINGS
#define APR_WANT_MEMFUNC
#define APR_WANT_STDIO
#define MOD_SEARCHM_SET_MUTEX_PERMS
#define SEARCHM_DESCRIPTION_PRE   24
 The number of characters before the matched term.

#define SEARCHM_DESCRIPTION_POST   24
 The number of characters after the matched term.

#define SEARCHM_DESCRIPTION_MAX   512
 The maximum number of characters to be in the returned searchm_description tag. Not an absolute value. Searching stops when p_ret becomes greater than this value.

#define SEARCHM_SEARCH_SUBS   2
 The number of subs in the RE. RE will always contain one SUB.

#define SEARCHM_PARAMETER_DISPLAY_MIN   0
#define SEARCHM_PARAMETER_DISPLAY_MAX   10000
#define SEARCHM_PARAMETER_PAGE_MIN   0
#define SEARCHM_PARAMETER_PAGE_MAX   10000
#define TEST_LOCKFILE   "/var/searchm/test.lock"

Functions

void * searchm_merge_per_server_config (apr_pool_t *p, void *base, void *virt)
void * searchm_per_server_config (apr_pool_t *p, server_rec *s)
 Creates the per server configuration structure.

int searchm_hook_post_config (apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 Complete post configuration of global server. Allocates the state table.

apr_status_t searchm_pool_post_config_cleanup (void *data)
 When server restart or shutdown, cleans up the post config.

void searchm_hook_child_init (apr_pool_t *p, server_rec *s)
 Sets up child process for forking MPMs.

apr_status_t searchm_pool_child_init_cleanup (void *parm)
 Child/process termination cleanup. If threaded MPM, destroys thread mutex.

void searchm_process_init (int bSS, apr_pool_t *p)
 process common initialization.

void searchm_process_cleanup (int bSS, apr_pool_t *p)
 process common cleanup.

int searchm_method_handler (request_rec *r)
 handles the request.

apr_status_t searchm_get_querystring (p_query_info_t p_qi)
 Obtains the query string for the request. Places into p_qi->querystring; If method is GET, then returns parsed_uri.query If method is POST, then reads input to obtain query string. searchm_qcmdstring.

apr_status_t searchm_tags_cache_cmdline (p_query_info_t p_qi)
apr_status_t searchm_tags_cache_add (p_query_info_t p_qi, char *s, searchm_tag_ids_e tag_id, int bDel)
searchm_tag_ids_e searchm_tagid (char *t, int *p_rval, char **p_str)
searchm_auto_tags_e searchm_tagid_auto (char *tag)
unsigned int searchm_desc_trim_begin (const char *desc, unsigned int mpos, int *bStart)
unsigned int searchm_desc_trim_end (const char *desc, unsigned int mpos, int *bEnd)
char * searchm_description_handler (apr_pool_t *pool, apr_pool_t *ptemp, const char *desc, const char **stopword_list, const char **removed_list, p_searchm_termlist_t const p_tl)
 create replacement string. p_tl may be a null list.

apr_status_t searchm_replace_file (p_query_info_t p_qi, apr_file_t *fp)
char * searchm_replace_searchm_tag (p_query_info_t p_qi, searchm_tag_ids_e tag_id, int tval, char *p_str)
int searchm_parse_cmdline (p_query_info_t p_qi)
 Associates paramters with values.

apr_status_t searchm_parse_cmdline_display (p_query_info_t p_qi, const char *p_value)
 Process the display command/query line value The value may only contain isdigit characters. (Not UTF-8 compat.) Duplicate display= parameters not allowed. Value must be reasonable. An empty value is allowed, and is considered '0'. "none" is only for missing display parameter. searchm_qdisplay.

apr_status_t searchm_parse_cmdline_page (p_query_info_t p_qi, const char *p_value)
 Process the page command/query line value The value may only contain isdigit characters. (Not UTF-8 compat.) Duplicate page parameters are ignored. This is required for second time thru. Value must be reasonable. searchm_qpage.

apr_status_t searchm_parse_cmdline_reqid (p_query_info_t p_qi, const char *p_value)
 Process the reqid command/query line value Only one reqid parameter allowed.

apr_status_t searchm_parse_cmdline_within (p_query_info_t p_qi, const char *p_value)
 Process the wiithin command/query line value Duplicate within parameters allowed, and accumulate Duplicate within values not allowed. A within value that is an empty string is ignored. Value is one of file title head body comments header emphasized meta all.

apr_status_t searchm_parse_cmdline_index (p_query_info_t p_qi, const char *p_value, int nval)
 Process the indexN command/query line value Empty values are ignored. If SearchmStrict, then value may not contain 2f.

apr_status_t searchm_parse_cmdline_conj (p_query_info_t p_qi, const char *p_value, int nval)
 Process the conjN command/query line value Only may be "and", "not", "or" or the empty string "".

apr_status_t searchm_parse_cmdline_query (p_query_info_t p_qi, const char *p_value, int nval)
 Process the queryN command/query line value.

apr_status_t searchm_parse_cmdline_metatag (p_query_info_t p_qi, const char *p_value, int nval)
 Process the metatagN command/query line value May only contain ASCII alpha characters (not UTF-8 okay). May be empty string "".

apr_status_t searchm_parse_cmdline_order (p_query_info_t p_qi, const char *p_value, int nval)
 Process the orderN command/query line value May only be one of "asc", "desc", or "" An empty string is dropped later.

apr_status_t searchm_parse_cmdline_sort (p_query_info_t p_qi, const char *p_value, int nval)
 Process the sortN command/query parameter value May only be a valid metaname, or empty string. An empty string is dropped later.

apr_status_t searchm_parse_cmdline_limit (p_query_info_t p_qi, const char *value, int n, searchm_limit_attr_e ltype, int lstype)
 Adds the information to the p_qi->limit[] structure. Sets bEntries to indicate at least one value was added.

int searchm_limit_process_date (const char *const ld[SEARCHM_LIMIT_MAX_SUB], apr_time_t *t)
 Processes the SUBS for type date into a C time structure. type=date 0 => month (0-11) 1=day(1-31) 2=century(19=1900, 20=2000) 3=year (00-99) 4=hour (0-23) past midnight 5=minutes (0-59) past hour 6=seconds (0-59) past minute converts to apr_ctime_t value (similar to C time_t) all 0-7 limit_hi and limit_low must be valid.

int searchm_limit_process_string (const char *const ld[SEARCHM_LIMIT_MAX_SUB], char **str, apr_pool_t *p)
 Processes the SUBS for type string into a string.

int searchm_limit_process_integer (const char *const ld[SEARCHM_LIMIT_MAX_SUB], char **str, apr_pool_t *p)
 Processes the SUBS for type string into a string.

int searchm_limit_process (p_query_info_t p_qi)
 creates the SwishSetSearchLimit paramters, if any

int searchm_create_filepath (p_query_info_t p_qi)
 Takes the index itemlist and creates the fname entry for each item. Takes the index itemlist and creates the fname entry for each item. Depends on SearchmStrict, SearchmAbsolute, SearchmRelative settings. Complicated by many issues. SearchmStrict May only be a valid filename. SearchmRelative May be a valid filename, or a valid relative filename/path specification. The releative spec should probably be given in generic API terms, using a '/', then converted to OS specific. SearchmAbsolute May be a valid filename, or a valid relative filename/path specification, or an absolute filename/path specification. The releative spec should probably be given in generic API terms, using a '/', then converted to OS specific. The absolute spec should probably be given in OS specific terms. Unix: /absolute/file_name DOS: c:/absolute/file_name (future).

int searchm_cmp_weighted (char *p, char *t, int *v)
int searchm_cmp_stringed (char *p, char *t, char **p_str)
int searchm_cmp_limit (const char *param, int *n, p_searchm_limit_attr_e ltype, int *lstype, apr_pool_t *p)
apr_status_t searchm_itemlist_add (p_query_info_t p_qi, void *list, void *item, searchm_itemlist_e listtype, searchm_tag_ids_e itemtype)
apr_status_t searchm_pre_query (p_query_info_t p_qi)
 Adjust values in p_qi after parsing command/query line. But prior to initiating the query. Returns error if no swishindex value given. Returns error if no query string value given.

apr_status_t searchm_create_within (p_query_info_t p_qi)
 Creates the p_qi->within string for searchm_within tag. From the p_qi->cmd.structure values.

int searchm_structure_to_id (char *p_value)
int searchm_error_to_api (apr_status_t rs)
 Returns the error page to return. Returns the error page to return.

const char * searchm_set_absolute (cmd_parms *parms, void *dummy, const int arg)
 Sets the p_sdc->bAbsolute from value given in configuration file. Called during the per-server-configuration if specified in the config file.

const char * searchm_set_relative (cmd_parms *parms, void *dummy, const int arg)
 Sets the p_sdc->bRelative from value given in configuration file. Called during the per-server-configuration if specified in the config file.

const char * searchm_set_strict (cmd_parms *parms, void *dummy, const int arg)
 Sets the p_sdc->bStrict from value given in configuration file. Called during the per-server-configuration if specified in the config file.

const char * searchm_set_indexdir (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_indexdir string from value given in the httpd configuration file. Associated with "SearchmIndexDir" httpd configuration file directive. Called during the per-server-configuration. If not specified in the httpd config file, this routine is not called.

const char * searchm_set_lockfile (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_lockfile string from value given in the httpd configuration file. Associated with "SearchmLockFile" httpd configuration file directive. Called during the per-server-configuration. If not specified in the httpd config file, this routine is not called.

const char * searchm_set_begin (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_begin string from value given in the httpd configuration file. Associated with "SearchmBegin" httpd configuration file directive.

const char * searchm_set_result (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_result string from value given in the httpd configuration file. Associated with "SearchmResult" httpd configuration file directive.

const char * searchm_set_end (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_end string from value given in the httpd configuration file. Associated with "SearchmEnd" httpd configuration file directive.

const char * searchm_set_nohits (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_nohits string from value given in the httpd configuration file. Associated with "SearchmNoHits" httpd configuration file directive.

const char * searchm_set_activate (cmd_parms *parms, void *dummy, int bool)
 Sets the p_sc->bActivate string from value given in configuration file. Called during the per-server-configuration if specified in the config file.

const char * searchm_set_usertrack_cookie_name (cmd_parms *parms, void *dummy, const char *arg)
 Sets the p_sc->sza_usertrack_cookie_name string from value given in the httpd configuration file. Associated with mod_usertrack "CookieName" httpd config file directive. Does not "Own" the CookieName directive, just snoop it to see what it is.

void * searchm_merge_per_dir_config (apr_pool_t *p, void *basev, void *newv)
 merge the directories into r->per_dir_config

void * searchm_per_dir_config (apr_pool_t *p, char *dir)
 allocate Director (Location) information.

int searchm_spot_usertrack_cookie (request_rec *r)
 Looks at incoming headers to determine if mod_usertrack cookie present. bUsertrackCookie=0 means cookie not part of request. bUsertrackCookie=1 means cookie part of request. If the mod_usertrack CookieName directive is set, use that value, Otherwise, use SEARCHM_DEFAULT_COOKIE_NAME. For now, just scans the string.

apr_status_t searchm_qi_setup (p_query_info_t p_qi, request_rec *r, p_searchm_config_t p_sc, p_searchm_dir_config_t p_sdc)
 Sets up p_qi, and checks some server settings. Verifies that SearchmBegin, SearchmResults, SearchmEnd, and SearchmNoHits are at least defined, and create reasonable filenames. Verifies the URI is parsed. Add server configuration settings to tag cache. searchm_date searchm_cabsolute searchm_crelative searchm_cstrict searchm_cindexdir searchm_cbegin searchm_cresult searchm_cend searchm_cnohit.

apr_status_t searchm_metalist_process (p_query_info_t p_qi)
 called during results phase to create the meta list

apr_status_t searchm_subquery_process (p_searchm_metalist_t const p_ml, const char **sl, unsigned int *index_sl, const char *meta_def, apr_pool_t *p)
 process a Swish-e subquery (as opposed to a searchm sub-query)

searchm_termtype_e searchm_gettermtype (const char *t)
 determines a term type.

searchm_termtype_e searchm_conjtype (const char *const t)
 Determines if t is a conjunction. Case is irrelevant.

apr_status_t searchm_addterm (p_searchm_metalist_t p_ml, const char **sl, int *index_sl, const char *m, int bP, int nterms, apr_pool_t *p)
apr_status_t searchm_metalist_add (p_searchm_metalist_t const p_ml, const char *mn, p_searchm_metaelem_t *pp_me, apr_pool_t *p)
p_searchm_metaelem_t searchm_metalist_get (p_searchm_metalist_t p_ml, const char *mn, int *bFound)
apr_status_t searchm_nodelist_add (p_searchm_metaelem_t const p_me, const char **sl, int *index_sl, int bP, int nterms, apr_pool_t *p)
 adds the term(s) at index_sl in sl to nodelist of me. me->l may be null. if nterms==1, then in phrase with one term. When added to nodelist, will become a single term, with phrase distinction lost. return:

void searchm_metalist_destroy (p_searchm_metalist_t const p_ml)
 destroys the metalist.

int searchm_nullstrcmp (const char *const t1, const char *const t2, const int bCase)
 compares t1 and t2, allowing for t1 and/or t2 to be NULL. if t1 and t2 are NULL, strings are considered equal The NULL string is considered less than a non NULL string. return: 0 strings are equal 1 strings are not equal

apr_status_t searchm_nodelist_match (p_searchm_metaelem_t const p_me, const char **sl, const int index_sl, const int bP, const int nterms, int *bFound, apr_pool_t *p)
apr_status_t searchm_phrase_match (p_searchm_metaelem_t const p_me, const char **sl, const int index_sl, const int bP, const int nterms, int *bResult, apr_pool_t *p)
 Checks if this phrase at ls[index_sl] is a match of an existing phrase in nodelist. If an existing phrase may be modified to match this phrase, it is modified, and match is successful. A match: If each term of a phrase is exaclty equal. Ex: "jack and jill" matches "jack and jill" If each term in phrase matches, with swap if necessary, match. Ex: "ja* and ji*" match "jack and jill" Ex: "jack and jill" match "ja* and ji*", with swap. Ex: "blackja* and ji*" match "ja* and ji*" with swap. If nterms in this phrase is not equal to the the number of terms in match phrase, then assume never equal.

apr_status_t searchm_single_match (const char *t1, const char *t2, const int bWay, int *Result, apr_pool_t *p)
apr_status_t searchm_termlist_create (p_searchm_metalist_t const p_ml, const char *mn, int bUseNull, p_searchm_termlist_t const p_tl, int *bResult, apr_pool_t *p)
void searchm_termlist_destroy (p_searchm_termlist_t const p_tl, apr_pool_t *p)
int searchm_nextmatch (p_searchm_termlist_t const p_tl, const char *desc, unsigned int *pos, int *i_match, unsigned int *mpos_b)
apr_status_t searchm_cookie_process (p_query_info_t p_qi)
apr_status_t searchm_process_requestinfo (p_query_info_t p_qi)
 Processes information for both initiating and requery search threads. Process the within structure. Process the index parameters. Add reqid parameter to cache.

void searchm_test (p_query_info_t p_qi)
 Testing locks, etc. The first thread/process will sleep for 60 seconds. While the first lock is held, all other process/threads will continue.

apr_status_t searchm_swishexecute (p_query_info_t p_qi)
 Sets up and calls SwishExecute Sets up and calls SwishExecute Update tag cache, after successful query, but prior to determine if query produced any hits. searchm_dbname searchm_dbdesc searchm_dbpointer searchm_dbadmin searchm_header_names Determines number of hits. searchm_hits hits Set to the number of hits/results from the query. If no hits, returns SEARCHM_ERROR_NOHITS. If hits, calculates and sets appropriate tags. Page numbers start at 1 Number of pages start at 1 Alway return at least one page. display set properly page set properly pagenext The next page to display pageprev The previous page to display i_start The start record i_end The end record searchm_page searchm_display searchm_pagenext searchm_pageprev searchm_total_pages searchm_full_pages searchm_start searchm_end searchm_last_page.

apr_status_t searchm_phases (p_query_info_t p_qi)
 Process the begin, results, and end phases Process the begin, results, and end phases. Opens the required files.

apr_status_t searchm_phases_nohits (p_query_info_t p_qi)
 Process the nohits phase.

void searchm_error_doc (p_query_info_t p_qi)
 Sends the error document to client, instead of results or nohits. Sends the error document to client, instead of results or nohits. An error here is a serious problem...

apr_status_t searchm_generate_reqid (p_query_info_t p_qi)
 Generates a unique id, in the form of a MD5 sum. For now, just uses current time. On systems with usec capability, this should be adequate.

apr_status_t searchm_packet_make (p_query_info_t p_qi, void **pkt, unsigned int *psize)
apr_status_t searchm_next_string (char **s, void *v, unsigned int *pos, apr_pool_t *p)
apr_status_t searchm_packet_split (p_query_info_t p_qi, void *pkt, unsigned int psize)
 Splits a database packet.

apr_status_t searchm_buffer_expand (p_searchm_buffer_t pb, unsigned int min, apr_pool_t *p)
 expands the buffer.

apr_status_t searchm_buffer_add_string (const char *s, p_searchm_buffer_t pb, apr_pool_t *p)
 Adds string (including the terminating null 0) to the buffer.

apr_status_t searchm_buffer_add (void *pv, unsigned int size, p_searchm_buffer_t pb, apr_pool_t *p)
 Adds the byte string to the buffer.

int searchm_absolute_path (const char *path)
int searchm_check_filename (const char *file)
int searchm_strcmp (const char *s1, const char *s2)
apr_status_t searchm_dbase_open (p_query_info_t p_qi)
apr_status_t searchm_dbase_close (p_query_info_t p_qi)
apr_status_t searchm_dbase_get (p_query_info_t p_qi)
 Retrieves any information for request id from database.

apr_status_t searchm_dbase_put (p_query_info_t p_qi)
 Store the search thread information in database. Uses the unique id as the key.

apr_status_t searchm_dbase_purge (p_query_info_t p_qi)
 Purges information from database, if necessary. See SEARCHM_PURGE_TIME and SEARCHM_INVALIDATE_TIME compile time options. The last purge time is stored in the SEARCHM_KEY_PURGETIME key. File is purged if SEARCHM_PURGE_TIME seconds have passed since last purge. If a SEARCHM_KEY_PURGETIME is not in database, file is purged. At end of purge, old SEARCHM_KEY_PURGETIME is replaced with new one. During purge, any key with SEARCHM_INVALIDATE_TIME seconds difference between current time and stored time is deleted.

void searchm_register_hooks (apr_pool_t *p)

Variables

module AP_MODULE_DECLARE_DATA searchm_module
command_rec searchm_cmds []


Detailed Description

mod_searchm source code

Author:
Byron Young
Version:
0.6.alpha
Bug:
report to spamiccling@yahoo.com

report to bkyoung@users.sourceforge.net


Define Documentation

#define APR_WANT_MEMFUNC
 

#define APR_WANT_STDIO
 

#define APR_WANT_STRINGS
 

#define MOD_SEARCHM_SET_MUTEX_PERMS
 

#define SEARCHM_PARAMETER_DISPLAY_MAX   10000
 

#define SEARCHM_PARAMETER_DISPLAY_MIN   0
 

#define SEARCHM_PARAMETER_PAGE_MAX   10000
 

#define SEARCHM_PARAMETER_PAGE_MIN   0
 

#define TEST_LOCKFILE   "/var/searchm/test.lock"
 


Function Documentation

int searchm_absolute_path const char *  path  )  [static]
 

fn searchm_absolute_path(const char * path)

Parameters:
path The path name to check OS DEPENDENT: check that path is: absolute ends in a directory separator. does not contain a ..
Returns:
0 not an absolute or invalid path. 1 yes, a valid absolute path.

searchm_buffer_add void *  pv,
unsigned int  size,
p_searchm_buffer_t  pb,
apr_pool_t *  p
[static]
 

Adds the byte string to the buffer.

Parameters:
pv Pointer to byte string to add to buffer.
size The size, in bytes, of pv.
pb The buffer.
p The memory pool.

searchm_buffer_add_string const char *  s,
p_searchm_buffer_t  pb,
apr_pool_t *  p
[static]
 

Adds string (including the terminating null 0) to the buffer.

Parameters:
s The string to add.
pb The buffer.
p The memory pool.

searchm_buffer_expand p_searchm_buffer_t  pb,
unsigned int  min,
apr_pool_t *  p
[static]
 

expands the buffer.

Parameters:
pb The buffer.
min The minimum size to increase the buffer.
p The memory pool.

searchm_check_filename const char *  file  )  [static]
 

Parameters:
file The filename to check.
Returns:
0 filename failed

1 filename passed. OS Dependent: Verifies filename is only a filename. does not contain any ".." does not contain any directory separator characters. '/'

searchm_cmp_limit const char *  param,
int *  n,
p_searchm_limit_attr_e  ltype,
int *  lstype,
apr_pool_t *  p
[static]
 

Parameters:
param IN:Paramter to check.
n OUT: N value
ltype OUT: The limit type.
lstype OUT: The limit type sub type.
p memory pool limitN_ltype_lstype

searchm_cmp_stringed char *  p,
char *  t,
char **  p_str
[static]
 

Parameters:
p The parameter/tag string
t The string to compare to
p_str OUT:The pointer into p of the string value of the tag.
Returns:
0 (false) if strings do not compare, v, p_str is not altered.

1 (true) if strings compare, p_str is set to start of string in p. Within p_str, all '_' are changed to ' ' (ASCII space).

int searchm_cmp_weighted char *  p,
char *  t,
int *  v
[static]
 

searchm_cmp_weighted(char * p, char * t, int * v)

Parameters:
p The parameter/tag string
t The string to compare to
v The value associated with t.
Returns:
0 (false) if strings do not compare, v is not altered, or weight is SEARCHM_ITEMLIST_EMPTY.

1 (true) if strings compare, v is set to associated value.

apr_status_t searchm_cookie_process p_query_info_t  p_qi  )  [static]
 

int searchm_create_filepath p_query_info_t  p_qi  )  [static]
 

Takes the index itemlist and creates the fname entry for each item. Takes the index itemlist and creates the fname entry for each item. Depends on SearchmStrict, SearchmAbsolute, SearchmRelative settings. Complicated by many issues. SearchmStrict May only be a valid filename. SearchmRelative May be a valid filename, or a valid relative filename/path specification. The releative spec should probably be given in generic API terms, using a '/', then converted to OS specific. SearchmAbsolute May be a valid filename, or a valid relative filename/path specification, or an absolute filename/path specification. The releative spec should probably be given in generic API terms, using a '/', then converted to OS specific. The absolute spec should probably be given in OS specific terms. Unix: /absolute/file_name DOS: c:/absolute/file_name (future).

fn searchm_create_filepath(p_query_info_t p_qi)

Parameters:
p_qi query information

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_create_within p_query_info_t  p_qi  )  [static]
 

Creates the p_qi->within string for searchm_within tag. From the p_qi->cmd.structure values.

Parameters:
p_qi Query Informatin.
Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_dbase_close p_query_info_t  p_qi  )  [static]
 

Parameters:
p_qi Query information. Close databases, if required.
Returns:
APR_SUCCESS

searchm_dbase_get p_query_info_t  p_qi  )  [static]
 

Retrieves any information for request id from database.

Parameters:
p_qi Query Information.

searchm_dbase_open p_query_info_t  p_qi  )  [static]
 

Parameters:
p_qi Query information. Open databases, if required.
Returns:
APR_SUCCESS

searchm_dbase_purge p_query_info_t  p_qi  )  [static]
 

Purges information from database, if necessary. See SEARCHM_PURGE_TIME and SEARCHM_INVALIDATE_TIME compile time options. The last purge time is stored in the SEARCHM_KEY_PURGETIME key. File is purged if SEARCHM_PURGE_TIME seconds have passed since last purge. If a SEARCHM_KEY_PURGETIME is not in database, file is purged. At end of purge, old SEARCHM_KEY_PURGETIME is replaced with new one. During purge, any key with SEARCHM_INVALIDATE_TIME seconds difference between current time and stored time is deleted.

Parameters:
p_qi Query Information

Returns:
APR_SUCCESS

searchm_dbase_put p_query_info_t  p_qi  )  [static]
 

Store the search thread information in database. Uses the unique id as the key.

Parameters:
p_qi Query Information

Returns:
APR_SUCCESS

searchm_error_doc p_query_info_t  p_qi  )  [static]
 

Sends the error document to client, instead of results or nohits. Sends the error document to client, instead of results or nohits. An error here is a serious problem...

Parameters:
p_qi Query Information
Returns:
void

searchm_error_to_api apr_status_t  rs  )  [static]
 

Returns the error page to return. Returns the error page to return.

Parameters:
rs The return status

apr_status_t searchm_generate_reqid p_query_info_t  p_qi  )  [static]
 

Generates a unique id, in the form of a MD5 sum. For now, just uses current time. On systems with usec capability, this should be adequate.

searchm_get_querystring p_query_info_t  p_qi  )  [static]
 

Obtains the query string for the request. Places into p_qi->querystring; If method is GET, then returns parsed_uri.query If method is POST, then reads input to obtain query string. searchm_qcmdstring.

Parameters:
p_qi Query Info

Returns:
SEARCHM_SUCCESS SEARCHM_ERROR_DOC SEARCHM_INTERNAL_SERVER_ERROR

searchm_hook_child_init apr_pool_t *  p,
server_rec *  s
[static]
 

Sets up child process for forking MPMs.

Parameters:
p The child process pool.
s The server record.
Returns:
void

searchm_hook_post_config apr_pool_t *  p,
apr_pool_t *  plog,
apr_pool_t *  ptemp,
server_rec *  s
[static]
 

Complete post configuration of global server. Allocates the state table.

Parameters:
p The configuration pool.
plog The log pool.
ptemp A temporary pool.
s The server begin configured.

int searchm_itemlist_add p_query_info_t  p_qi,
void *  list,
void *  item,
searchm_itemlist_e  listtype,
searchm_tag_ids_e  itemtype
[static]
 

Parameters:
p_qi Query Information.
list The itemlist to add to.
item The item to add to item list.
listtype The type of list.
itemtype The type of item being added. If itemtype is searchm_invalid, the the item is assumed to be a complete item of list, to be added. If itemtype is a searchm* value, then only the appropriate field in item is set to a valid value. All item MUST have the weight field set to a valid value.
Returns:
APR_SUCCESS, item inserted.

SEARCHM_ERROR_DOC

SEARCHM_ERROR_NOHITS KEEP TESTING....

searchm_limit_process p_query_info_t  p_qi  )  [static]
 

creates the SwishSetSearchLimit paramters, if any

Parameters:
p_qi query information
Returns:
1 error (pool mem allocation)

0 success

searchm_limit_process_date const char *const  ld[SEARCHM_LIMIT_MAX_SUB],
apr_time_t *  t
[static]
 

Processes the SUBS for type date into a C time structure. type=date 0 => month (0-11) 1=day(1-31) 2=century(19=1900, 20=2000) 3=year (00-99) 4=hour (0-23) past midnight 5=minutes (0-59) past hour 6=seconds (0-59) past minute converts to apr_ctime_t value (similar to C time_t) all 0-7 limit_hi and limit_low must be valid.

Parameters:
ld IN:the subs for the date type
t OUT:the apr_time_t for the date

Returns:
1 error

0 t is valid

searchm_limit_process_integer const char *const  ld[SEARCHM_LIMIT_MAX_SUB],
char **  str,
apr_pool_t *  p
[static]
 

Processes the SUBS for type string into a string.

Parameters:
ld IN:the subs for the string
str OUT:the integer as a string
p The memory pool.
Returns:
0 success

1 some sort of error

searchm_limit_process_string const char *const  ld[SEARCHM_LIMIT_MAX_SUB],
char **  str,
apr_pool_t *  p
[static]
 

Processes the SUBS for type string into a string.

Parameters:
ld IN:the subs for the string
str OUT:the string
p The memory pool.
Returns:
0 success

1 some sort of error

searchm_merge_per_dir_config apr_pool_t *  p,
void *  basev,
void *  newv
[static]
 

merge the directories into r->per_dir_config

Parameters:
p The config pool.
basev The base dir config.
newv The new dir config.
Returns:
Pointer to the config structure. If the basev->dir parameter is NULL, then the top config.

searchm_merge_per_server_config apr_pool_t *  p,
void *  base,
void *  virt
[static]
 

Parameters:
p the pool
base the base server config.
virt The new virtual server config.
Returns:
void * pointer to merged virtual config

searchm_method_handler request_rec *  r  )  [static]
 

handles the request.

Parameters:
r The request record for this request
Returns:
int

apr_status_t searchm_next_string char **  s,
void *  v,
unsigned int *  pos,
apr_pool_t *  p
[static]
 

searchm_packet_make p_query_info_t  p_qi,
void **  pkt,
unsigned int *  psize
[static]
 

Parameters:
p_qi Query inforamtion.
pkt OUT:The created packet.
psize OUT:THe packet size. brief Creates the database packet, allocated from request pool. Only used when creating a search thread. A packet begins with a header searchm_dbpkt_t Sets the time field to request_time.

searchm_packet_split p_query_info_t  p_qi,
void *  pkt,
unsigned int  psize
[static]
 

Splits a database packet.

Parameters:
p_qi Query information.
pkt The packet to split.
psize The size of the packet.
Returns:
APR_SUCCESS

searchm_parse_cmdline p_query_info_t  p_qi  )  [static]
 

Associates paramters with values.

Parameters:
p_qi Query Information
Returns:
p_qi->querystring is the command/ query line. Parses and retrieves parameter values. Sets values based on given information. Determines if the index itemlist filenames are absolute, relative. Does not allow a index itemlist filename that goes above root. Only called once per request. If this is a requey (one with a reqid), then database values will override any command line parameters. SEARCHM_ERROR_DOC SEARCHM_INTERAL_SERVER_ERROR APR_SUCCESS

searchm_parse_cmdline_conj p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the conjN command/query line value Only may be "and", "not", "or" or the empty string "".

Parameters:
p_qi query information
p_value The command/query line conjN value
nval The N value.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_display p_query_info_t  p_qi,
const char *  p_value
[static]
 

Process the display command/query line value The value may only contain isdigit characters. (Not UTF-8 compat.) Duplicate display= parameters not allowed. Value must be reasonable. An empty value is allowed, and is considered '0'. "none" is only for missing display parameter. searchm_qdisplay.

Parameters:
p_qi query information
p_value The command/query line display value

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_parse_cmdline_index p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the indexN command/query line value Empty values are ignored. If SearchmStrict, then value may not contain 2f.

Parameters:
p_qi query information
p_value The command/query line indexN value
nval The N value.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_limit p_query_info_t  p_qi,
const char *  value,
int  n,
searchm_limit_attr_e  ltype,
int  lstype
[static]
 

Adds the information to the p_qi->limit[] structure. Sets bEntries to indicate at least one value was added.

Parameters:
p_qi query information
value the paramter value
n The limitN value.
ltype The limitN_TYPE value
lstype The limitN_TYPE_SUBS value

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_metatag p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the metatagN command/query line value May only contain ASCII alpha characters (not UTF-8 okay). May be empty string "".

Parameters:
p_qi query information
p_value The command/query line metatagN value
nval The N value.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_order p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the orderN command/query line value May only be one of "asc", "desc", or "" An empty string is dropped later.

Parameters:
p_qi query information
p_value The command/query line orderN value
nval The N value.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_page p_query_info_t  p_qi,
const char *  p_value
[static]
 

Process the page command/query line value The value may only contain isdigit characters. (Not UTF-8 compat.) Duplicate page parameters are ignored. This is required for second time thru. Value must be reasonable. searchm_qpage.

Parameters:
p_qi query information
p_value The command/query line page value

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_parse_cmdline_query p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the queryN command/query line value.

Parameters:
p_qi query information
p_value The command/query line queryN value
nval The N value.
Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_reqid p_query_info_t  p_qi,
const char *  p_value
[static]
 

Process the reqid command/query line value Only one reqid parameter allowed.

Parameters:
p_qi query information
p_value The command/query line requery value

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_parse_cmdline_sort p_query_info_t  p_qi,
const char *  p_value,
int  nval
[static]
 

Process the sortN command/query parameter value May only be a valid metaname, or empty string. An empty string is dropped later.

Parameters:
p_qi query information
p_value The command/query line sortN value
nval The N value.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

searchm_parse_cmdline_within p_query_info_t  p_qi,
const char *  p_value
[static]
 

Process the wiithin command/query line value Duplicate within parameters allowed, and accumulate Duplicate within values not allowed. A within value that is an empty string is ignored. Value is one of file title head body comments header emphasized meta all.

Parameters:
p_qi query information
p_value The command/query line within value

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_per_dir_config apr_pool_t *  p,
char *  dir
[static]
 

allocate Director (Location) information.

Parameters:
p the config pool
dir the directory/location processing.
Returns:
Pointer to allocated stucture.

searchm_per_server_config apr_pool_t *  p,
server_rec *  s
[static]
 

Creates the per server configuration structure.

Parameters:
p The configuration pool
s The server record of the server beign configured.
Returns:
void

searchm_phases p_query_info_t  p_qi  )  [static]
 

Process the begin, results, and end phases Process the begin, results, and end phases. Opens the required files.

Parameters:
p_qi Query Information

Returns:
APR_SUCCESS

searchm_phases_nohits p_query_info_t  p_qi  )  [static]
 

Process the nohits phase.

Parameters:
p_qi Query information.
Returns:
APR_SUCCESS

searchm_pool_child_init_cleanup void *  parm  )  [static]
 

Child/process termination cleanup. If threaded MPM, destroys thread mutex.

Parameters:
parm pointer to global server searchm_config.

searchm_pool_post_config_cleanup void *  data  )  [static]
 

When server restart or shutdown, cleans up the post config.

Parameters:
data pointer to global server searchm_config
Returns:
status

searchm_pre_query p_query_info_t  p_qi  )  [static]
 

Adjust values in p_qi after parsing command/query line. But prior to initiating the query. Returns error if no swishindex value given. Returns error if no query string value given.

Parameters:
p_qi Query Information.

Returns:
APR_SUCCESS

SEARCHM_ERROR_NOHITS;

searchm_process_cleanup int  bSS,
apr_pool_t *  p
[static]
 

process common cleanup.

Parameters:
bSS True if startup/ stop process.
p The proper pool.

searchm_process_init int  bSS,
apr_pool_t *  p
[static]
 

process common initialization.

Parameters:
bSS True if startup/ stop process.
p The proper pool.

searchm_process_requestinfo p_query_info_t  p_qi  )  [static]
 

Processes information for both initiating and requery search threads. Process the within structure. Process the index parameters. Add reqid parameter to cache.

Parameters:
p_qi Query information

Returns:
APR_SUCCESS

SEARCHM_INTERNAL_SERVER_ERROR

searchm_qi_setup p_query_info_t  p_qi,
request_rec *  r,
p_searchm_config_t  p_sc,
p_searchm_dir_config_t  p_sdc
[static]
 

Sets up p_qi, and checks some server settings. Verifies that SearchmBegin, SearchmResults, SearchmEnd, and SearchmNoHits are at least defined, and create reasonable filenames. Verifies the URI is parsed. Add server configuration settings to tag cache. searchm_date searchm_cabsolute searchm_crelative searchm_cstrict searchm_cindexdir searchm_cbegin searchm_cresult searchm_cend searchm_cnohit.

Parameters:
p_qi Query Info
r request record
p_sc server configuration.
p_sdc directory configuration.

Returns:
APR_SUCCESS

SEARCHM_ERROR_DOC

void searchm_register_hooks apr_pool_t *  p  )  [static]
 

searchm_replace_file p_query_info_t  p_qi,
apr_file_t *  fp
[static]
 

Parameters:
p_qi Query Information.
fp The replacement file. Replaces all SEARCHM_TAGS in a file, and sends it. Also, counts the number of bytes sent.
Returns:
APR_SUCCESS All replaced.

SEARCHM_INTERNAL_SERVER_ERROR

searchm_replace_searchm_tag p_query_info_t  p_qi,
searchm_tag_ids_e  tag_id,
int  tval,
char *  p_str
[static]
 

Parameters:
p_qi query info
tag_id the tag to replace
tval the tag suffix, if any.
p_str the tag string, if any.
Returns:
NULL if invalid tval or tag_id

replacement string if valid.

searchm_set_absolute cmd_parms *  parms,
void *  dummy,
const int  arg
[static]
 

Sets the p_sdc->bAbsolute from value given in configuration file. Called during the per-server-configuration if specified in the config file.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL

searchm_set_activate cmd_parms *  parms,
void *  dummy,
int  bool
[static]
 

Sets the p_sc->bActivate string from value given in configuration file. Called during the per-server-configuration if specified in the config file.

Parameters:
parms The command data structure.
dummy Unused, since no per-directory-configuration possible.
bool The value specified in the configuration script.
Returns:
NULL

static const char * searchm_set_begin cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_begin string from value given in the httpd configuration file. Associated with "SearchmBegin" httpd configuration file directive.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

static const char * searchm_set_end cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_end string from value given in the httpd configuration file. Associated with "SearchmEnd" httpd configuration file directive.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

static const char * searchm_set_indexdir cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_indexdir string from value given in the httpd configuration file. Associated with "SearchmIndexDir" httpd configuration file directive. Called during the per-server-configuration. If not specified in the httpd config file, this routine is not called.

Parameters:
parms The command data structure.
dummy Unused, since no per-directory-configuration possible.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

static const char * searchm_set_lockfile cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_lockfile string from value given in the httpd configuration file. Associated with "SearchmLockFile" httpd configuration file directive. Called during the per-server-configuration. If not specified in the httpd config file, this routine is not called.

Parameters:
parms The command data structure.
dummy Unused, since no per-directory-configuration possible.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

static const char * searchm_set_nohits cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_nohits string from value given in the httpd configuration file. Associated with "SearchmNoHits" httpd configuration file directive.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

searchm_set_relative cmd_parms *  parms,
void *  dummy,
const int  arg
[static]
 

Sets the p_sdc->bRelative from value given in configuration file. Called during the per-server-configuration if specified in the config file.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL

static const char * searchm_set_result cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_result string from value given in the httpd configuration file. Associated with "SearchmResult" httpd configuration file directive.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL: Success.

Valid Pointer: string to display as error, along with syntax error message at line of directive.

DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

searchm_set_strict cmd_parms *  parms,
void *  dummy,
const int  arg
[static]
 

Sets the p_sdc->bStrict from value given in configuration file. Called during the per-server-configuration if specified in the config file.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
NULL

static const char * searchm_set_usertrack_cookie_name cmd_parms *  parms,
void *  dummy,
const char *  arg
[static]
 

Sets the p_sc->sza_usertrack_cookie_name string from value given in the httpd configuration file. Associated with mod_usertrack "CookieName" httpd config file directive. Does not "Own" the CookieName directive, just snoop it to see what it is.

Parameters:
parms The command data structure.
dummy Used, because per-directory-configuration active for directive.
arg The value specified in the configuration script.
Returns:
DECLINE_CMD: If a subsequent module decalres the directive, let it handle it.

searchm_spot_usertrack_cookie request_rec *  r  )  [static]
 

Looks at incoming headers to determine if mod_usertrack cookie present. bUsertrackCookie=0 means cookie not part of request. bUsertrackCookie=1 means cookie part of request. If the mod_usertrack CookieName directive is set, use that value, Otherwise, use SEARCHM_DEFAULT_COOKIE_NAME. For now, just scans the string.

Parameters:
r request record.

Returns:
DECLINED - Other modules must handle phase. This module just checks the value.

searchm_strcmp const char *  s1,
const char *  s2
[static]
 

Parameters:
s1 String one.
s2 String two.
Returns:
<0 s1 < s2

0 Strings are equal

>0 s1 > s2 brief Compares strings based on SEARCHM_CONFIG_ICASE value.

searchm_structure_to_id char *  p_value  )  [static]
 

Parameters:
p_value The value to convert to an ID. brief Convert a string to a Swish-e structure bit representation. Convert a string to a Swish-e structure bit representation.
Returns:
0 Not valid.

NUM The bit representation.

searchm_swishexecute p_query_info_t  p_qi  )  [static]
 

Sets up and calls SwishExecute Sets up and calls SwishExecute Update tag cache, after successful query, but prior to determine if query produced any hits. searchm_dbname searchm_dbdesc searchm_dbpointer searchm_dbadmin searchm_header_names Determines number of hits. searchm_hits hits Set to the number of hits/results from the query. If no hits, returns SEARCHM_ERROR_NOHITS. If hits, calculates and sets appropriate tags. Page numbers start at 1 Number of pages start at 1 Alway return at least one page. display set properly page set properly pagenext The next page to display pageprev The previous page to display i_start The start record i_end The end record searchm_page searchm_display searchm_pagenext searchm_pageprev searchm_total_pages searchm_full_pages searchm_start searchm_end searchm_last_page.

Parameters:
p_qi Query Information

Returns:
APR_SUCCESS

SEARCHM_ERROR_NOHITS

SEARCHM_ERROR_DOC

SEARCHM_INTERNAL_SERVER_ERROR

searchm_tagid char *  t,
int *  p_rval,
char **  p_str
[static]
 

Parameters:
t IN:tag to determine
p_rval OUT:The numeric suffix of the tag. If no suffix, then unchanged.
p_str OUT:The string value of the suffix
Returns:
The tagid if any. hash this sometime soon...

searchm_tagid_auto char *  tag  )  [static]
 

Parameters:
tag The tag to check.
Returns:
The autotag type, if any

searchm_tags_cache_add p_query_info_t  p_qi,
char *  s,
searchm_tag_ids_e  tag_id,
int  bDel
[static]
 

Parameters:
p_qi Query Information.
s The tag value to add.
tag_id The tag being added.
bDel Delete the tag first, prior to adding new tag.
Returns:
APR_SUCCESS

SEARCHM_INTERNAL_SERVER_ERROR (apr_calloc) The tags cache is a buffer of zero terminated strings. Each tag is pointed to by a pointer. If the tag cache must be enlarged, a new buffer is created, all strings are copied into new buffer, old buffer is lost. New tags are added to the end of the buffer. The i_cache value is the location of the first empty byte in the buffer. The i_cache_size value is the size of the buffer, in bytes. A deleted tag just has its pointer nulled, with no buffer adjustments. If the cache is expanded, deleted strings will not be copied over, possibly decreasing used space. Weighted tags will never have valid pointers. They are defined in lists. Most tags are static. IE, once added, they will never change. Tags created during results phase are dynamic, and change each result: searchm_parsed_words, searchm_hilitem_string, searchm_removed_words The searchm_hv tag will never have a value stored in the cache. In list: searchm_dbname, searchm_dbdesc, searchm_dbpointer, searchm_dbadmin adds s into p_stt and adjust the pointer. if the cache requires expansion, increases by SEARCHM_CACHE_SIZE

searchm_tags_cache_cmdline p_query_info_t  p_qi  )  [static]
 

Parameters:
p_qi Query Information. Add command/query line tags to tags cache. Add tags calculated from them to tags cache. Basically all the command/query line information. searchm_sort searchm_query searchm_within searchm_index
Returns:
APR_SUCCESS

SEARCHM_INTERNAL_SERVER_ERROR

searchm_test p_query_info_t  p_qi  )  [static]
 

Testing locks, etc. The first thread/process will sleep for 60 seconds. While the first lock is held, all other process/threads will continue.

Parameters:
p_qi Query Information
Returns:
void


Variable Documentation

command_rec searchm_cmds
 

module AP_MODULE_DECLARE_DATA searchm_module
 

Initial value:

 {
    STANDARD20_MODULE_STUFF, 
    searchm_per_dir_config,    
    searchm_merge_per_dir_config, 
    searchm_per_server_config, 
    searchm_merge_per_server_config, 
    searchm_cmds,              
    searchm_register_hooks     
}


Generated on Wed Mar 30 09:40:28 2005 for Mod_Searchm by doxygen 1.3.6