fix: remove cyclic dependent to make tuic's Finalizer work

This commit is contained in:
wwqgtxx
2022-12-02 16:56:17 +08:00
parent bc5ab3120f
commit 0aefa3be85
7 changed files with 209 additions and 159 deletions

View File

@ -56,7 +56,7 @@ type TuicOption struct {
// DialContext implements C.ProxyAdapter
func (t *Tuic) DialContext(ctx context.Context, metadata *C.Metadata, opts ...dialer.Option) (C.Conn, error) {
opts = t.Base.DialOptions(opts...)
conn, err := t.client.DialContext(ctx, metadata, opts...)
conn, err := t.client.DialContext(ctx, metadata, t.dial, opts...)
if err != nil {
return nil, err
}
@ -66,7 +66,7 @@ func (t *Tuic) DialContext(ctx context.Context, metadata *C.Metadata, opts ...di
// ListenPacketContext implements C.ProxyAdapter
func (t *Tuic) ListenPacketContext(ctx context.Context, metadata *C.Metadata, opts ...dialer.Option) (_ C.PacketConn, err error) {
opts = t.Base.DialOptions(opts...)
pc, err := t.client.ListenPacketContext(ctx, metadata, opts...)
pc, err := t.client.ListenPacketContext(ctx, metadata, t.dial, opts...)
if err != nil {
return nil, err
}
@ -205,7 +205,6 @@ func NewTuic(option TuicOption) (*Tuic, error) {
clientMaxOpenStreams = 1
}
clientOption := &tuic.ClientOption{
DialFn: t.dial,
TlsConfig: tlsConfig,
QuicConfig: quicConfig,
Host: host,
@ -219,7 +218,7 @@ func NewTuic(option TuicOption) (*Tuic, error) {
MaxOpenStreams: clientMaxOpenStreams,
}
t.client = tuic.NewClientPool(clientOption)
t.client = tuic.NewPoolClient(clientOption)
return t, nil
}