From 7b48aed40239012e2ee068826a3225b93a0ddcc5 Mon Sep 17 00:00:00 2001 From: solusipse Date: Mon, 16 Sep 2013 13:37:44 +0200 Subject: [PATCH] changed error policy when obtaining ip and hostname --- fiche.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/fiche.c b/fiche.c index 4c13045..f81e41d 100755 --- a/fiche.c +++ b/fiche.c @@ -155,17 +155,26 @@ struct client_data get_client_address(struct sockaddr_in client_address) hostp = gethostbyaddr((const char *)&client_address.sin_addr.s_addr, sizeof(client_address.sin_addr.s_addr), AF_INET); if (hostp == NULL) + { nerror("ERROR: Couldn't obtain client's address"); + data.hostname = "error"; + } + else + data.hostname = hostp->h_name; hostaddrp = inet_ntoa(client_address.sin_addr); if (hostaddrp == NULL) + { nerror("ERROR: Couldn't obtain client's address"); + data.ip_address = "error"; + } + else + data.ip_address = hostaddrp; display_date(); - printf("Client: %s (%s)\n", hostaddrp, hostp->h_name); + printf("Client: %s (%s)\n", data.ip_address, data.hostname); - data.ip_address = hostaddrp; - data.hostname = hostp->h_name; + return data; }