From 47df1174faee6b9a6c6536c439c615154dc21e10 Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Wed, 13 Dec 2023 11:22:20 -0500 Subject: [PATCH] updated golang-sdk to v0.21.2; adjust ziti.ListenOptions to include WaitForNEstablishedListeners (#490) --- CHANGELOG.md | 4 ++++ cmd/zrok/testLoopPublic.go | 9 +++++---- endpoints/drive/backend.go | 5 +++-- endpoints/proxy/backend.go | 5 +++-- endpoints/tcpTunnel/backend.go | 5 +++-- endpoints/udpTunnel/backend.go | 5 +++-- go.mod | 9 ++++----- go.sum | 16 ++++++++-------- sdk/golang/sdk/listener.go | 2 +- 9 files changed, 34 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf04f3bd..2072b2aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## v0.4.20 + +CHANGE: OpenZiti SDK updated to `v0.21.2`. All `ziti.ListenOptions` listener options configured to use `WaitForNEstablishedListeners: 1`. When a `zrok share` client or an `sdk.Share` client are connected to an OpenZiti router that supports "listener established" events, then listen calls will not return until the listener is fully established on the OpenZiti network. Previously a `zrok share` client could report that it is fully operational and listening before the listener is fully established on the OpenZiti network; in practice this produced a very small window of time when the share would not be ready to accept requests. This change eliminates this window of time (https://github.com/openziti/zrok/issues/490) + ## v0.4.19 FEATURE: Reserved shares now support unique names ("vanity tokens"). This allows for the creation of reserved shares with identifiable names rather than generated share tokens. Includes basic support for profanity checking (https://github.com/openziti/zrok/issues/401) diff --git a/cmd/zrok/testLoopPublic.go b/cmd/zrok/testLoopPublic.go index 14e442f3..6cfb381d 100644 --- a/cmd/zrok/testLoopPublic.go +++ b/cmd/zrok/testLoopPublic.go @@ -149,16 +149,17 @@ func (l *looper) serviceListener() { logrus.Errorf("error opening ziti config '%v': %v", l.zif, err) return } - opts := ziti.ListenOptions{ - ConnectTimeout: 5 * time.Minute, - MaxConnections: 10, + options := ziti.ListenOptions{ + ConnectTimeout: 5 * time.Minute, + MaxConnections: 64, + WaitForNEstablishedListeners: 1, } zctx, err := ziti.NewContext(zcfg) if err != nil { logrus.Errorf("error loading ziti context: %v", err) return } - if l.listener, err = zctx.ListenWithOptions(l.shrToken, &opts); err == nil { + if l.listener, err = zctx.ListenWithOptions(l.shrToken, &options); err == nil { if err := http.Serve(l.listener, l); err != nil { logrus.Errorf("looper #%d, error serving: %v", l.id, err) } diff --git a/endpoints/drive/backend.go b/endpoints/drive/backend.go index f9147e8c..57cfae5d 100644 --- a/endpoints/drive/backend.go +++ b/endpoints/drive/backend.go @@ -26,8 +26,9 @@ type Backend struct { func NewBackend(cfg *BackendConfig) (*Backend, error) { options := ziti.ListenOptions{ - ConnectTimeout: 5 * time.Minute, - MaxConnections: 64, + ConnectTimeout: 5 * time.Minute, + MaxConnections: 64, + WaitForNEstablishedListeners: 1, } zcfg, err := ziti.NewConfigFromFile(cfg.IdentityPath) if err != nil { diff --git a/endpoints/proxy/backend.go b/endpoints/proxy/backend.go index 06858ada..24cd290b 100644 --- a/endpoints/proxy/backend.go +++ b/endpoints/proxy/backend.go @@ -31,8 +31,9 @@ type Backend struct { func NewBackend(cfg *BackendConfig) (*Backend, error) { options := ziti.ListenOptions{ - ConnectTimeout: 5 * time.Minute, - MaxConnections: 64, + ConnectTimeout: 5 * time.Minute, + MaxConnections: 64, + WaitForNEstablishedListeners: 1, } zcfg, err := ziti.NewConfigFromFile(cfg.IdentityPath) if err != nil { diff --git a/endpoints/tcpTunnel/backend.go b/endpoints/tcpTunnel/backend.go index 2dcfb074..b7ba4027 100644 --- a/endpoints/tcpTunnel/backend.go +++ b/endpoints/tcpTunnel/backend.go @@ -24,8 +24,9 @@ type Backend struct { func NewBackend(cfg *BackendConfig) (*Backend, error) { options := ziti.ListenOptions{ - ConnectTimeout: 5 * time.Minute, - MaxConnections: 64, + ConnectTimeout: 5 * time.Minute, + MaxConnections: 64, + WaitForNEstablishedListeners: 1, } zcfg, err := ziti.NewConfigFromFile(cfg.IdentityPath) if err != nil { diff --git a/endpoints/udpTunnel/backend.go b/endpoints/udpTunnel/backend.go index e38a7769..0321b598 100644 --- a/endpoints/udpTunnel/backend.go +++ b/endpoints/udpTunnel/backend.go @@ -24,8 +24,9 @@ type Backend struct { func NewBackend(cfg *BackendConfig) (*Backend, error) { options := ziti.ListenOptions{ - ConnectTimeout: 5 * time.Minute, - MaxConnections: 64, + ConnectTimeout: 5 * time.Minute, + MaxConnections: 64, + WaitForNEstablishedListeners: 1, } zcfg, err := ziti.NewConfigFromFile(cfg.IdentityPath) if err != nil { diff --git a/go.mod b/go.mod index 4adffb2a..6b88d94f 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/charmbracelet/lipgloss v0.6.0 github.com/go-openapi/errors v0.20.4 github.com/go-openapi/loads v0.21.2 - github.com/go-openapi/runtime v0.26.0 + github.com/go-openapi/runtime v0.26.2 github.com/go-openapi/spec v0.20.11 github.com/go-openapi/strfmt v0.21.9 github.com/go-openapi/swag v0.22.4 @@ -31,10 +31,10 @@ require ( github.com/muesli/reflow v0.3.0 github.com/nxadm/tail v1.4.8 github.com/openziti/channel/v2 v2.0.111 - github.com/openziti/edge-api v0.26.5 + github.com/openziti/edge-api v0.26.6 github.com/openziti/fabric v0.23.26 github.com/openziti/identity v1.0.68 - github.com/openziti/sdk-golang v0.20.145 + github.com/openziti/sdk-golang v0.21.2 github.com/openziti/transport/v2 v2.0.119 github.com/pkg/errors v0.9.1 github.com/rabbitmq/amqp091-go v1.8.1 @@ -201,7 +201,7 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect github.com/zeebo/blake3 v0.2.3 // indirect go.etcd.io/bbolt v1.3.7 // indirect - go.mongodb.org/mongo-driver v1.13.0 // indirect + go.mongodb.org/mongo-driver v1.13.1 // indirect go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect go.opentelemetry.io/contrib/propagators/autoprop v0.42.0 // indirect @@ -236,7 +236,6 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect howett.net/plist v1.0.0 // indirect ) diff --git a/go.sum b/go.sum index 6c95c257..47d9f241 100644 --- a/go.sum +++ b/go.sum @@ -278,8 +278,8 @@ github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2Kv github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/loads v0.21.2 h1:r2a/xFIYeZ4Qd2TnGpWDIQNcP80dIaZgf704za8enro= github.com/go-openapi/loads v0.21.2/go.mod h1:Jq58Os6SSGz0rzh62ptiu8Z31I+OTHqmULx5e/gJbNw= -github.com/go-openapi/runtime v0.26.0 h1:HYOFtG00FM1UvqrcxbEJg/SwvDRvYLQKGhw2zaQjTcc= -github.com/go-openapi/runtime v0.26.0/go.mod h1:QgRGeZwrUcSHdeh4Ka9Glvo0ug1LC5WyE+EV88plZrQ= +github.com/go-openapi/runtime v0.26.2 h1:elWyB9MacRzvIVgAZCBJmqTi7hBzU0hlKD4IvfX0Zl0= +github.com/go-openapi/runtime v0.26.2/go.mod h1:O034jyRZ557uJKzngbMDJXkcKJVzXJiymdSfgejrcRw= github.com/go-openapi/spec v0.20.6/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= github.com/go-openapi/spec v0.20.11 h1:J/TzFDLTt4Rcl/l1PmyErvkqlJDncGvPTMnCI39I4gY= github.com/go-openapi/spec v0.20.11/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA= @@ -759,8 +759,8 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openziti/channel/v2 v2.0.111 h1:ZZDyUUFcyshitXjUqAMjdAKbaDMpgV7oX1Jp1I35Rc4= github.com/openziti/channel/v2 v2.0.111/go.mod h1:abw0qwT0MzWvh1eI2P6D6CD17PRHL8EEo1d3DHCyCdM= -github.com/openziti/edge-api v0.26.5 h1:O360x1ucLiCzibDBIVPEDlW5iZmA1pBVx/kfXKZusH8= -github.com/openziti/edge-api v0.26.5/go.mod h1:JskiZuulHR6CCCGT7P6MLupnC21Reg8viw127F4MRE8= +github.com/openziti/edge-api v0.26.6 h1:qM5XRaYYZxRIkb3xDkAU1D2EkQx8a+oHvCWbd+v0fbA= +github.com/openziti/edge-api v0.26.6/go.mod h1:DX+fKivCRgnl5oxuLLoEx044arhjlgI7peGlqxN+Iks= github.com/openziti/fabric v0.23.26 h1:wEPNh8m3qcq9sw1Zmg5YgFZw1FovsKGu53rRf8qzI7A= github.com/openziti/fabric v0.23.26/go.mod h1:0MtkZqIHs3cJPP4DB88xsWUemDm77nN/GvWBBfq7peo= github.com/openziti/foundation/v2 v2.0.35 h1:4VaMwZ2kAy6jwBYeQIBN2m8rcGroTDX4A2Jp7NAKb6M= @@ -769,8 +769,8 @@ github.com/openziti/identity v1.0.68 h1:SaFr7BeFQBoWQDiT28vUb8D9w7v6lIAK6/9RkwmV github.com/openziti/identity v1.0.68/go.mod h1:HbOu3TQ032v8xE6xZWjO51azF4fUxRLjO/l/oGqJwUI= github.com/openziti/metrics v1.2.40 h1:gySRgR8prCPqaEjmUtX0eXFs7NkI9uPAzp+z6A8+JqA= github.com/openziti/metrics v1.2.40/go.mod h1:HXdVryf3xpZfnY4VcaOjMxiBv+qw0wJlEJNLbooB9hY= -github.com/openziti/sdk-golang v0.20.145 h1:GL5glgLFtRR2P60EG/FLT8WZtmCUOkQYidN1QSTzotk= -github.com/openziti/sdk-golang v0.20.145/go.mod h1:16j+e3WI+ztxG1V+X8Wl3MFyAUe0BO8a8ypxbzDF7Ao= +github.com/openziti/sdk-golang v0.21.2 h1:P66cslOAmQX37VFan+df+MoD2PqaFjHWDNMpuhhXHSo= +github.com/openziti/sdk-golang v0.21.2/go.mod h1:mepEUD39DsBm/v1WVLedYRoYCFdet5mmJ5Sxqm/zkFI= github.com/openziti/secretstream v0.1.14 h1:Ta+nB5Prcct+L5LIKUA1nE56QhWS6lMPQYTlpxUltU0= github.com/openziti/secretstream v0.1.14/go.mod h1:/hhuLfu+GIv0+cnapfsu/VOnXEvmTt3GKtCu+lQ0RIw= github.com/openziti/storage v0.2.6 h1:/pbIRzDwrczMWRVkN75PfwAXFbArplIqhpRsUrsUOBc= @@ -1009,8 +1009,8 @@ go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQc go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= -go.mongodb.org/mongo-driver v1.13.0 h1:67DgFFjYOCMWdtTEmKFpV3ffWlFnh+CYZ8ZS/tXWUfY= -go.mongodb.org/mongo-driver v1.13.0/go.mod h1:/rGBTebI3XYboVmgz+Wv3Bcbl3aD0QF9zl6kDDw18rQ= +go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= +go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= go.mozilla.org/pkcs7 v0.0.0-20210730143726-725912489c62/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak= go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= diff --git a/sdk/golang/sdk/listener.go b/sdk/golang/sdk/listener.go index 4aece922..2fb8320c 100644 --- a/sdk/golang/sdk/listener.go +++ b/sdk/golang/sdk/listener.go @@ -9,7 +9,7 @@ import ( ) func NewListener(shrToken string, root env_core.Root) (edge.Listener, error) { - return NewListenerWithOptions(shrToken, root, &ziti.ListenOptions{ConnectTimeout: 30 * time.Second, MaxConnections: 64}) + return NewListenerWithOptions(shrToken, root, &ziti.ListenOptions{ConnectTimeout: 30 * time.Second, MaxConnections: 64, WaitForNEstablishedListeners: 1}) } func NewListenerWithOptions(shrToken string, root env_core.Root, opts *ziti.ListenOptions) (edge.Listener, error) {