]> granicus.if.org Git - transmission/commitdiff
(trunk libT) #3967 "regression: transmission-daemon's non-inotify watchdir is broken...
authorJordan Lee <jordan@transmissionbt.com>
Thu, 3 Feb 2011 17:37:53 +0000 (17:37 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Thu, 3 Feb 2011 17:37:53 +0000 (17:37 +0000)
When inotify isn't available, watch.c uses readdir() to look for new .torrent files. It keeps a list of old .torrent files internally so that it doesn't try to keep re-adding the same file. This list is stored in an evbuffer. As part of the libevent2 upgrade (#3836), r11594 changed how the buffer is searched by replacing the (deprecated) event_find() call with libevent2's evbuffer_search(). However the latter's semantics are different in that searching stops when '\0' is reached, so '\0' is no longer a good filename delimiter. Fixed by changing watch.c's internal delimiter from '\0' to '\t' ... so all those torrents with tabs in their filenames had better watch out.

daemon/watch.c

index c43064a298d542228078fef8c7a12af590cee389..3621798feb97fc84de49651da2cefdfd99ceb53c 100644 (file)
@@ -153,7 +153,7 @@ watchdir_update_impl( dtr_watchdir * w )
 
 #define WATCHDIR_POLL_INTERVAL_SECS 10
 
-#define FILE_DELIMITER '\0'
+#define FILE_DELIMITER '\t'
 
 static void
 watchdir_new_impl( dtr_watchdir * w UNUSED )