goto out;
}
- /* handle nicely the case where "udp@" is forced */
- if (sk->ss_family == AF_CUST_UDP4)
- sk->ss_family = AF_INET;
- else if (sk->ss_family == AF_CUST_UDP6)
- sk->ss_family = AF_INET6;
-
proto = protocol_by_family(sk->ss_family);
if (!proto) {
ha_alert("parsing [%s:%d] : '%s %s' : connect() not supported for this address family.\n",
logsrv->type = LOG_TARGET_FD;
logsrv->addr = *sk;
- /* handle nicely the case where "udp@" is forced */
- if (sk->ss_family == AF_CUST_UDP4)
- sk->ss_family = AF_INET;
- else if (sk->ss_family == AF_CUST_UDP6)
- sk->ss_family = AF_INET6;
-
if (sk->ss_family == AF_INET || sk->ss_family == AF_INET6) {
logsrv->addr = *sk;
if (!port1)
}
}
set_host_port(&ss, porta);
- if (is_udp) {
+ if (is_udp && opts & PA_O_SOCKET_FD) {
+ /* FIXME: for now UDP is still its own family. However some UDP clients
+ * (logs, dns) use AF_INET and are not aware of AF_CUST_UDP*. Since we
+ * only want this mapping for listeners and they are the only ones
+ * setting PA_O_SOCKET_FD, for now we condition this mapping to this.
+ */
if (ss.ss_family == AF_INET6)
ss.ss_family = AF_CUST_UDP6;
else
ss.ss_family = AF_CUST_UDP4;
}
-
}
if (ctrl_type == SOCK_STREAM && !(opts & PA_O_STREAM)) {