Commit ad3d043
committed
Fix WebSocketServer sometimes missing GET request
On Ubuntu 22.04 with Linux 6.5, it was observed that when the server
gets the SSL records containing the client handshake finished message
and the first HTTP GET request in ONE read operation, the latter SSL
record is never processed.
Commit 89eaf41 should have fixed this,
but it turned out that when SSLSocketChannel2#processHandshake() is
called from SSLSocketChannel2#write(), the second SSL record containing
the HTTP GET request is stashed away, but never retrieved, since the
calling code in WebSocketServer#doWrite() has no provisions for this,
only WebSocketServer#doRead() does.
Change SSLSocketChannel2#processHandshake() to only read from the socket
when called from SSLSocketChannel#read(), to ensure that when two SSL
records are read, the second one is processed as well.
This fixes issue #1418.1 parent c793f34 commit ad3d043
1 file changed
Lines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | | - | |
| 129 | + | |
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| |||
148 | 148 | | |
149 | 149 | | |
150 | 150 | | |
151 | | - | |
| 151 | + | |
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
| |||
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
170 | | - | |
| 170 | + | |
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| |||
273 | 273 | | |
274 | 274 | | |
275 | 275 | | |
276 | | - | |
| 276 | + | |
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
307 | 307 | | |
308 | 308 | | |
309 | | - | |
| 309 | + | |
310 | 310 | | |
311 | 311 | | |
312 | 312 | | |
| |||
0 commit comments