Age | Commit message (Collapse) | Author | Files |
|
|
|
|
|
|
|
|
|
* libmu_auth/tlsfdstr.c (mu_tlsfd_stream_create): Remove last argument.
All uses changed.
(mu_tlsfd_stream2_convert): New function.
* include/mailutils/tls.h (mu_tlsfd_stream_create): Change signature
(flags removed).
(mu_tlsfd_stream2_convert): New proto.
(mu_tlsfd_stream_convert): New inline function.
* libmailutils/diag/errors (MU_ERR_TRANSPORT_GET)
(MU_ERR_TRANSPORT_SET): New error codes.
* imap4d/io.c (imap4d_init_tls_server): Use mu_tlsfd_stream2_convert.
* pop3d/extra.c (pop3d_init_tls_server): Use mu_tlsfd_stream2_convert.
|
|
* include/mailutils/stream.h (MU_IOCTL_TIMEOUT): New ioctl code.
(mu_stream_timed_readdelim,mu_stream_timed_readline): New protos.
(mu_stream_readdelim,mu_stream_readline,mu_stream_getdelim)
(mu_stream_getline): Rewrite as inline functions.
* include/mailutils/datetime.h (mu_timeval_cmp, mu_timeval_add)
(mu_timeval_sub): New inline functions for operations over struct
timeval.
* include/mailutils/sys/file_stream.h (_mu_file_stream): New
member: io_timeout.
* libmailutils/diag/errors (MU_ERR_TIMEOUT, MU_ERR_SET_TIMEOUT)
(MU_ERR_WRITE, MU_ERR_TLS): New error codes.
* libmailutils/stream/file_stream.c (fd_read,fd_write): Take
into account I/O timeout.
(fd_ioctl): Handle MU_IOCTL_TIMEOUT.
* libmailutils/stream/stream.c (mu_stream_timed_readdelim)
(mu_stream_timed_readline): New functions.
* libmu_auth/tls.c (_tls_open): Special handling for time-out
errors.
* libmailutils/stream/iostream.c (_iostream_ctl): Pass MU_IOCTL_TIMEOUT
to the transport stream.
|
|
|
|
* libmailutils/diag/errors (MU_ERR_BASE64): New error code.
* libmailutils/filter/base64.c (_base64_decoder): Stop decoding
and return failure if padding length gets greater than 3
* libmailutils/filter/inline-comment.c (_ilcmt_decoder): Make sure
proper error code is set.
|
|
|
|
|
|
|
|
|
|
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.
|
|
* examples/rename.c: Remove.
* examples/fcopy.c: New file.
* examples/fremove.c: New file.
* examples/frename.c: New file.
* examples/Makefile.am: Update.
* include/mailutils/util.h (mu_rename_file): Add flags.
(mu_remove_file): New function.
(MU_COPY_OVERWRITE): New flag.
* libmailutils/base/renamefile.c: New file.
* libmailutils/base/Makefile.am: Add newe file.
* libmailutils/base/copyfile.c: Fix error handling.
* libmailutils/base/renamefile.c (mu_rename_file): Refuse to proceed if
the destination file exists and MU_COPY_OVERWRITE flag is not set
* libmailutils/diag/errors (MU_ERR_REMOVE_SOURCE)
(MU_ERR_RESTORE_META): New errors
* imap4d/rename.c (imap4d_rename): Use mu_rename_file
* mh/forw.c: Likewise.
* mh/mh_whatnow.c: Likewise.
* mh/mhn.c: Likewise.
* mh/send.c: Likewise.
* include/mailutils/cstr.h (mu_str_count): New proto.
* include/mailutils/util.h (mu_file_name_is_safe): New proto.
* libmailutils/string/safefilename.c: New file.
* libmailutils/string/strcount.c: New file.
* libmailutils/string/Makefile.am: Update.
|
|
|
|
|
|
|
|
|
|
* libmailutils/base/date.c (mu_scan_datetime): Handle optional
blocks (%[ %| %], alternatives %( %| %), "any character"
wildcards (%?) and strict character matches (%\C). Return
MU_ERR_FORMAT on errors in format string.
Compute tm->tm_yday.
* libmailutils/diag/errors (MU_ERR_FORMAT): New error code.
* libmailutils/tests/scantime.c: Print yday. Print input line with
diagnostic messages.
* libmailutils/tests/scantime.at: Add more tests.
* include/mailutils/util.h (MU_DATETIME_RFC822): Split into two
formats: MU_DATETIME_FORM_RFC822, for output formatting, and
MU_DATETIME_SCAN_RFC822 for input scanning. All uses changed.
|
|
* include/mailutils/sys/tls-stream.h (_mu_tls_stream_s): Remove.
* libmailutils/diag/errors (MU_ERR_BAD_RESUMPTION): Remove. Use EAGAIN
instead.
(MU_ERR_DISABLED): New error code.
* libmu_auth/tls.c (_tls_server_open): Return MU_ERR_DISABLED
when needed.
(_mu_tls_stream_create): Implement error_string method.
* libproto/maildir/mbox.c (maildir_msg_init): Fix return value.
|
|
* libmailutils/diag/errors (MU_ERR_TCP_NO_HOST)
(MU_ERR_TCP_NO_PORT): Change wording.
(MU_ERR_UNSAFE_PERMS): Remove error code.
(MU_ERR_NO_HANDLER): Remove. All uses replaced by ENOSYS.
(MU_ERR_OUT_NULL): Remove. MU_ERR_OUT_PTR_NULL is used instead.
(MU_ERR_MBX_NULL): Remove. Use EINVAL instead.
(MU_ERR_BAD_822_FORMAT): Rename to MU_ERR_INVALID_EMAIL. Change wording.
(MU_ERR_REPLY): Change wording.
* libmailutils/url/create.c: Remove misguiding comments
* libmailutils/url/set-service.c: Likewise.
* libmailutils/mailbox/mailbox.c (mu_mailbox_open): Return EACCES
if trying to update quick-access mailboxes.
(mu_mailbox_get_stream): Mark for deletion.
* libmailutils/stream/fltstream.c (filter_read)
(filter_write_internal): Return MU_ERR_BUFSPACE if requested more
space than available in I/O buffers.
* libproto/mbox/mbox.c (mbox_expunge_unlocked): Send MU_EVT_MAILBOX_CORRUPT
event if the mailbox shrunk.
* libproto/mbox/mboxscan.c (mbox_scan_internal): Return MU_ERR_NOENT if
unable to locate message in quick-access mode.
|
|
Use it in maidag (.forward file safety) and in libmu_auth (TLS files).
* include/mailutils/tls.h (mu_tls_module_config): New members
for safety check flags.
* include/mailutils/util.h (MU_FILE_SAFETY_NONE,MU_FILE_SAFETY_ALL)
(MU_FILE_SAFETY_OWNER_MISMATCH)
(MU_FILE_SAFETY_GROUP_WRITABLE,MU_FILE_SAFETY_WORLD_WRITABLE)
(MU_FILE_SAFETY_GROUP_READABLE,MU_FILE_SAFETY_WORLD_READABLE)
(MU_FILE_SAFETY_LINKED_WRDIR)
(MU_FILE_SAFETY_DIR_IWGRP,MU_FILE_SAFETY_DIR_IWOTH): New constants.
(mu_file_safety_check,mu_file_safety_name_to_code)
(mu_file_safety_name_to_error): New protos.
* libmailutils/base/checkperms.c: New file.
* libmailutils/base/Makefile.am (libbase_la_SOURCES): Add checkperms.c.
* libmailutils/diag/errors: Add new error codes.
(MU_ERR_UNSAFE_PERMS): change description wording.
* libmu_auth/tls.c (mu_check_tls_environment): Use mu_file_safety_check.
* libmu_cfg/tls.c (tls_settings): Initialize.
(mu_tls_param): New configuration file statements:
key-file-safety-checks, cert-file-safety-checks, ca-file-safety-checks.
* maidag/forward.c (maidag_forward): Use mu_file_safety_check.
* maidag/maidag.c (cb2_forward_file_checks): Use
mu_file_safety_name_to_code.
|
|
* libmailutils/diag/errors: Fix typo.
* libproto/imap/connect.c: Add missing includes.
* mh/tests/mhn.at: Add extra argument quoting.
|
|
* 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!
|
|
* include/mailutils/message.h (mu_message_quick_lines): New proto.
(mu_message_set_lines): Change signature of the 2nd argument.
* include/mailutils/sys/message.h (_mu_message) <lines>: Change
signature.
* libmailutils/diag/errors (MU_ERR_INFO_UNAVAILABLE): New error code.
* libmailutils/mailbox/message.c (mu_message_set_lines): Change
signature of the 2nd argument.
(mu_message_lines): Update call to the _lines method.
(mu_message_quick_lines): New function.
* libproto/pop/mbox.c (_POP3_MSG_LINES): New flag.
(_pop3_message)<message_lines>: New member.
(pop_create_pop3_message): New function.
(pop_scan): Use LIST to obtain scan listing.
(pop_message_lines): New function.
(pop_create_message): Set _lines method.
(pop_get_message): Use pop_create_pop3_message.
* mail/from.c (hdr_quick_lines): New function.
(compile_headline): New escape %L
* pop3d/capa.c (pop3d_capa): Show XLINES capability if
configured.
* pop3d/list.c (pop3d_list): Optionally output the number of
lines in the message.
* pop3d/pop3d.c (pop3d_xlines): New global.
(pop3d_cfg_param): New statement "scan-lines".
* pop3d/pop3d.h (pop3d_xlines): New extern.
|
|
draft-earhart-url-smtp-00. Minor fix in maidag (url mode).
* include/mailutils/registrar.h (MU_RECORD_DEFAULT)
(MU_RECORD_LOCAL): New flags.
(_mu_record) <flags,url_may_have,url_must_have>: New members.
Remove unnecessary externs.
(mu_record_set_.*): Remove all protos.
(mu_record_check_url, mu_registrar_test_local_url): New protos.
* include/mailutils/sys/url.h (_mu_url) <flags>: New member.
(MU_URL_USER, MU_URL_SECRET, MU_URL_AUTH)
(MU_URL_HOST, MU_URL_PORT, MU_URL_PATH)
(MU_URL_PARAM, MU_URL_QUERY)
(MU_URL_CRED, MU_URL_INET, MU_URL_ALL): New flags.
(mu_url_get_flags, mu_url_has_flag): New protos.
* libmailutils/base/registrar.c (mu_record_set_.*): Remove all.
(mu_record_check_url): New function.
(mu_registrar_test_local_url): New function.
* libmailutils/base/url.c (mu_url_copy0): Copy flags.
(mu_url_parse): Use flags intead of inspecting each
structure member. Set flags.
(mu_url_get_flags, mu_url_has_flag): New functions.
* libmailutils/diag/errors (MU_ERR_URL_MISS_PARTS)
(MU_ERR_URL_EXTRA_PARTS): New error codes.
* libmailutils/mailbox/folder.c (mu_folder_create_from_record): Check
the URL using mu_record_check_url.
* libproto/imap/folder.c (_imap_record, _imaps_record): Initialize new fields.
* libproto/maildir/folder.c (_maildir_record): Likewise.
* libproto/mbox/folder.c (_mbox_record): Likewise.
* libproto/mh/folder.c (_mh_record): Likewise.
* libproto/nntp/folder.c (_nntp_record): Likewise.
* libproto/pop/folder.c (_pop_record, _pops_record): Likewise.
* libproto/mailer/prog.c (_prog_record): Likewise.
(_url_prog_init): Remove extra checks, rely on mu_record_check_url.
* libproto/mailer/remote.c (_mu_remote_smtp_record)
(_mu_remote_sendmail_record,_mu_remote_prog_record): Initialize new fields.
* libproto/mailer/sendmail.c (_url_sendmail_init): Remove extra checks, rely
on mu_record_check_url.
(_sendmail_record): Initialize new fields.
* libproto/nntp/url.c (url_nntp_destroy): Remove.
(_nntp_url_init): Remove extra checks.
* libproto/pop/url.c (url_pop_destroy): Remove.
(_url_pop_init, _url_pops_init): Remove extra checks.
* libproto/mailer/smtp.c (_url_smtp_init): Remove extra checks.
(_smtp_record): Initialize new fields.
(smtp_mailer_add_auth_mech): New function.
(smtp_open): Allow for auth= part before the host name.
* maidag/deliver.c (is_remote_url): New function.
(do_delivery): Do not try to switch user privileges if the
URL refers to a remote mailbox.
* maidag/maidag.c (main): Initialize TLS.
|
|
|
|
* 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.
|