1. 30 Oct, 2016 1 commit
    • * configure.ac: Version 2.99.993
      * NEWS: Update.
      
      * include/mailutils/opool.h (MU_OPOOL_DEFAULT)
      (MU_OPOOL_ENOMEMABRT): New defines.
      (mu_opool_create): Change meaning of the 2nd argument. All uses updated.
      (mu_opool_free, mu_opool_dup): New proto.
      * libmailutils/base/opool.c (_mu_opool) <memerr>: Replace with flags.
      <head,tail,free>: Rename.
      (mu_opool_free, mu_opool_dup): New functions.
      (mu_opool_head): Bugfix.
      Sergey Poznyakoff authored
  2. 22 Jan, 2016 1 commit
  3. 19 Sep, 2015 1 commit
    • * include/mailutils/wordsplit.h (MU_WRDSX_WORD)
      (MU_WRDSX_QUOTE): New constants.
      (mu_wordsplit_getwords): Rename to mu_wordsplit_get_words.
      * libmailutils/string/wordsplit.c (mu_wordsplit_getwords): Rename
      to mu_wordsplit_get_words.
      
      * libmailutils/base/userprivs.c (mu_switch_to_privs): Fix
      memory overrun when retrieving the current pointer.
      
      * examples/header.c (main): Use mu_wordsplit_get_words
      * imap4d/preauth.c (preauth_getvar): Rewrite according to
      the new API.
      * libmailutils/imapio/create.c (mu_imapio_create): Use MU_WRDSX_
      constants to address ws_escape.
      * libmailutils/imapio/qstring.c: Likewise.
      * libmailutils/mailbox/mbx_default.c: Minor fix.
      * libmailutils/server/acl.c (acl_getvar): Rewrite according to
      the new API.
      * libmailutils/tests/wsp.c: Minor fix.
      * libmailutils/url/create.c (_mu_url_create_internal): Bugfix: alloc
      url->path.
      * libmu_sieve/extensions/list.c (retrieve_next_header): Use
      mu_wordsplit_get_words
      * libproto/mailer/prog.c (prog_getvar): Rewrite according to
      the new API.
      * libproto/mailer/smtp_gsasl.c (get_implemented_mechs): Remove
      unneeded assignment to ws.ws_wordv.
      * mh/folder.c: Use mu_wordsplit_get_words.
      * mh/mhn.c: Likewise.
      * movemail/movemail.c (movemail_getvar): Rewrite according to
      the new API.
      Sergey Poznyakoff authored
  4. 02 Mar, 2015 1 commit
  5. 26 Feb, 2014 1 commit
  6. 05 Feb, 2014 1 commit
  7. 23 Jul, 2012 1 commit
    • * include/mailutils/smtp.h (mu_smtp_replcode)
      (mu_smtp_sget_reply)
      (mu_smtp_capa_iterator): New protos.
      * libmailutils/url/dup.c (mu_url_dup): Bugfix. Obtain the
      name using mu_url_sget_name, which will create it if necessary.
      * libproto/mailer/Makefile.am (libmu_mailer_la_SOURCES): Add
      smtp_capa_itr.c
      * libproto/mailer/smtp_capa_itr.c: New file.
      * libproto/mailer/smtp_io.c (mu_smtp_response): Fix filling of
      smtp->flbuf.
      (mu_smtp_replcode,mu_smtp_sget_reply): New functions.
      Sergey Poznyakoff authored
  8. 16 Jul, 2012 1 commit
    • * include/mailutils/opool.h (mu_opool_alloc): New proto.
      * libmailutils/base/opool.c (mu_opool_alloc): New function.
      (mu_opool_appendz): Do not append trailing null character.
      * libmailutils/cfg/parser.y (mu_cfg_tree_create_node): Reflect
      the change in mu_opool_appendz.
      * comsat/action.c: Use mu_opool_t instead of struct obstack.
      * lib/mailcap.c: Likewise.
      * libmailutils/url/urlstr.c: Likewise.
      * mh/burst.c: Likewise.
      * mh/mh_fmtgram.y: Likewise.
      * mh/mh_format.c: Likewise.
      * mh/mh_format.h: Likewise.
      * mh/mhn.c: Likewise.
      * mh/repl.c: Likewise.
      * mh/whatnowenv.c: Likewise.
      * mimeview/mimetypes.l: Likewise.
      * mimeview/mimeview.h: Likewise.
      
      * gnulib.modules: Remove obstack.
      Sergey Poznyakoff authored
  9. 26 Feb, 2012 1 commit
    • * include/mailutils/url.h (MU_URL_PARSE_LOCAL): New flag.
      * libmailutils/tests/url-parse.c (parse_kwtab): New flag
      "local".
      * libmailutils/tests/url.at: Add new tests
      * libmailutils/url/create.c (_mu_url_ctx_parse_host): Skip
      parsing host part if MU_URL_PARSE_LOCAL is set.
      (_mu_url_create_internal): Initialize rc. If MU_URL_PARSE_SLASH
      is set and URL begins with "./" assume it is file.
      If either MU_URL_PARSE_SLASH or MU_URL_PARSE_PIPE are given
      and the URL is diagnosed as file or pipe, prever the scheme
      from hints.
      Sergey Poznyakoff authored
  10. 05 Jan, 2012 1 commit
  11. 29 Oct, 2011 2 commits
    • Minor change · 7e1ce572
      Sergey Poznyakoff authored
    • * 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.
      Sergey Poznyakoff authored
  12. 28 Oct, 2011 1 commit
    • * include/mailutils/url.h (mu_url_sget_name)
      (mu_url_aget_name,mu_url_get_name)
      (mu_url_invalidate,mu_url_create_null)
      (mu_url_set_user,mu_url_set_path,mu_url_set_scheme)
      (mu_url_set_host,mu_url_set_port,mu_url_set_service)
      (mu_url_set_auth,mu_url_set_secret,mu_url_add_param)
      (mu_url_clear_param,mu_url_add_query,mu_url_clear_query): New
      prototypes.
      
      * libmailutils/tests/url-comp.at: New test case.
      * libmailutils/tests/url-comp.c: New test program.
      * libmailutils/tests/.gitignore: Update.
      * libmailutils/tests/Makefile.am: Add new files.
      * libmailutils/tests/testsuite.at: Add new tests.
      
      * libmailutils/url/Makefile.am: Add new files.
      * libmailutils/url/add-param.c: New file.
      * libmailutils/url/add-query.c: New file.
      * libmailutils/url/clr-param.c: New file.
      * libmailutils/url/clr-query.c: New file.
      * libmailutils/url/null.c: New file.
      * libmailutils/url/set-auth.c: New file.
      * libmailutils/url/set-host.c: New file.
      * libmailutils/url/set-path.c: New file.
      * libmailutils/url/set-port.c: New file.
      * libmailutils/url/set-scheme.c: New file.
      * libmailutils/url/set-secret.c: New file.
      * libmailutils/url/set-service.c: New file.
      * libmailutils/url/set-user.c: New file.
      * libmailutils/url/urlinv.c: New file.
      
      * libmailutils/url/create.c (mu_url_create_hint): Return EINVAL if
      purl is NULL.
      * libmailutils/url/scheme.c (mu_url_set_scheme): Remove. See set-scheme.c
      * libmailutils/url/urlstr.c (mu_url_sget_name)
      (mu_url_aget_name,mu_url_get_name): New functions.
      (mu_url_to_string): Rewrite using the above.
      
      * libmailutils/base/Makefile.am: Add fscompose.c
      * libmailutils/base/fscompose.c: New file.
      Sergey Poznyakoff authored
  13. 30 Mar, 2011 1 commit
    • * 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.
      Sergey Poznyakoff authored
  14. 02 Jan, 2011 1 commit
  15. 28 Dec, 2010 1 commit
    • * libmailutils/url/create.c (_mu_url_create_internal): Fix
      parsing of the '|' shortcuts.
      * libmailutils/tests/url.at: Fix '|' test. Add 'prog://' test.
      
      * movemail/movemail.c (set_program_id): Call mu_stdstream_strerr_setup
      to flush changes.
      * frm/common.c: Minor changes
      Sergey Poznyakoff authored
  16. 28 Oct, 2010 1 commit
    • The wordsplit module (borrowed from another project of mine, called 'grecs')
      provides a flexible and powerful mechanism for parsing input in a way
      similar to posix-shell.  In particular, the POSIX function wordexp is
      a subset of the wordsplit functionality.
      
      The argcv module is now deprecated.
      
      * include/mailutils/wordsplit.h: New file.
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add wordsplit.h
      * libmailutils/string/wordsplit.c: New file.
      * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add wordsplit.c.
      * include/mailutils/argcv.h (mu_argcv_join): New proto.
      (mu_argcv_get, mu_argcv_get_n, mu_argcv_get_np)
      (mu_argcv_unquote_char, mu_argcv_quote_char)
      (mu_argcv_quoted_length, mu_argcv_unquote_copy)
      (mu_argcv_quote_copy): Mark as deprecated.
      * include/mailutils/mailutils.h: Include wordsplit.h.
      
      * libmailutils/tests/wsp.c: New file.
      * libmailutils/tests/.gitignore: List wsp.
      * libmailutils/tests/wordsplit.at: New file.
      * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add wsp
      (TESTSUITE_AT): Add wordsplit.at.
      * libmailutils/tests/argcv.c: Define MU_ARCGV_DEPRECATED to
      avoid deprecation warnings.
      * libmailutils/tests/testsuite.at: Include wordsplit.at.
      
      * libmailutils/base/argcvfree.c: New file.
      * libmailutils/base/argcvjoin.c: New file.
      * libmailutils/base/argcvrem.c: New file.
      * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add new files.
      
      * libmailutils/base/argcv.c: Define MU_ARCGV_DEPRECATED to
      avoid deprecation warnings.
      (argcv_string, argcv_free, argv_free)
      (mu_argcv_remove): Rewrite in separate modules.
      
      * comsat/comsat.h: Include wordsplit.h.
      * imap4d/imap4d.h: Likewise.
      * mail/mail.h: Likewise.
      * mh/mh.h: Likewise.
      * readmsg/readmsg.h: Likewise.
      
      * comsat/action.c: Use wordsplit.
      * imap4d/fetch.c: Likewise.
      * lib/mailcap.c: Likewise.
      * libmailutils/auth/mu_auth.c: Likewise.
      * libmailutils/base/mutil.c: Likewise.
      * libmailutils/cfg/format.c: Likewise.
      * libmailutils/cfg/lexer.l: Likewise.
      * libmailutils/cfg/parser.y: Likewise.
      * libmailutils/diag/gdebug.c: Likewise.
      * libmailutils/mailer/mailer.c: Likewise.
      * libmailutils/server/acl.c: Likewise.
      * libmailutils/stream/prog_stream.c: Likewise.
      * libmailutils/tests/listop.c: Likewise.
      * libmailutils/url/create.c: Likewise.
      * libmu_auth/ldap.c: Likewise.
      * libmu_auth/radius.c: Likewise.
      * libmu_sieve/sieve.l: Likewise.
      * libproto/mailer/mbox.c: Likewise.
      * libproto/mailer/smtp.c: Likewise.
      * libproto/mailer/smtp_gsasl.c: Likewise.
      * mail/mailline.c: Likewise.
      * mail/mailvar.c: Likewise.
      * mail/send.c: Likewise.
      * mail/util.c: Likewise.
      * mh/folder.c: Likewise.
      * mh/mh_alias.y: Likewise.
      * mh/mh_argp.c: Likewise.
      * mh/mh_init.c: Likewise.
      * mh/mh_list.c: Likewise.
      * mh/mh_msgset.c: Likewise.
      * mh/mh_sequence.c: Likewise.
      * mh/mh_whatnow.c: Likewise.
      * mh/mh_sequence.c: Likewise.
      * mh/mh_whatnow.c: Likewise.
      * mh/mhn.c: Likewise.
      * mh/send.c: Likewise.
      * movemail/movemail.c: Likewise.
      * mu/shell.c: Likewise.
      * readmsg/readmsg.c: Likewise.
      * testsuite/smtpsend.c: Likewise.
      
      * pop3d/popauth.c: Use wordsplit.
      Use simplified input format (username and password delimited
      by any amount of whitespace).
      Read/produce old format if invoked with the --compatibility option.
      
      * examples/aclck.c: Use wordsplit instead of argcv.
      * examples/header.c: Likewise.
      * examples/mta.c: Likewise.
      * examples/.gitignore: Remove pop3client.
      * examples/Makefile.am: Remove pop3client.
      
      * po/POTFILES.in: Add new files.
      Sergey Poznyakoff authored
  17. 26 Oct, 2010 1 commit
    • The purpose is to make it modular and flexible.  URLs are
      parsed out as they are created.  Missing URL parts can be
      supplied via a "URL hint" at creation time (similar to
      the approach used in creating mu_address_t).  Ports
      can be specified either as numbers or as service names.
      Original port string representation can be retrieved from
      the URL, as well as its numeric value.
      
      * libmailutils/url/accessor.h: New file.
      * libmailutils/url/copy.c: New file.
      * libmailutils/url/create.c: New file.
      * libmailutils/url/decode.c: New file.
      * libmailutils/url/destroy.c: New file.
      * libmailutils/url/dup.c: New file.
      * libmailutils/url/expand.c: New file.
      * libmailutils/url/flag.c: New file.
      * libmailutils/url/get-auth.c: New file.
      * libmailutils/url/get-host.c: New file.
      * libmailutils/url/get-param.c: New file.
      * libmailutils/url/get-path.c: New file.
      * libmailutils/url/get-portstr.c: New file.
      * libmailutils/url/get-query.c: New file.
      * libmailutils/url/get-scheme.c: New file.
      * libmailutils/url/get-secret.c: New file.
      * libmailutils/url/get-user.c: New file.
      * libmailutils/url/match.c: New file.
      * libmailutils/url/port.c: New file.
      * libmailutils/url/scheme.c: New file.
      * libmailutils/url/uplevel.c: New file.
      * libmailutils/url/urlstr.c: New file.
      
      * configure.ac (AC_CONFIG_FILES): Add libmailutils/url/Makefile
      * libmailutils/Makefile.am (SUBDIRS): Add url.
      (libmailutils_la_LIBADD): Link with liburl.
      * libmailutils/base/Makefile.am (libbase_la_SOURCES): Remove url.c
      * libmailutils/base/url.c: Remove.
      
      * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add xdecode.c
      * libmailutils/string/xdecode.c: New file.
      
      * include/mailutils/sys/url.h (_mu_url): Change type to short.
      <_get_port>: Change second argument to unsigned.
      <_get_portstr>: New method.
      * include/mailutils/url.h (MU_URL_SCHEME): New flag.
      (MU_URL_PARSE_HEXCODE, MU_URL_PARSE_HIDEPASS)
      (MU_URL_PARSE_PORTSRV, MU_URL_PARSE_PORTWC)
      (MU_URL_PARSE_PIPE, MU_URL_PARSE_SLASH): New flags.
      (mu_url_create_hint, mu_url_copy_hints): New prototypes.
      (mu_url_parse): Remove.
      (mu_url_get_port): Change second argument to unsigned.
      (mu_url_decode_len,mu_url_decode): Remove.
      (mu_url_decode): New proto.
      (mu_url_sget_portstr, mu_url_aget_portstr)
      (mu_url_get_portstr): New protos.
      
      * include/mailutils/util.h (mu_str_url_decode)
      (mu_str_url_decode_inline): New protos.
      * libproto/pop/mbox.c (pop_open): Port is unsigned.
      
      * libproto/imap/folder.c: Use MU_URL_SCHEME in url_may_have.
      * libproto/maildir/folder.c: Likewise.
      * libproto/mailer/prog.c: Likewise.
      * libproto/mailer/remote.c: Likewise.
      * libproto/mailer/sendmail.c: Likewise.
      * libproto/mailer/smtp.c: Likewise.
      * libproto/mbox/folder.c: Likewise.
      * libproto/mh/folder.c: Likewise.
      * libproto/nntp/folder.c: Likewise.
      * libproto/pop/folder.c: Likewise.
      
      * imap4d/imap4d.c: Remove calls to mu_url_parse.
      * libmailutils/base/registrar.c: Likewise.
      * libmailutils/base/wicket.c: Likewise.
      * libmailutils/mailbox/folder.c: Likewise.
      * libmailutils/mailbox/mailbox.c: Likewise.
      * libmailutils/mailer/mailer.c: Likewise.
      * libmailutils/tests/url-parse.c: Likewise.
      * libmailutils/tests/wicket.c: Likewise.
      * libproto/mailer/smtp_auth.c: Likewise.
      * maidag/deliver.c: Likewise.
      * mu/wicket.c: Likewise.
      
      * libmailutils/mime/mimehdr.c (mu_mimehdr_decode_param): Use
      mu_str_url_decode, instead of mu_url_decode.
      * libmailutils/stream/tcp.c (_tcp_instance)<port>: Change type
      to unsigned short. All uses updated.
      (mu_tcp_stream_create_with_source_ip)
      (mu_tcp_stream_create_with_source_host)
      (mu_tcp_stream_create): Port is unsigned.
      * include/mailutils/stream.h (mu_tcp_stream_create_with_source_ip)
      (mu_tcp_stream_create_with_source_host)
      (mu_tcp_stream_create): Port is unsigned.
      * include/mailutils/cpp/url.h (get_port): Return unsigned.
      * libmu_cpp/url.cc (get_port): Return unsigned.
      (parse): Empty function. Schedule for removal.
      * python/libmu_py/url.c (api_url_parse): Empty function.
      Schedule for removal.
      (api_url_get_port): Port is unsigned.
      
      * libmailutils/base/wicket.c (mu_wicket_file_match_url)
      (mu_wicket_file_match_url): New parameter: parse_flags.
      * mu/wicket.c (wicket_match): Use parse_flags to control
      whether or not to show the plaintext password.
      
      * doc/texinfo/url.texi: Update.
      Sergey Poznyakoff authored