Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
> On Jan 21, 2016, at 1:19 PM, Rainer Jung wrote: > > Can you provide a simple but somehow complete proxy_hcheck config snippet? > I'll set up a test and check what's wrong. > > Regards, > A very simple one is: ProxyHCExpr foof2 {hc('body') !~ /domain is established/} BalancerMember htt

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
As I read ap_expr, it should be: diff --git a/modules/proxy/mod_proxy_hcheck.c b/modules/proxy/mod_proxy_hcheck.c index 1667e77..b211d1c 100644 --- a/modules/proxy/mod_proxy_hcheck.c +++ b/modules/proxy/mod_proxy_hcheck.c @@ -987,7 +987,7 @@ static int hc_expr_lookup(ap_expr_lookup_parms *parms)

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Rainer Jung
Am 21.01.2016 um 19:08 schrieb Jim Jagielski: That is with: ProxyHCExpr foof2 {hc('body') !~ /domain is established/} With ProxyHCExpr foof2 {kept_body('body') !~ /domain is established/} Can you provide a simple but somehow complete proxy_hcheck config snippet? I'll set up a test and

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
This looks wrong: case AP_EXPR_FUNC_STRING: /* Function HC() is implemented by us. */ if (strcasecmp(parms->name, "HC") == 0) { *parms->func = hc_expr_func_fn; *parms->data = NULL; return OK; } break; Specifically:

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
That is with: ProxyHCExpr foof2 {hc('body') !~ /domain is established/} With ProxyHCExpr foof2 {kept_body('body') !~ /domain is established/} it works as expected. Thx! > On Jan 21, 2016, at 1:06 PM, Jim Jagielski wrote: > > I get: > >AH00102: [Thu Jan 21 18:05:44 2016] file util_ex

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
I get: AH00102: [Thu Jan 21 18:05:44 2016] file util_expr_eval.c, line 218, assertion "data != ((void*)0)" failed > On Jan 21, 2016, at 12:50 PM, Rainer Jung wrote: > > Am 21.01.2016 um 17:55 schrieb Jim Jagielski: >> even better! >> >> sounds cool. > > First impl done in r1726038. > >

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Rainer Jung
Am 21.01.2016 um 17:55 schrieb Jim Jagielski: even better! sounds cool. First impl done in r1726038. I guess you have everything in place to do a quick test? That would be nice. svn log is: Implement expr lookup in mod_proxy_hcheck for variables whose names start with "HC_" and for the new

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
even better! sounds cool. > On Jan 21, 2016, at 11:51 AM, Rainer Jung wrote: > > Am 21.01.2016 um 17:03 schrieb Jim Jagielski: >> Did you want me to work on it, or are you? > > I just had some late lunch and started to think closer about it. Since > kept_body was previously only used for requ

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Rainer Jung
Am 21.01.2016 um 17:03 schrieb Jim Jagielski: Did you want me to work on it, or are you? I just had some late lunch and started to think closer about it. Since kept_body was previously only used for request bodies, wouldn't it be nicer to *not* expose the HC response body under that name in t

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
Did you want me to work on it, or are you? > On Jan 21, 2016, at 10:25 AM, Jim Jagielski wrote: > > Sounds good to me!! > > thx! > >> On Jan 21, 2016, at 10:23 AM, Rainer Jung wrote: >> >> I should have asked earlier: wouldn't it be more suitable to implement to >> response body as a variab

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Yann Ylavic
Ah ok, nice, I'll have a look. Thanks for the quick explanation. On Thu, Jan 21, 2016 at 4:34 PM, Jim Jagielski wrote: > Well, mod_proxy_hcheck is actually abusing the r->kept_body brigade > for its own uses. When we issue a GET for the health check, we simply > copy the buckets from the respons

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
Well, mod_proxy_hcheck is actually abusing the r->kept_body brigade for its own uses. When we issue a GET for the health check, we simply copy the buckets from the response from the backend that comprises the body to r->kept_body. That way, ap_expr can now apply expressions against it to check if t

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Yann Ylavic
Is r->kept_body ever initiallized on the backend side, wouldn't mod_proxy need to somehow add mod_request's filters? On Thu, Jan 21, 2016 at 4:25 PM, Jim Jagielski wrote: > Sounds good to me!! > > thx! > >> On Jan 21, 2016, at 10:23 AM, Rainer Jung wrote: >> >> I should have asked earlier: would

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Jim Jagielski
Sounds good to me!! thx! > On Jan 21, 2016, at 10:23 AM, Rainer Jung wrote: > > I should have asked earlier: wouldn't it be more suitable to implement to > response body as a variable instead of a function? > > When looking at server/util_expr_eval.c, I find request_var_names and > request_v

Re: svn commit: r1725949 - /httpd/httpd/trunk/docs/manual/expr.xml

2016-01-21 Thread Rainer Jung
I should have asked earlier: wouldn't it be more suitable to implement to response body as a variable instead of a function? When looking at server/util_expr_eval.c, I find request_var_names and request_var_fn. The former is a list of variable names, and the latter implements returning the val