From: Willy Tarreau Date: Sat, 15 Mar 2014 06:57:11 +0000 (+0100) Subject: MEDIUM: proxy: make get_backend_server() use findproxy() to lookup proxies X-Git-Tag: v1.5-dev23~141 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ecc420bbc141657a222a34b66ef84089498cd3f;p=thirdparty%2Fhaproxy.git MEDIUM: proxy: make get_backend_server() use findproxy() to lookup proxies This one is used by stats to look up proxy and server names in server state manipulation. Get rid of the linear search. --- diff --git a/src/proxy.c b/src/proxy.c index c2ba2ccde6..2f2eb494c5 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -97,22 +97,15 @@ int get_backend_server(const char *bk_name, const char *sv_name, { struct proxy *p; struct server *s; - int pid, sid; + int sid; *sv = NULL; - pid = -1; - if (*bk_name == '#') - pid = atoi(bk_name + 1); sid = -1; if (*sv_name == '#') sid = atoi(sv_name + 1); - for (p = proxy; p; p = p->next) - if ((p->cap & PR_CAP_BE) && - ((pid >= 0 && p->uuid == pid) || - (pid < 0 && strcmp(p->id, bk_name) == 0))) - break; + p = findproxy(bk_name, PR_CAP_BE); if (bk) *bk = p; if (!p)