- if: ${{ contains(matrix.build.install_steps, 'msh3') }}
run: |
- git clone --depth=1 --recursive https://github.com/nibanks/msh3
+ git clone -b v0.5.0 --depth=1 --recursive https://github.com/nibanks/msh3
cd msh3 && mkdir build && cd build
cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/msh3 ..
cmake --build .
[quiche](https://github.com/cloudflare/quiche)
-[msquic](https://github.com/microsoft/msquic) & [msh3](https://github.com/nibanks/msh3)
+[msh3](https://github.com/nibanks/msh3) (with [msquic](https://github.com/microsoft/msquic))
## Experimental
Build msh3:
- % git clone -b v0.4.0 --depth 1 --recursive https://github.com/nibanks/msh3
+ % git clone -b v0.5.0 --depth 1 --recursive https://github.com/nibanks/msh3
% cd msh3 && mkdir build && cd build
% cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
% cmake --build .
Build msh3:
- % git clone -b v0.4.0 --depth 1 --recursive https://github.com/nibanks/msh3
+ % git clone -b v0.5.0 --depth 1 --recursive https://github.com/nibanks/msh3
% cd msh3 && mkdir build && cd build
% cmake -G 'Visual Studio 17 2022' -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
% cmake --build . --config Release
static void MSH3_CALL msh3_complete(MSH3_REQUEST *Request, void *IfContext,
bool Aborted, uint64_t AbortError);
static void MSH3_CALL msh3_shutdown(MSH3_REQUEST *Request, void *IfContext);
+static void MSH3_CALL msh3_send_complete(MSH3_REQUEST *Request,
+ void *IfContext, void *SendContext);
static const struct Curl_handler msh3_curl_handler_http3 = {
"HTTPS", /* scheme */
msh3_header_received,
msh3_data_received,
msh3_complete,
- msh3_shutdown
+ msh3_shutdown,
+ msh3_send_complete
};
void Curl_quic_ver(char *p, size_t len)
(void)stream;
}
+static void MSH3_CALL msh3_send_complete(MSH3_REQUEST *Request,
+ void *IfContext, void *SendContext)
+{
+ struct HTTP *stream = IfContext;
+ (void)Request;
+ (void)stream;
+ (void)SendContext;
+}
+
static ssize_t msh3_stream_send(struct Curl_easy *data,
int sockindex,
const void *mem,
}
H3BUGF(infof(data, "starting request with %zu headers", hreq->entries));
stream->req = MsH3RequestOpen(qs->conn, &msh3_request_if, stream,
- (MSH3_HEADER*)hreq->header, hreq->entries);
+ (MSH3_HEADER*)hreq->header, hreq->entries,
+ MSH3_REQUEST_FLAG_FIN);
Curl_pseudo_free(hreq);
if(!stream->req) {
failf(data, "request open failed");