2006-06-30 Sergey Poznyakoff * NEWS: Update * configure.ac: Raise version to 1.4.91 (MAILUTILS_LIBS): Require auth * src/Makefile.am (mailfromd_SOURCES): Add func.c * src/gram.y: Implement functions, function calls and new conditional `validuser' * src/lex.l: Likewise * src/mailfrom.h (FUNCTION,LOCUS): New types. (node_type): New types node_type_funcall and node_type_validuser (parse_error_locus): New function (function_lookup,function_install): New function * src/main.c: Use enum instead of defines for long option codes. New options: --dump-grammar-trace, --dump-lex-trace and --dump-tree. (capa): Use "auth" capability (main): Call MU_AUTH_REGISTER_ALL_MODULES * doc/mailfromd.texi: Update 2006-06-14 Sergey Poznyakoff * src/Makefile.am (AM_CPPFLAGS): Remove -DMU_COMPAT. We need newest MU * src/gram.y: Adopt new MU namespace * src/lex.l: Likewise * src/mailfrom.h: Likewise * src/main.c: New option --source (#pragma source) Adopt new MU namespace * configure.ac: Raise version number to 1.4.90 * NEWS: Update * README: Update * doc/mailfromd.texi: Update 2006-02-08 Sergey Poznyakoff -= Release 1.4 =- 2006-02-08 Sergey Poznyakoff * src/main.c (listens_on): New function * src/mailfrom.h (listens_on): New prototype * src/lex.l: New token "listens" * src/gram.y: Implement `listens' expression. * src/Makefile.am (LDADD): Use $(MILTER) instead of hardcoding the library name. * etc/sendmail-8.13.1.diff: New file. Patch to Sendmail to make milter use sub-programs instead of threads. * etc/Makefile.am (EXTRA_DIST): Add sendmail-8.13.1.diff * doc/mailfromd.texi (Building): Document --with-forks. (Literals): Document `listens' expression. * configure.ac: Implement --with-forks option. Raise version number to 1.4 * THANKS: Add Jan Rafaj * README: Updated * NEWS: Updated 2006-01-19 Sergey Poznyakoff * src/main.c (struct option_cache): New member `cumulative'. (set_option): Do not check override for cumulative options. 2006-01-11 Sergey Poznyakoff * src/gram.y (eval_poll): Fix typo. ehlo was used instead of mailfrom * src/main.c (check_portspec): Fix eventual coredump and add more checks. 2006-01-06 Sergey Poznyakoff -= Release 1.3 =- 2006-01-06 Sergey Poznyakoff * src/lex.l: Remove leftover argc_unquote_char 2006-01-05 Sergey Poznyakoff * configure.ac: Raise version number to 1.3 * NEWS: Updated * README: Mention BROKEN_PTHREAD_SLEEP Sendmail variable * doc/mailfromd.texi: Likewise * src/main.c (check_portspec): New function. 2005-11-24 Sergey Poznyakoff * src/Makefile.am (AM_CPPFLAGS): Define MU_COMPAT, needed for latest mailutils. 2005-09-20 Sergey Poznyakoff * src/dns.c (resolve_ipstr): New implementation, taking into account cnames. * src/main.c (resolve_ipstr): Removed in favor of the new implementation. 2005-08-17 Sergey Poznyakoff * THANKS: New file * Makefile.am (AUTOMAKE_OPTIONS): New variable * configure.ac: Raised version number to 1.2 * NEWS: Likewise. * doc/gendocs_template: Updated * doc/mailfromd.texi: Updated * src/cache.c (cache_delete): Rewritten using db_delete * src/db.c (db_delete): New function * src/mailfrom.h: Likewise * src/main.c: Option --delete takes an optional argument, as --list and --expire * src/rate.c (rate_delete): New function * src/lex.l (line_add_unescape): Use argcv_unquote_char * src/cache.c: Use separate expiration times for negative and positive entries. * src/mailfrom.h: Likewise. * src/main.c: Likewise. * src/dns.c (getmx): Return immediately in mf_temp_failure. 2005-08-09 Sergey Poznyakoff * src/main.c: New option --syslog (cancels --stderr). (parse_opt) Make sure the errors are reported on stderr wherever it is connected to a tty (unless in daemon mode or otherwise directed by --syslog option). 2005-08-08 Sergey Poznyakoff * src/gram.y (stmtlist): Bugfix (NEXT): New token * src/lex.l (NEXT): New token * src/mailfrom.h (node_type_continue): Renamed to node_type_next * src/gram.y (ACT_CONTINUE): Continue execution of the program * src/mailfrom.h (node_type_continue): New node type * configure.ac (DEFAULT_EXPIRE_RATES_INTERVAL): New variable * src/db.c: New file * src/Makefile.am (mailfromd_SOURCES): Add db.c (AM_CPPFLAGS): Define DEFAULT_EXPIRE_RATES_INTERVAL * src/mailfrom.h (db_item_printer_t,db_expire_t): New types (rate_expire_db,db_list_item,db_list,db_expire): New functions * src/cache.c (cache_list_item,cache_list_db,cache_expire_db): Rewritten using functions from db.c * src/main.c (MAILFROMD_EXPIRE_RATEDB): New mode (parse_opt): Removed --list-rates option. Both --list and --expire now take an optional argument, specifying which database to operate upon. (set_rates_expire): New function. Handles rates-expire-interval pragma. * src/rate.c (get_rate): Optimized expiration logic. (rate_list_item,rate_list_db): Rewritten using functions from db.c (rate_expire_db): New function 2005-08-07 Sergey Poznyakoff * configure.ac: Complain if a DB support is required but not found. * src/rate.c: New file * src/Makefile.am: Add rate.c * src/gram.y: Add support for rate statement * src/lex.l: Likewise. * src/main.c: Likewise. * src/mailfrom.h: Rename getmx_status to mf_status * src/cache.c: Likewise. * src/dns.c: Likewise. * doc/mailfromd.texi: Documented rate statement * etc/mailfromd.rc: Likewise 2005-07-31 Sergey Poznyakoff * src/main.c (check_on_host): Destroy IO data only if these have been initialized. * src/dns.c (_getmx): Fix eventual buffer overflow. 2005-07-28 Sergey Poznyakoff * src/gram.y: Do not include gram.h (eval_hostname): Return with unmodified val if resolve_ipstr fails. * configure.ac: Raised version number to 1.1 Check for argcv_unescape_char vs. argcv_unquote_char (CVS mailutils declares the latter). * src/Makefile.am: Bugfix: place LIBOBJS into LDADD * src/dns.c: Include resolv.h after netinet/in.h 2005-06-30 Sergey Poznyakoff * doc/mailfromd.texi: Fixed usage of @email{} and @url{}. 2005-06-17 Sergey Poznyakoff * src/cache.c (cache_expire_db): Check for res==NULL. * src/main.c (method_strict): Give precedence to temporary failure, if it occurs in any poll. (method_standard): Check the client host unless mx check gives success. Give precedence to temporary failure, if it occurs in any poll. 2005-06-16 Sergey Poznyakoff * src/main.c (smtp_send2,smtp_send3): Send fully formed command, along with final CRLF, in one go. (method_standard): Check MXs first, and only if they fail, check the client host. * src/gram.y (eval_poll): Fix wording of trace message 2005-06-12 Sergey Poznyakoff * configure.ac: Raised version number to 1.0. * Makefile.am (distuninstallcheck_listfiles): New variable. The install-data-local rule in etc/Makefile.am breaks distuninstall checks, hence the need to fix it. * doc/mailfromd.texi: Finished 2005-06-12 Sergey Poznyakoff * configure.ac: Warn if DBM support is not configured * doc/mailfromd.texi: Updated to match recent changes. * etc/Makefile.am: Install mailfromd.rc * src/gram.y: Allow two additional arguments to poll: as and from. * src/lex.l: Handle new keywords: not, as, from. * src/mailfrom.h (smtp_domain,postmaster_email): External declarations. * src/main.c (check_on_host,check_mx_records) (method_strict,method_standard): Accept two additional arguments. 2005-06-10 Sergey Poznyakoff * Makefile.am (SUBDIRS): Add etc * configure.ac: New subst variable MAILFROMSTATEDIR * etc: New directory * etc/Makefile.am: New file * etc/mailfromd.rc: New file * etc/rc.in: New file * etc/.cvsignore: New file * src/Makefile.am (MAILFROMSTATEDIR): Remove definition * src/dns.c: Add missing includes. (free_mx_buffer): Removed * src/gram.y: Add configurable regcomp flags. (parse_pragma): New function * src/lex.l: Parse pragma directives * src/mailfrom.h: Add new declarations * src/main.c: Changed option handling 2005-06-09 Sergey Poznyakoff * src/gram.y: Implement new keyword 'relayed' * src/lex.l: Likewise * src/mailfrom.h: Likewise * src/main.c (relayed_domain_p): Verify full hostname as well (method_strict,method_standard): Return success on empty email. * configure.ac: Raised version number to 0.9.9 * src/Makefile.am (EXTRA_DIST): Added gram.h * src/gram.y: Improved tracing and debugging output. * src/lex.l: Return locus along with the keyword * src/mailfrom.h (debug4,debug5,debug6): New macros (struct locus): new data type (struct poll_action, struct node): Include locus (get_locus, trace): New functions * src/main.c (do_trace): New variable (option --trace) (vlogmsg,logmsg,transcript): Fixed signature (const char *fmt). (trace): New function. (parse_opt): Handle --trace option. 2005-06-09 Sergey Poznyakoff * src/mailfrom.h: New debug macros. (node_type_hostname): New node type * src/cache.c: Use new debug macros * src/dns.c: Likewise * src/gram.y: Likewise * src/lex.l: New keyword HOSTNAME. * src/main.c: Implement header operations 2005-06-08 Sergey Poznyakoff * configure.ac: Check for yacc and lex * src/gram.y: New file. Configuration file grammar and run-time support. * src/lex.l: New file. Configuration file lexical analyzer. * src/Makefile.am (mailfromd_SOURCES): Add gram.y lex.l (AM_CPPFLAGS): Define SYSCONFDIR (AM_YFLAGS,AM_LFLAGS): New vars * src/dns.c: mailutils/mailutils.h are now included from mailfrom.h * src/mailfrom.h: Add new includes (DEFAULT_CONFIG_FILE): New define Add parse tree-related data types (parse_error,yyparse,source,parse_config): New declarations * src/main.c: Major rewrite: removed predefined and configurable actions, get *the program* to be executed from the configuration file. * src/.cvsignore: Updated 2005-06-08 Sergey Poznyakoff * src/main.c (smtp_stream_wait): Take an additional argument: number of attempts. Loop until the stream is ready or the number of attempts is exhausted. All callers updated. 2005-06-07 Sergey Poznyakoff * src/main.c (method_fp,method_standard,method_strict): Changed return type. All callers updated. (check_on_host): Issue EHLO if remote party refuses HELO. 2005-06-06 Sergey Poznyakoff * src/main.c (method_standard): Check the host first, only if it does not answer, check MXs. 2005-06-06 Sergey Poznyakoff * NEWS: Updated * README: Updated * src/main.c (action_failure_default): Changed to return:reject (SMTP_MAJOR): New macro (check_on_host): Use SMTP_MAJOR * doc/.cvsignore: Updated 2005-06-05 Sergey Poznyakoff * doc/mailfromd.texi: More documentation * src/Makefile.am (install-data-local): Create MAILFROMSTATEDIR * src/cache.c (cache_expire_db): New function * src/mailfrom.h: Likewise * src/main.c (add_header): Removed. Use per-message private data to keep it. All referers updated. (--delete): New mode (--expire): New mode * doc/Makefile.am: Bugfixes * doc/mailfromd.texi: Created documentation framework * src/cache.c (cache_get): Do not update timestamps on each retrieval. * src/main.c (capa): Add license capability. * configure.ac (DEFAULT_SOCKET): Change default * src/Makefile.am (AM_CPPFLAGS): Define MAILFROMSTATEDIR instead of LOCALSTATEDIR (LDADD): Get rid of static linkage with libresolv * src/mailfrom.h (DEFAULT_PIDFILE,DEFAULT_DATABASE): Use MAILFROMSTATEDIR instead of LOCALSTATEDIR. * src/dns.c (_getmx): Rewritten using BIND-4-style interface. See comment to this function for the reasons of this regress. * src/main.c (check_mx_records): Bugfix. Provide default return value in case no MX records are found. (mailfromd_show_defaults): Show MAILFROMSTATEDIR 2005-06-04 Sergey Poznyakoff * Makefile.am (SUBDIRS): Add doc * configure.ac (AC_CONFIG_FILES): Add doc/Makefile * src/main.c (postmaster_email): New variable (check_on_host): Use postmaster_email instead of hardcoding <> address. (options): New option --postmaster-email; Fixed several bugs. (parse_opt): Handle --postmaster-email option. Minor fixes. * doc: New directory * doc/Makefile.am, doc/fdl.texi, doc/gendocs_template, doc/mailfromd.texi, doc/rendition.texi, doc/.cvsignore: New files. * Makefile.am: Updated for deep directory structure * configure.ac: Updated for deep directory structure. Detect DBM/NDBM/GDBM, define variables for caching. Raised version number to 0.2 * src: New directory * dns.c, daemon.c, obstack.c, obstack.h, snprintf.c, snprintf.h, mailfrom.h: Moved to ... * src/dns.c, src/daemon.c, obstack.c, src/obstack.h, src/snprintf.c, src/snprintf.h, src/mailfrom.h: here * src/Makefile.am: New file * main.c: Moved to src/ * src/main.c: Moved from ../. Added result caching and new operating modes. * src/mu_dbm.c, src/mu_dbm.h, src/strtok_r.c: New files. Exported from mailutils * src/cache.c: New file. Caching support. * .cvsignore: New file * src/.cvsignore: New file * dns.c (getmx): Do not skip hostname when checking. Handle both IP address and FQDN as input. * main.c: Implemented two methods: standard (the default) and strict (the one that was implemented initially). 2005-06-04 Sergey Poznyakoff * main.c: Rewritten action system. Documented the code. 2005-06-03 Sergey Poznyakoff * main.c (parse_opt): Ordered switch cases. (main): Switch to user's privileges only if started as root. 2005-06-03 Sergey Poznyakoff * Initial release. Local Variables: mode: change-log version-control: never End: