diff --git a/internal/gnmiserver/server.go b/internal/gnmiserver/server.go index 1ad9553a74bcc114874353ee79fbda24ce4635e0..71ecfe473ba3e566692ef7cd586450307c114afa 100644 --- a/internal/gnmiserver/server.go +++ b/internal/gnmiserver/server.go @@ -17,11 +17,8 @@ limitations under the License. package gnmiserver import ( - "bytes" - "compress/gzip" "encoding/json" "fmt" - "io" "reflect" "strconv" "time" @@ -39,7 +36,6 @@ import ( "code.fbi.h-da.de/danet/gnmi-target/handler" not "code.fbi.h-da.de/danet/gnmi-target/internal/notifications" - dpb "github.com/golang/protobuf/protoc-gen-go/descriptor" "github.com/openconfig/gnmi/proto/gnmi" pb "github.com/openconfig/gnmi/proto/gnmi" ) @@ -415,23 +411,11 @@ func (s *Server) toGoStruct(jsonTree map[string]interface{}) (ygot.ValidatedGoSt // TODO: Fix the deprecated path.GetElement // //nolint:all -func getGNMIServiceVersion() (*string, error) { - gzB, _ := (&pb.Update{}).Descriptor() - r, err := gzip.NewReader(bytes.NewReader(gzB)) - if err != nil { - return nil, fmt.Errorf("error in initializing gzip reader: %w", err) - } - defer r.Close() //nolint:errcheck - b, err := io.ReadAll(r) - if err != nil { - return nil, fmt.Errorf("error in reading gzip data: %w", err) - } - desc := &dpb.FileDescriptorProto{} - if err := proto.Unmarshal(b, desc); err != nil { - return nil, fmt.Errorf("error in unmarshaling proto: %w", err) - } - ver := proto.GetExtension(desc.Options, pb.E_GnmiService) - return ver.(*string), nil +func getGNMIServiceVersion() (string, error) { + gzB := (&pb.Update{}).ProtoReflect().Descriptor() + parentOptions := gzB.Parent().Options() + ver := proto.GetExtension(parentOptions, pb.E_GnmiService) + return ver.(string), nil } // deleteKeyedListEntry deletes the keyed list entry from node that matches the @@ -572,7 +556,7 @@ func (s *Server) Capabilities(ctx context.Context, req *pb.CapabilityRequest) (* return &pb.CapabilityResponse{ SupportedModels: s.model.modelData, SupportedEncodings: supportedEncodings, - GNMIVersion: *ver, + GNMIVersion: ver, }, nil }