diff options
author | Max Kellermann <max@duempel.org> | 2008-08-28 20:20:10 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-08-28 20:20:10 +0200 |
commit | e0fd63ecf82a2a00eed063e52f75e4ef77a0abae (patch) | |
tree | c15ccf719a45ced84a8de2769246ac39c2cec381 | |
parent | 34735fab66eb5f8a4cd65413f09e1ba60f5872a3 (diff) | |
download | mpd-e0fd63ecf82a2a00eed063e52f75e4ef77a0abae.tar.gz mpd-e0fd63ecf82a2a00eed063e52f75e4ef77a0abae.tar.xz mpd-e0fd63ecf82a2a00eed063e52f75e4ef77a0abae.zip |
moved code to sockaddr_to_tmp_string()
Unclutter the client_new() constructor by moving unrelated complex
code into a separate function.
-rw-r--r-- | src/client.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/client.c b/src/client.c index 7ae000881..2e0106b38 100644 --- a/src/client.c +++ b/src/client.c @@ -248,16 +248,10 @@ static void client_close(struct client *client) free(client); } -void client_new(int fd, const struct sockaddr *addr) +static const char * +sockaddr_to_tmp_string(const struct sockaddr *addr) { const char *hostname; - struct client *client; - - if (num_clients >= client_max_connections) { - ERROR("Max Connections Reached!\n"); - xclose(fd); - return; - } switch (addr->sa_family) { #ifdef HAVE_TCP @@ -293,11 +287,25 @@ void client_new(int fd, const struct sockaddr *addr) hostname = "unknown"; } + return hostname; +} + +void client_new(int fd, const struct sockaddr *addr) +{ + struct client *client; + + if (num_clients >= client_max_connections) { + ERROR("Max Connections Reached!\n"); + xclose(fd); + return; + } + client = xcalloc(1, sizeof(*client)); list_add(&client->siblings, &clients); ++num_clients; client_init(client, fd); - SECURE("client %i: opened from %s\n", client->num, hostname); + SECURE("client %i: opened from %s\n", client->num, + sockaddr_to_tmp_string(addr)); } static int client_process_line(struct client *client) |