From 3e78dc6732dfef2baf2b41e33264f56dc2b1a80c Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Tue, 6 Nov 2012 16:38:43 -0800 Subject: [PATCH] sim_sock.c - preferred a bare textual IPv4 address be returned over an IPv4-mapped format address when returning the connecting IP address string in sim_accept_conn. --- sim_sock.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sim_sock.c b/sim_sock.c index 9f6444d1..fab7f64d 100644 --- a/sim_sock.c +++ b/sim_sock.c @@ -733,6 +733,8 @@ if (connectaddr != NULL) { *connectaddr = calloc(1, NI_MAXHOST+1); #ifdef AF_INET6 p_getnameinfo((struct sockaddr *)&clientname, size, *connectaddr, NI_MAXHOST, NULL, 0, NI_NUMERICHOST); + if (0 == memcmp("::ffff:", *connectaddr, 7)) /* is this a IPv4-mapped IPv6 address? */ + strcpy(*connectaddr, 7+*connectaddr); /* prefer bare IPv4 address if possible */ #else strcpy(*connectaddr, inet_ntoa(((struct sockaddr_in *)&connectaddr)->s_addr)); #endif