diff --git a/CHANGES b/CHANGES index 6c005c4..ee0315b 100644 --- a/CHANGES +++ b/CHANGES @@ -29,6 +29,10 @@ Corrections: or to undefined behaviour before terminating Socat with addresses EXEC, SYSTEM, or SHELL. + Option ip-add-source-membership did not work. + Thanks to Duncan Sands and others for reporting this issue and sending + the fix. + Building: Disabling certain features during configure could break build process. diff --git a/xio-ip.c b/xio-ip.c index 3a136d0..455ac47 100644 --- a/xio-ip.c +++ b/xio-ip.c @@ -1355,7 +1355,7 @@ int xioapply_ip_add_source_membership(struct single *sfd, struct opt *opt) { } ip4_mreq_src.imr_multiaddr = sockaddr1.ip4.sin_addr; /* second parameter is interface address */ - rc = xioresolve(opt->value.u_string/*ifaddr*/, NULL, + rc = xioresolve(opt->value2.u_string/*ifaddr*/, NULL, sfd->para.socket.la.soa.sa_family, SOCK_DGRAM, IPPROTO_IP, &sockaddr2, &socklen2, sfd->para.socket.ip.ai_flags); @@ -1364,7 +1364,7 @@ int xioapply_ip_add_source_membership(struct single *sfd, struct opt *opt) { } ip4_mreq_src.imr_interface = sockaddr2.ip4.sin_addr; /* third parameter is source address */ - rc = xioresolve(opt->value.u_string/*srcaddr*/, NULL, + rc = xioresolve(opt->value3.u_string/*srcaddr*/, NULL, sfd->para.socket.la.soa.sa_family, SOCK_DGRAM, IPPROTO_IP, &sockaddr3, &socklen3, sfd->para.socket.ip.ai_flags);