Skip to content

Commit

Permalink
feat/refactor: refactor outbound and support v2ray-plugin (daeunivers…
Browse files Browse the repository at this point in the history
  • Loading branch information
mzz2017 committed Jan 1, 2024
1 parent aedbd0a commit fa69b4c
Show file tree
Hide file tree
Showing 33 changed files with 124 additions and 2,582 deletions.
41 changes: 5 additions & 36 deletions component/outbound/dialer/block.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,45 +6,14 @@
package dialer

import (
"fmt"
"net"

D "github.com/daeuniverse/outbound/dialer"
"github.com/daeuniverse/softwind/netproxy"
)

type blockDialer struct {
DialCallback func()
}

func (d *blockDialer) Dial(network, addr string) (c netproxy.Conn, err error) {
magicNetwork, err := netproxy.ParseMagicNetwork(network)
if err != nil {
return nil, err
}
switch magicNetwork.Network {
case "tcp":
return d.DialTcp(addr)
case "udp":
return d.DialUdp(addr)
default:
return nil, fmt.Errorf("%w: %v", netproxy.UnsupportedTunnelTypeError, network)
}
}

func (d *blockDialer) DialTcp(addr string) (c netproxy.Conn, err error) {
d.DialCallback()
return nil, net.ErrClosed
}
func (d *blockDialer) DialUdp(addr string) (c netproxy.PacketConn, err error) {
d.DialCallback()
return nil, net.ErrClosed
}

func NewBlockDialer(option *GlobalOption, dialCallback func()) (netproxy.Dialer, *Property) {
return &blockDialer{DialCallback: dialCallback}, &Property{
Name: "block",
Address: "",
Protocol: "",
Link: "",
d, _p := D.NewBlockDialer(&option.ExtraOption, dialCallback)
return d, &Property{
Property: *_p,
SubscriptionTag: "",
}
}
10 changes: 3 additions & 7 deletions component/outbound/dialer/dialer.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"sync"
"time"

D "github.com/daeuniverse/outbound/dialer"
"github.com/daeuniverse/softwind/netproxy"
"github.com/sirupsen/logrus"
)
Expand All @@ -32,26 +33,21 @@ type Dialer struct {
}

type GlobalOption struct {
D.ExtraOption
Log *logrus.Logger
TcpCheckOptionRaw TcpCheckOptionRaw // Lazy parse
CheckDnsOptionRaw CheckDnsOptionRaw // Lazy parse
CheckInterval time.Duration
CheckTolerance time.Duration
CheckDnsTcp bool
AllowInsecure bool
TlsImplementation string
UtlsImitate string
}

type InstanceOption struct {
CheckEnabled bool
}

type Property struct {
Name string
Address string
Protocol string
Link string
D.Property
SubscriptionTag string
}

Expand Down
16 changes: 5 additions & 11 deletions component/outbound/dialer/direct.go
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
package dialer

import (
D "github.com/daeuniverse/outbound/dialer"
"github.com/daeuniverse/softwind/netproxy"
softwindDirect "github.com/daeuniverse/softwind/protocol/direct"
)

func NewDirectDialer(option *GlobalOption, fullcone bool) (netproxy.Dialer, *Property) {
property := &Property{
Name: "direct",
Address: "",
Protocol: "",
Link: "",
}
if fullcone {
return softwindDirect.FullconeDirect, property
} else {
return softwindDirect.SymmetricDirect, property
d, _p := D.NewDirectDialer(&option.ExtraOption, fullcone)
return d, &Property{
Property: *_p,
SubscriptionTag: "",
}
}
115 changes: 0 additions & 115 deletions component/outbound/dialer/http/http.go

This file was deleted.

153 changes: 0 additions & 153 deletions component/outbound/dialer/juicity/juicity.go

This file was deleted.

Loading

0 comments on commit fa69b4c

Please sign in to comment.