diff options
author | 2024-09-09 21:47:26 -0700 | |
---|---|---|
committer | 2024-09-13 21:22:10 +0000 | |
commit | 6f45f5465f219cb55f0f095c420aae469e550f7f (patch) | |
tree | baaa8a167db282951f1eae9cd6bea93272ff8080 /src/plugins/hs_apps | |
parent | 6fbe913e45ff252f5d6497eb81cdcf139afc0d5d (diff) |
http: update body_len from u32 to u64
Type: improvement
Change-Id: I381541fb180d6d6ba42e4d231d22a73c5d33ef65
Signed-off-by: Aritra Basu <aritrbas@cisco.com>
Diffstat (limited to 'src/plugins/hs_apps')
-rw-r--r-- | src/plugins/hs_apps/http_client_cli.c | 6 | ||||
-rw-r--r-- | src/plugins/hs_apps/http_simple_post.c | 19 | ||||
-rw-r--r-- | src/plugins/hs_apps/http_tps.c | 4 |
3 files changed, 19 insertions, 10 deletions
diff --git a/src/plugins/hs_apps/http_client_cli.c b/src/plugins/hs_apps/http_client_cli.c index afa173c98df..4b8ef173bd9 100644 --- a/src/plugins/hs_apps/http_client_cli.c +++ b/src/plugins/hs_apps/http_client_cli.c @@ -35,7 +35,7 @@ typedef struct u32 thread_index; u32 rx_offset; u32 vpp_session_index; - u32 to_recv; + u64 to_recv; u8 is_closed; http_header_t *req_headers; } hcc_session_t; @@ -261,7 +261,7 @@ hcc_ts_rx_callback (session_t *ts) u32 max_deq = svm_fifo_max_dequeue (ts->rx_fifo); u32 n_deq = clib_min (hs->to_recv, max_deq); - u32 curr = vec_len (hcm->http_response); + u64 curr = vec_len (hcm->http_response); rv = svm_fifo_dequeue (ts->rx_fifo, n_deq, hcm->http_response + curr); if (rv < 0) { @@ -275,7 +275,7 @@ hcc_ts_rx_callback (session_t *ts) vec_set_len (hcm->http_response, curr + n_deq); ASSERT (hs->to_recv >= rv); hs->to_recv -= rv; - HCC_DBG ("app rcvd %d, remains %d", rv, hs->to_recv); + HCC_DBG ("app rcvd %d, remains %llu", rv, hs->to_recv); done: if (hs->to_recv == 0) diff --git a/src/plugins/hs_apps/http_simple_post.c b/src/plugins/hs_apps/http_simple_post.c index 0c2b30ad25c..6212eac1c97 100644 --- a/src/plugins/hs_apps/http_simple_post.c +++ b/src/plugins/hs_apps/http_simple_post.c @@ -36,7 +36,7 @@ typedef struct u8 *target; u8 *headers_buf; u8 *data; - u32 data_offset; + u64 data_offset; hsp_worker_t *wrk; u8 *http_response; u8 is_file; @@ -86,6 +86,8 @@ hsp_session_connected_callback (u32 app_index, u32 hsp_session_index, hsp_worker_t *wrk; http_header_t *headers = 0; http_msg_t msg; + u64 to_send; + u32 n_enq; int rv; if (err) @@ -166,8 +168,12 @@ hsp_session_connected_callback (u32 app_index, u32 hsp_session_index, hspm->headers_buf); ASSERT (rv == msg.data.headers_len); - rv = svm_fifo_enqueue (s->tx_fifo, vec_len (hspm->data), hspm->data); - if (rv != vec_len (hspm->data)) + to_send = vec_len (hspm->data); + n_enq = clib_min (svm_fifo_size (s->tx_fifo), to_send); + + rv = svm_fifo_enqueue (s->tx_fifo, n_enq, hspm->data); + + if (rv < to_send) { hspm->data_offset = (rv > 0) ? rv : 0; svm_fifo_add_want_deq_ntf (s->tx_fifo, SVM_FIFO_WANT_DEQ_NOTIF); @@ -263,11 +269,14 @@ static int hsp_tx_callback (session_t *s) { hsp_main_t *hspm = &hsp_main; - u32 to_send; + u64 to_send; + u32 n_enq; int rv; to_send = vec_len (hspm->data) - hspm->data_offset; - rv = svm_fifo_enqueue (s->tx_fifo, to_send, hspm->data + hspm->data_offset); + n_enq = clib_min (svm_fifo_size (s->tx_fifo), to_send); + + rv = svm_fifo_enqueue (s->tx_fifo, n_enq, hspm->data + hspm->data_offset); if (rv <= 0) { diff --git a/src/plugins/hs_apps/http_tps.c b/src/plugins/hs_apps/http_tps.c index 583dccb92ac..cdeafa5d54a 100644 --- a/src/plugins/hs_apps/http_tps.c +++ b/src/plugins/hs_apps/http_tps.c @@ -30,8 +30,8 @@ typedef struct u64 data_len; u64 data_offset; u32 vpp_session_index; - u32 left_recv; - u32 total_recv; + u64 left_recv; + u64 total_recv; union { /** threshold after which connection is closed */ |