aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/hs_apps/http_tps.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/hs_apps/http_tps.c')
-rw-r--r--src/plugins/hs_apps/http_tps.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/plugins/hs_apps/http_tps.c b/src/plugins/hs_apps/http_tps.c
index 39046b38d43..583dccb92ac 100644
--- a/src/plugins/hs_apps/http_tps.c
+++ b/src/plugins/hs_apps/http_tps.c
@@ -30,7 +30,8 @@ typedef struct
u64 data_len;
u64 data_offset;
u32 vpp_session_index;
- u32 to_recv;
+ u32 left_recv;
+ u32 total_recv;
union
{
/** threshold after which connection is closed */
@@ -349,16 +350,16 @@ hts_session_rx_body (hts_session_t *hs, session_t *ts)
rv = svm_fifo_dequeue (ts->rx_fifo, n_deq, hs->rx_buf);
ASSERT (rv == n_deq);
}
- hs->to_recv -= n_deq;
+ hs->left_recv -= n_deq;
if (hs->close_threshold > 0)
{
- if ((f64) (hs->data_len - hs->to_recv) / hs->data_len >
+ if ((f64) (hs->total_recv - hs->left_recv) / hs->total_recv >
hs->close_threshold)
hts_disconnect_transport (hs);
}
- if (hs->to_recv == 0)
+ if (hs->left_recv == 0)
{
hts_start_send_data (hs, HTTP_STATUS_OK);
vec_free (hs->rx_buf);
@@ -376,7 +377,7 @@ hts_ts_rx_callback (session_t *ts)
hs = hts_session_get (ts->thread_index, ts->opaque);
- if (hs->to_recv == 0)
+ if (hs->left_recv == 0)
{
hs->data_len = 0;
hs->resp_headers = 0;
@@ -433,7 +434,8 @@ hts_ts_rx_callback (session_t *ts)
}
/* drop everything up to body */
svm_fifo_dequeue_drop (ts->rx_fifo, msg.data.body_offset);
- hs->to_recv = msg.data.body_len;
+ hs->left_recv = msg.data.body_len;
+ hs->total_recv = msg.data.body_len;
if (htm->no_zc)
vec_validate (hs->rx_buf, HTS_RX_BUF_SIZE - 1);
hts_session_rx_body (hs, ts);
@@ -472,7 +474,7 @@ hts_ts_accept_callback (session_t *ts)
hs = hts_session_alloc (ts->thread_index);
hs->vpp_session_index = ts->session_index;
- hs->to_recv = 0;
+ hs->left_recv = 0;
ts->opaque = hs->session_index;
ts->session_state = SESSION_STATE_READY;