summaryrefslogtreecommitdiffabout
AgeCommit message (Collapse)AuthorFiles
2020-06-11Use automake conditional for gdbm as wellHEADmasterSergey Poznyakoff3
2020-06-11Improve the testsuite.Sergey Poznyakoff20
* configure.ac: Check for gpg2 and certtool. (M4_DEFS,ANUBIS_GPGFILES): Remove. * src/Makefile.am: Prefer automake conditionals over conditional compilation. * src/gpg.c: Remove enclosing #ifdef. * src/gsasl.c: Likewise. * src/guile.c: Likewise, * tests/Makefile.am (SUBDIRS): Remove. * tests/anubisusr.at: Checking for the prerequsite once is enough. * tests/atlocal.in (confdir,ANUBIS_DATA_DIR): Remove. (CERTTOOL): New variable. * tests/data/: Remove. * tests/gpgcrypt.at: Use gpg v2 to create keys when necessary. * tests/gpgse.at: Likewise. * tests/gpgsign.at: Likewise. * tests/mta.c: Include stddef.h (for ptrdiff_t). * tests/testsuite.at (ANUBIS_PREREQ_GPG): Update condition. (ANUBIS_PREREQ_TLS): New macro. * tests/tlsoneway.at: Use certtool to create certificates when necessary.
2020-06-10Rewrite testsuite in autotestSergey Poznyakoff104
* Makefile.am (SUBDIRS): Replace testsuite with tests. * configure.ac: Initialize autotest-based testsuite. * src/env.opt: New option -S * src/headers.h (T_PASSFD): New flag. * src/main.c (main): New mode (-S) for interaction with the testsuite. * tests/Makefile.am: New file. * tests/anustart.c: New tool. * tests/mta.c: Move from testsuite. * testsuite/data: Move to tests/data (with edits). * tests/atlocal.in: New file. * tests/testsuite.at: New file. * tests/anubisusr.at: New file. * tests/badd.at: New file. * tests/bmod.at: New file. * tests/cond.at: New file. * tests/empty.at: New file. * tests/fadd.at: New file. * tests/gpgcrypt.at: New file. * tests/gpgse.at: New file. * tests/gpgsign.at: New file. * tests/hadd00.at: New file. * tests/hadd01.at: New file. * tests/hadd02.at: New file. * tests/hdel00.at: New file. * tests/hdel01.at: New file. * tests/hdel02.at: New file. * tests/hdel03.at: New file. * tests/hmod.at: New file. * tests/mime00.at: New file. * tests/mime01.at: New file. * tests/mult.at: New file. * tests/no-backref.at: New file. * tests/paolo.at: New file. * tests/parse.at: New file. * tests/remailer.at: New file. * tests/rot-13.at: New file. * tests/tlsoneway.at: New file. * tests/trigger.at: New file. * testsuite/: Delete.
2020-06-06Bugfixes.Sergey Poznyakoff2
* src/anubisusr.c (synch): Fix premature free. * src/env.opt (--pid-file): Don't disable termlevel.
2020-06-06Version 4.2.90Sergey Poznyakoff151
2020-06-06Remove the getopt gnulib moduleSergey Poznyakoff3
2020-06-06Fix typecasts in mta.cSergey Poznyakoff1
2020-06-06Minor fixes.Sergey Poznyakoff8
* src/getopt.m4 (print_option_descr): Fix type of the width argument. * src/rcfile.c (esmtp_kw): Remove unised variable. * src/tls.c (start_ssl_server): Fix type of the status variable/ * src/anubisusr.c: Fix typecasts. * src/daemon.c: Likewise. * src/logport.c: Likewise. * src/net.c: Likewise. * src/stream.c: Likewise.
2020-06-06Require guile version 2.2.0Sergey Poznyakoff1
2020-06-06Fix compilation with guile 2.2Sergey Poznyakoff3
* src/guile.c (init_guile): Call guile_init_anubis_log_port Fix compilation with guile 2.2 * src/headers.h (guile_init_anubis_error_port) (guile_init_anubis_info_port): Remove protos. (guile_init_anubis_log_port): New proto. * src/logport.c: Rewrite.
2020-06-06Testsuite fixSergey Poznyakoff2
* testsuite/etc/Makefile.am: Build user.rc * testsuite/etc/user.in: New file.
2020-06-06Fix the GPG test.Sergey Poznyakoff5
Newer GPGME can't list keys by abbreviated ID. * src/gpg.c (create_key_array): Improve diagnostics. * testsuite/mta.c: Likewise. * testsuite/etc/gpgcrypt.pat: Use anubis-dev as key ID * testsuite/etc/gpgse.pat: Likewise. * testsuite/etc/gpgsign.pat: Likewise.
2020-06-06build: Add Guile include directory to AM_CPPFLAGS.Maxim Cournoyer1
Otherwise the libguile.h header could not be found. * src/Makefile.am (AM_CPPFLAGS): Add @GUILE_INCLUDES@ to the AM_CPPFLAGS.
2020-06-06Minor fixSergey Poznyakoff1
2020-06-06Fix compilation with gdbm 1.18.1Sergey Poznyakoff4
* src/gdbm.c: Rename functions to avoid name clashes with symbols from libgdbm. * src/headers.h (gdbm_db_init): Rename to db_gdbm_init. * src/anubisadm.c: Use db_gdbm_init. * src/main.c: Likewise.
2014-05-23Version 4.2anubis_4_2Sergey Poznyakoff2
2014-05-22Minor fixes.Sergey Poznyakoff9
* src/rcfile.c (control_parser): Fix argument to assign_string. * src/headers.h (anubis_db_open_t, anubis_db_open): Last argument is const char *. * src/anubisdb.c (anubis_db_open): Last argument is const char *. * src/anubisadm.c: Use const char * as a last argument to anubis_db_open. * src/authmode.c: Likewise. * src/dbtext.c: Likewise. * src/gdbm.c: Likewise. * src/mysql.c: Likewise. * src/pgsql.c: Likewise.
2014-05-19Improve docs.Sergey Poznyakoff2
* doc/anubis.texi: Update. * doc/mime.texi: Update.
2014-05-18Support for MySQL options file.Sergey Poznyakoff4
* NEWS: Document the use of MySQL options file. * doc/anubis.texi: Document all anubisusr options. Describe the use of MySQL options file. * src/mysql.c (mysql_db_open): Use MySQL options file. Two new URL parameters: options-file and options-group. * src/usr.opt: New option --tls-priorities.
2014-05-18More fixes.Sergey Poznyakoff9
* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Enable everything. * src/anubisusr.c [USE_GNUTLS] (tls_cafile): Remove. [USE_GNUTLS] (secure): New global. (starttls): Update start_ssl_client invocation. * src/usr.opt (tls-cafile option): Set secure.cafile. * src/authmode.c (asmtp_ehlo): Update call to start_ssl_server. * src/getopt.m4 (version_etc_copyright): Update copyright years. * src/gpg.c (gpg_proc): Remove useless preprocessor checks. * src/headers.h: Likewise. * src/rc-gram.y (yyerror): Argument is const char *. * testsuite/mta.c: Remove the use of deprecated gnutls types and functions.
2014-05-16Fix tls code.Sergey Poznyakoff6
* doc/anubis.texi: Document ssl-priorities. * src/extern.h (secure_struct) <prio>: New member. * src/headers.h (start_ssl_client, start_ssl_server): Change signature. * src/rcfile.c (tls_parser): Handle the ssl-priorities statement. * src/tls.c: Remove the use of obsolete types and functions. (start_ssl_client, start_ssl_server): Remove spurious parameters. Use the "secure" global instead. * src/tunnel.c: Update uses of start_ssl_client, start_ssl_server.
2014-05-16Update copyright years.Sergey Poznyakoff147
2014-05-15Compatibility fixes.Sergey Poznyakoff3
* build/bootstrap (gnulib_extra_files): Remove 'missing' * configure.ac: Add -lgpg-error when using GPGME * src/tls.c (verify_certificate): Use gnutls_certificate_verify_peers2.
2014-05-15Update for the recent automake versionSergey Poznyakoff4
* gint: Upgrade. * lib/.gitignore: Add new files. * src/Makefile.am: Use AM_CPPFLAGS instead of the obsolete INCLUDES. * testsuite/Makefile.am: Likewise.
2013-03-08Update THANKS file.Wojciech Polak1
2011-01-13Implement `elif' branches.Sergey Poznyakoff5
* src/rc-gram.y: Rewrite the cond_stmt rule to allow for `elif' branches. * src/rc-lex.l: New keyword ELSE. * doc/anubis.texi: Document the elif statement. * NEWS: Likewise.
2011-01-13Delayed ESMTP authentication: initial implementation.Sergey Poznyakoff11
Anubis can be instructed to postpone ESMTP authentication until MAIL command is issued by the client. This allows for changing authentication credentials in the SMTP section, depending on the envelope information supplied by the client. * src/headers.h (T_ESMTP_AUTH_DELAYED): New flag. (rcfile_call_section): Change signature. * src/mda.c: Update calls to rcfile_call_section. * src/rc-gram.y (rc_run_section): Take additional argument specifying the class of the section to run. (rc_call_section): Remove. All callers changed to use rc_call_section instead. (rc_run_section_list): Remove unused function. * src/rcfile.c (parse_esmtp_kv): New static. (control_parser): Call parse_esmtp_kv as a part of the default handling. (control_kw): New keyword esmtp-auth-delayed. (smtp_rule_parser,smtp_rule_section_init): New functions. (rc_system_init): Call smtp_rule_section_init. (rcfile_call_section): Take additional argument specifying the class of the section to run. * src/rcfile.h (rc_run_section): Change signature. (rc_call_section): Remove. * src/smtprepl.c (smtp_reply_free): Do nothing if argument is NULL. * src/tunnel.c (ehlo_reply): New static. (handle_ehlo): Save reply in ehlo_reply. Don't attempt authentication if T_ESMTP_AUTH_DELAYED is set... (transfer_command): ... do it here instead. * configure.ac: Version 4.1.92 * NEWS: Update. * doc/anubis.texi: Document esmtp-auth-delayed and the use of esmtp-* statements in SMTP sections.
2010-08-03Fix detection of GNU TLS and the corresponding code.Sergey Poznyakoff17
* am/libgnutls.m4: Remove. * am/gnutls.m4: New file. * configure.ac: Set version number 4.1.91. Remove gnutls checking, use ANUBIS_CHECK_TLS instead. (TLS_COND): New condition. * src/Makefile.am [TLS_COND] (TLS_C): New variable. (libanubisdb_a_SOURCES): Use TLS_C. (INCLUDES): Replace LIBGNUTLS_CFLAGS with LIBGNUTLS_INCLUDES. * testsuite/Makefile.am (INCLUDES): Replace LIBGNUTLS_CFLAGS with LIBGNUTLS_INCLUDES. * testsuite/etc/Makefile.am: Add missing AM_V_GENs. * src/anubisusr.c: Uniformly use USE_GNUTLS to protect tls-specific parts of code. * src/anubisusr.h: Likewise. * src/headers.h: Likewise. * src/help.c: Likewise. * src/main.c: Likewise. * src/quit.c: Likewise. * src/rcfile.c: Likewise. * testsuite/mta.c: Likewise. * src/tls.c: Likewise. (print_x509_certificate_info): Use gnutls_fingerprint instead of the deprecated gnutls_x509_fingerprint. * src/smtprepl.c (smtp_reply_read): Fix coredump. * NEWS: Update.
2010-05-11Update gint to a5774356.Sergey Poznyakoff1
2010-05-11Fix GINT_INIT usage.Sergey Poznyakoff2
* gint: Update to 4e48677eee5a * configure.ac (--without-guile): Remove option. Handled by GINT_INIT. (GINT_INIT): Don't call it within a conditional.
2010-04-19Use GINT for integrating with Guile.Sergey Poznyakoff8
* gint: New module. * Makefile.am, configure.ac: Use gint. * bootstrap.conf: Initialize git submodules. * src/Makefile.am: Include gint.mk * am/guile.m4: Remove. * src/guile.c (guile_safe_exec): Use scm_c_catch instead of the deprecated scm_internal_lazy_catch.
2010-04-01Prepare for Guile 2.0: fix obsolete and deprecated calls in Guile code.Sergey Poznyakoff6
* am/guile.m4: Import from Mailutils. * configure.ac: Use AC_DEFINE_UNQUOTED to define a replacement for socklen_t. * src/guile.c (guile_debug): Protect calls to SCM_DEVAL_P &c. by #ifdef GUILE_DEBUG_MACROS (guile_process_proc_handler): Use scm_apply_3 to avoid unwanted evaluation of parameters. (guile_load_path_append_handler) (guile_to_anubis, guile_process_proc): Remove the uses of deprecated Guile functions. * src/logport.c [!HAVE_SCM_T_OFF](scm_t_off): New typedef. (scm_tc16_anubis_error_port) (scm_tc16_anubis_info_port): Change type to scm_t_bits. (_make_anubis_log_port): Use scm_new_port_table_entry instead of the deprecated scm_add_to_port_table. (_anubis_error_port_seek): Fix signature and return type.
2010-01-08Minor fix.Sergey Poznyakoff1
* src/message.c (create_msgid): Do not allow seq to overflow.
2010-01-08Improve logging.Sergey Poznyakoff5
* src/headers.h (MSGIDLEN, MSGIDBOUND): New defines. (message_id): New proto. * src/message.c (message_struct): New member id. (create_msgid): New function. (message_new,message_reset): Initialize message id. (message_id): New function. * src/smtprepl.h (smtp_reply_line_ptr): New proto. * src/transmode.c (session_prologue): avoid coredump if session.anubis is NULL. * src/tunnel.c (transfer_command, process_data): log session commands and server replies.
2009-12-28Initial implementation of SMTP command modification.Sergey Poznyakoff11
The special section SMTP is processed before transferring each SMTP command to the remote server. This section can contain `modify command' actions which alter the command. * src/extern.h (smtp_command_rule): New extern. * src/list.c (list_head_item, list_tail_item): New functions. * src/list.h (list_head_item, list_tail_item): New protos. * src/main.c (smtp_command_rule): New global. (main): Set smtp_command_rule. * src/message.c (message_modify_command): New function. * src/rc-gram.y (inst_eval): Implement command modification. * src/tunnel.c (transfer_command): Remove second argument. Always work on the last command stored in the assoc array. Call smtp_command_rule to eventually modify the command. All callers updated. * src/rcfile.c: New keyword "smtp-command-rule" can be used in the CONTROL section to modify the name of the SMTP command section. (rcfile_call_section): Issue 'No such section' warning in verbose mode only. * src/tunnel.c (save_command): Use case-insensitive comparison. Convert command verb part to upper case. (process_command): Convert buf to lowercase after saving command. * NEWS, doc/anubis.texi: Update.
2009-12-28Bugfixes.Sergey Poznyakoff2
* configure.ac: Initialize WITH_GSASL. * src/gpg.c (passphrase_cb): Fix non-ansi C code.
2009-12-03Bugfixes.Sergey Poznyakoff2
* src/net.c (swrite_n): Return immediately if nleft is 0. * src/smtprepl.c (smtp_reply_replace_line): Add terminating zero.
2009-11-16BugfixSergey Poznyakoff1
* src/esmtp.c [!WITH_GSASL] (emstp_auth): Fix signature.
2009-11-14Fix namespace, further improve mda mode.Sergey Poznyakoff27
* src/extern.h (struct message_struct): Remove. * src/headers.h (MESSAGE): Change typedef. All uses updated. (swrite_n): New proto. (message_new, message_dup): New protos. (assoc_list_dup, string_list_dup): New protos. * src/map.c: In remote-mta mode, process each recipient individually. * src/message.c: Rewrite. * src/net.c (swrite_n): New function. * src/list.h (ANUBIS_LIST, ITERATOR): Change typedefs. All uses updated. * src/list.c: Update usage of ANUBIS_LIST, ITERATOR and MESSAGE. * src/anubisadm.c: Likewise. * src/anubisdb.c: Likewise. * src/anubisusr.c: Likewise. * src/authmode.c: Likewise. * src/dbtext.c: Likewise. * src/esmtp.c: Likewise. * src/gdbm.c: Likewise. * src/gpg.c: Likewise. * src/gsasl_srv.c: Likewise. * src/guile.c: Likewise. * src/map.c: Likewise. * src/mime.c: Likewise. * src/misc.c: Likewise. * src/proclist.c: Likewise. * src/rc-gram.y: Likewise. * src/rcfile.c: Likewise. * src/rcfile.h: Likewise. * src/sql.c: Likewise. * src/tunnel.c: Likewise. * src/regex.c: Match functions take a const char * argument.
2009-11-14Implement functions for reading and parsing SMTP replies.Sergey Poznyakoff19
* src/smtprepl.h: New file. * src/smtprepl.c: New file. * src/Makefile.am (libanubisdb_a_SOURCES): Add smtprepl.c and smtprepl.h * src/headers.h: Include smtprepl.h (T_ALLOW_LOCAL_MTA): Remove. (ASSERT_MTA_CONFIG): New define. (swrite): Third argument is const (smtp_reply_get): New proto. (set_ehlo_domain): Change signature. (esmtp_auth): Second argument is const. (auth_method_list): Argument is const. (xdatabase_capability): Change signature. * src/mda.c: Initial implementation of mda over SMTP. * src/rc-lex.l (escape): Use \033 instead of non-standard \e. * src/rcfile.c: Remove allow-local-mta. * src/net.c (swrite): Third argument is const (send_eol): Fix conditional, (get_response_smtp): Remove. (smtp_reply_get): New function. * src/transmode.c (session_prologue) (anubis_proxy_mode): Call ASSERT_MTA_CONFIG. * src/anubisusr.c, src/esmtp.c, src/gsasl_srv.c, src/tunnel.c, src/xdatabase.c: Rewrite SMTP transactions using ANUBIS_SMTP_REPLY. * src/authmode.c: Update calls to set_ehlo_domain * src/daemon.c (stdinout): Call ASSERT_MTA_CONFIG. * src/env.opt (get_options): Move mda mode checks to mda.c * po/POTFILES.in: Add headers.h * doc/anubis.texi: Update.
2009-11-12Stylistic change.Sergey Poznyakoff1
* src/rc-gram.y: Fix indentation.
2009-11-11Command line overrides configuration statements.Sergey Poznyakoff9
* src/rcfile.h (RC_ERROR_PRINTER): New argument `pfx'. * src/headers.h (rc_disable_keyword): New proto. * src/rc-gram.y (default_error_printer): New argument `pfx'. (rc_disable_keyword, rc_keyword_is_disabled): New functions. (parse_error, eval_error, eval_warning): Pass pfx parameter to rc_error_printer. (asgn_eval): Return if the keyword is disabled (set from the command line). * src/xdatabase.c: Reflect changes to RC_ERROR_PRINTER. * src/rcfile.c (control_parser): Remove the now superfluous condition. * src/env.opt: Call rc_disable_keyword for options overriding configuration statements. * NEWS: Update. * doc/anubis.texi, doc/pixie-dixie.texi: Update.
2009-11-11Improve runtime diagnostics.Sergey Poznyakoff10
* bootstrap.conf (NLS_MARKERS): Add eval_error and eval_warning. * src/headers.h (EVAL_ENV): New typedef. (eval_env_locus, eval_env_method) (eval_env_message, eval_env_data) (eval_error, eval_warning): New prototypes. * src/rc-gram.y (eval_env_locus, eval_env_method) (eval_env_message, eval_env_data) (eval_error, eval_warning): New functions. (asgn_eval): Update calls to p->parser. * src/rcfile.h (RC_KW_HANDLED, RC_KW_UNKNOWN) (RC_KW_ERROR): Remove. (rc_kw_parser_t): Change signature. * src/authmode.c, src/env.opt, src/gpg.c, src/guile.c, src/map.c, src/rcfile.c: Reflect above changes.
2009-11-11Pacify gccSergey Poznyakoff9
* bootstrap.conf (NLS_MARKERS): Add parse_error and tracefile. * src/log.c (tracefile): Take into account T_LOCATION_COLUMN bit. * src/logport.c: Shut gcc warning. * src/misc.c (get_port_number): Port is unsigned. Improve error checking. * src/rc-lex.l: Initialize column to 1. * src/rcfile.h (parse_error,tracefile): Mark as printflike. * src/tls.c, src/xdatabase.c, testsuite/mta.c: Shut up gcc warnings.
2009-11-11Improve diagnostics.Sergey Poznyakoff8
* src/Makefile.am (AM_LFLAGS): Add -dvp (INCLUDES): Remove obsolete path. * src/env.opt: New option location-column. * src/headers.h (T_LOCATION_COLUMN): New define. * src/rc-gram.y: Use Bison location support. Improve diagnostics. * src/rc-lex.l: Likewise. * src/rcfile.h (struct rc_loc): New member `column'. (rc_yyltype): New struct. (YYLTYPE,RC_LOCUS_FILE_EQ,RC_LOCUS_EQ): New defines. (RC_ERROR_PRINTER): Change signature. * src/xdatabase.c (_xdb_error_printer): Change signature.
2009-11-10Housekeeping changes.Sergey Poznyakoff14
* build/ylwrap: Remove. * src/rcfile.y: Remove to.. * src/rc-gram.y: .. this. * src/rcfile.l: Remove to.. * src/rc-lex.l: .. this. * po/POTFILES.in: Reflect the above changes. * src/Makefile.am: Likewise. (YLWRAP): Remove. (EXTRA_DIST,BUILT_SOURCES): Remove rcfile.y rcfile.l and the generated counterparts. (rcfile-lex.c, rcfile-gram.c): Remove. * src/getopt.m4 (print_help): Minor change. * src/md5.c: Reindent. (F1): Revert to the optimized version. * .gitignore, build/.gitignore, src/.gitignore: Update. * build/Makefile.am (EXTRA_DIST): Remove ylwrap. * configure.ac (AM_INIT_AUTOMAKE): Add more options. * doc/anubis.texi: Update.
2009-11-10Minor changes.Sergey Poznyakoff2
* doc/anubis.texi: Cleanup the wording, check the spelling. * src/rcfile.l (escape): Bugfix: \r was handled as \t.
2009-11-10Improve docs.Sergey Poznyakoff9
* doc/Makefile.am (check-format, check-refs) (check-fixmes, check-writeme) (check-unrevised, all-check-docs) (check-docs, master-menu, untabify): New rules * doc/mastermenu.el: New file. * doc/untabify.el: New file. * doc/anubis.texi: Improve formatting. Rewrite the `Mutt' chapter. * doc/fdl.texi, doc/mime.texi, doc/pixie-dixie.texi: Comment out the initial sectioning command. * doc/rendition.texi: Improved version. * contrib/msg2smtp.pl: Remove hardcoded perl path.
2009-11-10Proxy mode.Sergey Poznyakoff6
* src/headers.h (enum anubis_mode): New mode anubis_proxy. (anubis_proxy_mode): New proto. * src/rcfile.c (parse_log_facility): Bugfix. (control_parser): Always handle the mode statement. * src/transmode.c (anubis_proxy_mode): New function. * src/daemon.c (anubis_child_main): Handle proxy mode. * src/env.opt (anubis_set_mode): Likewise. * doc/anubis.texi: Initial documentation of proxy mode.
2009-10-16* THANKS: Add Jorma Karvonen.Wojciech Polak1

Return to:

Send suggestions and report system problems to the System administrator.