diff options
author | Max Kellermann <max@duempel.org> | 2008-08-29 09:36:42 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-08-29 09:36:42 +0200 |
commit | 8b1b82b36374e95bcef8195fcd15e4014e73567d (patch) | |
tree | 90efdb2f715a44e2ccc3387e479cf56512225e01 /src/client.c | |
parent | 2c8aa8efde879b6b9396aaa06edfa4506c55842e (diff) | |
download | mpd-8b1b82b36374e95bcef8195fcd15e4014e73567d.tar.gz mpd-8b1b82b36374e95bcef8195fcd15e4014e73567d.tar.xz mpd-8b1b82b36374e95bcef8195fcd15e4014e73567d.zip |
client: pass the client struct to processCommand()
Start exporting the client struct as an opaque struct. For now, pass
it only to processCommand() and processListOfCommands(), and provide a
function to extract the socket handle. Later, we will propagate the
pointer to all command implementations, and of course to
client_print() etc.
Diffstat (limited to 'src/client.c')
-rw-r--r-- | src/client.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/client.c b/src/client.c index c0cca399e..7f47aacd4 100644 --- a/src/client.c +++ b/src/client.c @@ -324,6 +324,14 @@ void client_new(int fd, const struct sockaddr *addr) sockaddr_to_tmp_string(addr)); } +int client_get_fd(struct client *client) +{ + assert(client != NULL); + assert(client->fd >= 0); + + return client->fd; +} + static int client_process_line(struct client *client) { int ret = 1; @@ -335,7 +343,7 @@ static int client_process_line(struct client *client) "list\n", client->num); global_expired = 0; - ret = processListOfCommands(client->fd, + ret = processListOfCommands(client, &(client->permission), &global_expired, client->cmd_list_OK, @@ -384,7 +392,7 @@ static int client_process_line(struct client *client) } else { DEBUG("client %i: process command \"%s\"\n", client->num, line); - ret = processCommand(client->fd, + ret = processCommand(client, &(client->permission), line); DEBUG("client %i: command returned %i\n", client->num, ret); |