From 20fdf140e670dd13be6156d53e5a2e5b4ed6166e Mon Sep 17 00:00:00 2001 From: Brian Conway Date: Fri, 6 Mar 2026 12:21:34 -0600 Subject: [PATCH] Linter updates and style fixes - Sync `vendor/` for updated dependencies. - All test variations pass. --- LICENSE | 2 +- build/deploy/atlas/docker-compose.yml | 16 ++++++------ go.mod | 10 ++++---- go.sum | 20 +++++++-------- internal/atlas-api/api/api.go | 2 +- internal/atlas-api/auth/constants.go | 13 +++++----- internal/atlas-api/session/web_token.go | 2 +- pkg/dao/user/crudl.go | 2 +- pkg/decode/radiobridge/link_quality.go | 2 ++ pkg/notify/mailgun.go | 1 - pkg/notify/twilio.go | 2 -- .../protoc-gen-validate/validate/BUILD | 2 +- vendor/golang.org/x/net/http2/frame.go | 4 ++- .../grpc/internal/transport/client_stream.go | 10 +++++--- .../grpc/internal/transport/http2_client.go | 25 ++++++++++--------- .../grpc/internal/transport/transport.go | 2 +- vendor/google.golang.org/grpc/stream.go | 5 ++-- vendor/google.golang.org/grpc/version.go | 2 +- vendor/modules.txt | 18 ++++++------- 19 files changed, 72 insertions(+), 68 deletions(-) diff --git a/LICENSE b/LICENSE index 68730128..47e82047 100644 --- a/LICENSE +++ b/LICENSE @@ -1,3 +1,3 @@ -Copyright (c) 2020-2025 Brian Conway +Copyright (c) 2020-2026 Brian Conway All rights reserved. diff --git a/build/deploy/atlas/docker-compose.yml b/build/deploy/atlas/docker-compose.yml index d70aa08f..0f010910 100644 --- a/build/deploy/atlas/docker-compose.yml +++ b/build/deploy/atlas/docker-compose.yml @@ -1,6 +1,6 @@ services: atlas-api: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-api restart: on-failure ports: @@ -22,7 +22,7 @@ services: - API_LORA_DEV_PROF_ID=00000000-0000-0000-0000-000000000000 atlas-mqtt-ingestor: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-mqtt-ingestor restart: on-failure depends_on: @@ -34,7 +34,7 @@ services: - MQTT_INGEST_NSQ_PUB_ADDR=nsqd:4150 atlas-lora-ingestor: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-lora-ingestor restart: on-failure depends_on: @@ -47,7 +47,7 @@ services: - LORA_INGEST_NSQ_PUB_ADDR=nsqd:4150 atlas-decoder: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-decoder restart: on-failure depends_on: @@ -60,7 +60,7 @@ services: - DECODER_NSQ_LOOKUP_ADDRS=nsqlookupd:4161 atlas-validator: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-validator restart: on-failure depends_on: @@ -74,7 +74,7 @@ services: - VALIDATOR_NSQ_LOOKUP_ADDRS=nsqlookupd:4161 atlas-accumulator: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-accumulator restart: on-failure environment: @@ -85,7 +85,7 @@ services: - ACCUMULATOR_NSQ_LOOKUP_ADDRS=nsqlookupd:4161 atlas-eventer: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-eventer restart: on-failure depends_on: @@ -98,7 +98,7 @@ services: - EVENTER_NSQ_LOOKUP_ADDRS=nsqlookupd:4161 atlas-alerter: - image: ghcr.io/thingspect/atlas:996f4330 + image: ghcr.io/thingspect/atlas:a614e185 command: atlas-alerter restart: on-failure environment: diff --git a/go.mod b/go.mod index 8bac28df..efc3f482 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/thingspect/proto/go v1.1.15 go.uber.org/mock v0.6.0 golang.org/x/crypto v0.48.0 - google.golang.org/grpc v1.79.1 + google.golang.org/grpc v1.79.2 google.golang.org/protobuf v1.36.11 ) @@ -29,7 +29,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/envoyproxy/protoc-gen-validate v1.3.0 // indirect + github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect github.com/golang/snappy v1.0.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect @@ -38,11 +38,11 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect go.uber.org/atomic v1.11.0 // indirect - golang.org/x/net v0.50.0 // indirect + golang.org/x/net v0.51.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.41.0 // indirect golang.org/x/text v0.34.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 860ffe13..43ed6f0c 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/eclipse/paho.mqtt.golang v1.5.1 h1:/VSOv3oDLlpqR2Epjn1Q7b2bSTplJIeV2ISgCl2W7nE= github.com/eclipse/paho.mqtt.golang v1.5.1/go.mod h1:1/yJCneuyOoCOzKSsOTUc0AJfpsItBGWvYpBLimhArU= -github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4= -github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA= +github.com/envoyproxy/protoc-gen-validate v1.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds= +github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0= github.com/expr-lang/expr v1.17.8 h1:W1loDTT+0PQf5YteHSTpju2qfUfNoBt4yw9+wOEU9VM= github.com/expr-lang/expr v1.17.8/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -97,8 +97,8 @@ go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= -golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= +golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= @@ -109,12 +109,12 @@ gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 h1:vArvWooPH749rNHpBGgVl+U9B9dATjiEhJzcWGlovNs= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= -google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.2 h1:fRMD94s2tITpyJGtBBn7MkMseNpOZU8ZxgC3MMBaXRU= +google.golang.org/grpc v1.79.2/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/atlas-api/api/api.go b/internal/atlas-api/api/api.go index 410b055c..ca2d9bbf 100644 --- a/internal/atlas-api/api/api.go +++ b/internal/atlas-api/api/api.go @@ -50,7 +50,7 @@ const ( ) // errPWTLength is returned due to insufficient key length. -// #nosec G101 // false positive for hardcoded credentials +// #nosec G101 // False positive for hardcoded credentials. const errPWTLength consterr.Error = "pwt key must be 32 bytes" // API holds references to the gRPC and HTTP servers. diff --git a/internal/atlas-api/auth/constants.go b/internal/atlas-api/auth/constants.go index 5e4d908a..12f55607 100644 --- a/internal/atlas-api/auth/constants.go +++ b/internal/atlas-api/auth/constants.go @@ -6,18 +6,17 @@ package auth // acceptable due to lookups only taking place when a password is created or // updated. // -// Source (1/12/2021): +// Source (3/6/2026): // https://github.com/danielmiessler/SecLists/tree/master/Passwords/Common-Credentials // // Created by: -// sed '/^.\{0,9\}$/d' 10-million-password-list-top-100000.txt|tr '[:upper:]' \ +// sed '/^.\{0,9\}$/d' xato-net-10-million-passwords-100000.txt|tr '[:upper:]' \ // '[:lower:]'|sort -u // -// #nosec G101 // false positive for hardcoded credentials +// #nosec G101 // False positive for hardcoded credentials. // //nolint:misspell // False positive for directly imported list. const weakPasswords = ` -..qlvvcvdeero 0000000000 000000000000 0000000000d @@ -113,8 +112,8 @@ const weakPasswords = ` 1234567812345678 123456782000 1234567887654321 -123456789* 123456789. +123456789* 1234567890 1234567890- 12345678900 @@ -562,9 +561,9 @@ asdf123456 asdfdsasdf asdfg12345 asdfgh123456 +asdfghjkl; asdfghjkl1 asdfghjkl123 -asdfghjkl; ashleigh69 asshole123 astalavista @@ -1125,10 +1124,10 @@ gunslinger gunsnroses gxlmxbewym gy3yt2rgls +h_froeschl7 h1y4dua229 h2tmc4g358 h72sfibbnl -h_froeschl7 hakunamatata hallelujah hammerfall diff --git a/internal/atlas-api/session/web_token.go b/internal/atlas-api/session/web_token.go index 25fe8d7b..7e8c847e 100644 --- a/internal/atlas-api/session/web_token.go +++ b/internal/atlas-api/session/web_token.go @@ -17,7 +17,7 @@ const ( // WebTokenExp represents the lifetime of a web token in seconds. WebTokenExp = 10 * 60 - //#nosec G101 // false positive for hardcoded credentials + // #nosec G101 // False positive for hardcoded credentials. errWebTokenExp consterr.Error = "crypto: token expired" ) diff --git a/pkg/dao/user/crudl.go b/pkg/dao/user/crudl.go index 45b6d51e..c1190967 100644 --- a/pkg/dao/user/crudl.go +++ b/pkg/dao/user/crudl.go @@ -124,7 +124,7 @@ func (d *DAO) Update(ctx context.Context, user *api.User) (*api.User, error) { return user, nil } -// #nosec G101 // false positive for hardcoded credentials +// #nosec G101 // False positive for hardcoded credentials. const updateUserPassword = ` UPDATE users SET password_hash = $1, updated_at = $2 diff --git a/pkg/decode/radiobridge/link_quality.go b/pkg/decode/radiobridge/link_quality.go index 03c16430..df1fb4c2 100644 --- a/pkg/decode/radiobridge/link_quality.go +++ b/pkg/decode/radiobridge/link_quality.go @@ -33,9 +33,11 @@ func linkQuality(body []byte) ([]*decode.Point, error) { // Parse device RSSI and SNR. msgs = append(msgs, &decode.Point{ + // #nosec G115 // False positive for signed values. Attr: "device_rssi", Value: int32(int8(body[3])), }) msgs = append(msgs, &decode.Point{ + // #nosec G115 // False positive for signed values. Attr: "device_snr", Value: int32(int8(body[4])), }) diff --git a/pkg/notify/mailgun.go b/pkg/notify/mailgun.go index 1c0150e3..4e46db18 100644 --- a/pkg/notify/mailgun.go +++ b/pkg/notify/mailgun.go @@ -57,7 +57,6 @@ func (t *mailgun) sendEmail( // Send request. client := &http.Client{} - //nolint:gosec // Built from constants and configuration. resp, err := client.Do(req) if err != nil { return err diff --git a/pkg/notify/twilio.go b/pkg/notify/twilio.go index 7d049b42..32473338 100644 --- a/pkg/notify/twilio.go +++ b/pkg/notify/twilio.go @@ -59,7 +59,6 @@ func (t *twilio) lookupCarrier(ctx context.Context, phone string) ( // Send request. client := &http.Client{} - //nolint:gosec // Built from constants and configuration. resp, err := client.Do(req) if err != nil { return nil, err @@ -110,7 +109,6 @@ func (t *twilio) sendSMS(ctx context.Context, to, body string) error { // Send request. client := &http.Client{} - //nolint:gosec // Built from constants and configuration. resp, err := client.Do(req) if err != nil { return err diff --git a/vendor/github.com/envoyproxy/protoc-gen-validate/validate/BUILD b/vendor/github.com/envoyproxy/protoc-gen-validate/validate/BUILD index 368eb571..a1dd45e3 100644 --- a/vendor/github.com/envoyproxy/protoc-gen-validate/validate/BUILD +++ b/vendor/github.com/envoyproxy/protoc-gen-validate/validate/BUILD @@ -1,10 +1,10 @@ load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") +load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") load("@com_google_protobuf//bazel:py_proto_library.bzl", "py_proto_library") load("@io_bazel_rules_go//go:def.bzl", "go_library") load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") load("@rules_cc//cc:defs.bzl", "cc_library") -load("@rules_java//java:defs.bzl", "java_proto_library") package( default_visibility = diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index a26039c1..be75badc 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -145,7 +145,9 @@ var frameParsers = [...]frameParser{ func typeFrameParser(t FrameType) frameParser { if int(t) < len(frameParsers) { - return frameParsers[t] + if f := frameParsers[t]; f != nil { + return f + } } return parseUnknownFrame } diff --git a/vendor/google.golang.org/grpc/internal/transport/client_stream.go b/vendor/google.golang.org/grpc/internal/transport/client_stream.go index 98045251..cd8152ef 100644 --- a/vendor/google.golang.org/grpc/internal/transport/client_stream.go +++ b/vendor/google.golang.org/grpc/internal/transport/client_stream.go @@ -24,6 +24,7 @@ import ( "golang.org/x/net/http2" "google.golang.org/grpc/mem" "google.golang.org/grpc/metadata" + "google.golang.org/grpc/stats" "google.golang.org/grpc/status" ) @@ -46,10 +47,11 @@ type ClientStream struct { // meaningful after headerChan is closed (always call waitOnHeader() before // reading its value). headerValid bool - noHeaders bool // set if the client never received headers (set only after the stream is done). - headerChanClosed uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. - bytesReceived atomic.Bool // indicates whether any bytes have been received on this stream - unprocessed atomic.Bool // set if the server sends a refused stream or GOAWAY including this stream + noHeaders bool // set if the client never received headers (set only after the stream is done). + headerChanClosed uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. + bytesReceived atomic.Bool // indicates whether any bytes have been received on this stream + unprocessed atomic.Bool // set if the server sends a refused stream or GOAWAY including this stream + statsHandler stats.Handler // nil for internal streams (e.g., health check, ORCA) where telemetry is not supported. } // Read reads an n byte message from the input stream. diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index 38ca031a..37b1acc3 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -478,7 +478,7 @@ func NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts return t, nil } -func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr) *ClientStream { +func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) *ClientStream { // TODO(zhaoq): Handle uint32 overflow of Stream.id. s := &ClientStream{ Stream: Stream{ @@ -486,10 +486,11 @@ func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr) *ClientSt sendCompress: callHdr.SendCompress, contentSubtype: callHdr.ContentSubtype, }, - ct: t, - done: make(chan struct{}), - headerChan: make(chan struct{}), - doneFunc: callHdr.DoneFunc, + ct: t, + done: make(chan struct{}), + headerChan: make(chan struct{}), + doneFunc: callHdr.DoneFunc, + statsHandler: handler, } s.Stream.buf.init() s.Stream.wq.init(defaultWriteQuota, s.done) @@ -744,7 +745,7 @@ func (e NewStreamError) Error() string { // NewStream creates a stream and registers it into the transport as "active" // streams. All non-nil errors returned will be *NewStreamError. -func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*ClientStream, error) { +func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) (*ClientStream, error) { ctx = peer.NewContext(ctx, t.Peer()) // ServerName field of the resolver returned address takes precedence over @@ -781,7 +782,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*ClientS if err != nil { return nil, &NewStreamError{Err: err, AllowTransparentRetry: false} } - s := t.newStream(ctx, callHdr) + s := t.newStream(ctx, callHdr, handler) cleanup := func(err error) { if s.swapState(streamDone) == streamDone { // If it was already done, return. @@ -902,7 +903,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*ClientS return nil, &NewStreamError{Err: ErrConnClosing, AllowTransparentRetry: true} } } - if t.statsHandler != nil { + if s.statsHandler != nil { header, ok := metadata.FromOutgoingContext(ctx) if ok { header.Set("user-agent", t.userAgent) @@ -911,7 +912,7 @@ func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*ClientS } // Note: The header fields are compressed with hpack after this call returns. // No WireLength field is set here. - t.statsHandler.HandleRPC(s.ctx, &stats.OutHeader{ + s.statsHandler.HandleRPC(s.ctx, &stats.OutHeader{ Client: true, FullMethod: callHdr.Method, RemoteAddr: t.remoteAddr, @@ -1587,16 +1588,16 @@ func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { } } - if t.statsHandler != nil { + if s.statsHandler != nil { if !endStream { - t.statsHandler.HandleRPC(s.ctx, &stats.InHeader{ + s.statsHandler.HandleRPC(s.ctx, &stats.InHeader{ Client: true, WireLength: int(frame.Header().Length), Header: metadata.MD(mdata).Copy(), Compression: s.recvCompress, }) } else { - t.statsHandler.HandleRPC(s.ctx, &stats.InTrailer{ + s.statsHandler.HandleRPC(s.ctx, &stats.InTrailer{ Client: true, WireLength: int(frame.Header().Length), Trailer: metadata.MD(mdata).Copy(), diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 10b9155f..b86094da 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -617,7 +617,7 @@ type ClientTransport interface { GracefulClose() // NewStream creates a Stream for an RPC. - NewStream(ctx context.Context, callHdr *CallHdr) (*ClientStream, error) + NewStream(ctx context.Context, callHdr *CallHdr, handler stats.Handler) (*ClientStream, error) // Error returns a channel that is closed when some I/O error // happens. Typically the caller should have a goroutine to monitor diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index f92102fb..eedb5f9b 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -548,7 +548,7 @@ func (a *csAttempt) newStream() error { } } } - s, err := a.transport.NewStream(a.ctx, cs.callHdr) + s, err := a.transport.NewStream(a.ctx, cs.callHdr, a.statsHandler) if err != nil { nse, ok := err.(*transport.NewStreamError) if !ok { @@ -1354,7 +1354,8 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin transport: t, } - s, err := as.transport.NewStream(as.ctx, as.callHdr) + // nil stats handler: internal streams like health and ORCA do not support telemetry. + s, err := as.transport.NewStream(as.ctx, as.callHdr, nil) if err != nil { err = toRPCErr(err) return nil, err diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index c1225b91..f9da6c6c 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.79.1" +const Version = "1.79.2" diff --git a/vendor/modules.txt b/vendor/modules.txt index 3adba7e8..a68e9e85 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -20,8 +20,8 @@ github.com/dgryski/go-rendezvous ## explicit; go 1.24.0 github.com/eclipse/paho.mqtt.golang github.com/eclipse/paho.mqtt.golang/packets -# github.com/envoyproxy/protoc-gen-validate v1.3.0 -## explicit; go 1.21.1 +# github.com/envoyproxy/protoc-gen-validate v1.3.3 +## explicit; go 1.24.1 github.com/envoyproxy/protoc-gen-validate/validate # github.com/expr-lang/expr v1.17.8 ## explicit; go 1.18 @@ -155,8 +155,8 @@ go.uber.org/mock/gomock ## explicit; go 1.24.0 golang.org/x/crypto/bcrypt golang.org/x/crypto/blowfish -# golang.org/x/net v0.50.0 -## explicit; go 1.24.0 +# golang.org/x/net v0.51.0 +## explicit; go 1.25.0 golang.org/x/net/http/httpguts golang.org/x/net/http2 golang.org/x/net/http2/hpack @@ -190,15 +190,15 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 -## explicit; go 1.24.0 +# google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 +## explicit; go 1.25.0 google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations google.golang.org/genproto/googleapis/api/httpbody -# google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 -## explicit; go 1.24.0 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 +## explicit; go 1.25.0 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.79.1 +# google.golang.org/grpc v1.79.2 ## explicit; go 1.24.0 google.golang.org/grpc google.golang.org/grpc/attributes