Confirmed users
214
edits
Line 65: | Line 65: | ||
There are two natural designs, discussed below. | There are two natural designs, discussed below. | ||
==== Network Proxies ==== | ==== Network Proxies ==== | ||
Line 100: | Line 99: | ||
* When a content process sends a STUN-formatted packet, it gets transmitted and added to the outstanding STUN transaction table | * When a content process sends a STUN-formatted packet, it gets transmitted and added to the outstanding STUN transaction table | ||
* When packet is received, it is checked against the outstanding STUN transaction table. If a transaction completes, then the address is added to the permissions table. | * When packet is received, it is checked against the outstanding STUN transaction table. If a transaction completes, then the address is added to the permissions table. | ||
This would be relatively easy to implement and would provide a measure of protection | This would be relatively easy to implement and would provide a measure of protection | ||
against misuse of this interface. | against misuse of this interface. It would require some STUN-parsing smarts in the | ||
parent, but those can be kept relatively minimal. | |||
==== ICE In Parent ==== | ==== ICE In Parent ==== | ||
Line 129: | Line 130: | ||
This API has around 20 distinct API calls, each of which will need to be separately | This API has around 20 distinct API calls, each of which will need to be separately | ||
remoted. | remoted. A number of them have fairly complicated semantics, which would tend | ||
to invade the rest of the program. | |||
==== Recommendation ==== | |||
In my opinion we should go for the "Network Proxies" design. It's going to be a lot simpler | |||
to implement than the "ICE in the parent" design and can be largely hidden by an | |||
already replaceable component (nr_socket_prsock.cpp) without impacting the rest | |||
of the code. It also lets us work in parallel because we can do a simple implementation | |||
without the packet filter described above and then add the packet filter transparently | |||
later. |