diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 5f966532c42..255fe2df352 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.73 1998/01/31 20:14:15 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.74 1998/02/24 15:19:00 scrappy Exp $ * * NOTES * @@ -203,6 +203,10 @@ static void readStartupPacket(char *arg, PacketLen len, char *pkt); static int initMasks(fd_set *rmask, fd_set *wmask); static void RandomSalt(char* salt); +#ifdef CYR_RECODE +void GetCharSetByHost(char *,int,char *); +#endif + extern char *optarg; extern int optind, opterr; @@ -974,7 +978,14 @@ BackendStartup(Port *port) Backend *bn; /* for backend cleanup */ int pid, i; + +#ifdef CYR_RECODE +#define NR_ENVIRONMENT_VBL 6 +char ChTable[80]; +#else #define NR_ENVIRONMENT_VBL 5 +#endif + static char envEntry[NR_ENVIRONMENT_VBL][2 * ARGV_SIZE]; for (i = 0; i < NR_ENVIRONMENT_VBL; ++i) @@ -1000,6 +1011,15 @@ BackendStartup(Port *port) sprintf(envEntry[4], "IPC_KEY=%d", ipc_key); putenv(envEntry[4]); +#ifdef CYR_RECODE + GetCharSetByHost(ChTable,port->raddr.in.sin_addr.s_addr,DataDir); + if(*ChTable != '\0') + { + sprintf(envEntry[5], "PG_RECODETABLE=%s", ChTable); + putenv(envEntry[5]); + } +#endif + if (DebugLvl > 2) { char **p; |