I also think that the current behavior is wrong.  I think that 
TSVConnShutdown(0,1) should be equivalent to shutdown(SHUT_WR) which means that 
it causes an eof to be read by the other end of the connection.  Indeed I am 
having issues using the VConn from TSHttpConnect() where there is no way to 
tell it that I am done sending a request such that I get a clear indication 
when the response is done.  Most of the code treats a shutdown properly, but 
PluginVC::do_io_shutdown() does not seem to do quite the right thing, 
HttpSM::tunnel_handler_ua()  and  HttpTunnel::consumer_handler() also treat EOS 
slightly wrong (they close things up totally), HttpTransact.cc 
how_to_open_connection() insists on no pending_work which seems wrong...I am 
working on a fix, but I am not sure if I am there yet.

-William bardwell
________________________________________
From: Alan M. Carroll [a...@network-geographics.com]
Sent: Saturday, August 17, 2013 10:48 PM
To: Owens, Steve
Subject: Re: TSVConnShutdown(TSTransformOutputVConnGet(contp), 0, 1);

Monday, August 12, 2013, 5:55:44 PM, you wrote:

> The only API call I am making from within my plugin that could indicate to
> ATS that we are done with processing is

>         TSVConnShutdown(TSTransformOutputVConnGet(contp), 0, 1);

That call means "shut down the connection right now", which seems to be 
precisely the effect you are seeing.

The better thing to do is chain the TS_EVENT_VCONN_WRITE_COMPLETE to the input 
VIO from which you are getting data. See 
example/null-transform/null-transform.c:190.

Reply via email to