66 errmsg(
"could not execute command \"%s\": %m",
78 errmsg(
"could not read from command \"%s\": %m",
90 errmsg(
"could not close pipe to external command: %m")));
101 errmsg(
"command \"%s\" failed",
130 errmsg(
"could not access private key file \"%s\": %m",
140 errmsg(
"private key file \"%s\" is not a regular file",
161#if !defined(WIN32) && !defined(__CYGWIN__)
166 errmsg(
"private key file \"%s\" must be owned by the database user or root",
176 errmsg(
"private key file \"%s\" has group or world access",
178 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.")));
217 if ((
tokens->length > 1) &&
222 errmsg(
"default and non-SNI entries cannot be mixed with other entries"),
223 errcontext(
"line %d of configuration file \"%s\"",
237 errmsg(
"missing entry at end of line"),
238 errcontext(
"line %d of configuration file \"%s\"",
247 errmsg(
"multiple values specified for SSL certificate"),
248 errcontext(
"line %d of configuration file \"%s\"",
261 errmsg(
"missing entry at end of line"),
262 errcontext(
"line %d of configuration file \"%s\"",
271 errmsg(
"multiple values specified for SSL key"),
272 errcontext(
"line %d of configuration file \"%s\"",
288 errmsg(
"multiple values specified for SSL CA"),
289 errcontext(
"line %d of configuration file \"%s\"",
305 errmsg(
"multiple values specified for SSL passphrase command"),
306 errcontext(
"line %d of configuration file \"%s\"",
333 errmsg(
"extra fields at end of line"),
334 errcontext(
"line %d of configuration file \"%s\"",
343 errmsg(
"incorrect syntax for boolean value SSL_passphrase_cmd_reload"),
344 errcontext(
"line %d of configuration file \"%s\"",
381 *err_msg =
psprintf(
"cannot load config from \"%s\", return variable missing",
429 *err_msg =
psprintf(
"loading config from \"%s\" failed due to parsing error",
bool check_ssl_key_file_permissions(const char *ssl_key_file, bool isServerStart)
static HostsLine * parse_hosts_line(TokenizedAuthLine *tok_line, int elevel)
int load_hosts(List **hosts, char **err_msg)
int run_ssl_passphrase_command(const char *cmd, const char *prompt, bool is_server_start, char *buf, int size)
bool parse_bool(const char *value, bool *result)
#define Assert(condition)
int errcode_for_file_access(void)
int errcode(int sqlerrcode)
int int errdetail_internal(const char *fmt,...) pg_attribute_printf(1
int errdetail(const char *fmt,...) pg_attribute_printf(1
#define ereport(elevel,...)
FILE * OpenPipeStream(const char *command, const char *mode)
int ClosePipeStream(FILE *file)
void free_auth_file(FILE *file, int depth)
void tokenize_auth_file(const char *filename, FILE *file, List **tok_lines, int elevel, int depth)
FILE * open_auth_file(const char *filename, int elevel, int depth, char **err_msg)
List * lappend(List *list, void *datum)
char * pstrdup(const char *in)
void pfree(void *pointer)
void * palloc0(Size size)
char * replace_percent_placeholders(const char *instr, const char *param_name, const char *letters,...)
#define foreach_ptr(type, var, lst)
static ListCell * list_head(const List *l)
static ListCell * lnext(const List *l, const ListCell *c)
static char buf[DEFAULT_XLOG_SEG_SIZE]
void explicit_bzero(void *buf, size_t len)
char * psprintf(const char *fmt,...)
int pg_strip_crlf(char *str)
char * wait_result_to_str(int exitstatus)