mmmray
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
hellokindle
edae38c620
Fix SplitHTTP Unix domain socket ( #3577 )
...
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-07-22 22:19:31 +02:00
RPRX
0f65aa8ed8
Fix SplitHTTP H3 waited for downResponse before uploading
...
https://github.com/XTLS/Xray-core/issues/3560#issuecomment-2241750579
2024-07-21 20:45:05 +00:00
RPRX
22535d8643
Fix SplitHTTP H3 didn't always reuse QUIC connection
...
https://github.com/XTLS/Xray-core/issues/3560#issuecomment-2241531502
2024-07-21 08:55:03 +00: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
チセ
964859b4bc
SplitHTTP: Remove unnecessary keepalives ( #3565 )
...
Remove keep alive since quic-go/http3 doesn't support stream reuse
Discussion see https://t.me/projectXray/3782492
Co-authored-by: Fangliding <Fangliding.fshxy@outlook.com>
Co-authored-by: xqzr <34030394+xqzr@users.noreply.github.com>
Co-authored-by: ll11l1lIllIl1lll <88377095+ll11l1lIllIl1lll@users.noreply.github.com>
2024-07-20 19:34:57 -05:00
ll11l1lIllIl1lll
a0040f13dd
SplitHTTP: Server supports HTTP/3 ( #3554 )
...
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-07-19 17:53:47 +00:00
ll11l1lIllIl1lll
d8994b7603
Fix SplitHTTP H3 crash on v2rayNG ( #3559 )
...
Fixes https://github.com/XTLS/Xray-core/issues/3556
2024-07-19 17:52:34 +00:00
ll11l1lIllIl1lll
c40fc44a34
SplitHTTP: Client supports HTTP/3 ( #3543 )
...
Closes https://github.com/XTLS/Xray-core/issues/3456
Co-authored-by: Fangliding <Fangliding.fshxy@outlook.com>
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-07-17 07:55:28 -05:00
yuhan6665
02cd3b8c74
Fix SplitHTTP race condition when creating new sessions ( #3533 )
...
Co-authored-by: nobody <nobody@nowhere.mars>
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-07-17 11:41:17 +00:00
风扇滑翔翼
a7e198e1e2
Fix WS reading X-Forwarded-For & Add tests ( #3546 )
...
Fixes https://github.com/XTLS/Xray-core/issues/3545
---------
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-07-17 10:40:25 +00:00
MHSanaei
16de0937a8
Fix typos ( #3527 )
2024-07-12 00:20:06 +02:00
mmmray
c8f6ba9ff0
Add SplitHTTP Browser Dialer support ( #3484 )
2024-07-11 07:56:20 +00:00
风扇滑翔翼
308f0c64c3
Add custom Sockopt support ( #3517 )
...
* Add custom sockopt
* Add custom level
* Change field
* Sth left
2024-07-09 12:19:31 -04:00
yuhan6665
b8c0768b16
Properly parse HTTP host for verification
...
Also fix H2 transport to not verify if host is not defined
2024-07-07 22:35:11 -04:00
yuhan6665
4c51636788
Relax server HTTP host check
2024-07-06 15:06:58 -04:00
yuhan6665
60b2c349d2
Try to fix infinite conn read in tests
2024-07-01 23:55:30 -04:00
mmmray
c6a57b2cc1
Fix connection reuse in splithttp HTTP/1.1 ( #3485 )
2024-07-01 05:30:34 +02:00
yuhan6665
079d0bd8a9
Refactor log ( #3446 )
...
* Refactor log
* Add new log methods
* Fix logger test
* Change all logging code
* Clean up pathObj
* Rebase to latest main
* Remove invoking method name after the dot
2024-06-29 14:32:57 -04:00
RPRX
8320732743
SplitHTTP: ok -> ooooooooook (parser in client)
...
https://github.com/XTLS/Xray-core/pull/3479#issuecomment-2196370334
2024-06-28 16:53:18 +08:00
mmmray
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
maskedeken
e4f9d03bef
splithttp Read() using blocking mode ( #3473 )
...
* blocking splithttp read
* Add testcase
* simplify conditions
---------
Co-authored-by: mmmray <142015632+mmmray@users.noreply.github.com>
2024-06-24 11:09:24 -04:00
mmmray
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
mmmray
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
mmmray
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
mmmray
c1a7602412
fix compatibility issues with go 1.21
2024-06-18 10:23:29 -04:00
mmmray
c10bd28731
Add SplitHTTP Transport ( #3412 )
2024-06-18 05:36:36 +00:00
风扇滑翔翼
3654c0d710
HTTPUpgrade send headers with specified capitalization ( #3430 )
...
* Fix HTTPUpgrade header capitalization
* Chore
* Remove excess host headers
Chore : change httpupgrade header "upgrade" to "Upgrade" #3435
2024-06-07 12:53:27 +00:00
mmmray
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
mmmray
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
风扇滑翔翼
be29cc39d7
Add httpupgrade test
2024-06-05 17:39:55 +00:00
风扇滑翔翼
df53afceae
Make ws_test uses random ports
2024-06-04 00:52:02 +08:00
AsenHu
459504300c
chore: Remove unnecessary `if` in httpupgrade ( #3413 )
2024-06-04 00:13:46 +08:00
isluckys
89074a14b6
Fix udp goroutine leak
...
v.conn.link.Reader is a pipe.Reader, doesn't implement Close(), it will fail assertion and cause the pipe to be left open
It can be fixed by using Interrupt()
2024-05-30 17:45:29 -04:00
RPRX
ca07a705dc
Generate *.pb.go files with protoc v5.27.0
...
Download https://github.com/protocolbuffers/protobuf/releases/tag/v27.0
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.1
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
(Xray-core/) go run ./infra/vprotogen
2024-05-26 03:20:53 +00:00
yuhan6665
017f53b5fc
Add session context outbounds as slice ( #3356 )
...
* Add session context outbounds as slice
slice is needed for dialer proxy where two outbounds work on top of each other
There are two sets of target addr for example
It also enable Xtls to correctly do splice copy by checking both outbounds are ready to do direct copy
* Fill outbound tag info
* Splice now checks capalibility from all outbounds
* Fix unit tests
2024-05-13 21:52:24 -04:00
mmmray
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
RPRX
61800fcc66
Revert "nosni"
...
https://github.com/XTLS/Xray-core/pull/3214#issuecomment-2078502477
2024-04-26 02:27:22 +00:00
RPRX
080bd8241c
Fix https://github.com/XTLS/Xray-core/issues/3288
2024-04-21 19:43:27 +00:00
X-Oracle
c85a91bc29
fix [ log ]: small fix for better readability.
2024-04-18 08:17:29 -04:00
yuhan6665
32f0017449
Add error log for ws host and path check
2024-04-17 21:31:57 -04:00
guangwu
12f5b05aca
fix: close resp body
2024-04-17 09:40:37 -04:00
Allo
fbc56b88da
chore: remove the usage of some deprecated tls properties
2024-04-13 17:56:35 -04:00
风扇滑翔翼
021868afca
Fix HTTPUpgrade init
2024-04-07 19:52:48 -04:00
风扇滑翔翼
ec2224974d
Add "nosni" option to send empty SNI ( #3214 )
...
* Allow not to send SNI
* Allow reality not to send SNI
2024-04-01 11:08:37 -04:00
yuhan6665
7e3a8d3a04
Add separate host config for websocket
2024-03-30 07:43:05 +00:00
yuhan6665
e2302b421c
Update proto file for websocket and httpupgrade (breaking)
2024-03-30 07:42:41 +00:00
风扇滑翔翼
9a619f9e7c
Add support for HTTPupgrade custom headers
2024-03-23 07:53:36 -10:00
チセ
2cafb3ef89
Fix(httpupgrade): `X-Forwarded-For` header not read. ( #3172 )
2024-03-23 13:34:51 -04:00
yuhan6665
657c5c8570
Update HTTPUpgrade spelling and proto
2024-03-20 13:08:43 -04:00