summaryrefslogtreecommitdiffstats
path: root/lib/sockunion.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sockunion.c')
-rw-r--r--lib/sockunion.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/sockunion.c b/lib/sockunion.c
index 8fbe3450..3052063f 100644
--- a/lib/sockunion.c
+++ b/lib/sockunion.c
@@ -225,6 +225,8 @@ sockunion_su2str (union sockunion *su)
#endif /* HAVE_IPV6 */
}
return XSTRDUP (MTYPE_TMP, str);
+<<<<<<< HEAD:lib/sockunion.c
+=======
}
/* Convert IPv4 compatible IPv6 address to IPv4 address. */
@@ -243,6 +245,7 @@ sockunion_normalise_mapped (union sockunion *su)
memcpy (su, &sin, sizeof (struct sockaddr_in));
}
#endif /* HAVE_IPV6 */
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:lib/sockunion.c
}
/* Return socket of sockunion. */
@@ -271,6 +274,26 @@ sockunion_accept (int sock, union sockunion *su)
len = sizeof (union sockunion);
client_sock = accept (sock, (struct sockaddr *) su, &len);
+<<<<<<< HEAD:lib/sockunion.c
+ /* Convert IPv4 compatible IPv6 address to IPv4 address. */
+#if 0
+#ifdef HAVE_IPV6
+ if (su->sa.sa_family == AF_INET6)
+ {
+ if (IN6_IS_ADDR_V4MAPPED (&su->sin6.sin6_addr))
+ {
+ struct sockaddr_in sin;
+
+ memset (&sin, 0, sizeof (struct sockaddr_in));
+ sin.sin_family = AF_INET;
+ memcpy (&sin.sin_addr, ((char *)&su->sin6.sin6_addr) + 12, 4);
+ memcpy (su, &sin, sizeof (struct sockaddr_in));
+ }
+ }
+#endif /* HAVE_IPV6 */
+#endif
+=======
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:lib/sockunion.c
return client_sock;
}
@@ -593,7 +616,22 @@ sockunion_getsockname (int fd)
{
su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
memcpy (su, &name, sizeof (struct sockaddr_in6));
+<<<<<<< HEAD:lib/sockunion.c
+
+#if 0
+ if (IN6_IS_ADDR_V4MAPPED (&su->sin6.sin6_addr))
+ {
+ struct sockaddr_in sin;
+
+ sin.sin_family = AF_INET;
+ memcpy (&sin.sin_addr, ((char *)&su->sin6.sin6_addr) + 12, 4);
+ sin.sin_port = su->sin6.sin6_port;
+ memcpy (su, &sin, sizeof (struct sockaddr_in));
+ }
+#endif
+=======
sockunion_normalise_mapped (su);
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:lib/sockunion.c
return su;
}
#endif /* HAVE_IPV6 */
@@ -638,7 +676,21 @@ sockunion_getpeername (int fd)
{
su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
memcpy (su, &name, sizeof (struct sockaddr_in6));
+<<<<<<< HEAD:lib/sockunion.c
+#if 0
+ if (IN6_IS_ADDR_V4MAPPED (&su->sin6.sin6_addr))
+ {
+ struct sockaddr_in sin;
+
+ sin.sin_family = AF_INET;
+ memcpy (&sin.sin_addr, ((char *)&su->sin6.sin6_addr) + 12, 4);
+ sin.sin_port = su->sin6.sin6_port;
+ memcpy (su, &sin, sizeof (struct sockaddr_in));
+ }
+#endif
+=======
sockunion_normalise_mapped (su);
+>>>>>>> 41dc3488cf127a1e23333459a0c316ded67f7ff3:lib/sockunion.c
return su;
}
#endif /* HAVE_IPV6 */