Commit 99dc20b
feat(pglite-socket): handle SSLRequest and CancelRequest wire protocol messages
Add support for PostgreSQL SSLRequest and CancelRequest protocol messages
during the connection startup phase. This enables pglite-socket to work
behind connection proxies like Cloudflare Hyperdrive that send SSLRequest
during connection negotiation.
Changes:
- SSLRequest (code 80877103): respond with 'N' (no SSL), per PostgreSQL
wire protocol spec
- CancelRequest (code 80877102): silently acknowledge and discard
- Add startupComplete flag to distinguish startup-phase untyped messages
from regular typed messages after handshake
- Add tests for SSLRequest response, post-SSLRequest connectivity, and
CancelRequest resilience
Without this fix, SSLRequest bytes fall through to the typed message
parser, which misinterprets them and corrupts the protocol stream,
causing PGLite to crash and the proxy to receive ECONNRESET.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 9633a1e commit 99dc20b
3 files changed
Lines changed: 130 additions & 13 deletions
File tree
- .changeset
- packages/pglite-socket
- src
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
| 174 | + | |
174 | 175 | | |
175 | 176 | | |
176 | 177 | | |
| |||
303 | 304 | | |
304 | 305 | | |
305 | 306 | | |
| 307 | + | |
306 | 308 | | |
307 | 309 | | |
308 | 310 | | |
| |||
333 | 335 | | |
334 | 336 | | |
335 | 337 | | |
| 338 | + | |
336 | 339 | | |
337 | | - | |
338 | | - | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
339 | 343 | | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | | - | |
345 | | - | |
346 | | - | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
347 | 353 | | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
348 | 369 | | |
349 | 370 | | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | | - | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
354 | 374 | | |
| 375 | + | |
355 | 376 | | |
356 | 377 | | |
357 | 378 | | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
358 | 386 | | |
359 | 387 | | |
360 | 388 | | |
| |||
366 | 394 | | |
367 | 395 | | |
368 | 396 | | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
369 | 405 | | |
370 | 406 | | |
371 | 407 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
792 | 793 | | |
793 | 794 | | |
794 | 795 | | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
795 | 869 | | |
796 | 870 | | |
797 | 871 | | |
| |||
0 commit comments