diff options
author | Max Kellermann <max@duempel.org> | 2008-08-29 09:37:11 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-08-29 09:37:11 +0200 |
commit | 8811c0e05943edbcb3d7203ef4f61ec89423718a (patch) | |
tree | 666d7e4ecd907f3a7d4c648085ec655efda9aa38 /src | |
parent | 8b1b82b36374e95bcef8195fcd15e4014e73567d (diff) | |
download | mpd-8811c0e05943edbcb3d7203ef4f61ec89423718a.tar.gz mpd-8811c0e05943edbcb3d7203ef4f61ec89423718a.tar.xz mpd-8811c0e05943edbcb3d7203ef4f61ec89423718a.zip |
export the function client_is_expired()
Instead of passing the pointer to the "expired" flag to
processListOfCommands(), this function should use the client API to
check this flag. We can now remove the "global_expired" hack
introduced recently.
Diffstat (limited to 'src')
-rw-r--r-- | src/client.c | 9 | ||||
-rw-r--r-- | src/client.h | 2 | ||||
-rw-r--r-- | src/command.c | 4 | ||||
-rw-r--r-- | src/command.h | 3 |
4 files changed, 6 insertions, 12 deletions
diff --git a/src/client.c b/src/client.c index 7f47aacd4..f09427622 100644 --- a/src/client.c +++ b/src/client.c @@ -129,21 +129,17 @@ static void set_send_buf_size(struct client *client) } } -static inline int client_is_expired(const struct client *client) +int client_is_expired(const struct client *client) { return client->fd < 0; } -static int global_expired; - static inline void client_set_expired(struct client *client) { if (client->fd >= 0) { xclose(client->fd); client->fd = -1; } - - global_expired = 1; } static void client_init(struct client *client, int fd) @@ -341,11 +337,8 @@ static int client_process_line(struct client *client) if (strcmp(line, CLIENT_LIST_MODE_END) == 0) { DEBUG("client %i: process command " "list\n", client->num); - - global_expired = 0; ret = processListOfCommands(client, &(client->permission), - &global_expired, client->cmd_list_OK, client->cmd_list); DEBUG("client %i: process command " diff --git a/src/client.h b/src/client.h index db4bc2023..dc67c044f 100644 --- a/src/client.h +++ b/src/client.h @@ -37,6 +37,8 @@ void client_new(int fd, const struct sockaddr *addr); */ int client_get_fd(struct client *client); +int client_is_expired(const struct client *client); + int client_print(int fd, const char *buffer, size_t len); #endif diff --git a/src/command.c b/src/command.c index f2468d0b1..c0adf3a13 100644 --- a/src/command.c +++ b/src/command.c @@ -1235,7 +1235,7 @@ static int processCommandInternal(struct client *client, return ret; } -int processListOfCommands(struct client *client, int *permission, int *expired, +int processListOfCommands(struct client *client, int *permission, int listOK, struct strnode *list) { int fd = client_get_fd(client); @@ -1249,7 +1249,7 @@ int processListOfCommands(struct client *client, int *permission, int *expired, cur->data); ret = processCommandInternal(client, permission, cur->data, cur); DEBUG("processListOfCommands: command returned %i\n", ret); - if (ret != 0 || (*expired) != 0) + if (ret != 0 || client_is_expired(client)) goto out; else if (listOK) fdprintf(fd, "list_OK\n"); diff --git a/src/command.h b/src/command.h index 030e03767..d421b8746 100644 --- a/src/command.h +++ b/src/command.h @@ -29,8 +29,7 @@ struct client; -int processListOfCommands(struct client *client, - int *permission, int *expired, +int processListOfCommands(struct client *client, int *permission, int listOK, struct strnode *list); int processCommand(struct client *client, |