diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index a46a323881d..c1e553a85be 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -483,7 +483,8 @@ PostmasterMain(int argc, char *argv[]) int status; char *userDoption = NULL; int i; - + bool connection_line_output = false; + MyProcPid = PostmasterPid = getpid(); MyStartTime = time(NULL); @@ -860,10 +861,22 @@ PostmasterMain(int argc, char *argv[]) UnixSocketDir, ListenSocket, MAXLISTEN); else + { status = StreamServerPort(AF_UNSPEC, curhost, (unsigned short) PostPortNumber, UnixSocketDir, ListenSocket, MAXLISTEN); + /* must supply a valid listen_address for PQping() */ + if (!connection_line_output) + { + char line[MAXPGPATH + 2]; + + sprintf(line, "%s\n", curhost); + AddToLockFile(LOCK_FILE_LINES - 1, line); + connection_line_output = true; + } + } + if (status == STATUS_OK) success++; else @@ -880,6 +893,10 @@ PostmasterMain(int argc, char *argv[]) pfree(rawstring); } + /* Supply an empty listen_address line for PQping() */ + if (!connection_line_output) + AddToLockFile(LOCK_FILE_LINES - 1, "\n"); + #ifdef USE_BONJOUR /* Register for Bonjour only if we opened TCP socket(s) */ if (enable_bonjour && ListenSocket[0] != PGINVALID_SOCKET) |