avformat/tls_{openssl,gnutls,mbedtls}: gate DTLS udp helpers on CONFIG_UDP_PROTOCOL

ff_udp_get_last_recv_addr and ff_udp_set_remote_addr are defined in
udp.c which only compiles under CONFIG_UDP_PROTOCOL. Building with
--disable-everything plus a protocol whitelist that excludes UDP
left these references unresolved at link time, even though TLS
itself uses TCP. Wrap the DTLS UDP-remote-addr blocks accordingly
This commit is contained in:
Vann Harl
2026-05-22 15:09:10 +02:00
committed by Jack Lau
parent 28b92b9b2e
commit fb5dd6ec60
3 changed files with 6 additions and 0 deletions
+2
View File
@@ -438,6 +438,7 @@ static ssize_t gnutls_url_pull(gnutls_transport_ptr_t transport,
URLContext *uc = s->is_dtls ? s->udp : s->tcp;
int ret = ffurl_read(uc, buf, len);
if (ret >= 0) {
#if CONFIG_UDP_PROTOCOL
if (s->is_dtls && s->listen && !c->dest_addr_len) {
int err_ret;
@@ -449,6 +450,7 @@ static ssize_t gnutls_url_pull(gnutls_transport_ptr_t transport,
}
av_log(c, AV_LOG_TRACE, "Set UDP remote addr on UDP socket, now 'connected'\n");
}
#endif
return ret;
}
if (ret == AVERROR_EXIT)
+2
View File
@@ -383,6 +383,7 @@ static int mbedtls_recv(void *ctx, unsigned char *buf, size_t len)
URLContext *h = shr->is_dtls ? shr->udp : shr->tcp;
int ret = ffurl_read(h, buf, len);
if (ret >= 0) {
#if CONFIG_UDP_PROTOCOL
if (shr->is_dtls && shr->listen && !tls_ctx->dest_addr_len) {
int err_ret;
@@ -394,6 +395,7 @@ static int mbedtls_recv(void *ctx, unsigned char *buf, size_t len)
}
av_log(tls_ctx, AV_LOG_TRACE, "Set UDP remote addr on UDP socket, now 'connected'\n");
}
#endif
/* Skip non-DTLS packets such as STUN to avoid failures. */
if (shr->is_dtls && !ff_is_dtls_packet(buf, ret))
return MBEDTLS_ERR_SSL_WANT_READ;
+2
View File
@@ -536,6 +536,7 @@ static int url_bio_bread(BIO *b, char *buf, int len)
TLSShared *s = &c->tls_shared;
int ret = ffurl_read(c->tls_shared.is_dtls ? c->tls_shared.udp : c->tls_shared.tcp, buf, len);
if (ret >= 0) {
#if CONFIG_UDP_PROTOCOL
if (s->is_dtls && s->listen && !c->dest_addr_len) {
int err_ret;
@@ -547,6 +548,7 @@ static int url_bio_bread(BIO *b, char *buf, int len)
}
av_log(c, AV_LOG_TRACE, "Set UDP remote addr on UDP socket, now 'connected'\n");
}
#endif
return ret;
}