From d1adefc9f99fa47c4837baf9252a6d21cf273c2c Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 8 Oct 2023 11:15:07 +0200 Subject: feat(third_party/overlays): support unix domain sockets in evans This applies a patch adding support for unix domain sockets to evans, which was also sent upstream at https://github.com/ktr0731/evans/pull/680. Change-Id: I6e483ace45428a7526a200f885aa92c2de88b650 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9563 Tested-by: BuildkiteCI Reviewed-by: tazjin Autosubmit: flokli --- ...evans-add-support-for-unix-domain-sockets.patch | 39 ++++++++++++++++++++++ third_party/overlays/tvl.nix | 8 +++++ 2 files changed, 47 insertions(+) create mode 100644 third_party/overlays/patches/evans-add-support-for-unix-domain-sockets.patch (limited to 'third_party') diff --git a/third_party/overlays/patches/evans-add-support-for-unix-domain-sockets.patch b/third_party/overlays/patches/evans-add-support-for-unix-domain-sockets.patch new file mode 100644 index 0000000000..c66528f538 --- /dev/null +++ b/third_party/overlays/patches/evans-add-support-for-unix-domain-sockets.patch @@ -0,0 +1,39 @@ +From 55d7e7af7c56f678eb817059417241bb61ee5181 Mon Sep 17 00:00:00 2001 +From: Florian Klink +Date: Sun, 8 Oct 2023 11:00:27 +0200 +Subject: [PATCH] add support for unix domain sockets + +grpc.NewClient already supports connecting to unix domain sockets, and +accepts a string anyways. + +As a quick fix, detect the `address` starting with `unix://` and don't +add the port. + +In the long term, we might want to deprecate `host` and `port` cmdline +args in favor of a single `address` arg. +--- + mode/common.go | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/mode/common.go b/mode/common.go +index dfc7839..55f1e36 100644 +--- a/mode/common.go ++++ b/mode/common.go +@@ -13,7 +13,13 @@ import ( + ) + + func newGRPCClient(cfg *config.Config) (grpc.Client, error) { +- addr := fmt.Sprintf("%s:%s", cfg.Server.Host, cfg.Server.Port) ++ addr := cfg.Server.Host ++ ++ // as long as the address doesn't start with unix, also add the port. ++ if !strings.HasPrefix(cfg.Server.Host, "unix://") { ++ addr = fmt.Sprintf("%s:%s", cfg.Server.Host, cfg.Server.Port) ++ } ++ + if cfg.Request.Web { + //TODO: remove second arg + return grpc.NewWebClient(addr, cfg.Server.Reflection, false, "", "", "", grpc.Headers(cfg.Request.Header)), nil +-- +2.42.0 + diff --git a/third_party/overlays/tvl.nix b/third_party/overlays/tvl.nix index ec7506ee41..c88bd4d741 100644 --- a/third_party/overlays/tvl.nix +++ b/third_party/overlays/tvl.nix @@ -125,4 +125,12 @@ depot.nix.readTree.drvTargets { outputHash = "sha256-elEIWHxyY3iccprIcbQA6GWFiq/n5kozpGfw/OmoSIg="; }); }); + + evans = super.evans.overrideAttrs (old: { + patches = old.patches or [ ] ++ [ + # add support for unix domain sockets + # https://github.com/ktr0731/evans/pull/680 + ./patches/evans-add-support-for-unix-domain-sockets.patch + ]; + }); } -- cgit 1.4.1