Comments (3)
Just curious, is there a reason why you used gethostbyname
instead of getaddrinfo
? There's an async version of getaddrinfo available as AbstractEventLoop.getaddrinfo(host, port, *, family=0, type=0, proto=0, flags=0)
.
from aioice.
I'm using gethostbyname
as we absolutely want only IPv4 addresses, does that make sense?
from aioice.
Um, not really?
My best guess: If a STUN server is dual-stack, a naive address resolution method may use only one IPv6 address, while a STUN server is much more useful for discovering IPv4 candidates because IPv4 is much more likely to be behind NAT.
If that's the case, then the best course of action is probably: If the host name resolves to both IPv4 and IPv6 addresses, take one of each and use them as two separate STUN servers.
And now I wonder whether any of the RFCs mention host name resolution for dual-stack STUN servers.
Anyways, getaddrinfo(..., family=socket.AF_INET)
should also restrict resolution results to IPv4 addresses.
(I was a bit startled to see run_in_executor
, but it turns out loop.getaddrinfo()
is also implemented by running the synchronous socket.getaddrinfo()
in an executor, so not much of an improvement there.)
from aioice.
Related Issues (20)
- an uncaught TransactionFailed stalls RTCPeerConnection.close() HOT 2
- Failure to parse ip address in offer returned from Chrome HOT 1
- Add support for mDNS candidates HOT 22
- Does aioice support ice-lite? HOT 5
- Fallback to STUN Server if TURN connection failes HOT 2
- aioice using sip HOT 2
- Stale Nonce HOT 2
- Channel Binding HOT 1
- components more then 1 produce incorrect stun srflx HOT 2
- check_periodic should waiting while as less one pair in progress HOT 3
- Meaning of `STUN transaction failed (400 - You cannot use the same channel number with different peer)` HOT 4
- Add a way of limiting the range of the ephemeral ports that are bound to by gather_candidates HOT 7
- Get nominated candidate pair and use in another application HOT 4
- RFC 8445 HOT 1
- Issue with STUN for consent refresh (RFC7675) HOT 4
- Multiple early checks from same source results in unhandled tasks HOT 4
- netifaces is unmaintained HOT 2
- tests.test_stun.MessageTest fails with python 3.11 HOT 2
- Short mdns resolve timeout causing WebRTC connection failure on local network
- TURN server timeout raises an exception
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aioice.