From 9dc8a7c391b3e41156e89d6185bf51669dfe47f5 Mon Sep 17 00:00:00 2001 From: Page Fault Date: Tue, 14 Jul 2020 15:36:11 +0000 Subject: [PATCH] fix api fd leak --- api/service/client.go | 3 ++- api/service/server.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/api/service/client.go b/api/service/client.go index 07a08c0..7de0607 100644 --- a/api/service/client.go +++ b/api/service/client.go @@ -60,6 +60,7 @@ func RunClientAPI(ctx context.Context, auth statistic.Authenticator) error { if err != nil { return err } + defer server.Stop() service := &ClientAPI{ ctx: ctx, auth: auth, @@ -77,6 +78,7 @@ func RunClientAPI(ctx context.Context, auth statistic.Authenticator) error { if err != nil { return common.NewError("client api failed to listen").Base(err) } + defer listener.Close() log.Info("client-side api service is listening on", listener.Addr().String()) errChan := make(chan error, 1) go func() { @@ -86,7 +88,6 @@ func RunClientAPI(ctx context.Context, auth statistic.Authenticator) error { case err := <-errChan: return err case <-ctx.Done(): - server.Stop() return nil } } diff --git a/api/service/server.go b/api/service/server.go index 41c6396..8f51c7a 100644 --- a/api/service/server.go +++ b/api/service/server.go @@ -226,6 +226,7 @@ func RunServerAPI(ctx context.Context, auth statistic.Authenticator) error { if err != nil { return err } + defer server.Stop() RegisterTrojanServerServiceServer(server, service) addr, err := net.ResolveIPAddr("ip", cfg.API.APIHost) if err != nil { @@ -239,6 +240,7 @@ func RunServerAPI(ctx context.Context, auth statistic.Authenticator) error { if err != nil { return common.NewError("server api failed to listen").Base(err) } + defer listener.Close() log.Info("server-side api service is listening on", listener.Addr().String()) errChan := make(chan error, 1) go func() { @@ -248,7 +250,6 @@ func RunServerAPI(ctx context.Context, auth statistic.Authenticator) error { case err := <-errChan: return err case <-ctx.Done(): - server.Stop() return nil } }