On Tue, Dec 02, 2014 at 11:41:39PM +0100, Cyril Bonté wrote: > Le 02/12/2014 22:48, Willy Tarreau a écrit : > >On Tue, Dec 02, 2014 at 10:22:40PM +0100, Cyril Bonté wrote: > >>Currently, HAPROXY_SERVER_CURCONN will never change from its initial > >>value. That's embarrassing, maybe I'll have to change several parts of > >>the previous patch in order to manage such variables. > > > >Don't worry, this branch is tagged development for a reason :-) > >There's no reason to feel embarrassed by pushing things which > >don't work, especially when several eyes watched it and didn't > >notice anything! > > > >If you're not sure how to fix it, we can discuss it tomorrow if you want. > > Well, I think I won't reinvent the wheel. I'll reproduce what is done > for check_statuses. > > I'll create an enum to index the environment variables > enum { > /* General use */ > EXTCHECK_PATH = 0, > > /* Proxy specific environment variables */ > EXTCHECK_HAPROXY_PROXY_NAME, > EXTCHECK_HAPROXY_PROXY_ID, > EXTCHECK_HAPROXY_PROXY_ADDR, > EXTCHECK_HAPROXY_PROXY_PORT, > > /* Server specific environment variables */ > EXTCHECK_HAPROXY_SERVER_NAME, > EXTCHECK_HAPROXY_SERVER_ID, > EXTCHECK_HAPROXY_SERVER_ADDR, > EXTCHECK_HAPROXY_SERVER_PORT, > EXTCHECK_HAPROXY_SERVER_MAXCONN, > EXTCHECK_HAPROXY_SERVER_CURCONN, > EXTCHECK_SIZE > }; > > a new type to store the environment variable name and the max length for > its value, with some specific values to indicate that the length will be > determined at init time, or will require enough space to store a long or > any other string representation. > struct extcheck_env { > char *name; > int val_maxlen; > }; > > This will allow to initialize all the environment variables, then update > some of them during each check call.
Semms to make sense. > It will also allow me to remove the realloc I introduced. Only with > this, I already feel happier ;-) I agree :-) > I've already made some tests and it looks to work well for every cases I > can identify. Perfect! Thanks, Willy