Fork of isync with filter support
Go to file
Patrick Steinhardt 56515abe94 socket: use next addrinfo if opening socket fails
The `socket_connect_one` function previously did an `exit(1)` when
encountering any errors with opening the socket. This would break
connecting to a host where multiple possible addrinfos are returned,
where the leading addrinfos are in fact impossible to connect to. E.g.
with a kernel configured without support for IPv6, the `getaddrinfo`
call may still return a hint containing an IPv6 address alongside
another hint with an IPv4 address. Creating the socket with the IPv6
address, which will cause an error, lead us to exiting early without
even trying remaining hints.

While one can argue that the user should have compiled without HAVE_IPV6
or used an appropriate DNS configuration, we can do better by simply
skipping over the current addrinfo causing an error. To do so, we split
out a new function `socket_connect_next`, which selects the next
available address info and subsequently calls `socket_connect_one`
again. When no hints remain, `sock_connect_one` will error out at that
point.
2017-06-22 09:23:56 +02:00
debian pre-release doc updates 2012-09-01 21:15:53 +02:00
src socket: use next addrinfo if opening socket fails 2017-06-22 09:23:56 +02:00
.gitignore ignore coverity state directory 2014-07-06 09:09:54 +02:00
acinclude.m4 update fsf's postal address. i think it's sort of useless nowadays 2006-02-09 17:44:22 +00:00
AUTHORS reshuffle for "contact priority's" sake 2008-02-23 08:53:39 +00:00
autogen.sh use autoreconf instead of calling separate tools 2013-12-01 13:36:26 +01:00
configure.ac fix configure for static libdb, libnsl, and libsocket 2015-07-18 18:17:07 +02:00
COPYING added missing files 2000-12-20 22:00:25 +00:00
get-cert update fsf's postal address. i think it's sort of useless nowadays 2006-02-09 17:44:22 +00:00
isync.spec.in fix rpm packaging 2012-09-01 21:15:53 +02:00
Makefile.am skip merges during ChangeLog generation 2015-01-11 14:32:05 +01:00
NEWS revamp console output options 2015-03-30 10:31:26 +02:00
README mention safety of concurrent access; wording improvements 2015-09-07 12:35:12 +02:00
TODO remove obsolete TODO item 2015-05-01 19:23:46 +02:00

 _                      
(_)___ _   _ _ __   ___ 
| / __| | | | '_ \ / __|
| \__ \ |_| | | | | (__ 
|_|___/\__, |_| |_|\___|
       |___/            
isync/mbsync - free (GPL) mailbox synchronization program
http://isync.sf.net/

See AUTHORS for contact information.

``mbsync'' is a command line application which synchronizes mailboxes;
currently Maildir and IMAP4 mailboxes are supported. New messages, message
deletions and flag changes can be propagated both ways.
``mbsync'' is suitable for use in IMAP-disconnected mode.

Synchronization is based on unique message identifiers (UIDs), so
no identification conflicts can occur (unlike with some other mail
synchronizers).
Synchronization state is kept in one local text file per mailbox pair;
these files are protected against concurrent ``mbsync'' processes.
Mailboxes can be safely modified while ``mbsync'' operates.
Multiple replicas of each mailbox can be maintained.

isync is the project name, while mbsync is the current executable name; this
change was necessary because of massive changes in the user interface. An
isync executable still exists; it is a compatibility wrapper around mbsync.

* Features

    * Fine-grained selection of synchronization operations to perform
    * Synchronizes single mailboxes or entire mailbox collections
    * Partial mirrors possible: keep only the latest messages locally
    * Trash functionality: backup messages before removing them
    * IMAP features:
	* Supports TLS/SSL via imaps: (port 993) and STARTTLS
	* Supports SASL for authentication
	* Pipelining for maximum speed

* Compatibility

    isync should work fairly well with any IMAP4 compliant server;
    servers that support the UIDPLUS and LITERAL+ extensions are most
    efficient.

    Courier 1.4.3 is known to be buggy, version 1.7.3 works fine.

    c-client (UW-IMAP, Pine) is mostly fine, but versions less than 2004a.352
    tend to change UIDVALIDITY pretty often when used with unix/mbox mailboxes,
    making isync refuse synchronization.
    M$ Exchange (up to 2010 at least) occasionally exposes the same problem.
    The "cure" is to simply copy the new UIDVALIDITY from the affected
    mailbox to mbsync's state file. This is a Bad Hack (TM), but it works -
    use at your own risk (if the UIDVALIDITY change was genuine, this will
    delete all messages in the affected mailbox - not that this ever
    happened to me).

* Platforms

    At some point, ``isync'' has successfully run on:
    Linux, Solaris 2.7, OpenBSD 2.8, FreeBSD 4.3.

* Requirements

    Berkeley DB 4.1+ (optional)
    OpenSSL for TLS/SSL support (optional)
    Cyrus SASL (optional)
    zlib (optional)

* Installation

    ./autogen.sh (only when building from git)
    ./configure
    make
    sudo make install

* Help

    Please see the man page for complete documentation.