From f320c9fa1dc2268fbd97ba9cb00140276c0a2e23 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 7 Sep 2008 13:48:37 +0200 Subject: directory: don't pass fd to traverseAllIn() This patch continues the work of the previous patch: don't pass a file descriptor at all to traverseAllIn(). Since this fd was only used to report "directory not found" errors, we can easily move that check to the caller. This is a great relief, since it removes the dependency on a client connection from a lot of enumeration functions. --- src/directory.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/directory.c') diff --git a/src/directory.c b/src/directory.c index 23c2d274f..d72aca1de 100644 --- a/src/directory.c +++ b/src/directory.c @@ -1155,8 +1155,8 @@ int readDirectoryDB(void) readDirectoryInfo(fp, mp3rootDirectory); while (fclose(fp) && errno == EINTR) ; - stats.numberOfSongs = countSongsIn(STDERR_FILENO, NULL); - stats.dbPlayTime = sumSongTimesIn(STDERR_FILENO, NULL); + stats.numberOfSongs = countSongsIn(NULL); + stats.dbPlayTime = sumSongTimesIn(NULL); if (stat(dbFile, &st) == 0) directory_dbModTime = st.st_mtime; @@ -1220,7 +1220,7 @@ static int traverseAllInSubDirectory(Directory * directory, return errFlag; } -int traverseAllIn(int fd, const char *name, +int traverseAllIn(const char *name, int (*forEachSong) (Song *, void *), int (*forEachDir) (Directory *, void *), void *data) { @@ -1231,8 +1231,6 @@ int traverseAllIn(int fd, const char *name, if ((song = getSongFromDB(name)) && forEachSong) { return forEachSong(song, data); } - commandError(fd, ACK_ERROR_NO_EXIST, - "directory or file not found"); return -1; } @@ -1257,8 +1255,8 @@ void initMp3Directory(void) mp3rootDirectory = newDirectory(NULL, NULL); exploreDirectory(mp3rootDirectory); freeAllDirectoryStats(mp3rootDirectory); - stats.numberOfSongs = countSongsIn(STDERR_FILENO, NULL); - stats.dbPlayTime = sumSongTimesIn(STDERR_FILENO, NULL); + stats.numberOfSongs = countSongsIn(NULL); + stats.dbPlayTime = sumSongTimesIn(NULL); } static Song *getSongDetails(const char *file, const char **shortnameRet, -- cgit v1.2.3