Files
Archive/clash-rev/component/nat/proxy.go
2024-03-05 02:32:38 -08:00

27 lines
513 B
Go

package nat
import (
"net"
"github.com/MerlinKodo/clash-rev/common/atomic"
C "github.com/MerlinKodo/clash-rev/constant"
)
type writeBackProxy struct {
wb atomic.TypedValue[C.WriteBack]
}
func (w *writeBackProxy) WriteBack(b []byte, addr net.Addr) (n int, err error) {
return w.wb.Load().WriteBack(b, addr)
}
func (w *writeBackProxy) UpdateWriteBack(wb C.WriteBack) {
w.wb.Store(wb)
}
func NewWriteBackProxy(wb C.WriteBack) C.WriteBackProxy {
w := &writeBackProxy{}
w.UpdateWriteBack(wb)
return w
}