}
if (do_bind) {
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ lbsda->u.sa.sa_len = lbsda->sa_socklen;
+#endif
ret = bind(fd, &lbsda->u.sa, lbsda->sa_socklen);
if (ret == -1) {
int saved_errno = errno;
return -1;
}
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ rbsda->u.sa.sa_len = rbsda->sa_socklen;
+#endif
ret = connect(fd, &rbsda->u.sa, rbsda->sa_socklen);
if (ret == -1) {
int saved_errno = errno;
errno = EINVAL;
return -1;
}
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ lbsda->u.sa.sa_len = lbsda->sa_socklen;
+#endif
ret = tdgram_bsd_dgram_socket(local, remote, false,
mem_ctx, dgram, location);