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 <j...@jagunet.com> wrote: > > 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 <rainer.j...@kippdata.de> wrote: >> >> 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 function hc(). >> >> Currently only HC_BODY and hc(body) are supported. >> Both return the saved body of the health check >> response to be used in an expr that decides about >> success of a check. >> >> Regards, >> >> Rainer >> >>>> On Jan 21, 2016, at 11:51 AM, Rainer Jung <rainer.j...@kippdata.de> 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 request bodies, wouldn't it be >>>> nicer to *not* expose the HC response body under that name in the >>>> expression parser, and instead register an expr extension from HC which >>>> handles a new function, say hc(), with a first supported argument "body"? >>>> So hc(body) returns whatever HC wants to. >>>> >>>> You could still use the kept_body field in your impl (or some other place >>>> now or later) but we wouldn't expose this implementation detail to the >>>> outside world. >>>> >>>> I have already done an expr function extension in some custom module, it >>>> is pretty easy to do (and httpd uses that feature e.g. in mod_ssl). >>>> >>>> So yes, if you like I can do it. But do you like the idea? >>>> >>>> Regards, >>>> >>>> Rainer >>>> >>>>>> On Jan 21, 2016, at 10:25 AM, Jim Jagielski <j...@jagunet.com> wrote: >>>>>> >>>>>> Sounds good to me!! >>>>>> >>>>>> thx! >>>>>> >>>>>>> On Jan 21, 2016, at 10:23 AM, Rainer Jung <rainer.j...@kippdata.de> >>>>>>> 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_var_fn. The former is a list of variable names, and the latter >>>>>>> implements returning the values from parts of the request struct. >>>>>>> Returning the flattened kept_body should be a good fit there as well, >>>>>>> without having users wonder, why it is a function that requires an >>>>>>> argument. >>>>>>> >>>>>>> If we expect further response stuff coming, we could also clone >>>>>>> request_var_names and request_var_fn with new response_var_names and >>>>>>> response_var_fn and add the variable as the first and currently only >>>>>>> one there. >>>>>>> >>>>>>> The variable name could be KEPT_BODY. >>>>>>> >>>>>>> WDYT? I can also do the little reorg, but which way do we prefer? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Rainer >