aboutsummaryrefslogtreecommitdiffstats
path: root/src/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface.c')
-rw-r--r--src/interface.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/interface.c b/src/interface.c
index 66c912f45..b1f016bc3 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -156,18 +156,32 @@ void openAInterface(int fd, struct sockaddr * addr) {
SECURE("interface %i: opened from ",i);
switch(addr->sa_family) {
case AF_INET:
- SECURE("%s\n",inet_ntoa(
+ {
+ char * host = inet_ntoa(
((struct sockaddr_in *)addr)->
- sin_addr));
+ sin_addr);
+ if(host) {
+ SECURE("%s\n",host);
+ }
+ else {
+ SECURE("error getting ipv4 address\n");
+ }
+ }
break;
#ifdef HAVE_IPV6
case AF_INET6:
{
char host[INET6_ADDRSTRLEN+1];
memset(host,0,INET6_ADDRSTRLEN+1);
- SECURE("%s\n",inet_ntop(AF_INET6,(void *)
+ if(inet_ntop(AF_INET6,(void *)
&(((struct sockaddr_in6 *)addr)->
- sin6_addr),host,INET6_ADDRSTRLEN));
+ sin6_addr),host,INET6_ADDRSTRLEN))
+ {
+ SECURE("%s\n",host);
+ }
+ else {
+ SECURE("error getting ipv6 address\n");
+ }
}
break;
#endif