Add Relay Info Forwarding for Snowflake

This commit is contained in:
Shelikhoo 2022-04-11 14:24:49 +01:00
parent d5a87c3c02
commit 5d7a3766d6
No known key found for this signature in database
GPG key ID: C4D5E79D22B25316
2 changed files with 26 additions and 1 deletions

View file

@ -102,7 +102,13 @@ func (i *IPC) ProxyPolls(arg messages.Arg, response *[]byte) error {
}
i.ctx.metrics.promMetrics.ProxyPollTotal.With(prometheus.Labels{"nat": natType, "status": "matched"}).Inc()
b, err = messages.EncodePollResponse(string(offer.sdp), true, offer.natType)
var relayURL string
if info, err := i.ctx.bridgeList.GetBridgeInfo(offer.fingerprint); err != nil {
return err
} else {
relayURL = info.WebSocketAddress
}
b, err = messages.EncodePollResponseWithRelayURL(string(offer.sdp), true, offer.natType, relayURL)
if err != nil {
return messages.ErrInternal
}
@ -141,6 +147,10 @@ func (i *IPC) ClientOffers(arg messages.Arg, response *[]byte) error {
}
copy(offer.fingerprint[:], fingerprint)
if _, err := i.ctx.GetBridgeInfo(offer.fingerprint); err != nil {
return err
}
// Only hand out known restricted snowflakes to unrestricted clients
var snowflakeHeap *SnowflakeHeap
if offer.natType == NATUnrestricted {