rv = svm_fifo_enqueue (s->tx_fifo, sizeof (wrk->msg), (u8 *) &wrk->msg);
ASSERT (rv == sizeof (wrk->msg));
- rv = svm_fifo_enqueue (s->tx_fifo, vec_len (hcm->target), hcm->target);
- ASSERT (rv == vec_len (hcm->target));
+ rv =
+ svm_fifo_enqueue (s->tx_fifo, wrk->msg.data.target_path_len, hcm->target);
+ ASSERT (rv == wrk->msg.data.target_path_len);
rv = svm_fifo_enqueue (s->tx_fifo, wrk->req_headers.tail_offset,
wrk->headers_buf);
wrk->msg.data.body_len = 0;
wrk->msg.type = HTTP_MSG_REQUEST;
- /* request target */
- wrk->msg.data.target_path_len = vec_len (hcm->target);
+ /* request target len must be without null termination */
+ wrk->msg.data.target_path_len = strlen ((char *) hcm->target);
/* custom headers */
wrk->msg.data.headers_len = wrk->req_headers.tail_offset;
/* total length */
msg.method_type = HTTP_REQ_GET;
/* request target */
msg.data.target_path_offset = 0;
- msg.data.target_path_len = vec_len (hcm->http_query);
+ /* request target len must be without null termination */
+ msg.data.target_path_len = strlen ((char *) hcm->http_query);
/* custom headers */
msg.data.headers_offset = msg.data.target_path_len;
msg.data.headers_len = headers.tail_offset;
msg.data.target_path_len + msg.data.headers_len + msg.data.body_len;
svm_fifo_seg_t segs[3] = { { (u8 *) &msg, sizeof (msg) },
- { hcm->http_query, vec_len (hcm->http_query) },
+ { hcm->http_query, msg.data.target_path_len },
{ headers_buf, msg.data.headers_len } };
rv = svm_fifo_enqueue_segments (as->tx_fifo, segs, 3, 0 /* allow partial */);
/**
* http request boilerplate
*/
-static const char *get_request_template = "GET %s HTTP/1.1\r\n"
+static const char *get_request_template = "GET %U HTTP/1.1\r\n"
"Host: %v\r\n"
"User-Agent: %v\r\n";
-static const char *post_request_template = "POST %s HTTP/1.1\r\n"
+static const char *post_request_template = "POST %U HTTP/1.1\r\n"
"Host: %v\r\n"
"User-Agent: %v\r\n"
"Content-Length: %llu\r\n";
-static const char *put_request_template = "PUT %s HTTP/1.1\r\n"
+static const char *put_request_template = "PUT %U HTTP/1.1\r\n"
"Host: %v\r\n"
"User-Agent: %v\r\n"
"Content-Length: %llu\r\n";
static const char *put_chunked_request_template =
- "PUT %s HTTP/1.1\r\n"
+ "PUT %U HTTP/1.1\r\n"
"Host: %v\r\n"
"User-Agent: %v\r\n"
"Transfer-Encoding: chunked\r\n";
*/
request = format (request, get_request_template,
/* target */
- target,
+ format_http_bytes, target, msg.data.target_path_len,
/* Host */
hc->host,
/* User-Agent */
*/
request = format (request, post_request_template,
/* target */
- target,
+ format_http_bytes, target, msg.data.target_path_len,
/* Host */
hc->host,
/* User-Agent */
/*
* Streaming PUT with chunked transfer encoding
*/
- request = format (request, put_chunked_request_template,
- /* target */
- target,
- /* Host */
- hc->host,
- /* User-Agent */
- hc->app_name);
+ request =
+ format (request, put_chunked_request_template,
+ /* target */
+ format_http_bytes, target, msg.data.target_path_len,
+ /* Host */
+ hc->host,
+ /* User-Agent */
+ hc->app_name);
http_req_tx_buffer_init (req, &msg);
/*
* Regular PUT with Content-Length
*/
- request = format (request, put_request_template,
- /* target */
- target,
- /* Host */
- hc->host,
- /* User-Agent */
- hc->app_name,
- /* Content-Length */
- msg.data.body_len);
+ request =
+ format (request, put_request_template,
+ /* target */
+ format_http_bytes, target, msg.data.target_path_len,
+ /* Host */
+ hc->host,
+ /* User-Agent */
+ hc->app_name,
+ /* Content-Length */
+ msg.data.body_len);
http_req_tx_buffer_init (req, &msg);