Commit Graph

22 Commits

Author SHA1 Message Date
Michael Elkins
7cd74a1179 Bunch 'o patches from Oswald Buddenhagen:
i implemented some cool stuff (tm).
first, the long missing "create server-side missing mailboxes". -C now
creates both local and remote boxes; -L and -R create only local/remote.
second, i implemented a 1:1 remote:local folder mapping (-1) with an
optional INBOX exception (inbox/-I). the remote folder is specified with
the folder keyword (or -F switch) and takes precedence over the
namespace setting. the local directory with the mailboxes can now be
specified on the command line, too (-M).

another patch:
- made the -1 switch settable permanently (OneToOne). after all, you
  usually define your mailbox layout once forever. removed -A, as it is
  semantically -a modified by -1.
- cleaned up message output a bit. still, the quiet variable should be
  used throughout the program. at best, create some generic output
  function, which obeys a global verbosity level variable.
- optimized + cleaned up configuration parser slightly
- minor cleanups

add an (almost) unique id to every uploaded message and search for it
right after. i thought about using the message-id, but a) it is not
guaranteed to be unique in a mailbox (imagine you edit a mail and store
the dupe in the same box) and b) some mails (e.g., postponed) don't even
have one. a downside of the current implementation is, that this
id-header remains in the mailbox, but given that it wastes only 27 bytes
per mail and removing it would mean several roundtrips more, this seems
acceptable.
i changed the line-counting loop to use a mmapped file instead of
reading it in chunks, as it makes things simpler and is probably even
faster for big mails.
the amount of goto statements in my code may be scary, but c is simply
lacking a multi-level break statement. :)

this is the "shut up" patch. :) it makes the -q option consequent, so to
say.
additionally it adds an -l option which gathers all defined/found
mailboxes and just outputs the list. don't ask what i need it for. ;)
2002-10-30 02:23:05 +00:00
Michael Elkins
f6c037c854 updated URL for project
fixed segmentation fault caused by double free() when an error occurred
during the IMAP transmission.

fixed bug where isync could not handle a 0 value UIDVALIDITY
2002-06-18 06:37:55 +00:00
Michael Elkins
fe438026b0 PREAUTH support from Oswald Buddenhagen <ossi@kde.org>
Added Tunnel directive to allow the user to specify a shell command to run
to set up an IMAP connection in place of a TCP socket (eg., to run over
an SSH session).
2002-04-19 19:43:00 +00:00
Michael Elkins
d6fe5a92bd added debian build files
fixed indentation

added bug note to manpage about db file format not being architecture
independent
2002-01-16 21:43:58 +00:00
Michael Elkins
c121ec912f updated year in copyright notice
the uid for each message in the maildir is now stored in a dbm database
rather than the filename.  this change was necessary because isync became
confused if you copied a message to another folder, in which case the uid
was invalid.

as a result of the above change, isync now acquires a mutex on the mailbox
to protect the dbm database from concurrent access.

main() was reworked to continue gracefully when an error is encountered, and
to always call maildir_close() so that the lock can be disabled, and the
database closed.
2002-01-16 19:47:28 +00:00
Michael Elkins
3fe6f3f086 added --create/-C command line option to force creation of the local
maildir-style mailbox if nonexistent

debug.h was not included in isync_SOURCES in Makefile.am
2001-11-20 18:06:09 +00:00
Michael Elkins
e02975e888 Added MaxMessages patch from Eivind Eklund <eivind@FreeBSD.org>.
config_defaults() can just use memcpy() instead of assigning each struct
member individually.

