mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-07-13 03:07:58 +03:00
Add MTProxy, MASQUE, VPN, Link parser. Update AmneziaWG. Remove Tunneling
This commit is contained in:
34
transport/masque/buffer.go
Normal file
34
transport/masque/buffer.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package masque
|
||||
|
||||
import "sync"
|
||||
|
||||
type NetBuffer struct {
|
||||
capacity uint32
|
||||
buf sync.Pool
|
||||
}
|
||||
|
||||
func (n *NetBuffer) Get() []byte {
|
||||
return *(n.buf.Get().(*[]byte))
|
||||
}
|
||||
|
||||
func (n *NetBuffer) Put(buf []byte) {
|
||||
if cap(buf) != int(n.capacity) {
|
||||
return
|
||||
}
|
||||
n.buf.Put(&buf)
|
||||
}
|
||||
|
||||
func NewNetBuffer(capacity uint32) *NetBuffer {
|
||||
if capacity == 0 {
|
||||
panic("capacity must be greater than 0")
|
||||
}
|
||||
return &NetBuffer{
|
||||
capacity: capacity,
|
||||
buf: sync.Pool{
|
||||
New: func() interface{} {
|
||||
b := make([]byte, capacity)
|
||||
return &b
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user