MINOR: lua: Add lists of frontends and backends
Adis Nezirovic reports: While playing with Lua API I've noticed that core.proxies attribute doesn't return all the proxies, more precisely the ones with same names (e.g. for frontend and backend with the same name it would only return the latter one). So, this patch fixes this problem without breaking the actual behaviour. We have two case of proxies with frontend/backend capabilities: The first case is the listen. This case is not a problem because the proxy object process these two entities as only one and it is the expected behavior. With these case the "proxies" list works fine. The second case is the frontend and backend with the same name. i think that this case is possible for compatibility with 'listen' declaration. These two proxes with same name and different capabilities must not processed with the same object (different statitics, differents orders). In fact, one the the two object crush the other one whoch is no longer accessible. To fix this problem, this patch adds two lists which are "frontends" and "backends", each of these list contains specialized proxy, but warning the "listen" proxy are declare in each list.
This commit is contained in:
parent
817e759898
commit
9b82a588cd
@ -173,6 +173,40 @@ Core class
|
|||||||
proxy give an access to his list of listeners and servers. Each entry is of
|
proxy give an access to his list of listeners and servers. Each entry is of
|
||||||
type :ref:`proxy_class`
|
type :ref:`proxy_class`
|
||||||
|
|
||||||
|
Warning, if you are declared frontend and backend with the same name, only one
|
||||||
|
of these are listed.
|
||||||
|
|
||||||
|
:see: :js:attr:`core.backends`
|
||||||
|
:see: :js:attr:`core.frontends`
|
||||||
|
|
||||||
|
.. js:attribute:: core.backends
|
||||||
|
|
||||||
|
**context**: task, action, sample-fetch, converter
|
||||||
|
|
||||||
|
This attribute is an array of declared proxies with backend capability. Each
|
||||||
|
proxy give an access to his list of listeners and servers. Each entry is of
|
||||||
|
type :ref:`proxy_class`
|
||||||
|
|
||||||
|
Warning, if you are declared frontend and backend with the same name, only one
|
||||||
|
of these are listed.
|
||||||
|
|
||||||
|
:see: :js:attr:`core.proxies`
|
||||||
|
:see: :js:attr:`core.frontends`
|
||||||
|
|
||||||
|
.. js:attribute:: core.frontends
|
||||||
|
|
||||||
|
**context**: task, action, sample-fetch, converter
|
||||||
|
|
||||||
|
This attribute is an array of declared proxies with frontend capability. Each
|
||||||
|
proxy give an access to his list of listeners and servers. Each entry is of
|
||||||
|
type :ref:`proxy_class`
|
||||||
|
|
||||||
|
Warning, if you are declared frontend and backend with the same name, only one
|
||||||
|
of these are listed.
|
||||||
|
|
||||||
|
:see: :js:attr:`core.proxies`
|
||||||
|
:see: :js:attr:`core.backends`
|
||||||
|
|
||||||
.. js:function:: core.log(loglevel, msg)
|
.. js:function:: core.log(loglevel, msg)
|
||||||
|
|
||||||
**context**: body, init, task, action, sample-fetch, converter
|
**context**: body, init, task, action, sample-fetch, converter
|
||||||
|
@ -915,6 +915,38 @@ int hlua_fcn_post_init(lua_State *L)
|
|||||||
/* push "proxies" in "core" */
|
/* push "proxies" in "core" */
|
||||||
lua_settable(L, -3);
|
lua_settable(L, -3);
|
||||||
|
|
||||||
|
/* Create proxies entry. */
|
||||||
|
lua_pushstring(L, "frontends");
|
||||||
|
lua_newtable(L);
|
||||||
|
|
||||||
|
/* List all proxies. */
|
||||||
|
for (px = proxy; px; px = px->next) {
|
||||||
|
if (!(px->cap & PR_CAP_FE))
|
||||||
|
continue;
|
||||||
|
lua_pushstring(L, px->id);
|
||||||
|
hlua_fcn_new_proxy(L, px);
|
||||||
|
lua_settable(L, -3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* push "frontends" in "core" */
|
||||||
|
lua_settable(L, -3);
|
||||||
|
|
||||||
|
/* Create proxies entry. */
|
||||||
|
lua_pushstring(L, "backends");
|
||||||
|
lua_newtable(L);
|
||||||
|
|
||||||
|
/* List all proxies. */
|
||||||
|
for (px = proxy; px; px = px->next) {
|
||||||
|
if (!(px->cap & PR_CAP_BE))
|
||||||
|
continue;
|
||||||
|
lua_pushstring(L, px->id);
|
||||||
|
hlua_fcn_new_proxy(L, px);
|
||||||
|
lua_settable(L, -3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* push "backend" in "core" */
|
||||||
|
lua_settable(L, -3);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user