stun.go 488 B

12345678910111213141516171819202122
  1. package server
  2. import (
  3. "github.com/pion/stun"
  4. "github.com/pion/turn/v2/internal/ipnet"
  5. )
  6. func handleBindingRequest(r Request, m *stun.Message) error {
  7. r.Log.Debugf("received BindingRequest from %s", r.SrcAddr.String())
  8. ip, port, err := ipnet.AddrIPPort(r.SrcAddr)
  9. if err != nil {
  10. return err
  11. }
  12. attrs := buildMsg(m.TransactionID, stun.BindingSuccess, &stun.XORMappedAddress{
  13. IP: ip,
  14. Port: port,
  15. }, stun.Fingerprint)
  16. return buildAndSend(r.Conn, r.SrcAddr, attrs...)
  17. }