Commit Graph

996 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
0bd3709a9d fixed missing closedir() call (Joey Hess) 2002-10-30 02:01:32 +00:00
Michael Elkins
52a721187f explicitly set global.pass to NULL when getpass() returns an empty string. 2002-06-27 03:55:01 +00:00
Michael Elkins
0162c9f5b8 Oswald Buddenhagen <ossi@kde.org>
* fix imap_open() brokeness with PREAUTH (missed hunk from previous patch)
2002-06-27 03:51:51 +00:00
Michael Elkins
d6fd1939ba fixed errors introduced by ME when hand-applying Oswald Nuddenhagen's
patch.
2002-06-22 17:06:24 +00:00
Michael Elkins
eb5f92821c Patch from Oswald Buddenhagen <ossi@kde.org>
- move prompt for password to imap_open()
	- don't ask for global password in PREAUTH state
	- use socketpair() to create one full-duplex fd in tunnel mode
	  instead of two half-duplex pipes
	- don't set lck.l_pid in fcntl() call (its read-only)
	- use F_SETLK instead of F_SETLKW to avoid infinite waiting
	- use "$@" in autogen.sh to get proper word expansion
2002-06-22 01:21:43 +00:00
Michael Elkins
1a1d2af012 Fixed to compile under FreeBSD 4.6-RELEASE. Must include ndbm.h rather than
db.h.
2002-06-21 00:26:26 +00:00
Michael Elkins
85b5c5b8c9 remove debian/files
move dotlocking code to dotlock.c.

dotlocking code fixed to ignore whether or not the lockfile exists on
open().  we only care about whether fcntl() was able to lock it.
2002-06-20 23:33:13 +00:00
Michael Elkins
dd1b19a99a Don't bother uploaded messages marked deleted when we are going to expunge. 2002-06-19 02:31:07 +00:00
Michael Elkins
54d8140f6e fixed unused var warning in imap_open()
locking cleanups from Oswald Buddenhagen <ossi@kde.org>
	* don't need to stat the lockfile since it will always be size 0
	* only remove lockfile when we actually succeeded in locking
2002-06-19 01:11:36 +00:00
Michael Elkins
418b5e9a7a Debian package cleanups from Oswald Buddenhagen <ossi@kde.org> 2002-06-19 00:44:40 +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
7741548ff8 changed debian/rules to set DESTDIR instead of `prefix' when doing a make
install.
2002-04-19 21:38:11 +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
6267139b71 post 0.8 release commit 2002-01-28 19:39:57 +00:00
Michael Elkins
44d360d184 check for dbm_open() in libc and libdb 2002-01-28 19:34:22 +00:00
Michael Elkins
d00a65bebd don't bother renaming the message file if we are about to unlink() it 2002-01-17 19:33:25 +00:00
Michael Elkins
dd22bd3f22 remove tilde backup files for distclean
fixed indentation

added full name to AUTHORS

reformated NEWS blurb for 0.8
2002-01-16 22:23:26 +00:00
Michael Elkins
2f2b123d71 sync_mailbox() did not update the msg struct when flags were changed,
causing the expunge command to fail

remove bogus strfcpy() line
2002-01-16 22:13:19 +00:00
Michael Elkins
8c8f6916c6 added debian build files dist target so that people can use them to build
their own .deb packages without having to use CVS
2002-01-16 21:51:06 +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
cb0d4b54b3 remove the uid from the db when a message is deleted from the maildir
optimize db fetch/store to not copy the base filename
2002-01-16 21:22:43 +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
2c648da5cf post 0.7-release commit 2001-11-20 18:28:18 +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
f0c7fdf008 added memory debugging code
fixed memory leak in free_list()

free memory associated with global settings on exit
2001-11-19 19:41:14 +00:00
Michael Elkins
de1f9e1941 remove c++ style comments
use %lu and cast off_t to unsigned long in printf()
2001-11-16 21:23:14 +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
06a5edb452 move strndup() code into config.c for less complexity
change AC_REPLACE_FUNC(strndup) to AC_CHECK_FUNCS(strndup)

sed expression checking for gcc-3.0 should be quoted beccause it
fails under Solaris 2.7
2001-11-14 17:40:10 +00:00
Michael Elkins
2881d173b5 strndup() could return a non-NULL terminated string
size_t should be printed with %lu

when expending tildes (~), an extra slash was inserted after the user's home
directory
2001-11-13 00:36:44 +00:00
Michael Elkins
bb62e2c18d merge maildir_sync() and maildir_close(). the maxuid in a maildir still
needs to be updated in --fast mode, and the sync code already checks to see
if any changes were made to the mailbox.
2001-11-12 23:03:33 +00:00
Michael Elkins
49b36e7869 add FreeBSD to the list of tested platforms 2001-11-09 00:35:07 +00:00
Michael Elkins
087fb470e7 update version to 0.7
detect short write in write_strip()

fix compilation warnings with gcc-2.95.4
2001-11-09 00:23:50 +00:00
Michael Elkins
c84a888a7d set compiler warnings for gcc-3.0 as well
display message with count of uploaded messages

--quiet now supresses warnings in sync_mailbox()

fixed compiler warnings with -Wshadow
2001-10-31 19:50:01 +00:00
Michael Elkins
9647c79504 post 0.6 commit 2001-10-31 06:06:06 +00:00
Michael Elkins
e3797d65da add strndup replacement function for systems which lack it 2001-10-30 22:57:03 +00:00
Michael Elkins
8ca8c2b289 fixed broken code in maildir_clean_tmp() 2001-10-03 17:10:40 +00:00
Michael Elkins
c4050700c0 added code to clean the tmp directory in a maildir to comply with
maildir(5)
2001-10-03 16:48:17 +00:00
Michael Elkins
608386f918 forgot to add code to parse the `Delete' option 2001-10-03 06:32:16 +00:00
Michael Elkins
cb2f6e3ee6 forgot conditional #if HAVE_LIBSSL around setting of .use_imaps in main()
from command line arguments
2001-10-03 06:18:45 +00:00
Michael Elkins
bfffeffff6 update Copyright printed by --help
add compile time option list to --help output
2001-10-03 06:15:01 +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
1efcad03f8 update TODO list with action items 2001-10-03 00:03:14 +00:00
Michael Elkins
6f647ae37b fixed maildir message filenames to comply with the maildir(5) specification.
fixed write_strip() and imap_fetch_message() to check the return code of
write() and fsync() to comply with maildir(5) spec.
2001-10-03 00:01:18 +00:00
Michael Elkins
4b102ee6ec the `Expunge' config directive didn't work since only the -e command line
argument was consulted.
2001-10-02 23:43:09 +00:00
Michael Elkins
e2f1cd779b we should issue a CAPABILITY even if we aren't going to use ssl/tls so that
cram-md5 auth still works.
2001-10-02 22:46:47 +00:00
Michael Elkins
891fab1a7d find_box() should attempt to expand all filenames if none of the other
methods found a match.
2001-07-18 18:56:11 +00:00
Michael Elkins
0f7823a4bf fixed to not expand filenames until they are used inside of maildir_open(),
so that aliases are not required for simple filenames.
[re: http://bugs.debian.org/102255]
2001-07-18 18:49:55 +00:00
Michael Elkins
5eaa4e5512 --host option didn't check for imaps: prefix 2001-06-22 23:30:41 +00:00
Michael Elkins
ea361ad116 fixed core when specifying multiple mailboxes on the command line 2001-06-21 20:45:50 +00:00