* repro
* cleanup
* avoid shutdownRead on SSL
* still dont fix
* more
* some ssl
* cleanup
* handle shutdown
* make actually pass the tests
* fix STATUS_STACK_BUFFER_OVERRUN?
* revert some, cleanup fetch.tls.test
* make clear why we need on_handshake when closing
* more
* revert
* cleanup
* cleanup + less Bun.gc
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* make bun-debug properly override `bun` in path
* windows path
* fix more issues with bunx
* sync
* stuff
* stuff
* f
* stuff
* further work
* a
* [autofix.ci] apply automated fixes
* okay
* fix building on posix systems
* ok
* make it so bun create cant crash + review
* docuemnt why return false is ok
* .
* cache bust
* merge
* yeah
* yea
* Update src/install/install.zig
* review results
* this will probably fix hardlink issue on windwo
* okay
* how did that work before
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* fix(ws/client): handle short reads on payload frame length
In the WebSocket specification, control frames may not be fragmented.
However, the frame parser should handle fragmented control frames
nonetheless. Whether or not the frame parser is given a set of
fragmented bytes to parse is subject to the strategy in which the client
buffers received bytes.
All stages of the frame parser currently supports parsing frames
fragmented across multiple TCP segments except for the payload frame
length parsing stage.
This commit implements buffering the bytes of a frame's payload length
into a client instance so that the websocket client is able to properly
parse payload frame lengths despite there being a short read over
incoming TCP data.
A test is added to
test/js/web/websocket/websocket-client-short-read.test.ts which creates
a make-shift WebSocket server that performs short writes over a single
WebSocket frame. The test passes with this commit.
* [autofix.ci] apply automated fixes
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
* Add checks that we drain the microtask queue whenever we call into JavaScript
* Drain microtasks in more places
* Tweak assertions for entering/exiting the event loop
* Drain more
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
* get test/bundler/bundler_naming.test.ts passing on windows
* move platformToPosixInPlace to bun.path and use the vector'd version
* only resolve rel_path if it contains '/./', most of the time './' needs to be preserved
* fix another file too
* move kernel32 extern to better location
* [autofix.ci] apply automated fixes
* use bun.path.posixToPlatformInPlace here
* rewrite this whole section to stay in utf16 and handle errors
* remove dead comments
* fix a typo
* undo these relative changes
* preserve path.pretty from getting lost
* use bun's instead of zig's resolve here
* both side of this loop need the inplace normal
* use existing generic dirname function
* make path inplace functions generic
* we might need to modify this so copy on windows
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* don't assume the prefix we get from this
* more robust path traversal
* don't mangle absolute paths
* do this bit in a loop
* this line is a u16
* dont forget to compile before pushing
* this was wrong
* look into this later
* check pointer math first since its faster
* posix syscalls support path traversal, don't do the work for them
* its already inside stable, no need to change
* used the online editor
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* windows: fix some websocket tests
* this file should work now, report any errors
* make this change later
* add back running this with node
* add as const to these
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>