Adds network filter for webrtc
This commit is contained in:
+15
-15
@@ -1,6 +1,7 @@
|
|||||||
package webrtc
|
package webrtc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/pion/ice/v2"
|
||||||
"github.com/pion/interceptor"
|
"github.com/pion/interceptor"
|
||||||
"github.com/pion/webrtc/v3"
|
"github.com/pion/webrtc/v3"
|
||||||
"net"
|
"net"
|
||||||
@@ -21,24 +22,21 @@ func NewAPI(address string) (*webrtc.API, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if address == "" {
|
|
||||||
return webrtc.NewAPI(
|
|
||||||
webrtc.WithMediaEngine(m),
|
|
||||||
webrtc.WithInterceptorRegistry(i),
|
|
||||||
), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
ln, err := net.Listen("tcp", address)
|
|
||||||
if err != nil {
|
|
||||||
return webrtc.NewAPI(
|
|
||||||
webrtc.WithMediaEngine(m),
|
|
||||||
webrtc.WithInterceptorRegistry(i),
|
|
||||||
), err
|
|
||||||
}
|
|
||||||
|
|
||||||
s := webrtc.SettingEngine{
|
s := webrtc.SettingEngine{
|
||||||
//LoggerFactory: customLoggerFactory{},
|
//LoggerFactory: customLoggerFactory{},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// disable listen on Hassio docker interfaces
|
||||||
|
s.SetInterfaceFilter(func(name string) bool {
|
||||||
|
return name != "hassio" && name != "docker0"
|
||||||
|
})
|
||||||
|
|
||||||
|
// disable mDNS listener
|
||||||
|
s.SetICEMulticastDNSMode(ice.MulticastDNSModeDisabled)
|
||||||
|
|
||||||
|
if address != "" {
|
||||||
|
ln, err := net.Listen("tcp", address)
|
||||||
|
if err == nil {
|
||||||
s.SetNetworkTypes([]webrtc.NetworkType{
|
s.SetNetworkTypes([]webrtc.NetworkType{
|
||||||
webrtc.NetworkTypeUDP4, webrtc.NetworkTypeUDP6,
|
webrtc.NetworkTypeUDP4, webrtc.NetworkTypeUDP6,
|
||||||
webrtc.NetworkTypeTCP4, webrtc.NetworkTypeTCP6,
|
webrtc.NetworkTypeTCP4, webrtc.NetworkTypeTCP6,
|
||||||
@@ -46,6 +44,8 @@ func NewAPI(address string) (*webrtc.API, error) {
|
|||||||
|
|
||||||
tcpMux := webrtc.NewICETCPMux(nil, ln, 8)
|
tcpMux := webrtc.NewICETCPMux(nil, ln, 8)
|
||||||
s.SetICETCPMux(tcpMux)
|
s.SetICETCPMux(tcpMux)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return webrtc.NewAPI(
|
return webrtc.NewAPI(
|
||||||
webrtc.WithMediaEngine(m),
|
webrtc.WithMediaEngine(m),
|
||||||
|
|||||||
Reference in New Issue
Block a user