1
0
Fork 0
mirror of https://repo.or.cz/socat.git synced 2025-06-08 02:46:51 +00:00

Fixed UDP6-RECVFROM with range

This commit is contained in:
Gerhard 2025-02-10 21:06:22 +01:00
parent 264b21c1a9
commit 08d01c19ff
4 changed files with 9 additions and 5 deletions

View file

@ -81,6 +81,9 @@ Corrections:
On failure of getpwuid() (used in options su and su-d) now consider
errno.
When IP4 was completed deconfigured, UDP6-RECVFROM with range option
failed.
Features:
POSIXMQ-RECV now takes option o-nonblock; this, in combination with -T,
makes it possible to terminate Socat in case the queue is empty.

View file

@ -20070,7 +20070,7 @@ done <<<"
TCP tcp CONNECT PORT - TCP-L - PIPE 1
SCTP sctp CONNECT PORT - SCTP-L - PIPE 1
DCCP dccp CONNECT PORT - DCCP-L - PIPE 1
OPENSSL tcp CONNECT PORT cafile=testsrv.pem,verify=0 SSL-L cert=testsrv.pem,key=testsrv.key,verify=0 PIPE 6
OPENSSL tcp CONNECT PORT cafile=testsrv.pem,verify=0 SSL-L cert=testsrv.pem,key=testsrv.key,verify=0 PIPE 7
SOCKS4 tcp - 32.98.76.54:32109 socksport=\$PORT,socksuser=nobody TCP-L - EXEC:./socks4echo.sh 6
SOCKS5 tcp CONNECT \$PORT:127.0.0.1:80 - TCP-L - EXEC:./socks5server-echo.sh 5
PROXY tcp CONNECT 127.0.0.1:80 proxyport=\$PORT,crlf TCP-L crlf EXEC:./proxyecho.sh 4

View file

@ -326,6 +326,7 @@ int _xioopen_ipapp_prepare(
return STAT_OK;
}
#endif /* _WITH_IP4 || _WITH_IP6 */

View file

@ -1230,7 +1230,7 @@ int _xioopen_dgram_recvfrom(struct single *sfd, int xioflags,
}
#endif
#if WITH_IP4
#if WITH_IP4 || WITH_IP6
/* for generic sockets, this has already been retrieved */
if (retropt_string(opts, OPT_RANGE, &rangename) >= 0) {
if (xioparserange(rangename, pf, &sfd->para.socket.range,
@ -1242,7 +1242,7 @@ int _xioopen_dgram_recvfrom(struct single *sfd, int xioflags,
free(rangename);
sfd->para.socket.dorange = true;
}
#endif /* WITH_IP4 */
#endif /* WITH_IP4 || WITH_IP6 */
#if (WITH_TCP || WITH_UDP) && WITH_LIBWRAP
xio_retropt_tcpwrap(sfd, opts);
@ -1454,7 +1454,7 @@ int _xioopen_dgram_recv(struct single *sfd, int xioflags,
}
#endif
#if WITH_IP4
#if WITH_IP4 || WITH_IP6
if (retropt_string(opts, OPT_RANGE, &rangename) >= 0) {
if (xioparserange(rangename, pf, &sfd->para.socket.range,
sfd->para.socket.ip.ai_flags)
@ -1465,7 +1465,7 @@ int _xioopen_dgram_recv(struct single *sfd, int xioflags,
free(rangename);
sfd->para.socket.dorange = true;
}
#endif /* WITH_IP4 */
#endif /* WITH_IP4 || WITH_IP6 */
#if (WITH_TCP || WITH_UDP) && WITH_LIBWRAP
xio_retropt_tcpwrap(sfd, opts);