Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile with latest ngtcp2 + nghttp3 draft-23 #4392

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 13 additions & 14 deletions lib/vquic/ngtcp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1010,23 +1010,24 @@ static int cb_h3_acked_stream_data(nghttp3_conn *conn, int64_t stream_id,
return 0;
}

static int cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id,
const uint8_t **pdata,
size_t *pdatalen, uint32_t *pflags,
void *user_data, void *stream_user_data)
static ssize_t cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id,
nghttp3_vec *vec, size_t veccnt,
uint32_t *pflags, void *user_data,
void *stream_user_data)
{
struct Curl_easy *data = stream_user_data;
size_t nread;
struct HTTP *stream = data->req.protop;
(void)conn;
(void)stream_id;
(void)user_data;
(void)veccnt;

if(data->set.postfields) {
*pdata = data->set.postfields;
*pdatalen = data->state.infilesize;
vec[0].base = data->set.postfields;
vec[0].len = data->state.infilesize;
*pflags = NGHTTP3_DATA_FLAG_EOF;
return 0;
return 1;
}

nread = CURLMIN(stream->upload_len, H3_SEND_SIZE - stream->h3out->used);
Expand All @@ -1044,8 +1045,8 @@ static int cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id,
out->used += nread;

/* that's the chunk we return to nghttp3 */
*pdata = &out->buf[out->windex];
*pdatalen = nread;
vec[0].base = &out->buf[out->windex];
vec[0].len = nread;

if(out->windex == H3_SEND_SIZE)
out->windex = 0; /* wrap */
Expand All @@ -1063,15 +1064,13 @@ static int cb_h3_readfunction(nghttp3_conn *conn, int64_t stream_id,
if(stream->upload_done && !stream->upload_len &&
(stream->upload_left <= 0)) {
H3BUGF(infof(data, "!!!!!!!!! cb_h3_readfunction sets EOF\n"));
*pdata = NULL;
*pdatalen = 0;
*pflags = NGHTTP3_DATA_FLAG_EOF;
return 0;
}
else if(!nread) {
*pdatalen = 0;
return NGHTTP3_ERR_WOULDBLOCK;
}
return 0;
return 1;
}

/* Index where :authority header field will appear in request header
Expand Down Expand Up @@ -1524,7 +1523,7 @@ static CURLcode ng_flush_egress(struct connectdata *conn, int sockfd,
return CURLE_SEND_ERROR;
}
}
else if(ndatalen > 0) {
else if(ndatalen >= 0) {
rv = nghttp3_conn_add_write_offset(qs->h3conn, stream_id, ndatalen);
if(rv != 0) {
failf(conn->data,
Expand Down