diff --git a/src/backend.c b/src/backend.c index 0602016dc..3cf8b27b8 100644 --- a/src/backend.c +++ b/src/backend.c @@ -861,9 +861,11 @@ static int alloc_dst_address(struct sockaddr_storage **ss, if (!conn_get_dst(cli_conn)) { /* do nothing if we can't retrieve the address */ } else if (cli_conn->dst->ss_family == AF_INET) { + ((struct sockaddr_in *)*ss)->sin_family = AF_INET; ((struct sockaddr_in *)*ss)->sin_addr = ((struct sockaddr_in *)cli_conn->dst)->sin_addr; } else if (cli_conn->dst->ss_family == AF_INET6) { + ((struct sockaddr_in6 *)*ss)->sin6_family = AF_INET6; ((struct sockaddr_in6 *)*ss)->sin6_addr = ((struct sockaddr_in6 *)cli_conn->dst)->sin6_addr; }