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("route", OD_LROUTE),
|
||||
od_keyword("mode", OD_LMODE),
|
||||
od_keyword("database", OD_LDATABASE),
|
||||
od_keyword("user", OD_LUSER),
|
||||
od_keyword("password", OD_LPASSWORD),
|
||||
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);
|
||||
if (route == NULL)
|
||||
return -1;
|
||||
route->database = name->v.string;
|
||||
route->target = name->v.string;
|
||||
if (od_confignext(config, '{', NULL) == -1)
|
||||
return -1;
|
||||
odtoken_t *tk;
|
||||
|
@ -298,6 +299,12 @@ od_configparse_route(odconfig_t *config, odtoken_t *name)
|
|||
return -1;
|
||||
route->pool_max = tk->v.num;
|
||||
continue;
|
||||
/* database */
|
||||
case OD_LDATABASE:
|
||||
if (od_confignext(config, OD_LSTRING, &tk) == -1)
|
||||
return -1;
|
||||
route->database = tk->v.string;
|
||||
continue;
|
||||
/* user */
|
||||
case OD_LUSER:
|
||||
if (od_confignext(config, OD_LSTRING, &tk) == -1)
|
||||
|
|
|
@ -26,6 +26,7 @@ enum {
|
|||
OD_LROUTING,
|
||||
OD_LROUTE,
|
||||
OD_LMODE,
|
||||
OD_LDATABASE,
|
||||
OD_LUSER,
|
||||
OD_LPASSWORD,
|
||||
OD_LPOOL_MIN,
|
||||
|
|
|
@ -75,6 +75,19 @@ od_schemeserver_match(odscheme_t *scheme, char *name)
|
|||
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*
|
||||
od_schemeroute_add(odscheme_t *scheme)
|
||||
{
|
||||
|
|
|
@ -35,6 +35,7 @@ struct odscheme_server_t {
|
|||
|
||||
struct odscheme_route_t {
|
||||
odscheme_server_t *server;
|
||||
char *target;
|
||||
char *route;
|
||||
char *database;
|
||||
char *user;
|
||||
|
@ -81,4 +82,7 @@ od_schemeserver_match(odscheme_t*, char*);
|
|||
odscheme_route_t*
|
||||
od_schemeroute_add(odscheme_t*);
|
||||
|
||||
odscheme_route_t*
|
||||
od_schemeroute_match(odscheme_t*, char*);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue