From a6a89cd5e025c6a6e12ad6060aae347385869cd3 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Wed, 14 Apr 2021 15:02:11 +0300 Subject: add redial socket --- pkg/server/socket/dial.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'pkg/server/socket/dial.go') diff --git a/pkg/server/socket/dial.go b/pkg/server/socket/dial.go index a31e192..aea74d2 100644 --- a/pkg/server/socket/dial.go +++ b/pkg/server/socket/dial.go @@ -1,6 +1,7 @@ package socket import ( + "context" "fmt" "log" "net" @@ -21,8 +22,17 @@ func (s *dialSocket) String() string { } func (s *dialSocket) New(e env.Env) (Conn, error) { - proto, addr := parseProtoAddr(s.Proto, e.Expand(s.Addr)) - conn, err := net.DialTimeout(proto, addr, defaultTimeout) + return dial(context.TODO(), e, s.Proto, s.Addr) +} + +func dial(ctx context.Context, e env.Env, proto, addr string) (*conn, error) { + ctx, cancel := context.WithTimeout(ctx, defaultTimeout) + defer cancel() + + var d net.Dialer + + proto, addr = parseProtoAddr(proto, e.Expand(addr)) + conn, err := d.DialContext(ctx, proto, addr) if err != nil { return nil, err } -- cgit v1.2.3-70-g09d2