From 31f6b7a851cf1000700ecffb98f205c89f336c0a Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 9 Oct 2025 06:41:40 -0500 Subject: don't panic on .text protobuf file Load() --- load.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/load.go b/load.go index dba0bf1..1fe1a50 100644 --- a/load.go +++ b/load.go @@ -76,18 +76,21 @@ func Load(pb proto.Message) error { log.Info("'Filename' is not in: =", fullname, err) return err } + // text is supposed to be "easy". Don't verify 'version' + if strings.HasSuffix(fullname, ".text") { + return loadTEXT(pb, fullname) + } + + // verify 'version' for .pb files + // application will panic if they don't match + var worked bool ver, err := GetString(pb, "version") if err != nil { log.Info("'Version' is not in: =", fullname, err) return err } - var worked bool - if strings.HasSuffix(fullname, ".text") { - if err := loadTEXT(pb, fullname); err != nil { - return err - } - worked = true - } + // maybe don't really verify .json files (?) + // doing it for now anyway. maybe just return an error if strings.HasSuffix(fullname, ".json") { if err := loadJSON(pb, fullname); err != nil { return err @@ -108,6 +111,7 @@ func Load(pb proto.Message) error { log.Printf("VERSION '%s' != '%s'\n", ver, newver) log.Info("Your protobuf file is old and can not be loaded") log.Info("You must delete or convert the file", fullname) + // probably should ALWAYS PANIC HERE panic("protobuf version mismatch") } return nil -- cgit v1.2.3