diff options
| author | Jeff Carr <[email protected]> | 2025-10-09 06:22:47 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-09 06:44:05 -0500 |
| commit | 1f282c7160e3776d6b532427e6c00ad82897a815 (patch) | |
| tree | 88b06dee70427650ea608a02b752a4342ca46c11 /load.go | |
| parent | b7ebd1bc4104df39062ddf264cf439fcdcac3881 (diff) | |
read and verify the version
Diffstat (limited to 'load.go')
| -rw-r--r-- | load.go | 35 |
1 files changed, 30 insertions, 5 deletions
@@ -73,19 +73,44 @@ func ConfigLoad(pb proto.Message, argname string, protoname string) error { func Load(pb proto.Message) error { fullname, err := GetFilename(pb) if err != nil { - log.Info("filename =", fullname, err) + log.Info("'Filename' is not in: =", fullname, err) return err } + 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") { - return loadTEXT(pb, fullname) + if err := loadTEXT(pb, fullname); err != nil { + return err + } + worked = true } if strings.HasSuffix(fullname, ".json") { - return loadJSON(pb, fullname) + if err := loadJSON(pb, fullname); err != nil { + return err + } + worked = true } if strings.HasSuffix(fullname, ".pb") { - return loadPB(pb, fullname) + if err := loadPB(pb, fullname); err != nil { + return err + } + worked = true } - return log.Errorf("unknown filetype %s", fullname) + if !worked { + return log.Errorf("unknown filetype %s", fullname) + } + newver, _ := GetString(pb, "version") + if ver != newver { + 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) + panic("protobuf version mismatch") + } + return nil } func LoadFile(pb proto.Message, fullname string) error { |
