summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-09 06:41:40 -0500
committerJeff Carr <[email protected]>2025-10-09 06:44:08 -0500
commit31f6b7a851cf1000700ecffb98f205c89f336c0a (patch)
tree29a141642aedde68049fc6753d15c73e2f489660
parent1f282c7160e3776d6b532427e6c00ad82897a815 (diff)
don't panic on .text protobuf file Load()
-rw-r--r--load.go18
1 files 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