| 163 | } |
| 164 | |
| 165 | static void ping_ev_frame_received(h2_proxy_session *session, const nghttp2_frame *frame) |
| 166 | { |
| 167 | session->last_frame_received = apr_time_now(); |
| 168 | switch (session->ping_state) { |
| 169 | case H2_PING_ST_NONE: |
| 170 | /* nop */ |
| 171 | break; |
| 172 | case H2_PING_ST_AWAIT_ANY: |
| 173 | enter_ping_state(session, H2_PING_ST_NONE); |
| 174 | break; |
| 175 | case H2_PING_ST_AWAIT_PING: |
| 176 | if (NGHTTP2_PING == frame->hd.type) { |
| 177 | enter_ping_state(session, H2_PING_ST_NONE); |
| 178 | } |
| 179 | /* we may receive many other frames while we are waiting for the |
| 180 | * PING answer. They may come all from our connection buffers and |
| 181 | * say nothing about the current state of the backend. */ |
| 182 | break; |
| 183 | } |
| 184 | } |
| 185 | |
| 186 | static apr_status_t proxy_session_pre_close(void *theconn) |
| 187 | { |
no test coverage detected