aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorFiles
2021-07-09Introduce per-database capabilitiesSergey Poznyakoff1
* include/smap/module.h (SMAP_CAPA_DBCAP): New capability. (smap_module) <smap_dbcap>: New member. * modules/guile/guile.c (guile_dbcap): New function. Raise the SMAP_CAPA_DBCAP capability. * modules/lua/lua.c (mod_dbcap): New function. Raise the SMAP_CAPA_DBCAP capability. * src/module.c (_load_module): Check for pmod->smap_dbcap if SMAP_CAPA_DBCAP is set. * src/query.c (dbi_capa): New function. (rule_fixup): Use dbi_capa to check the actual database capabilities. * NEWS: Document SMAP_CAPA_DBCAP
2021-07-06New dispatch condition: ARG in DBSergey Poznyakoff1
* NEWS: Document new condition. * doc/smap.texi: Likewise. * include/smap/stream.h (smap_null_stream_create) (smap_memory_stream_create): New protos. * lib/memstr.c: New file. * lib/nullstr.c: New file. * lib/Makefile.am: Add new sources. * src/query.c (comp_in): New comparison type. (comp_cond): New (union) member: dbi (T_IN): New token. (parse_dispatch_comp): Parse the construct "ARG in DB". (rule_fixup): Traverse also the conditions resolving the DB part to the actual database. (compare): Take smap_conninfo as the third argument. Handle comp_in. (dispatch_query_pack): Remove superfluous parameter (conninfo). It is already carried in struct query_pack.
2021-07-02Use POSIX dlopent, dlsumr, dlclose.Sergey Poznyakoff1
* .gitignore: Update. * Makefile.am (SUBDIRS): Remove libltdl * configure.ac (LT_WITH_LTDL et al): Removed. Check for libtool and dlopen explicitly. * include/smap/module.h (SMAP_EXPORT): Remove. (SMAP_MODULE_VERSION): Raise version number. * modules/echo/echo.c: Change declaration of smap_module. * modules/guile/guile.c: Likewise. * modules/ldap/ldap.c: Likewise. * modules/mailutils/mailutils.c: Likewise. * modules/mysql/mysql.c: Likewise. * modules/postgres/postgres.c: Likewise. * modules/sed/sed.c: Likewise. * src/Makefile.am (smapd_LDADD): Remove @LIBLTDL@ (noinst_HEADERS): Add list.h * src/list.h: New file (from https://git.gnu.org.ua/micron.git) * src/common.h (e2nrealloc): New proto. * src/mem.c (e2nrealloc): New function. * src/module.c (mod_load_path): Change data type. (try_load_in_path): New function. (_load_module): Try prepend path, LD_LIBRARY_PATH, SMAP_MODDIR, and append path, in that order. * src/query.c (dispatch_rule): Remove prev,next, add link instead. All uses changed * src/smapd.h: Don't include ltdl.h. Include list.h (DCLATT,DCLDET,DCLLOC,DCLLIST,DCLIDLIST): Remove. (struct smap_module_instance: Change type of handle to void* Remove prev,next, add link instead. (struct smap_database_instance): Remove prev,next, add link instead.
2021-05-26Update copyright yearsSergey Poznyakoff10
2019-07-10Use wordsplit from a submoduleSergey Poznyakoff3
* .gitmodules (wordsplit): New module. * configure.ac: Link lib/wordsplit/wordsplit.h to include/smap/wordsplit.h * include/smap/Makefile.am (pkginclude_HEADERS): Install wordsplit.h from submodule. * include/smap/wordsplit.h: Remove. * lib/wordsplit.c: Remove. * lib/Makefile.am: Access wordsplit sources from the submodule. * modules/echo/Makefile.am (AM_CPPFLAGS): Add -I$(top_builddir)/include * modules/guile/Makefile.am: Likewise. * modules/ldap/Makefile.am: Likewise. * modules/mailutils/Makefile.am: Likewise. * modules/mysql/Makefile.am: Likewise. * modules/postgres/Makefile.am: Likewise. * modules/sed/Makefile.am: Likewise. * src/Makefile.am: Likewise.
2017-11-10Pull wordsplit from grecs 3299cf1c.Sergey Poznyakoff1
* include/smap/wordsplit.h: New version. * lib/wordsplit.c: New version. * modules/ldap/ldap.c (getvar): Rewrite to match new prototype. * src/cfg.c (wrdse_to_ex): Remove WRDSE_NOSUPP.
2014-08-24New module: ldapSergey Poznyakoff2
* configure.ac: Detect LDAP. New option --with-ldap * include/smap/parseopt.h (smap_option)<func>: Change signature. (SMAP_DELIM_EQ,SMAP_DELIM_WS,SMAP_DELIM_MASK) (SMAP_PARSE_SUCCESS,SMAP_PARSE_NOENT) (SMAP_PARSE_INVAL): New defines. (smap_parseline): New proto. * include/smap/wordsplit.h (wordsplit)<ws_getvar>: Remove const from the return value: the function should allocate memory. (wordsplit_varnames): New proto. * lib/wordsplit.c (ISVARBEG,ISVARCHR): New macros. (wordsplit_varnames): New function (expvar): ws_getvar allocates memory. * lib/parseopt.c (find_opt): Take flags as additional argument. Support case-insensitive comparison and whitespace delimiters. (smap_parseline): New function. (smap_parseopt): Rewrite using smap_parseline. * modules/Makefile.am: Add ldap module. * modules/ldap/Makefile.am: New file. * modules/ldap/ldap.c: New file. * modules/mysql/Makefile.am: Minor change. * modules/mysql/mysql.c: Minor change. * src/srvman.c (smap_server_new): Save url.
2014-08-23Update copyright yearsSergey Poznyakoff11
2010-12-29wordsplit: sync with mailutilsSergey Poznyakoff1
2010-07-02Fix the mess with format specifications.Sergey Poznyakoff4
2010-06-29Improve debugging features.Sergey Poznyakoff1
* include/smap/wordsplit.h: Rearrange WRDSF_ flags. (WRDSF_WARNUNDEF): New flag. (WRDSE_UNDEF): New error code. * lib/wordsplit.c (expvar): Handle WRDSF_UNDEF and WRDSF_WARNUNDEF. (wordsplit_perror, _wordsplit_errstr): Handle WRDSE_UNDEF. * src/cfg.c (parse_config_loop): Level 1 enables WRDSF_WARNUNDEF. * doc/debugcat.texi: Document level conf(5).
2010-06-29Configuration parser debugging.Sergey Poznyakoff1
* src/smapd.c (debug_init): New category "conf". * src/smapd.h (DBG_CONF): New constant. * src/cfg.c (parse_config_loop): Add debugging output. (smapd_ws_debug): New function. * lib/wordsplit.c (wordsplit_len): Fix character case in debug output. (wordsplit_init): Consistency checking for WRDSF_SHOWDBG. (wordsplit_dump_nodes, wordsplit_len): Debugging output is triggered by WRDSF_SHOWDBG flag. * include/smap/wordsplit.h (wordsplit): New member ws_debug. (WRDSF_SHOWDBG): New flag.
2010-06-24Fix quote removal in wordsplit.Sergey Poznyakoff1
* include/smap/wordsplit.h (WRDSF_CESCAPES): New flag. (wordsplit_unquote_char): Rename to (wordsplit_quote_char): Rename to wordsplit_c_quote_char. (wordsplit_quoted_length): Rename to wordsplit_c_quoted_length. (wordsplit_quote_copy): Rename to wordsplit_c_quote_copy. (wordsplit_unquote_copy): Rename to wordsplit_c_unquote_copy. (wordsplit_sh_unquote_copy): New prototype. * lib/wordsplit.c (wsnode_quoteremoval): New function. (wsnode_coalesce): Only coalesce adjacent nodes, do not modify them. (wordsplit_len): Introduce quote removal (actually, unescaping) pass.
2010-06-24Fix variable expansion.Sergey Poznyakoff1
* include/smap/wordsplit.h (WRDSF_KEEPUNDEF): New flag. * lib/wordsplit.c (expvar): Expand undefined variables to an empty string or keep them intact if WRDSF_KEEPUNDEF is set. Correctly handle multiword expansions. (node_expand_vars): Propagate _WSNF_JOIN and _WSNF_QUOTE to expvar.
2010-06-21Implement WRDSF_NOSPLIT flag in wordsplit.Sergey Poznyakoff1
* include/smap/wordsplit.h (WRDSF_NOSPLIT): New flag. * lib/wordsplit.c (wordsplit_len): If WRDSF_NOSPLIT is set, treat entire input as if it were in double quotes.
2010-06-21New module: sed.Sergey Poznyakoff1
* modules/sed/Makefile.am: New file. * modules/sed/transform.c: New file. * modules/sed/transform.h: New file. * modules/sed/sed.c: New file. * configure.ac (AC_CONFIG_FILES): Add modules/sed/Makefile * include/smap/module.h (smap_module)<smap_xform>: Rearrange arguments. All uses changed. * modules/Makefile.am (SUBDIRS): Add sed. * src/module.c (_load_module): Fix v2 assertions. * src/query.c (dispatch_query_pack): Change smap_xform invocation. Avoid freeing qp->storage entry before printing it. * src/smapd.cfin: Add sample sed transformations. * src/smapd.c (cfg_socket_mode): Remove unused argument.
2010-06-21Change transformation syntax and method calling convention.Sergey Poznyakoff1
* include/smap/module.h (smap_module)<smap_xform>: Change signature. * modules/guile/getpw.scm (smap-xform): Change signature. * modules/guile/guile.c (guile_xform): Change signature. * src/query.c: Change transform syntax. New syntax is: "transform" "key"|"map" dbname. * src/smapd.cfin [GUILE]: Add sample transform entries.
2010-06-21Implement argument transformations.Sergey Poznyakoff1
Argument transformations allow to change map and/or key in the input query before actually processing it. They are implemented at the module level, via additional method in smap_module structure. * include/smap/module.h (SMAP_MODULE_VERSION): Define to 2. (SMAP_CAPA_DEFAULT): Change constant. (SMAP_CAPA_XFORM): New define. (smap_module)<smap_xform>: New member. * src/module.c (_load_module): Fix consistency checking. * src/query.c: New condition "key [op] value". New target "transform dbname". (query_cond_type): New constant query_cond_key. (map_comparison): Rename to comparison. All uses changed. (map_cond): Rename to comp_cond. All uses changed. (dispatch_rule)<xform>: New member. (query_tok)<T_TRANSFORM, T_KEY>: New tokens. (query_kwtab): New keywords: key, transform. (parse_dispatch_map): Rename to parse_dispatch_comp; change signature. All uses changed. (parse_subcond): Handle T_KEY token. (parse_complex_dispatch): Handle T_KEY and T_TRANSFORM. (rule_fixup): New function. (link_dispatch_rules): Use rule_fixup. (find_dispatch_rule): Second argument defines where to start searching. (dispatch_query): Handle transformations. Add checking of return values. * modules/guile/guile.c (guile_proc_ind)<xform_proc>: New index. (guile_proc_name): New proc "xform". (guile_init_db): Bail out if neither query nor xform is defined. (guile_xform): New function. (module): Add guile_xform. * modules/guile/getpw.scm (smap-xform): Implement an example transformation. * modules/echo/echo.c (module): Update. * modules/mailutils/mailutils.c: Likewise.
2010-06-21Implement variable expansion.Sergey Poznyakoff1
* include/smap/wordsplit.h (WRDSE_CBRACE): New error code. * lib/wordsplit.c (wordsplit_init): Dont bail out on absense of WRDSF_NOVAR. (wsnode_insert): Bugfix. (wordsplit_finish): Unquote is 1 by default. (node_split_prefix, find_closing_cbrace) (wordsplit_find_env, expvar, node_expand_vars) (wordsplit_varexp): New functions. (wordsplit_len): Implement variable expansion. (_wordsplit_errstr, wordsplit_perror): Handle new error code.
2010-06-20Improve wordsplit, prepare for variable expansion.Sergey Poznyakoff1
* include/smap/wordsplit.h (wordsplit): New members ws_env, ws_getvar, ws_head, ws_tail. (WRDSF_ENV, WRDSF_GETVAR, WRDSF_DEBUG): New flags. (WRDSE_USAGE): New error code. * lib/wordsplit.c: Build intermediate parse tree. (_ARGCV_WORD_SED_EXPR, _ARGCV_WORD_MASK): Remove. (_wsplt_nomem): New function. (wordsplit_init): Initialize ws_delim to " \t\n" Initialize new structure members. (alloc_space): Second argument gives requested number of free slots. (_WSNF_WORD, _WSNF_QUOTE, _WSNF_NOEXPAND) (_WSNF_JOIN, _WSNF_SEXP): New constants. (wordsplit_node): New structure. (wsnode_flagstr, wsnode_ptr, wsnode_len) (wsnode_new, wsnode_free, wsnode_append) (wsnode_remove, wsnode_insert, wordsplit_add_segm) (wordsplit_free_nodes, wordsplit_dump_nodes) (coalesce_segment, wsnode_coalesce) (wordsplit_finish): New functions. (_WRDS_WORD, _WRDS_CONT): Remove constants. (_WRDS_OK): New constant. (scan_qstring): New function (scan_word, wordsplit_len): Rewrite. (wordsplit_perror, _worsplit_errstr): Handle WRDSE_USAGE.
2010-06-20Improve wordsplit.Sergey Poznyakoff1
* include/smap/wordsplit.h (wordsplit)<ws_errno>: New member. (WRDSE_NOSUPP): New define. (wordsplit_perror,wordsplit_strerror): New prototypes. * lib/wordsplit.c (all functions): use wordsplit_perror for diagnostics if WRDSF_SHOWERR is set; set ws_errno to the actual error code before returning error. (scan_word): Revise and fix return values. (wordsplit_len): Correctly handle errors, in particular WRDSE_QUOTE. (wordsplit_perror, wordsplit_strerror): New functions. * src/cfg.c (parse_config_loop): Use wordsplit_strerror for diagnostics. * src/module.c (smap_modules_init): Likewise. * src/smapc.c (read_eval_loop): Use wordsplit_perror for diagnostics.
2010-06-19Fix invocation of database initialization methods. Update server docs.Sergey Poznyakoff1
* include/smap/module.h (smap_module) <smap_init_db>: Change signature: pass database name as the first argument. * modules/echo/echo.c (echo_init_db): Update signature. * modules/guile/getpw.scm (smap-open): Likewise. * modules/guile/guile.c (_guile_database)<dbname>: new member. (call_init_handler): Pass #f if dbname is NULL. (guile_init_db): Initialize db->dbname; fix invocation of init_fun. * modules/mailutils/mailutils.c (_mu_smap_db)<id>: New member. (_mu_smap_result)<db>: New member. (expand_reply_text): Initialize "db" key to the name of the database. (_mu_auth_query, _mu_mbq_query): Set res.db (mod_mailutils_init_db): Update signature. Initialize db->id. * doc/ex-meta1.texi: New file. * doc/Makefile.am (smap_TEXINFOS): Add ex-meta1.texi. * doc/smap.texi: Finish server documentation.
2010-06-17Normalize package name spelling; remove trailing whitespace.Sergey Poznyakoff10
All sources affected.
2010-06-12Fix stream buffer reallocation.Sergey Poznyakoff1
* include/smap/streamdef.h (_smap_stream)<size_hint>: Remove. * lib/sockmapstr.c (read_payload_length): Add debug prints. (ISDIGIT): New macro. (_sockmap_input_stream_read): Be robust on invalid inputs. If more space is needed, set _SMAP_STR_MORESPC bit, store the requested size in *pret, and return ERANGE. * lib/stream.c (_stream_realloc_buffer): New static. (_stream_fill_full_buffered): Change handling of the _SMAP_STR_MORESPC flag. Use _stream_realloc_buffer. (_stream_fill_line_buffered): Use _stream_realloc_buffer.
2010-06-11Allow to abridge the amount of trace information by the reply code prefix.Sergey Poznyakoff1
* include/smap/stream.h (SMAP_IOCTL_SET_ARGS): New opcode. (smap_trace_stream_create): New proto. * lib/Makefile.am (libsmap_la_SOURCES): Add tracestr.c * lib/tracestr.c: New file. * lib/stderr.c (smap_openlog_stderr): Use specialized trace stream for smap_trace_str. * lib/syslog.c (smap_openlog_syslog): Likewise. * src/cmdline.opt: New option trace-pattern. * src/log.c (add_trace_pattern): New function. (smap_log_init): Set up trace prefix patterns if requested. * src/smapd.c (smap_kwtab): New statement trace-pattern. * include/smap/stream.h (add_trace_pattern): New proto. * lib/sockmapstr.c (_sockmap_stream_done): Honor SMAP_STREAM_NO_CLOSE.
2010-06-11Revamp stream support.Sergey Poznyakoff7
Use fully fledged I/O streams (based on my earlier implementation for Mailutils and Dico). Construct a sockmap stream which allows to do all interactions transparently as if it were a line-oriented protocol. Update everything accordingly. * include/smap/ostr.h: delete * lib/ostr.c: delete * lib/smapostr.c: delete * include/smap/printf.h: New file. * include/smap/stream.h: New file. * include/smap/streamdef.h: New file. * lib/asnprintf.c: New file. * lib/asprintf.c: New file. * lib/fileoutstr.c: New file. * lib/sockmapstr.c: New file. * lib/syslogstr.c: New file. * lib/stream.c: New file. * lib/stream_printf.c: New file. * lib/stream_vprintf.c: New file. * lib/vasnprintf.c: New file. * lib/xscript.c: New file. * include/smap/Makefile.am: Update. * lib/Makefile.am: Update. * include/smap/diag.h (smap_error_str) (smap_debug_str, smap_trace_str): Change type. * include/smap/module.h (smap_module)<smap_query>: Change type of ostr. * lib/debug.c: Rewrite for new stream subsystem. * lib/diag.c: Likewise. * lib/stderr.c: Likewise. * lib/syslog.c: Likewise. * modules/echo/echo.c: Likewise. * modules/guile/guile.c: Likewise. * modules/mailutils/mailutils.c: Likewise. * src/query.c: Likewise. * src/smapc.c: Likewise. * src/smapd.c: Likewise. * src/smapd.h: Likewise.
2010-06-09Bugfixes.Sergey Poznyakoff1
* include/smap/url.h (SMAP_URLE_INVALID): New constant. * lib/url.c (url_error_string): Add new string for SMAP_URLE_INVALID. (split_connection): Return SMAP_URLE_INVALID on invalid URLs. (smap_url_parse): Initialize proto, port and path to NULL. * modules/mailutils/mailutils.c (checksize): Set res->auth. (mod_mailutils_init): New options config-verbose and config-verbose. Set mu_cfg_parser_verbose depending on the flags. Collect gocs capabilities and call mu_libcfg_init. * src/Makefile.am (INCLUDES): Add @LTDLINCL@. * src/smapc.c (read_eval_loop): Handle comments. * src/smapd.c (cfg_max_children, cfg_global_max_children): Bugfix. (smap_kwtab): New keyword: trace. * src/srvman.c: Use tcpwrappers only for AF_INET family.
2010-06-08Implement client program.Sergey Poznyakoff5
* configure.ac: Check for readline. * include/smap/url.h: New file * include/smap/Makefile.am (pkginclude_HEADERS): Add url.h * include/smap/diag.h (smap_debug_np, smap_debug_sp) (smtp_debug_locate_n, smtp_debug_locate) (smap_debug_alloc_n, smap_debug_alloc) (smap_debug_printf, smap_debug_set): New protos. (smap_debug): New macro. * include/smap/ostr.h (smap_mapstr_debug_idx): New extern. (smap_map_ostream_create): New proto. * include/smap/wordsplit.h: Include stddef.h. * lib/debug.c: New file. * lib/Makefile.am (libsmap_la_SOURCES): Add new files. * src/smapostr.c: Move to lib. * src/url.c: Move to lib. Fix error reporting. * src/common.h: New file. * src/smapc.c: New file. * src/smapccmd.opt: New file. * src/.gitignore: Update. * src/Makefile.am (bin_PROGRAMS): Add smapc. (smapd_SOURCES): Remove smapostr.c and url.c. (noinst_HEADERS): Add common.h (smapc_SOURCES, smapc_LDADD): New vars. (BUILT_SOURCES, EXTRA_DIST): Update. * src/cmdline.opt: Update. * src/getopt.m4 (print_help): Output the "Mandatory or optional" stanza only if some options actually take arguments. * src/log.c (debug_level, debug_printf) (debug_set): Remove. * src/mem.c: Do not include smapd.h. This source is shared between two applications. * src/smapd.c: Minor changes. * src/smapd.h: Move some stuff to common.h * src/srvman.c (smap_server_new): Use smap_url_parse. * modules/echo/echo.c (echo_init_db): Bugfix: skip module name.
2010-06-08Housekeeping.Sergey Poznyakoff1
* src/smap.c: Renamed to src/smapd.c * src/smap.h: Renamed to src/smapd.h * configure.ac: Rename smap.c to smapd.c * src/Makefile.am: Rename daemon to smapd. Install it in sbindir. * src/log.c: Rewrite using new library functions. * src/smapd.h (progname, set_program_name): Remove. (close_fds_above, close_fds_except): New protos. * src/getopt.m4: Change version output to: progname (pkgname) pkgversion. * src/cfg.c: Reflect the changes. * src/close-fds.c: Likewise. * src/mem.c: Likewise. * src/module.c: Likewise. * src/smapd.c: Likewise. * src/smapostr.c: Likewise. * src/srvman.c: Likewise. * src/url.c: Likewise. * lib/progname.c: New file. * lib/stderr.c: New file. * lib/syslog.c: New file. * lib/Makefile.am (libsmap_la_SOURCES): Add new files. * include/smap/diag.h (smap_progname): New extern. (smap_set_program_name, smap_openlog_stderr) (smap_openlog_syslog): New protos. * src/kwtrans.c: Remove accidentally committed file.
2010-06-07Merge modules mbq and mu-auth into a single modules: mailutils.Sergey Poznyakoff1
* configure.ac: Remove --with-mbq & --with-mu-auth (MBQ_COND, MU_AUTH_COND): Remove condition. (MAILUTILS_COND): New condition. (AC_CONFIG_FILES): Remove mbq/ and mu-auth/, add mailutils instead. * modules/Makefile.am (SUBDIRS): Remove mbq and mu-auth, add mailutils. * modules/mailutils/Makefile.am: New file. * modules/mailutils/mailutils.c: New file. * modules/mailutils/mbq/*: Remove. * modules/mailutils/mu-auth/*: Remove. * include/smap/ostr.h (smap_ostream_write): Buffer is const. * lib/ostr.c: Likewise. * modules/guile/guile.c: Add missing includes. * src/smap.h (MAX_DEBUG_COUNT): Fix constant.
2010-06-07Improve module loading/unloading sequence. Implement `guile' module.Sergey Poznyakoff3
* include/smap/parseopt.h: New file. * lib/parseopt.c: New file. * lib/Makefile.am (libsmap_la_SOURCES): Add parseopt.c. * src/cfg.c (cfg_cur_line): New variable. (read_line,parse_config): cfg_line keeps number of the line where the current statement started. cfg_cur_line keeps the actual line number. * src/module.c (smap_modules_unload): New function. (link_databases): Merge into init_databases. (init_databases): New function. (close_databases): New function. (free_databases: New function. * src/query.c (route_query): Rewrite initialization sequence. (match_map,match_cond): Minor fixes. * src/smap.c (smap_session_server): Close databases before returning. (smap_daemon): Return to caller, instead of exiting. (main): Rewrite initialization sequence. * src/smap.h: Include time.h (DBG_DATABASE): New constant. (smap_database_instance)<opened>: New member. (link_databases): Remove proto. (init_databases, free_databases, close_databases): New prototypes. * gint: New module. * Makefile.am (SUBDIRS): Add gint (ACLOCAL_AMFLAGS): Likewise. * bootstrap: Initialize submodules. * configure.ac: Initialize GINT * modules/Makefile.am (SUBDIRS): Add guile (conditionally) * modules/guile/Makefile.am: New file. * modules/guile/guile.c: New file. * include/smap/Makefile.am (smap_module) <smap_open> <smap_close>: New methods. * modules/echo/echo.c: Update module interfaces. Add missing includes. * modules/mbq/mbq.c: Likewise. * modules/mu-auth/mu-auth.c: Likewise. * lib/ostr.c: Add missing includes. * lib/wordsplit.c: Likewise. * src/srvman.c: Minor fixes. * src/url.c: Likewise.
2010-06-07Improve passing connection information to modules. Implement mu-auth module.Sergey Poznyakoff1
* NEWS: Update. * configure.ac: New option --enable-mu-auth * include/smap/module.h (smap_conninfo): New struct. (smap_module)<smap_query>: Replace last 4 argumenst by struct smap_conninfo const *. * modules/echo/echo.c (echo_query): Update declaration. * modules/mbq/mbq.c (mbq_query): Update declaration. (cfg_param): Implement `onerror' configuration statement. * src/Makefile.am (EXTRA_DIST): Add cmdline.c * src/log.c (debug_set): Fix return statement. * src/query.c (query_pack): Replace sa,salen by conninfo. (match_cond): Update. (route_query): Take struct smap_conninfo * as 2nd argument. * src/smap.c (smap_session_server): Pass smap_conninfo * to route_query. * src/smap.h (route_query): New proto. * src/srvman.c (smap_srvman_get_sockaddr): New function. * src/srvman.h (smap_srvman_get_sockaddr): New proto. * modules/Makefile.am (SUBDIRS): Add mu-auth (conditionally). * modules/mu-auth/Makefile.am: New file. * modules/mu-auth/mu-auth.c: New file.
2010-06-07Implement loadable modules. Add `echo' module.Sergey Poznyakoff7
* include/Makefile.am: New file. * include/smap/Makefile.am: New file. * include/smap/module.h: New file. * lib/Makefile.am: New file. * src/module.c: New file. * src/query.c: New file. * include/smap: New directory. * src/kwtab.h: Move to include/smap. * src/diag.h: Likewise. * src/ostr.h: Likewise. * src/wordsplit.h: Likewise. * lib: New directory. * src/kwtab.c: Move to lib * src/ostr.c: Likewise. * src/wordsplit.c: Likewise. * lib/diag.c: New file. * Makefile.am (SUBDIRS): Add include and lib * configure.ac: Update. * src/Makefile.am: Move installable headers to include/smap, libraries to lib. (smap_SOURCES): Add module.c, url.c, query.c. (AM_CPPFLAGS): Define SMAP_MODDIR. * src/log.c (smap_error_str, smap_debug_str) (smap_trace_str): Move to lib/diag.c (smap_verror, smap_error): Likewise. * src/smap.c (smap_kwtab): Add new keywords. (main): Initialize module subsystem. * src/smap.h: Update. * modules/Makefile.am: New file. * modules/echo/Makefile.am: New file. * modules/echo/echo.c: New file.

Return to:

Send suggestions and report system problems to the System administrator.