42 int loglevel = is_server_start ?
ERROR :
LOG;
59 errmsg(
"could not execute command \"%s\": %m",
64 if (!fgets(
buf, size, fh))
71 errmsg(
"could not read from command \"%s\": %m",
83 errmsg(
"could not close pipe to external command: %m")));
86 else if (pclose_rc != 0)
91 errmsg(
"command \"%s\" failed",
112 int loglevel = isServerStart ?
FATAL :
LOG;
119 errmsg(
"could not access private key file \"%s\": %m",
128 (
errcode(ERRCODE_CONFIG_FILE_ERROR),
129 errmsg(
"private key file \"%s\" is not a regular file",
150 #if !defined(WIN32) && !defined(__CYGWIN__)
151 if (
buf.st_uid != geteuid() &&
buf.st_uid != 0)
154 (
errcode(ERRCODE_CONFIG_FILE_ERROR),
155 errmsg(
"private key file \"%s\" must be owned by the database user or root",
164 (
errcode(ERRCODE_CONFIG_FILE_ERROR),
165 errmsg(
"private key file \"%s\" has group or world access",
167 errdetail(
"File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root.")));
bool check_ssl_key_file_permissions(const char *ssl_key_file, bool isServerStart)
int run_ssl_passphrase_command(const char *prompt, bool is_server_start, char *buf, int size)
char * ssl_passphrase_command
int errdetail_internal(const char *fmt,...)
int errcode_for_file_access(void)
int errdetail(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
int ClosePipeStream(FILE *file)
FILE * OpenPipeStream(const char *command, const char *mode)
Assert(fmt[strlen(fmt) - 1] !='\n')
void pfree(void *pointer)
char * replace_percent_placeholders(const char *instr, const char *param_name, const char *letters,...)
void explicit_bzero(void *buf, size_t len)
int pg_strip_crlf(char *str)
char * wait_result_to_str(int exitstatus)