mirror of https://github.com/yandex/odyssey.git
odissey: add client_fwd_error configuration tweak
This commit is contained in:
parent
a08eb30987
commit
e9eeca8a95
|
@ -77,6 +77,7 @@ database default
|
|||
pool_discard yes
|
||||
pool_rollback yes
|
||||
|
||||
#client_fwd_error no
|
||||
#client_max 100
|
||||
#client_encoding "UTF8"
|
||||
#datestyle "ISO"
|
||||
|
|
109
sources/config.c
109
sources/config.c
|
@ -64,6 +64,7 @@ enum
|
|||
OD_LPIPELINING,
|
||||
OD_LWORKERS,
|
||||
OD_LCLIENT_MAX,
|
||||
OD_LCLIENT_FWD_ERROR,
|
||||
OD_LCLIENT_ENCODING,
|
||||
OD_LDATESTYLE,
|
||||
OD_LTIMEZONE,
|
||||
|
@ -105,60 +106,61 @@ typedef struct
|
|||
static od_keyword_t od_config_keywords[] =
|
||||
{
|
||||
/* main */
|
||||
od_keyword("yes", OD_LYES),
|
||||
od_keyword("no", OD_LNO),
|
||||
od_keyword("include", OD_LINCLUDE),
|
||||
od_keyword("daemonize", OD_LDAEMONIZE),
|
||||
od_keyword("log_debug", OD_LLOG_DEBUG),
|
||||
od_keyword("log_to_stdout", OD_LLOG_TO_STDOUT),
|
||||
od_keyword("log_config", OD_LLOG_CONFIG),
|
||||
od_keyword("log_session", OD_LLOG_SESSION),
|
||||
od_keyword("log_file", OD_LLOG_FILE),
|
||||
od_keyword("log_format", OD_LLOG_FORMAT),
|
||||
od_keyword("log_stats", OD_LLOG_STATS),
|
||||
od_keyword("pid_file", OD_LPID_FILE),
|
||||
od_keyword("syslog", OD_LSYSLOG),
|
||||
od_keyword("syslog_ident", OD_LSYSLOG_IDENT),
|
||||
od_keyword("syslog_facility", OD_LSYSLOG_FACILITY),
|
||||
od_keyword("stats_interval", OD_LSTATS_INTERVAL),
|
||||
od_keyword("yes", OD_LYES),
|
||||
od_keyword("no", OD_LNO),
|
||||
od_keyword("include", OD_LINCLUDE),
|
||||
od_keyword("daemonize", OD_LDAEMONIZE),
|
||||
od_keyword("log_debug", OD_LLOG_DEBUG),
|
||||
od_keyword("log_to_stdout", OD_LLOG_TO_STDOUT),
|
||||
od_keyword("log_config", OD_LLOG_CONFIG),
|
||||
od_keyword("log_session", OD_LLOG_SESSION),
|
||||
od_keyword("log_file", OD_LLOG_FILE),
|
||||
od_keyword("log_format", OD_LLOG_FORMAT),
|
||||
od_keyword("log_stats", OD_LLOG_STATS),
|
||||
od_keyword("pid_file", OD_LPID_FILE),
|
||||
od_keyword("syslog", OD_LSYSLOG),
|
||||
od_keyword("syslog_ident", OD_LSYSLOG_IDENT),
|
||||
od_keyword("syslog_facility", OD_LSYSLOG_FACILITY),
|
||||
od_keyword("stats_interval", OD_LSTATS_INTERVAL),
|
||||
/* listen */
|
||||
od_keyword("listen", OD_LLISTEN),
|
||||
od_keyword("host", OD_LHOST),
|
||||
od_keyword("port", OD_LPORT),
|
||||
od_keyword("backlog", OD_LBACKLOG),
|
||||
od_keyword("nodelay", OD_LNODELAY),
|
||||
od_keyword("keepalive", OD_LKEEPALIVE),
|
||||
od_keyword("readahead", OD_LREADAHEAD),
|
||||
od_keyword("pipelining", OD_LPIPELINING),
|
||||
od_keyword("workers", OD_LWORKERS),
|
||||
od_keyword("client_max", OD_LCLIENT_MAX),
|
||||
od_keyword("client_encoding", OD_LCLIENT_ENCODING),
|
||||
od_keyword("datestyle", OD_LDATESTYLE),
|
||||
od_keyword("timezone", OD_LTIMEZONE),
|
||||
od_keyword("tls", OD_LTLS),
|
||||
od_keyword("tls_ca_file", OD_LTLS_CA_FILE),
|
||||
od_keyword("tls_key_file", OD_LTLS_KEY_FILE),
|
||||
od_keyword("tls_cert_file", OD_LTLS_CERT_FILE),
|
||||
od_keyword("tls_protocols", OD_LTLS_PROTOCOLS),
|
||||
od_keyword("listen", OD_LLISTEN),
|
||||
od_keyword("host", OD_LHOST),
|
||||
od_keyword("port", OD_LPORT),
|
||||
od_keyword("backlog", OD_LBACKLOG),
|
||||
od_keyword("nodelay", OD_LNODELAY),
|
||||
od_keyword("keepalive", OD_LKEEPALIVE),
|
||||
od_keyword("readahead", OD_LREADAHEAD),
|
||||
od_keyword("pipelining", OD_LPIPELINING),
|
||||
od_keyword("workers", OD_LWORKERS),
|
||||
od_keyword("client_max", OD_LCLIENT_MAX),
|
||||
od_keyword("client_fwd_error", OD_LCLIENT_FWD_ERROR),
|
||||
od_keyword("client_encoding", OD_LCLIENT_ENCODING),
|
||||
od_keyword("datestyle", OD_LDATESTYLE),
|
||||
od_keyword("timezone", OD_LTIMEZONE),
|
||||
od_keyword("tls", OD_LTLS),
|
||||
od_keyword("tls_ca_file", OD_LTLS_CA_FILE),
|
||||
od_keyword("tls_key_file", OD_LTLS_KEY_FILE),
|
||||
od_keyword("tls_cert_file", OD_LTLS_CERT_FILE),
|
||||
od_keyword("tls_protocols", OD_LTLS_PROTOCOLS),
|
||||
/* storage */
|
||||
od_keyword("storage", OD_LSTORAGE),
|
||||
od_keyword("type", OD_LTYPE),
|
||||
od_keyword("default", OD_LDEFAULT),
|
||||
od_keyword("storage", OD_LSTORAGE),
|
||||
od_keyword("type", OD_LTYPE),
|
||||
od_keyword("default", OD_LDEFAULT),
|
||||
/* database */
|
||||
od_keyword("database", OD_LDATABASE),
|
||||
od_keyword("user", OD_LUSER),
|
||||
od_keyword("password", OD_LPASSWORD),
|
||||
od_keyword("pool", OD_LPOOL),
|
||||
od_keyword("pool_size", OD_LPOOL_SIZE),
|
||||
od_keyword("pool_timeout", OD_LPOOL_TIMEOUT),
|
||||
od_keyword("pool_ttl", OD_LPOOL_TTL),
|
||||
od_keyword("pool_cancel", OD_LPOOL_CANCEL),
|
||||
od_keyword("pool_discard", OD_LPOOL_DISCARD),
|
||||
od_keyword("pool_rollback", OD_LPOOL_ROLLBACK),
|
||||
od_keyword("storage_db", OD_LSTORAGE_DB),
|
||||
od_keyword("storage_user", OD_LSTORAGE_USER),
|
||||
od_keyword("storage_password", OD_LSTORAGE_PASSWORD),
|
||||
od_keyword("authentication", OD_LAUTHENTICATION),
|
||||
od_keyword("database", OD_LDATABASE),
|
||||
od_keyword("user", OD_LUSER),
|
||||
od_keyword("password", OD_LPASSWORD),
|
||||
od_keyword("pool", OD_LPOOL),
|
||||
od_keyword("pool_size", OD_LPOOL_SIZE),
|
||||
od_keyword("pool_timeout", OD_LPOOL_TIMEOUT),
|
||||
od_keyword("pool_ttl", OD_LPOOL_TTL),
|
||||
od_keyword("pool_cancel", OD_LPOOL_CANCEL),
|
||||
od_keyword("pool_discard", OD_LPOOL_DISCARD),
|
||||
od_keyword("pool_rollback", OD_LPOOL_ROLLBACK),
|
||||
od_keyword("storage_db", OD_LSTORAGE_DB),
|
||||
od_keyword("storage_user", OD_LSTORAGE_USER),
|
||||
od_keyword("storage_password", OD_LSTORAGE_PASSWORD),
|
||||
od_keyword("authentication", OD_LAUTHENTICATION),
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -623,6 +625,11 @@ od_config_parse_route(od_config_t *config, char *db_name, int db_name_len,
|
|||
return -1;
|
||||
route->client_max_set = 1;
|
||||
continue;
|
||||
/* client_fwd_error */
|
||||
case OD_LCLIENT_FWD_ERROR:
|
||||
if (! od_config_next_yes_no(config, &route->client_fwd_error))
|
||||
return -1;
|
||||
continue;
|
||||
/* client_encoding */
|
||||
case OD_LCLIENT_ENCODING:
|
||||
if (! od_config_next_string(config, &route->client_encoding))
|
||||
|
|
|
@ -561,6 +561,10 @@ int od_schemeroute_compare(od_schemeroute_t *a, od_schemeroute_t *b)
|
|||
if (a->client_max != b->client_max)
|
||||
return 0;
|
||||
|
||||
/* client_fwd_error */
|
||||
if (a->client_fwd_error != b->client_fwd_error)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -846,19 +850,19 @@ void od_scheme_print(od_scheme_t *scheme, od_logger_t *logger, int routes_only)
|
|||
od_schemelisten_t *listen;
|
||||
listen = od_container_of(i, od_schemelisten_t, link);
|
||||
od_log(logger, "listen");
|
||||
od_log(logger, " host %s", listen->host);
|
||||
od_log(logger, " port %d", listen->port);
|
||||
od_log(logger, " backlog %d", listen->backlog);
|
||||
od_log(logger, " host %s", listen->host);
|
||||
od_log(logger, " port %d", listen->port);
|
||||
od_log(logger, " backlog %d", listen->backlog);
|
||||
if (listen->tls)
|
||||
od_log(logger, " tls %s", listen->tls);
|
||||
od_log(logger, " tls %s", listen->tls);
|
||||
if (listen->tls_ca_file)
|
||||
od_log(logger, " tls_ca_file %s", listen->tls_ca_file);
|
||||
od_log(logger, " tls_ca_file %s", listen->tls_ca_file);
|
||||
if (listen->tls_key_file)
|
||||
od_log(logger, " tls_key_file %s", listen->tls_key_file);
|
||||
od_log(logger, " tls_key_file %s", listen->tls_key_file);
|
||||
if (listen->tls_cert_file)
|
||||
od_log(logger, " tls_cert_file %s", listen->tls_cert_file);
|
||||
od_log(logger, " tls_cert_file %s", listen->tls_cert_file);
|
||||
if (listen->tls_protocols)
|
||||
od_log(logger, " tls_protocols %s", listen->tls_protocols);
|
||||
od_log(logger, " tls_protocols %s", listen->tls_protocols);
|
||||
od_log(logger, "");
|
||||
}
|
||||
log_routes:;
|
||||
|
@ -869,45 +873,48 @@ log_routes:;
|
|||
route->db_name,
|
||||
route->user_name, route->version,
|
||||
route->is_obsolete ? "(obsolete)" : "");
|
||||
od_log(logger, " authentication %s", route->auth);
|
||||
od_log(logger, " pool %s", route->pool_sz);
|
||||
od_log(logger, " pool_size %d", route->pool_size);
|
||||
od_log(logger, " pool_timeout %d", route->pool_timeout);
|
||||
od_log(logger, " pool_ttl %d", route->pool_ttl);
|
||||
od_log(logger, " pool_cancel %s",
|
||||
od_log(logger, " authentication %s", route->auth);
|
||||
od_log(logger, " pool %s", route->pool_sz);
|
||||
od_log(logger, " pool_size %d", route->pool_size);
|
||||
od_log(logger, " pool_timeout %d", route->pool_timeout);
|
||||
od_log(logger, " pool_ttl %d", route->pool_ttl);
|
||||
od_log(logger, " pool_cancel %s",
|
||||
route->pool_cancel ? "yes" : "no");
|
||||
od_log(logger, " pool_rollback %s",
|
||||
od_log(logger, " pool_rollback %s",
|
||||
route->pool_rollback ? "yes" : "no");
|
||||
od_log(logger, " pool_discard %s",
|
||||
od_log(logger, " pool_discard %s",
|
||||
route->pool_discard ? "yes" : "no");
|
||||
if (route->client_max_set)
|
||||
od_log(logger, " client_max %d", route->client_max);
|
||||
od_log(logger, " client_max %d", route->client_max);
|
||||
if (route->client_fwd_error)
|
||||
od_log(logger, " client_fwd_error %s",
|
||||
od_scheme_yes_no(route->client_fwd_error));
|
||||
if (route->client_encoding)
|
||||
od_log(logger, " client_encoding %s", route->client_encoding);
|
||||
od_log(logger, " client_encoding %s", route->client_encoding);
|
||||
if (route->datestyle)
|
||||
od_log(logger, " datestyle %s", route->datestyle);
|
||||
od_log(logger, " datestyle %s", route->datestyle);
|
||||
if (route->timezone)
|
||||
od_log(logger, " timezone %s", route->timezone);
|
||||
od_log(logger, " storage %s", route->storage_name);
|
||||
od_log(logger, " type %s", route->storage->type);
|
||||
od_log(logger, " timezone %s", route->timezone);
|
||||
od_log(logger, " storage %s", route->storage_name);
|
||||
od_log(logger, " type %s", route->storage->type);
|
||||
if (route->storage->host)
|
||||
od_log(logger, " host %s", route->storage->host);
|
||||
od_log(logger, " host %s", route->storage->host);
|
||||
if (route->storage->port)
|
||||
od_log(logger, " port %d", route->storage->port);
|
||||
od_log(logger, " port %d", route->storage->port);
|
||||
if (route->storage->tls)
|
||||
od_log(logger, " tls %s", route->storage->tls);
|
||||
od_log(logger, " tls %s", route->storage->tls);
|
||||
if (route->storage->tls_ca_file)
|
||||
od_log(logger, " tls_ca_file %s", route->storage->tls_ca_file);
|
||||
od_log(logger, " tls_ca_file %s", route->storage->tls_ca_file);
|
||||
if (route->storage->tls_key_file)
|
||||
od_log(logger, " tls_key_file %s", route->storage->tls_key_file);
|
||||
od_log(logger, " tls_key_file %s", route->storage->tls_key_file);
|
||||
if (route->storage->tls_cert_file)
|
||||
od_log(logger, " tls_cert_file %s", route->storage->tls_cert_file);
|
||||
od_log(logger, " tls_cert_file %s", route->storage->tls_cert_file);
|
||||
if (route->storage->tls_protocols)
|
||||
od_log(logger, " tls_protocols %s", route->storage->tls_protocols);
|
||||
od_log(logger, " tls_protocols %s", route->storage->tls_protocols);
|
||||
if (route->storage_db)
|
||||
od_log(logger, " storage_db %s", route->storage_db);
|
||||
od_log(logger, " storage_db %s", route->storage_db);
|
||||
if (route->storage_user)
|
||||
od_log(logger, " storage_user %s", route->storage_user);
|
||||
od_log(logger, " storage_user %s", route->storage_user);
|
||||
od_log(logger, "");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,13 +90,6 @@ struct od_schemeroute
|
|||
int storage_user_len;
|
||||
char *storage_password;
|
||||
int storage_password_len;
|
||||
/* client options */
|
||||
char *client_encoding;
|
||||
int client_encoding_len;
|
||||
char *datestyle;
|
||||
int datestyle_len;
|
||||
char *timezone;
|
||||
int timezone_len;
|
||||
/* pool */
|
||||
od_pooling_t pool;
|
||||
char *pool_sz;
|
||||
|
@ -106,7 +99,15 @@ struct od_schemeroute
|
|||
int pool_cancel;
|
||||
int pool_discard;
|
||||
int pool_rollback;
|
||||
/* limits */
|
||||
/* client options */
|
||||
char *client_encoding;
|
||||
int client_encoding_len;
|
||||
char *datestyle;
|
||||
int datestyle_len;
|
||||
char *timezone;
|
||||
int timezone_len;
|
||||
/* misc */
|
||||
int client_fwd_error;
|
||||
int client_max_set;
|
||||
int client_max;
|
||||
od_list_t link;
|
||||
|
|
Loading…
Reference in New Issue