diff src/http/ngx_http_request.c @ 8211:6bc18966b8c1 quic

Stream "connection" read/write methods.
author Vladimir Homutov <vl@nginx.com>
date Fri, 13 Mar 2020 14:39:23 +0300
parents b761ca7df7d0
children 38c0898b6df7
line wrap: on
line diff
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -395,8 +395,39 @@ ngx_http_quic_stream_handler(ngx_connect
 {
     ngx_quic_stream_t *qs = c->qs;
 
+    // STUB for stream read/write
+
     ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
                    "quic stream: 0x%uXL", qs->id);
+    ssize_t    n;
+    ngx_buf_t  b;
+
+    u_char     buf[512];
+
+    b.start = buf;
+    b.end = buf + 512;
+    b.pos = b.last = b.start;
+
+    n = c->recv(c, b.pos, b.end - b.start);
+    if (n < 0) {
+        ngx_log_error(NGX_LOG_INFO, c->log, 0, "stream read failed");
+        return;
+    }
+
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
+                   "quic stream: 0x%uXL %ui bytes read", qs->id, n);
+
+    b.last += n;
+
+    n = c->send(c, b.start, n);
+
+    if (n < 0) {
+        ngx_log_error(NGX_LOG_INFO, c->log, 0, "stream write failed");
+        return;
+    }
+
+    ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
+                   "quic stream: 0x%uXL %ui bytes written", qs->id, n);
 }