View | Details | Raw Unified | Return to bug 56299
Collapse All | Expand All

(-)modules/proxy/mod_proxy_wstunnel.c (-11 / +9 lines)
Lines 224-230 static int ap_proxy_wstunnel_request(apr_pool_t *p Link Here
224
224
225
    pollfd.p = p;
225
    pollfd.p = p;
226
    pollfd.desc_type = APR_POLL_SOCKET;
226
    pollfd.desc_type = APR_POLL_SOCKET;
227
    pollfd.reqevents = APR_POLLIN;
227
    pollfd.reqevents = APR_POLLIN | APR_POLLHUP;
228
    pollfd.desc.s = sock;
228
    pollfd.desc.s = sock;
229
    pollfd.client_data = NULL;
229
    pollfd.client_data = NULL;
230
    apr_pollset_add(pollset, &pollfd);
230
    apr_pollset_add(pollset, &pollfd);
Lines 257-273 static int ap_proxy_wstunnel_request(apr_pool_t *p Link Here
257
257
258
            if (cur->desc.s == sock) {
258
            if (cur->desc.s == sock) {
259
                pollevent = cur->rtnevents;
259
                pollevent = cur->rtnevents;
260
                if (pollevent & APR_POLLIN) {
260
                if (pollevent & (APR_POLLIN | APR_POLLHUP)) {
261
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02446)
261
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02446)
262
                                  "sock was readable");
262
                                  "sock was readable");
263
                    rv = proxy_wstunnel_transfer(r, backconn, c, bb, "sock");
263
                    rv = proxy_wstunnel_transfer(r, backconn, c, bb, "sock");
264
                    }
265
                else if ((pollevent & APR_POLLERR)
266
                         || (pollevent & APR_POLLHUP)) {
267
                         rv = APR_EPIPE;
268
                         ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, APLOGNO(02447)
269
                                       "err/hup on backconn");
270
                }
264
                }
265
                else if (pollevent & APR_POLLERR) {
266
                     rv = APR_EPIPE;
267
                     ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, APLOGNO(02447)
268
                                   "err/hup on backconn");
269
                }
271
                else { 
270
                else { 
272
                    rv = APR_EGENERAL;
271
                    rv = APR_EGENERAL;
273
                    ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, APLOGNO(02605)
272
                    ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, APLOGNO(02605)
Lines 278-290 static int ap_proxy_wstunnel_request(apr_pool_t *p Link Here
278
            }
277
            }
279
            else if (cur->desc.s == client_socket) {
278
            else if (cur->desc.s == client_socket) {
280
                pollevent = cur->rtnevents;
279
                pollevent = cur->rtnevents;
281
                if (pollevent & APR_POLLIN) {
280
                if (pollevent & (APR_POLLIN | APR_POLLHUP)) {
282
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02448)
281
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02448)
283
                                  "client was readable");
282
                                  "client was readable");
284
                    rv = proxy_wstunnel_transfer(r, c, backconn, bb, "client");
283
                    rv = proxy_wstunnel_transfer(r, c, backconn, bb, "client");
285
                }
284
                }
286
                else if ((pollevent & APR_POLLERR)
285
                else if (pollevent & APR_POLLERR) {
287
                        || (pollevent & APR_POLLHUP)) {
288
                    rv = APR_EPIPE;
286
                    rv = APR_EPIPE;
289
                    c->aborted = 1;
287
                    c->aborted = 1;
290
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02607)
288
                    ap_log_rerror(APLOG_MARK, APLOG_TRACE1, 0, r, APLOGNO(02607)

Return to bug 56299