Merge pull request #11353 from kvuorine/fwknop-fixes
[feed/packages.git] / net / seafile-server / patches / 120-recent-libevhtp.patch
1 Author: Alexandre Rossi <alexandre.rossi@gmail.com>
2 Description: Fix download stalling on recent libevhtp
3 A while ago[1], evhtp_request_pause() behavior changed: it now disables
4 both read and write events. seafile-server would then stall.
5 .
6 [1] https://github.com/criticalstack/libevhtp/commit/6cd89466fd6bd76c5b8624be65af5893afe3e40c
7 [2] https://github.com/haiwen/seafile/issues/1119
8 Forwarded: no
9
10 --- a/server/access-file.c
11 +++ b/server/access-file.c
12 @@ -661,7 +661,7 @@ do_file(evhtp_request_t *req, SeafRepo *
13 /* Block any new request from this connection before finish
14 * handling this request.
15 */
16 - evhtp_request_pause (req);
17 + bufferevent_disable(bev, EV_READ);
18
19 /* Kick start data transfer by sending out http headers. */
20 evhtp_send_reply_start(req, EVHTP_RES_OK);
21 @@ -1021,7 +1021,7 @@ do_file_range (evhtp_request_t *req, Sea
22 /* Block any new request from this connection before finish
23 * handling this request.
24 */
25 - evhtp_request_pause (req);
26 + bufferevent_disable(bev, EV_READ);
27
28 /* Kick start data transfer by sending out http headers. */
29 evhtp_send_reply_start(req, EVHTP_RES_PARTIAL);
30 @@ -1091,7 +1091,7 @@ start_download_zip_file (evhtp_request_t
31 /* Block any new request from this connection before finish
32 * handling this request.
33 */
34 - evhtp_request_pause (req);
35 + bufferevent_disable(bev, EV_READ);
36
37 /* Kick start data transfer by sending out http headers. */
38 evhtp_send_reply_start(req, EVHTP_RES_OK);
39 @@ -1435,7 +1435,7 @@ do_block(evhtp_request_t *req, SeafRepo
40 /* Block any new request from this connection before finish
41 * handling this request.
42 */
43 - evhtp_request_pause (req);
44 + bufferevent_disable(bev, EV_READ);
45
46 /* Kick start data transfer by sending out http headers. */
47 evhtp_send_reply_start(req, EVHTP_RES_OK);
48 --- a/server/upload-file.c
49 +++ b/server/upload-file.c
50 @@ -2196,6 +2196,7 @@ out:
51 if (res != EVHTP_RES_OK) {
52 /* Don't receive any data before the connection is closed. */
53 //evhtp_request_pause (req);
54 + // or for later evhtp bufferevent_disable(evhtp_request_get_bev(req), EV_READ);
55
56 /* Set keepalive to 0. This will cause evhtp to close the
57 * connection after sending the reply.
58 @@ -2513,6 +2514,7 @@ upload_headers_cb (evhtp_request_t *req,
59 err:
60 /* Don't receive any data before the connection is closed. */
61 //evhtp_request_pause (req);
62 + // or for later evhtp bufferevent_disable(evhtp_request_get_bev(req), EV_READ);
63
64 /* Set keepalive to 0. This will cause evhtp to close the
65 * connection after sending the reply.