summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_router.c
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2019-08-30 00:07:54 +0300
committerMax Romanov <max.romanov@nginx.com>2019-08-30 00:07:54 +0300
commit7053a35a60bdacdfcf1277dd8f08f6c46c8028c7 (patch)
tree2541faa49735325e5ebdf4314448ae57da4584f9 /src/nxt_router.c
parente2abfaf381984b9c441555a3614336b64008c80d (diff)
downloadunit-7053a35a60bdacdfcf1277dd8f08f6c46c8028c7.tar.gz
unit-7053a35a60bdacdfcf1277dd8f08f6c46c8028c7.tar.bz2
Fixed WebSocket implementation that was broken on some systems.
The "nxt_http_websocket" request state, defined in "nxt_http_websocket.c", is used in "nxt_router.c" and must be linked with external symbol declared in "nxt_router.c". Due to the missing "extern" keyword, building Unit with some linkers (notably gold and LLD) caused WebSocket connections to get stuck or even crash the router process.
Diffstat (limited to 'src/nxt_router.c')
-rw-r--r--src/nxt_router.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/nxt_router.c b/src/nxt_router.c
index c3bcc51c..89ea5fe6 100644
--- a/src/nxt_router.c
+++ b/src/nxt_router.c
@@ -247,7 +247,7 @@ static nxt_int_t nxt_router_http_request_done(nxt_task_t *task,
static void nxt_router_http_request_release(nxt_task_t *task, void *obj,
void *data);
-const nxt_http_request_state_t nxt_http_websocket;
+extern const nxt_http_request_state_t nxt_http_websocket;
static nxt_router_t *nxt_router;