-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1.x] can't create socket for streaming endpoint if ipv6 is disabled on host #3470
Comments
Hello. We encountered a similar problem with Janus in a docker container started on a host where IPv6 is disabled and with an RTSP stream. The container is based on a debian:12-slim image. We patched by adding the line It's dirty, but it allowed us to run the stream for test purposes while waiting for a fix or before switching to an alternative solution such as MediaMTX. |
The Streaming plugin probably just needs the
There may be a reason why we didn't add it to the Streaming plugin too, back then, but on the top of my head I can't remember if that was the case. |
Checking the code, even in the VideoRoom where we have the IPv6 check, we actually only use it for forwarders but not for the RTCP socket, which is a socket that expects stuff on the way in, just as the Streaming plugin does in general for media too. I'll have to check my old notes to see if there was a reason why we didn't extend that to sockets for incoming data as well, rather than just sockets for sending data. |
@spscream @nekogasuki91 I made a first small fix, as I noticed a potential inconsistency in our IP utilities. Specifically, I noticed that if you passed "0.0.0.0" or "::", our interface lookup queries would fail, which I think was incorrect. Considering that we already have guidance for the REST and WebSocket transports to use "0.0.0.0" for binding when you don't have IPv6 at all, I thought we could do the same in the Streaming plugin, which is what this fix should enable. Please do test and let me know if it helps. I don't see this as a definitive fix, considering that I still think the Streaming plugin should check if IPv6 is supported at all, for instance, and that this fix wouldn't help for VideoRoom RTCP support (where we don't have a way to specify an interface, IIRC?) , but at least it should be a good starting point, and something that was needed nevertheless for consistency. |
@lminiero we will test it after NY, we are going to vacation till 8th of January |
btw one our clients has faced problem today with ipv6 disabled and add_remote_publisher:
I made them version with this commit and it doesn't help them. |
What version of Janus is this happening on?
master
Have you tested a more recent version of Janus too?
no
Was this working before?
I don't have information
Is there a gdb or libasan trace of the issue?
no
Additional context
We have server with disabled ipv6 and if we create stream with following parameters:
we got an error:
if I specify
iface
parameter forcreate
all is working good. I think its due this ternary here(https://github.com/meetecho/janus-gateway/blob/master/src/plugins/janus_streaming.c#L7289):In case iface isn't set when family is 0, but AF_INET is 2.
The text was updated successfully, but these errors were encountered: