#
# LD_LIBRARY_PATH=../.. ./ossl-nghttp3-demo www.example.com:443
-CFLAGS = -I../../include -g -Wall -Wsign-compare
-LDFLAGS = -L../..
+CFLAGS += -I../../include -g -Wall -Wsign-compare
+LDFLAGS += -L../..
LDLIBS = -lcrypto -lssl -lnghttp3
all: ossl-nghttp3-demo
int ec, fin;
size_t i, num_vecs, written, total_written, total_len;
int64_t stream_id;
+ uint64_t flags;
nghttp3_vec vecs[8] = {0};
OSSL_DEMO_H3_STREAM key, *s;
SSL *snew;
if (ec == 0)
break;
+ /*
+ * we let SSL_write_ex2(3) to conclude the stream for us (send FIN)
+ * after all data are written.
+ */
+ flags = (fin == 0) ? 0 : SSL_WRITE_FLAG_CONCLUDE;
+
/* For each of the vectors returned, pass it to OpenSSL QUIC. */
key.id = stream_id;
if ((s = lh_OSSL_DEMO_H3_STREAM_retrieve(conn->streams, &key)) == NULL) {
if (s->s == NULL) {
/* Already did STOP_SENDING and threw away stream, ignore */
written = vecs[i].len;
- } else if (!SSL_write_ex(s->s, vecs[i].base, vecs[i].len, &written)) {
+ } else if (!SSL_write_ex2(s->s, vecs[i].base, vecs[i].len, flags, &written)) {
if (SSL_get_error(s->s, 0) == SSL_ERROR_WANT_WRITE) {
/*
* We have filled our send buffer so tell nghttp3 to stop
}
if (fin && total_written == total_len) {
- /*
- * We have written all the data so mark the stream as concluded
- * (FIN).
- */
- SSL_stream_conclude(s->s, 0);
if (total_len == 0) {
/*