nxt_freebsd_sendfile.c (0:a63ceefd6ab0) nxt_freebsd_sendfile.c (1:fdc027c56872)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 36 unchanged lines hidden (view full) ---

45
46 sb.buf = b;
47 sb.iobuf = hd;
48 sb.nmax = NXT_IOBUF_MAX;
49 sb.sync = 0;
50 sb.size = 0;
51 sb.limit = limit;
52
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#include <nxt_main.h>
8

--- 36 unchanged lines hidden (view full) ---

45
46 sb.buf = b;
47 sb.iobuf = hd;
48 sb.nmax = NXT_IOBUF_MAX;
49 sb.sync = 0;
50 sb.size = 0;
51 sb.limit = limit;
52
53 nhd = nxt_sendbuf_mem_coalesce(&sb);
53 nhd = nxt_sendbuf_mem_coalesce(c->socket.task, &sb);
54
55 if (nhd == 0 && sb.sync) {
56 return 0;
57 }
58
59 if (sb.buf == NULL || !nxt_buf_is_file(sb.buf)) {
60 return nxt_event_conn_io_writev(c, hd, nhd);
61 }
62
63 fb = sb.buf;
64
65 file_size = nxt_sendbuf_file_coalesce(&sb);
66
67 if (file_size == 0) {
68 return nxt_event_conn_io_writev(c, hd, nhd);
69 }
70
71 sb.iobuf = tr;
72
54
55 if (nhd == 0 && sb.sync) {
56 return 0;
57 }
58
59 if (sb.buf == NULL || !nxt_buf_is_file(sb.buf)) {
60 return nxt_event_conn_io_writev(c, hd, nhd);
61 }
62
63 fb = sb.buf;
64
65 file_size = nxt_sendbuf_file_coalesce(&sb);
66
67 if (file_size == 0) {
68 return nxt_event_conn_io_writev(c, hd, nhd);
69 }
70
71 sb.iobuf = tr;
72
73 ntr = nxt_sendbuf_mem_coalesce(&sb);
73 ntr = nxt_sendbuf_mem_coalesce(c->socket.task, &sb);
74
75 /*
76 * Disposal of surplus kernel operations
77 * if there are no headers or trailers.
78 */
79
80 ht = NULL;
81 nxt_memzero(&hdtr, sizeof(struct sf_hdtr));

--- 64 unchanged lines hidden ---
74
75 /*
76 * Disposal of surplus kernel operations
77 * if there are no headers or trailers.
78 */
79
80 ht = NULL;
81 nxt_memzero(&hdtr, sizeof(struct sf_hdtr));

--- 64 unchanged lines hidden ---