直播:后台 JWT 推流、前台画中画;WebRTC 服务与 Nginx WebSocket 代理
Made-with: Cursor
This commit is contained in:
54
server/vendor/github.com/pion/stun/stun.go
generated
vendored
Normal file
54
server/vendor/github.com/pion/stun/stun.go
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Package stun implements Session Traversal Utilities for NAT (STUN) RFC 5389.
|
||||
//
|
||||
// The stun package is intended to use by package that implements extension
|
||||
// to STUN (e.g. TURN) or client/server applications.
|
||||
//
|
||||
// Most methods are designed to be zero allocations. If it is not enough,
|
||||
// low-level methods are available. On other hand, there are helpers that
|
||||
// reduce code repeat.
|
||||
//
|
||||
// See examples for Message for basic usage, or https://github.com/pion/turn
|
||||
// package for example of stun extension implementation.
|
||||
package stun
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"io"
|
||||
)
|
||||
|
||||
// bin is shorthand to binary.BigEndian.
|
||||
var bin = binary.BigEndian //nolint:gochecknoglobals
|
||||
|
||||
func readFullOrPanic(r io.Reader, v []byte) int {
|
||||
n, err := io.ReadFull(r, v)
|
||||
if err != nil {
|
||||
panic(err) //nolint
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func writeOrPanic(w io.Writer, v []byte) int {
|
||||
n, err := w.Write(v)
|
||||
if err != nil {
|
||||
panic(err) //nolint
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
// IANA assigned ports for "stun" protocol.
|
||||
const (
|
||||
DefaultPort = 3478
|
||||
DefaultTLSPort = 5349
|
||||
)
|
||||
|
||||
type transactionIDSetter struct{}
|
||||
|
||||
func (transactionIDSetter) AddTo(m *Message) error {
|
||||
return m.NewTransactionID()
|
||||
}
|
||||
|
||||
// TransactionID is Setter for m.TransactionID.
|
||||
var TransactionID Setter = transactionIDSetter{} //nolint:gochecknoglobals
|
||||
Reference in New Issue
Block a user