mirror of https://github.com/yandex/odyssey.git
odissey: add custom route database field
This commit is contained in:
parent
5035c33320
commit
18a13e60f2
|
@ -49,6 +49,7 @@ static odkeyword_t od_config_keywords[] =
|
||||||
od_keyword("routing", OD_LROUTING),
|
od_keyword("routing", OD_LROUTING),
|
||||||
od_keyword("route", OD_LROUTE),
|
od_keyword("route", OD_LROUTE),
|
||||||
od_keyword("mode", OD_LMODE),
|
od_keyword("mode", OD_LMODE),
|
||||||
|
od_keyword("database", OD_LDATABASE),
|
||||||
od_keyword("user", OD_LUSER),
|
od_keyword("user", OD_LUSER),
|
||||||
od_keyword("password", OD_LPASSWORD),
|
od_keyword("password", OD_LPASSWORD),
|
||||||
od_keyword("pool_min", OD_LPOOL_MIN),
|
od_keyword("pool_min", OD_LPOOL_MIN),
|
||||||
|
@ -264,7 +265,7 @@ od_configparse_route(odconfig_t *config, odtoken_t *name)
|
||||||
od_schemeroute_add(config->scheme);
|
od_schemeroute_add(config->scheme);
|
||||||
if (route == NULL)
|
if (route == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
route->database = name->v.string;
|
route->target = name->v.string;
|
||||||
if (od_confignext(config, '{', NULL) == -1)
|
if (od_confignext(config, '{', NULL) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
odtoken_t *tk;
|
odtoken_t *tk;
|
||||||
|
@ -298,6 +299,12 @@ od_configparse_route(odconfig_t *config, odtoken_t *name)
|
||||||
return -1;
|
return -1;
|
||||||
route->pool_max = tk->v.num;
|
route->pool_max = tk->v.num;
|
||||||
continue;
|
continue;
|
||||||
|
/* database */
|
||||||
|
case OD_LDATABASE:
|
||||||
|
if (od_confignext(config, OD_LSTRING, &tk) == -1)
|
||||||
|
return -1;
|
||||||
|
route->database = tk->v.string;
|
||||||
|
continue;
|
||||||
/* user */
|
/* user */
|
||||||
case OD_LUSER:
|
case OD_LUSER:
|
||||||
if (od_confignext(config, OD_LSTRING, &tk) == -1)
|
if (od_confignext(config, OD_LSTRING, &tk) == -1)
|
||||||
|
|
|
@ -26,6 +26,7 @@ enum {
|
||||||
OD_LROUTING,
|
OD_LROUTING,
|
||||||
OD_LROUTE,
|
OD_LROUTE,
|
||||||
OD_LMODE,
|
OD_LMODE,
|
||||||
|
OD_LDATABASE,
|
||||||
OD_LUSER,
|
OD_LUSER,
|
||||||
OD_LPASSWORD,
|
OD_LPASSWORD,
|
||||||
OD_LPOOL_MIN,
|
OD_LPOOL_MIN,
|
||||||
|
|
|
@ -75,6 +75,19 @@ od_schemeserver_match(odscheme_t *scheme, char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
odscheme_route_t*
|
||||||
|
od_schemeroute_match(odscheme_t *scheme, char *name)
|
||||||
|
{
|
||||||
|
odlist_t *i;
|
||||||
|
od_listforeach(&scheme->routing_table, i) {
|
||||||
|
odscheme_route_t *route;
|
||||||
|
route = od_container_of(i, odscheme_route_t, link);
|
||||||
|
if (strcmp(route->target, name) == 0)
|
||||||
|
return route;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
odscheme_route_t*
|
odscheme_route_t*
|
||||||
od_schemeroute_add(odscheme_t *scheme)
|
od_schemeroute_add(odscheme_t *scheme)
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,6 +35,7 @@ struct odscheme_server_t {
|
||||||
|
|
||||||
struct odscheme_route_t {
|
struct odscheme_route_t {
|
||||||
odscheme_server_t *server;
|
odscheme_server_t *server;
|
||||||
|
char *target;
|
||||||
char *route;
|
char *route;
|
||||||
char *database;
|
char *database;
|
||||||
char *user;
|
char *user;
|
||||||
|
@ -81,4 +82,7 @@ od_schemeserver_match(odscheme_t*, char*);
|
||||||
odscheme_route_t*
|
odscheme_route_t*
|
||||||
od_schemeroute_add(odscheme_t*);
|
od_schemeroute_add(odscheme_t*);
|
||||||
|
|
||||||
|
odscheme_route_t*
|
||||||
|
od_schemeroute_match(odscheme_t*, char*);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue