Skip to content

Conversation

Fangliding
Copy link
Member

fix #4545
将所有1xx response读取后直接转发给客户端 不再给其余部分处理

@RPRX
Copy link
Member

RPRX commented Mar 25, 2025

也就是说 HTTP 代理对于 plain HTTP 是有干涉的?印象中好像也是,还是 HTTPS 好

@Fangliding
Copy link
Member Author

HTTP proxy有两个模式 CONNECT方法代理4层流量 客户端还可以直接发送正常的GET PUT之类的方法让它代理7层

@xqzr
Copy link
Contributor

xqzr commented Mar 25, 2025

HTTP 代理客户端,通常除了 HTTPS 会使用 CONNECT 方法,其他是原样。

@RPRX
Copy link
Member

RPRX commented Mar 25, 2025

不到 56 字节时是不是 err == nil?会不会导致后面的代码 panic @Fangliding

@Fangliding
Copy link
Member Author

不到 56 字节时是不是 err == nil?会不会导致后面的代码 panic @Fangliding

不到56字节是bufio.ErrBufferFull

@xqzr
Copy link
Contributor

xqzr commented Mar 25, 2025

除了 HTTPS 会使用 CONNECT 方法

curl -p 强制 CONNECT

@RPRX
Copy link
Member

RPRX commented Mar 25, 2025

@xqzr coMMect

@RPRX
Copy link
Member

RPRX commented Mar 25, 2025

ResponseHeader1xx[len(ResponseHeader1xx)-4:] 这里似乎有 panic 的可能,需要加个判断 @Fangliding

@Fangliding
Copy link
Member Author

ResponseHeader1xx[len(ResponseHeader1xx)-4:] 这里似乎有 panic 的可能,需要加个判断 @Fangliding

我之前写过 其实被我去掉了 想让strings.Cut返回一个1开头的"状态码"最短也得 "1 1" 这种结构 最短也得3个字节 下面的 r.ReadSlice('\n') 要不返回错误最后还需要一个\n 那最短也得 "1 1\n" 也就是4个字节才会让程序进行到后面的尾缀判断

@RPRX
Copy link
Member

RPRX commented Mar 25, 2025

@Fangliding v2fly 的 QUIC sniffer 可能修好了,搬一下,我上次搬的时候发现多了个 err 类型,可以要

@RPRX RPRX changed the title HTTP inbound: Direct forward http 1xx response header HTTP inbound: Directly forward plain HTTP 1xx response header Mar 26, 2025
@RPRX RPRX merged commit 29e37e8 into main Mar 26, 2025
70 checks passed
@RPRX
Copy link
Member

RPRX commented Mar 29, 2025

话说这部分代码是否有必要先判断一下是否 CONNECT?

@RPRX
Copy link
Member

RPRX commented Mar 29, 2025

没事了,我刚看到这个函数叫 handlePlainHTTP,而 handleConnect 是另一个函数

@RPRX RPRX deleted the http-1xx branch April 1, 2025 12:12
maoxikun pushed a commit to maoxikun/Xray-core that referenced this pull request Aug 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Expect: 100-continue is not proper handled in http proxy
3 participants