MINOR: quic: Stream FIN bit fix in qcs_push_frame()

The FIN of a STREAM frame to be built must be set if there is no more
at all data in the ring buffer.
Do not do anything if there is nothing to transfer the ->tx.buf mux
buffer via b_force_xfer() (without zero copy)
diff --git a/src/mux_quic.c b/src/mux_quic.c
index 8b96b6f..707769f 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -1295,14 +1295,19 @@
 	struct quic_frame *frm;
 	struct buffer *buf = &qcs->tx.buf;
 	struct quic_enc_level *qel = &qcs->qcc->conn->qc->els[QUIC_TLS_ENC_LEVEL_APP];
-	int total = 0;
+	int total = 0, to_xfer;
 
 	qc_get_buf(qcs->qcc, buf);
-	total = b_force_xfer(buf, payload, QUIC_MIN(b_data(payload), b_room(buf)));
+	to_xfer = QUIC_MIN(b_data(payload), b_room(buf));
+	if (!to_xfer)
+		goto out;
+
 	frm = pool_zalloc(pool_head_quic_frame);
 	if (!frm)
 		goto err;
 
+	total = b_force_xfer(buf, payload, to_xfer);
+	fin = fin && !b_data(payload);
 	frm->type = QUIC_FT_STREAM_8;
 	if (fin)
 		frm->type |= QUIC_STREAM_FRAME_TYPE_FIN_BIT;
@@ -1319,6 +1324,7 @@
 	}
 
 	MT_LIST_APPEND(&qel->pktns->tx.frms, &frm->mt_list);
+ out:
 	fprintf(stderr, "%s: total=%d fin=%d offset=%lu\n", __func__, total, fin, offset);
 	return total;