|
|
|
|
@ -510,7 +510,7 @@ void PostgreSQL::heartbeat()
|
|
|
|
|
const char *publicIdentity = publicId; |
|
|
|
|
const char *hostname = hostnameTmp; |
|
|
|
|
|
|
|
|
|
PGconn *conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
PGconn *conn = getPgConn(); |
|
|
|
|
if (PQstatus(conn) == CONNECTION_BAD) { |
|
|
|
|
fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
@ -519,7 +519,7 @@ void PostgreSQL::heartbeat()
|
|
|
|
|
while (_run == 1) { |
|
|
|
|
if(PQstatus(conn) != CONNECTION_OK) { |
|
|
|
|
PQfinish(conn); |
|
|
|
|
conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
conn = getPgConn(); |
|
|
|
|
} |
|
|
|
|
if (conn) { |
|
|
|
|
std::string major = std::to_string(ZEROTIER_ONE_VERSION_MAJOR); |
|
|
|
|
@ -566,7 +566,7 @@ void PostgreSQL::heartbeat()
|
|
|
|
|
|
|
|
|
|
void PostgreSQL::membersDbWatcher() |
|
|
|
|
{ |
|
|
|
|
PGconn *conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
PGconn *conn = getPgConn(NO_OVERRIDE); |
|
|
|
|
if (PQstatus(conn) == CONNECTION_BAD) { |
|
|
|
|
fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
@ -619,7 +619,7 @@ void PostgreSQL::membersDbWatcher()
|
|
|
|
|
|
|
|
|
|
void PostgreSQL::networksDbWatcher() |
|
|
|
|
{ |
|
|
|
|
PGconn *conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
PGconn *conn = getPgConn(NO_OVERRIDE); |
|
|
|
|
if (PQstatus(conn) == CONNECTION_BAD) { |
|
|
|
|
fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
@ -670,7 +670,7 @@ void PostgreSQL::networksDbWatcher()
|
|
|
|
|
|
|
|
|
|
void PostgreSQL::commitThread() |
|
|
|
|
{ |
|
|
|
|
PGconn *conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
PGconn *conn = getPgConn(); |
|
|
|
|
if (PQstatus(conn) == CONNECTION_BAD) { |
|
|
|
|
fprintf(stderr, "ERROR: Connection to database failed: %s\n", PQerrorMessage(conn)); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
@ -1146,7 +1146,7 @@ void PostgreSQL::commitThread()
|
|
|
|
|
|
|
|
|
|
void PostgreSQL::onlineNotificationThread() |
|
|
|
|
{ |
|
|
|
|
PGconn *conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
PGconn *conn = getPgConn(); |
|
|
|
|
if (PQstatus(conn) == CONNECTION_BAD) { |
|
|
|
|
fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn)); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
@ -1161,7 +1161,7 @@ void PostgreSQL::onlineNotificationThread()
|
|
|
|
|
if (PQstatus(conn) != CONNECTION_OK) { |
|
|
|
|
fprintf(stderr, "ERROR: Online Notification thread lost connection to Postgres."); |
|
|
|
|
PQfinish(conn); |
|
|
|
|
conn = PQconnectdb(_connString.c_str()); |
|
|
|
|
conn = getPgConn(); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -1328,4 +1328,15 @@ void PostgreSQL::onlineNotificationThread()
|
|
|
|
|
PQfinish(conn); |
|
|
|
|
exit(5); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PGconn *PostgreSQL::getPgConn(OverrideMode m) { |
|
|
|
|
if (m == ALLOW_PGBOUNCER_OVERRIDE) { |
|
|
|
|
char *connStr = getenv("PGBOUNCER_CONNSTR"); |
|
|
|
|
if (connStr != NULL) { |
|
|
|
|
return PQconnectdb(connStr); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return PQconnectdb(_connString.c_str()); |
|
|
|
|
} |
|
|
|
|
#endif //ZT_CONTROLLER_USE_LIBPQ
|
|
|
|
|
|