diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 77 |
1 files changed, 31 insertions, 46 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 1e3edfcb908..010adfe7963 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -37,7 +37,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.317 2003/05/02 21:59:31 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.318 2003/05/02 22:01:51 momjian Exp $ * * NOTES * @@ -256,12 +256,11 @@ static void dummy_handler(SIGNAL_ARGS); static void CleanupProc(int pid, int exitstatus); static void LogChildExit(int lev, const char *procname, int pid, int exitstatus); -static int BackendFinalize(Port *port); +static int DoBackend(Port *port); void ExitPostmaster(int status); static void usage(const char *); static int ServerLoop(void); static int BackendStartup(Port *port); -static void BackendFork(Port *port, Backend *bn); static int ProcessStartupPacket(Port *port, bool SSLdone); static void processCancelRequest(Port *port, void *pkt); static int initMasks(fd_set *rmask, fd_set *wmask); @@ -571,9 +570,6 @@ PostmasterMain(int argc, char *argv[]) SetDataDir(potential_DataDir); ProcessConfigFile(PGC_POSTMASTER); -#ifdef EXEC_BACKEND - write_nondefault_variables(PGC_POSTMASTER); -#endif /* * Check for invalid combinations of GUC settings. @@ -1235,7 +1231,7 @@ ProcessStartupPacket(Port *port, bool SSLdone) * Now fetch parameters out of startup packet and save them into the * Port structure. All data structures attached to the Port struct * must be allocated in TopMemoryContext so that they won't disappear - * when we pass them to PostgresMain (see BackendFinalize). We need not worry + * when we pass them to PostgresMain (see DoBackend). We need not worry * about leaking this storage on failure, since we aren't in the postmaster * process anymore. */ @@ -1572,9 +1568,6 @@ SIGHUP_handler(SIGNAL_ARGS) elog(LOG, "Received SIGHUP, reloading configuration files"); SignalChildren(SIGHUP); ProcessConfigFile(PGC_SIGHUP); -#ifdef EXEC_BACKEND - write_nondefault_variables(PGC_SIGHUP); -#endif load_hba(); load_ident(); } @@ -2060,7 +2053,28 @@ BackendStartup(Port *port) pid = fork(); if (pid == 0) /* child */ - BackendFork(port, bn); /* never returns */ + { + int status; + +#ifdef LINUX_PROFILE + setitimer(ITIMER_PROF, &prof_itimer, NULL); +#endif + +#ifdef __BEOS__ + /* Specific beos backend startup actions */ + beos_backend_startup(); +#endif + free(bn); + + status = DoBackend(port); + if (status != 0) + { + elog(LOG, "connection startup failed"); + proc_exit(status); + } + else + proc_exit(0); + } /* in parent, error */ if (pid < 0) @@ -2094,31 +2108,6 @@ BackendStartup(Port *port) } -static void -BackendFork(Port *port, Backend *bn) -{ - int status; - -#ifdef LINUX_PROFILE - setitimer(ITIMER_PROF, &prof_itimer, NULL); -#endif - -#ifdef __BEOS__ - /* Specific beos backend startup actions */ - beos_backend_startup(); -#endif - free(bn); - - status = BackendFinalize(port); - if (status != 0) - { - elog(LOG, "connection startup failed"); - proc_exit(status); - } - else - proc_exit(0); -} - /* * Try to report backend fork() failure to client before we close the * connection. Since we do not care to risk blocking the postmaster on @@ -2184,7 +2173,7 @@ split_opts(char **argv, int *argcp, char *s) } /* - * BackendFinalize -- perform authentication, and if successful, set up the + * DoBackend -- perform authentication, and if successful, set up the * backend's argument list and invoke backend main(). * * This used to perform an execv() but we no longer exec the backend; @@ -2195,7 +2184,7 @@ split_opts(char **argv, int *argcp, char *s) * If PostgresMain() fails, return status. */ static int -BackendFinalize(Port *port) +DoBackend(Port *port) { char *remote_host; char **av; @@ -2232,10 +2221,6 @@ BackendFinalize(Port *port) /* Reset MyProcPid to new backend's pid */ MyProcPid = getpid(); -#ifdef EXEC_BACKEND - read_nondefault_variables(); -#endif - /* * Initialize libpq and enable reporting of elog errors to the client. * Must do this now because authentication uses libpq to send @@ -2263,7 +2248,7 @@ BackendFinalize(Port *port) unsigned short remote_port; char *host_addr; #ifdef HAVE_IPV6 - char ip_hostinfo[INET6_ADDRSTRLEN]; + char ip_hostinfo[INET6_ADDRSTRLEN]; #else char ip_hostinfo[INET_ADDRSTRLEN]; #endif @@ -2309,7 +2294,7 @@ BackendFinalize(Port *port) } else { - /* not AF_INET */ + /* not AF_INET */ remote_host = "[local]"; if (Log_connections) @@ -2333,7 +2318,7 @@ BackendFinalize(Port *port) * indefinitely. PreAuthDelay doesn't count against the time limit. */ if (!enable_sig_alarm(AuthenticationTimeout * 1000, false)) - elog(FATAL, "BackendFinalize: Unable to set timer for auth timeout"); + elog(FATAL, "DoBackend: Unable to set timer for auth timeout"); /* * Receive the startup packet (which might turn out to be a cancel @@ -2362,7 +2347,7 @@ BackendFinalize(Port *port) * SIGTERM/SIGQUIT again until backend startup is complete. */ if (!disable_sig_alarm(false)) - elog(FATAL, "BackendFinalize: Unable to disable timer for auth timeout"); + elog(FATAL, "DoBackend: Unable to disable timer for auth timeout"); PG_SETMASK(&BlockSig); if (Log_connections) |