fix: version parsing

This commit is contained in:
yusing 2025-04-16 15:14:41 +08:00
parent 80bc018a7f
commit 973a44ee07
2 changed files with 7 additions and 15 deletions

View file

@ -81,14 +81,6 @@ func (cfg *AgentConfig) Parse(addr string) error {
return nil
}
func withoutBuildTime(version string) string {
return strings.Split(version, "-")[0]
}
func checkVersion(a, b string) bool {
return withoutBuildTime(a) == withoutBuildTime(b)
}
func (cfg *AgentConfig) InitWithCerts(ctx context.Context, ca, crt, key []byte) error {
clientCert, err := tls.X509KeyPair(crt, key)
if err != nil {
@ -120,10 +112,10 @@ func (cfg *AgentConfig) InitWithCerts(ctx context.Context, ca, crt, key []byte)
return err
}
versionStr := string(version)
// skip version check for dev versions
if strings.HasPrefix(versionStr, "v") && !checkVersion(versionStr, pkg.GetVersion().String()) {
return gperr.Errorf("agent version mismatch: server: %s, agent: %s", pkg.GetVersion(), versionStr)
agentVer := pkg.ParseVersion(string(version))
serverVer := pkg.GetVersion()
if !agentVer.IsEqual(serverVer) {
return gperr.Errorf("agent version mismatch: server: %s, agent: %s", serverVer, agentVer)
}
// get agent name

View file

@ -20,7 +20,7 @@ func GetLastVersion() Version {
}
func init() {
currentVersion = parseVersion(version)
currentVersion = ParseVersion(version)
// ignore errors
versionFile := filepath.Join(common.DataDir, "version")
@ -28,7 +28,7 @@ func init() {
f, err := os.OpenFile(versionFile, os.O_RDWR|os.O_CREATE, 0o644)
if err == nil {
_, err = fmt.Fscanf(f, "%s", &lastVersionStr)
lastVersion = parseVersion(lastVersionStr)
lastVersion = ParseVersion(lastVersionStr)
}
if err != nil && !os.IsNotExist(err) {
logging.Warn().Err(err).Msg("failed to read version file")
@ -89,7 +89,7 @@ var (
lastVersion Version
)
func parseVersion(v string) (ver Version) {
func ParseVersion(v string) (ver Version) {
if v == "" {
return
}