summaryrefslogtreecommitdiff
path: root/libmailutils/url
AgeCommit message (Collapse)AuthorFiles
2021-01-05Update copyright yearsSergey Poznyakoff31
2020-12-30Fix coredump on NULL input to mu_url_create_hintSergey Poznyakoff1
In particular, this caused inc to coredump when called without explicit -file option. * libmailutils/url/create.c (mu_url_create_hint): Return EINVAL if str is NULL. * mh/tests/inc.at: Add new test.
2020-07-15Fix memory leaks.Sergey Poznyakoff1
* libmailutils/sockaddr/free.c (mu_sockaddr_free): Free the address itself. * libmailutils/stream/message_stream.c (mu_message_from_stream_with_envelope): Envelope must be owned by the message. Change mu_envelope_create accordingly. (_env_msg_date, _env_msg_sender): Likewise. * libmailutils/url/destroy.c: Free url->portstr.
2020-02-08Update copyright yearsSergey Poznyakoff31
2019-12-14Fix several linking issuesSergey Poznyakoff1
* configure.ac: Require libtool version 2.4.6 (MU_LINK_POSTFLAGS): Remove. Not needed with the patched version of ltmain.sh. Detect the presencecof GSSAPI. Fix displaying the status of GSSAPI support. Remove the hack introduced on 2010-02-19 (commit 35ac66f056). (MU_AUTHLIBS,SQLLIB) (SQL_LOADABLE_MODULES,SQL_LIBOBJS): Insert spaces only when needed. * mu-aux/ltmain.sh: ltmain.sh from libtool 2.4.6 with fixes from http://gray.gnu.org.ua/public/ltbug installed. * bootstrap.conf (bootstrap_epilogue): Install the fixed ltmain.sh version. * am/gssapi.m4: Allow for "yes" and "probe" argument values. Improve makefile style consistency . Uniformly use parentheses instead of curly braces in variable referencing; . Prefer to use Make variables over substitution variables, for variables prefixed with MU_; * comsat/Makefile.am * dotlock/Makefile.am * examples/Makefile.am * examples/cpp/Makefile.am * frm/Makefile.am * imap4d/Makefile.am * imap4d/tests/Makefile.am * lib/Makefile.am * libmailutils/Makefile.am * libmailutils/address/Makefile.am * libmailutils/auth/Makefile.am * libmailutils/base/Makefile.am * libmailutils/cfg/Makefile.am * libmailutils/cidr/Makefile.am * libmailutils/cli/Makefile.am * libmailutils/datetime/Makefile.am * libmailutils/diag/Makefile.am * libmailutils/filter/Makefile.am * libmailutils/imapio/Makefile.am * libmailutils/list/Makefile.am * libmailutils/locus/Makefile.am * libmailutils/mailbox/Makefile.am * libmailutils/mailcap/Makefile.am * libmailutils/mailer/Makefile.am * libmailutils/mime/Makefile.am * libmailutils/msgset/Makefile.am * libmailutils/opt/Makefile.am * libmailutils/property/Makefile.am * libmailutils/server/Makefile.am * libmailutils/sockaddr/Makefile.am * libmailutils/stdstream/Makefile.am * libmailutils/stream/Makefile.am * libmailutils/string/Makefile.am * libmailutils/tests/Makefile.am * libmailutils/url/Makefile.am * libmailutils/wicket/Makefile.am * libmu_auth/Makefile.am * libmu_cpp/Makefile.am * libmu_dbm/Makefile.am * libmu_scm/Makefile.am * libmu_scm/mailutils/Makefile.am * libmu_sieve/Makefile.am * libmu_sieve/extensions/Makefile.am * libproto/dotmail/Makefile.am * libproto/dotmail/tests/Makefile.am * libproto/imap/Makefile.am * libproto/imap/tests/Makefile.am * libproto/maildir/Makefile.am * libproto/mailer/Makefile.am * libproto/mbox/Makefile.am * libproto/mh/Makefile.am * libproto/nntp/Makefile.am * libproto/pop/Makefile.am * mail/Makefile.am * mapi/Makefile.am * mda/lib/Makefile.am * mda/lmtpd/Makefile.am * mda/mda/Makefile.am * mda/mda/tests/Makefile.am * mda/putmail/Makefile.am * messages/Makefile.am * mh/Makefile.am * mh/tests/Makefile.am * mimeview/Makefile.am * movemail/Makefile.am * mu/Makefile.am * mu/libexec/Makefile.am * pop3d/Makefile.am * python/2/libmu_py/Makefile.am * python/2/mailutils/Makefile.am * python/3/libmu_py/Makefile.am * python/3/mailutils/Makefile.am * readmsg/Makefile.am * sieve/Makefile.am * sql/Makefile.am * testsuite/Makefile.am
2019-05-22URL parser: use case-insensitive comparison for auth and host partsSergey Poznyakoff3
* libmailutils/url/accessor.h: (URL_PART_CMP_ICASE) (URL_PART_CMP_ICASE): New defines. * libmailutils/url/get-auth.c: Request case-insensitive comparison. * libmailutils/url/get-host.c: Likewise.
2019-03-02Implement different accuracy levels for the mailbox format detectionSergey Poznyakoff1
Selecting the accuracy level allows the user to achieve the desired balance between the speed of the folder scan and accuracy of mailbox format detection. The accuracy level can be set either from the configuration file, using the mailbox.accuracy-level statement, or from the environment, using the MU_AUTODETECT_ACCURACY variable. The default accuracy level 1 discerns valid mbox and dotmail mailboxes providing reasonable scan speed. Level 0 (previous default) does not discern them, but provides maximal speed. Level 2 and higher provide better accuracy at the price of speed. * include/mailutils/url.h (MU_AUTODETECT_ACCURACY_AUTO) (MU_AUTODETECT_ACCURACY_FAST) (MU_AUTODETECT_ACCURACY_DEFAULT): New constants. (mu_scheme_autodetect_p): New proto, moved here from util.h (mu_set_autodetect_accuracy) (mu_autodetect_accuracy): New protos. * libmailutils/base/schemeauto.c (mu_set_autodetect_accuracy) mu_autodetect_accuracy): New functions. * libmailutils/cli/stdcapa.c: New configuration statement: mailbox.autodetect-accuracy. * libmailutils/url/create.c (_mu_url_create_internal): Assume the "file" scheme if the MU_URL_PARSE_LOCAL flag is set. * libproto/dotmail/folder.c: Implement format detection. Three accuracy levels: 0, 1, and >1 * libproto/mbox/folder.c (_mbox_is_scheme): Implement default format detection. * libproto/dotmail/tests/Makefile.am: Add new test. * libproto/dotmail/tests/autodetect.at: New test. * libproto/dotmail/tests/dm_detect.c: New file. * libproto/dotmail/tests/testsuite.at: Add new test.
2019-01-21Improve folder handling and expansion in mail. Add convenience functions to ↵Sergey Poznyakoff1
the library. * configure.ac: Build libmailutils/wicket * libmailutils/Makefile.am: Likewise. * libmailutils/base/wicket.c: Move file wicket stuff to ... * libmailutils/wicket/file.c: ... here * libmailutils/wicket/noauth.c: New file. * libmailutils/wicket/Makefile.am: New file. * include/mailutils/auth.h (mu_noauth_ticket_create) (mu_noauth_wicket_create): New protos. * include/mailutils/folder.h (mu_folder_attach_ticket) (mu_folder_is_local): New protos. * include/mailutils/mailbox.h (mu_mailbox_attach_ticket): New proto. * include/mailutils/sys/folder.h (_mu_folder): Remove flags. Add new member: is_local. * libmailutils/mailbox/folder.c (mu_folder_create_from_record): Set is_local. (mu_folder_attach_ticket): New function. (mu_folder_is_local): New function. * libmailutils/mailbox/mbx_default.c (mu_mailbox_attach_ticket): New function. * libmailutils/url/create.c: Allow for trailing / in url. * libproto/imap/mbox.c (_imap_mbx_open): Do initial scan. (__imap_msg_get_stream): Initialize clos.size. * libproto/imap/tests/imapfolder.c: Attach ticket to the folder. * mail/cd.c (mail_cd): Expand directory name (~, %, + notations) prior to use. * mail/file.c (mail_file): Attach ticket to the mailbox. * mail/copy.c (append_to_mailbox): Likewise. * mail/mailline.c: Rewrite directory expansion. Implement fully functional folder expansion. * mail/util.c (util_folder_path) (util_outfolder_name): Rewrite using mu_mailbox_expand_name.
2019-01-03Update copyright yearsSergey Poznyakoff31
2018-01-19Version 3.4.90; update copyright yearsSergey Poznyakoff31
2017-01-01Happy GNU YearSergey Poznyakoff31
2016-10-30Improve opool APISergey Poznyakoff1
* 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.
2016-01-22Update copyright yearsSergey Poznyakoff31
2015-09-19Complement f160ca75Sergey Poznyakoff1
* 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.
2015-03-02Update copyright yearsSergey Poznyakoff31
2014-02-26Use AM_CPPFLAGS instead of INCLUDES; upgrade gintSergey Poznyakoff1
2014-02-05Update copyright years.Sergey Poznyakoff31
2012-07-23Minor changes in SMTP and URL code.Sergey Poznyakoff1
* 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.
2012-07-16Remove dependency on obstack. Use mu_opool_t instead.Sergey Poznyakoff1
* 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.
2012-02-26Fix parsing local URLs.Sergey Poznyakoff1
* 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.
2012-01-05Happy GNU YearSergey Poznyakoff31
2011-10-30Minor changeSergey Poznyakoff1
2011-10-29Reorganize error codes.Sergey Poznyakoff2
* 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.
2011-10-28New interface for composing URLs from parts.Sergey Poznyakoff19
* 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.
2011-03-30Implement IPv6 support.Sergey Poznyakoff1
* 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.
2011-01-02Update copyright years.Sergey Poznyakoff17
Happy GNU year!
2010-12-29Bugfixes.Sergey Poznyakoff1
* 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
2010-10-28Add wordsplit module.Sergey Poznyakoff2
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.
2010-10-26Rewrite URL support.Sergey Poznyakoff23
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.

Return to:

Send suggestions and report system problems to the System administrator.