From e0fd63ecf82a2a00eed063e52f75e4ef77a0abae Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 28 Aug 2008 20:20:10 +0200 Subject: moved code to sockaddr_to_tmp_string() Unclutter the client_new() constructor by moving unrelated complex code into a separate function. --- src/client.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/client.c b/src/client.c index 7ae00088..2e0106b3 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) -- cgit v1.2.3