Age | Commit message (Collapse) | Author | Files |
|
|
|
* include/mailutils/server.h (mu_m_server_config_default_fp): New data type.
(mu_m_server_set_config_default): New prototype.
* libmailutils/server/msrv.c (_mu_m_server): New field: config_default.
(mu_m_server_set_config_default): New function.
(mu_m_server_listen): If config_default is initialized, call it to
initialize the pconf structure.
* imap4d/imap4d.c (imap4d_connection): Don't reset idle_timeout and
imap4d_transcript.
(imap4d_config_default): New function.
(main): Initialize the server's config_default function.
* pop3d/apop.c (apop_ok): New function.
* pop3d/pop3d.c (pop3d_mainloop): Don't include timestamp in the
banner greeting if APOP database is not available.
(pop3d_config_default): New function.
(main): Initialize the server's config_default function.
* pop3d/pop3d.h (apop_ok): New prototype.
|
|
* configure.ac: Require autoconf 2.71, automake 1.16.2
Don't use obsolete macros.
Drop support for Berkeley DB 2.
* gint: Upgrade.
* gnulib: Upgrade.
* am/db2.m4: Remove. Support for bdb2 withdrawn.
* libmu_dbm/berkeley.c: Drop support for bdb2.
* am/config_paths.m4: Don't use obsolete autoconf macros.
* am/debug.m4: Likewise.
* am/enable.m4: Likewise.
* am/gsasl.m4: Likewise.
* am/gssapi.m4: Likewise.
* am/ipv6.m4: Likewise.
* am/tls.m4: Likewise.
* mail/mail.h (mailvar_value): Rename bool to
boolean to avoid eventual conflicts. All uses changed.
* comsat/comsat.c: Remove the uses of RETSIGTYPE.
* examples/echosrv.c: Likewise.
* imap4d/bye.c: Likewise.
* imap4d/imap4d.c: Likewise.
* imap4d/imap4d.h: Likewise.
* imap4d/signal.c: Likewise.
* lib/muaux.h: Likewise.
* lib/signal.c: Likewise.
* libmailutils/mailer/progmailer.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* mh/mhn.c: Likewise.
* mh/prompter-tty.c: Likewise.
* mh/sortm.c: Likewise.
* pop3d/pop3d.h: Likewise.
* pop3d/signal.c: Likewise.
|
|
|
|
* libmailutils/server/msrv.c (set_signal): Catch errors.
(_mu_m_server.sigtab): Increase size by one. Slot 0 is not used.
(mu_m_server_begin,mu_m_server_restore_signals): Enumerate signals
starting from 1.
|
|
|
|
|
|
|
|
* configure.ac: Select a suitable interface for closing all file
descriptors greater than or equal to a chosen one.
* include/mailutils/daemon.h (mu_daemon): New proto.
* include/mailutils/util.h (mu_close_fds): New proto.
* lib/daemon.c: Removed.
* lib/Makefile.am: Remove daemon.c
* libmailutils/base/Makefile.am: Add closefds.c
* libmailutils/base/closefds.c: New file.
* libmailutils/base/daemon.c: Rename to libmailutils/base/pidfile.c
* libmailutils/base/daemon.c: New file.
* libmailutils/diag/bt.c: Use mu_close_fds.
* libmailutils/server/acl.c: Likewise.
* mh/mh_whatnow.c: Likewise.
* libmailutils/stream/prog_stream.c: Likewise.
* libmailutils/server/msrv.c: Use mu_daemon.
* mh/send.c: Likewise.
* mda/lib/util.c (mda_close_fds): Remove.
|
|
|
|
|
|
|
|
|
|
Split formatting functions into two distinct families. Functions prefixed
with mu_sys_sockadrr deal with struct sockaddr, wherease those starting with
mu_sockaddr deal with struct mu_sockaddr. Introduce special format for SMTP
EHLO.
When sending EHLO to the remote party, use IP address in square brackets
if hostname is empty.
* libmailutils/sockaddr/Makefile.am (libsockaddr_la_SOURCES): Add fromsock.c
* libmailutils/sockaddr/fromsock.c: New function.
* libmailutils/sockaddr/str.c (mu_sockaddr_format): Rewrite.
(mu_sys_sockaddr_format,mu_sys_sockaddr_to_astr): New functions.
* include/mailutils/debug.h (mu_sockaddr_to_astr): Remove prototype.
* include/mailutils/sockaddr.h (mu_sockaddr_format): New enum.
(mu_sockaddr_format): change signature.
(mu_sys_sockaddr_format,mu_sys_sockaddr_to_astr): New prototypes.
(mu_sockaddr_from_socket): New prototype.
* include/mailutils/stream.h (MU_IOCTL_TCPSTREAM): New ioctl family;
(MU_IOCTL_TCP_GETSOCKNAME): New ioctl opcode.
* comsat/comsat.c: Use mu_sys_sockaddr_ interface to handle
struct sockaddr.
* lib/tcpwrap.c: Likewise.
* libmailutils/server/ipsrv.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmailutils/stream/tcp.c (_tcp_ioctl): Handle MU_IOCTL_TCPSTREAM.
* libproto/mailer/smtp_ehlo.c (mu_smtp_ehlo): If hostname is empty,
use IP address in square brackets.
|
|
* include/mailutils/acl.h (mu_acl_set_session_id): Remove proto.
* include/mailutils/server.h (mu_session_id): Remove extern.
(mu_sid): New proto.
* libmailutils/server/sid.c: New file.
* libmailutils/server/Makefile.am: Add sid.c
* libmailutils/server/ipsrv.c (mu_ip_tcp_accept)
(mu_ip_udp_accept): Remove calls to mu_acl_set_session_id.
(mu_ip_server_accept): Make sure output to mu_strerr is filtered so
that session ID is prepended to each line.
(mu_ip_server_loop): Remove.
* libmailutils/server/msrv.c (mu_m_server_check_acl): Remove call
to mu_acl_set_session_id.
* libmailutils/server/server.c (mu_session_id): Remove variable.
* imap4d/imap4d.c (get_client_address, set_strerr_flt)
(clr_strerr_flt): Remove unused functions.
(imap4d_connection): Simplify.
* pop3d/pop3d.c: Likewise.
|
|
The new implementation allows for per-server certificates.
* libmu_auth/Makefile.am: Build tls support depending on the value of
MU_COND_GNUTLS.
* libmu_auth/notls.c: New file.
* libmu_auth/tls.c: Rewrite.
* libmu_auth/tlsiostr.c: New file.
* libmu_auth/tlsvar.c: New file.
* libmu_auth/tlsconf.c: New file.
* include/mailutils/sys/tls-stream.h (_mu_tls_stream): New members:
session_type, conf, cred.
(mu_tls_io_stream_create): New proto.
* include/mailutils/tls.h (mu_tls_module_config): Remove definition.
(mu_tls_config): New structure.
(mu_tls_server_stream_create): Remove proto.
(mu_tls_cert_file_checks)
(mu_tls_key_file_checksr)
(mu_tls_ca_file_checks): New globals
(MU_TLS_CERT_FILE_CHECKS)
(MU_TLS_KEY_FILE_CHECKS)
(MU_TLS_CA_FILE_CHECKS): New defines.
(mu_tls_stream_create): New proto.
(mu_tls_config_status): New constants.
(mu_tls_check_config): Remove.
(mu_tls_config_check): New function.
* include/mailutils/server.h (mu_m_server_preflight_fp): New typedef.
(mu_m_server_set_preflight): New proto.
* libmailutils/diag/debcat (tls): New category.
* libmailutils/server/ipsrv.c (mu_ip_server_get_data): New function.
* libmailutils/server/msrv.c (_mu_m_server) <preflight>: New method.
(mu_m_server_set_preflight): New function.
(mu_m_server_destroy): Destroy the srvlist.
(open_connection): New function.
(mu_m_server_run): Remove from srvlist only those servers that failed
to open. Run preflight check, if registered.
* include/mailutils/cfg.h (mu_cfg_section): New member: data.
* libmailutils/cfg/driver.c (dup_container): Copy the "data" pointer.
(mu_cfg_section_add_params): Preserve original pointer and offset when
necessary.
* libmailutils/cfg/parser.y (_scan_tree_helper): Use the section data
pointer (if set) as data target.
* configure.ac (MU_COND_GNUTLS): New conditional.
* imap4d/commands.c: Remove #ifdef WITH_TLS preprocessor conditional.
* imap4d/imap4d.c (tls_mode): Remove variable.
(imap4d_srv_config): Move definition to the header file.
Remove #ifdef WITH_TLS preprocessor conditionals.
Rename the tls configuration statement to tls-mode.
Add new subsection .server.tls;
Remove the legacy tls-required configuration statement.
(imap4d_mainloop): Change signature: take a pointer to the
struct imap4d_srv_config as the 3rd argument,
Use the cfg->tls_mode member to decide on TLS state.
(main): Call mu_tls_cfg_init.
Install server preflight checker.
* imap4d/imap4d.h: Remove #ifdef WITH_TLS preprocessor conditionals.
(imap4d_srv_config): Moved from imap4d.c
New member: tls_conf
(imap4d_session): New member: tls_conf
(global_tls_conf): New global.
(io_setio, imap4d_init_tls_server): Change prototypes.
* imap4d/io.c (io_setio): Change signature: take a pointer to the
struct mu_tls_config as the 3rd argument.
Rewrite TLS support.
(imap4d_init_tls_server): Take a pointer to the
struct mu_tls_config.
* imap4d/starttls.c (tls_available, tls_done): Remove globals.
(global_tls_conf): New global.
(imap4d_starttls): Keep TLS state in the session.
(tls_encryption_on): Likewise.
(starttls_init): Rewrite as a mserver preflight check function.
* pop3d/capa.c: Remove #ifdef WITH_TLS preprocessor conditional.
(capa_stls): Rewrite.
* pop3d/cmd.c (global_tls_conf): New global.
(stls_preflight): New function.
(pop3d_error_string): Rewrite using char ** array.
* pop3d/extra.c (pop3d_setio): Take a pointer to struct mu_tls_config
as the 3rd argument. Decide on TLS using it.
(pop3d_init_tls_server): Take a pointer to struct mu_tls_config.
* pop3d/pop3d.c: Rename the tls configuration statement to tls-mode.
Add new subsection .server.tls;
Remove the legacy tls-required configuration statement.
(pop3d_mainloop) Take a pointer to struct mu_tls_config
as the 3rd argument. Decide on TLS using it.
(main): Call mu_tls_cfg_init. Install server preflight check.
* pop3d/pop3d.h (pop3d_session): New member tls_conf.
(pop3d_srv_config): New definition.
(global_tls_conf): New extern.
* pop3d/stls.c: Rewrite TLS support.
* NEWS: Document new features.
* configure.ac: Version 3.2.90.
* doc/texinfo/programs.texi: Update.
|
|
|
|
condition in foreach iterator functions
* libmailutils/diag/errors (MU_ERR_USER0-MU_ERR_USER7): New error constants.
Reserved for user's purposes, such as breaking from foreach iterators.
* libmaildutils/list/foreach.c (mu_list_foreach): Treat NULL list as a list
of 0 elements.
* libmailutils/list/foreachdir.c (mu_list_foreach_dir): Likewise.
* imap4d/imap4d.h (imap4d_auth_result): Remap constants to MU_ERR_USER[0-2]
* libmu_sieve/prog.c (mu_i_sv_lint_command): Use mu_list_locate with
the default comparator.
* mh/mh_list.c (_comp_name): Rewrite to match the definition of
mu_list_comparator_t
(mhl_format_run): Set _comp_name as comparator for the
env.printed_fields list.
(header_is_printed): Use mu_list_locate.
* imap4d/authenticate.c: Use MU_ERR_USER0-MU_ERR_USER7 to indicate
normal break condition in foreach iterators.
* imap4d/imap4d.c: Likewise.
* imap4d/namespace.c: Likewise.
* libmailutils/auth/auth.c: Likewise.
* libmailutils/cfg/driver.c: Likewise.
* libmailutils/cfg/parser.y: Likewise.
* libmailutils/server/acl.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmu_sieve/conf.c: Likewise.
* libmu_sieve/load.c: Likewise.
* libmu_sieve/sieve.l: Likewise.
* libmu_sieve/strexp.c: Likewise.
* libproto/imap/mbox.c: Likewise.
* libproto/imap/search.c: Likewise.
* mh/mh_format.c: Likewise.
* mh/send.c: Likewise.
* mh/sortm.c: Likewise.
* mimeview/mimetypes.y: Likewise.
* movemail/movemail.c: Likewise.
|
|
|
|
* include/mailutils/cfg.h (mu_cfg_param_data_type): Remove.
(mu_cfg_param_type): New enum.
(mu_cfg_param) <type>: Change type to int.
(mu_cfg_cidr): Remove.
(mu_cfg_parse_boolean): Remove. All uses updated.
* include/mailutils/util.h (mu_c_void): New constant.
(mu_c_type_str): New extern/
* libmailutils/string/str_to_c.c (mu_c_type_str): New global.
* libmailutils/cfg/format.c (mu_cfg_data_type_string): Rename
to mu_c_type_string; change argument type.
All uses updated.
* libmailutils/cfg/parser.y: Use mu_str_to_c for value
conversion.
* libmailutils/tests/.gitignore: Update.
* libmailutils/tests/Makefile.am: Add strtoc.at; build strtoc
* libmailutils/tests/strtoc.at: New file.
* libmailutils/tests/strtoc.c: New file.
* libmailutils/tests/testsuite.at: Include strtoc.at
* comsat/comsat.c: Use mu_c_type_t types.
* dotlock/dotlock.c: Likewise.
* imap4d/imap4d.c: Likewise.
* lib/manlock.c: Likewise.
* lib/tcpwrap.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmu_argp/muinit.c: Likewise.
* libmu_cfg/common.c: Likewise.
* libmu_cfg/gsasl.c: Likewise.
* libmu_cfg/ldap.c: Likewise.
* libmu_cfg/pam.c: Likewise.
* libmu_cfg/radius.c: Likewise.
* libmu_cfg/sieve.c: Likewise.
* libmu_cfg/sql.c: Likewise.
* libmu_cfg/tls.c: Likewise.
* libmu_cfg/virtdomain.c: Likewise.
* maidag/maidag.c: Likewise.
* mimeview/mimeview.c: Likewise.
* movemail/movemail.c: Likewise.
* pop3d/pop3d.c: Likewise.
* readmsg/readmsg.c: Likewise.
* sieve/sieve.c: Likewise.
|
|
New statement backlog is provided in the server block.
* include/mailutils/server.h (mu_m_server_cfg_init): Pass
mu_m_server_t as first argument.
* libmailutils/server/msrv.c (mu_m_server_cfg_init): Pass
mu_m_server_t as first argument. Customize available statements
depending on the type of server (tcp vs udp).
New statement "backlog" available for tcp servers.
* comsat/comsat.c: Update call to mu_m_server_cfg_init
* imap4d/imap4d.c: Likewise.
* pop3d/pop3d.c: Likewise.
* maidag/maidag.c: Likewise.
|
|
|
|
Avoid calling gnutls_global_init (via mu_tls_module_init) prior
to forking. gnutls_global_init opens at least one file descriptor
(/dev/urandom), and closing it will disrupt its operation.
Current stable libgnutls (3.3.15) is able to cope with it, but
there are plenty of systems running much older versions.
* libmailutils/server/msrv.c (mu_m_server_begin): Reset onexit list
after forking.
* libmu_auth/tls.c (mu_tls_module_init): Don't call mu_init_tls_libs.
(_tls_server_open, _tls_client_open): Check return value from
mu_init_tls_libs.
* imap4d/auth_gsasl.c (auth_gsasl): Use mu_onexit to
register onexit functions.
* imap4d/imap4d.h (util_atexit): Remove prototype.
* imap4d/starttls.c (imap4d_starttls): Don't register
mu_deinit_tls_libs: now done by tls library.
(starttls_init): Don't call mu_init_tls_libs.
* imap4d/util.c (util_atexit): Remove.
(util_bye): Update accordingly.
* pop3d/extra.c (pop3d_setio): Print informational message after
establishing TLS.
(pop3d_bye): Don't call mu_deinit_tls_libs: that's done by the library.
* pop3d/pop3d.c (main): Don't call mu_init_tls_libs.
|
|
* configure.ac: Fix checks for readline. If it is
not present - bail out if it was explicitly requested
and silently disable it otherwise.
Check for dbm_dirfno and dbm_pagfno (see libmu_dbm/ndbm.c,
below).
* examples/mboxidx.c (set_charset_filter): Fix array dimensions.
* lib/python.c (python_done): add missing return statement.
* libmailutils/address/address.c (mu_address_union): Fix size
argument to memset.
* libmailutils/server/msrv.c (mu_m_server_get_hints): Likewise.
* libmu_compat/vartab.c (vardefn_free): Likewise.
* libmailutils/cfg/parser.y (_set_fun): cast enum to size_t before
comparison
* libmailutils/diag/wd.c (mu_wd): fix while loop.
* libmailutils/tests/url-parse.c (main): Fix printf format.
* libmu_dbm/ndbm.c (_ndbm_get_fd): One of dbm_dirfno or
dbm_pagfno may be missing (on FreeBSD, dbm_pagfno expands
to a non-defined macro, which produces compilation error.
* mail/mailvar.c (mailvar_varptr_comp): Remove.
(mailvar_list_copy): Use mailvar_variable_comp instead
of the removed mailvar_varptr_comp.
|
|
|
|
* include/mailutils/mailbox.h (mu_mailbox_set_notify)
(mu_mailbox_unset_notify): New protos.
* include/mailutils/sys/mailbox.h (_mu_mailbox) <notify_user>
<notify_fd,notify_sa>: New members.
* libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add
biffnotify.c
* libmailutils/mailbox/biffnotify.c: New file.
* libmailutils/mailbox/mailbox.c (_mailbox_create_from_record): Initialize
notify_fd.
(mu_mailbox_destroy): Free notify_sa.
(mu_mailbox_close): Close notify_fd.
(mu_mailbox_flush): Rewrite to handle append-only mailboxes effectively.
* libmailutils/server/msrv.c (server_cfg_param): Fix docstring.
* libmailutils/stream/file_stream.c (fd_open): Open fd read-write if
both MU_STREAM_APPEND and MU_STREAM_READ are requested.
* libproto/mbox/mbox.c (mbox_expunge0): Rescan the mailbox if
messages_count == 0. Special handling for append-only mailboxes.
* maidag/deliver.c: Use library notification mechanism.
* mh/inc.c: New option --notify.
* movemail/movemail.c: Likewise.
|
|
|
|
recognition in maidag.
* include/mailutils/server.h (mu_m_server_listen)
(mu_m_server_parse_url): New protos.
* libmailutils/server/msrv.c (add_server): Rename to
mu_m_server_listen (now extern). All uses updated.
(get_port): Bugfix: return port in server byte order.
This fixes the use of the "port" configuration statement.
* maidag/lmtp.c (cfun_data): Don't switch to full buffering.
This makes it impossible to note the final dot in time.
* maidag/maidag.c (cb_listen): New callback.
(maidag_cfg_param): Attach cb_listen to the "listen" statement.
|
|
* imap4d/imap4d.c (set_strerr_flt,clr_strerr_flt): New functions.
(imap4d_connection): Setup session prefix in strerr if
mu_log_session_id is set.
* imap4d/io.c (io_setio): Bugfix: unref debug stream.
* pop3d/extra.c (pop3d_setio): Likewise.
* pop3d/pop3d.c (set_strerr_flt,clr_strerr_flt): New functions.
(pop3d_connection): Setup session prefix in strerr if
mu_log_session_id is set.
* include/mailutils/acl.h (mu_acl_setenv)
(mu_acl_getenv,mu_acl_set_session_id): New functions.
* include/mailutils/server.h (mu_session_id): New extern.
(mu_m_server_configured_count): Fix signature.
* include/mailutils/syslog.h (mu_log_session_id): New extern.
* libmailutils/diag/syslog.c (mu_log_session_id): New global.
* libmailutils/server/acl.c (_mu_acl) <envv,envc,envn>: New
members.
(run_closure) <env>: New member.
(mu_acl_destroy): Free environment.
(_acl_match): Handle "family" variable.
(expand_arg): Propagate ACL environment to wordsplit.
(mu_acl_check_sockaddr): Propagate ACL environment.
(mu_acl_setenv)
(mu_acl_getenv,mu_acl_set_session_id): New functions.
* libmailutils/server/ipsrv.c (mu_ip_tcp_accept): Store session ID
in the ACL.
(mu_ip_udp_accept): Likewise.
* libmailutils/server/msrv.c (mu_m_server_configured_count): Fix
signature.
(mu_m_server_check_acl): Store session ID in the ACL.
* libmailutils/server/server.c (mu_session_id): New global variable.
(connection_loop): Increment session ID
(mu_acl_set_session_id): New function.
* libmailutils/stream/fltstream.c (filter_ctl): Handle
MU_IOCTL_SUBSTREAM.
* libmailutils/stream/logstream.c (_log_ctl): Likewise.
* libmu_cfg/common.c (mu_logging_param) <session-id>: New statement.
|
|
|
|
|
|
* comsat/comsat.c (comsat_prefork,comsat_connection): Change signatures.
* imap4d/imap4d.c: Implement imaps.
* imap4d/imap4d.h (io_setio): Change signature.
(tls_encryption_on): New proto.
* imap4d/io.c (io_setio): Change signature. Initialize TLS stream if
requested.
* imap4d/starttls.c (tls_encryption_on): New function.
* include/mailutils/server.h (mu_srv_config): New struct.
(mu_m_server_conn_fp, mu_m_server_prefork_fp): Remove typedefs.
(mu_m_server_handler_fp): New typedef.
(mu_m_server_set_conn): Change signature.
(mu_m_server_set_prefork): Change signature.
(mu_m_server_set_app_data_size)
(mu_m_server_set_config_size): New prototype.
(mu_m_server_cfg_init): Change signature.
* include/mailutils/tls.h (mu_init_tls_libs): Change signature.
* lib/tcpwrap.c: Include tcpwrap.h
(mu_tcp_wrapper_daemon): Fix declaration.
(mu_tcp_wrapper_prefork): Change signature.
* lib/tcpwrap.h (mu_tcp_wrapper_prefork): Change signature
* libmailutils/server/msrv.c (_mu_m_server) <conn,prefork>: Change
data type. All uses updated.
<app_data_size>: New member.
(m_srv_config): Remove struct. Replaced with mu_srv_config from tls.h
(mu_m_server_set_conn): Change signature.
(mu_m_server_set_prefork): Change signature.
(mu_m_server_set_app_data_size)
(mu_m_server_set_config_size): New functions.
(add_server): Allocate app_data_size additional bytes of data.
(mu_m_server_cfg_init): Take one argument.
* libmu_auth/tls.c (mu_tls_module_init): Update call to mu_init_tls_libs.
Don't call mu_file_safety_check with NULL argument.
(mu_init_tls_libs): Rewrite. Prepare x509 here, instead of
doing it each time a TLS stream is created.
(mu_deinit_tls_libs): Free x509, if exists.
(_tls_server_open): Update call to mu_init_tls_libs.
Remove x509 initialization.
* libmu_cfg/tls.c (cb2_safety_checks): Fix typos.
* maidag/lmtp.c (lmtp_connection): Change signature.
* maidag/maidag.c (main): Update call to mu_m_server_cfg_init.
* maidag/maidag.h (lmtp_connection): Change signature.
* pop3d/extra.c (pop3d_setio): Initialize TLS stream, if requested.
* pop3d/pop3d.c: Implement pops.
* pop3d/pop3d.h (pop3d_setio): Change prototype.
|
|
* am/ipv6.m4: New file.
* examples/sa.c: New file.
* include/mailutils/cidr.h: New file.
* include/mailutils/sockaddr.h: New file.
* libmailutils/cidr/Makefile.am: New file.
* libmailutils/cidr/fromsa.c: New file.
* libmailutils/cidr/fromstr.c: New file.
* libmailutils/cidr/match.c: New file.
* libmailutils/cidr/tosa.c: New file.
* libmailutils/cidr/tostr.c: New file.
* libmailutils/sockaddr/Makefile.am: New file.
* libmailutils/sockaddr/copy.c: New file.
* libmailutils/sockaddr/create.c: New file.
* libmailutils/sockaddr/free.c: New file.
* libmailutils/sockaddr/fromnode.c: New file.
* libmailutils/sockaddr/insert.c: New file.
* libmailutils/sockaddr/ipaddr.c: New file.
* libmailutils/sockaddr/str.c: New file.
* libmailutils/sockaddr/unlink.c: New file.
* libmailutils/sockaddr/url.c: New file.
* libmailutils/tests/cidr.c: New file.
* configure.ac: Call MU_ENABLE_IPV6.
Build libmailutils/sockaddr and libmailutils/cidr.
* examples/.gitignore: Add mblconv and sa
* examples/Makefile.am: (noinst_PROGRAMS): Add sa.
* examples/aclck.c: Use new ACL API.
* examples/echosrv.c: Use new mserv API.
* include/mailutils/Makefile.am (pkginclude_HEADERS): Add cidr.h
and sockaddr.h
* include/mailutils/acl.h (mu_acl_append, mu_acl_prepend)
(mu_acl_insert): Change signatures.
* include/mailutils/debug.h (mu_sockaddr_to_str): Remove proto.
* include/mailutils/mailutils.h: Include cidr.h and sockaddr.h
* include/mailutils/server.h (mu_ip_server_create): Change signature.
(mu_ip_server_get_sockaddr): Likewise.
(mu_m_server_set_default_address)
(mu_m_server_get_default_address): Remove.
* include/mailutils/stream.h (mu_tcp_stream_create_from_sa): New proto.
* include/mailutils/types.hin (mu_cidr, mu_sockaddr): New structs.
* include/mailutils/url.h (MU_URL_IPV6): New flag.
(MU_URL_PARSE_DSLASH_OPTIONAL): New parse flag.
* libmailutils/Makefile.am: Descend into cidr and sockaddr. Link in
libcidr and libsockaddr.
* libmailutils/diag/debug.c (mu_debug_log_begin): Flush mu_strerr.
* libmailutils/diag/errors (MU_ERR_NONAME)
(MU_ERR_BADFLAGS,MU_ERR_SOCKTYPE)
(MU_ERR_FAMILY,MU_ERR_SERVICE): New errors.
* libmailutils/server/acl.c: Rewrite API using mu_cidr.
* libmailutils/server/ipsrv.c: Rewrite AI using mu_sockaddr.
* libmailutils/server/msrv.c: Likewise.
* libmailutils/stream/tcp.c: Likewise.
* libmailutils/tests/.gitignore: Add cidr.
* libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add cidr.
* libmailutils/tests/url-parse.c: Support command line options
to tune the parsing.
* libmailutils/tests/url.at: Pass options to url-parse.
* libmailutils/url/create.c (getkn): Return meaningful error code.
(_mu_url_ctx_parse_host): Accept IPv6 addresses. Set the MU_URL_IPV6
flag if one is given.
(_mu_url_ctx_parse): Unless MU_URL_PARSE_DSLASH_OPTIONAL flag is
given, request :// after scheme part.
(mu_url_create): Add MU_URL_PARSE_DSLASH_OPTIONAL flag.
* libmu_cfg/acl.c: Use new ACL API.
* mu/acl.c: Likewise.
* libproto/mailer/smtp.c (smtp_open): Use mu_tcp_stream_create_from_sa
* libproto/pop/mbox.c (pop_open): Likewise.
* mu/imap.c (com_connect): Likewise.
* mu/pop.c (com_connect): Likewise.
* testsuite/smtpsend.c (main): Likewise.
|
|
Happy GNU year!
|
|
The mu_debug_t object and associated functions have been removed.
New debugging functions are based on the logstream interface.
* include/mailutils/debug.hm4: Remove.
* include/mailutils/debug.h: New file.
* include/mailutils/Makefile.am (BUILT_SOURCES,EXTRA_DIST): Remove debug.h,
debug.hm4.
* mu-aux/debugdef.m4: Remove.
* mu-aux/debcat.awk: New file.
* mu-aux/Makefile.am (EXTRA_DIST): Replace debugdef.m4 with debcat.awk.
* include/mailutils/sys/dbgstream.h: Remove.
* include/mailutils/sys/debug.h: Remove.
* include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Remove debug.h
and dbgstream.h, add debcat.h
* include/mailutils/sys/.gitignore: Add debcat.h.
* libmailutils/diag/dbgstderr.c: Remove.
* libmailutils/diag/dbgsyslog.c: Remove.
* libmailutils/diag/gdebug.c: Remove.
* libmailutils/diag/debcat: New file.
* libmailutils/diag/Makefile.am (libdiag_la_SOURCES): Remove these
sources.
* libmailutils/diag/debug.c: Rewrite from scratch.
* libmailutils/diag/diag.c: Rewrite from scratch.
* libmailutils/diag/syslog.c (mu_diag_syslog_printer): Remove function.
(mu_log_syslog, mu_log_print_severity): New variables.
* libmailutils/stream/dbgstream.c: Remove.
* libmailutils/stream/Makefile.am (libstream_la_SOURCES): Remove dbgstream.c..
* libmailutils/stdstream/Makefile.am (libstdstream_la_SOURCES): Add
dbgstream.c.
* libmailutils/stream/logstream.c (_mu_severity_str): Change strings
to lower case.
(_log_write): Improve handling of unrecognized escapes.
(_log_ctl): Handle MU_LOGSTREAM_ADVANCE_LOCUS_LINE and
MU_LOGSTREAM_ADVANCE_LOCUS_COL.
* libmailutils/mailbox/folder.c (mu_folder_has_debug)
(mu_folder_get_debug, mu_folder_set_debug): Remove functions.
* mu-aux/debcat.awk: New file.
* libmailutils/stdstream/dbgstream.c: New file.
* comsat/action.c: Use new debug/log functions.
* comsat/comsat.c: Likewise.
* examples/aclck.c: Likewise.
* examples/echosrv.c: Likewise.
* examples/msg-send.c: Likewise.
* examples/nntpclient.c: Likewise.
* examples/numaddr.c: Likewise.
* frm/common.c: Likewise.
* imap4d/imap4d.c: Likewise.
* imap4d/io.c: Likewise.
* imap4d/util.c: Likewise.
* libmailutils/auth/mu_auth.c: Likewise.
* libmailutils/base/amd.c: Likewise.
* libmailutils/cfg/driver.c: Likewise.
* libmailutils/cfg/format.c: Likewise.
* libmailutils/cfg/lexer.l: Likewise.
* libmailutils/cfg/parser.y: Likewise.
* libmailutils/mailbox/mailbox.c: Likewise.
* libmailutils/mailbox/mbx_default.c: Likewise.
* libmailutils/mailer/mailer.c: Likewise.
* libmailutils/mailer/progmailer.c: Likewise.
* libmailutils/server/acl.c: Likewise.
* libmailutils/server/ipsrv.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmailutils/tests/wicket.c: Likewise.
* libmu_argp/auth.c: Likewise.
* libmu_argp/cmdline.c: Likewise.
* libmu_argp/common.c: Likewise.
* libmu_auth/ldap.c: Likewise.
* libmu_cfg/acl.c: Likewise.
* libmu_cfg/auth.c: Likewise.
* libmu_cfg/common.c: Likewise.
* libmu_cfg/ldap.c: Likewise.
* libmu_cfg/sieve.c: Likewise.
* libmu_cfg/sql.c: Likewise.
* libmu_scm/mu_message.c: Likewise.
* libmu_sieve/prog.c: Likewise.
* libmu_sieve/runtime.c: Likewise.
* libproto/imap/trace.c: Likewise.
* libproto/mailer/mbox.c: Likewise.
* libproto/mailer/prog.c: Likewise.
* libproto/mailer/sendmail.c: Likewise.
* libproto/mailer/smtp.c: Likewise.
* libproto/mailer/smtp_trace.c: Likewise.
* libproto/mbox/folder.c: Likewise.
* libproto/mbox/mbox.c: Likewise.
* libproto/nntp/folder.c: Likewise.
* libproto/nntp/nntp_debug.c: Likewise.
* libproto/pop/mbox.c: Likewise.
* libproto/pop/pop3_trace.c: Likewise.
* maidag/guile.c: Likewise.
* maidag/lmtp.c: Likewise.
* maidag/maidag.c: Likewise.
* maidag/util.c: Likewise.
* mail/mail.c: Likewise.
* mail/mailvar.c: Likewise.
* mail/send.c: Likewise.
* mail/source.c: Likewise.
* mh/mh_argp.c: Likewise.
* mh/send.c: Likewise.
* mimeview/mimeview.c: Likewise.
* movemail/movemail.c: Likewise.
* mu/wicket.c: Likewise.
* pop3d/extra.c: Likewise.
* pop3d/pop3d.c: Likewise.
* readmsg/readmsg.c: Likewise.
* sieve/sieve.c: Likewise.
* testsuite/mimetest.c: Likewise.
* libmu_sieve/sieve-priv.h (mu_sieve_machine) <parse_error_printer>
<error_printer, debug_printer, debug>: Remove.
<errstream>: New member.
(mu_sv_compile_error, mu_sv_print_value_list)
(mu_sv_print_tag_list): Change prototypes.
* libmu_sieve/actions.c: Use new sieve debug functions.
* libmu_sieve/extensions/list.c: Likewise.
* libmu_sieve/extensions/moderator.c: Likewise.
* libmu_sieve/extensions/pipe.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* libmu_sieve/extensions/timestamp.c: Likewise.
* libmu_sieve/extensions/vacation.c: Likewise.
* libmu_sieve/sieve.y : Likewise.
* libmu_sieve/sieve.l: Likewise.
* libmu_sieve/tests.c: Likewise.
* libmu_sieve/util.c: Rewrite diagnostic support.
* /maidag/sieve.c: Use new debug/log and sieve diagnostic functions.
* mu/mu.c (main): Remove call to mu_stdstream_setup. It is called
by mu_app_init now.
* libmailutils/base/wicket.c (mu_wicket_stream_match_url): Change signature.
* libmailutils/cfg/gocs.c (mu_gocs_logging_init): Rewrite.
* libmailutils/mailbox/message.c (mu_message_save_to_mailbox): Remove
mu_debug_t argument.
* libmailutils/stdstream/basestr.c (mu_stdstream_setup): Minor fixes.
* libmailutils/stdstream/strerr.c (mu_stdstream_strerr_create): Do
not install filter stream if tag is NULL.
(mu_stdstream_strerr_setup): New function.
* libmu_argp/muinit.c (mu_app_init): Set mu_log_tag.
Call mu_stdstream_setup.
* libmu_scm/mu_dbgport.c: Rewrite port support.
* include/mailutils/acl.h (mu_acl_get_debug)
(mu_acl_set_debug): Remove prototypes.
* include/mailutils/auth.h (mu_wicket_stream_match_url): Change signature.
* include/mailutils/cfg.h (mu_cfg_locus_t): Remove typedef, use
struct mu_locus instead.
(mu_cfg_locus): Remove declaration.
(mu_cfg_node)<locus>: Change type.
(mu_cfg_node)<debug>: Remove.
(mu_cfg_vperror,mu_cfg_perror)
(mu_cfg_parse_error,mu_cfg_format_error): Remove prototypes.
(mu_cfg_callback_t): Change signature. All uses updated.
(mu_cfg_get_debug): Remove prototype.
(mu_cfg_assert_value_type, mu_cfg_string_value_cb): Change signature.
(mu_cfg_tree_set_debug): Remove prototype.
(mu_cfg_tree_create_node): Change signature.
* include/mailutils/diag.h (MU_DIAG_): Redefine via MU_LOG_ constants.
(mu_diag_get_debug,mu_diag_set_debug): Remove.
(mu_diag_cont_vprintf, mu_diag_cont_printf)
(mu_diag_at_locus): New functions.
* include/mailutils/folder.h (mu_folder_has_debug)
(mu_folder_get_debug, mu_folder_set_debug): Remove prototypes.
* include/mailutils/gocs.h (mu_gocs_logging): Remove structure.
(mu_gocs_debug)<errpfx>: Remove.
* include/mailutils/guile.h (mu_scm_make_debug_port): Change prototype.
* include/mailutils/mailbox.h (mu_mailbox_has_debug)
(mu_mailbox_get_debug,mu_mailbox_set_debug): Remove.
* include/mailutils/mailer.h (mu_mailer_get_debug)
(mu_mailer_set_debug): Remove.
* include/mailutils/message.h (mu_message_save_to_mailbox): Change
signature.
* include/mailutils/mu_auth.h (mu_auth_set_debug): Remove proto.
* include/mailutils/nntp.h (mu_nntp_set_debug): Remove.
* include/mailutils/progmailer.h (mu_progmailer_set_debug): Remove proto.
* include/mailutils/server.h (mu_ip_server_set_debug)
(mu_ip_server_get_debug): Remove proto.
* include/mailutils/sieve.h (mu_sieve_locus_t): Remove.
Use struct mu_locus instead.
(mu_sieve_printf_t, mu_sieve_parse_error_t): Remove.
(mu_sieve_action_log_t): Change signature.
(mu_sieve_machine_init): Change signature.
(mu_sieve_machine_init_ex): New function.
(mu_sieve_get_diag_stream)
(mu_sieve_set_diag_stream): New functions.
(mu_sieve_set_data): New function.
(mu_sieve_get_locus): Change signature.
(mu_sieve_set_error,mu_sieve_set_parse_error)
(mu_sieve_set_debug,mu_sieve_set_debug_object): Remove protos.
* include/mailutils/stdstream.h (mu_stdstream_strerr_setup): New proto.
* include/mailutils/stream.h (MU_LOGSTREAM_ADVANCE_LOCUS_LINE)
(MU_LOGSTREAM_ADVANCE_LOCUS_COL): New ioctls.
(mu_dbgstream_create): Change signature.
* include/mailutils/sys/folder.h (_mu_folder) <debug>: Remove.
* include/mailutils/sys/mailbox.h (_mu_mailbox) <debug>: Remove.
* include/mailutils/sys/mailer.h (_mu_mailer) <debug>: Remove.
* include/mailutils/sys/nntp.h (_mu_nntp) <debug>: Remove.
* include/mailutils/syslog.h (mu_log_syslog)
(mu_log_print_severity): New externs.
* include/mailutils/types.hin (_mu_debug, mu_debug_t): Remove.
* lib/tcpwrap.h: Remove unused prototypes.
* imap4d/imap4d.h: Include mailutils/stdstream.h
* mail/mail.h: Likewise.
* pop3d/pop3d.h: Likewise.
* mh/comp.c (main): Bugfix.
* po/POTFILES.in: Update.
* TODO: Update.
|
|
* configure.ac (AC_CONFIG_FILES): Add libmailutils/ subdirs.
* include/mailutils/Makefile.am: Update references to libmailutils.
* po/POTFILES.in: Likewise.
* libmailutils/.gitignore: Update.
* libmailutils/Makefile.am: Use convenience libraries in subdirs.
* libmailutils/string/Makefile.am: New file.
* libmailutils/cstrcasecmp.c: Move to libmailutils/string.
* libmailutils/cstrlower.c: Likewise.
* libmailutils/cstrupper.c: Likewise.
* libmailutils/strltrim.c: Likewise.
* libmailutils/strskip.c: Likewise.
* libmailutils/stripws.c: Likewise.
* libmailutils/strrtrim.c: Likewise.
* libmailutils/asnprintf.c: Likewise.
* libmailutils/asprintf.c: Likewise.
* libmailutils/muctype.c: Likewise.
* libmailutils/vasnprintf.c: Likewise.
* libmailutils/mkfilename.c: Likewise.
* libmailutils/stream/Makefile.am: New file.
* libmailutils/dbgstream.c: Move to libmailutils/stream.
* libmailutils/file_stream.c: Likewise.
* libmailutils/fltstream.c: Likewise.
* libmailutils/iostream.c: Likewise.
* libmailutils/mapfile_stream.c: Likewise.
* libmailutils/memory_stream.c: Likewise.
* libmailutils/message_stream.c: Likewise.
* libmailutils/prog_stream.c: Likewise.
* libmailutils/rdcache_stream.c: Likewise.
* libmailutils/socket_stream.c: Likewise.
* libmailutils/stdio_stream.c: Likewise.
* libmailutils/stream.c: Likewise.
* libmailutils/stream_printf.c: Likewise.
* libmailutils/stream_vprintf.c: Likewise.
* libmailutils/streamcpy.c: Likewise.
* libmailutils/streamref.c: Likewise.
* libmailutils/tcp.c: Likewise.
* libmailutils/temp_file_stream.c: Likewise.
* libmailutils/xscript-stream.c
* libmailutils/cfg/Makefile.am: New file.
* libmailutils/cfg/.gitignore: New file.
* libmailutils/cfg_driver.c: Move to libmailutils/cfg/driver.c.
* libmailutils/cfg_format.c: Move to libmailutils/cfg/format.c.
* libmailutils/cfg_lexer.l: Move to libmailutils/cfg/lexer.l.
* libmailutils/cfg_parser.y: Move to libmailutils/cfg/parser.y.
* libmailutils/gocs.c: Move to libmailutils/cfg/gocs.c.
* libmailutils/diag/Makefile.am: New file.
* libmailutils/diag/.gitignore: New file.
* libmailutils/debug.c: Move to libmailutils/diag.
* libmailutils/diag.c: Likewise.
* libmailutils/gdebug.c: Likewise.
* libmailutils/errors: Likewise.
* libmailutils/muerrno.cin: Likewise.
* libmailutils/syslog.c: Likewise.
* libmailutils/dbgstderr.c: Likewise.
* libmailutils/dbgsyslog.c: Likewise.
* libmailutils/address/Makefile.am: New file.
* libmailutils/address.c: Move to libmailutils/address.
* libmailutils/parse822.c: Likewise.
* libmailutils/mailbox/Makefile.am: New file.
* libmailutils/mailbox.c: Move to libmailutils/mailbox.
* libmailutils/mbx_default.c: Likewise.
* libmailutils/mbxitr.c: Likewise.
* libmailutils/attribute.c: Likewise.
* libmailutils/body.c: Likewise.
* libmailutils/envelope.c: Likewise.
* libmailutils/folder.c: Likewise.
* libmailutils/hdritr.c: Likewise.
* libmailutils/header.c: Likewise.
* libmailutils/message.c: Likewise.
* libmailutils/msgscan.c: Likewise.
* libmailutils/mailer/Makefile.am: New file.
* libmailutils/mailer.c: Move to libmailutils/mailer.
* libmailutils/progmailer.c: Likewise.
* libmailutils/mime/Makefile.am: New file.
* libmailutils/attachment.c: Move to libmailutils/mime.
* libmailutils/mime.c: Likewise.
* libmailutils/mimehdr.c: Likewise.
* libmailutils/server/Makefile.am: New file.
* libmailutils/acl.c: Move to libmailutils/server.
* libmailutils/server.c: Likewise.
* libmailutils/msrv.c: Likewise.
* libmailutils/ipsrv.c: Likewise.
* libmailutils/auth/Makefile.am: New file.
* libmailutils/auth.c: Move to libmailutils/auth.
* libmailutils/mu_auth.c: Likewise.
* libmailutils/system.c: Likewise.
* libmailutils/base/Makefile.am: New file.
* libmailutils/base/.gitignore: New file.
* libmailutils/alloc.c: Move to libmailutils/base.
* libmailutils/amd.c: Likewise.
* libmailutils/argcv.c: Likewise.
* libmailutils/assoc.c: Likewise.
* libmailutils/daemon.c: Likewise.
* libmailutils/date.c: Likewise.
* libmailutils/fgetpwent.c: Likewise.
* libmailutils/freeitem.c: Likewise.
* libmailutils/getpass.c: Likewise.
* libmailutils/iterator.c: Likewise.
* libmailutils/kwd.c: Likewise.
* libmailutils/list.c: Likewise.
* libmailutils/listlist.c: Likewise.
* libmailutils/locale.c: Likewise.
* libmailutils/locker.c: Likewise.
* libmailutils/mailcap.c: Likewise.
* libmailutils/md5.c: Likewise.
* libmailutils/monitor.c: Likewise.
* libmailutils/munre.c: Likewise.
* libmailutils/mutil.c: Likewise.
* libmailutils/nls.c: Likewise.
* libmailutils/nullrec.c: Likewise.
* libmailutils/observer.c: Likewise.
* libmailutils/opool.c: Likewise.
* libmailutils/parsedate.y: Likewise.
* libmailutils/permstr.c: Likewise.
* libmailutils/property.c: Likewise.
* libmailutils/registrar.c: Likewise.
* libmailutils/refcount.c: Likewise.
* libmailutils/rfc2047.c: Likewise.
* libmailutils/sha1.c: Likewise.
* libmailutils/secret.c: Likewise.
* libmailutils/ticket.c: Likewise.
* libmailutils/url.c: Likewise.
* libmailutils/vartab.c: Likewise.
* libmailutils/version.c: Likewise.
* libmailutils/wicket.c: Likewise.
|