Commit Graph
42 Commits
Author SHA1 Message Date
mmmrayandGitHub e733148c0b REALITY: Unblock SplitHTTP transport (#3816)
https://github.com/XTLS/Xray-core/pull/3816#issuecomment-2445694775
2024-10-30 02:31:05 +00:00
mmmrayandGitHub 8c180b9cfd Browser Dialer: Revert changes to event listeners (#3906)
https://github.com/XTLS/Xray-core/issues/3882#issuecomment-2396167708

This does not fix the linked issue, just a random bug I found.
2024-10-13 05:22:15 +00:00
mmmrayandGitHub 93cff1a576 Xmux: Value of 0 is treated the same as no value (#3835)
It turns out that some panels like to set `"xmux": {"maxConnections": 0,
"maxConcurrency": 0}`, and of course that fails now. To make their job
easier, let's treat `0` the same as not setting the parameter.

Again, I don't like that xray's defaults are hardcoded all over the
place. I would have liked a different default value for Xmux in a future
version, but it actually can't be done in practice because everybody
just copypastes the defaults from the docs into their own sourcecode
(and sometimes changes them silently to their own idea of a good
default)
2024-09-19 11:20:12 -04:00
mmmrayandGitHub f406b2dee0 SplitHTTP client: Fix xmux config deserialization (#3827) 2024-09-19 00:45:39 +00:00
mmmrayandRPRX 9438517130 README.md: Add SaeedDev94/Xray to Android clients
Closes https://github.com/XTLS/Xray-core/issues/3778
2024-09-09 05:59:12 +00:00
mmmrayandGitHub 6838a0ae55 Config: Remove legacy inbound/outbound/detours (#3769)
https://github.com/XTLS/Xray-core/pull/3769#issuecomment-2334915139
2024-09-06 23:43:58 +00:00
f357245f93 Config: Remove global transport (#3751)
https://github.com/XTLS/Xray-core/pull/3751#issuecomment-2329564039

---------

Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
2024-09-04 18:09:16 -04:00
mmmrayandGitHub c0a98f74fc Transport: Remove DomainSocket (#3757)
https://github.com/XTLS/Xray-core/pull/3755#issuecomment-2325533003
2024-09-03 11:36:11 +00:00
mmmrayandGitHub 9a953c070f Transport: Remove QUIC (#3754)
https://github.com/XTLS/Xray-core/pull/3554#issuecomment-2236171077
2024-09-03 02:39:44 +00:00
mmmrayandGitHub ab3c00e96b SplitHTTP: Remove ok compatibility logic (#3753)
Remove some code that was added to maintain compatibility with older
Xray versions. This breaks compatibility with Xray-core v1.8.23 or older.
2024-09-03 02:25:15 +00:00
mmmray f1c439c2aa Revert "Fix freedom PacketReader/PacketWriter type assertion (#3734)"
This reverts commit 815a959c96.
2024-09-01 10:59:31 -05:00
mmmrayandGitHub 3dd3bf94d4 Fix data leak between mux.cool connections (#3718)
Fix #116
2024-08-25 21:02:01 +02:00
mmmrayandGitHub 83eef6bc1f SplitHTTP: Fix connection leaks and crashes (#3710) 2024-08-22 17:07:57 +02:00
mmmrayandGitHub 2be03c56cb Pin protobuf packages (#3715)
* Pin protobuf packages

It happened in the past that I ran with the wrong protobuf version
installed locally, and apparently there is even still some file wrong in
splithttp. Fix this issue once and for all.

* bump protobuf packages

* Revert "bump protobuf packages"

This reverts commit 7a3509346a.

* Revert "Revert "bump protobuf packages""

This reverts commit bb79707d15.

* fix deprecated grpc usage
2024-08-22 10:18:36 -04:00
mmmrayandGitHub 160316d53c SplitHTTP: Do not produce too large upload (#3691) 2024-08-17 13:01:58 +02:00
mmmrayandGitHub 498d8eb3cc DialerProxy: Fix SplitHTTP H3 dialerProxy (#3570)
* wip

* wip

* formatting

* cnc connection no longer needs to be a Packetconn

* dialerProxy: do not cancel connection when Dial context is cancelled
2024-08-11 12:58:52 -04:00
mmmrayandGitHub 513182adf3 SplitHTTP server: Only "ok" to older clients (#3671)
https://github.com/XTLS/Xray-core/pull/3643#issuecomment-2282304185
2024-08-10 23:56:25 +00:00
mmmrayandGitHub a3b306aaa4 SplitHTTP: Replace responseOkPadding with xPaddingBytes (#3643) 2024-08-10 21:47:42 +00:00
mmmrayandGitHub 85e2ebc6f7 SplitHTTP client: Raise idle timeout to 5 minutes, Add h*KeepalivePeriod (#3624) 2024-08-10 05:40:48 +00:00
mmmrayandGitHub 4b7947cca9 SplitHTTP server: add ok padding (#3614) 2024-08-02 03:16:19 +02:00
mmmrayandGitHub 30af792777 SplitHTTP: Rename three options & Reduce server defaults (#3611)
* maxUploadSize -> scMaxEachPostBytes, default is 1MB on both sides (was 2MB on the server)
* minUploadIntervalMs -> scMinPostsIntervalMs, default is 30ms on the client (no server support for now)
* maxConcurrentUploads -> scMaxConcurrentPosts, default is 100 on both sides (was 200 on the server)
2024-07-29 10:10:29 +00:00
mmmrayandGitHub 33daa0c94b SplitHTTP: Fix wrong config deserialization (#3610)
Testing was conducted only using explicit parameters, and using
testsuite. However, when the parameters are not explicitly set in JSON
config, it seems that `c.MaxUploadSize` will contain `RandRangeConfig {
From: 0, To: 0 }` instead of `nil`, which breaks upload entirely.
2024-07-29 08:50:59 +00:00
mmmrayandGitHub 59f6685774 SplitHTTP: More range options, change defaults, enforce maxUploadSize, fix querystring behavior (#3603)
* maxUploadSize and maxConcurrentUploads can now be ranges on the client
* maxUploadSize is now enforced on the server
* the default of maxUploadSize is 2MB on the server, and 1MB on the client
* the default of maxConcurrentUploads is 200 on the server, and 100 on the client
* ranges on the server are treated as a single number. if server is configured as `"1-2"`, server will enforce `2`
* querystrings in `path` are now handled correctly
2024-07-29 04:35:17 +00:00
mmmrayandGitHub 8a4217fdf5 SplitHTTP client: Add minUploadInterval (#3592) 2024-07-27 12:52:36 +00:00
mmmrayandGitHub 7cf5ee8afd WS, HU: Remove unnecessary sleep from test (#3600) 2024-07-27 12:38:54 +00:00
mmmrayandGitHub 2becdd6414 SplitHTTP server: Fix panic during concurrent Close and Push (#3593)
When Close and Push are called concurrently, it may happen that Push attempts to write to an already-closed channel, and trigger a panic.

From a user perspective, it results in logs like this:

    http: panic serving 172.19.0.6:50476: send on closed channel

It's probably triggered when download is closed at the same time an upload packet is submitted.

These panics don't crash the server and the inbound is still usable.
2024-07-26 04:36:55 +02:00
mmmray 529f206d33 Fix serverside TLS support of SplitHTTP H1/H2 (#3567)
Fix #3566

Also update testsuite so that all tests read and write some data. Opening a connection is not enough to trigger connection errors, because the connection is so lazy.
2024-07-20 19:35:24 -05:00
573fb4f643 Add Windows 7 builds (#3530)
Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
2024-07-15 09:53:40 +00:00
mmmrayandyuhan6665 c69d38ae82 add link to discussions 2024-07-11 14:48:17 -04:00
mmmrayandGitHub c8f6ba9ff0 Add SplitHTTP Browser Dialer support (#3484) 2024-07-11 07:56:20 +00:00
mmmrayandGitHub c6a57b2cc1 Fix connection reuse in splithttp HTTP/1.1 (#3485) 2024-07-01 05:30:34 +02:00
mmmrayand风扇滑翔翼 c0f3bf66fd Add new header to disable HTTP middle box buffer
Co-Authored-By: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
2024-06-28 16:14:59 +08:00
mmmrayandGitHub ee2000f6e1 splithttp: Add support for H2C and http/1.1 ALPN on server (#3465)
* Add H2C support to server

* update comment

* Make http1.1 ALPN work on SplitHTTP client

Users that encounter protocol version issues will likely try to set the
ALPN explicitly. In that case we should simply grant their wish, because
the intent is obvious.
2024-06-23 13:05:37 -04:00
mmmrayandyuhan6665 74d233dd64 More docker tags 2024-06-23 12:55:37 -04:00
mmmrayandGitHub eb4f9429e6 Use ArrayBuffer in WS browser dialer binaryType (#3468)
On my machine, browserdialer speedtest gives 10 Mbit/s download. Now it
can do 300 Mbit/s.
2024-06-23 05:31:57 +08:00
mmmrayandGitHub 8fe976d7ee Upgrade SplitHTTP Transport (#3462)
* move to paths instead of querystrings

* permit early data on serverside

* early data for the client, fix context cancellation
2024-06-20 23:30:51 +00:00
mmmrayandyuhan6665 c1a7602412 fix compatibility issues with go 1.21 2024-06-18 10:23:29 -04:00
mmmrayandGitHub c10bd28731 Add SplitHTTP Transport (#3412) 2024-06-18 05:36:36 +00:00
mmmrayandGitHub f8ec93dfdd drain buffer correctly in httpupgrade (#3428)
* drain buffer correctly in httpupgrade

it seems the recently added httupgrade testsuite is causing timeouts on master

i have no evidence this is the real issue, but it feels to me that the
server could accidentally over-read, and then the encapsulated
connection will block forever trying to read data

let's test it in CI a couple of times, i don't have a way to reproduce
the issue

* correctly drain buffer, again
2024-06-05 22:43:15 -04:00
mmmrayandGitHub 980236f2b6 preserve exact header casing when using httpupgrade (#3427)
* preserve exact header casing when using httpupgrade

* fix capitalization of websocket

* oops, we dont need net/url either

* restore old codepath when there are no headers
2024-06-05 20:43:44 -04:00
mmmrayandyuhan6665 75b3ef71a1 fix filename 2024-06-03 16:40:13 -04:00
8ce2a0e245 Validate /websocket requests from browser dialer page (#3295)
Fixes https://github.com/XTLS/Xray-core/issues/3236

---------

Co-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>
2024-04-26 03:19:25 +00:00