diff --git a/repmgr-client-global.h b/repmgr-client-global.h index b92d1042..c9e262b2 100644 --- a/repmgr-client-global.h +++ b/repmgr-client-global.h @@ -260,5 +260,6 @@ extern void drop_replication_slot_if_exists(PGconn *conn, int node_id, char *slo extern bool check_node_can_attach(TimeLineID local_tli, XLogRecPtr local_xlogpos, PGconn *follow_target_conn, t_node_info *follow_target_node_record, bool is_rejoin); extern void check_shared_library(PGconn *conn); extern bool is_repmgrd_running(PGconn *conn); +extern int parse_repmgr_version(const char *version_string); #endif /* _REPMGR_CLIENT_GLOBAL_H_ */ diff --git a/repmgr-client.c b/repmgr-client.c index 9f8c6e78..6c7e84d9 100644 --- a/repmgr-client.c +++ b/repmgr-client.c @@ -3892,3 +3892,44 @@ is_repmgrd_running(PGconn *conn) return is_running; } + + +/** + * Parse the string returned by "repmgr --version", e.g. "repmgr 4.1.2", + * and return it as a version integer (e.g. 40102). + * + * This is required for backwards compatibility as versions prior to + * 4.3 do not have the --version-number option. + */ +int +parse_repmgr_version(const char *version_string) +{ + int series, major, minor; + int version_integer = UNKNOWN_REPMGR_VERSION_NUM; + PQExpBufferData sscanf_string; + + initPQExpBuffer(&sscanf_string); + + appendPQExpBuffer(&sscanf_string, "%s ", + progname()); + appendPQExpBufferStr(&sscanf_string, "%i.%i.%i"); + + if (sscanf(version_string, sscanf_string.data, &series, &major, &minor) == 3) + { + version_integer = (series * 10000) + (major * 100) + minor; + } + else + { + resetPQExpBuffer(&sscanf_string); + appendPQExpBuffer(&sscanf_string, "%s ", + progname()); + appendPQExpBufferStr(&sscanf_string, "%i.%i"); + + if (sscanf(version_string, "repmgr %i.%i", &series, &major) == 2) + { + version_integer = (series * 10000) + (major * 100); + } + } + + return version_integer; +} diff --git a/sysutils.c b/sysutils.c index c66bfac4..bd0f9f15 100644 --- a/sysutils.c +++ b/sysutils.c @@ -373,42 +373,3 @@ enable_wal_receiver(PGconn *conn, bool wait_startup) } -/** - * Parse the string returned by "repmgr --version", e.g. "repmgr 4.1.2", - * and return it as a version integer (e.g. 40102). - * - * This is required for backwards compatibility as versions prior to - * 4.3 do not have the --version-number option. - */ -int -parse_repmgr_version(const char *version_string) -{ - int series, major, minor; - int version_integer = UNKNOWN_REPMGR_VERSION_NUM; - PQExpBufferData sscanf_string; - - initPQExpBuffer(&sscanf_string); - - appendPQExpBuffer(&sscanf_string, "%s ", - progname()); - appendPQExpBufferStr(&sscanf_string, "%i.%i.%i"); - - if (sscanf(version_string, sscanf_string.data, &series, &major, &minor) == 3) - { - version_integer = (series * 10000) + (major * 100) + minor; - } - else - { - resetPQExpBuffer(&sscanf_string); - appendPQExpBuffer(&sscanf_string, "%s ", - progname()); - appendPQExpBufferStr(&sscanf_string, "%i.%i"); - - if (sscanf(version_string, "repmgr %i.%i", &series, &major) == 2) - { - version_integer = (series * 10000) + (major * 100); - } - } - - return version_integer; -} diff --git a/sysutils.h b/sysutils.h index cc358f67..46249f52 100644 --- a/sysutils.h +++ b/sysutils.h @@ -28,6 +28,4 @@ extern bool remote_command(const char *host, const char *user, const char *comma extern pid_t disable_wal_receiver(PGconn *conn); extern pid_t enable_wal_receiver(PGconn *conn, bool wait_startup); -extern int parse_repmgr_version(const char *version_string); - #endif /* _SYSUTILS_H_ */