aboutsummaryrefslogtreecommitdiff
path: root/dico
AgeCommit message (Collapse)AuthorFiles
2023-05-11Remove use of obsolete gethostby* functionsSergey Poznyakoff1
* configure.boot: Remove check for gethostbyaddr * dico/autologin.c (hostcmp): Rewrite using getaddrinfo. * dicod/accesslog.c (sockaddr_to_hostname): Rewrite using getnameinfo. * xdico/xhostname.c (xdico_local_hostname): : Rewrite using getaddrinfo.
2023-01-22Update copyright yearsSergey Poznyakoff11
2021-01-08Upgrade submodules. Version 2.10.90.Sergey Poznyakoff1
* NEWS: Version 2.10.90 * configure.boot: Version 2.10.90. Raise autoconf, automake, and gettext requirements. * grecs: Upgrade to b0cbc54209de4c631952005b122ce09f84866700. * gnulib: Upgrade to v0.1-4336-gbdae9a5 * include/xdico.h: Define GNULIB_XALLOC_DIE and include xalloc.h. See the comment for the reason. * xdico/gnu/Makefile.am: Define GNULIB_XALLOC_DIE. * xdico/xalloc-die.c (xalloc-die): Call abort to avoid a 'noreturn' warning. * dico/dico-priv.h: Don't include xalloc.h * dicod/dicod.h: Likewise. * dicod/tests/apopauth.c: Likewise. * xdico/iputil.c: Likewise. * xdico/timer.c: Likewise. * xdico/userprivs.c: Likewise. * xdico/xhostname.c: Likewise. * xdico/xscript.c: Likewise. * xdico/xtkn.c: Likewise. * xdico/xutil.c: Likewise.
2021-01-06Update copyright yearsSergey Poznyakoff11
2020-09-04Version 2.10release-2.10Sergey Poznyakoff11
2019-02-22Avoid introducing gnulib dependencies to libdicoSergey Poznyakoff11
After pulling updates from gnulib, it was discovered that it had added an unwanted dependency to the libdico. The dependency was added b redefining fseek to rpl_fseek in the config.h. Of course, that's quite OK for user programs and in fact that's one of the purposes of gnulib, so it's doing its job all right. However, this kind of depedencies is not acceptable in installable libraries, such as libdico. There are two ways of fixing this: (1) by including libgnu to the libdico, or (2) by creating pristine (i.e. stripped of any gnulib stuff) version of config.h and using it in the library sources. The first approach was used in mailutils for the libmu_aux convenience library. However, in dico I wouldn't like to introduce additional dependencies to the installable libraries and modules, therefore second approach has been chosen. Two separare configuration headers are introduced: include/prog/config.h Configuration header with gnulib dependencies. It is used by libxdico, and user-space programs: dico, dicod, idxgcide and some test programs. include/lib/config.h Pristine header, free from any gnulib additions. It is used by all installable libraries, including dicod modules. In order to create pristine header, bootstrap uses specially prepared temporary edition of configure.ac, which is stripped off any gl_.* statements. This approach introduces additional difficulties. The two header files are of course listed in the AC_CONFIG_HEADERS statement in configure.ac. Autotools give precedence to the first one. It is the only file for which autoheader creates the .h.in template. Further, automake creates in each Makefile.am the DEFAULT_INCLUDES statement, which lists the directory part of the first header, and this value is used in the compiler command line. This means that to include the pristine header, its path prefix needs to be specified. To avoid this, the nostdinc option is passed to AM_INIT_AUTOMAKE. As a side effect, it makes it impossible to build libltdl in the recursive mode (although its Makefile.am pretends otherwise). Thus, libltdl is built in nonrecursive mode from the main Makefile.am. Similar problem occurs with the gnulib itself, although in this case its bootstrapping tool provides sufficient mechanisms to help overcome it. Gnulib is built as a sub-library of libxdico. As a side effect, the libextra library is no longer needed. Another side effect is that the rewritten bootstrap script made it possible to use gnulib-tool directly, instead of using gnulib/build-aux/bootstrap wrapper. Following bugs are fixed by this change: https://puszcza.gnu.org.ua/bugs/?416 https://puszcza.gnu.org.ua/bugs/?417 https://puszcza.gnu.org.ua/bugs/?418 Almost all files in the project are affected by this change. However, some changes are pure bugfixes. These are: * lib/mergesort.c (mergesort): Rename to dico_mergesort to avoid name clash on Free and OpenBSD. * lib/stream.c (dico_stream_getdelim): Fix memory reallocation algorithm. * lib/utf8.c (utf8_wc_strstr): Reset errno to 0. * lib/libi18n.c: Don't depend on gnu/configmake.h * modules/wordnet/module.ac: Move definition of WORDNET_COND out of conditional context. This fixes the functionality of the configure --without-wordnet option. Some obsolete and unused files have been removed. These are: * include/gjdict.xbm * lib/bushu.dat * lib/bushu.h * lib/cursor.xbm * lib/jiscvt.c * makedict/ Main set of changes is: * bootstrap: Mostly rewritten as described above. * GNUmakefile: New file for the ease of maintenance. * maint/bootstrap.mk: New file. * gnulib.modules: Moved to maint/ * maint/printflike: New file. Lists printf-like functions for gettext. * configure.boot: Use AC_CONFIG_HEADERS with two header files. Use nostdinc option to AM_INIT_AUTOMAKE. (LTDL_INIT): Use nonrecursive option. (DICO_PROG_CONFIG,DICO_LIB_CONFIG) (DICO_PROG_INCLUDES,DICO_MODULE_INCLUDES): New substitution variables. (GRECS_HOST_PROJECT_INCLUDES): Fix value. (COND_LIBDICOSASL): New conditional. * Makefile.am: Build libltdl. * lib/Makefile.am: Move convenience libraries to another directory. Build only libdico. * dico/Makefile.am: Fix LDADD and includes. * dicod/Makefile.am: Likewise. * dicod/tests/Makefile.am: Likewise. * lib/tests/Makefile.am: Likewise. * modules/*/Makefile.am: Likewise. The directory struture is reorganized and the sources of convenience libraries moved to a separate directory: * xdico/Makefile.am: New file * xdico/appi18n.c * xdico/gsaslstr.c * xdico/iputil.c * xdico/timer.c * xdico/userprivs.c * xdico/xalloc-die.c * xdico/xhostname.c * xdico/xscript.c * xdico/xstream.c * xdico/xtkn.c * xdico/xutil.c: All moved from lib * xdico/gnu/Makefile.am: New file. * xdico/gnu: Gnulib sources imported to this directory.
2018-09-15Provide own binary search and sort functions.Sergey Poznyakoff1
* lib/bsearch.c: New file. * lib/mergesort.c: New file. * include/dico/list.h (dico_list_comp_t): Change signature. (dico_list_set_comparator) (dico_list_intersect, dico_list_intersect_p) (_dico_list_locate, _dico_list_remove): Change signature. (dico_list_set_comparator_data) (dico_list_get_comparator_data): New protos. * lib/list.c (dico_list)<comp_data>: New member. (dico_list_set_comparator) (dico_list_intersect, dico_list_intersect_p) (_dico_list_locate, _dico_list_remove): Change signature. (dico_list_set_comparator_data) (dico_list_get_comparator_data): New functions. * lib/Makefile.am: Raise library version number. * dico/saslauth.c: Reflect the above changes. * dicod/acl.c: Likewise. * dicod/alias.c: Likewise. * dicod/capa.c: Likewise. * dicod/commands.c: Likewise. * dicod/gsasl.c: Likewise. * dicod/lang.c: Likewise. * dicod/main.c: Likewise. * dicod/virtual.c: Likewise. * include/dico/strat.h: Likewise. * include/dico/util.h: Likewise. * lib/assoc.c: Likewise. * lib/markup.c: Likewise. * lib/strat.c: Likewise. * lib/tests/listop.c: Likewise. * lib/udb.c: Likewise. * modules/gcide/gcide.c: Likewise. * modules/wordnet/wordnet.c: Likewise. * modules/dict.org/dictorg.c: Use appropriate comparisons in uniq_comp and compare_entry_ptr.
2018-09-03Minor stylistic changeSergey Poznyakoff6
2018-01-25Update copyright yearsSergey Poznyakoff11
2017-01-02Happy GNU YearSergey Poznyakoff11
2016-11-11dico: accept UNIX socket as argument to openSergey Poznyakoff2
* dico/connect.c (dict_connect): Accept UNIX socket pathname as argument. Improve error checking. * dico/func.c (ds_open): If one argument given, it can be a socket pathname. * doc/dico.texi: Document changes to the "open" command.
2016-08-05Improve module unit testingSergey Poznyakoff1
* grecs: Update. * dico/cmdline.opt: fix the style of option descriptions * dicod/cmdline.opt (--test option): Rename to --runtest (-r). Stop further processing after this option. * dicod/loader.c (dicod_module_test): Fix comment. * dicod/main.c: Ignore configuration file if in unit testing mode. * doc/dico.texi: Document unit testing mode. * doc/dicod.8in: Likewise. * modules/metaphone2/tests/build.at: Fix dicod arguments. * modules/metaphone2/tests/comp01.at: Likewise. * modules/metaphone2/tests/comp02.at: Likewise. * modules/metaphone2/tests/encode.at: Likewise.
2016-08-05Update copyright yearsSergey Poznyakoff11
2016-07-31Add libgnu as a submoduleSergey Poznyakoff1
* gnulib: New module. * .gitignore: Update. * bootstrap: Rewrite from scratch. * gnulib.modules: Remove deprecated modules. * bootstrap.conf: Rename to gnulibinit.conf * modules/.gitignore: New file. * dico/Makefile.am: Link to libgnu.la, instead of libgnu.a * dicod/Makefile.am: Likewise. * dicod/tests/Makefile.am: Likewise. * makedict/Makefile.am: Likewise. * modules/gcide/Makefile.am: Likewise. * stub.ac: Minor change.
2015-09-29Fix default port in dico clientSergey Poznyakoff1
* dico/connect.c (dict_connect): Select default port if url->port is not set.
2014-09-25Various fixes.Sergey Poznyakoff1
* dico/shell.c (_command_completion): Fix type of the first parameter. (shell_init): Remove typecast. * lib/tests/utf8.c: Fix format specifiers. * modules/dict.org/dictorg.c (init_suffix_index): Redo freeing loop. * modules/gcide/Makefile.am: Refer to libgcide.la without leading ./, to fix compilation with BSD Make. * modules/gcide/gcide.c (gcide_init_db): Avoid using old-style GNU member specification. * modules/gcide/idx.c (_cache_promote): Fix type of the counter. * modules/outline/outline.c (init_suffix_index): Redo freeing loop.
2014-09-25IPv6 support.Sergey Poznyakoff5
* grecs: Upgrade. * configure.ac (GRECS_SETUP): Request sockaddr-list. * include/dico/types.h (DICO_DICT_PORT_STR): New constant. (dico_url) <port>: Change type to char *. All uses changed. * include/dico/url.h (ip_hostname, get_ipaddr) (str2port): Remove obsolete functions and data types. * include/appi18n.h (appi18n_init): New proto. * dicod/accesslog.c: Add typecasts to struct sockaddr*. Fix format string conversions. * dicod/acl.c (acl_value): New union. (acl_entry) <sockaddrs>: Rename to values. Holds acl_value entries now. (_parse_sockaddr): Remove. (_parse_acl_value): New function. Use grecs CIDRs to represent ACL entries. (_check_sockaddr): Replace with _check_value. All uses updated. * dicod/alias.c (alias_hasher): Fix signature. * dicod/dicod.c: Add typecasts to struct sockaddr*. * dicod/dicod.h (client_addr): Change type to sockaddr_storage. * dicod/ident.c (query_ident_name): Remove unused variable. * dicod/loader.c: Minor fix. * dicod/main.c (cb_dico_sockaddr_list): Use grecs sockaddr-list support. * dicod/server.c (address_family_to_domain): Add IPv6 support. (client_addr): Change type to struct sockaddr_storage. All uses changed. * dico/cmdline.opt: Update. * dico/connect.c (dict_connect): Rewrite using getaddrinfo. * dico/dico-priv.h (source_addr): Change type to char*. (shell_banner): New proto. * dico/dico.c (source_addr): Change type to char*. (fixup_url): dico_url.port member is char *. * dico/func.c: dico_url.port member is char *. * lib/iputil.c (ip_hostname, get_ipaddr) (str2port): Remove obsolete functions. (sockaddr_to_str): Add IPv6 support. * lib/url.c (url_get_host): Allocate memory for url.port (dico_url_destroy): Free port. * lib/logstream.c: Minor fixes. * lib/qp.c: Likewise. * modules/gcide/markup.l: Likewise.
2013-12-19Fix dico/ in accordance with c1f6dc71Sergey Poznyakoff3
2013-12-18Update submodules and build systemSergey Poznyakoff1
* bootstrap (gnulib_extra_files): Remove "missing". * configure.ac: Require libtool 2.4 and gettext 0.18 * dicod/cmdline.opt: Use the program_version option. * dicod/dicod.h (program_version): New extern. * gint: Upgrade. * grecs: Upgrade. * lib/levenshtein.c (dico_levenshtein_distance): Avoid assigning dist at each iteration. * dico/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. * dicod/Makefile.am: Likewise. * dicod/tests/Makefile.am: Likewise. * lib/Makefile.am: Likewise. * lib/tests/Makefile.am: Likewise. * makedict/Makefile.am: Likewise. * modules/dict.org/Makefile.am: Likewise. * modules/gcide/Makefile.am: Likewise. * modules/gcide/tests/Makefile.am: Likewise. * modules/guile/Makefile.am: Likewise. * modules/ldap/Makefile.am: Likewise. * modules/nprefix/Makefile.am: Likewise. * modules/outline/Makefile.am: Likewise. * modules/pam/Makefile.am: Likewise. * modules/pcre/Makefile.am: Likewise. * modules/python/Makefile.am: Likewise. * modules/stratall/Makefile.am: Likewise. * modules/substr/Makefile.am: Likewise. * modules/word/Makefile.am: Likewise. * modules/wordnet/Makefile.am: Likewise.
2012-03-03Improve SASL authentication.Sergey Poznyakoff1
* dico/saslauth.c: Make sure authentication is attempted only if the server offers SASL. (authctx): New struct. (match_capa,getauthcontext) (freeauthcontext): New functions. (saslauth0): Change signature: take authctx as 3rd arg. (saslauth): Return AUTH_CONT if SASL is not available or none of its methods matches those implemented on the client side. * dicod/main.c (user_db_config): Fix the source location copy. (init_user_db): Clear sasl_enable if no user database is configured. (main): Call register_sasl after init_user_db so that the above change takes effect. * dicod/server.c (dicod_server): Don't try to remove pidfile in foreground mode. * doc/proto.texi: Minor fix.
2012-01-29Fix the docs.Sergey Poznyakoff1
* dico/cmdline.opt: Use the gnupackage option to include web URL into the help output. * dicod/cmdline.opt: Likewise. * doc/dico.texi: Improve some wording.
2012-01-10Use wordsplit instead of dico_argcv.Sergey Poznyakoff4
* dico/autologin.c (parse_autologin): Rewrite using wordsplit. * dico/dico-priv.h: Include wordsplit.h * dicod/dicod.h: Likewise. * dico/saslauth.c (get_implemented_mechs): Use wordsplit. * dico/shell.c (_command_completion): Likewise. * dicod/gsasl.c (register_sasl): Likewise. * dicod/loader.c (dicod_load_module): Likewise. * dicod/main.c (set_dict_handler): Likewise. * modules/guile/guile.c (guile_load): Likewise. * modules/ldap/ldap.c (db_open): Likewise. * modules/guile/Makefile.am (INCLUDES): Add @GRECS_INCLUDES@ * modules/ldap/Makefile.am: Likewise. * modules/outline/Makefile.am: Likewise. * modules/outline/outline.c (outline_lang): Likewise.
2012-01-10Incorporate Grecs into libdico.Sergey Poznyakoff1
* grecs: Update. * configure.ac (GRECS_SETUP): Use the "shared" option. * lib/Makefile.am (libdico_la_LIBADD): Incorporate libgrecs * dico/Makefile.am (LDADD): Remove @GRECS_LDADD@. * dicod/Makefile.am: Likewise.
2012-01-09Use Grecs instead of the built-in configuration parser.Sergey Poznyakoff2
Grecs is a convenience library for parsing sructured configuration files. It derived from the dicod and wydawca parsers in 2009. It has already reached stable status and is now used by quite a few other projects. * .gitmodules: Add Grecs * Makefile.am: Likewise. * configure.ac: Likewise. * dico/Makefile.am (LDADD,INCLUDES): Add Grecs. * dico/cmdline.opt (OPTIONS_BEGIN): Rewrite. * dicod/Makefile.am (dicod_SOURCES): Remove pp.c, config-format.c, config-gram.y and config-lex.l. Add lint.c * dicod/acl.c: Use Grecs. * dicod/alias.c (alias)<kw>: Remove const. <locus>: Change type. (alias_install): Allocate kw. * dicod/cmdline.opt (OPTIONS_BEGIN): Rewrite. * dicod/config-format.c: Remove. * dicod/config-gram.y: Remove. * dicod/config-lex.l: Remove. * dicod/lint.c: New file. * dicod/dicod.h: Remove configuration parser types and definitions. * dicod/gsasl.c (cmp_names): List contains now pointers to strings. * dicod/loader.c (_add_load_dir): Likewise. * dicod/main.c: Rewrite configuration parser using Grecs. * dicod/server.c (open_sockets): Operate on grecs_sockaddr structs. * gnulib.modules (gitlog-to-changelog): Remove. * include/appi18n.h: Redefine _ and N_ only if necessary. * utils/Makefile.am (EXTRA_DIST): Remove getopt.m4 * utils/getopt.m4: Remove. * README-hacking: Update.
2012-01-09Move UTF-8 tokenizer to libdico.Sergey Poznyakoff2
* lib/tokenize.c: Rewrite. * lib/xtkn.c: New file. * lib/Makefile.am (libdico_la_SOURCES): Add tokenize.c (libxdico_a_SOURCES): Remove tokenize.c, add xtkn.c. * include/dico.h: Include dico/tokenize.h * include/dico/tokenize.h: New file. * include/dico/Makefile.am (pkginclude_HEADERS): Add tokenize.h * include/xdico.h: Remove xdico tokenizer interface. (xdico_tokenize_string): New proto. * dico/connect.c (_result_parse_def): Use new tokenizer. * dico/shell.c (parse_script_file): Likewise. * dicod/dicod.c (dicod_loop): Likewise. * dicod/config-lex.l (unescape_to_obstack): Use dico_unquote_char.
2012-01-09Happy GNU YearSergey Poznyakoff11
2010-07-02Fix typos in debugging messages.Sergey Poznyakoff2
2010-05-23Housekeeping work.Sergey Poznyakoff1
* NEWS: Document new features and bugfixes. * dico/.gitignore, tests/.gitignore: Update.
2010-05-23Minor fixes.Sergey Poznyakoff3
* configure.ac: Version 2.0.90 Call gl_INIT before checking for data types. Check for socklen_t. * NEWS: Version 2.0.90 * dico/connect.c (dict_auth): Return 1 if everything else fails. * dico/dico-priv.h (print_version, print_version_only): New protos. * dicod/dicod.h (server_addrlen, client_addrlen): Change type to socklen_t. * dicod/server.c (dicod_server): Change type of addrlen to socklen_t. * include/dico/utf8.h (utf8_char_width, utf8_iter_first) (utf8_wctomb, utf8_symcmp, utf8_symcasecmp, utf8_strcasecmp) (utf8_strncasecmp): Use (unqualified) char in argument lists. All uses updated. * lib/utf8.c: Likewise. * dico/lookup.c: Silence gcc warnings about diff in signedness. * dicod/ident.c: Likewise. * lib/tokenize.c: Likewise. * lib/xstream.c: Likewise. * modules/dict.org/dictorg.c: Likewise. * modules/dict.org/dictstr.c: Likewise. * modules/outline/outline.c: Likewise. * modules/guile/guile.c: Remove unused functions and variables. * utils/getopt.m4 (print_help): Avoid gcc warning about condition always true.
2010-03-26Normalize exit codes.Sergey Poznyakoff3
* gnulib.modules: Add sysexits * lib/xalloc-die.c: Exit with code EX_OSERR. * utils/getopt.m4 (GETOPT): Provide optional `opterr' argument. * dicod/cmdline.opt (get_options): Exit with EX_USAGE in case of unhandled option. * dicod/config-lex.l: Move includes to the '%top' block. Define YY_EXIT_FAILURE. * dicod/dicod.c (sig_alarm): Exit with EXIT_TIMEOUT. * dicod/dicod.h: Include sysexits.h. * dicod/main.c (main): Normalize exit codes. * dicod/pp.c: Likewise. * dicod/server.c: Normalize exit codes. (print_status): Handle 'time out' exit code separately. Print informational message. * doc/dico.texi (Exit Codes): New section. * NEWS: Update.
2010-01-02Update copyright years.Sergey Poznyakoff11
Happy GNU Year!
2009-09-27Minor changesSergey Poznyakoff1
* Makefile.am: Update ChangeLog rule * configure.ac: Require autoconf 2.63, automake 1.11. Enable silent rules. * dico/connect.c (dict_match): Properly handle successful return from XLEV command.
2009-03-14Minor fixesSergey Poznyakoff1
2008-12-20Minor fix.Sergey Poznyakoff1
* dico/cmdline.opt: Fix --sasl and --nosasl definitions. Remove --strats alias. Use --strat(egies) instead.
2008-12-16Rewamp list and assoc support. Keep MIME headers in an assoc list.Sergey Poznyakoff3
* include/dico/assoc.h (struct dico_assoc): Key is const (DICO_ASSOC_CI, DICO_ASSOC_MULT): New defines. (dico_assoc_append,dico_assoc_find_n): New functions. (dico_assoc_iterator, dico_assoc_remove_n): New functions. (dico_header_parse): New function. * include/dico/list.h (dico_list_destroy): Change signature. (dico_list_set_free_item) (dico_list_set_comparator,dico_list_get_comparator): New functions. (dico_list_insert_sorted): Change signature. (dico_list_locate,dico_list_remove): Change signature. (_dico_list_locate): New function. (dico_iterator_create): Rename to dico_list_iterator (dico_iterator_remove_current): Change signature and return type. * dico/strat.h (dico_strat_name_cmp): Change signature. (dico_strat_free): New proto. * dico/types.h (dico_assoc_list_t): New type. * include/xdico.h (xdico_assoc_append, xdico_assoc_add): New protos. * lib/header.c: New file. * lib/Makefile.am (libdico_la_SOURCES): Add header.c * lib/assoc.c: Major rewrite. * lib/list.c: Associate free_item and compare_item functions with the list. * dicod/dicod.h (dicod_database_t): Remove content_type and content_transfer_encoding. Change type of mime_headers to dico_assoc_list_t. (CONTENT_TRANSFER_ENCODING_HEADER): New define. (dicod_ostream_create): Takes two arguments. * dicod/ostream.c: Rewrite using dico_assoc_list_t for headers. * dicod/main.c: Update calls to list/assoc functions. (kwd_load_module): Remove content-type and content-transfer-encoding. Load mime-headers through a callback, with checking. * dicod/commands.c: Update calls to dicod_ostream_create. * dicod/lang.c: Likewise. * dicod/loader.c: Likewise. * dico/autologin.c: Update calls to list/assoc functions. * dico/connect.c: Likewise. * dico/saslauth.c: Likewise. * dicod/accesslog.c: Likewise. * dicod/acl.c: Likewise. * dicod/alias.c: Likewise. * dicod/auth.c: Likewise. * dicod/capa.c: Likewise. * dicod/config-gram.y: Likewise. * dicod/dbtext.c: Likewise. * dicod/dicod.c: Likewise. * dicod/gsasl.c: Likewise. * dicod/markup.c: Likewise. * dicod/pp.c: Likewise. * dicod/udb.c: Likewise. * lib/markup.c: Likewise. * lib/strat.c: Likewise. * lib/url.c: Likewise. * lib/userprivs.c: Likewise. * lib/utf8.c: Likewise. * modules/dict.org/dictorg.c: Likewise. * modules/outline/outline.c: Likewise.
2008-08-31Allow to restrict the use of default matches that may cause considerableSergey Poznyakoff1
strain on the server (e.g. MATCH * prefix ""). * NEWS, configure.ac: Version 1.99.95 * dico/func.c (check_disconnect): Remove duplicate condition. * dicod/Makefile.am (dicod_SOURCES): Add stratcl.c * dicod/stratcl.c: New file. * dicod/config-gram.y (string_to_unsigned): Additional argument `locus'. All callers updated. * dicod/dicod.c: New exterimental strategy `all'. * dicod/dicod.h (string_to_unsigned): New proto. (enum cmp_op): New data type. (stratcl_add_word, stratcl_add_cmp) (stratcl_add_disable, stratcl_check_word): New functions. * dicod/loader.c (dicod_word_first, dicod_word_all): Check if this word is allowed for searches using this strategy. * dicod/main.c (flush_strat_forward_fn, destroy_strat_forward_fn) (flush_strat_forward, strategy_cb, strategy_deny_all_cb) (strategy_deny_word_cb, strategy_deny_length) (strategy_deny_length_lt_cb, strategy_deny_length_le_cb) (strategy_deny_length_gt_cb, strategy_deny_length_ge_cb) (strategy_deny_length_eq_cb, strategy_deny_length_ne_cb): New functions. (kwd_strategy): New configuration keywords: deny-all, deny-worddeny-word, deny-length-lt, deny-length-le, deny-length-gt, deny-length-ge, deny-length-eq, deny-length-ne. (keywords): New block statement: strategy (main): Call flush_strat_forward * dico/strat.h (struct dico_strategy): New member: stratcl (dico_strat_name_cmp): New function. (dico_strategy_create): New function. * lib/strat.c (strat_name_cmp): Rename to dico_strat_name_cmp. Make global. (dico_strategy_create): New function. (dico_strategy_dup): Use dico_strategy_create.
2008-08-09Bugfix.Sergey Poznyakoff1
* dico/saslauth.c (callback): Handle GSASL_ANONYMOUS_TOKEN.
2008-08-09Bugfixes.Sergey Poznyakoff1
* dicod/dicod.h (sasl_realm): New declaration. * dico/saslauth.c (callback): Add missing callbacks. * dicod/gsasl.c (sasl_realm): New variable. (callback): Add missing callbacks. * dicod/main.c (kwd_sasl): New keyword `realm'.
2008-08-09Remove debugging hooksSergey Poznyakoff2
2008-08-09Bugfixes in SASL-related code.Sergey Poznyakoff3
* dico/saslauth.c (selectmech): Do not use _free_el to deallocate elements of impl. This avoids duplicate calls to free. (sasl_free_data): Do nothing if *pdata is NULL. * dicod/gsasl.c (callback): Fix coredump. * lib/xutil.c (xdico_sasl_capa_match_p): Use c_strcasecmp.
2008-08-09Finish implementing GSASL streams.Sergey Poznyakoff3
* include/gsaslstr.h: New file. * include/Makefile.am: Add gsaslstr.h. * configure.ac: Require gettext 0.17 Define BUILD_LIBDICOSASL and LIBDICOSASL if SASL is required. * dico/Makefile.am, dicod/Makefile.am: Link with LIBDICOSASL. * dico/connect.c, lib/xscript.c: Use new IOCTL codes. * dico/saslauth.c: Include gsaslstr.h (do_gsasl_auth): Insert GSASL stream on success. * dicod/commands.c (dicod_remove_command): New function. * dicod/dicod.c (replace_io_stream): New function. (dicod_loop): I/O stream is static variable instead of the automatic, so that authentication functions can reset it. * dicod/dicod.h (replace_io_stream, dicod_remove_command): New variables. * dicod/gsasl.c: Include gsaslstr.h (sasl_auth): Call gsasl_finish on failure. (dicod_saslauth): Insert GSASL stream on success. * include/dico/diag.h (DICO_DBG_CTL_SET_FILE) (DICO_DBG_CTL_SET_LINE, DICO_DBG_CTL_SET_TS): Remove. * include/dico/stream.h (DICO_IOCTL_GET_TRANSPORT) (DICO_IOCTL_SET_TRANSPORT) (DICO_DBG_CTL_SET_FILE, DICO_DBG_CTL_SET_LINE) (DICO_DBG_CTL_SET_TS): New defines. * include/xdico.h (XSCRIPT_CTL_GET_TRANSPORT) (XSCRIPT_CTL_SET_TRANSPORT): Remove. * lib/Makefile.am (noinst_LIBRARIES): Add @BUILD_LIBDICOSASL@ * lib/gsaslstr.c (struct g_buf): New member pos. (g_buf_ptr, g_buf_level, g_buf_drop): Take into account pos. (g_buf_advance): New macro. (_gsasl_read): Fix buffering. (dico_gsasl_stream): Set line buffering. (insert_gsasl_stream): New function. * lib/stream.c (dico_stream_read): If the stream is line buffered, break the reading loop after receiving a newline character.
2008-08-02Improve debugging.Sergey Poznyakoff4
* dico/connect.c (dict_read_reply): Remove superfluous call to XDICO_DEBUG. * dico/dico-priv.h (ds_verbose): New prototype. * dico/func.c (ds_verbose): New function. * dico/shell.c (verbose): New command. (filename): const. (script_diag, parse_script_file): Minor fix.
2008-08-02Improve debugging.Sergey Poznyakoff1
* lib/dbgstream.c: Include microseconds in timing output.
2008-08-02Improve debugging.Sergey Poznyakoff1
* dico/cmdline.opt: New option --time-stamp. * include/dico/diag.h (DICO_DBG_CTL_SET_TS): New define. * lib/dbgstream.c: Optionally print timestamp information.
2008-08-02Add more debugging to the client.Sergey Poznyakoff6
* configure.ac, NEWS: Version 1.99.93 * lib/dbgstream.c: New file. * lib/Makefile.am (libdico_la_SOURCES): Add dbgstream.c. * dico/autologin.c, dico/connect.c, dico/dico.c, dico/lookup.c, dico/saslauth.c, * include/dico/diag.h (dico_dbg_stream_create): New prototype. (DICO_DBG_CTL_SET_FILE, DICO_DBG_CTL_SET_LINE): New defines. (DICO_DEBUG_SINFO): New macro. * lib/xscript.c (transcript_ioctl): Fix typo. * include/xdico.h (XSCRIPT_CLT_GET_TRANSPORT) (XSCRIPT_CLT_SET_TRANSPORT): (debug_level, debug_source_info, debug_stream): New declarations. (XDICO_DEBUG) (XDICO_DEBUG_F1 through XDICO_DEBUG_F4): New macros. * dico/cmdline.opt: New options --verbose (-v) and --source-info.
2008-07-28Dico is dubbed GNU packageSergey Poznyakoff11
2008-07-24Finish SASL support.Sergey Poznyakoff7
* dico/autologin.c (parse_autologin): Support for new keywords: realm, service and host. * dico/cmdline.opt: New options --sasl, --nosasl. * dico/connect.c (dict_auth): Rewrite authention to avoid dependency from "auth" capability. (auth_cred_free): Free new auth_cred members. (get_credentials): Rename to auth_cred_get, make global. * dico/dico-priv.h (struct auth_cred): New fields service, realm and hostname. (GETCRED_OK, GETCRED_FAIL, GETCRED_NOAUTH): New defines. (auth_cred_get, auth_cred_free): New prototypes. (set_bool): Change return type to int. (ds_sasl): New prototype. (saslauth): Change signature. * dico/func.c (set_bool): Change return type to int. (ds_sasl): New function. * dico/saslauth.c (callback): Use new auth_cred members. (saslauth): Rename to saslauth0. (saslauth, sasl_enable, sasl_enabled_p): New functions. * dico/shell.c: Add `sasl' command. * dicod/main.c (get_full_hostname): Moved to libxdico. * include/xdico.h (xdico_local_hostname): New prototype. * lib/Makefile.am (libxdico_a_SOURCES): Add xhostname.c.
2008-07-24Implement SASL in client.Sergey Poznyakoff6
* dico/saslauth.c: New file. * dico/Makefile.am (dico_SOURCES): Add saslauth.c * dico/autologin.c (parse_autologin): Bugfix. * dico/connect.c (dict_auth): Rename to apop_auth. (dict_auth): New function. (get_credentials): Fill cred with zeros. (dict_connect): Initialize obstack before eventual authentication. * dico/dico-priv.h (AUTH_OK, AUTH_FAIL, AUTH_CONT): New defines. (saslauth): New proto. * dico/func.c (ds_show_info): Remove unused variable. * dicod/dicod.h (struct dicod_command): Rename nparam to minparam. Add new member maxparam. * dicod/auth.c, dicod/commands.c, dicod/lev.c, dicod/mime.c, dicod/xidle.c, dicod/xversion.c: Reflect changes to struct dicod_command. * dicod/gsasl.c (send_challenge): Do not send zero-length data (don't know if I'm right here). (get_sasl_response): Bugfixes. (sasl_auth): Prevent coredump. (callback): Fix. (xlate_mech_to_capa): Move to libxdico. * include/xdico.h (xdico_sasl_mech_to_capa) (xdico_sasl_capa_match_p): New protos. * lib/stream.c (dico_stream_read_unbuffered): Return EIO if stream has hit EOF and user does not check for the number of bytes read. * lib/utf8.c (strlen): Remove. How did it get there??? * lib/xutil.c (xdico_sasl_mech_to_capa) (xdico_sasl_capa_match_p): New functions.
2008-07-23Implement SASL framework (unfinished).Sergey Poznyakoff3
* am/gsasl.m4: Enable GSASL by default, if available. Export GSASL_LIBS. * configure.ac: Check for gsasl. Display a configuration summary before exiting. * dicod/gsasl.c: New file. * dicod/Makefile.am (dicod_SOURCES): Add gsasl.c (LDADD): Add GSASL_LIBS. * dicod/dicod.h (get_input_line, register_sasl): New functions. (sasl_disabled_mech): New extern. * dicod/main.c (keywords): New keyword sasl-disable-mechanism. (main): Call register_sasl. * dico/Makefile.am (LDADD): Add GSASL_LIBS * dico/dico-priv.h (struct auth_cred): New fields sasl and mech. (AUTOLOGIN_MECH): New define. * dico/autologin.c (parse_autologin): Rewrite to allow for multi-line statements. Handle new auth_cred fields.
2008-07-22Minor changes.Sergey Poznyakoff4
* dico/dico-priv.h, dico/func.c (ds_show_info): New function. * dico/pager.c: Setting pager to "-" disables it. * dico/shell.c (funtab): Add info command. * dico.texi: Update. * doc/libdico.texi (utf8_strbytelen): Remove. * lib/tokenize.c, lib/utf8.c, lib/xstream.c: Use strlen instead of the removed utf8_strbytelen.

Return to:

Send suggestions and report system problems to the System administrator.