add service option for plugin

This commit is contained in:
ginuerzh
2025-08-29 23:34:23 +08:00
parent a12ed27dfa
commit c7d16962ec
71 changed files with 227 additions and 88 deletions
+8 -2
View File
@@ -14,6 +14,7 @@ const (
)
type Relay struct {
service string
pc1 net.PacketConn
pc2 net.PacketConn
bufferSize int
@@ -28,6 +29,11 @@ func NewRelay(pc1, pc2 net.PacketConn) *Relay {
}
}
func (r *Relay) WithService(service string) *Relay {
r.service = service
return r
}
func (r *Relay) WithBypass(bp bypass.Bypass) *Relay {
r.bypass = bp
return r
@@ -62,7 +68,7 @@ func (r *Relay) Run(ctx context.Context) (err error) {
return err
}
if r.bypass != nil && r.bypass.Contains(ctx, "udp", raddr.String()) {
if r.bypass != nil && r.bypass.Contains(ctx, "udp", raddr.String(), bypass.WithService(r.service)) {
if r.logger != nil {
r.logger.Warn("bypass: ", raddr)
}
@@ -99,7 +105,7 @@ func (r *Relay) Run(ctx context.Context) (err error) {
return err
}
if r.bypass != nil && r.bypass.Contains(ctx, "udp", raddr.String()) {
if r.bypass != nil && r.bypass.Contains(ctx, "udp", raddr.String(), bypass.WithService(r.service)) {
if r.logger != nil {
r.logger.Warn("bypass: ", raddr)
}