[ 
https://issues.apache.org/jira/browse/TS-4455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15291352#comment-15291352
 ] 

ASF GitHub Bot commented on TS-4455:
------------------------------------

Github user zwoop commented on the pull request:

    https://github.com/apache/trafficserver/pull/646#issuecomment-220368272
  
    I think we should squash these three commits to one, right?


> remove isEosRcvd() and eosRcvd
> ------------------------------
>
>                 Key: TS-4455
>                 URL: https://issues.apache.org/jira/browse/TS-4455
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: SSL
>            Reporter: Oknet Xu
>
> the isEosRcvd() is used by HttpSM.
> It is check SSLNetVConnection->eosRcvd while received VC_EVENT_READ_READY or 
> VC_EVENT_READ_COMPLETE event, and rewrite the event to VC_EVENT_EOS.
> {code}
> int
> HttpSM::state_read_client_request_header(int event, void *data)
> {
> .
> .
> .
>   // check to see if there was an EOS received on the SSL connection
>   SSLNetVConnection *ssl_vc = dynamic_cast<SSLNetVConnection 
> *>(ua_session->get_netvc());
>   if (ssl_vc && ssl_vc->isEosRcvd()) {
>     DebugSM("http", "EOS for ssl vc %p at read_first_btye state", 
> ua_session->get_netvc());
>     event = VC_EVENT_EOS;
>   }
>   switch (event) {
>   case VC_EVENT_READ_READY:
>   case VC_EVENT_READ_COMPLETE:
>     // More data to parse
>     break;
>   case VC_EVENT_EOS:
>     ua_entry->eos = true;
>     if ((client_request_hdr_bytes > 0) && 
> is_transparent_passthrough_allowed() && (ua_raw_buffer_reader != NULL)) {
>       break;
>     }
> .
> .
> .
> {code}
> the eosRcvd is set to true only in SSLNetVConnection::net_read_io()
> {code}
> // changed by YTS Team, yamsat
> void
> SSLNetVConnection::net_read_io(NetHandler *nh, EThread *lthread)
> {
> .
> .
> .
>   case SSL_READ_EOS:
>     // close the connection if we have SSL_READ_EOS, this is the return value 
> from ssl_read_from_net() if we get an
>     // SSL_ERROR_ZERO_RETURN from SSL_get_error()
>     // SSL_ERROR_ZERO_RETURN means that the origin server closed the SSL 
> connection
>     eosRcvd = true;
>     read.triggered = 0;
>     readSignalDone(VC_EVENT_EOS, nh);
>     if (bytes > 0) {
>       Debug("ssl", "read_from_net, read finished - EOS");
>     } else {
>       Debug("ssl", "read_from_net, read finished - 0 useful bytes read, bytes 
> used by SSL layer");
>     }
>     break;
> .
> .
> .
> {code}
> It is also signal VC_EVENT_EOS to SM after set eosRcvd to true.
> thus, the eosRcvd and isEosRcvd() is no longer necessary.
> suggest remove them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to