| 303 | } |
| 304 | |
| 305 | int |
| 306 | Http2CommonSession::state_complete_frame_read(int event, void *edata) |
| 307 | { |
| 308 | VIO *vio = static_cast<VIO *>(edata); |
| 309 | STATE_ENTER(&Http2CommonSession::state_complete_frame_read, event); |
| 310 | ink_assert(event == VC_EVENT_READ_COMPLETE || event == VC_EVENT_READ_READY); |
| 311 | if (this->_read_buffer_reader->read_avail() < this->current_hdr.length) { |
| 312 | if (this->_should_do_something_else()) { |
| 313 | if (this->_reenable_event == nullptr) { |
| 314 | vio->disable(); |
| 315 | this->_reenable_event = this->get_mutex()->thread_holding->schedule_in(this->get_proxy_session(), HRTIME_MSECONDS(1), |
| 316 | HTTP2_SESSION_EVENT_REENABLE, vio); |
| 317 | } else { |
| 318 | vio->reenable(); |
| 319 | } |
| 320 | } else { |
| 321 | vio->reenable(); |
| 322 | } |
| 323 | return 0; |
| 324 | } |
| 325 | Http2SsnDebug("completed frame read, %" PRId64 " bytes available", this->_read_buffer_reader->read_avail()); |
| 326 | |
| 327 | return do_process_frame_read(event, vio, true); |
| 328 | } |
| 329 | |
| 330 | int |
| 331 | Http2CommonSession::do_complete_frame_read() |
nothing calls this directly
no test coverage detected