summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFiles
2009-10-29Fix doc/Commitrelease_5_2-docSergey Poznyakoff1
* doc/Commit (gray_print_section): Output anchors before chapter/section/etc. titles, so that the heading menu in monolithic document works properly.
2009-10-27Improve docs.Sergey Poznyakoff4
* doc/Makefile.am (manual.tar.bz2, man-tar): New rules. (manual): Mark as phony. * doc/gendocs_template: Upgrade for the new webpage style. * doc/mailfromd.texi: Minor changes. * doc/Config: New file.
2009-08-27Version 5.2release_5_2Sergey Poznyakoff2
* NEWS, configure.ac: Raise version number.
2009-08-27Minor fixes.Sergey Poznyakoff5
* mfd/main.c (parse_opt): Add missing break. (cb_include_path): Fix use of improper variable in MU_CFG_LIST branch. * am/aggr.m4 (IU_CHECK_MEMBER): Remove improper use of dnl. * doc/Makefile.am (check-builtins, check-mflib): Do not split sed expressions over multiple lines: Makefile format cannot handle it properly. * doc/mailfromd.texi: Update. * bootstrap: Do not apply `silentize' to gnu/gnulib.mk. Latest gnulib takes care of it itself.
2009-08-18Add mfd/bi_getpw.m4Sergey Poznyakoff1
2009-08-18Fix definition of `next'.Sergey Poznyakoff7
* mfd/drivers.c (struct loop_stack): Replace `begjmp' with `nxtjmp'. (enter_loop): Reflect this. (code_type_next): Likewise. (code_type_loop): Rewrite jump fixup for `next' chain. * tests/next01.at, tests/next02.at: New testcases. * tests/Makefile.am: Add next01.at and next02.at * tests/testsuite.at: Likewise. * NEWS, doc/mailfromd.texi: Update
2009-08-18Implement getpw.* interfacesSergey Poznyakoff4
* mfd/bi_getpw.m4: New file. * mfd/Makefile.am (M4_FILES): Add bi_getpw.m4 * doc/Makefile.am (check-builtins): Take into account @deftypefnx * NEWS, doc/mailfromd.texi: Update
2009-08-18BugfixesSergey Poznyakoff3
* mfd/bi_io.m4 (read): Add terminating zero. * mflib/match_dnsbl.mf (match_dnsbl): Return 0 if address is not resolved. * mflib/sockmap.mf (sockmap_single_lookup): Fix typo.
2009-08-17Improve conditional building of pmult.Sergey Poznyakoff4
* configure.ac (PMULT_COND): New condition (ENABLE_PMULT): Rename subst variable. * pmult/Makefile.am: Remove subst variable. * Makefile.am (SUBDIRS): Include pmult conditionally (ChangeLog rule): Improve formatting. * NEWS: Improve wording.
2009-06-29Bugfix.Sergey Poznyakoff2
* mfd/bi_dns.m4 (dns_getname): Missed call to MF_OBSTACK_BEGIN. * mfd/prog.c (runtime_stack_trace): Prevent coredump on arriving to pc == 0.
2009-06-29Bugfix.Sergey Poznyakoff2
* mfd/bi_db.m4 (db_prop_lookup): Fix conditional. Reported by Jan Rafaj.
2009-06-26Implement e_eof exception code (based on patch by Jan Rafaj).Sergey Poznyakoff7
* doc/mailfromd.texi: Document e_eof. * mfd/Makefile.am (status.mfh): Define dependencies. * mfd/bi_io.m4 (read_stream_delim): Return number of bytes read. (read, getdelim, getline): Raise e_eof on EOF. * mfd/mailfromd.h (mfe_eof): New exception code. * tests/eof.at: New testcase. * tests/Makefile.am (TESTSUITE_AT): Add eof.at * tests/testsuite.at (MF_RUN_TEXT): New define. Include eof.at.
2009-06-17Minor changes.Sergey Poznyakoff3
* configure.ac: Check for struct pmilter_S.pmfi_fdmax * doc/pmult.texi: Document new pmult configuration statements. * pmult/pmult.c: Make pmilter.pmfi_fdmax configurable.
2009-06-17Bugfixes.Sergey Poznyakoff3
* pies/pies.c (main): Change main loop to do..while, otherwise a signal arriving before entering the loop might cause the program to terminate. * pmult/pmult.c (internal_macro_p): New function. (collect_stage_symbols): Do not report internal macros as untranslatable. * mfd/gram.y (register_macro): Copy macro name to allocated storage.
2009-06-16Minor fixes.Sergey Poznyakoff2
* mfd/engine.c (child_start): modify program title. * mfd/main.c (environ): extern.
2009-06-14Fix and improve termination actions in pies.Sergey Poznyakoff5
* pies/pies.h (MAX_RETURN_CODE): Remove. (STATUS_SIG_BIT, STATUS_CODE): New defines (struct action): New fields next, nstat, status, command. (struct component): Keep singly-linked list of termination actions. * pies/progman.c (run_command): New function. (progman_cleanup): Redo iteration over termination actions. * pies/pies.c (return_code_cfg_param): Pass offsets in struct component. (create_action): Accept signal numbers (SIG.* or SIG\+[0-9]+) in tag. (return_code_section_parser): Update. (pies_check_status): Set *pid before returning pies_status_stale. * doc/pies.texi: Document changes. * NEWS: Updated.
2009-06-14Implement socket I/O and sockmaps in mflib.Sergey Poznyakoff5
* mfd/bi_io.m4 (struct io_stream): Add cleanup and cleanup_data. (close_stream): Use those members. (read_stream_line): Remove. (read_stream_delim): New function. (open_program_stream): Add the `env' argument. (open_file_stream): Likewise. (open_parsed_inet_stream, open_inet_stream): New functions. (alloc_streams): Update declaration of opf and the call thereof. (open): Prefix @ in first argument designates the connection URL. (read,getdelim): New functions. * mflib/Makefile.am (inc_DATA): Add sockmap.mf * mflib/sockmap.mf: New function. * doc/mailfromd.texi: Document new functions. * NEWS: Update.
2009-06-10Reflect program state in the ps(1) output.Sergey Poznyakoff3
* mfd/main.c (main): Call mf_proctitle_init * mfd/engine.c (mlfi_connect, mlfi_helo, mlfi_envfrom) (mlfi_envrcpt, mlfi_data, mlfi_header, mlfi_eoh) (mlfi_body, mlfi_eom) (mlfi_abort, mlfi_close): Call mf_proctitle_format to reflect the program state in the ps output. * NEWS: Update.
2009-06-04Bugfixes.Sergey Poznyakoff6
* pmult/pmult.c (client_block_begin): Set default logmask to '>info' (pmult_connect): Close gsrv if pmult_std_reply fails. This fixes FD leak. * gacopyz/gacopyz.c, mfd/dns.h, mfd/dnsbase.c, mfd/engine.c, mtasim/mtasim.c, pmult/pmult.c: Add typecasts between signed/unsigned char*.
2009-06-04Version 5.1.91Sergey Poznyakoff3
* configure.ac, NEWS: Version 5.1.91 * pmult/pmult.c: Bugfix
2009-06-04MeTA1-related improvements.Sergey Poznyakoff3
* configure.ac: Check for pmilter_S.pmfi_thrmax_[sh]. Requires 28/0009-pmilter-configurable-maxthr.diff. * pmult/pmult.c: New configuration statements: max-threads-soft and max-threads-hard. * pies/pies.c (_cm_include_meta1): Fix coredump on syntax errors in meta1.conf.
2009-05-31Implement `localdomain' function + several improvements.Sergey Poznyakoff9
* NEWS: Update. * etc/mailfromd.rc: Use localdomain to determine the domain name. Remove the `#error' statement. Hopefully, this file can be used as is. * mfd/bi_gethostname.m4 (gethostname): Add an optional argument. * mfd/gram.y: Handle function declarations with only optional arguments, e.g.: func foo(; string bar) (mailfromd_test): Add missing env_init calls. * mfd/lex.l: Remove trailing newline before displaying the `#error' diagnostics. * mflib/localdomain.mf: New file. * mflib/Makefile.am (inc_DATA): Add localdomain.mf. * mflib/safedb.mf4 (safedb_verbose): New variable. (safedbmap, safedbdel): New function. (safedbget, safedbput): Verbosely print exceptions caught if safedb_verbose is set.
2009-05-23Add new debugging function.Sergey Poznyakoff4
* mfd/bi_mudebug.m4: New file. * mfd/Makefile.am (M4_FILES): Add bi_mudebug.m4 * NEWS, doc/mailfromd.texi: Update.
2009-05-22Minor organizational changes.Sergey Poznyakoff4
* elisp/Makefile.am (LISPSRC): Add obfemail-mode.el * elisp/mfl-mode.el (mfl-mode): Fix docstring. * THANKS: Use obfemail mode to encode emails.
2009-05-22Minor fixSergey Poznyakoff1
2009-05-21More work on `silent rules' modeSergey Poznyakoff7
* bootstrap (silent_rules_prog): Preserve leading whitespace verbatim, when inserting the AM_V variables. Suggested by Ralf Wildenhues. Optionally insert the definitions of AM_DEFAULT_VERBOSITY, AM_V_GEN and AM_V_at: useful for po/Makefile.in.in (silentize): New function. (slurp): Call silentize Call silentize on po/Makefile.in.in. * doc/Makefile.am, etc/Makefile.am, pies/Makefile.am, pmult/Makefile.am, tests/Makefile.am, tests/etc/Makefile.am: Add silent rule markers.
2009-05-21Switch to `silent rules' modeSergey Poznyakoff4
* bootstrap (slurp): Convert gnulib Makefile.am to support silent rules. * configure.ac (AM_INIT_AUTOMAKE): Add silent-rules. Enable silent rules by default. * gacopyz/Makefile.am, mfd/Makefile.am: Add silent rules markers.
2009-05-21BugfixSergey Poznyakoff1
* mfd/mu_dbm.c (mu_dbm_errcall_fcn): Fix arguments for BDBv4.
2009-05-20Minor changes.Sergey Poznyakoff3
* am/gcc.m4: New file. * configure.ac: Raise autotools requirements to 2.63/1.11 Call MF_GCC_QUIRKS. * gacopyz/gacopyz.c (ctx_free): Change return type.
2009-05-19Implement GeoIP support.Sergey Poznyakoff8
* NEWS: Update. * configure.ac: Version 5.1.90 New option --with-geoip (GEOIP_LIBS): New AC_SUBST * doc/mailfromd.texi: Document geoip functions. * mfd/bi_geoip.m4: New file. * mfd/Makefile.am (M4_FILES): Add bi_geoip.m4 (LDADD): Add GEOIP_LIBS. * mfd/mailfromd.h (pp_define): New function. * mfd/main.c (pp_define): New function. * mfd/snarf.m4 (MF_DEFINED, MF_OPTVAL): Fix error diagnostics. (MF_COND): New macro. (MF_INIT): Handle MF_COND sources.
2009-05-14Fix typo in docsSergey Poznyakoff1
2009-05-13Raise version to 5.1release_5_1Sergey Poznyakoff2
2009-05-13Minor changeSergey Poznyakoff2
* mfd/bi_db.m4: Fix comment. * pies/progman.c: Use _exit in child processes. This is a work over a fault in MU design: it registers the pidfile removal function via atexit.
2009-05-13Bugfixes.Sergey Poznyakoff2
* doc/mailfromd.texi: Fix declaration of `uname' * mtasim/mtasim.c: Fix handling of header continuation. When sending headers and body to the milter, consistently use \r\n line terminators.
2009-05-12Fix diagnostics spellingSergey Poznyakoff3
2009-05-12Version 5.0.94Sergey Poznyakoff3
* NEWS, configure.ac: Update. * mfd/prog.c (env_free_captured): env->bi_priv_array can be NULL.
2009-05-11Implement functional notation for reply actionsSergey Poznyakoff8
* NEWS, doc/mailfromd.texi: Update. * mfd/drivers.c (print_type_result, mark_type_result) (optimize_type_result, code_type_result): Rewrite. * mfd/gram.y: Rewrite action rules. * mfd/lex.l (CODE,XCODE): Remove. * mfd/opcodes (RESULT): Takes one immediate parameter. (instr_result): Get arguments from stack.
2009-05-10Implement some system information functions.Sergey Poznyakoff9
* mfd/bi_gethostname.m4: New file. * NEWS, doc/mailfromd.texi: Update. * mfd/Makefile.am (M4_FILES): Add bi_gethostname.m4. * mfd/bi_system.m4 (uname): New function. * mfd/prog.c (heap_obstack_cancel, heap_obstack_base): New function. * mfd/prog.h: Likewise. * mfd/snarf.m4 (MF_OBSTACK_BASE, MF_OBSTACK_CANCEL): New defuns. * mtasim/mtasim.c (stop_mailfromd): Reset signal handler before doing kill, so that waitpid works on hosts with BSD signal semantics.
2009-05-09Implement current header access functions.Sergey Poznyakoff31
* mfd/bi_curhdr.m4: New file: implementation of current header functions. * mfd/Makefile.am (M4_FILES): Add bi_curhdr.m4 * mfd/bi_mbox.m4 (mailbox_open): Work over MU lossage. * mfd/bi_msg.m4 (bi_drop_current_message): Remove. (drop_current_message): New function. * mfd/mailfromd.h (env_reposition): New prototype. * mfd/msg.h (bi_drop_current_message): Remove. * mfd/prog.c (struct eval_environ.reposition): New member. (env_reposition): New function. Work over MU lossage. (env_capture_start): Call env_free_captured to release any module private captured data. Reset env->reposition to 0. (env_capture_write): If env->reposition is set, move stream pointer to the end of stream. (struct builtin_priv.free_capture): New member. (builtin_priv_register): Take 3 arguments. (env_free_captured): New function. * mfd/prog.h (builtin_priv_register): Update proto. * mfd/snarf.m4 (MF_DECLARE_DATA): Get at most 3 arguments. * NEWS, doc/mailutils.texi: Document new functions. * tests/etc/hdr.mts: New file (message transfer session). * tests/etc/hdr2.mts: Likewise. * tests/etc/Makefile.am (EXTRA_DIST): Add new files. * tests/hdr-all.at: New testcase. * tests/hdr-cap.at: New testcase. * tests/hdr-count.at: New testcase. * tests/hdr-gete.at: New testcase. * tests/hdr-getn.at: New testcase. * tests/hdr-itr.at: New testcase. * tests/hdr-mul.at: New testcase. * tests/Makefile.am (TESTSUITE_AT): Add new testcase. * tests/atlocal.in (TESTDIR): New variable. * tests/testsuite.at (MTASIM_DEFS): New define. (AT_MTA_TEST): Rename to AT_MTA_TEST_FILTER. All uses updated. (AT_MTA_TEST_SCRIPT,AT_MTA_TEST_FILTER_SCRIPT): New defines. Include new testcases. * tests/arg.at, tests/curmsg.at, tests/numrcpt.at, tests/reject.at, tests/tempfail.at: Updated.
2009-05-08Fix the docsSergey Poznyakoff3
2009-05-08Update docs.Sergey Poznyakoff4
* NEWS: Document Milter v.6 support. * doc/mailfromd.texi: Likewise. * doc/smap.texi: Document smap.
2009-05-07Fix exception handling code (saveex/restex).Sergey Poznyakoff3
* mfd/drivers.c (code_type_funcdecl): Exmask handling and jump fixups are handled within codegen. (code_type_progdecl): Update call to codegen. * mfd/gram.y (codegen): Take an extra argument specifying the exception mask to handle. Unless it is zero, code saveex/restex pair around the main code. This makes sure local allocations do not disturb exception handling code. Also, take care of jump fixup here. (mailfromd_test): Fix bug in numeric argument passing. * mfd/prog.c (instr_saveex): Provide additional debugging diagnostics (temporary). (dump_saveex): Fix retrieving of the exmask (seftover from earlier version). (instr_memstk, instr_xmemstk, instr_deref) (instr_ston, instr_ntos, instr_cmp) (instr_logand, instr_logor, instr_logxor) (instr_add, instr_sub, instr_mul) (instr_div, instr_regex, instr_regcomp) (instr_funcall): Make sure PC and stack adjustments occur after outputting trace info.
2009-05-07Implement v6 negotiation in pmult.Sergey Poznyakoff1
* pmult/pmult.c (define_single_macro): Check for table overflow. (collect_stage_symbols, collect_symlists): New functions. (pmult_negotiate) [HAVE_SM_PMFI_SETMACS]: Call collect_symlists.
2009-05-07Implement v6 negotiation on the server side.Sergey Poznyakoff1
* gacopyz/stagenames.c: New file. * gacopyz/Makefile.am (libgacopyz_a_SOURCES): Add stagenames.c. * gacopyz/gacopyz.c (gacopyz_context_loop): Free req_macros. (gacopyz_addrcpt_par): rename to gacopyz_add_rcpt_par. * gacopyz/gacopyz.h (SM_LM_VRS_MAJOR, SM_LM_VRS_MAJOR) (SM_LM_VRS_PLVL, GACOPYZ_SM_MKVER): New macros. (macro_index): Rename to gacopyz_stage. All uses updated. (smfi_version): New proto. (gacopyz_addrcpt_par): rename to gacopyz_add_rcpt_par. (gacopyz_stage_name): New declaration. (gacopyz_srv_get_required_macros): New proto. (gacopyz_srv_set_version, gacopyz_srv_set_protocol) (gacopyz_srv_set_actions): 2nd argument is unsigned long. * gacopyz/server.c (struct gacopyz_srv): New member req_macros. (gacopyz_srv_get_required_macros): New function. (gacopyz_srv_destroy): Free req_macros. (gacopyz_srv_negotiate): Read macros. * mfd/gram.y (milter_state_name): Removed. Use gacopyz_stage_name instead. * mtasim/mtasim.c: New options: --gacopyz-log, --milter-proto, --milter-acts. * doc/mtasim.texi, doc/mailfromd.texi: Update.
2009-05-07Implement v6 negotiation on the server side.Sergey Poznyakoff14
* gacopyz/stagenames.c: New file. * gacopyz/Makefile.am (libgacopyz_a_SOURCES): Add stagenames.c. * gacopyz/gacopyz.c (gacopyz_context_loop): Free req_macros. (gacopyz_addrcpt_par): rename to gacopyz_add_rcpt_par. * gacopyz/gacopyz.h (SM_LM_VRS_MAJOR, SM_LM_VRS_MAJOR) (SM_LM_VRS_PLVL, GACOPYZ_SM_MKVER): New macros. (macro_index): Rename to gacopyz_stage. All uses updated. (smfi_version): New proto. (gacopyz_addrcpt_par): rename to gacopyz_add_rcpt_par. (gacopyz_stage_name): New declaration. (gacopyz_srv_get_required_macros): New proto. (gacopyz_srv_set_version, gacopyz_srv_set_protocol) (gacopyz_srv_set_actions): 2nd argument is unsigned long. * gacopyz/server.c (struct gacopyz_srv): New member req_macros. (gacopyz_srv_get_required_macros): New function. (gacopyz_srv_destroy): Free req_macros. (gacopyz_srv_negotiate): Read macros. * mfd/gram.y (milter_state_name): Removed. Use gacopyz_stage_name instead. * mtasim/mtasim.c: New options: --gacopyz-log, --milter-proto, --milter-acts. * doc/mtasim.texi, doc/mailfromd.texi: Update.
2009-05-06Implement Milter protocol version 6.Sergey Poznyakoff13
* gacopyz/Makefile.am (trans.h): Pass -vheader_file argument to the trans.awk script. * gacopyz/dummy.c (smfilter): Update initialization. * gacopyz/gacopyz.c (trans_fixup): New function. (convert_sfsistat): Handle new codes. (make_optneg_buf): New function. (send_reply): Handle SMFIP_NR_* flags. Update SMFIC_OPTNEG case. (shan_optneg): Implement milter 1.0 (proto 6) (gacopyz_context_loop): Call trans_fixup. (ok_to_send): Use the negotiated aflags. (gacopyz_addrcpt_par, gacopyz_chgfrom) (gacopyz_setsymlist): New functions. * gacopyz/gacopyz.h (GACOPYZ_VERSION_MAJOR): Raise to 2. (SMFI_VERSION): Set to 0x01000000 (SMFI_PROT_VERSION, SMFI_PROT_VERSION_MIN): New defines. (SMFIR_ADDRCPT_PAR, SMFIR_CHGFROM): New defines. (SMFIP_NR_HDR, SMFIP_SKIP, SMFIP_RCPT_REJ): New defines. (SMFIP_NR_CONN, SMFIP_NR_HELO, SMFIP_NR_MAIL) (SMFIP_NR_RCPT, SMFIP_NR_DATA, SMFIP_NR_UNKN) (SMFIP_NR_EOH, SMFIP_NR_BODY, SMFIP_HDR_LEADSPC) (SMFI_DEFAULT_PROT, SMFIF_CHGFROM) (SMFIF_ADDRCPT_PAR): New defines. (SMFIS_NOREPLY, SMFIS_SKIP, SMFIS_ALL_OPTS): New constants. (enum macro_index): New data type, from gacopyz_priv.h (SMFIM_CONNECT, SMFIM_HELO, SMFIM_ENVFROM) (SMFIM_ENVRCPT, SMFIM_DATA, SMFIM_EOM) (SMFIM_EOH): New defines. (struct gacopyz_milter_descr): New member: xxfi_negotiate (smfi_addrcpt_par, smfi_chgfrom, smfi_setsymlist) (gacopyz_addrcpt_par, gacopyz_setsymlist) (gacopyz_chgfrom): New protos. * gacopyz/gacopyz_priv.h (struct macro_assoc): Rename flags to pflags. New members: aflags, version, mta_pflags, req_macros. * gacopyz/server.c (struct gacopyz_srv): Remove flags. (struct gacopyz_srv.version, acts, proto): Change type. (gacopyz_srv_create): Change defaults. (gacopyz_srv_negotiate): Rewrite. * gacopyz/smfi.c (smfi_addrcpt_par, smfi_chgfrom) (smfi_setsymlist): New functions. * gacopyz/trans.awk (END): Print the state_nr_mask array. * mfd/bi_db.m4: Add missing includes. * mfd/engine.c: Implement mlfi_negotiate. * mfd/gram.y (register_macro): Arrange stored macros by gacopyz macro index. All uses updated. (get_stage_macro_string): New function. * mfd/mailfromd.h (get_stage_macro_string): New proto. (check_tbf_rate): Add proto.
2009-05-06Update docsSergey Poznyakoff1
2009-05-05Minor changes.Sergey Poznyakoff9
* NEWS: Update. * doc/mailfromd.texi: Reorder material. * doc/upgrade.texi: New file. * doc/fdl.texi, doc/gacopyz.texi, doc/strftime.texi: Move sectioning commands to the main source. * etc/mailfromd.rc: Reflect recent changes. * mfd/lex.l: Change semantics of __statedir__ and __preproc__. Introduce __defstatedir__ and __defpreproc__.
2009-05-04Version 5.0.93Sergey Poznyakoff4
* NEWS, configure.ac: Raise patchlevel to 93. * doc/mailfromd.texi: Document new features. * mfd/tbf_rate.c (tbf_rate_format_struct): Change dbid to `tbf'.
2009-05-03Improve the rate function.Sergey Poznyakoff6
* mfd/bi_other.m4 (rate): Add second optional parameter: a threshold. * mfd/mailfromd.h (get_rate): Change prototype. * mfd/rate.c (get_rate): Take two more parameters: threshold and interval. Return rate as long. Do not increment the hit counters if the observed rate is higher than the threshold. Expire the record if no mails were sent during a time longer than `interval' seconds. * mflib/rateok.mf: New file. * mflib/Makefile.am (inc_DATA): Add rateok. * NEWS: Update

Return to:

Send suggestions and report system problems to the System administrator.