From: Aleksey C. <vl...@gm...> - 2007-05-30 12:58:02
|
New dictd-1.10.9 released. Source are available at http://sf.net/projects/dict ================================================================ Major changes: dictd: - ADDED: 'limit_time' keyword for limiting time (in seconds) during which a client may talk to the server. This is for preventing DOS attacks. This option may be used as a replacement for 'delay' option. See dictd.8 for the documnetation - ADDED: new keyword 'limit_matches' and 'limit_defintions' limiting a number of matches and definitions respectively that the server may send to the client. This is for preventing DOS attacks. See dictd.8 for more information - ADDED: new keyword 'limit_queries' limiting a number of queries that client may send to the server This is for preventing DOS attacks. See dictd.8 for more information - ADDED: new keyword 'limit_childs' equal to old 'limit'. 'limit' is now deprecated. Use 'limit_childs' instead. - ADDED: Two new search strategies, 'first' and 'last'. They match first or last word only in a multi-word entries. See dictd.8 for more information. - ADDED: new keywords 'site_no_banner', 'site_no_uptime' and 'site_no_dblist' for changing the way dictd answers on SHOW SERVER command (dict -I) See dictd.8 for more information. - ADDED: support for the case-sensitive search. For this database should be created with dictfmt --case-sensitive. - 'site' keyword has been moved to 'global' section of dictd.conf file Do not place it at the top level! - removed: --test-XXX options. Use -i and --stdin2stdout for debugging. dictfmt: - FIXED: longopts passed to getopt_long as argument was not ended with zeros. I even don't how this code could work for so many years. Affected dictfmt versions: 1.6.1-1.10.8 - ADDED: --index-data-separator option that allows to set index and data parts of the headword in .index file (first and fourth columns respectively) completely independantly. That is, the first column in .index file can now be treated as an index and an optional fourth columns - as a data, all this for MATCH protocol command. See dictfmt.1 for more information. - added: -i and -I for resorting .index files. See dictd.8 for more information. - added: By default a special headword 00-database-dictfmt-X.Y.Z is generated, i.e. every created database is marked "what version of dictfmt was used to create it". added: --without-ver option for preventing this. dictunformat: - minor fixes and improvements for 4-column .index file input See dictfmt --index-data-separator and dictunformat --index-data-separator dictfmt_index2suffix and dictfmt_index2word - fixes, now these utilities are ready for 4-column input and use 'dictfmt -i/-I' for resorting .index entries. See dictfmt.1 for more information. dict: - ADDED: -f option that enables formatted output, i.e. output convenient for postprocessing by standard UNIX utilities. See dict.1 for more information. ================================================================ ChangeLog: * dictfmt_index2suffix: mawk sucks * test/testdb.cyrillic_1.conf, test/testdb.cyrillic_2.conf, test/testdb.cyrillic_4.conf, test/testdb.defstrat_1.conf, test/testdb.defstrat_2.conf, test/testdb.hello_1.conf, test/testdb.hello_2.conf, test/testdb.hello_3.conf, test/testdb.hello_4.conf, test/testdb.hello_5.conf, test/testdb.indexdata_1.conf, test/testdb.limits_1.conf, test/testdb.mixedcase_1.conf, test/testdb.smiley_1.conf, test/testdb.smiley_2.conf, test/testdb.smiley_3.conf, test/testdb.smiley_4.conf, test/testdb.smiley_5.conf: no limits in most tests * dictdplugin_dbi.c, dictdplugin_judy.c: compilation fixes * NEWS, configure.in: 1.10.9 release * daemon.c, dictd.8.in: limit_queries=0 means no limit * NEWS: notes about fix with getopt_long argument * NEWS: minor fixes * NEWS: notes about "limit_childs" keyword * defs.h, dictd.8.in, dictd.c, dictd.h, servparse.y, servscan.l: option/variable/macro renamings: limit -> limit_childs * NEWS, daemon.c, defs.h, dictd.8.in, dictd.c, dictd.h, servparse.y, servscan.l: ADDED: new keyword 'limit_queries' for limiting a number of queries that client may send to the server. It defaults to 2000. minor fixes in NEWS * dictfmt.c: better checking for required argument * NEWS: note about 1.10.9 release * dictfmt.1.in: minor fixes * dict.1.in: new words about -f * dict.1.in: minor fix * daemon.c, defs.h, dictd.8.in, dictd.c, dictd.h, servparse.y, servscan.l: ADDED: 'limit_time' option to 'global' dictd.conf section See dictd.8 for the more information. minor clean-ups: dict_daemon and dict_inetd function use global variable client_delay * test/dictd_cyrillic_3_res.expected.txt: forgot to commit it * test/dictd_test.in, test/input.cyrillic_3.txt, test/testdb.cyrillic_2.conf, test/testdb.cyrillic_4.conf, configure.in: new self tests minor clean-ups * dictd.8.in, index.c, strategy.c, strategy.h: ADDED: Two new search strategies, 'first' and 'last'. See dictd.8 for the information. * dictd.c: I like empty lines to better separate code into sections ;-) * dictfmt_index2suffix, dictfmt_index2word: rewritten. Now they use dictfmt -i/-I for sorting fixes clean-ups * dictfmt.c: fix with -i and -I * dict.c: -f sends error messages like 'No matches...', 'No definitions...', 'Invalid strategy...' etc. to stderr, not to the pager. * test/dictd_test.in, test/testdb.cyrillic_2.conf: commented test for dictfmt_index2word * dictfmt_index2word: fixes * dictfmt.c: -i and -I options fully support 4-column input * index.c: removed: unnecessary code for --test-xxx * dictfmt_index2word: almost completely rewriten * dictfmt.1.in, dictfmt.c: -i and -I have the following format: dictfmt -i|-I [options] * dictfmt.1.in, dictfmt.c: -i and -I twins are now fully implemented and documented. See dictfmt(1) form documentation * test/dictd_test.in: clean-ups * test/dictd_test.in: nothing * test/dictd_cyrillic_1_res.expected.txt, test/dictd_defstrat_2_res.expected.txt, test/dictd_hello_1_res.expected.txt, test/dictd_hello_2_res.expected.txt, test/dictd_hello_3_res.expected.txt, test/dictd_hello_4_res.expected.txt, test/dictd_hello_5_res.expected.txt, test/dictd_smiley_2_res.expected.txt, test/dictd_smiley_4_res.expected.txt, test/dictd_smiley_5_res.expected.txt, test/dictd_test.in: fixed: <CR> symbol at the end of line... * test/dictd_defstrat_2_res.expected.txt, test/dictd_test.in, test/input.defstrat_2.txt, test/testdb.defstrat_2.conf: another tiny test for default_strategy * test/dictd_defstrat_1_res.expected.txt, test/dictd_test.in, test/input.defstrat_1.txt, test/testdb.defstrat_1.conf: test for dictd/dictfmt --default-strategy * test/dictd_limits_1_res.expected.txt, test/dictd_test.in, test/input.limits_1.txt, test/testdb.limits_1.conf: small test for limi_matches * dictfmt.c, dictunformat.in: 00-database-dictfmt-X.Y.Z headword is generated instead of 00-database-dictfmt * dictd.h, index.c, servparse.y, servscan.l, defs.h, dictd.8.in, dictd.c: ADDED: new keywords in "global" section. limit_matches and limit_defintions See dictd.8 for information * dictd.8.in: removed: docs about --test-* options * index.c: code clean-ups, added: dict_add_word_to_list function * dict.c, dictd.c, dictzip.c: I don't like $ in the code * dictd.c: copyright * dictd.c: The following option are removed: -t --test <word> --test-file <file> --ftest <file> --test-strategy <strategy> --test-db <database> --test-match --test-nooutput --test-idle --test-show-info <database> All these options were created for testing and debugging. Actually -i and newly created --stdin2stdout is anough (and better) for this. * dictd.8.in: minor improvement * daemon.c, dictd.8.in, dictd.c, dictd.h, servparse.y, servscan.l: ADDED: site_no_banner, site_no_uptime, site_no_dblist keyword to the configuration file ("global" options section). See dictd.8 for more information. * daemon.c, defs.h, dictd.8.in, dictd.c, dictd.h, examples/dictd4.conf, servparse.y: 'site' keyword has ben moved to 'global' ection of configuration file 'site' section is deprecated now, but is still supported, error messages is logged if it used. Documentation and examples/ are up-to-date * dict.1.in: documentation for an option -f * dict.c: -m support -f too. Matches have the following format <host><TAB><port><TAB><db><TAB><match> -D, -S, -I, -H, -i and similar also support -f (formatted output) * dict.c: new option -f partially implemented * dictunformat.in: Recently 4-column .index entries were introduced. Now dictunformat is ready for this kind of dictionaries and produces correct output. * test/dictd_test.in, dictfmt.1.in, dictfmt.c, dictunformat.in: added: dictfmt --without-ver option. See dictfmt.1 for more information * dictfmt.1.in: some docs for 00-database-mime-header entry minor fixes and changes * dictfmt.1.in: documentation for --case-sensitive option * dictfmt.1.in: documentation for --index-data-separator option * test/db.expect.indexdata_1.index, test/dictd_test.in, test/testdb.indexdata.txt: more complex test * dictfmt.c, test/db.expect.indexdata_1.dict, test/db.expect.indexdata_1.index, test/dictd_indexdata_1_res.expected.txt, test/dictd_test.in, test/input.indexdata_1.txt, test/testdb.indexdata.txt, test/testdb.indexdata_1.conf: added: tests --index-data-separator and --index-keep-orig dictfmt options and appropriate dictd search * dictfmt.c: ADDED: --dictfmt --index-data-separator option that allows to set index and data parts of the headword in .index file (first and fourth columns respectively) completely independantly. That is, the first column in .index file can now be treated as an index and an optional fourth columns - as a data, all this for MATCH protocol command. * codes.h, daemon.c, data.c, data.h, defs.h, dict.c, dict.h, dictP.h, dictd.c, dictdplugin_dbi.c, dictdplugin_judy.c, dictzip.c, heap.c, heap.h, index.c, index.h, lev.h, md5.c, net.c, net.h, parse.c, parse.h, plugin.c, plugin.h, plugins_common.c, plugins_common.h, servparse.y, servscan.l, str.c, str.h, strategy.c, strategy.h, clientparse.y, clientscan.l: removed: $Id$, I don't like it * dictfmt.c: no $Id$ * dictfmt.c: code clean-ups * dictunformat.in: 00-database-case-sensitive headword is also not output * defs.h, dictd.c, dictfmt.c, index.c, index.h, str.c, str.h, test/db.expect.mixedcase_1.dict, test/db.expect.mixedcase_1.index, test/dictd_mixedcase_1_res.expected.txt, test/dictd_test.in, test/input.mixedcase_1.txt, test/testdb.mixedcase.txt, test/testdb.mixedcase_1.conf: ADDED: support for case sensitive search. For this, database should be created using dictfmt --case-sensitive. In this case 00-database-case-sensitive headword is created which is checked by dictd * data.c, index.c, net.c: fixed: gcc4/NetBSD warning messages * Makefile.in: fix: tab should begin the first line of action, not spaces -- Best regards, Aleksey Cheusov. |