config_defaults() can be declared static
2001-11-15 23:59:27 +00:00
Michael Elkins
9647c79504 post 0.6 commit 2001-10-31 06:06:06 +00:00
Michael Elkins
e015398ff2 added `Delete' configuration option to force -d option
sync_mailbox() didn't consider MaxSize == 0 to mean "unlimited".

load_config() needs to print a newline in its error messages since
next_arg() kills the newline of the line that was read out of the config
file.
2001-10-03 05:42:22 +00:00
Michael Elkins
8af21c5604 handle untagged responses in imap_fetch_message() so that it doesn't bomb
out if new mail arrives while in the process of downloading

noted in BUGS section of man page that if new mail arrives after the initial
message list has been retrieved from the IMAP server, that new mail will not
be fetched until the next invocation of isync.
2001-06-18 21:38:44 +00:00
Michael Elkins
1db31aabd7 patch from Daniel Resare <noa@metamatrix.se>:
1 giving a path to a nonexistant rc-file with the -c argument dumps core

  The patch adds a check to ensure that the given rc-file is accessible

2 the error messages given from failed openssl calls are bogus

  The handles the error from SSL_connect () correctly. The bug is
  understndable since the error handling in openssl is quite obfuscated.
  Good news is that the documentation manapges has been greatly updated in
  the latest version (0.9.6). See in particular err(3), ERR_get_error(3)
  and SSL_get_error(3).

  Please note that possible SSL_ERROR_SSL type errors from SSL_read() and
  SSL_write() is not handled. This should also be fixed.

3 connecting using the STARTTLS command with an imap server that is
  configured only to accept the TLSv1 protocol gives an error because isync
  sends an SSLv2 Hello message for backwards compability. (This is the case
  with the uw-imap 2000 that ships with redhat-7.0)
  I've read RFC2595 several times to see if it says something about
  compability SSL2/SSL3 hello messages but can't find anything. IMHO the
  correct thing to do is change the default to not use SSL2/3 compability
  hello when using the STARTTLS command but use it if the imaps port is
  used. The patch implements this change

4 repeated calls to SSL_CTX_set_options overwrites the old settings (the
  values needs to be ORed together)

  fixed in the patch

patch from me@mutt.org:
	\Recent messages were put in the cur/ directory instead of new/

	give error message when the LOGIN command fails
2001-02-14 20:46:41 +00:00
Michael Elkins
91d2f60584 fixed cram compilation error under bsd
updated man page
2001-01-24 07:09:28 +00:00
Michael Elkins
7173d07192 added support for tilde (~) expansion in the Mailbox' and CertificateFile'
configuration directives

added `Maildir' configuration command to specify the default location of the
user's mailboxes.  If a relative path is used in a `Mailbox' command, this
path is used as a prefix.
2001-01-16 19:45:08 +00:00
Michael Elkins
bcecbe5eeb broke config code into config.c
added support for uploading local messages with no UID to the IMAP server

added Expunge configuration option

added CopyDeletedTo configuration option
2001-01-11 10:13:47 +00:00
Michael Elkins
acd674f93e allow leading whitespace in config files
now possible to sync multiple mailboxes by specifying multiple aliases on
the command line.  IMAP connections are reused if possible.

don't initialize ssl unless we are going to use it.
2000-12-27 21:14:22 +00:00
Michael Elkins
074298d482 isync-brokenservers.diff (Jeremy Katz <katzj@linuxpower.org>)
adds support for disabling NAMESPACE, and disable various flavors of TLS/SSL
for use with some broken IMAP servers.
2000-12-22 21:22:24 +00:00
Michael Elkins
0527181f45 added MaxSize configuration variable
fixed --fast to work robustly without relying on the \Recent flag in
messages
2000-12-22 07:14:32 +00:00
Michael Elkins
1b25e3b739 added target for creating html version of the man page
documented the imaps: prefix to the Host command
2000-12-21 19:49:03 +00:00
Michael Elkins
b3d09b1723 added BUGS section to manpage detailing the fact that we break the
maildir(5) spec by parsing the filename

change message delivery to use the method described in maildir(5)
2000-12-21 18:16:44 +00:00
Michael Elkins
fa1e46f6ec fixed typo in man page for --verbose option 2000-12-21 11:14:40 +00:00
Michael Elkins
b6089a2dcb added OpenSSL support 2000-12-21 06:27:05 +00:00
Michael Elkins
f47d0d7c11 initial import 2000-12-20 21:41:21 +00:00