| 2591 | var semVerRe = regexp.MustCompile(`\Av?([0-9]+)\.?([0-9]+)?\.?([0-9]+)?`) |
| 2592 | |
| 2593 | func versionComponents(version string) (major, minor, patch int, err error) { |
| 2594 | m := semVerRe.FindStringSubmatch(version) |
| 2595 | if m == nil { |
| 2596 | return 0, 0, 0, errors.New("invalid semver") |
| 2597 | } |
| 2598 | major, err = strconv.Atoi(m[1]) |
| 2599 | if err != nil { |
| 2600 | return -1, -1, -1, err |
| 2601 | } |
| 2602 | minor, err = strconv.Atoi(m[2]) |
| 2603 | if err != nil { |
| 2604 | return -1, -1, -1, err |
| 2605 | } |
| 2606 | patch, err = strconv.Atoi(m[3]) |
| 2607 | if err != nil { |
| 2608 | return -1, -1, -1, err |
| 2609 | } |
| 2610 | return major, minor, patch, err |
| 2611 | } |
| 2612 | |
| 2613 | // Check for minimum server requirement. |
| 2614 | func (nc *Conn) serverMinVersion(major, minor, patch int) bool { |