On Aug 27, 2013, at 7:29 PM, "Bardwell, William" <wbard...@akamai.com> wrote:

> 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.

Are there any small fixes or refactorings that would make the behaviour more 
consistent? Maybe not a complete fix, but an incremental improvement ...

> 
> -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