+static void version_completed(void attribute((unused)) *v,
+ const char attribute((unused)) *err,
+ const char *version) {
+ long major, minor, patch, dev;
+
+ if(!version) {
+ server_version = 0;
+ server_version_bytes = 0;
+ return;
+ }
+ server_version = version;
+ server_version_bytes = 0;
+ major = strtol(version, (char **)&version, 10);
+ if(*version != '.')
+ return;
+ ++version;
+ minor = strtol(version, (char **)&version, 10);
+ if(*version == '.') {
+ ++version;
+ patch = strtol(version, (char **)&version, 10);
+ } else
+ patch = 0;
+ if(*version) {
+ if(*version == '+') {
+ dev = 1;
+ ++version;
+ }
+ if(*version)
+ dev = 2;
+ } else
+ dev = 0;
+ server_version_bytes = (major << 24) + (minor << 16) + (patch << 8) + dev;
+}
+