You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When starting an MsQuic server, the call to ListenerStart takes a QUIC_ADDR structure as a parameter to indicate the desired local address. Unfortunately, under the hood MsQuic seems to listen on the desired port on ALL IPv4 AND IPv6 addresses? (This seems to be by design, and enables MsQuic to multiplex between different servers with different ALPN’s listening on the same port). See: #2704 (comment)
On our product we run Windows 10 and put multiple IP addresses on the same adapter. We are in a situation where our already existing software spins up several independent processes, which all create TCP servers listening on the same port number, but on different IP addresses. We wanted to exchange these TCP servers with QUIC servers, but are unable to do so, since only 1 process will be able to bind on the specified port. All other processes fail the call to ListenerStart with QUIC_STATUS_ADDRESS_IN_USE (0x80072740), even though they specify different IP addresses in the LocalAddress paramter.
I am curious why the ListenerStart function takes a LocalAddress parameter (IP & port), if the IP is ignored in the implementation? Am I missing something here, and is there a way for us to achieve our desired behavior?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
When starting an MsQuic server, the call to ListenerStart takes a QUIC_ADDR structure as a parameter to indicate the desired local address. Unfortunately, under the hood MsQuic seems to listen on the desired port on ALL IPv4 AND IPv6 addresses? (This seems to be by design, and enables MsQuic to multiplex between different servers with different ALPN’s listening on the same port). See: #2704 (comment)
On our product we run Windows 10 and put multiple IP addresses on the same adapter. We are in a situation where our already existing software spins up several independent processes, which all create TCP servers listening on the same port number, but on different IP addresses. We wanted to exchange these TCP servers with QUIC servers, but are unable to do so, since only 1 process will be able to bind on the specified port. All other processes fail the call to ListenerStart with QUIC_STATUS_ADDRESS_IN_USE (0x80072740), even though they specify different IP addresses in the LocalAddress paramter.
I am curious why the ListenerStart function takes a LocalAddress parameter (IP & port), if the IP is ignored in the implementation? Am I missing something here, and is there a way for us to achieve our desired behavior?
Beta Was this translation helpful? Give feedback.
All reactions