mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-20 02:00:05 -08:00
webrtc: solve domains in webrtcAdditionalHosts on server-side (#4817) (#4866)
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
Some checks are pending
code_lint / golangci_lint (push) Waiting to run
code_lint / mod_tidy (push) Waiting to run
code_lint / api_docs (push) Waiting to run
code_test / test_64 (push) Waiting to run
code_test / test_32 (push) Waiting to run
code_test / test_e2e (push) Waiting to run
This commit is contained in:
parent
b627128d0f
commit
c80220eb7c
1 changed files with 52 additions and 35 deletions
|
|
@ -491,6 +491,22 @@ func (co *PeerConnection) addAdditionalCandidates(firstMedia *sdp.MediaDescripti
|
|||
}
|
||||
|
||||
for _, host := range co.AdditionalHosts {
|
||||
var ips []string
|
||||
if net.ParseIP(host) != nil {
|
||||
ips = []string{host}
|
||||
} else {
|
||||
tmp, err := net.LookupIP(host)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ips = make([]string, len(tmp))
|
||||
for i, e := range tmp {
|
||||
ips[i] = e.String()
|
||||
}
|
||||
}
|
||||
|
||||
for _, ip := range ips {
|
||||
newAttrs := append([]sdp.Attribute(nil), firstMedia.Attributes[:i]...)
|
||||
|
||||
if co.ICEUDPMux != nil {
|
||||
|
|
@ -504,11 +520,11 @@ func (co *PeerConnection) addAdditionalCandidates(firstMedia *sdp.MediaDescripti
|
|||
|
||||
newAttrs = append(newAttrs, sdp.Attribute{
|
||||
Key: "candidate",
|
||||
Value: id + " 1 udp 2130706431 " + host + " " + port + " typ host",
|
||||
Value: id + " 1 udp 2130706431 " + ip + " " + port + " typ host",
|
||||
})
|
||||
newAttrs = append(newAttrs, sdp.Attribute{
|
||||
Key: "candidate",
|
||||
Value: id + " 2 udp 2130706431 " + host + " " + port + " typ host",
|
||||
Value: id + " 2 udp 2130706431 " + ip + " " + port + " typ host",
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -523,17 +539,18 @@ func (co *PeerConnection) addAdditionalCandidates(firstMedia *sdp.MediaDescripti
|
|||
|
||||
newAttrs = append(newAttrs, sdp.Attribute{
|
||||
Key: "candidate",
|
||||
Value: id + " 1 tcp 1671430143 " + host + " " + port + " typ host tcptype passive",
|
||||
Value: id + " 1 tcp 1671430143 " + ip + " " + port + " typ host tcptype passive",
|
||||
})
|
||||
newAttrs = append(newAttrs, sdp.Attribute{
|
||||
Key: "candidate",
|
||||
Value: id + " 2 tcp 1671430143 " + host + " " + port + " typ host tcptype passive",
|
||||
Value: id + " 2 tcp 1671430143 " + ip + " " + port + " typ host tcptype passive",
|
||||
})
|
||||
}
|
||||
|
||||
newAttrs = append(newAttrs, firstMedia.Attributes[i:]...)
|
||||
firstMedia.Attributes = newAttrs
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue