History log of /httpd/modules/proxy/mod_proxy_wstunnel.c
Revision Date Author Comments Expand
1337c7673efc1f80f634139fbad7cbb98a0dc657 1674632 19-Apr-2015 ylavic

mod_proxy_wstunnel: Bypass the handler while the connection is not upgraded to WebSocket, so that other modules can possibly take over the leading HTTP requests.

86ba86bbe4d803bdc30616302300e31b90d5d8e9 1669299 26-Mar-2015 ylavic

mod_proxy_wstunnel: Avoid an empty response by failing with 502 (Bad Gateway) when no response is ever received from the backend.

9f2e2107c9cb8a89f48193bcfc395fc6e8fcd76c 1669130 25-Mar-2015 ylavic

mod_proxy_{connect,wstunnel}: follow up to r1657636. Since rv is not used as an apr_status_t in the loop (it's logging is done by proxy_{connect,wstunnel}_transfer() when necessary/relevent), use a boolean instead to avoid the ugly ORs between APR error codes.

ac7482772673c7dab4afbf53649e07030fd57a8e 1657636 05-Feb-2015 ylavic

mod_proxy_connect/wstunnel: If both client and backend sides get readable at the same time, don't lose errors occuring while forwarding on the first side when none occurs next on the other side, and abort.

5d9953b57425b6ee84fdf2666f687c101e2ffd65 1643434 05-Dec-2014 jailletc36

Synch trunk with 2.4.x. In r1588495, additionnal logging has been added to 2.4.x as part of the merge.

420f251223a59477a211837382d0622efd42a6bd 1635644 31-Oct-2014 ylavic

mod_proxy_wstunnel: abort backend connection on polling error to avoid further processing (lingering close, SSL shutdown).

92942d9ecac5ea25c5cac6c2518fe97a51170c59 1621806 01-Sep-2014 jailletc36

Silent some cppcheck warnings.

609c1240f4b281e05eaec25b4b0c43e796117fd4 1605946 27-Jun-2014 takashi

Revert r1601943, r1602058, r1605307 (socket callback returning pollfds) Revert r1605369 (wstunnel refactoring) per discassion on dev@httpd.a.o thread Message-ID: <CALK=YjN9HfThP_k_rF9iJPcUhcQk9sNOaDPxZNG+HcJNWS4ZAQ@mail.gmail.com>

d5b3258f6d2536bc6d44c382d9fa679091a90c37 1605376 25-Jun-2014 takashi

Async mod_proxy_wstunnel: Resume a client connection from SUSPENDED state to avoid the connection remain suspended.

8c67997d8b3ac29c1fc5082d5b9727041632048a 1605369 25-Jun-2014 takashi

Refactor asynchronous mod_proxy_wstunnel using pollfd returned by MPM. r1601943 and r1605307 made Event MPM return woken pollfd, so async wstunnel doesn't need its own apr_pollset_poll.

cd963ab479250ff06ec7b24d681e37a6a260f0ad 1605207 24-Jun-2014 jailletc36

Use ap_remove_input_filter_byhandle instead of duplicating the code.

4102a740beaa5cfca0c12683fd1f754501dc325f 1601943 11-Jun-2014 takashi

Socket event callback now takes pollfd. User (e.g. mod_proxy_wstunnel) can know which socket is ready.

bc53c76f019e33f53dffe280fbe71324b400ead2 1601604 10-Jun-2014 takashi

* apr_status_t vs HTTP status code fix * use APR_STATUS_IS_ENOTIMPL rather than direct comparison

892d6e5ab58fde13af98638aac7839a1aef5fd3f 1601603 10-Jun-2014 takashi

Private function doesn't need ap_ prefix.

42a8abda4b0bc756bc72fb178a2d1553a8d4489d 1594625 14-May-2014 ylavic

mod_proxy_wstunnel: Fix the use of SSL connections with the "wss:" scheme. PR55320. Submitted by: Alex Liu <alex.leo.ca gmail.com> Committed by: ylavic

259878293a997ff49f5ddfc53d3739cbdc25444e 1593857 11-May-2014 covener

Extend the socket callbacks in event to allow a timeout on the I/O callback. When a socket callback has a timeout, an associated timer event is used to remove the sockets from the pollset and call a timeout function. * This includes a noteworthy change to the main event loop. Previously, we would call epoll, then process the timer events, then iterate through the poll results. After this patch, the timer events are processed before the poll() a _non-queued_ action can change the pollset conents (a users timed callback function conversely could easily sit in a queue while the main thread continues down into epoll) * timer events can now have sockets associated with them, those sockets are removed from the pollset when the timer event fires w/o a queue to the worker. * timer events now have a canceled flag that can be toggled without locking the timer list. * Drop the severity of some wstunnel messages from DEBUG to TRACE1 * Lift the restriction on using asynchronous websockets connections but having an idle timeout

166067d4655ac9671e4e566d052910e147591606 1587657 15-Apr-2014 covener

whitespace changes only

a8791f750c2f0de43b449942486211d5a90f5f87 1587654 15-Apr-2014 covener

followup to r1587036. if backend->close is set too early, proxy_util.c will close it right away and then blow away the field.

060be1d2fbafc7ff7e52558274af1995c7bc9d70 1587126 14-Apr-2014 covener

s/asynch/async

54d750a84a175d8e338880514d440773eb986b50 1587075 13-Apr-2014 covener

several related mod_proxy_wstunnel changes that are tough to pull apart: * make async websockets tunnel opt-in * add config for how long we block a thread in asynch mode * add config for a cap on the synchronous path * avoid sending error responses down the upgraded tunnel

83b50288fa7d306324bba68832011ea08f5c7832 1587057 13-Apr-2014 covener

stop leaking websockets backend connections (trunk only)

ac95effcd4bcdf02e41becbec4e9f2d3c577e7fd 1587053 13-Apr-2014 covener

cleanup wstunnel error handling Submitted By: covener, ylavic, Edward Lu Commited By: covener

e1bf4abe3a2d8b2cc62615152b8beb56eec05757 1587040 13-Apr-2014 covener

actually remove mod_reqtimeout, since the util_filter functions involved only manipulate c->input_filters no matter what we pass. We need to make copies of c->input_filters after, not before, it skips over reqtimeout. Note: reqtimeout doesn't really interfere today with normal operation, but this is misleading/confusing when dealing with other wstunnel issues.

f628b0e7cb9bf51de44af6b4355bc520fda84f4e 1587036 13-Apr-2014 covener

*) mod_proxy_wstunnel: Don't pool backend websockets connections, because we need to handshake every time. PR 55890. [Eric Covener]

015d005ab18d249343330202c03c03e63350364c 1569615 19-Feb-2014 covener

handle POLLERR/POLLHUP during poll() to avoid high CPU busy loop. Submitted By: Joffroy Christen <joffroy.christen solvaxis com>, Eric Covener] Committed By: covener

1f80c85ba507f922580a44fe8cb83b4a5486c1b8 1530361 08-Oct-2013 jim

Add no's

17b8f879f5db1528f12cd7610bccf5cd1bad5c25 1524980 20-Sep-2013 jim

typo

46930f49728f0ad11d757a1072adae1e0dbc0cb3 1494196 18-Jun-2013 fuankg

Fix for stupid CodeWarrior compiler.

8966f6c6e6ed032cd17d020140e0ac1329d382b6 1493741 17-Jun-2013 jim

Fold in Eric Covener's socket callback

623f9f56371e942f27db41fb16c7f87dbb158ece 1458447 19-Mar-2013 jim

Keep mod_req clear. Simply scan thru input filters and remove it within the ws submodule. Nasty, but it keeps mod_req untouched (for now ;) )

6c0fb469a8ffe7ae1a83486247996b6416ea2bb9 1458285 19-Mar-2013 jim

bypass reqtimeout for websockets

6301c9ad34dac349ac098371cd5cb33822e1e32f 1454415 08-Mar-2013 jim

streamline

c866d920c909e59ef113236951435a17fa8245ae 1454414 08-Mar-2013 jim

don't strip these, ensure that they exist.

844b2621a057e135b28e78c6cea8f69b36aab84d 1454386 08-Mar-2013 jim

"final" rename :)