aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-28 20:20:10 +0200
committerEric Wong <normalperson@yhbt.net>2008-09-01 18:35:19 -0700
commit9e35e50f856038e231e06a5f3d85ff1545053438 (patch)
treef19ae7f68578a0f4529042291c1b8bf2130edd1a
parent9567f849e514940da6c2c6da52dde932b7b2fb48 (diff)
downloadmpd-9e35e50f856038e231e06a5f3d85ff1545053438.tar.gz
mpd-9e35e50f856038e231e06a5f3d85ff1545053438.tar.xz
mpd-9e35e50f856038e231e06a5f3d85ff1545053438.zip
client: replace "expired" flag with fd==-1
Why waste 4 bytes for a flag which we can hide in another variable.
-rw-r--r--src/client.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/client.c b/src/client.c
index f1e3685c0..ba15a90de 100644
--- a/src/client.c
+++ b/src/client.c
@@ -66,7 +66,7 @@ struct client {
char buffer[CLIENT_MAX_BUFFER_LENGTH];
size_t bufferLength;
size_t bufferPos;
- int fd; /* file descriptor */
+ int fd; /* file descriptor; -1 if expired */
int permission;
time_t lastTime;
struct strnode *cmd_list; /* for when in list mode */
@@ -76,8 +76,6 @@ struct client {
int cmd_list_dup; /* has the cmd_list been copied to private space? */
struct sllnode *deferred_send; /* for output if client is slow */
size_t deferred_bytes; /* mem deferred_send consumes */
- int expired; /* set whether this client should be closed on next
- check of old clients */
unsigned int num; /* client number */
char *send_buf;
@@ -133,12 +131,15 @@ static void set_send_buf_size(struct client *client)
static inline int client_is_expired(const struct client *client)
{
- return client->expired;
+ return client->fd < 0;
}
static inline void client_set_expired(struct client *client)
{
- client->expired = 1;
+ if (client->fd >= 0) {
+ xclose(client->fd);
+ client->fd = -1;
+ }
}
static void client_init(struct client *client, int fd)
@@ -156,7 +157,6 @@ static void client_init(struct client *client, int fd)
client->cmd_list = NULL;
client->cmd_list_tail = NULL;
client->deferred_send = NULL;
- client->expired = 0;
client->deferred_bytes = 0;
client->num = next_client_num++;
client->send_buf_used = 0;