net->proxy.src = proxy_src;
net->proxy.dst = proxy_dst;
+ if ((bool)(proxy_src == NULL) != (bool)(proxy_dst == NULL) ||
+ (proxy_src != NULL && proxy_src->sa_family != proxy_dst->sa_family)) {
+ net_clean(net);
+ return KNOT_EINVAL;
+ }
+
// Prepare for TLS.
if (tls_params != NULL && tls_params->enable) {
int ret = 0;
.msg_iovlen = 1
};
- if (net->proxy.src->sa_family && net->proxy.dst->sa_family) {
+ if (net->proxy.src != NULL && net->proxy.src->sa_family != 0) {
int ret = proxyv2_write_header(proxy_buf, sizeof(proxy_buf),
SOCK_DGRAM, net->proxy.src,
net->proxy.dst);
.msg_iovlen = 2
};
- if (net->proxy.src->sa_family && net->proxy.dst->sa_family) {
+ if (net->proxy.src != NULL && net->proxy.src->sa_family != 0) {
int ret = proxyv2_write_header(proxy_buf, sizeof(proxy_buf),
SOCK_STREAM, net->proxy.src,
net->proxy.dst);