NM, problem solved.
For those that are curious: I erred in stating I was using
PO::Filter::Line to process input; I'm actually using
POE::Wheel:ReadWrite with Filter::Line as an input filter. The issue
was that I had not created an error handler in my ReadWrite object -
once I did, setting the handler to "exit 0", the rewriter now catches
EOF as an error in ReadWrite and dies properly as it should.
-C
On Jan 18, 2008, at 7:46 PM, Chris Woodfield wrote:
> Hi all,
>
> I'm working on a custom url_rewriter helper app, written in perl,
> that translates incoming URL requests to custom URLs using a config
> file that is loaded at startup and is polled for changes at regular
> intervals.
>
> In order to handle the update polling, the script uses POE for event
> handling, using POE::Filter::Line to handle incoming URL requests
> from squid and then a delay to handle the config poll interval.
>
> The problem I've found, which I didn't have when the first iteration
> of the script was simply a while(<>) loop, is that when squid exits
> or is HUP'ed, it kills the existing helper apps by sending an EOF
> (Ctrl-D). However, POE's signal handling doesn't seem to be able to
> respond to EOF (only KILL, HUP, etc), and as such, the children
> never exit.
>
> Anyone know enough about POE to let me know if I'm missing something
> I can do in my code in order to enable POE's handling the EXIT/EOF/
> CRTL-D signal? Or a way to make squid use KILL instead of EOF to
> kill off the url rewriters for sure?
>
> Thanks,
>
> -Chris
>
Received on Sat Jan 19 2008 - 00:08:17 MST
This archive was generated by hypermail pre-2.1.9 : Fri Feb 01 2008 - 12:00:05 MST