Move the check for whether walreceiver has authenticated as a superuser

from walsender.c, where it didn't really belong, to postinit.c where it does
belong (and is essentially free, too).
This commit is contained in:
Tom Lane 2010-04-21 00:51:57 +00:00
parent ea46000a40
commit a3c6d10575
2 changed files with 8 additions and 8 deletions

View File

@ -30,7 +30,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.16 2010/04/12 10:18:50 heikki Exp $ * $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.17 2010/04/21 00:51:56 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -47,13 +47,13 @@
#include "replication/walsender.h" #include "replication/walsender.h"
#include "storage/fd.h" #include "storage/fd.h"
#include "storage/ipc.h" #include "storage/ipc.h"
#include "storage/lock.h"
#include "storage/pmsignal.h" #include "storage/pmsignal.h"
#include "tcop/tcopprot.h" #include "tcop/tcopprot.h"
#include "utils/guc.h" #include "utils/guc.h"
#include "utils/memutils.h" #include "utils/memutils.h"
#include "utils/ps_status.h" #include "utils/ps_status.h"
/* Array of WalSnds in shared memory */ /* Array of WalSnds in shared memory */
WalSndCtlData *WalSndCtl = NULL; WalSndCtlData *WalSndCtl = NULL;
@ -114,11 +114,6 @@ WalSenderMain(void)
{ {
MemoryContext walsnd_context; MemoryContext walsnd_context;
if (!superuser())
ereport(FATAL,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("must be superuser to start walsender")));
if (RecoveryInProgress()) if (RecoveryInProgress())
ereport(FATAL, ereport(FATAL,
(errcode(ERRCODE_CANNOT_CONNECT_NOW), (errcode(ERRCODE_CANNOT_CONNECT_NOW),

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.210 2010/04/20 23:48:47 tgl Exp $ * $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.211 2010/04/21 00:51:57 tgl Exp $
* *
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
@ -624,6 +624,11 @@ InitPostgres(const char *in_dbname, Oid dboid, const char *username,
if (am_walsender) if (am_walsender)
{ {
Assert(!bootstrap); Assert(!bootstrap);
/* must have authenticated as a superuser */
if (!am_superuser)
ereport(FATAL,
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
errmsg("must be superuser to start walsender")));
/* report this backend in the PgBackendStatus array */ /* report this backend in the PgBackendStatus array */
pgstat_bestart(); pgstat_bestart();
/* close the transaction we started above */ /* close the transaction we started above */