From 8e3c40f032d1c760b9dc11df654c577baaf5f76a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 7 Sep 2008 13:50:06 +0200 Subject: directory: don't pass "fd" to updateInit() Again, move error handling to command.c. --- src/command.c | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) (limited to 'src/command.c') diff --git a/src/command.c b/src/command.c index 14b1aca09..f197db393 100644 --- a/src/command.c +++ b/src/command.c @@ -816,9 +816,27 @@ static int listHandleUpdate(int fd, nextCmd = getCommandEntryFromString(next->data, permission); if (cmd != nextCmd) { - int ret = updateInit(fd, pathList); + int ret = updateInit(pathList); freeList(pathList); pathList = NULL; + + switch (ret) { + case 0: + commandError(fd, ACK_ERROR_UPDATE_ALREADY, + "already updating"); + break; + + case -1: + commandError(fd, ACK_ERROR_SYSTEM, + "problems trying to update"); + break; + + default: + fdprintf(fd, "updating_db: %i\n", ret); + ret = 0; + break; + } + return ret; } @@ -828,15 +846,35 @@ static int listHandleUpdate(int fd, static int handleUpdate(int fd, mpd_unused int *permission, mpd_unused int argc, char *argv[]) { + int ret; + if (argc == 2) { - int ret; List *pathList = makeList(NULL, 1); insertInList(pathList, argv[1], NULL); - ret = updateInit(fd, pathList); + ret = updateInit(pathList); freeList(pathList); - return ret; + } else + ret = updateInit(NULL); + + switch (ret) { + case 0: + commandError(fd, ACK_ERROR_UPDATE_ALREADY, + "already updating"); + ret = -1; + break; + + case -1: + commandError(fd, ACK_ERROR_SYSTEM, + "problems trying to update"); + break; + + default: + fdprintf(fd, "updating_db: %i\n", ret); + ret = 0; + break; } - return updateInit(fd, NULL); + + return ret; } static int handleNext(mpd_unused int fd, mpd_unused int *permission, -- cgit v1.2.3