* watch_mboxes

see subversion branches/watch_mboxes/

* watch_maildirs

inotify_rm_watch() and inotify_add_watch() can fail after removing a Maildir
	mswatch recovers, but this forces a whole sync and shouldn't happen

support notification support at runtime instead of compiletime

update inotify backend to use IN_MOVE_SELF to detect moved base maildir
(but ups kernel version requirement)

update inotify backend to detect when symlinks are modifed
	v1.0.3 added support to watch a directory through a symlink, but further changes (and a newer minimum kernel) are needed to detect changes to the symlink itself
	support when directories and symlinks are moved, renamed, created, etc
	support multiple symlink hops?
	will this approach work?: watch file as normal, watch symlink as well if we follow one

does inotify backend need to use IN_ONLYDIR to protect against races?
	http://lwn.net/Articles/164801/

support more flexible maildir layouts
	investigate more thoroughly how mbsync handles this
	perhaps:
		change -m to be prefix, not folder (eg /home/chris/Maildir/."
		add -i to specify inbox

polling idea (to support non-linux hosts): check mtime of hierarchy
	will this tell of deletes/moves/renames that change structure?

dnotify backend:
	is it possible: a change on fd, signal sent, close fd, receive signal?
	can we tell when the real-time signal queue overflows?

* inputkill

* libsocketwatch

document limitations in README and website

have child exit if socketwatch exits without a chance to kill its child?

send TERM signal before KILL signal? (chance to cleanup files, terminal, etc)

cache dlsym results? (for performance)
	is caching safe? ie, can the results of dlsym change?

monitor more socket I/O functions, as needed
	also, detect socket fds obtained through other than socket(2)? (fstat?)
	also, detect socket fd closes through dup2?

do not install the static libsocketwatch library

test with programs other than mbsync
	ie offlineimap, written in python. threads? other socket functions?

alternative approaches to LD_PRELOAD:
	inotify, ptrace, ftrace (or friend),
	libpcap (requires root/permissions), iptables (requires root/perm)

* mswatch

it seems mbsync only syncs folders it finds on the server
	should mswatch sync all folders found on both sides instead of "all"?

/move to event library? (libevent, tame, libsfs)

/support watching a single mailbox? or some such?

/sync all or or smaller pieces when too sync argument array is too big

/allow just one store (one in config file or read from stdin) (?)

/generalize to non-mailstores? see the file "generalized"

use queue/list macros or stl containers for config parsing (?)

explain config file errors

/detect when a mbsync for a local change changes the server (thus there is no need to sync) and vice-versa (?)
	download new message moves server message from new to cur
	download message makes local change
	upload message makes server change
/to address watch_maildirs and mswatch could make comm synchronous (about to sync, ok; done with syncing-any changes?, here they are)
	but this makes watch_maildirs more complicated and less general

/support multiple concurrent connections (for higher latency connections) (?)

mbsync does not always provide an error exit status when it fails.
consider periodically running mbsync on all mailboxes. every 24 hours +/-
4 hours randomly?
example failure:
	Sync started at 2010-04-01 20:46:24 (1 mailbox)
	+ mbsync_safe frostnet:Trash
	Reading configuration file /home/chris/.mbsyncrc
	Channel frostnet
	Opening master frostnet...
	Resolving mail.frostnet.net... ok
	Connecting to 216.151.149.52:993... ok
	Connection is now encrypted
	Logging in...
	Opening slave local...
	Selecting master Trash...
	master: 88 messages, 0 recent
	M: ?1/1 +0/0 *0/0 #0/0  S: ?0/0 +0/0 *0/0 #0/0Selecting slave Trash...
	slave: 89 messages, 71 recent
	Synchronizing...
	M: ?1/1 +0/1 *0/0 #0/0  S: ?0/0 +0/0 *0/0 #0/0
	SSL_read:6:unhandled SSL error
	SSL error: 6
	SSL_write:9:Bad file descriptor
	SSL error: 5
	Sync completed after 63s at 2010-04-01 20:47:27 (1 mailbox)

* project

create debian package

project logo or mascot?
	bear? hibernates.
	venus flytrap
	spider and its web


