mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-27 00:46:29 +00:00
Compare commits
5 Commits
v1.2.0
...
REL1_2_STA
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e479ef4bd1 | ||
|
|
6390a41953 | ||
|
|
d7d91e1c12 | ||
|
|
d5ec394c54 | ||
|
|
f6093386a8 |
30
repmgr.c
30
repmgr.c
@@ -28,6 +28,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/wait.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -125,7 +126,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
|
||||
while ((c = getopt_long(argc, argv, "d:h:p:U:D:f:R:w:k:F:I:v", long_options,
|
||||
while ((c = getopt_long(argc, argv, "d:h:p:U:D:f:R:w:k:FIv", long_options,
|
||||
&optindex)) != -1)
|
||||
{
|
||||
switch (c)
|
||||
@@ -255,7 +256,7 @@ main(int argc, char **argv)
|
||||
break;
|
||||
default:
|
||||
log_err(_("%s: too many command-line arguments (first extra is \"%s\")\n"),
|
||||
progname, argv[optind + 1]);
|
||||
progname, argv[optind]);
|
||||
usage();
|
||||
exit(ERR_BAD_CONFIG);
|
||||
}
|
||||
@@ -1603,11 +1604,18 @@ test_ssh_connection(char *host, char *remote_user)
|
||||
char script[MAXLEN];
|
||||
int r;
|
||||
|
||||
/* On some OS, true is located in a different place than in Linux */
|
||||
#ifdef __FreeBSD__
|
||||
#define TRUEBIN_PATH "/usr/bin/true"
|
||||
#else
|
||||
#define TRUEBIN_PATH "/bin/true"
|
||||
#endif
|
||||
|
||||
/* Check if we have ssh connectivity to host before trying to rsync */
|
||||
if (!remote_user[0])
|
||||
maxlen_snprintf(script, "ssh -o Batchmode=yes %s /bin/true", host);
|
||||
maxlen_snprintf(script, "ssh -o Batchmode=yes %s %s", host, TRUEBIN_PATH);
|
||||
else
|
||||
maxlen_snprintf(script, "ssh -o Batchmode=yes %s -l %s /bin/true", host, remote_user);
|
||||
maxlen_snprintf(script, "ssh -o Batchmode=yes %s -l %s %s", host, remote_user, TRUEBIN_PATH);
|
||||
|
||||
log_debug(_("command is: %s"), script);
|
||||
r = system(script);
|
||||
@@ -1633,7 +1641,7 @@ copy_remote_files(char *host, char *remote_user, char *remote_path,
|
||||
maxlen_snprintf(rsync_flags, "%s", options.rsync_options);
|
||||
|
||||
if (runtime_options.force)
|
||||
strcat(rsync_flags, " --delete");
|
||||
strcat(rsync_flags, " --delete --checksum");
|
||||
|
||||
if (!remote_user[0])
|
||||
{
|
||||
@@ -1832,20 +1840,24 @@ write_primary_conninfo(char* line)
|
||||
|
||||
/* Environment variable for password (UGLY, please use .pgpass!) */
|
||||
const char *password = getenv("PGPASSWORD");
|
||||
if (password != NULL) {
|
||||
if (password != NULL)
|
||||
{
|
||||
maxlen_snprintf(password_buf, " password=%s", password);
|
||||
}
|
||||
else if (require_password) {
|
||||
else if (require_password)
|
||||
{
|
||||
log_err(_("%s: PGPASSWORD not set, but having one is required\n"),
|
||||
progname);
|
||||
exit(ERR_BAD_PASSWORD);
|
||||
}
|
||||
|
||||
if (runtime_options.host[0]) {
|
||||
if (runtime_options.host[0])
|
||||
{
|
||||
maxlen_snprintf(host_buf, " host=%s", runtime_options.host);
|
||||
}
|
||||
|
||||
if (runtime_options.username[0]) {
|
||||
if (runtime_options.username[0])
|
||||
{
|
||||
maxlen_snprintf(user_buf, " user=%s", runtime_options.username);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user